[00:00] TheDahv: bye people [00:00] DrMcKay: btw, I've spotted a cool bug in Mongo today [00:00] DrMcKay: TheDahv: see you [00:00] boaz: holy shit, node just built so fast on my new macbro [00:00] DrMcKay: could anyone verify it for me? [00:00] devaholic: nuck: i see [00:00] nuck: MAC BRO [00:00] nuck: devaholic » What am I doing wrong? [00:00] SubStack: macbro? [00:00] SubStack: NICE MAC BRO [00:00] JaKWaC_: lol [00:00] nuck: BRO, WHERE'S MY MAC? [00:00] maxogden: exactly [00:01] DrMcKay: try to db.collection.save(somearray), then db.collection.find() [00:01] JaKWaC_: I always want to change the name of my Mac to MacBRO [00:01] DrMcKay: Mongo should segfault [00:01] boaz: what used to take a good 10 minutes on my old macbook just took 2.8 minutes on my new macbro air [00:01] JaKWaC_: almost* [00:01] maxogden: DrMcKay: lolz [00:01] boaz: and yes, I know it was 2.8 minutes b/c I used homebro, maxogden [00:01] devaholic: nuck: what happens? [00:01] maxogden: boaz: you can put "time &&" before any command to measure anything [00:02] DrMcKay: btw, do new MacBooks Pro with i7 get overheated? [00:02] nuck: devaholic » Well, everything until user.save's callback runs fine [00:02] devaholic: can you read from the db? [00:02] nuck: lemme check if it's added [00:03] dynacker: DrMcKay: not really. the fan goes nuts when i do heaps of processing [00:03] devaholic: nothing really sticks out at me [00:03] dmkbot: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [00:03] DrMcKay: dynacker: thanks, I was planning to buy one [00:04] markdaws has joined the channel [00:04] dshaw_ has joined the channel [00:04] dynacker: it overheats when i use it in bed [00:04] dynacker: so i bought one of those cooling pads [00:04] dynacker: save yourself money and just buy a plank of wood [00:05] DrMcKay: dynacker: lol [00:05] DrMcKay: but well, I use my laptop mostly in bed [00:05] bshumate: the rPlank is pretty nice [00:05] nuck: devaholic » Well, it never gets added, judging by the fact that "show collections" in the mongo REPL shows no "users" collection [00:05] mynyml has joined the channel [00:05] DrMcKay: this is the error I get with mongo: https://gist.github.com/1218171 [00:06] nuck: And if I console.log("SUP BRO") at the top of my callback, it's never called [00:06] DrMcKay: I would apprieciate anyone to verify it [00:06] DrMcKay: because it's pretty lulzy [00:06] nuck: DrMcKay » Will do [00:06] metellus has joined the channel [00:06] lightcap has joined the channel [00:06] DrMcKay: nuck: thanks [00:06] Dreamer3 has joined the channel [00:07] nuck: DrMcKay » No problems on 1.6.3 :/ [00:07] replore has joined the channel [00:07] replore_ has joined the channel [00:07] devaholic: but the pre saves work? [00:07] nuck: devaholic » Should, lemme check [00:08] devaholic: i would run it real quick locally,but not quite enough code [00:08] DrMcKay: nuck: thanks (I'm working with 1.8.0) [00:08] dreamdust has joined the channel [00:08] addroid-brian has left the channel [00:08] felixge has joined the channel [00:09] devaholic: wb db.a.find({}) [00:09] [AD]Turbo has joined the channel [00:09] devaholic: i dunno tho, honestly [00:09] nuck: devaholic » Yup, both run fine, putting a console.log() next to the next() [00:09] devaholic: i rarely use the repl [00:09] maxogden: yeah debugging is for dummies [00:10] wadey has joined the channel [00:10] nuck: I wonder if maybe it's not connecting... [00:10] devaholic: oh you [00:11] dseif has joined the channel [00:11] necrodearia has joined the channel [00:12] devaholic: nuck: it might be that, its a bit weird you dont even get a collection created or anything put in there, never matter the response you get [00:12] JakeyChan has joined the channel [00:12] nuck: No, it's connecting fine, from what I can tell :/ [00:12] nuck: devaholic » They say it'll queue them until it's connected anyways? [00:12] DrMcKay: oh... it's 2 AM?! [00:12] nuck: DrMcKay » It's 5 PM here [00:13] maxogden: its 3:45 here [00:13] DrMcKay: nuck: wait, that's weird [00:13] DrMcKay: nuck: try rebooting [00:13] smtlaissezfaire has joined the channel [00:13] nuck: DrMcKay » huh> [00:13] DrMcKay: nuck: there's something wrong with your OS, it shows wrong time [00:14] nuck: DrMcKay » No, I left that when I switched from Windows [00:14] nuck: THAT OS has the wrong time [00:14] nuck: Ubuntu is entirely accurate :P [00:16] DrMcKay: Linux ftw [00:16] DrMcKay: btw, how stupid an engineer has to be to make an OS store a local time in BIOS? [00:16] DrMcKay: I mean, seriously, shit [00:16] DrMcKay: that's what Windows does [00:16] AvianFlu has joined the channel [00:17] DrMcKay: btw, just wondering, why did MS decide to help ryah with porting node.js to Windows? [00:17] nuck: DrMcKay » Because they want a piece of the pie. [00:17] DrMcKay: nuck: the one which they aren't going to eat anyway? [00:17] DrMcKay: there aren't that many windows servers out there [00:18] DrMcKay: and I don't think they're planning to use it for desktops [00:18] DrMcKay: it would be cool, though [00:18] nuck: DrMcKay » Uh, Windows servers are actually pretty common :V [00:18] nuck: They have like a 25% market share, at least [00:18] ryanfitz has joined the channel [00:19] andrewfff has joined the channel [00:19] nuck: DrMcKay » In fact, Google turns up some sources which claim Windows even has a 73% market share in servers [00:19] DrMcKay: nuck: that's still a small market share [00:20] DrMcKay: nuck: wut? [00:20] nuck: DrMcKay » Seriously, 25 to 75% of the market is *damn* good [00:20] nuck: In fact, that's more than I'd expect [00:20] bnoordhuis: nuck: what kind of servers? [00:20] DrMcKay: nuck: well, true [00:21] bnoordhuis: file or mail servers in a mom & pop shop don't count [00:21] DrMcKay: bnoordhuis: web servers, I think (wiki says that) [00:21] bnoordhuis: 73%? gtfo [00:21] astacy has joined the channel [00:21] nuck: bnoordhuis » Yeah, pretty sure it's webservers [00:21] nuck: I doubt that stat too [00:21] bnoordhuis: i won't believe that even if you show me the numbers [00:21] nuck: Since many Linux servers are better configured to hide stuff like that [00:21] nuck: (the less you reveal the safer you are) [00:21] DrMcKay: nuck: good point [00:22] nuck: HOWEVER [00:22] nuck: I would say that 25-50% is probably about accurate [00:23] bnoordhuis: still hard to believe [00:23] nuck: Not really, IIS is actually not a bad server [00:23] nuck: Microsoft did pretty well on IIS, it's at least on par with Apache when it comes to sheer quality [00:23] bnoordhuis: oh, i'm not disputing that [00:23] bnoordhuis: it's just... all the world is linux, not even solaris [00:24] bnoordhuis: i never even see a windows server in day to day life [00:24] indexzero: jerrysv: I'm around if you want to chat [00:24] nuck: bnoordhuis » According to Wikipedia, there's 73.9 vs. 21.2 officially registered, and 16.19 versus 71.01 actual webservers [00:24] DrMcKay: I have one, at my school :/ [00:24] nuck: My guess is that it's somewhere in between [00:24] nuck: proooooobably hovering aroung 25% Windows [00:24] bnoordhuis: i think i know what it is [00:25] bnoordhuis: godaddy is really, really big in the parking pages space [00:25] bnoordhuis: and they use (or used) IIS [00:25] nuck: bnoordhuis » Read above [00:25] nuck: Those numbers all all Windows then Linux [00:25] jtsnow has joined the channel [00:25] nuck: So Linux does dominate Windows servers in "actual web servers" [00:26] nuck: However, they probably missed a large part of the internet, and so I'd say it's somewhere around 25/75 split between Windows/Linux [00:26] nuck: https://secure1.securityspace.com/s_survey/data/201101/index.html [00:26] nuck: Also bullshit [00:26] nuck: Apache is counted as Linux [00:27] nuck: It's not Linux, it's cross-platform [00:27] nuck: And there's not even including Nginx [00:27] DrMcKay: nuck: it's called statistics. [00:27] nuck: Which I'd wager is a major webservers nowadays [00:27] bnoordhuis: nuck: write a script that checks what the top 10,000 sites are hosted on [00:27] neilk_ has joined the channel [00:27] bnoordhuis: precisely the kind of thing node excels at! [00:28] dmkbot: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [00:28] nuck: haha no thanks, I'm busy with my own site :P [00:28] dmkbot: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [00:28] DrMcKay: I've scanned Polish IP space once [00:28] Remoun has joined the channel [00:28] DrMcKay: I could do a scan on those IPs [00:28] astacy has joined the channel [00:28] DrMcKay: it took ages to scan :/ [00:29] nuck: DrMcKay » You went over the *entire Polish IP space*? [00:29] DrMcKay: and it's just a host list [00:29] nuck: Are you shitting me? [00:29] DrMcKay: nuck: nope [00:29] stash1 has joined the channel [00:29] DrMcKay: nuck: there is a web page with subnets and shit available [00:29] bnoordhuis: DrMcKay: i suspect you ex-commies all use socialist operating systems like linux [00:29] astacy_ has joined the channel [00:30] nuck: lol bnoordhuis [00:30] DrMcKay: nuck: and I've had a idle VPS [00:30] nuck: I use Ubuntu [00:30] DrMcKay: bnoordhuis: lol :D [00:30] nuck: DrMcKay » Get the top 10,000 from Alexa [00:30] necrodearia has joined the channel [00:30] nuck: Scan, baby, scan [00:30] justinTNT has joined the channel [00:30] DrMcKay: nuck: k, added to TODO [00:31] nuck: DrMcKay » psssh you're still holding your shit in a TODO file? [00:31] nuck: TODO files are for nooooooobs [00:31] nuck: ACTION uses Orchestra now :D [00:31] stash1: ACTION sits in on the office hours [00:31] DrMcKay: nuck: no, gmail task list [00:31] nuck: ACTION stares at stash1 from across the room [00:31] DrMcKay: nuck: I call it a TODO list for backwards compatibility [00:31] davidban_ has joined the channel [00:32] DrMcKay: gah, I have to be up in 4 hours or so [00:33] DrMcKay: it's time to catch unicorns and whatever [00:33] nuck: DrMcKay » I got a grand total of... 2:30 last night? [00:33] cliffano has joined the channel [00:33] nuck: Something like that >_> [00:33] davidba__ has joined the channel [00:33] konobi: stash1: howdy [00:33] DrMcKay: nuck: yeah, pretty shitty, it gets you unproductive and tired :/ [00:33] cliffano: isaacs: is it possible to add another author who can publish to npmjs.org when the original author can't be contacted for a number of months? [00:33] nuck: DrMcKay » Not me [00:33] DrMcKay: but I'm usually fine with 3 hours or so [00:33] nuck: I'm on enough caffeeeeeeeeeeine [00:33] isaacs: cliffano: npm help owner [00:34] DrMcKay: nuck++ [00:34] v8bot_: DrMcKay has given a beer to nuck. nuck now has 2 beers. [00:34] DrMcKay: k, going to sleep [00:34] blup: general js question, if i have a heavy object and i copy it around as a property to other objects, does it have a large impact on memory or does it make a reference to the original obj? [00:34] nuck: ACTION has had Chai, Coffee, and Dr. Pepper [00:34] DrMcKay: good night/have a nice day [00:34] nuck: DrMcKay » Good evening [00:34] nuck: ACTION tips his had to DrMcKay  [00:34] nuck: hat even [00:35] stash1: howdy konobi [00:35] cody-- has joined the channel [00:36] cody--: is there a way in socket.io to emit to a list of connected users? [00:37] JJMalina has joined the channel [00:38] bnoordhuis: cody--: maybe try #socket.io [00:40] cody--: ah thanks should have checked to see if that was a channel [00:43] skm has joined the channel [00:44] mendel_ has joined the channel [00:44] Corren has joined the channel [00:46] cronopio has joined the channel [00:46] JumpMast3r has joined the channel [00:46] agnat has joined the channel [00:47] tmcw has joined the channel [00:47] c4milo1 has joined the channel [00:49] cliffano: isaacs: ah thanks [00:50] jhbot has joined the channel [00:50] ditesh|cassini has joined the channel [00:50] digitaltoad has joined the channel [00:51] pizthewiz_ has joined the channel [00:51] skython has joined the channel [00:52] JSManiacs has left the channel [00:52] broofa has joined the channel [00:52] skython: Is there a simple solution for caching static files in memory with express ? [00:53] yept has joined the channel [00:53] mbrevoort has joined the channel [00:53] jetienne: skython: believe it or not; but you will loose speed if you do that [00:53] skython: really ? why is that ? [00:53] cliffano: isaacs: sorry, npm owner add can only be done by an existing owner, right? in this case, the existing owner can't be contacted [00:54] jetienne: skython: deliverying static file from node memory is slower than deliverying it from disk. this is due to sendfile() which is obscenly fast [00:54] cliffano: isaacs: there are other committers to the repo, but they are not a package owner [00:54] isaacs: cliffano: yes. email to me and to the owner, if that happens. explain the situation. if they don't add you in a few weeks, or are completely awol, i'll fix it. [00:55] cliffano: isaacs: thanks, shall do [00:55] skython: so what will happen if i just use a mem filesystem for static files directory ^^ that should do the trick [00:55] JaKWaC has joined the channel [00:55] jmoyers: wait [00:56] jmoyers: connect isn't using sendfile [00:56] jmoyers: no? [00:56] jmoyers: https://github.com/senchalabs/connect/blob/master/lib/middleware/static.js#L205-208 [00:56] tjholowaychuk: jmoyers no [00:56] jetienne: it should :) [00:56] tjholowaychuk: and it's not much faster [00:56] tjholowaychuk: cache the statics [00:56] jetienne: sendfile vs userspace delivery ? [00:57] jetienne: not that i care much i was just trying to help [00:57] jmoyers: well, they're using streams [00:57] jmoyers: relatively fast [00:57] jmoyers: compared to buffering into memory and sending [00:58] jetienne: super slow compared to sendfile [00:58] jetienne: you can easily put a factor 10 [00:58] jetienne: slow == using lots more memory + cpu i meant [00:58] jmoyers: <-- no expert [00:58] jmoyers: i would imagine sendfile would be sweet [00:58] jmoyers: but is sendfile exposed in fs currently? [00:58] jmoyers: or wherever it should hang [00:58] broofa_ has joined the channel [00:58] jetienne: sendfile is doing zero copy in kernel [00:59] tjholowaychuk: there are modular benefits to using node streams [00:59] jetienne: tjholowaychuk: clearly [00:59] JaKWaC has joined the channel [01:00] jetienne: and usually people do static caching higher in the stack. in a front server [01:00] skython: but in any way, sending a file right from the disk would mean disk access and thats slow by nature ^^ does the sendfile do internal caching ? what if thousands of users want the same static files and node is reading and reading and reading them from the disk ? [01:00] k1ttty has joined the channel [01:00] jetienne: skython: in fact no :) [01:00] tjholowaychuk: jetienne for sure [01:01] jetienne: ok going back to my blog writing [01:02] jetienne: skython: do as you want. just tried ot help [01:02] skython: ok, i guess the kernel is caching then, like it's doing when i open some apps and close them and still have a lot of ram used(cached) [01:02] bronson: Is there a generic JS way for a function to discover if it's being called as a global or a method? [01:02] robhawkes has joined the channel [01:02] bronson: when called globally, this === global. when called as a method, this of course refers to the object. [01:02] jetienne: ithis === window ? :) [01:02] bronson: jetienne, not in Node. [01:03] Rob has joined the channel [01:03] jmoyers: its not caching is it? [01:03] Sorella: bronson, why must you know that? A function shouldn't behave differently depending on what object is the thisObject in a particular execution. [01:03] jmoyers: sendfile that is [01:03] jmoyers: its explicitly fd to fd [01:03] jmoyers: no copy into userspace is the gain [01:03] jetienne: jmoyers: it is. well the kernel cache is [01:04] divoxx has joined the channel [01:04] skython: yeah, thats what i thought there MUST be a cache somewhere otherwise the disk(hardware) would slow it down [01:05] jetienne: ok i cant focus if i read this channel. have fun, node.js is cool :) [01:05] jetienne has left the channel [01:05] felixge has joined the channel [01:06] bronson: Sorella, trying to make a chaining API... It's nicer to use if I can start the chain with a global function call, then add to it with methods. [01:07] Sorella: bronson, then just return the correct object from your function. Always. [01:07] CarterL has joined the channel [01:07] JSManiacs has joined the channel [01:08] CrypticSwarm: tjholowaychuk, recently got your node-canvas to output directly to a window (X window that is) [01:08] Sorella: bronson, as I said, a function shouldn't behave differently depending on what the thisObject is. That's so prone to do confusing and difficult to debug things that I'm not even sure where to start. [01:08] tjholowaychuk: CrypticSwarm nice :) [01:08] bronson: Sorella, chill out. [01:08] Sorella: I'm not mad :3 [01:08] jmoyers has joined the channel [01:09] mike5w3c has joined the channel [01:09] MooGoo: he's mad [01:09] bronson: If the first object in the chain returns the global object, then the chain affects the global state. [01:09] bronson: Each chain should only affect its own state. [01:09] bronson: Anyhow, doesn't matter, I have it working. [01:10] Badababuba has joined the channel [01:10] tizzo-afk has joined the channel [01:10] skython: what is this 'chain' good for ? [01:10] Sorella: I'm just creeped out by people who try to do really weird things in the language :3 Like writing everything in an imperative style. [01:11] JSManiacs: theres a good spreecast (webcast ++) on node right now. http://www.spreecast.com/events/cowpu-nodejs [01:11] MooGoo: what if they did that while also naked [01:11] bronson: skython, validating objects. test = Valid.min(2).max(5); if(test(3)) { ... } [01:11] skython: ok sounds interesting [01:12] bronson: Mostly playing with JS APIs, not sure if it'll go anywhere. [01:12] Sorella: MooGoo, well, I see no appeal in naked people :3 [01:13] MooGoo: but that doesnt make it more creepy? [01:14] bronson: Is there a module that keeps node's command-line history? [01:14] bronson: I'd like to be able to up-arrow past the start of the current session. [01:16] Drakonite has joined the channel [01:16] garann_ has joined the channel [01:17] deadman87 has joined the channel [01:17] Sorella: MooGoo, perhaps. [01:17] garann_ has joined the channel [01:17] theCole_ has joined the channel [01:18] MooGoo: I always code with clothes on [01:18] MooGoo: not nesecairly pants [01:19] enhydra has joined the channel [01:21] ronnieboy has joined the channel [01:21] wolftankk has joined the channel [01:22] artnez has joined the channel [01:23] JJMalina has joined the channel [01:23] storrgie has joined the channel [01:24] malkomalko has joined the channel [01:24] MooGoo: sweet [01:24] MooGoo: I've killed two javascript related channels [01:25] nerdy_ has joined the channel [01:25] gxdssoft has joined the channel [01:27] killfill_: hey [01:27] killfill_: if i wanted to list the directories of a dir, shouldi just fs.readdir + fs.stat on every output?.. [01:28] ditesh|cassini has joined the channel [01:28] amerine has joined the channel [01:29] Emmanuel has joined the channel [01:30] z6Dabrata has joined the channel [01:31] smathy has joined the channel [01:33] JulioBarros has joined the channel [01:36] hermanjunge has joined the channel [01:36] H4ns` has joined the channel [01:36] mandric has joined the channel [01:39] chrisdickinson: killfill_: that's what i've done. [01:41] phiggins has joined the channel [01:45] wookiehangover has joined the channel [01:45] garann has left the channel [01:45] hermanjunge has joined the channel [01:47] catb0t has joined the channel [01:49] nuck: ohaider catb0t [01:50] smathy has joined the channel [01:53] nuck: haha [01:53] mbrevoort has joined the channel [01:53] nuck: I *just* figured out what I'd been doing wrong on Mongoose [01:53] nuck: I had single quotes in the doublequotes in my config file for the mongo URL [01:54] nuck: YAY! [01:55] nuck: Aaaaand my Mongoose-based signup is working now [01:55] Vennril2 has joined the channel [01:55] nuck: devaholic » haha I tarded as it turns out [01:55] a_suenami has joined the channel [01:56] devaholic: oh you [01:58] caolanm has joined the channel [01:58] kurtzhong has joined the channel [01:59] matyr_ has joined the channel [02:05] orozoaoz has joined the channel [02:05] devongovett has joined the channel [02:06] abjorn has joined the channel [02:07] broofa has joined the channel [02:07] JakeyChan has joined the channel [02:07] andrewfff has joined the channel [02:09] willwhite has joined the channel [02:10] BillyBreen has joined the channel [02:10] bartt has joined the channel [02:13] xue has joined the channel [02:16] skm has joined the channel [02:16] joshkehn has joined the channel [02:16] Lemon|mbp has joined the channel [02:17] mikeal has joined the channel [02:18] random123: Is ES6 Harmony going to be a transcompiler like CoffeeScript? [02:18] joshkehn has left the channel [02:19] Twelve-60 has joined the channel [02:19] SubStack: random123: that will exist but they also want to make it work natively [02:20] langworthy has joined the channel [02:22] rfay_afk has joined the channel [02:23] AvianFlu has joined the channel [02:23] Twelve-60` has joined the channel [02:25] wadey has joined the channel [02:28] blkcat: can anyone recommend an s3 library for node? [02:29] normanrichards has joined the channel [02:31] yhahn has joined the channel [02:31] jerrysv has joined the channel [02:33] mjijackson has joined the channel [02:36] astacy has joined the channel [02:37] davidbanham has joined the channel [02:39] incon has joined the channel [02:40] d0k has joined the channel [02:41] pifantastic_ has joined the channel [02:44] ericmuyser has joined the channel [02:45] ericmuyser: i run `npm install -g stalker` and also `npm install stalker` but still get "Error: Cannot find module 'stalker'" ideas? [02:46] torsd has joined the channel [02:47] dshaw_ has joined the channel [02:47] jesusabdullah: It sounds like there is no module named "stalker"! [02:48] ericmuyser: ah but yet there is, "stalker@0.0.12 /usr/local/lib/node_modules/stalker" [02:48] ericmuyser: must be something wrong with my paths, not checking /usr/local/lib/node_modules or ~/node_modules [02:49] ericmuyser: but not sure where that issue would be fixed [02:50] Nexxy has joined the channel [02:51] anveo has joined the channel [02:51] jesusabdullah: oh, you installed them and *NPM* said it was fine, but you can't require it? [02:51] jesusabdullah: did you install it locally along with your project? [02:51] Nexxy has left the channel [02:51] isaacs: ericmuyser: what's `node -v`? [02:52] ericmuyser: isaacs: v0.4.8 [02:52] ericmuyser: it *does* work locally, so its picking up on ./node_modules, but not globally (ideal) [02:52] ericmuyser: npm -v = 1.0.27 [02:53] isaacs: ericmuyser: oh, well... that's by design :) [02:53] isaacs: ericmuyser: read `npm faq` [02:53] ericmuyser: isaacs: lol oh, thanks. yes theres the path fix. thanks! [02:54] ericmuyser: i dont get why things wouldnt work, being that they did before.. but alright [02:54] random123 has joined the channel [02:55] ericmuyser: ACTION thought that was the point of versions [02:56] jesusabdullah: It probably was versioned correctly. [02:57] stalled has joined the channel [03:00] mbrevoort has joined the channel [03:01] hermanjunge: Hi [03:02] ericmuyser: `npm faq` totally screws up my terminal in mac osx if i ctrl+c it [03:02] blazento: when i npm install express with the -g flag, and i create a new app using express, why am i getting the error Error: Cannot find module 'express'... Do i need to have node_modules in the same directory as my app? [03:02] hermanjunge: I'm working in the console of node [03:02] hermanjunge: what is the way to show the functions of a instanciated object? [03:02] hermanjunge: example: b = new a.OAuth2(); [03:03] hermanjunge: I tried JSON.stringify(b), but I just get the internal variables [03:03] hermanjunge: console.log(b) doesn't do the job either. [03:03] hermanjunge: I remember there was a function to do that trick [03:03] brainproxy: hermanjunge: various properties may be available on the instance through the prototype inheritance [03:03] hermanjunge: yes, I know [03:03] jmoiron: sys.inspect? [03:03] hermanjunge: i want a function that list the functions of an object [03:03] brainproxy: try: var util = require('util') [03:03] brainproxy: util.inspect(inst) [03:04] brainproxy: can't remember if that shows you the prototype stuff or not, checking... [03:04] hermanjunge: nops [03:04] saikat has joined the channel [03:04] hermanjunge: tried both [03:04] hermanjunge: checked, and not... [03:05] hermanjunge: serialize... ? is there some kind of serializing?.. checking [03:05] brainproxy: how about util.inspect(inst.constructor.prototype) [03:06] brainproxy: though that only steps into the inheritance by 1 level [03:06] hermanjunge: brainproxy. cool [03:06] hermanjunge: that did it [03:06] hermanjunge: brainproxy++ [03:06] v8bot_: hermanjunge has given a beer to brainproxy. brainproxy now has 2 beers. [03:07] SubStack: Object.getOwnPropertyNames(obj.__proto__) [03:07] SubStack: and Object.getOwnPropertyNames(obj) [03:07] hermanjunge: SubStack! that was the function! [03:07] hermanjunge: Substack++ [03:07] v8bot_: hermanjunge has given a beer to Substack. Substack now has 1 beers. [03:07] SubStack: or Object.getPrototypeOf() if you want to be fancy about it [03:07] SubStack: those pesky unenumerable attributes, hiding in plain sight! [03:08] hermanjunge: getPrototypeOf [03:08] SubStack: it super sucks in the browsers that can't even enumerate unenumerables [03:08] hermanjunge: very useful [03:08] SubStack: getPrototypeOf isn't especially useful since you can just obj.__proto__ [03:08] neilk_ has joined the channel [03:08] hermanjunge: I had some fight trying to get accustomed to the way JS deals with objects [03:08] SubStack: same thing [03:08] hermanjunge: I have a dark past of C# [03:09] nilcolor has joined the channel [03:09] hermanjunge: Thanks brainproxy, Thanks SubStack [03:09] hermanjunge: going to write those in a gist [03:10] brainproxy: what I said doesn't work, lol, confused myself :p [03:10] brainproxy: brainproxy-- [03:10] v8bot_: brainproxy: Don't cheat! You can't give a beer to yourself. [03:11] SubStack: silly v8bot [03:11] tmzt: tmzt_-- [03:11] v8bot_: tmzt has taken a beer from tmzt_. tmzt_ now has -1 beers. [03:11] nuck: SMART v8bot_! [03:11] nuck: ... [03:11] nuck: haha [03:11] tmzt: I have -MAXINT beers [03:11] mbrevoort has joined the channel [03:11] Nuck_: Nuck++ [03:11] v8bot_: Nuck_ has given a beer to Nuck. Nuck now has 3 beers. [03:11] Nuck: ACTION whistles innocently [03:13] hermanjunge: hermanjunge-- [03:13] v8bot_: hermanjunge: Don't cheat! You can't give a beer to yourself. [03:13] hermanjunge: LOL [03:13] dmkbot: joyent/node: 03bronson: Can't execute repl with node -e - https://github.com/joyent/node/issues/1708 [03:13] crescendo|laptop has joined the channel [03:13] crescendo|laptop has joined the channel [03:14] JumpMast3r has joined the channel [03:17] Nuck: NodeUp should be 100% isaacs and mikeal. [03:19] AvianFlu: Nuck-- [03:19] v8bot_: AvianFlu has taken a beer from Nuck. Nuck now has 2 beers. [03:19] Nuck: SubStack » You're a foursquare master? [03:19] Nuck: AvianFlu » Thanks for removing my undeserved one [03:19] agnat has joined the channel [03:23] tim_smart: Been really liking https://github.com/Tim-Smart/async-array lately [03:23] weezle has joined the channel [03:24] tim_smart: I'm pretty sure everyone has there own favorite control flow library that they only created and know how to use [03:24] SubStack: yep [03:25] Nuck: tim_smart » Nice unparsed markdown readme :P [03:25] tim_smart: plaintext makes me jizz [03:25] SubStack: I only occasionally use my own flow control lib anymore [03:25] SubStack: but other people use it a lot it seems [03:25] Nuck: I don't even really use flow control [03:25] SubStack: it needs a reboot [03:26] davidban_ has joined the channel [03:26] tim_smart: Nuck: I don't use one for serial callbacks, but for parallel tasks I do [03:26] weezle has left the channel [03:27] zer has joined the channel [03:27] AvianFlu: guys [03:27] Nuck: tim_smart » Ah, I use async.js generally, it's mostly utilities for async stuff, but I have used the parallel setup once, so I could make sure X happened after Y and Z async processes were done [03:27] AvianFlu: CONTROL FLOW [03:27] AvianFlu: flow control refers to data flow over a network [03:27] AvianFlu: CONTROL FLOW is the flow of control through a running process [03:28] tim_smart: AvianFlu: Life. [03:28] Nuck: AvianFlu » The Flow Control is the task of controlling the control flow [03:28] tim_smart: Can you define that for me? [03:28] Nuck: So yes, Flow Control. [03:28] AvianFlu: Nuck: No. [03:28] rurufufuss has joined the channel [03:29] losing has joined the channel [03:29] Nuck: AvianFlu » Terms are subjective, they only exist because people accepted them [03:29] Nuck: And people accept that definition of flow control [03:29] Nuck: Therefore it's right [03:32] heavysixer has joined the channel [03:32] arg0s has joined the channel [03:32] astacy has joined the channel [03:33] bronson: why does node output such crap backtraces when a script throws? [03:33] Nuck: bronson » I like 'em [03:34] Nuck: But probably the async [03:34] bronson: Nuck, really? You find <> helpful? [03:34] pen_ has joined the channel [03:34] mynyml has joined the channel [03:34] joshkehn has joined the channel [03:34] bronson: node.js:203 is definitely not the line that threw the error. [03:34] Nuck: bronson » I ignore that line and search through the stack trace for anything in *my* code. [03:34] luckysmack has joined the channel [03:34] joshkehn has left the channel [03:34] bronson: Nuck, yeah... that's the definition of crap backtrace, no? [03:34] Zero4 has joined the channel [03:35] bronson: er, wait. you say you get a stack trace? [03:35] Nuck: Uh, yeah? [03:35] Nuck: bronson » It'll show if you throw, it's on error's stack [03:35] bronson: I don't. I just get that stupid node.js:203 line and the text that was thrown. [03:35] Nuck: v8: new Error().stack [03:35] stepheneb has joined the channel [03:35] v8bot_: Nuck: at Socket._onReadable (net.js:658:51) [03:36] v8bot_: Nuck: at Socket._onReadable (net.js:658:51) [03:36] Nuck: lol [03:36] tmzt: cool [03:36] v8bot_: Nuck: at Socket._onReadable (net.js:658:51) [03:36] Nuck: forgot the rate limiting [03:36] v8bot_: Nuck: at Socket._onReadable (net.js:658:51) [03:36] v8bot_: Nuck: at Socket._onReadable (net.js:658:51) [03:36] mwhooker has joined the channel [03:36] v8bot_: Nuck: [Output truncated...] [03:36] luckysmack: iv'e been looking at node to possibly build what could be a large project. I really like how node works. But came across this article http://al3x.net/2010/07/27/node.html about scaling issues in node and was wondering if anyone was familiar with it and hoped to maybe get some feedback on it. [03:37] wadey has joined the channel [03:37] bronson: Nuck, yeah, Error().stack looks sweet. [03:38] bronson: So how do I get node to print a stack trace when my scripts throw? [03:38] Nuck: bronson » You throw the error! [03:38] Nuck: bronson » If you're rolling your own error, use throw new Error() [03:39] bronson: Nuck, ah... I see what you're saying. [03:40] bronson: gah, that gets a litle messy, have to update 40ish throws. [03:40] bronson: wonder if I should monkey patch it... [03:40] ckpcw has joined the channel [03:41] rurufufuss: can anyone recommend a JSON RPC library for node.js? [03:42] rurufufuss: or anything that lets you do async requests over sockets, on any standard-ish data format [03:43] tmzt: res.send({'object'}) ? [03:43] bronson: luckysmack, what scaling issues? That article just complains that Node forces you into an async model. [03:43] tk has joined the channel [03:43] tmzt: there's express-resource now too [03:43] AvianFlu: that article also only uses academic computer science for its arguments [03:43] AvianFlu: real world >>>>>>> academia [03:43] rurufufuss: tmzt: is it possible to have res.send({'object'}, function() { *handler stuff* } ? [03:44] AvianFlu: rurufufuss, take a look at dnode or hook.io [03:44] tmzt: rurufufuss: no, that would be to send the object back to the client [03:44] rurufufuss: AvianFlu: cool, thanks, will take a look [03:45] lightcap has joined the channel [03:45] bronson: Do dnode or hook.io allow the stream to be interrupted? i.e. start sending a 1MB message, then either side wants to cancel before the transfer is done? [03:46] AvianFlu: dnode is about passing references to remote functions [03:46] AvianFlu: hook.io is about remote events, remote functions, and building distributed systems [03:46] bronson: AvianFlu, you gotta pass some data too, no? [03:46] ckpcw: I would also like to know this, bronson [03:46] AvianFlu: if you want to send big files, use data streams [03:46] AvianFlu: that's what I'd say [03:46] AvianFlu: you can pass JSON data over both [03:47] AvianFlu: I'm just saying, if big files are a concern, they should be dealt with in their own way [03:47] Nuck: Use WebSockets :P [03:47] luckysmack: because it talked about how often times a purely async model is not as good as one where you can have both readily available. and having both has been tested more to be able to scale on larger applications [03:47] luckysmack: bronson, ^^ [03:47] AvianFlu: luckysmack, "has been tested more" [03:47] AvianFlu: says one guy in an article [03:47] bronson: luckysmack, I thought that argument was utterly retarded. [03:47] bronson: I've used threaded servers in the past and I'm using async now. [03:48] Nuck: Honestly, I agree that having threads would be nice for some things, like bigger calculation things [03:48] yenz: mixing async and sync code is a recipe for disaster [03:48] bronson: And async tends to be WAY faster than threaded in every case. [03:48] yenz: or at least insanity [03:48] Nuck: But that's what WebWorkers are for, right? [03:48] luckysmack: well thats why I wanted to get other opinions on that article. because i can see both views. so im just not sure. as theres no comments where other could even comment on it [03:48] Nuck: luckysmack » IT scales well [03:48] yenz: async is mega annoying at first because of the callback soup [03:48] Nuck: Trust me [03:48] yenz: but then you get used to it [03:48] bronson: like Avian said: real world >>>>>>> academia [03:48] yenz: and life carries on [03:48] bronson: AvianFlu++ [03:48] v8bot_: bronson has given a beer to AvianFlu. AvianFlu now has 2 beers. [03:48] Nuck: Lots of people are using Node [03:48] Nuck: GitHub, for example [03:49] tmzt: anybody know of a async-driven webserver that can parse apache .htaccess (limited featuers) [03:49] Nuck: tmzt » Nginx? [03:49] luckysmack: Nuck, i agree, most of scalability is the ability to plan the application and build it properly [03:49] tmzt: event-driven, sorry [03:49] tmzt: Nuck: right, but the second part [03:50] avalanche123 has joined the channel [03:50] Nuck: tmzt » Nginx can't parse .htaccess? how about apache with mod_events? [03:50] ckpcw has left the channel [03:50] luckysmack: yea i saw githubs posts on using node in the backend. [03:50] SubStack: tmzt: write a module to parse htaccess in node maybe? [03:50] tmzt: Nuck: havne't looked at mod_events [03:50] SubStack: that would be pretty useful [03:50] Nuck: Or what SubStack said. [03:50] tmzt: SubStack: I'm thinking more in nginx itself [03:50] tmzt: just to see what it would look like against apache in some real world applications where people expect .htaccess to work [03:51] tmzt: honestly, I'd prefer if applications just parsed request_uri themselves rather than using rewrites [03:51] tmzt: in the server [03:51] bronson: Dangit, I don't want to update all the throw sites because some of this js is used in the browser. [03:51] bronson: And obviously I can't monkeypatch the throw keyword. [03:51] bronson: So I'm boned. [03:51] incon_ has joined the channel [03:51] tmzt: bronson: maybe you could process the js like SubStack does [03:51] bronson: I believe more now than ever that Node's error handling sucks pants. [03:52] Nuck: bronson » You're doing it wrong [03:52] Nuck: bronson » What're you doing right now? [03:52] AvianFlu: bronson, why? [03:52] luckysmack: ok guys, thanks for the input. [03:52] bronson: AvianFlu, I have scripts that use libraries that throw on exception. [03:52] rurufufuss: can node_modules (seems to be installed there by npm) be safely moved around? [03:52] bronson: And I can't get node to print the line number that threw. [03:53] devaholic: rururururufufufufuss: no [03:53] Nuck: bronson » If they're sync, wrap in try { } catch () {} [03:53] Nuck: If it's async, the author is fucking stupid [03:53] AvianFlu: Nuck++ [03:53] v8bot_: AvianFlu has given a beer to Nuck. Nuck now has 3 beers. [03:53] rurufufuss: ddddddddddddddddddeevaholic, thanks! [03:53] bronson: I don't want to modify the libraries to throw Error().stack (but that seems best) [03:53] AvianFlu: but also, bronson, there are modules to help with that [03:53] AvianFlu: look at node-burrito maybe [03:54] bronson: Nuck, that should get me 50% of the way there. [03:54] SubStack: well node-stackedy [03:54] bronson: AvianFlu, good lord, dynamically rewrite these scripts?? [03:54] Nuck: haha [03:54] AvianFlu: I linked the wrong module [03:54] Nuck: Fuck yeah for SubStack's insanity [03:54] SubStack: bronson: search for "long stack traces" [03:55] SubStack: that's probably what you want [03:55] SubStack: just ignore the crazy person talking to you right now [03:55] SubStack: by which I mean myself [03:55] AvianFlu: lol [03:55] bronson: SubStack, you're talking about https://github.com/tlrobinson/long-stack-traces ? [03:56] bronson: verrrry interesting. [03:56] SubStack: yes [03:56] SubStack: node will have better stack traces in the future, just not yet [03:56] SubStack: without using modules [03:56] bronson: Still, wtf is so hard about just printing the file/line that threw the error? [03:57] bronson: SubStack, right on. I trust that. [03:57] AvianFlu: a lot [03:57] SubStack: bronson: or felix wrote a module to use the v8 stack trace api [03:58] SubStack: might be a better choice [03:58] yuri_ has joined the channel [03:58] SubStack: https://github.com/felixge/node-stack-trace [03:58] yuri_: hi guys [03:58] bronson: As always with Node, there are multiple solutions. :) [03:58] SubStack: oh they even work together! [03:58] wadey has joined the channel [03:58] Nuck: (read: 500 solutions, 3 of which are SubStack's) [03:58] yuri_: anybody knows a xsd schema validation lib for node? [03:59] SubStack: I haven't even released a new module in like 2 weeks [03:59] tmzt: running out of names? [03:59] Nuck: SubStack » D: [03:59] Nuck: SubStack » You go into withdrawals yet? [03:59] SubStack: I've mostly been fixing bugs in the existing modules [04:00] SubStack: and building out a new product for browserling [04:00] JaKWaC_ has joined the channel [04:00] Nuck: SubStack » Is that the thing you plugged last NodeUp? [04:00] tmzt: wish somebody would bring back workspot and release a tablet client [04:00] tmzt: at a fair price [04:00] Nuck: Dear god that 8bit beats attempt [04:00] jesusabdullah: It looks like the wayback machine could use an html5 makeover :( [04:01] SubStack: yep! [04:01] luke`_ has joined the channel [04:01] schwab has joined the channel [04:01] SubStack: hey I'll share it in here why not [04:01] SubStack: you'll probably all break it but whatevs [04:01] SubStack: curl -s substack.net/snippets/test.js | curl -sNT- browserling.com:9088/?browsers=chrome/6.0,firefox/3.5,iexplore/9.0,iexplore/8.0 [04:01] slloyd_ has joined the channel [04:01] tmzt: -s ? [04:02] SubStack: -s for silent [04:02] tmzt: cool [04:02] SubStack: otherwise curl spams the stderr with progress bar output [04:02] slloyd_ has joined the channel [04:02] Nuck: SubStack » Wow, pretty nice [04:03] SubStack: and the test it runs is just http://substack.net/snippets/test.js [04:03] tmzt: can you detect stupid ssl errors in random version of ie in an automated process? [04:03] towski has joined the channel [04:03] Nuck: haha [04:03] Nuck: Good idea ;) [04:03] SubStack: tmzt: possibly [04:04] tmzt: that is really awesome though [04:04] dexter_e has joined the channel [04:05] SubStack: hmmm looks like it broke though! [04:06] SubStack: there it goes again [04:06] SubStack: had to restart it [04:06] SubStack: very unstable right now [04:07] JaKWaC_: SubStack: I presume you've seen http://www.browserstack.com/? [04:07] bronson: very slick. [04:07] SubStack: JaKWaC_: yep [04:07] JaKWaC_: I just saw it the other day. [04:07] bronson: SubStack, surprised they're not run async. :) [04:08] SubStack: JaKWaC_: check out my own startup too http://browserling.com/ [04:08] SubStack: unlike most startups, it's not in private beta [04:08] dmkbot: joyent/node: 03seebees: Tests for Sockets - https://github.com/joyent/node/issues/1699 [04:08] isaacs has joined the channel [04:08] brainproxy: SubStack: that looks awesome, thanks for sharing [04:09] SubStack: an isaacs appears! [04:09] tmzt: public alpha? :) [04:09] SubStack: I don't even know how to build things privately [04:09] JaKWaC_: That javascript testing looks pretty awesome. [04:09] JakeyChan_ has joined the channel [04:09] kurtzhong_ has joined the channel [04:10] brainproxy: yeah, could definitely prove very sweet for continuous integration setups [04:11] SubStack: brainproxy: I already have 2 shops queueing up to get this service deployed! [04:11] SubStack: hopefully that goes well [04:11] brainproxy: SubStack: now, what would be cool is if in the test you could define points at which a screenshot is snapped [04:11] SubStack: the technology is easy, building out the stuff to charge for it is much harder [04:11] SubStack: brainproxy: that's in the pipeline [04:12] OmidRaha has joined the channel [04:12] SubStack: pkrumins is building that part of it [04:12] brainproxy: ACTION bows humbly before Substack's coding might [04:12] SubStack: I'm thinking you could just do t.screenshot(name) [04:12] SubStack: we already have all the tech necessary to do that, it's just a matter of integrating it all into a nice interface [04:13] SubStack: which is much harder than just prototyping the functionality to start with [04:13] brainproxy: yeah, I imagine productizing in a robust way is a big project in itself [04:15] zemanel has joined the channel [04:16] rurufufuss: SubStack: are you the guy to ask about dnode in general? [04:16] SubStack: yep! [04:16] jacobolus has joined the channel [04:17] rurufufuss: sweet, not that I have anything to ask atm :p [04:17] SubStack: brainproxy: I can't wait to start hacking up the staging proxy swapper for continuous integration with testling [04:18] SubStack: push new code to a service, run it on a staging port, run the tests, swap the staging service with production if the tests pass [04:18] SubStack: it's going to be such win [04:20] Nuck: Jesus fuck I'm able to do shit so much faster with Mongoose + HTML instead of Mongoskin + JSON [04:21] willwhite has joined the channel [04:21] Nuck: I'm honestly amazed [04:21] Nuck: And kudos to the folks who took Mongoose from the unstable unsupported horror to what it is now :D [04:23] dmkbot: joyent/libuv: 03erickt: Fix a couple warnings, added some asserts, and compiling with gcc-4.5 and mingw-w64 - https://github.com/joyent/libuv/issues/186 [04:23] godzirra has joined the channel [04:24] godzirra: Can anyone please take a look at my pastie: http://pastie.org/2535483 ... successful is set to 1, so obviously its true, so why is the #if helper not triggering? [04:24] bshumate has joined the channel [04:24] bshumate has joined the channel [04:24] nomurrcy` has joined the channel [04:24] godzirra: And even if it wasn't triggering, why is the else block not triggering either? [04:25] brainproxy: SubStack: yeah, that's awesome, I've been dreaming of something like that [04:25] Nuck: brainproxy » Hook it in with the continuous integration missile launcher [04:25] Nuck: And win :D [04:25] orozoaoz has joined the channel [04:25] bronson: SubStack, I'd like to pass 10MB or worse arguments to dnode calls. (picture something like decompressJpeg) [04:26] bronson: any hint on solving this decently? [04:26] SubStack: bronson: just chunk it up and send it over a stream [04:26] SubStack: browserling.com uses dnode to send bulk image updates [04:26] bronson: sweet, sounds just like what I need. [04:27] SubStack: bronson: this is the basic approach http://substack.net/posts/9bac3e [04:27] jchris has joined the channel [04:27] brainproxy: SubStack: i know you're the author of dnode, but have you looked at the nowjs project? any thoughts on it relative to your own concoction? [04:28] SubStack: yep I've looked at nowjs but not lately [04:28] bronson: SubStack, rock. reading... [04:28] godzirra: Anyone have any info on my handlebars issue? :) [04:28] SubStack: a lot of people like the nowjs api and the replication [04:28] dseif_ has joined the channel [04:28] SubStack: dnode has a more restricted scope I would say [04:28] Nuck: ACTION can write js with no handlebars, no handlebars, no handlebars [04:29] godzirra: Nuck: Well I can't. :p [04:29] brainproxy: SubStack: yeah, i was looking again today at both, for a situation where an rpc/rmi approach is warranted over REST, and was attracted by the nowjs replication stuff [04:30] SamuraiJack has joined the channel [04:30] bronson: SubStack, what size chunk? 128K? [04:31] SubStack: brainproxy: dnode/nowjs is more useful where you've got async requests that might take a while to finish I think [04:32] SubStack: and when request responses provide more actions you can do with a response [04:32] brainproxy: sure [04:32] SubStack: stateful interactions [04:32] SubStack: bronson: probably whatever size chunk an fs.createReadStream() gives from a file on disk will work [04:32] avih has joined the channel [04:33] brainproxy: SubStack: indeed, that's the use case I'm looking at [04:33] bronson: sounds good. [04:33] brainproxy: have a c++ sdk thing that someone is helping me to wrap w/ a js api by way of a node addon [04:35] brainproxy: interacting w/ it through a browser is going to be easier to model w/ nowjs/dnode [04:36] SubStack: with dnode you can also prototype your browser-facing apis on the command-line [04:37] bronson: nowjs seems like a leaky abstraction. [04:37] bronson: rpc is bad enough. :) [04:37] brainproxy: SubStack: huh, interesting point, hadn't thought about whether I could do that w/ nowjs [04:38] noodlehaus has joined the channel [04:38] AvianFlu: dnode++ [04:38] v8bot_: AvianFlu has given a beer to dnode. dnode now has 1 beers. [04:38] brainproxy: bronson: well in some cases it seems like it's the path of least reistance [04:38] springmeyer has joined the channel [04:38] AvianFlu: hookio++ [04:38] v8bot_: AvianFlu has given a beer to hookio. hookio now has 1 beers. [04:39] bronson: brainproxy, fo sho. If your problem requires keeping a fairly flat hash of values in sync, nowjs would rock. [04:40] brainproxy: well basically i've got this proprietary client/server thing, which I'm wrapping in a javascript api ala nodejs addon [04:40] godzirra: Can anyone please take a look at my pastie: http://pastie.org/2535483 ... successful is set to 1, so obviously its true, so why is the #if helper not triggering in the handlebars template? [04:41] caaakeeey has joined the channel [04:41] brainproxy: bronson: by using dnode/nowjs I'm basically exposing the API directly into the browser, so I can "drive" it through a web based admin ui [04:41] incon has joined the channel [04:42] caaakeeey: can anyone point out a good tutorial/example of using node.js to implement a restful api for neo4j? [04:42] febits has joined the channel [04:42] joshthecoder has joined the channel [04:42] bronson: brainproxy, which are you using? dnode or nowjs? [04:43] brainproxy: bronson: leaning toward nowjs, because I can then auto-sync certain properties of the server into the browser, at leas that's my theory .. just getting started w/ it tbh [04:44] nomurrcy` has joined the channel [04:46] zaller has joined the channel [04:46] dseif_ has joined the channel [04:47] jhurliman has joined the channel [04:47] bronson: Yeah, I don't have much state to share so stuffing 100% rpc into nowjs seems a little contrived. [04:47] dexter_e has joined the channel [04:47] bronson: I'll give dnode a shot. [04:48] bronson: the magic pocket seems a useful tool for some use cases. [04:48] Nuck: magic pocket? [04:48] Nuck: Is that like a bag of holding? [04:49] SubStack: I would have called it a bag of holding [04:49] SubStack: in fact I might just write a dnode plugin called bag-of-holding [04:49] JSManiacs has joined the channel [04:49] CarterL: hah [04:49] bronson: And the 2 week streak comes to an end... [04:50] sebastianedwards has joined the channel [04:50] sneakyness has joined the channel [04:51] nomurrcy` has joined the channel [04:51] zaller: hey quick question if anyone can help i am having some issues with connect and just wondering if what i am trying to do is possible i have connect using sessions with a postgres database and using nowjs to call funcitons on the server i want to uses sessions in the now functions on the server i have the session id through this.user.cookie but i need access to connects store so i can use the get function but cant seem to get this to [04:51] Nuck: Did I just unknowingly give SubStack a name? [04:51] JakeyChan_ has left the channel [04:51] kertz has joined the channel [04:52] JakeyChan has joined the channel [04:52] Nuck: zaller » The sessions do exist on the server, that's correct [04:52] zaller: yea [04:52] zaller: backed by postgres [04:52] Nuck: Go find them in your database? [04:52] Nuck: Or check the code for postgres-sessions [04:52] zaller: i can access the session data if its through a request [04:53] skoom has joined the channel [04:53] zaller: and i have a session id if a call is made using nowjs [04:53] zaller: but just need to get the session data [04:53] rurufufuss: SubStack: can I assume dnode's protocol parses goes through the socket input and counts {}, until a whole json unit is received? [04:53] zaller: it seems the store has to have a get function that takes an sid but i cant seem to access that function [04:54] SubStack: rurufufuss: it's newline-terminated [04:54] rurufufuss: dnode.js implementation* I mean [04:54] rurufufuss: what if I give a .json that contains a newline? [04:54] rurufufuss: <-- trying to make node.js talk to my c++ process atm [04:54] Nuck: zaller » Query it yourself? [04:54] SubStack: .. JSON.stringify('foo\nbar') [04:55] SubStack: v8: JSON.stringify('foo\nbar') [04:55] v8bot_: SubStack: ""foo\\nbar"" [04:55] SubStack: ^^^ [04:55] Nuck: rurufufuss » it won't work last I checked [04:55] Nuck: Got v8bot_ is lagging tonight [04:55] SubStack: Nuck: false [04:55] Nuck: Dunno what's up with my internet :/ [04:55] zaller: i thougth about that but it seems like there should be a better way not [04:55] Nuck: zaller » There are ways for socket.io, I know [04:55] rurufufuss: SubStack: can I assume that whatever json comes out of dnode will be well formed and not have any '\n' in the middle though? [04:55] rurufufuss: by well formed, I mean, compacted, sorry*& [04:57] nomurrcy` has joined the channel [04:57] SubStack: rurufufuss: the things that you think are issues are not issues [04:58] test has joined the channel [04:58] SubStack: or suspect [04:58] freeformz has joined the channel [04:58] rurufufuss: SubStack: cool, that's a relief then [04:58] Nuck: That's a SubStack module for ya [04:59] Nuck: Completely complete [04:59] test has joined the channel [04:59] Nuck: Ugh [04:59] Nuck: Why does Mongoose have such absolutely shitty docs? [04:59] Nuck: I *would* fork it and improve it [04:59] darshanshankar has joined the channel [05:00] Nuck: Except, I don't know what I'm doing [05:00] AvianFlu: because open-source developers are busy people who usually aren't getting paid to do what they're doing [05:00] Nuck: So I have no knowledge beyond those docs [05:00] Nuck: AvianFlu » haha true [05:00] Nuck: But for something so popular [05:00] Nuck: You'd think people would document it better :P [05:00] maxogden: the amount of words youve contributed to my irc log complaining about mongoose is much more than the amount of effort it would take to fork and fix one line of documentation as you figure stuff out :) [05:01] AvianFlu: it doesn't matter how popular your node.js module is if your day job is a php shop or a supermarkey [05:01] maxogden: node is a young community and there shouldnt be any expectations of quality [05:01] AvianFlu: supermarket [05:01] AvianFlu: maxogden++ [05:01] v8bot_: AvianFlu has given a beer to maxogden. maxogden now has 1 beers. [05:01] Nuck: Like, IDK how to delete something. I'll probably console.log the object and try to track down how to delete, but it's still something extremely lacking [05:01] Nuck: And to me Node is not that young [05:02] Nuck: I remember back to 0.2.6 [05:02] chrisdickinson: i'd love it if mongoose docs had more of a clear delineation of what was coming from mongo and what was coming from mongoose. [05:02] Nuck: So it seems old to me :P [05:02] Nuck: chrisdickinson » That too haha [05:02] Nuck: chrisdickinson » Or even just a list of what all's coming! [05:02] chrisdickinson: and i can definitely relate to the "i don't know enough about it to add documentation for it" sentiment. [05:03] Nuck: haha [05:03] Nuck: chrisdickinson » Yeah, it's speeded development for me, since queries are *so* easy [05:03] Nuck: But, goddamn, really? [05:03] Nuck: Document that shit, guys [05:03] Nuck: It needs a Nodejitsu-esque docs system [05:04] AvianFlu: for reference, nuck, docs.nodejitsu.com took hundreds of man-hours [05:04] Nuck: Mongoose is a beast, they can't expect everyone who uses it to understand enough to add docs [05:04] Nuck: AvianFlu » haha I know, but it's a beast and it's awesome [05:04] Nuck: Isn't it just a git repo? [05:04] Nuck: That people can fork and send pull requests to or something? [05:05] AvianFlu: it's IN a git repo, yes [05:05] AvianFlu: but my point is that writing docs takes a ton of time [05:05] thalll has joined the channel [05:05] chrisdickinson: AvianFlu: noted that good docs take a lot of work. but part of writing a good library is writing good docs. [05:05] Nuck: AvianFlu » Oh, yeah. Well, if you make it easy as hell to contribute, and separate docs from project, you get higher-quality docs [05:05] Emmanuel has joined the channel [05:05] Nuck: Also, look at Express [05:05] Nuck: Very simple docs [05:05] chrisdickinson: in the same sense that good libraries have good test coverage, and that's work as well. [05:06] AvianFlu: who maintains mongoose, is it just Some Dude? [05:06] Nuck: AvianFlu » A few people at LearnBoost [05:06] AvianFlu: I guess you have a little more cause to complain then [05:06] Nuck: Guillermo Rauch, Nathan White, Brian Noguchi, and Aaron Heckmann [05:06] AvianFlu: but only a little, they're busy people and it's open source [05:06] AvianFlu: they put out a bunch of stuff [05:06] Nuck: AvianFlu » Well, yeah, but *4 guys* [05:07] AvianFlu: 4 guys who do a ton of other things [05:07] Nuck: Well, definitely [05:07] Nuck: But LearnBoost has essentially had three big things come out of there: Express, Socket.io, and Mongoose [05:08] maxogden: inline docs https://github.com/LearnBoost/mongoose/blob/master/lib/model.js#L34 + http://i.imgur.com/wX9c9.png = super easy contributions [05:08] Nuck: Admittedly Express is mostly tj and tj somehow always finds time [05:08] Nuck: I don't know how the hell he does it [05:08] chrisdickinson: maxogden: inline docs aren't the same thing as full on library documentation. [05:08] Nuck: Inline docs suck ass [05:08] Nuck: They tell me a lot if I wanna contribute code [05:08] Nuck: Not so much if I wanna interface with it [05:08] chrisdickinson: they help! but inline docs are targeted at a different audience than library documentation. [05:09] Nuck: chrisdickinson » See above :P [05:09] chrisdickinson: Nuck: agreed [05:09] Nuck: We need something like inline docs which provide a way of generating easy documentation for a node module's interfaces >_> [05:10] chrisdickinson: Nuck: I kind of think there's no substitute for hand written docs. [05:10] Nuck: The ease of documentation of inline autogenerated documentation, but applied to an external interface [05:10] Nuck: chrisdickinson » Well, no, but anything is better than nothing :P [05:10] chrisdickinson: Good docs are fractal, to borrow a phrase [05:10] Nuck: And if it's everything listed abut nothing documented [05:10] maxogden: im just saying that inline docs exist but those who are complaining about the docs on an open source project that they are using arent contributing at this point in time at all to them. i just think thats pretty lazy [05:11] Nuck: I'd rather have that than ntohing listed out and half the stuf documented [05:11] chrisdickinson: maxogden: that's not a great defense, i don't have the domain knowledge to write the appropriate docs for mongoose. [05:11] Nuck: maxogden » Once again, I *would* contribute _if I knew shit about what I'm doing_ [05:11] Nuck: But I don't [05:11] maxogden: so you know nothing about mongoose? [05:11] Nuck: Because I learned everything I know from (get this) /the docs/. [05:11] fangel has joined the channel [05:11] Nuck: So I know nothing that the docs haven't taught me [05:12] maxogden: you havent read a single line of the code? [05:12] Nuck: maxogden » Nope, never have never will [05:12] Nuck: Well, I might [05:12] Nuck: When I understand it [05:12] maxogden: so if you are reading the code and you figure something out one day [05:12] chrisdickinson: I have, but I still don't understand mongo enough to know what's part of mongoose and what's part of mongo. [05:12] Nuck: But I don't know the basics of *interfacing* with Mongoose, much less working on it [05:12] maxogden: consider putting a comment in there that represents an inuntuitive interface that you deduced your way out of [05:12] Nuck: Or reading it [05:13] maxogden: then send a nice pull request to the mongoose people saying 'hey this stuff sucked to learn' [05:13] Nuck: Reading the code tells me jack shit [05:13] maxogden: and even if they say 'your contribution is shit' at least they are getting feedback that certain parts of their api suck [05:13] maxogden: Nuck: ... [05:14] Nuck: I need to know what the interface is, I didn't design it, therfore reading the code is a general waste of time [05:14] Nuck: Once I know the interfaces, I can learn the internals [05:14] Nuck: Not the other way around [05:14] Nuck: That's just plain ludicrous [05:14] Nuck: All I want is a *list* of the functions and objects that are publically exposed on each thing [05:14] maxogden: i wouldnt recommend investing time in a fast moving, poorly documented community if those are your priorities [05:15] maxogden: either that or channel your need-for-documented-interfaces energies into making mongoose a better tool [05:15] AvianFlu: all you want is a list of publicly exposed functions and objects, and you can't get that from reading code? [05:15] chrisdickinson: maxogden: fast moving and poorly documented do not go hand in hand. [05:15] Nuck: I don't care where it's from, I don't care who built it, I don't even care what it does. Just tell me the name and whether it's property or method [05:15] ryan[WIN] has joined the channel [05:15] chrisdickinson: ACTION wants more than that, personally. [05:15] Nuck: AvianFlu » Not really, because it's a big complex best [05:15] Nuck: *beast [05:15] Nuck: You need to get inside that beast to comprehend it [05:16] maxogden: chrisdickinson: they shouldnt but often do [05:16] Nuck: And I cannot get inside if I do not know the bounds of what I'm in [05:16] chrisdickinson: maxogden: it's like shipping a library without tests. [05:16] chrisdickinson: tests tell me if your library works, docs tell me if your library is worth my time -- not to put too fine a point on it. [05:16] Nuck: Honestly, Express is a *wonderful* example of what greats docs are. [05:17] chrisdickinson: express, and node itself are very well documented. [05:17] Nuck: And Node itself is another example, in another way [05:17] isaqual has joined the channel [05:17] chrisdickinson: and when i say "give high level overviews", things like the first paragraph of http://nodejs.org/api/buffers.html are what come to mind. [05:17] Nuck: Two different approaches, both very amazing [05:17] Nuck: A paragraph describing an Object [05:17] Nuck: And a sentence or two per method [05:18] chrisdickinson: "what's the general ethos behind this feature? what are some guidelines for using it?", then a method list with the inputs and outputs described, as well as why you might want to use that method. [05:18] chrisdickinson: example code when necessary. [05:18] Nuck: And don't even bother with most properties [05:18] Nuck: Maybe some example code too [05:18] Nuck: There need to be some standards for docs [05:18] Nuck: Because some projects are just absolutely sub-par [05:18] noodlehaus has joined the channel [05:18] Nuck: If they listed the methods for Mongoose, I would go in and figure out more info and fill in blanks [05:19] Nuck: But they don't tell me what I'm working with, so I can't really do jack shit [05:20] neoesque has joined the channel [05:20] Nuck: chrisdickinson » You say you don't know what's mongo and what isn't? I can probably help with that, I'm switching from Mongo to Mongoose (there was a period of mongoskin and globals, but I'm past that now :P) [05:21] felixge has joined the channel [05:21] felixge has joined the channel [05:21] chrisdickinson: Nuck: it's less of a specific set of problems I've had, and more of a "oh, I wasted 10 minutes trying to find an example in the mongoose examples / docs only to realize feature X is built into the mongo connection." [05:21] isaacs has joined the channel [05:21] Nuck: chrisdickinson » ah, I can see that haha [05:22] Nuck: chrisdickinson » You deal with deletion yet? [05:22] chrisdickinson: which happens a bit too often for me to be comfortable writing docs for mongoose. [05:22] Nuck: That's what I'm trying to figure out for my activation email codes [05:22] chrisdickinson: Model.remove()? [05:22] chrisdickinson: well, instance.remove(callback)? [05:22] Nuck: chrisdickinson » Wow, that's surprisingly easier than I'd expected haha [05:23] chrisdickinson: yeah, i definitely ran through the list of "delete? nope. erase? nope. ...remove? ah. okay. finally." before getting it. [05:23] Nuck: chrisdickinson » I think the biggest problem with the Mongoose docs is the organization :S [05:23] Nuck: It's not organized by Objects [05:23] Nuck: No, it's organized by "concepts" which are in Mongoose [05:23] Spion_ has joined the channel [05:23] chrisdickinson: Nuck: a lil' bit of that, and a lil' bit of it is that they should point to the mongo doc where appropriate. [05:23] Nuck: (which essentially tells me jack shit) [05:24] jspiros has joined the channel [05:24] Nuck: chrisdickinson » The problems are multitudinous [05:24] chrisdickinson: "This is a query. Queries are passed directly through to the mongo connection. You should look at them ", for example. [05:24] Nuck: ACTION slaps chrisdickinson for using "here" as a link [05:24] chrisdickinson: again, fairly noobish problems on my part, but it would've saved me a bit of time, cumulatively, to have these sorts of things mentioned in the doc. [05:24] Nuck: This isn't the 90's >:C [05:25] AAA_awright has joined the channel [05:25] chrisdickinson: Nuck: it's okay dude, i'll open it in a frameset, no worries [05:25] Nuck: chrisdickinson » hahahaha [05:25] Nuck: chrisdickinson » Only if there's an imagemap in there ;3 [05:25] noodlehaus: http://mongoosejs.com/docs/api.html -- i'm having a hard time learning to do things from this [05:25] Nuck: noodlehaus » No kidding [05:25] noodlehaus: it's nice to click on though [05:25] Nuck: Inline docs: great for contributors, not for users [05:25] noodlehaus: with the fade in and out stuff [05:26] Nuck: noodlehaus » haha Dox is [05:26] chrisdickinson: also, for some reason my google chrome thinks the page is in haitian. which is weird. [05:26] Nuck: ACTION <3 Dox [05:26] Nuck: chrisdickinson » What page? [05:26] chrisdickinson: the above docco link [05:27] Nuck: chrisdickinson » That's odd [05:27] Nuck: Mine doesn't? [05:28] chrisdickinson: must be a heisenbug. [05:28] dreamdust: ≤ [05:28] dreamdust: 3 [05:28] Nuck: haha been a while since I hear that term [05:28] Nuck: <3? [05:37] godzirra: Can anyone please take a look at my pastie: http://pastie.org/2535483 ... successful is set to 1, so obviously its true, so why is the #if helper not triggering in the handlebars template? [05:39] maxogden has left the channel [05:39] incon has joined the channel [05:39] wookiehangover has joined the channel [05:40] clu3 has joined the channel [05:41] openpercept has joined the channel [05:42] openpercept has left the channel [05:42] stash1 has joined the channel [05:44] gerard0` has joined the channel [05:45] bronson: godzirra, not sure anyone here uses mustache [05:45] tbranyen: i use combyne.js its the best... TO EAT [05:46] cronopio has joined the channel [05:47] pen_ has joined the channel [05:47] yozgrahame has joined the channel [05:47] felixge has joined the channel [05:49] DennisRasmussen has joined the channel [05:50] godzirra: bronson: Yeah, I've noticed. Oh well. I simplified my template more and it works now. [05:50] KingJamool has joined the channel [05:53] Aiden has joined the channel [05:54] Nuck: tbranyen » You should add combyne.js to my template engine benchmark :P [05:54] Nuck: http://jsperf.com/template-benchmark [05:54] rxgx has joined the channel [05:55] dynacker: you're a benchmark! [05:55] Nuck: The other scripts didn't work when I shoved them in script tags, so I jsut dropped their code in the init code, being a total lazy-ass [05:55] Nuck: EJS is crazy fast [05:56] Nuck: I think part of that comes from the fact that it gets compiled into pure JS [05:56] zemanel has joined the channel [05:56] FireFly|n900 has joined the channel [05:57] tbranyen: Nuck: i've done some benchmarking [05:58] tbranyen: its not something that interests me until i can figure out how to properly benchmark the usability of sad engine [05:58] tbranyen: said* [05:58] boehm has joined the channel [05:59] nilcolor has joined the channel [06:00] chrisdickinson: ACTION adds plate :\ [06:00] Nuck: tbranyen » I'm just comparing everything in raw speed [06:00] Nuck: chrisdickinson » haha [06:00] Nuck: So many engines, so little time to try them all [06:00] chrisdickinson: wooo, slowest! [06:01] chrisdickinson: though, it's the only async one on there, i think. [06:01] Nuck: well, precompiled EJS is similar [06:02] Nuck: You put the initialization at the startup of your program [06:02] Nuck: And that takes a while [06:02] Nuck: (still faster than Mustache) [06:03] chrisdickinson: Nuck: mine has setZeroTimeout's between resolving variables [06:03] Nuck: chrisdickinson » Eek, 2,000 only? [06:03] Nuck: ah [06:04] Nuck: chrisdickinson » To get 100% slower though [06:04] chrisdickinson: Nuck: it tries to render nodes in parallel when possible, but '{{ obj.lookups }}' are eterated using setZerotimeout [06:04] Nuck: That's quite a feat [06:04] Nuck: chrisdickinson » Should add more test cases, even if it means removing my own lib [06:05] Nuck: Having a similar test in both Plate and Mustache should be easy enough, by the sounds of it [06:05] Nuck: EJS, IDK [06:05] Nuck: chrisdickinson » I'm actually quite amazed with how Parse.js held up. It's a simple Regex + loop [06:06] Nuck: Nothing special about it [06:06] NetRoY has joined the channel [06:06] Nuck: But yet it benchmarks over twice the speed of Mustache.js [06:06] chrisdickinson: (one upside is that I could pass a view of "{html:function(ready) { $.get('/html', function(data) { ready(null, data) })}}" and plate can resolve it) [06:07] Nuck: heh that's actually a really cool trick [06:07] chrisdickinson: i like it :) [06:07] BillyBreen has joined the channel [06:08] Nuck: chrisdickinson » Seeing the benchmark on Precompiled EJS made me switch to that for my emails stuff [06:08] Nuck: 700,000 [06:08] Nuck: I mean, shit [06:08] Nuck: well over twice as fast as Parse [06:08] tonyjcamp has joined the channel [06:09] Nuck: Which means I'll be freeing up the process back to idle quicker [06:09] Nuck: Which means it scales better [06:09] Nuck: It can be doing other tasks sooner [06:09] chrisdickinson: well, technically, plate idles almost immediately ;) [06:09] DrMcKay has joined the channel [06:09] Nuck: Optimizations matter less in async tasks [06:09] Nuck: chrisdickinson » haha [06:09] Nuck: well, with EJS, it also gives the response really fast [06:09] Nuck: Not to mention, EJS is stabler than plate [06:10] chrisdickinson: like, .. zero recursion, generally. so even if it takes a while, it's not blocking anything. [06:10] __doc__ has joined the channel [06:10] chrisdickinson: stabler? [06:10] Nuck: chrisdickinson » haha recursion is fun [06:10] Nuck: chrisdickinson » Yeah, ±5.45% versus Prempiled EJS which is ±0.65% [06:10] chrisdickinson: ah [06:11] chrisdickinson: yeah, that's the setZeroTimeout. [06:11] kurtzhong_ has joined the channel [06:11] Nuck: chrisdickinson » Well, also the sample size [06:11] Nuck: The bigger the sample size, the smaller the margin [06:12] chrisdickinson: ah [06:12] Nuck: ACTION can't believe he's almost done with his registration system already [06:13] noodlehaus has joined the channel [06:14] tbranyen: http://jsperf.com/template-benchmark/3 [06:14] tbranyen: addded [06:15] firebus has joined the channel [06:15] tmcw has joined the channel [06:15] noodlehaus: hi guys, can someone tell me how to get the ip of the remote client in express? similar to what $_SERVER['REMOTE_ADDR'] in php gives [06:15] thalll has joined the channel [06:17] den512 has joined the channel [06:20] Nuck: Haha I think my script is the fastest template script that is only used by one person :P [06:20] smtlaissezfaire_ has joined the channel [06:22] devongovett has joined the channel [06:23] thalll has joined the channel [06:24] torsd has joined the channel [06:25] romanb has joined the channel [06:27] thisisit has joined the channel [06:29] thisisit: hello, anyone know any projects which use node.js in client side for direct communication with other machines?? [06:31] dsirijus has joined the channel [06:32] admc has joined the channel [06:32] robotmay has joined the channel [06:32] markwubben has joined the channel [06:32] towski has joined the channel [06:35] DrMcKay: thisisit: not directly, but at Relief1 we're using Hook.io to talk to our server [06:35] DrMcKay: thisisit: Hook.io is a browserified version of Hook.io library, in this case [06:36] DrMcKay: thisisit: but I guess this doesn't count, it's not node, after all [06:37] Nuck: "node.js in client side" [06:37] Nuck: Nonsensical :V [06:37] Nuck: Unless [06:37] Nuck: thisisit » Chess@Home? [06:39] Remoun has joined the channel [06:41] wadey has joined the channel [06:42] thisisit: well, i actually don't know about bitcoin. but thinking about making a web app for bitcoin, the wallet can use node.js at client side. right?? [06:42] thisisit: i meant something similar. anyone used similarly? [06:43] jetienne has joined the channel [06:44] dreamdust: @thisisit: https://github.com/bitcoinjs [06:44] dreamdust: http://bitcoinjs.org/ [06:45] Aphelion has joined the channel [06:45] thisisit: dreamdust: thanks for that. i am sorry, but i didn't mean bitcoin. i meant any other idea anyone used node.js in client side. anything. [06:46] simenbrekken has joined the channel [06:46] jetienne: dreamdust: nice! is that yours ? [06:47] dreamdust: Nope. Cool project though [06:47] ph^ has joined the channel [06:47] djcoin has joined the channel [06:48] boltR has joined the channel [06:48] crescendo|laptop has joined the channel [06:48] crescendo|laptop has joined the channel [06:49] Margle has joined the channel [06:50] thisisit: Nuck: hmm. atleast bitcoinjs uses node.js in client side [06:52] `3rdEden has joined the channel [06:52] Nuck: ewwwwwww bitcoins? [06:52] Nuck: thisisit » Don't fall for it [06:53] firebus has left the channel [06:54] errordeveloper has joined the channel [06:54] Daegalus: people are actually no playing bitcoins like a stock market [06:54] Daegalus: buying bitcoins when they are cheap, waiting for them to go up in price, then cash out [06:55] ptlo has joined the channel [06:56] DrMcKay: oh, dollar went up lately [06:56] emattias has joined the channel [06:56] DrMcKay: (I still have no idea why this happens) [06:56] temp01 has joined the channel [06:56] pizthewiz has joined the channel [06:57] devaholic has joined the channel [06:59] groom has joined the channel [07:01] yozgrahame has joined the channel [07:01] ivanfi has joined the channel [07:03] aabt has joined the channel [07:03] sreeix has joined the channel [07:03] k1ttty has joined the channel [07:04] raphdg has joined the channel [07:04] fangel has joined the channel [07:05] ErikCorryV8 has joined the channel [07:06] mraleph has joined the channel [07:07] k1ttty_ has joined the channel [07:07] Cromulent has joined the channel [07:07] mike5w3c has joined the channel [07:09] githogori has joined the channel [07:09] Cromulent has joined the channel [07:10] Margle has joined the channel [07:14] bergie has joined the channel [07:14] mikl has joined the channel [07:14] tauren has joined the channel [07:14] k1ttty has joined the channel [07:15] Nuck: awwww [07:15] Nuck: We're still 876 Github watchers from beating Rails :( [07:15] ablomen has joined the channel [07:16] hackband has joined the channel [07:16] skm has joined the channel [07:17] icebox has joined the channel [07:18] xue has left the channel [07:19] shapeshed has joined the channel [07:23] springmeyer has joined the channel [07:24] netlemur has joined the channel [07:24] CoinOpeBoy has joined the channel [07:25] k1ttty__ has joined the channel [07:25] rurufufuss: Nuck: you mean : https://github.com/joyent/node ? [07:26] k1ttty__ has joined the channel [07:26] kuebk has joined the channel [07:26] tauren: anyone know of an open source implementation similar to gravatar, preferably in node? [07:26] Nuck: rurufufuss » Ayup [07:27] mehlah has joined the channel [07:27] rurufufuss: well, that's one watcher closer to beating rails then [07:27] kuebk: jo [07:27] Nuck: tauren » No, but it shouldn't be too hard to make one using require('crypt') and node-canvas? [07:28] Nuck: rurufufuss » http://peterlejeck.tk:3030/ [07:28] Nuck: Countdown to beatdom [07:28] rurufufuss: hahahaha [07:28] Nuck: rurufufuss » Realtime updates too [07:28] romanb has joined the channel [07:28] Nuck: Thanks to Socket.IO [07:28] Nuck: Goes down occasionally tho [07:28] rurufufuss: oh snap, I was gonna ask about that actually [07:29] Nuck: rurufufuss » It has a bug [07:29] rurufufuss: webdev sure progressed a lot compared to 10 years ago, heh [07:29] Nuck: haha inorite? [07:29] rurufufuss: I remember the php flatfile guestbook script found on flashkit.com, that was hell :p [07:29] tauren: Nuck: yeah, i was thinking along the same lines. just hoping someone had done it already! ;) [07:30] Nuck: SubStack » You should make a Gravatar setup in node :D [07:30] apoc has joined the channel [07:30] Nuck: With your ART! [07:31] Nuck: I should make a "future Americans" avatar system [07:31] Nuck: Where it's a bunch of blobs of flesh-colored goop with hairs sticking out [07:31] jetienne: hi [07:31] Nuck: hello jetienne [07:33] tauren: Nuck: That's just the thing. I want a custom avatar based on app-specific data, not email (since multiple users can have the same email address), and I don't want the same old monsterid, etc. avatars... [07:33] devaholic: what about those robot things? [07:33] tauren: those robot things would be perfect! [07:33] devaholic: !! [07:34] devaholic: whats the website... someone help me out [07:34] Nuck: But they're based on hashes of data though [07:34] Nuck: devaholic » gravatar lol [07:34] Nuck: Pretty sure [07:34] devaholic: nooo [07:34] devaholic: i thought it was independant [07:34] cha0s has joined the channel [07:34] cha0s has joined the channel [07:35] devaholic: http://robohash.org/ [07:35] Nuck: "It looks highly Profitable, I'm Sure." Dr. R. Venture, Super Scientist. Available for parties. [07:35] Nuck: FUCK YEAH [07:35] apoc has joined the channel [07:35] Nuck: VENTURE BROS REFERENCE [07:36] tauren: devaholic: OMG, never seen that. sweet! [07:38] topaxi has joined the channel [07:38] zastaph has joined the channel [07:41] cosmincx has joined the channel [07:41] gkmngrgn has joined the channel [07:41] devaholic: tauren: glad you like [07:42] tauren: devaholic: am I blind, or is there no source? [07:43] devaholic: you dont need any? [07:43] tauren: well, if i want to make my own avatars i would [07:43] Nuck: tauren » looks like you just do robohash.org/TextGoesHere [07:44] tauren: yeah, i see that. my app has a theme, and i'd like the avatars to follow that theme. the robots are cool, but not quite there... [07:45] Nuck: tauren » Try contacting the author to see if they'll release the code? [07:45] devaholic: lol [07:45] devaholic: dawww [07:46] tauren: https://github.com/e1ven/Robohash [07:47] tauren: the author says "OK, I'll admit I'm a crappy programmer." -- uh oh. LOL [07:47] azend has joined the channel [07:47] Druid has joined the channel [07:50] bergelmir has joined the channel [07:50] bergelmir has joined the channel [07:52] mc_greeny has joined the channel [07:54] mpavel has joined the channel [07:54] Nuck: tauren » It's not that bad, honestly, at least not to my non-Pythonista eyes [07:54] uchuff has joined the channel [07:55] TheCode has joined the channel [07:55] Aphelion has joined the channel [07:55] TheCode: y [07:55] tauren: Nuck: i haven't reviewed the source yet, but i'm not a pythonista either. definitely a starting point though! [07:55] uchuff has joined the channel [07:55] Nuck: It mostly splits up an MD5 hash into n pieces, then parses each one [07:55] Nuck: From what I can tell [07:55] tauren: i do like your suggestion of using node-canvas and crypt [07:56] Nuck: tauren » Well, that'd be the Ndoe equivalent [07:56] devaholic: you just want some random geometry? [07:57] Nuck: devaholic » huh? [07:57] devaholic: nm [07:57] Nuck: Yeah, shit's not random haha [07:57] tauren: what I really need is something just like robohash, but with my own art, plus the ability for users to upload their own avatar. [07:57] Nuck: It's all in the checksums [07:57] devaholic: not technically random [07:57] Nuck: tauren » robohash has support for gravatar override [07:58] tauren: hmmm, i didn't see that, that could work then. [07:58] Nuck: Just port it to Node + crypt + canvas [07:58] Nuck: And be done [07:58] devaholic: you want actual faces n stuff or just some random gemotric shapes? [07:58] Nuck: Well [07:58] tauren: just what i'm thinking... [07:58] tauren: devaholic: actual faces n stuff [07:58] devaholic: lol [07:58] Nuck: tauren » You're gonna have hell trying to line up the facial features :V [07:58] tauren: i mean cartoon faces [07:58] MrTopf has joined the channel [07:59] Nuck: tauren » Give them all Steve Buscemi's eyes [07:59] tauren: but they should have a "sports" theme to them, not monsters or robots [07:59] devaholic: you could throw a bunch of them in a directory and pick one based one based on whatever [07:59] Nuck: devaholic » This thing generates them [08:00] Nuck: tauren » Oh, toss some baseball caps and football helmets on a face and then make a jersey to match [08:00] devaholic: ah [08:00] devaholic: you could just put random hats on circles? [08:00] Nuck: imagine if every avatar on a site had these eyes: http://en.wikipedia.org/wiki/File:Steve_Buscemi_2009_portrait.jpg [08:01] tauren: creepy [08:01] Nuck: hundreds of Steve Buscemis [08:01] Nuck: All staring at you [08:01] Nuck: Maybe get some Christopher Walkens [08:01] Nuck: And some other freaky eyes [08:03] justinTNT has joined the channel [08:04] amiller has joined the channel [08:04] justinTNT: anyone know of gheat (or similar) in node.js? [08:06] kmiyashiro has joined the channel [08:08] littlebiged has joined the channel [08:09] jbpros has joined the channel [08:10] mendel_ has joined the channel [08:12] Industrial: I have a problem with my ExpressJS controller / resource; https://gist.github.com/a8deef160389dccd9a2f/8a971a5953750d22be6eaf12489119a600950036 [08:12] Industrial: if I call the method (with an invalid id) I only get 1 printed, and I don't understand why. [08:13] konobi: e.stack is an array... so you're getting the length? [08:14] adambeynon has joined the channel [08:14] Industrial: e.stack is a string containing the error stack [08:14] Nuck: Uh [08:14] Industrial: but that's not fired, it seems, because I don't see the console.log [08:14] Nuck: Isn't 400 OK? [08:15] Industrial: 200 is OK [08:15] Nuck: what's 400? [08:15] Industrial: Bad Request [08:15] Nuck: ah [08:15] Industrial: Either way, the request hangs. [08:15] xerox: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes [08:15] Industrial: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html [08:15] Industrial: :p [08:16] Nuck: scares me that Industrial has it at the ready [08:16] Industrial: I have it open in a tab all day really :\ [08:17] Industrial: oh, I'm an idiot. I didn't pass the id to findById [08:17] Glenjamin: Industrial: does seq do anything like special casing the first arg of the callback as an error? [08:18] Glenjamin: heh [08:18] Glenjamin: also, you probably want to do next(new Error(...)) rather than throw [08:18] FireyFly|n900 has joined the channel [08:18] bergelmir has joined the channel [08:19] luke` has joined the channel [08:21] Cromulent has joined the channel [08:22] mikeal has joined the channel [08:24] philjackson has joined the channel [08:24] Nuck: haha YUSH! [08:24] Nuck: ACTION just got email confirmations done on Mongoose [08:24] Industrial: Glenjamin: I'm not really using the next() of express. You're saying I should use next() to route errors to a different URL handler? [08:24] SubStack: hooray [08:24] bogomips has joined the channel [08:24] Nuck: ACTION pumps his fist in winning [08:24] Glenjamin: i'm saying throwing an exception from an async functions isn't all that useful - it's hard to catch [08:25] philjackson: Hi, with the http client, what's the best way to selectively download data? I want to avoid downloading image/* but download text/* [08:25] robotmay has joined the channel [08:25] karak has joined the channel [08:25] Nuck: Glenjamin » /hard/impossible [08:25] Glenjamin: thats where the whole callback(err, value) and if (err) pattern comes from [08:25] philjackson: In other words, I want to inspect the headers then decide if I download the data. [08:25] stonebranch has joined the channel [08:25] Industrial: Glenjamin: well anything that happens in a seq(function(){}); gets its errors thrown aswell [08:25] Glenjamin: consider this code: [08:26] Nuck: Industrial » Not if you do something async in there [08:26] Industrial: Nuck: yes it will, seq is an async flow library [08:26] karak: i have a foobar.js file that simply prints out hello world, i can run it using 'node foobar.js', is there a way to run it programatically from another js file? [08:26] Nuck: Industrial » There's no way around it, an async function's errors escape try catch [08:26] vaheh has joined the channel [08:26] Industrial: you pass this, which is Seq(), which handles the error and throws, i guess [08:26] philjackson: karak: Look at the `child_process` module. [08:26] Glenjamin: try{ ayncTask(callback) } catch(ex) { console.warn(ex) } function asyncTask(cb) { process.nextTick(function(){ throw new Error()})} [08:26] sh4wn has joined the channel [08:27] Glenjamin: the catch is never triggered [08:27] Nuck: Glenjamin » Beautiful distillation of that [08:27] Industrial: Glenjamin: I see [08:27] Industrial: So then how is next() used instead of try/catch ? [08:28] Glenjamin: by convention the first argument of callbacks is either falsy, or an exception object [08:28] Glenjamin: and we use this to pass exceptions back up the callback chain [08:28] philjackson: Industrial: As in experss next() ? [08:28] karak: philjackson: a bit more info, i'm trying to run it on the same execution context, not on a separate process [08:29] felixhummel has joined the channel [08:29] karak: philjackson: just wondering if it's possible [08:29] philjackson: karak: I don't know. [08:30] Glenjamin: karak: require() is approximately that [08:30] simenbrekken: Industrial: basically try/catch doesn't work very well with async callbacks [08:30] Glenjamin: or you can use fs.readFile with eval or vm.runInContext [08:30] toopay has joined the channel [08:31] liar has joined the channel [08:31] simenbrekken: Industrial: as in you'll sometimes never get anything in your catch [08:31] karak: Glenjamin: thanks for the pointer, i'll try them out :) [08:32] simenbrekken: Industrial: so the simplest way to do this is configure an error handler, here's that replies in JSON: https://gist.github.com/1218828 [08:32] Industrial: hmm [08:33] simenbrekken: Industrial: then your routes are configured like app.get('/foo', function(req, res, next) and most callbacks start with if (err) return next(err) [08:33] simenbrekken: that gives you a central middleware to handle your errors both async and sync [08:33] Industrial: right [08:33] hellp has joined the channel [08:33] simenbrekken: you can naturally chain those as well, e.g have several error handlers or have different handlers per error type etc. [08:34] Industrial: I have 2 checks, one for mongodb.BSONPure.ObjectID() and one for checking if the resource exists. These should give a 400 and 404; https://gist.github.com/a8deef160389dccd9a2f/53231caa9785693dc8546640584deb84762bbb98 [08:36] Industrial: and a 500 if the User can't save, I guess. [08:37] Industrial: ACTION checks the docs some more [08:40] justinTNT: ACTION asks again : substack? anyone? got clues on (something like) gheat (heatmaps for maps) in node? [08:41] SubStack: justinTNT: http://substack.net/posts/7fce46/heatmaps-for-node-js-and-the-browser [08:41] Nuck: lol explaining bcrypt to my SA [08:41] justinTNT: yup, thanks, and is it a huge leap from there to overlaying over maps? [08:42] johnhamelink has joined the channel [08:43] SubStack: why would there be a leap? [08:44] justinTNT: um, automagic alignment of tiles? [08:44] toopay has left the channel [08:44] justinTNT: *shrug* I only just saw your project this minute ... [08:44] toopay has joined the channel [08:45] abraxas has joined the channel [08:46] abraxas has joined the channel [08:46] joshthecoder has joined the channel [08:46] Nuck: I'm watching YayQuery 22 and WHAT THE FUCK [08:46] Nuck: PLUGIN OF THE WEEK [08:46] TomY has joined the channel [08:47] Nuck: Is a SAUSAGE [08:47] Nuck: With LEDs in it [08:48] simenbrekken: Industrial: https://gist.github.com/a29bd4a8d7a71b0fb846 [08:49] Industrial: simenbrekken: right, I'm setting up the error classes now =) [08:50] davidcoallier has joined the channel [08:50] simenbrekken: Industrial: I guess the easiest way is to create ApplicationError(, ) so you can use the same one all over [08:50] sfoster has joined the channel [08:51] mpavel has left the channel [08:52] brianloveswords_ has joined the channel [08:53] dmkbot: joyent/node: 03seebees: Tests for Sockets - https://github.com/joyent/node/issues/1699 [08:53] saikat has joined the channel [08:54] Glenjamin: simenbrekken, Industrial : you could also have findById return a NotFoundError as its first argument when v is false [08:55] sebastianedwards has joined the channel [08:55] kulor-uk has joined the channel [08:57] wolftankk has joined the channel [08:58] dmkbot: joyent/node: 03seebees: Tests for Sockets - https://github.com/joyent/node/issues/1699 [08:58] toopay has left the channel [08:58] Emmanuel has joined the channel [08:59] _aron has joined the channel [09:03] shedinja has joined the channel [09:03] bergie has joined the channel [09:03] dmkbot: joyent/node: 03seebees: Tests for Sockets - https://github.com/joyent/node/issues/1699 [09:05] quijote has joined the channel [09:05] irahgel has joined the channel [09:05] bzinger has joined the channel [09:11] topaxi has joined the channel [09:13] raidfive has joined the channel [09:14] tauren has joined the channel [09:15] balupton has joined the channel [09:18] dmkbot: joyent/node: 03runner-mei: a Run-Time Check Failure #3 at window while call child_precess.spaw(undefine) - https://github.com/joyent/node/issues/1709 [09:18] sh4wn has left the channel [09:22] eldios has joined the channel [09:23] tojochacko has joined the channel [09:26] staar2 has joined the channel [09:27] staar2: hello [09:27] staar2: well i installed the latest version of node and now i can't install express [09:27] sreeix_ has joined the channel [09:28] staar2: gives error npm ERR! Required: {"node":">= 0.4.1 < 0.5.0"} [09:28] staar2: and npm ERR! Actual: {"npm":"1.0.27","node":"v0.5.7-pre"} [09:28] staar2: any easy ways to go around this problem ? [09:32] karak: staar2: install node 0.4.11 should solve your problem.. express does not yet support node 0.5.x [09:32] Lemon|mbp has joined the channel [09:32] staar2: karak: ty [09:33] Xano has joined the channel [09:37] topaxi has joined the channel [09:37] Industrial: You know what I'm really missing in NodeJS, Autoloading of classes. [09:37] Industrial: s/,/?/ [09:37] netlemur has joined the channel [09:38] SubStack: auto what now? [09:39] Nuck: Listening to Brendan Eich talk about Closures vs. Prototypes [09:39] Nuck: And it got me thinking: how's the optimization for closures in V8? [09:39] Nuck: Do they do a shared-setup? [09:39] topaxi has joined the channel [09:40] Shrink has joined the channel [09:41] acrolith has joined the channel [09:41] acrolith: sooo.... funky express/jade/socket.io question. Is there a fancy way to render a jade partial into memory, so I can emit it via a socket? i see res.partial() but that requires an HTTP request. [09:42] Nuck: acrolith » Yes, there's a way. No, I've forgotten it [09:42] Nuck: I know it's one of the arguments it takes [09:43] acrolith: perhaps it's undocumented? [09:43] Nuck: quite possible [09:43] Nuck: I found out by asking tjholowaychuk [09:43] Nuck: :P [09:44] Nuck: acrolith » Try passing true or false to the last argument >_> [09:45] Industrial: SubStack: You define a function (middleware i guess) that runs when the interpreter can't find a value (undefined error) and if the name is one of your files (which export module.exports=MyClass) then require it into the global namespace under that name and continue/try again. [09:45] zinkem has joined the channel [09:45] Industrial: SubStack: This makes it so you never have to require your controllers, models, helpers, anything really anymore [09:45] naggie has joined the channel [09:45] Industrial: I don't know if that's possible with javascript, but it is with other languages. [09:46] Nuck: Industrial » Sounds icky [09:46] topaxi has joined the channel [09:47] Industrial: e.g. http://php.net/manual/en/language.oop5.autoload.php [09:47] SubStack: there are better ways of achieving those ends [09:47] acrolith: @nuck found it... dug around in the expressjs source code. turns out if you pass a callback as the second (or third) parameter, you get (err, string) parameters where string is the rendered view [09:47] Nuck|mobile has joined the channel [09:47] Nuck: acrolith » Ah, there we go :D [09:47] SubStack: Industrial: this isn't rails, you can structure your code rationally [09:47] Nuck|mobile: Lol SubStack [09:48] jacobolus has joined the channel [09:48] johnhame_ has joined the channel [09:48] N0va` has joined the channel [09:48] Industrial: well the other alternative is namespacing things (eg under my app) and require it once. [09:48] Nuck|mobile: Industrial: This isn't php either, so be thankful [09:49] Industrial: sigh [09:49] Nuck|mobile: Industrial: I have my submodules require globals [09:49] SubStack: globals are bad [09:49] LacKac has joined the channel [09:49] SubStack: and unnecessary [09:49] Nuck|mobile: Not globals [09:49] Nuck|mobile: I mean things that are shared [09:49] Nuck|mobile: Make me a term for those [09:49] lackac has joined the channel [09:50] Nuck|mobile: Anyways, I take advantage of the caching of modules in the node process [09:50] Nuck|mobile: A requires b, c, d [09:50] Nuck|mobile: B, c, d all require x [09:50] Nuck|mobile: And they all share one instance of x [09:51] Industrial: I just put my ./lib/class/*Error.js under app, so I can this.app.NotFoundError(); in my controllers, instead of having to require each one individually in every controller. [09:52] Industrial: SubStack: and I'm still doing MVC with express, so the code structure is somewhat the same as rails. [09:52] sebastia_ has joined the channel [09:52] rendar has joined the channel [09:53] Nuck: ACTION slaps Industrial. Don't bring your shit here. Learn the beauties of FREE RANGE PROGRAMMING!  [09:53] Industrial: what? [09:53] Industrial: my shit? free range? [09:53] Nuck: We don't want your nasty rails [09:53] dEPyWork has joined the channel [09:53] SubStack: what [09:54] Nuck: Seriously rails sucks [09:54] Nuck: Node on Nails :'D [09:54] Industrial: Nuck: you don't think ExpressJS is a rails-y setup ? [09:54] fly-away has joined the channel [09:54] Skomski has joined the channel [09:54] Nuck: Industrial: OH HELL NO [09:55] Nuck: dude it's based more on django [09:55] Nuck: Rails is a lot more rigid [09:55] Nuck: I don't do strict MVC, I do free range coding [09:55] Industrial: I dont see how your relationship with rails has something to do with my argument for autoloading [09:56] Nuck: Industrial: Don't make Node something it isn't. [09:56] Industrial: I'm making it whatever I want it to do for me. What it is or should be is your opinion. [09:57] Nuck: Industrial: You are programming rails apps under nodejs, and you see no issue here [09:58] Industrial: I'm making a JSON REST resource serving application, why would I not use MVC [09:58] Nuck: Learn the styles and patterns of Node, THEN choose to adapt [09:58] Nuck: Industrial: Because that's overkill for REST? [09:58] illumina has joined the channel [09:58] Nuck: Did you not stop to think about that? [09:58] jetienne: Industrial: there is a plugin for that [09:59] Nuck: REST entails a model and a view (sorta) [09:59] Industrial: jetienne: I prefer to be in control of the routes, so I set them up in MyResource#mount() [09:59] Nuck: There really is no "controller" so to speak [09:59] Glenjamin: expressJS is based on sinatra, it even says so [09:59] Glenjamin: sinatra is not rails [09:59] Nuck: Right. [09:59] Nuck: I derped it and said django [10:00] jetienne: Industrial: ok [10:00] Glenjamin: django is nothing like sinatra, the python equivalent is flask really [10:00] illumina: finding information about javascript feels like searching for information about politics. so many STUPID websites. [10:00] Nuck: Haha yeah [10:00] Nuck: illumina: MDN is the end-all solution for references [10:00] Glenjamin: controller = routing + handlers [10:00] Nuck: How is that a controller? [10:00] illumina: @nuck even for webkit development? [10:01] Industrial: Nuck: you are taking this way out of scope. I was discussing why i like autoloading and it turned into you saying rails sucks and I am doing it wrong. [10:01] Nuck: illumina: Well, define webkit development? [10:01] Nuck: If it's JS, it's on Mozilla's wiki [10:01] Glenjamin: because a controller's job is to take the response, make the relevant model calls and render a view. It doesnt matter if its in a class called controller [10:01] Industrial: thus, ExpressJS is MVC [10:01] illumina: @nuck err… mobile safari? whatever android uses? I always thought Firefox/Mozilla had a different rendering & javascript engine [10:01] FireFly|n901 has joined the channel [10:02] illumina: but it's entirely possible I'm a moron [10:02] Nuck: illumina: JavaScript is standardized pretty well [10:02] Glenjamin: expressJS isn't MVC, it's just C and V. there's nothing stopping you from using M though [10:02] Nuck: It's mostly IE you gotta worry about [10:02] Industrial: Okay, fine, MY SETUP RIGHT NOW IS MVC. [10:02] Industrial: Can we move on? [10:02] Nuck: Glenjamin: sorry but I find MVC ridiculous :/ [10:02] jetienne: +1 for moving on [10:02] Nuck: Industrial: Autoloading is fancy-talk around here [10:02] SubStack: more interesting: [10:02] Glenjamin: i find your approach to globals rediculous, but lets not get into that again :D [10:03] SubStack: http://deploy.nodejitsu.com/ [10:03] Nuck: Glenjamin: Mine? [10:03] Nuck: Yup, I agree [10:03] SubStack: Look at my deploy.nodejitsu.com virus: http://deploy-zayuhiweho.nodejitsu.com/ [10:03] Nuck: Now I don't use them :P [10:03] Glenjamin: haha [10:03] Glenjamin: SubStack: that's pretty awesome! [10:03] Nuck: SubStack: Nice 404? [10:04] Glenjamin: what does -sSNT do in curl? [10:04] SubStack: it got culled [10:04] SubStack: the child is still alive http://deploy-pojijiciti.nodejitsu.com/ [10:05] Nuck: SubStack: What does it do? [10:05] illumina: @nuck how about CSS3? MDN stuff looks super mozilla specific [10:05] SubStack: Nuck: it reproduces! [10:06] Nuck: illumina: Generally, just replace -moz- with -webkit- [10:06] jetienne: illumina: mdn is mozilla specific. notice the javascript 1.5 1.6 everywhere... those versions are not javascript related. they are related to mozilla version [10:06] Nuck: In some cases it is bigger, namely gradienta [10:06] moesian has joined the channel [10:07] Nuck: jetienne: Aye but theres still no better site ;) [10:07] jetienne: illumina: it is still a good readable reference. a LOT better than the spec :) [10:07] illumina: lol yes… the spec inflicts pain [10:07] jetienne: Nuck: agreed [10:07] Nuck: I once tried to read the oAuth 2 APEC [10:07] Nuck: Spec [10:07] illumina: I'm used to pretty good & reliable API docs (from iOS & Xbox land) [10:07] illumina: so this is a little jarring ;-) [10:08] jetienne: http://es5.github.com/ anotated spec for ecma 262 (the one used by v8° [10:08] moesian: Hello this is probably a fairly standard noob question but is node appropriate for "standard" web apps or just apps that require realtime interactions [10:08] Glenjamin: generally if it says JS 1.5 in MDC, it'll be in ES5 and therefore v8 [10:08] jetienne: moesian: it is available for normal webapps [10:08] jetienne: Glenjamin: i would not bet on that [10:09] Nuck: I gave up and am now implementing my server using the developer API docs for Facebook and google as references [10:09] stagas: wheee another tiny lib https://github.com/stagas/dnode-worker [10:10] jetienne: stagas: interesting use of dnode :) [10:10] Nuck: SubStack: Did you add a kill switch or just gonna let the guys at nodejitsu deal with it? [10:10] apoc has joined the channel [10:11] sreeix has joined the channel [10:11] stagas: jetienne: :) [10:12] SubStack: Nuck: there are only 20 instances [10:12] stagas: jetienne: doesn't do much, basically abstracts the connect/listen stuff [10:12] Nuck: stagas: Oooh, that's nice [10:12] Nuck: SubStack: Ahhhh [10:12] jetienne: stagas: yep but it shows how simple it can be [10:12] Nuck: Did node ever get WebWorkers? [10:12] jetienne: Nuck: yep creationnix did it at one point [10:12] Nuck: stagas: I might look at that as an option when I split off this algo into a separate task [10:12] jetienne: not sure it is still work [10:13] thalll has joined the channel [10:13] Nuck: I gotta because it's insanely complex [10:13] dmkbot: joyent/node: 03BillBarnhill: Fix memory allocation in uv__fs_after - https://github.com/joyent/node/issues/1686 [10:13] Glenjamin: is there an Object.values equivalent of Object.keys? [10:13] jetienne: stagas: btw how dnode communicate between process ? [10:14] jetienne: from memory creationix stuff was passing fd between process [10:15] sebastia_: Glenjamin: Nope [10:15] Nuck: Maybe make a socket file for dnode to go under? [10:16] mpoz2 has joined the channel [10:17] Nuck: ACTION still wants piscisaurus and stages to combine  [10:17] Nuck: *stagas [10:17] wbf_ has joined the channel [10:17] robinduckett: /quit [10:17] stagas: combine? :P [10:18] Nuck: stagas: Yes, into an ultimate stagasaurus. [10:18] stagas: haha [10:18] Nuck: Duh :P [10:18] Nuck: Though he clarified that piscisaurus is a fish [10:18] Nuck: Not a Dino :( [10:19] Nuck: stagas: Anywho, what's the overhead like on that? [10:20] agnat has joined the channel [10:21] stagas: Nuck: who knows, the workers stay running as long as you want, until you .exit() them so it's just as much as doing it manually with dnode [10:21] Nuck: stagas: Well I meant relative to something like WebWorkers :P [10:22] Nuck: But longer lived does sound good [10:22] Lemon|mbp has joined the channel [10:22] vpereira has joined the channel [10:23] Nuck: SubStack: You, dnode dude, I want to outsource image upload processing and scaling onto separate servers, can dnode do this? [10:23] stagas: should be close, but I think webworkers may be a bit faster because they only pass strings around [10:23] vpereira: best way to migrate an app from node.js 0.4.x to 0.5.x is start from scratch? [10:23] Nuck: vpereira: Eh, why would you say that? [10:23] stagas: with this you can do almost everything dnode does [10:24] Nuck: In fact, don't migrate [10:24] Nuck: 0.5.x is unstable [10:24] Nuck: Wait for 0.6.x [10:24] vpereira: Nuck: hm really? I mean, great for me [10:24] Nuck: stagas: Never used dnode lol [10:24] vpereira: Nuck: but i tried to start an app mit express with node.js 0.5.x and it simply failed [10:25] Nuck: vpereira: For the most part, it's just all C++ modules that got murdered [10:25] vpereira: with 0.4.9 goes well [10:25] fairwinds has joined the channel [10:25] Nuck: vpereira: Yeah express doesn't support 0.5.x yet [10:25] vpereira: Nuck: yup, i did read the source for 0.4.5 and 0.5.1 some time ago [10:25] Nuck: Because It's unstable [10:25] vpereira: Nuck: nothing changed since my last project in node :-) [10:25] Nuck: vpereira: Stick to stables lol [10:25] vpereira: Nuck: then should I use rails :-) [10:26] Nuck: Then should I slap you? [10:26] vpereira: Nuck: hihi [10:26] Nuck: :P [10:26] vpereira: Nuck: no, thanks. i will stick with 0.4.9, its great [10:26] Nuck: vpereira: even is stable odd is development [10:26] Nuck: For the 0.n.0 [10:27] vpereira: Nuck: ja, i know.. i did already some node.js C++ development, i was just little far from it last months [10:27] kriz has joined the channel [10:28] Nuck: vpereira: Haha well everything c++ is broken in 0.5.x, they switched entirely over to a new backend, libuv [10:28] vpereira: Nuck: awesome, backportability is for pussies :-) [10:29] Nuck: vpereira: Haha lol [10:30] Nuck: That's why they use the dev/stable cycle I think, is to give them times to break EVERYTHING [10:30] stagas: off to tha beach [10:30] Nuck: Have fun [10:30] Nuck: I should go off to my bed [10:31] blup has joined the channel [10:36] pen has joined the channel [10:38] topaxi has joined the channel [10:41] illumina has left the channel [10:41] vguerra has joined the channel [10:43] netlemur has joined the channel [10:43] bogomips2_ has joined the channel [10:44] necrodearia has joined the channel [10:44] wbf__ has joined the channel [10:45] mc_greeny has joined the channel [10:46] cmeiklejohn has joined the channel [10:48] netlemur has joined the channel [10:49] Xano has joined the channel [10:52] CarterL has joined the channel [10:53] topaxi has joined the channel [10:55] pen has joined the channel [10:58] bergelmir has joined the channel [10:59] padbul has joined the channel [11:00] topaxi has joined the channel [11:02] ivanfi has joined the channel [11:02] Shrink has joined the channel [11:02] padbul has joined the channel [11:04] sreeix has joined the channel [11:05] Fuu has joined the channel [11:05] emattias_ has joined the channel [11:05] trepan has joined the channel [11:06] mehlah has joined the channel [11:07] Sunny_ has joined the channel [11:08] Industrial: How do I get jshint not to error on certain things (like reserved keywords, which is a bullshit error since an object key named as a keyword runs just fine) [11:08] Industrial: '.catch' !== 'catch' [11:09] stonebranch has joined the channel [11:09] mhauri has joined the channel [11:09] iivvoo: jshint? or lint? [11:10] iivvoo: there are hints for jslint you can include in your sourcefile (or global config) [11:10] Sunny_: how do I setup a persistent tcp socket connection to a server? [11:12] Industrial: iivvoo: jshint [11:13] iivvoo: ah, a jslint fork [11:13] iivvoo: so it should be similar [11:13] iivvoo: /*jslint feature:false */ something like that [11:13] iivvoo: just figure out what 'feature' should be [11:14] iivvoo: 'reserved' perhaps [11:14] Industrial: hmmm [11:14] _JSilva has joined the channel [11:15] Industrial: I'd rather not put tool configuration (eg vimlines, this) in source files. I'd want it in a ~/.*rc file [11:15] cmeiklejohn has joined the channel [11:15] iivvoo: afaik something like .js[lh]intrc should be supported but I didn't get it to work for my setup (which was jsling syntax validation in vim) [11:16] Industrial: Yea I'm using the syntastic plugin with vim but it's bugging me for things I don't care about. [11:17] metellus has joined the channel [11:19] zomgbie has joined the channel [11:19] Lemon|mbp has joined the channel [11:20] skython has joined the channel [11:20] wbf___ has joined the channel [11:21] pt_tr has joined the channel [11:22] Industrial: Made a ticket, as I can't find docs on ~/.jshintrc. [11:22] Industrial: I'll ['catch'](e) for now [11:22] Industrial: ['catch'](function(e) {, I mean [11:24] FireFly has joined the channel [11:24] matyr has joined the channel [11:30] blup has joined the channel [11:30] Emmanuel has joined the channel [11:31] ryanfitz has joined the channel [11:31] mhauri has joined the channel [11:32] schwab has joined the channel [11:33] mrryanjohnston has joined the channel [11:34] kertz has joined the channel [11:38] yept has joined the channel [11:38] Sunny_ has left the channel [11:38] shipit has joined the channel [11:39] _aron has joined the channel [11:39] topaxi has joined the channel [11:40] davidcoallier has joined the channel [11:40] Hamms has joined the channel [11:41] k1ttty has joined the channel [11:44] core001 has joined the channel [11:44] brianseeders has joined the channel [11:46] FireFly|n900 has joined the channel [11:48] kriz has left the channel [11:48] Cromulent has joined the channel [11:49] topaxi has joined the channel [11:49] SargoDarya_ has joined the channel [11:50] SargoDarya_: Hey guys, any idea how I could implement node.js within symfony so I can use socket.io to transfer player data? [11:51] `3rdEden: whats symfony? [11:51] `3rdEden: you mean php symfony? [11:52] SargoDarya_: yupp [11:53] Lorentz: It wouldn't really be part of symfony, since node.js runs as a seperate process to php does. [11:53] core001 has left the channel [11:54] SargoDarya_: Thought so, otherwise socket communication wouldn't work well. It's just that I have my whole logic in symfony [11:54] adrianmg has joined the channel [11:54] sreeix_ has joined the channel [11:54] Industrial: SargoDarya_: its like saying 'How do I implement flash in my java applet" [11:54] Industrial: =) [11:54] pfried has joined the channel [11:55] Industrial: (though, i guess, people are re-making flash in HTML5 canvases) [11:55] fermion has joined the channel [11:56] z6Dabrata has joined the channel [11:56] bogomips2__ has joined the channel [11:56] SargoDarya_: Industrial: That's kind of exactly what I'm currently doing. A browser game which doesn't anymore feel like a browser game [11:56] Industrial: I'm doing a NodeJS server for mobile games [11:56] SargoDarya_: damn.. so what you basically tell me is I have to rewrite everything for node? [11:57] meso has joined the channel [11:57] meso_ has joined the channel [11:57] Industrial: SargoDarya_: I have no idew if an how this works, but a quick google; https://github.com/nicokaiser/php-websocket [11:58] tizzo: you don't want php doing your web socket stuff [11:58] SargoDarya_: Industrial: Using PHP as socket server is kind of like firefox. It works for half a day but after that it clogs up your memory and eats your brain [11:59] pfried: somebody 5mins to help a beginner in node + socket.io? [11:59] Will|: pfried: just ask, don't ask to aks [11:59] Industrial: SargoDarya_: you dont have to rewrite all your app logic, maybe you can tack NodeJS on to what you have [12:00] tizzo: SargoDarya_: I'm one of the maintainers of http://drupal.org/project/nodejs [12:00] pfried: @Will http://jsfiddle.net/JGC52/ [12:00] tizzo: that's a nodejs server that integrates with drupal to provide websockets [12:00] tizzo: so node handles the websockets, drupal handles the smarts [12:01] tizzo: node is just the plumbing, maintaining the list of connected users and then routing messages to the correct users [12:01] pfried: i wanted to create a server , but i get no events by using socket.on('connect') [12:01] tizzo: SargoDarya_: our server.js could actually be used with symphony, it provides a simple REST interface [12:01] patrickgamer has joined the channel [12:01] patrickgamer has left the channel [12:01] tizzo: it's built mostly glue tying a REST server written in connect to socket.io [12:01] SargoDarya_: Hm. Now when I think about it I really am confused why doing everything in node would not be bad [12:02] random123 has joined the channel [12:02] tizzo: SargoDarya_: huh? doing everything in node would be fine, unless you already have it implemented [12:02] tizzo: we're adding node.js to our stack to add webscokets to existing sophisticated sites and business logic [12:03] tizzo: s/and/with/ [12:03] SargoDarya_: tizzo: Only common things. I think it's more that I'm kind of afraid of node.js because I haven't ever used it and don't know about the stuff I do in PHP. [12:03] broofa has joined the channel [12:03] tizzo: SargoDarya_: sure, I'm kinda in the same boat but keep figureing out everything I need to, it's not that hard and there are lots of great contributed modules [12:04] tizzo: I'd look at the model we're using with Drupal if you already know php and just need web sockets [12:04] tizzo: events happen in symphony and then notifications go out through node.js [12:04] SargoDarya_: That's going to be the hardest project for me to date I guess >.> (except for the Ogre3D game I once planned but to date didn't finish) [12:05] tizzo: ooooh, Ogre [12:06] SargoDarya_: tizzo: Here's a small example on where I'd need node. A player decides to send a player an amount of money so he starts a transaction. The transaction goes live to the player and shows a progress bar [12:06] zomgbie has joined the channel [12:06] tizzo: a progress bar for sending money? [12:06] tizzo: isn't that ... instantaneous? [12:07] astacy has joined the channel [12:07] SargoDarya_: tizzo: it takes more time depending on the amount you send. Other players can hook into the process and change the target so the money goes to a different player instead [12:07] tizzo: ah [12:08] SargoDarya_: The game has the slogan Trust no-one for a reason ;) [12:08] blup has joined the channel [12:08] Lemon|mbp has joined the channel [12:08] tizzo: so a message hits symphony saying a transaction starts, symphony sends a message via node to al parties that should be notified [12:08] tizzo: (including an indication of how long this mother is gonna take) [12:09] tizzo: all clients start rendering the progress bar [12:09] tizzo: if something interferes, that's another message sent straight to symphony which sends another outgoing to the clients via ndoe [12:09] tizzo: np :) [12:09] tizzo: just use node as your messaging layer [12:09] schwab has joined the channel [12:10] SargoDarya_: So, how would I say to node.js "SEND THEM THAR PACKETS" [12:10] tizzo: you'd write a node.js server (or use the one from drupal's nodejs module, it's not drupal specific at all really) and send a post to your node server with whatever needs to go out and the channel it needs to go to [12:11] tizzo: SargoDarya_: have you already written parts of this in symphony? [12:11] tizzo: because if you haven't going all node.js seems better [12:11] kkaefer has joined the channel [12:11] tizzo: you'll have less moving parts and you'll be talking javascript on the client and server natively, much more opportunity to reuse code and so on [12:11] tizzo: but if you already have stuff in symphony, well, use it! [12:12] SargoDarya_: tizzo: I kind of thought so already. With that small codebase I have this probably is more appropriate. [12:13] SargoDarya_: Ok, but I still have static content to deliver so I can't really get around using some parts of symfony I guess [12:13] tizzo: you could deliver the static content from node if you want to [12:13] tizzo: but if you want to build simple websites, symphony & php generally are really good at that [12:14] pfried: i set up a server by var server = http.CreateServer(... and bound it to a port, now i set "var socket = io.listen(server), but if i do socket.on('connect',... i get no results , someone an idea? [12:14] davidbanham has joined the channel [12:15] noodlehaus has joined the channel [12:16] SargoDarya_: tizzo: It's like the whole game is in a fullscreen canvas. Things like the ingame shop are kind of static, I don't know if it really makes that much sense to use node for those. [12:17] Metal3d has joined the channel [12:17] tizzo: eh, it certainly might [12:17] tizzo: hard to say [12:17] tizzo: no reason you can't build webpages in node [12:17] tizzo: and leave apache completely out of your static :-o [12:17] tizzo: or relegate it to serving static files [12:17] tizzo: LAMN! [12:18] tizzo: (and the M now stands for mongo ;)) [12:18] SargoDarya_: lol [12:18] SargoDarya_: Kind of hilarious abbreviation if you use debian :> [12:23] kkaefer: node: ../src/node_object_wrap.h:105: static void node::ObjectWrap::WeakCallback(v8::Persistent, void*): Assertion `value == obj->handle_' failed. [12:23] kkaefer: in what situation would that assertion fail? [12:23] kkaefer: (this is node 0.4.10) [12:23] jtsnow has joined the channel [12:23] tizzo: SargoDarya_: haha [12:25] emilk2000 has joined the channel [12:26] MacDiva has joined the channel [12:26] SargoDarya_: Thanks so far tizzo [12:26] z6Dabrata has joined the channel [12:26] Karmalicious has joined the channel [12:26] tizzo: haha, so far [12:26] tizzo: np, sounds like a great project [12:26] storrgie has joined the channel [12:27] SargoDarya_: Yes, if by great you mean so huge it's going to take me at least 8 hours a day until end of the year ;) [12:28] SargoDarya: tizzo++ [12:28] v8bot_: SargoDarya has given a beer to tizzo. tizzo now has 1 beers. [12:28] tizzo: yay! beer! [12:28] SargoDarya: And Karma [12:28] tizzo: that too :) [12:29] emilk2000: hi, geddy complains to me that: Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead. can anyone point me to some docs? [12:29] emilk2000: I've just cloned node and geddy from github [12:31] meso has joined the channel [12:31] _aron has joined the channel [12:31] erichynds has joined the channel [12:31] jbpros has joined the channel [12:32] Glenjamin: emilk2000: it's a very recent change, you should probably use a stable version of node (0.4.x branch) [12:32] emilk2000: good to know, thanks [12:33] aheckmann has joined the channel [12:33] theCole has joined the channel [12:34] Glenjamin: or try and submit a patch back upstream to whatever lib doesn't work with it [12:34] theCole_ has joined the channel [12:36] blup has joined the channel [12:37] kulor-uk has joined the channel [12:37] mehtryx has joined the channel [12:38] Xano has joined the channel [12:38] jroesslein has joined the channel [12:39] funyon has joined the channel [12:41] state has joined the channel [12:45] ttpva_ has joined the channel [12:46] stepheneb has joined the channel [12:46] aaronmcadam has joined the channel [12:47] davidsklar has joined the channel [12:48] avih has joined the channel [12:49] meso has joined the channel [12:53] SargoDarya: Is there a tutorial anyone can recommend? [12:54] sreeix_ has joined the channel [12:54] Industrial: on? [12:54] xerox: does javascript have pairs [12:55] Industrial: xerox: Elaborate on pairs. [12:55] SargoDarya: Industrial: General node.js stuff. Authenticating users, identifying users etc. [12:55] thinkt4nk has joined the channel [12:55] Industrial: SargoDarya: nodebeginner.org [12:55] xerox: var entities = [('<', //g), ...] [12:55] SargoDarya: ok, that certainly seems to be something I'm not reading while I'm at work [12:56] deedubs has joined the channel [12:57] edoceo` has joined the channel [12:57] edoceo`: anyone that's been working with sequelize? I'm having troubles accessing the object itself within my instanceMethods, is this possible? [12:57] phluffy has joined the channel [13:02] edoceo`: and now I wrote it completely wrong, I'm trying to access the Object(Type) not the instance itself [13:03] matyr has joined the channel [13:03] edoceo`: I could do var Obj = sequelize.define ('foo', {...}, {instanceMethods: {my_func: function () {Obj.method (...)}}) but I'm looking for a nicer way to do it [13:04] Nss has joined the channel [13:05] kriszyp has joined the channel [13:05] sfoster has joined the channel [13:08] azeroth_ has joined the channel [13:08] mike5w3c has joined the channel [13:09] `3rdEden has joined the channel [13:10] normanrichards has joined the channel [13:11] Gues_____ has joined the channel [13:12] robi42 has joined the channel [13:12] ph^_ has joined the channel [13:15] Glenjamin: xerox: 2-element array is as close as you can get really [13:15] cjm has joined the channel [13:16] Nss has joined the channel [13:16] Esteb has joined the channel [13:18] thomblake has joined the channel [13:18] xerox: Glenjamin: I see [13:18] d_low_ has joined the channel [13:18] incon has joined the channel [13:19] ksheurs has joined the channel [13:20] divoxx has joined the channel [13:21] thomblake has left the channel [13:21] ph^ has joined the channel [13:21] fumanchu182 has joined the channel [13:22] Metal3d has joined the channel [13:22] xerox: is there a command at the prompt to load a file [13:22] xerox: as it if where a script [13:22] Frippe has joined the channel [13:23] Glenjamin: you mean into the repl? [13:23] xerox: yes [13:24] aconbere has joined the channel [13:24] Glenjamin: not that I know of [13:26] mrkishi has joined the channel [13:27] Metal3d has joined the channel [13:28] webben has joined the channel [13:28] aabt_ has joined the channel [13:29] JasonJS has joined the channel [13:30] ditesh|cassini has joined the channel [13:30] huskyr has joined the channel [13:31] CarterL has joined the channel [13:31] dseif has joined the channel [13:31] willwhite has joined the channel [13:31] Frippe_ has joined the channel [13:31] freeformz has joined the channel [13:31] tjholowaychuk has joined the channel [13:31] Frippe_ has joined the channel [13:32] mikekunze has joined the channel [13:33] pietern has joined the channel [13:33] mquin has joined the channel [13:34] replore_ has joined the channel [13:34] replore has joined the channel [13:36] jetienne has joined the channel [13:36] kulor-uk has joined the channel [13:36] aabt has joined the channel [13:37] caaakeeey has joined the channel [13:38] astacy: xerox: i think the best way is to use the vm module's runInContext method [13:38] astacy: or maybe runInThisContext [13:38] amiller has joined the channel [13:38] xerox: hmm [13:38] xerox: I like to load the scripts I am writing to test them out when writing [13:39] xerox: that's the usage I had in mind [13:39] astacy: xerox: i think i know what you mean, like running execfile() in python maybe? [13:39] Trevoke has joined the channel [13:39] xerox: or :load module.hs in GHCi [13:39] xerox: I am not used to python sorry [13:39] astacy: no worries, i'm not used to GHCi :) [13:40] xerox: hehe [13:40] xerox: but yes sounds like it [13:40] astacy: you may be best off defining your own function [13:40] astacy: i'm trying to get a patch into node that allows you to source a file on startup [13:40] xerox: that, quite, exactly. [13:41] xerox: node -i foo.js [13:41] xerox: *work work work* [13:41] xerox: > [13:41] H4ns: xerox: i usually just start a repl from my script if i want interactivity. [13:41] astacy: +1 it if you'd like: https://github.com/joyent/node/pull/1693 [13:41] xerox: H4ns: how does that work? [13:42] xerox: I did not know one could just start a repl in the context of a script [13:42] H4ns: xerox: http://nodejs.org/docs/v0.4.11/api/all.html#rEPL [13:42] Cromulent has joined the channel [13:42] H4ns: xerox: you must give the repl access to your data structures explicitly, but that's not usually a problem for me. [13:43] xerox: The REPL provides access to any variables in the global scope. [13:43] xerox: so those I do not need to add to the context [13:43] xerox: I'll try it immediately! [13:43] H4ns: xerox: enjoy :) [13:44] Glenjamin: eval(fs.readFileSync('filename')) [13:44] Glenjamin: roughly [13:45] xerox: ok I guess I don't know what global means in that context [13:45] xerox: but ok [13:45] xerox: that is certainly something [13:45] torsd has joined the channel [13:46] sivy has joined the channel [13:47] Poetro has joined the channel [13:47] xerox: awesome [13:48] slyphon has joined the channel [13:48] JimmyRoX has joined the channel [13:52] piscisaureus has joined the channel [13:53] grekko has joined the channel [13:53] JimmyRoX: Hey. Where can i find information about how Node handles the events (Operating System wise). Like it does a Round Table for the events? FIFO? Does it creates sub threads in the operating system?. Info like that (For a College Research) [13:55] bubo has joined the channel [13:56] bubo: hello. i'd like to ask - how to start with node.js ? what do i need? i found many modules/frameworks/wtf like express, backbone, socket.io etc and i am a bit dissapointed - what do i really need ? [13:56] dmkbot1 has joined the channel [13:56] FIQ|screen has joined the channel [13:57] metellus has joined the channel [13:57] `3rdEden: you need nothing bubo [13:57] `3rdEden: they are just handy [13:57] `3rdEden: saves you from coding up it your self. [13:58] JumpMast3r has joined the channel [13:58] esmevane has joined the channel [13:58] TheJH has joined the channel [13:58] TheJH has joined the channel [13:58] Dreamer3 has joined the channel [14:01] bubo: `3rdEden: thx for answer. and what would you recommend to start with ? pure node.js or try express + backbone + socket.io + ... ? [14:01] sreeix_ has joined the channel [14:02] Xano has joined the channel [14:03] DrMcKay has joined the channel [14:03] topaxi_ has joined the channel [14:04] `3rdEden: Express certainly makes it easier to start building a HTTP server [14:04] `3rdEden: because it implements routing, middleware, views for you [14:04] Xano_ has joined the channel [14:05] `3rdEden: and socket.io, I can comment on that as my opinion is biased, as I work on it :) [14:05] talltyler has joined the channel [14:05] der-basti has joined the channel [14:05] `3rdEden: but it's pretty awesome for realtime apps [14:05] Trevoke: I've found geddy, which is a web framework supposedly similar to Rails for Ruby [14:05] Trevoke: I'm going to play with that [14:05] thoolihan has joined the channel [14:06] der-basti has joined the channel [14:07] astacy: does node allow you to trap POSIX signals? [14:07] fdenbow has joined the channel [14:07] der-basti has left the channel [14:07] xerox: yes [14:08] c4milo has joined the channel [14:08] bubo: `3rdEden: and what about backbone.js ? is that compatible with express or they are doing the same thing ? [14:08] astacy: …oops, didn't rtfm -- process module handles POSIX signals, tnx xerox [14:08] xerox: astacy: process.on('SIGUNICORN', ...) [14:08] xerox: :D [14:09] astacy: …damn unicorns and their signaling... [14:09] tjholowaychuk: bubo they are different things [14:09] tjholowaychuk: you probably want to investigate that bit first :p [14:10] Xano_ has joined the channel [14:10] tjholowaychuk: but i know many people using backbone with express [14:10] objectiveous has joined the channel [14:11] andref__ has joined the channel [14:12] k1ttty has joined the channel [14:12] martinisoft has joined the channel [14:12] divoxx has joined the channel [14:13] robhawkes has joined the channel [14:14] azeroth_ has joined the channel [14:15] JakeyChan has joined the channel [14:16] adrianmg1 has joined the channel [14:16] nibblebot has joined the channel [14:16] figital has joined the channel [14:18] sfoster_ has joined the channel [14:18] joshkehn has joined the channel [14:18] aconbere has joined the channel [14:19] talltyler has left the channel [14:19] bubo: tjholowaychuk: and what would you recommend to start with ? nodejs + express + socket.io ...? (i am completly lost in all that node.js plugins, modules, frameworks ... ) [14:19] talltyler has joined the channel [14:20] tjholowaychuk: bubo well get an idea for a regular node http server first, at least play around with that a little [14:20] tjholowaychuk: then you'll see what things like connect/geddy/express offer [14:20] tjholowaychuk: and go from there [14:20] joshkehn has left the channel [14:21] sivy has joined the channel [14:21] jakehow has joined the channel [14:21] JasonJS: once you get a feeling for what base node offers you'll get a much better appreciation for what something like express can provide [14:21] bubo: tjholowaychuk: ok, thx :) [14:22] nibblebot has joined the channel [14:22] brianc has joined the channel [14:23] bubo: and probably last question: is it possible to write in coffeescript and take advantage of all nodejs frameworks and modules ? [14:24] tjholowaychuk: yeah [14:24] tjholowaychuk: it's more or less the same thing, so there's no runtime etc [14:24] pixel13 has joined the channel [14:25] igl has joined the channel [14:26] CoverSlide: geddy .. ew [14:26] emattias has joined the channel [14:27] Vennril has joined the channel [14:27] JasonJS: tj - you were saying that you work on socket.io. I have a code organization question for you - I've got a situation where I'm dealing with dozens of different events that I would love to break out into separate modules. Would you just pass in the main socket object to each mod and have it add it's own events? [14:27] sneakyness_wk has joined the channel [14:27] tjholowaychuk: JasonJS i dont really work on socket.io [14:30] Margle has joined the channel [14:31] anveo has joined the channel [14:31] anveo has joined the channel [14:33] jscheel has joined the channel [14:34] phunky has joined the channel [14:35] adambeynon has joined the channel [14:36] kimico has joined the channel [14:37] Xano has joined the channel [14:39] mandric has joined the channel [14:39] rurufufuss: is it possible to redirect http requests (or more like re-stream) to another port, but without a 302? something like a fs.createReadStream and util.pump? [14:40] rurufufuss: or is that a job that's better left to nginx/haploid etc? [14:40] CoverSlide: yeah, node-http-proxy would let you proxy a request to another http server [14:41] devongovett has joined the channel [14:41] CoverSlide: or you could do it manually but that would be a pain [14:41] stepheneb has joined the channel [14:41] H4ns: can anyone recommend a fsm framework? i see sebs/node-fsm, but it seems to be dormant. anything else? [14:42] igl1 has joined the channel [14:42] rurufufuss: CoverSlide: thanks, that's probably what I was looking for [14:42] digitaltoad has joined the channel [14:43] jtsnow has joined the channel [14:43] CoverSlide: flying spaghetti monster? [14:43] CoverSlide: are you a pastafarian? [14:43] H4ns: CoverSlide: fsm == finite state machine [14:43] pen has joined the channel [14:44] ablomen: ACTION throws a stone at CoverSlide, don't say god's name! [14:44] ablomen: oh wrong god :( [14:44] rurufufuss: also, is there a way to get npm to blurt out stuff, instead of being silent and all of a sudden reporting "yep, finished"? [14:44] rurufufuss: sometimes It feels like going through a dark tunnel without lights [14:44] exi_ has joined the channel [14:44] DrMcKay: rurufufuss: npm --verbose [14:44] exi_: hi [14:44] rurufufuss: (as opposed to say, apt-get) [14:45] hornairs has joined the channel [14:45] rurufufuss: DrMcKay: thanks [14:45] BillyBreen has joined the channel [14:46] andref__ has joined the channel [14:47] exi_: i just encountered this exception in non-javascript code: http://pastebin.com/TjyrQEyD [14:47] exi_: is this expected behaviour or just a bug? [14:48] exi_: imho there should be a javascript exception instead and not just node dieing [14:48] hydrozen has joined the channel [14:48] exi_: dying* [14:49] skyler_brungardt has joined the channel [14:49] CoverSlide: it's probably the c++ runtime that died [14:49] CoverSlide: and YOU KILLED HIM! [14:49] CoverSlide: ACTION shun [14:49] DrMcKay: lol [14:50] edoceo` has joined the channel [14:50] SargoDarya: Has anyone of you already seen the museum of me from intel? [14:50] SargoDarya: That's what I would call an impressive web application [14:51] CoverSlide: museum of you? why would anyone care? [14:51] SargoDarya: CoverSlide: No, it's only called like that: http://www.intel.com/museumofme/r/index.htm [14:51] CarterL: SargoDarya: yea, pretty sweet [14:51] DrMcKay: SargoDarya: it's not, it requires Flash [14:52] dshaw_ has joined the channel [14:52] DrMcKay: btw, MS ditched Silverlight [14:52] CoverSlide: and a facebook account [14:52] CoverSlide: which means no worky for me [14:52] SargoDarya: CoverSlide: It's still awesome [14:53] CoverSlide: jeez [14:53] CoverSlide: my autouggest in chrome gives me `museum of menstruation` [14:53] djcoin has joined the channel [14:53] SargoDarya: lol [14:53] JasonJS: I would suggest against clicking that link [14:54] CoverSlide: i click on every link [14:54] CoverSlide: and I run chrome as root [14:55] SargoDarya: At least you don't use windows :> [14:55] DrMcKay: CoverSlide: lol [14:56] broofa has joined the channel [14:56] `3rdEden has joined the channel [14:56] kmiyashiro has joined the channel [14:56] __sorin__ has joined the channel [14:56] jro_ has joined the channel [14:57] d_low has joined the channel [14:57] alnewkirk has joined the channel [14:59] fatjonny has joined the channel [15:00] jchris has joined the channel [15:00] colinclark has joined the channel [15:01] boaz has joined the channel [15:04] rurufufuss: does the example "Proxy requests within another http server" at https://github.com/nodejitsu/node-http-proxy throw an error for anyone else? [15:05] CoverSlide: what's the error? [15:05] CoverSlide: you're proxying it to an existing server right? [15:05] sub_pop has joined the channel [15:05] jerrysv has joined the channel [15:06] dseif has joined the channel [15:06] ceej has joined the channel [15:06] dnjaramba has joined the channel [15:06] dmkbot1: joyent/node: 03exi: std::bad_alloc exception if a too big buffer is allocated - https://github.com/joyent/node/issues/1710 [15:07] AAA_awright has joined the channel [15:07] amiller has joined the channel [15:08] erichynds has joined the channel [15:09] PhilK has joined the channel [15:10] socketio\test\50 has joined the channel [15:10] rurufufuss: CoverSlide: it's an exception saying that the constructor doesn't have the required constructor, makes me wonder if I have the right version [15:10] eldios has joined the channel [15:11] rurufufuss: or maybe just the example that's a bit out of date [15:11] malkomalko has joined the channel [15:11] robertfw has joined the channel [15:12] socketio\test\90 has joined the channel [15:13] rfay has joined the channel [15:13] dseif_ has joined the channel [15:13] OmidRaha has left the channel [15:13] adrianmg1 has left the channel [15:14] dshaw_ has joined the channel [15:15] vdemedes has joined the channel [15:16] ryanfitz has joined the channel [15:16] huskyr has joined the channel [15:18] softdrink has joined the channel [15:18] vdemedes: hi all [15:19] CoverSlide: yo [15:20] stepheneb has joined the channel [15:21] jesster7 has joined the channel [15:21] whitman has joined the channel [15:21] Me1000 has joined the channel [15:26] Morkel has joined the channel [15:26] freeformz has joined the channel [15:27] dguttman has joined the channel [15:29] EyePulp has joined the channel [15:29] SargoDarya: Any idea on how I would reference a user when I say to my PHP script this user has done that, send messages to those users and himself notifying him of current progress [15:30] Morkel: I will inform me about node.js. I found many cool stuff but no business cases. Does anyone know a company that use node.js [15:30] Morkel: ? [15:30] SargoDarya: Morkel: it's highly app specific I guess [15:31] Morkel: everything i found was cool stuff but only for fun [15:31] jakehow has joined the channel [15:31] kevwil has joined the channel [15:32] SargoDarya: Morkel: Think about it. When do you need to have real time support? [15:32] Xano has joined the channel [15:32] state has joined the channel [15:32] adrianmg has left the channel [15:33] Morkel: SargoDarya: Does this work over node.js? I found so many chat tools without node.js. But this is a business case. [15:33] stelleg has joined the channel [15:33] CoverSlide: lots of companies are using node.js [15:34] Morkel: CoverSlide: Do you have a link with some informations? [15:34] JasonJS: https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node [15:34] JasonJS: http://www.quora.com/Node-js/What-companies-are-using-Node-js-in-production [15:34] CoverSlide: http://jobs.nodejs.org/a/jobs/find-jobs << -- list of companies looking for node.js people, microsoft and yahoo included [15:35] JasonJS: http://venturebeat.com/2011/08/16/linkedin-node/ [15:35] CoverSlide: and I know netflix and meebo use them [15:35] Morkel: Thanks [15:35] isaacs has joined the channel [15:36] Renegade001 has joined the channel [15:37] Venom_X has joined the channel [15:37] slyphon has joined the channel [15:37] patcito has joined the channel [15:37] smtlaissezfaire has joined the channel [15:37] synkro has joined the channel [15:39] descipher_ has joined the channel [15:39] iammerrick has joined the channel [15:39] pizthewiz has joined the channel [15:40] JakeyChan has joined the channel [15:41] kriszyp has joined the channel [15:41] thalll has joined the channel [15:41] Renegade001 has joined the channel [15:42] ecin has joined the channel [15:43] zivester has joined the channel [15:43] sonnym has joined the channel [15:43] quijote has joined the channel [15:44] jmar777 has joined the channel [15:45] apoc has joined the channel [15:46] jmar777: hola muchachos [15:46] Frippe has joined the channel [15:46] phiggins has joined the channel [15:46] fangel has joined the channel [15:46] dmkbot1: joyent/node: 03davglass: HTTP parser fails if server returns no headers - https://github.com/joyent/node/issues/1711 [15:46] jmar777: ACTION realizes this was not his intended channel. but hola all the same, he supposes. [15:47] d_low_ has joined the channel [15:48] smtlaissezfaire has left the channel [15:48] Yuffster_work has joined the channel [15:49] CoverSlide: jmar777: yo [15:50] smtlaissezfaire has joined the channel [15:52] superjudge has joined the channel [15:53] sfoster has joined the channel [15:53] Renegade001 has joined the channel [15:53] gxdssoft has joined the channel [15:55] skython has joined the channel [15:56] colinclark has joined the channel [15:56] DrMcKay: fuck that, I'm rewriting my app in node.js [15:56] dmkbot1: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [15:56] DrMcKay: there are virtually no libs for Tornado in Python [15:56] smathy has joined the channel [15:57] jesusabdullah: oh? [15:57] jesusabdullah: Interesting [15:57] patcito has joined the channel [15:58] jesusabdullah: I've been thinking about playing with rest services in python [15:58] jesusabdullah: cause I think the dnode problem is way too hard for me to expend more energy over :P [15:58] DrMcKay: jesusabdullah: use Tornado, but you may have a hard time at finding libraries for it [15:59] bentkus has joined the channel [15:59] jesusabdullah: I don't need no libaries I have scipy and node.js [15:59] bentkus: How can I access subsequent html nodes with jquery? [15:59] paulwe has joined the channel [16:00] mandric has joined the channel [16:00] johnhamelink has joined the channel [16:00] xetorthio has joined the channel [16:01] AaronMT has joined the channel [16:01] xetorthio: is there any connection pool for http requests in node.js v0.4.11? [16:02] jtsnow has joined the channel [16:02] CoverSlide: they're called 'Agents' [16:02] BillyBreen has joined the channel [16:02] isaacs: using async io platforms in languages that are not strictly async is like being on the paleo diet and going with your friends to mcdonalds. [16:02] isaacs: you probably *can* find something you can eat, but it wont' be easy. [16:03] xetorthio: CoverSlide, is there any example of how can I use them? [16:03] codely has joined the channel [16:03] Glenjamin: that argument mostly holds up, but in many cases 'X' is available blocking for python, and not available at all for NodeJS :) [16:03] DrMcKay: I think that isaacs pretty much describes all my wories. [16:03] Glenjamin: like yaml parsing :( [16:03] CoverSlide: Anyone who has ever stood thier ground agianst an Agent has died. If you see one you run. [16:03] TooTallNate has joined the channel [16:03] CoverSlide: oh wait, wrong agent [16:03] bentkus: isaacs: what languages are not strictly async? [16:04] isaacs: bentkus: perl, python, ruby, and java come to mind [16:04] bentkus: What is the definition of a language which is not async? [16:04] N0va`: php [16:04] jesusabdullah: There's a sausage place in SF called Rosamunde's on lower haight [16:04] bentkus: and why are they not async? [16:04] jesusabdullah: and they have "vegetarian sausage" [16:04] isaacs: N0va`: but php doesn't have any async io platforms, that i'm aware of [16:04] isaacs: bentkus: most of the time, "language" implies "platform" as well. [16:04] codely: hey everyone, I'm looking to know what everyone uses for unit testing. I started using should and expresso to run them … what are everyones thoughts? Our company is writing such a dynamic app that I might not work on something for a few days then … breakage. I've never been exposed to unit tests, but I'm looking for the best way to test this. [16:04] N0va`: hmm, true [16:04] Glenjamin: rephrase "languages which in general use blocking calls for IO in their standard and 3rd party libraries" [16:04] isaacs: bentkus: less so with java, and virtually not at all with javascript [16:04] freeformz has joined the channel [16:04] bentkus: isaacs: there is eventmachine for almost all [16:05] jesusabdullah: python has a difficult time with asyncronous behavior [16:05] jesusabdullah: Like, it's been *done* obviously [16:05] jesusabdullah: lots of times [16:05] isaacs: bentkus: but that's why it's common to compare node with perl or ruby or python, rather than compare node with AnyEvent, EventMachine, or Twisted [16:05] jesusabdullah: but it's always a hack [16:05] Glenjamin: but most libs dont support that languages' reactor - whereas *all* node libs are built for the reactor [16:05] jesusabdullah: ^^ this [16:05] kersny has joined the channel [16:05] jesusabdullah: Just as important: I've never had to write any node "reactor" code [16:05] DrMcKay: well, I hope that my boss will understand it. [16:05] eignerchris has joined the channel [16:06] DrMcKay: or at least will get scared by "reactor" word. [16:06] CoverSlide: Quaid [16:06] bentkus: giving the ability only to do async is not the best solution for all apps IMO, the developer should have the power to handle all event loops [16:06] CoverSlide: start the reactor [16:06] DrMcKay: like, you're not dealing with regular programmer. I'm using reactors, bitch! [16:06] Glenjamin: bentkus: why? [16:06] mc_greeny has joined the channel [16:07] bentkus: because you might want to run 4 event loops in one application on different cpus [16:07] joshthecoder has joined the channel [16:07] Glenjamin: in the same process? [16:07] DrMcKay: yeah, and fuck, tornado can't do async file i/o [16:07] isaacs: bentkus: you can do that pretty easily with node. [16:07] CoverSlide: or you could just spawn 4 processes and ipc them all together [16:07] isaacs: bentkus: just run 4 node processes :) [16:07] Glenjamin: hahah: "just ipc them together" [16:08] isaacs: there has been some talk of eventually doing some threaded stuff with process.fork, but keeping the same application semantics. [16:08] CoverSlide: yeah no biggie [16:08] isaacs: ie, still isolated, but not separate processes. [16:08] Glenjamin: the IPC itself is easy enough, sharing data is fiddly as hell :D [16:08] bentkus: node forces the developer to use async only, good choice if your target developers are people who do not understand the difference between blocking/async calls [16:08] isaacs: nothing definite, though. other problems to solve first. [16:09] CoverSlide: that'd be cool to add some real threading to node, shut up some of the naysayers [16:09] Glenjamin: bentkus: if you let the dev choose, and the dev chooses blocking, then releases as 3rd party... [16:10] erasrhead has joined the channel [16:10] godzirra: Is there a way to use express to add a route like "app.get('/venue/:some_venue_id')" ? [16:10] Glenjamin: then you get fragmentation of 3rd party libs, whereas if everyone has to be async you're fine [16:10] tmedema has joined the channel [16:10] random123 has joined the channel [16:10] DrMcKay: Glenjamin++ [16:10] v8bot_: DrMcKay has given a beer to Glenjamin. Glenjamin now has 1 beers. [16:10] tmedema: Can anyone tell me what's wrong with this Vows test? https://github.com/tommedema/node-loadit/blob/master/test/loadit-test.js getting ReferenceError: t is not defined [16:10] felixge has joined the channel [16:10] felixge has joined the channel [16:11] tmedema: oh, nevermind [16:11] Glenjamin: heh, no persistance on beers :( [16:11] Glenjamin: and some karma bot just PMed me too [16:11] stash1 has joined the channel [16:11] Dmitrijus: CoverSlide: threading is bad, in any language, mkay [16:12] DrMcKay: btw, fun fact, threading isn't reallly possible in Python [16:12] jesusabdullah: I'm not convinced that threads can't be abstracted in a reasonable way [16:12] DrMcKay: you can do multiprocessing [16:12] jesusabdullah: I thought threading was possible but a bitch [16:13] CoverSlide: really? [16:13] zcopley has joined the channel [16:13] jesusabdullah: well, have you heard of the GIL? [16:13] CoverSlide: threading.Thread is just a separate process? [16:13] jesusabdullah: It basically means that even if you have threads that only one can run at a time [16:13] Glenjamin: DrMcKay: threads do work, they just can't both hit the interpreter at the same time [16:13] DrMcKay: jesusabdullah: this, GIL [16:13] jesusabdullah: yeah [16:13] jesusabdullah: it's bullshit [16:13] Glenjamin: but C libs can release a thread from the GIL (such as when waiting on IO) [16:13] Dmitrijus: it is not [16:13] bentkus: Glenjamin: Right, I wonder if it is possible to create tools which could be async and sync at the same time [16:14] Glenjamin: fibers let you write async code which looks sync - could be mileage there [16:14] CoverSlide: it is possible to create tools that are async and sync [16:14] CoverSlide: the fs module is an example [16:14] CoverSlide: sockets and streams are all handled async though [16:15] zastaph has joined the channel [16:15] xetorthio: CoverSlide, it worked! awesome!! thanks a lot! [16:15] xetorthio: btw, node.js is amazing! [16:15] ryan0x2 has joined the channel [16:15] vdemedes has left the channel [16:15] pfried: i got my LED Matrix running now, but works only on localhost, somebody an idea what to change? broadcast from the server doesnt reach the clients and the other way round [16:16] pfried: website is delivered by the server, works fine [16:16] jesusabdullah: shit, I gotta go [16:16] jesusabdullah: mornings! [16:16] jesusabdullah: amirite [16:16] CoverSlide: shit as in the reason for leaving, or shit as in an exclamation? [16:16] davidwalsh has joined the channel [16:16] jesusabdullah: ...BOTH. [16:17] CoverSlide: haha [16:17] jesusabdullah: No, I have work [16:17] jesusabdullah: XD [16:17] jesusabdullah: As much as I'd love to sleep until noon... ;) [16:17] gazumps has joined the channel [16:17] caolanm has joined the channel [16:18] DrMcKay: why unit tests aren't magic spells that get automagically fullfilled :< ? [16:19] bentkus: Should I use jquery to use it as a DOM browser? I need to get the second 'dl' element of the first 'content' classed element and I'm failing to achieve this, can some jquery ninja help me out? [16:19] wolftankk has joined the channel [16:20] DrMcKay: bentkus: there was a function returning elements by class, I thinl [16:20] DrMcKay: *think [16:20] CoverSlide: $(".content").find('dl:eq(1)') ? [16:20] adrianmg has joined the channel [16:20] alvaro_o has joined the channel [16:20] bentkus: CoverSlide: thanks [16:20] Me1000 has joined the channel [16:21] zastaph: im reading a file line by line, and the strings to a json that im PUT'ing into CouchDB .. I need some how to throttle the file reading because the DB inserts don't get run before I run out of memory. It seems to me that stream.drain or util.pump has the functionality I need, but neither line reading or DB PUT's are stream based. What can I use? [16:21] broofa has joined the channel [16:21] kenperkins has joined the channel [16:21] dgathright has joined the channel [16:21] DrMcKay: yeah, so I did `git checkout -b nodejs-rewrite && rm -rf *`, now I need a code [16:22] bentkus: Hm, now I understand it, thanks twice CoverSlide [16:23] CoverSlide: np [16:25] pfried: i get an served static /socket.io.js by connecting a client (not on localhost) is this a path error? [16:26] pfried: no actually isnt client is getting the file [16:26] pfried: but what does it mean? [16:26] bentkus: CoverSlide: I got an element like "innertext", now if I use .html() on it it will return only innertext, can I return the outer text too? [16:27] CoverSlide: there's a way to do it, I don't remember though [16:27] CoverSlide: maybe #jquery they know [16:27] bentkus: o wrong channel after all [16:27] bentkus: thanks [16:28] pfried: you have to traverse to parent and then use the .html [16:28] bubo: bentkus: what about $('inntertext').parent().html() ? [16:28] bubo: $('#innertext').parent().html() ofc [16:30] pfried: if there is more than one child in the parent you can use a special selector [16:30] pfried: somebody an idea about my static /socket.io.js thing? [16:30] bnoordhuis has joined the channel [16:30] markdaws has joined the channel [16:31] huskyr has joined the channel [16:31] dmkbot1: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [16:31] DrMcKay: oh, and I have like 3 days to rewrite the whole thing (60 hours of work) [16:31] luke` has joined the channel [16:32] DrMcKay: this is sure gonnad be fun [16:32] bentkus: h [16:32] DrMcKay: pfried: what's wrong? [16:32] vipaca has joined the channel [16:32] vipaca has joined the channel [16:32] bentkus: bubo: awesome! thanks [16:32] pfried: mom drmckay [16:33] ronnieboy has joined the channel [16:35] _JSilva has joined the channel [16:36] dmkbot1: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [16:38] stonebranch has joined the channel [16:39] pfried: I've got an application using socket.io, node.js and fs.js, it uses the socket.io to communicate, but clients outside of localhost dont get broadcast and cant send messages, they dont reach the server [16:39] wadey has joined the channel [16:39] pfried: http://warsitters.dnsalias.org/ [16:39] sub_pop has joined the channel [16:39] pfried: working fine on localhost [16:39] DrMcKay: pfried: what should happen? [16:39] neilk_ has joined the channel [16:40] tmedema has joined the channel [16:40] guillermo has joined the channel [16:40] tmedema: How can this assert fail? https://gist.github.com/1219743 [16:40] pfried: If you click a button it sends a message by socket.emit including the id and state of the button, the server broadcasts the command [16:40] CoverSlide: pfried: your clients are trying to connect to localhost [16:41] pfried: oh i see [16:41] pfried: omg [16:41] DrMcKay: pfried: what CoverSlide said :) [16:41] codely has joined the channel [16:41] wadey: tmedema: use assert.deepEqual [16:41] liar has joined the channel [16:41] nrstott has joined the channel [16:41] wadey: assert.equal only does == testing [16:41] tmedema: wadey: tried that, results in the same failure [16:42] CoverSlide: io.connect() just has it go to the same server [16:42] irahgel has left the channel [16:42] pfried: thank you guys, is working now, you can test it [16:42] robhawkes has joined the channel [16:42] tmedema: wadey: eh I must have made a mistake, it does work now with deepEqual [16:42] tmedema: thanks [16:42] wadey: tmedema: no problem [16:42] nrstott: Anyone have experience getting howtonode.org setup locally? I'm having some trouble. Im running node server/server.js and it seems to recognize when I have articles. If I go to localhost:8080/somethingrandom it tells me that the somethingrandom doesn't exist. If I go to something that does exist it tells me "Not Found" instead [16:42] JSManiacs has joined the channel [16:43] CoverSlide: sweet, it works [16:43] pfried: yeah, now i have to sync thme by startup and everything is fine [16:43] dnjaramba has joined the channel [16:46] boltR has joined the channel [16:46] JumpMast3r has joined the channel [16:46] dmkbot1: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [16:46] arg0s has left the channel [16:48] DrMcKay: great. 60 hours to fit into 4 days. [16:48] DrMcKay: from Python to node.js [16:48] japj has joined the channel [16:48] DrMcKay: now I'm depressed. [16:49] CoverSlide: awesome [16:49] CIA-54: node: 03isaacs 07v0.4 * r98990b9 10/ (lib/module.js lib/querystring.js lib/repl.js): Fix #1707 hasOwnProperty usage - http://git.io/u439bA [16:50] bnoordhuis: DrMcKay: sleep is for the weak! [16:50] DrMcKay: bnoordhuis: but that's impossible. [16:51] DrMcKay: or maybe... [16:51] DrMcKay: using express [16:51] DrMcKay: I could get all the basic shit done with few lines of code [16:51] dmkbot1: joyent/node: 03isaacs: hasOwnProperty usage - https://github.com/joyent/node/issues/1707 [16:51] CIA-54: node: 03Ryan Dahl 07master * r1b15af9 10/ (202 files in 15 dirs): Upgrade V8 to 3.6.4 - http://git.io/EuzKBA [16:53] CIA-54: node: 03isaacs 07v0.4 * rb3af074 10/ test/simple/test-querystring.js : Add querystring test for hasOwnProperty usage - http://git.io/1--cpA [16:53] CoverSlide: I can sleep when I'm undead [16:54] CoverSlide: til then im working on my zombie virus [16:54] kmiyashiro has joined the channel [16:55] DrMcKay: so, express-mongoose [16:55] synax has joined the channel [16:55] DrMcKay: mongoose-auth [16:55] synax: quick question [16:55] DrMcKay: and coffee [16:55] DrMcKay: and I'm done [16:56] synax: just getting started with node, and I'm wondering if the node_modules directory should be included in version control repos? [16:56] DrMcKay: and some heart attack, possibly [16:56] synax: (I guess it's more of an npm question) [16:56] DrMcKay: synax: I usually add it to .gitignore [16:56] synax: so how would new developers get the required dependencies? [16:56] isaacs: synax: there's no harm in it. [16:56] DrMcKay: synax: some people (like isaacs) use git submodules [16:56] isaacs: synax: but it's not required, usually [16:57] synax: what's the best practice in that regard, I guess is what I'm asking [16:57] DrMcKay: synax: npm install in package directory [16:57] isaacs: synax: personally, i prefer to have one place where things live. [16:57] synax: isaacs: as in --global ? [16:57] synax: or you mean in the project's repo itself? [16:57] isaacs: synax: nono, i mean, as in, one repo [16:57] synax: ah [16:57] isaacs: synax: and then either submodule or just `npm install` from the registry [16:58] synax: are there any examples I can follow somewhere? [16:58] isaacs: synax: npm itself is a good example of using bundled submodules. [16:58] isaacs: synax: or you can look at pretty much any other published node program for normal npm-install usage [16:58] synax: isaacs: npm's Github repo? [16:58] isaacs: synax: sure [16:58] synax: wonderful [16:58] isaacs: https://github.com/isaacs/npm [16:59] avih has joined the channel [16:59] synax: instant answers with no eliteism—wayyy better than #ror ;) [16:59] isaacs: https://github.com/isaacs/npm/tree/master/node_modules [16:59] isaacs: note that those are all submodules [16:59] isaacs: synax: aw, shucks :) [16:59] MrTopf_ has joined the channel [17:00] towski has joined the channel [17:00] Tobsn has joined the channel [17:00] CarterL has joined the channel [17:00] slifty has joined the channel [17:00] DrMcKay: k, I'll just go through this week and start rewriting it in node.js [17:00] herbySk has joined the channel [17:01] synax: thanks, DrMcKay and isaacs—I'll be back, I'm sure! [17:01] DrMcKay: synax: :) [17:01] cronopio has joined the channel [17:02] zmbmartin has joined the channel [17:03] staar2: well the most mature framework to make web, is express ? [17:03] JaKWaC has joined the channel [17:03] DrMcKay: staar2: yes [17:04] devdazed has joined the channel [17:04] `3rdEden has joined the channel [17:04] nrstott: isaacs, have you setup howtonode.org to run locally before? [17:04] isaacs: nrstott: not in a long time [17:04] topaxi has joined the channel [17:04] DrMcKay: and now a simple question, how can I tell my boss that I'm ditching everything I've been working on and starting from the beginning? [17:05] Daegalus: http://www.neowin.net/news/windows-8-new-protogon-filesystem-could-be-the-next-big-thing this looks interesting [17:05] CoverSlide: after it's done? [17:05] Renegade001 has joined the channel [17:05] DrMcKay: CoverSlide: he has access to our GH repo [17:06] ryanfitz has joined the channel [17:06] DrMcKay: but well, I'm the programmer, right? I'm a brave guy and all. [17:06] bnoordhuis: last time i was in warsaw, there were all these brave guys [17:07] bnoordhuis: sitting on the pavement with a cup full of coins before them [17:07] DrMcKay: bnoordhuis: lol [17:07] bnoordhuis: (i kid, i kid) [17:07] DrMcKay: bnoordhuis: you should've visited train station [17:07] DrMcKay: bnoordhuis: but seriously, some of them are full of them [17:07] _JSilva has joined the channel [17:07] bnoordhuis: yeah, it was kind of shocking [17:08] bnoordhuis: i was used to prague at that time where there are hardly any beggars [17:08] bnoordhuis: this is five years ago or so btw [17:08] DrMcKay: truth is, that there's no real way of getting rid of them. they aren't breaking any law or something. [17:09] DrMcKay: that's a shitty situation, because when you get there, it's sometimes the first thing you see [17:09] DrMcKay: and, I mean, really, that's not the way Poland looks ;) [17:09] zomgbie has joined the channel [17:10] Cromulent has joined the channel [17:10] CoverSlide: did they have signs `will code for food?` [17:10] CoverSlide: or the polish equivalent [17:10] japj: bnoordhuis: can you check https://github.com/joyent/node/issues/1659? I think it might be a general "pointer used before assigned issue" in libuv [17:11] codely has joined the channel [17:11] dmkbot1: joyent/node: 03piscisaureus: windows/spawn asserts w/ invalid argument - https://github.com/joyent/node/issues/1659 [17:11] DrMcKay: CoverSlide: lol. that would be: "będę programował za jedzenie", or something like that, if you're curious :D [17:11] bnoordhuis: japj: you're asking the wrong guy [17:12] japj: bnoordhuis: I was wondering what the unix backend does aswell ;) [17:12] StanlySoManly has joined the channel [17:12] pickels has joined the channel [17:13] japj: piscisaureus: pingaling [17:13] bnoordhuis: japj: the unix backend does the right thing, i think [17:13] bnoordhuis: been a while since i looked at it but no obvious bugs visible [17:13] japj: bnoordhuis: you mean that example works or you initialise all pointer vars before use? ;) [17:14] bnoordhuis: japj: works and yes, we do [17:16] freeformz has joined the channel [17:17] simenbrekken has joined the channel [17:17] bengrue has joined the channel [17:18] willwh has joined the channel [17:19] stash1 has joined the channel [17:19] vipaca has joined the channel [17:19] towski has joined the channel [17:20] nyrb has joined the channel [17:20] stephank has joined the channel [17:20] meandi has joined the channel [17:21] davidcoallier has joined the channel [17:21] jonrohan has joined the channel [17:22] panfist has joined the channel [17:23] Spion has joined the channel [17:25] DrMcKay: btw, any noders planning to go for http://rupy.eu ? [17:26] Lemon|mbp has joined the channel [17:26] dmkbot1: joyent/node: 03davglass: HTTP parser fails if server returns no headers - https://github.com/joyent/node/issues/1711 [17:27] AvianFlu has joined the channel [17:31] eignerchris_ has joined the channel [17:31] devdazed has joined the channel [17:31] adambeynon has joined the channel [17:31] dmkbot1: joyent/node: 03Skomski: Added new win32 platform function: getNetworkInterfaces() - https://github.com/joyent/node/issues/1652 [17:31] dmkbot1: joyent/node: 03Skomski: New win32 platform function: GetCPUInfo - https://github.com/joyent/node/issues/1664 [17:31] Morkel has joined the channel [17:31] jtrudeau has joined the channel [17:32] meandi2 has joined the channel [17:33] Lemon|mbp has joined the channel [17:35] japj: bnoordhuis: process_wrap.cc is a generic file? [17:36] dmkbot1: joyent/node: 03piscisaureus: windows/spawn asserts w/ invalid argument - https://github.com/joyent/node/issues/1659 [17:36] dmkbot1: joyent/node: 03piscisaureus: windows/spawn asserts w/ invalid argument - https://github.com/joyent/node/issues/1659 [17:36] mavin has joined the channel [17:37] sreeix has joined the channel [17:37] japj: bnoordhuis: I think options.file might leak, unless it is free'ed somewhere outside process_wrap.cc [17:37] felixhummel has joined the channel [17:37] shapeshed has joined the channel [17:38] DrMcKay: umm... [17:38] DrMcKay: should I be getting errors while merging my repo with upstream master? [17:38] pt_tr has joined the channel [17:39] japj: DrMcKay: depends on what you have been doing ;) [17:39] tilgovi has joined the channel [17:39] tilgovi has joined the channel [17:39] bnoordhuis: japj: can you link me to the offending line(s)? [17:39] tylerstalder has joined the channel [17:39] DrMcKay: japj: my master is clean, all changes happened in topic branches [17:39] eignerchris has joined the channel [17:39] bnoordhuis: DrMcKay: `git pull --rebase`, then push [17:40] japj: bnoordhuis: this is the allocation point https://github.com/joyent/node/blob/master/src/process_wrap.cc#L89 [17:40] vaheh has joined the channel [17:41] japj: bnoordhuis: the cleanup happens from https://github.com/joyent/node/blob/master/src/process_wrap.cc#L162 [17:41] panfist: i'm getting node.js up and running for the first time and i think i'm having problems with npm. i installed npm from the 1 line install given on the site, then tried to 'npm install jsdom', which ends with "'build' finished successfully", but it says it's not there when i require it from nodejs-repl [17:41] tbranyen: tjholowaychuk: http://coderwall.com/visionmedia lol [17:41] isaacs: panfist: did you install it locally? are you in the same folder where it was installed? [17:41] DrMcKay: bnoordhuis: still fails [17:41] japj: DrMcKay: can you gist the error? [17:41] dmkbot1: joyent/node: 03piscisaureus: windows/spawn asserts w/ invalid argument - https://github.com/joyent/node/issues/1659 [17:41] dmkbot1: joyent/node: 03piscisaureus: windows/spawn asserts w/ invalid argument - https://github.com/joyent/node/issues/1659 [17:41] DrMcKay: bnoordhuis: `git pull --rebase upstream master`, right? [17:41] bnoordhuis: DrMcKay: yes [17:42] DrMcKay: https://gist.github.com/6b6fa8b4a04dcda2ee08 [17:42] bnoordhuis: japj: yes, seems to leak [17:42] panfist: isaacs: install locally? are you referring to nodejs, npm or jsdom? regarding folders, i'm in the same dir i was in when i executed npm install jsdom [17:43] isaacs: panfist: i was referring to jsdom [17:43] DrMcKay: japj: ^^^ [17:43] isaacs: panfist: what node version, and what was the output when you installed jsdom? can you paste it to gist.github.com or pastie.org? [17:43] hornairs has joined the channel [17:44] panfist: node version is 0.1.97, paste here http://pastie.org/2538735 [17:44] japj: 0.1.97? [17:44] CoverSlide: wtf [17:44] DrMcKay: oh. [17:44] CoverSlide: version bug, update plz [17:45] CoverSlide: im not gonna look at it, just gonna call it a version bug [17:45] hermanjunge has joined the channel [17:45] bnoordhuis: panfist: node 0.1.97 is like linux 0.99 [17:45] hermanjunge: python gurus? anybody? [17:45] japj: bnoordhuis: I ran linux 0.99 at some point ;) [17:45] panfist: ok...need to backtrack a little i guess hahah [17:45] bnoordhuis: japj: yeah, me too :) [17:45] hermanjunge: How do you make a print with several lines? [17:45] bnoordhuis: hermanjunge: print "foo\bar\n"? [17:46] hermanjunge: no, several lines in the code [17:46] panfist: i got node like this: git clone https://github.com/joyent/node.git && cd node [17:46] hermanjunge: print 'hi ' [17:46] hermanjunge: 'my name is hermanjunge' [17:46] hermanjunge: i don't like long lines [17:46] bnoordhuis: hermanjunge: string concatenation? [17:46] hermanjunge: no [17:46] bnoordhuis: print ("foo" "bar") [17:46] hermanjunge: look [17:46] hermanjunge: I'm doing this [17:46] DrMcKay: bnoordhuis: I did a `git reset --hard HEAD` and now HEAD is in correct state (V8 upgrade( [17:46] japj: hermanjunge: you can use """ to start/end long strings [17:47] hermanjunge: print '\t\t\033[1;31mNecesita Subcontratar: %d Buses, esta atrasado\033[1;0m' % deficit [17:47] hermanjunge: but I want to separate it in lines in order to make it more redeable [17:47] japj: ah [17:47] wbednarski has joined the channel [17:47] hermanjunge: how do you do that, python though very handy is very strict [17:47] japj: you can always use \ to split a line into multiple [17:48] hermanjunge: \ in the middle of it? [17:48] hermanjunge: just like that? [17:48] bnoordhuis: hermanjunge: you mean multiple print statement without newlines? [17:48] DrMcKay: but master isn't on correct login [17:48] DrMcKay: s/login/commit/ [17:48] bnoordhuis: DrMcKay: `git fetch origin && git reset --hard origin/master` [17:48] hermanjunge: bnoordhuis no, print with a very long argument [17:49] bnoordhuis: hermanjunge: oh, i told you that [17:49] hermanjunge: separating the argument into several lines for readability [17:49] DrMcKay: bnoordhuis: I'm doing that on a fresh clone [17:49] mwhooker has joined the channel [17:49] hermanjunge: with backslah [17:49] baudehlo1 has joined the channel [17:49] japj: >>> '\t\t\033[1;31mNecesita Subcontratar:'\ [17:49] panfist: ok my problem was i had installed node.js through my distro's package manager before i got it from the repo and it did not remove properly. everything seems to be working fine now that i'm on version 0.5.7-pre [17:49] japj: ... ' %d Buses, esta atrasado\033[1;0m' % 10 [17:49] bnoordhuis: hermanjunge: you don't need the backslash, python will concatenate strings if written like "foo" "bar" [17:49] hermanjunge: ok japj, bnoordhuis [17:49] hermanjunge: ok ! I see it [17:49] perezd has joined the channel [17:49] grekko has joined the channel [17:49] hermanjunge: once more, this IRC rules! [17:50] hermanjunge: you don't know the time I've spent me and google for long hours before admitting there was a community oyt there [17:50] hermanjunge: [17:50] bnoordhuis: :) [17:50] Wizek has joined the channel [17:50] Vertice has joined the channel [17:50] japj: now I can't remember what I was actually going to do tonight [17:50] hermanjunge: thx bnoordhuis++ japj++ [17:50] vidi has joined the channel [17:50] hermanjunge: bnoordhuis++ [17:51] v8bot_: hermanjunge has given a beer to bnoordhuis. bnoordhuis now has 1 beers. [17:51] hermanjunge: japj++ [17:51] v8bot_: hermanjunge has given a beer to japj. japj now has 2 beers. [17:51] bnoordhuis: yay! [17:51] japj: oo.. I have 2 beers? [17:51] devdazed__ has joined the channel [17:51] japj: who gave me the first beer? [17:51] dmkbot1: joyent/node: 03indutny: [debugger] fix for #1707 - https://github.com/joyent/node/issues/1712 [17:52] DrMcKay: ok, I've fetched upstream [17:52] davemo has joined the channel [17:52] dseif has joined the channel [17:54] DrMcKay: `git merge upstream/master` fails with https://gist.github.com/96d057c813020260fc02 [17:55] CIA-54: node: 03isaacs 07v0.4 * re06ce75 10/ (4 files in 2 dirs): [17:55] CIA-54: node: Fix #1707 hasOwnProperty usage [17:55] CIA-54: node: If hasOwnProperty is overridden, then calling `obj.hasOwnProperty(prop)` [17:55] CIA-54: node: can fail. Any time a dictionary of user-generated items is built, we [17:55] CIA-54: node: cannot rely on hasOwnProperty being safe, so must call it from the [17:55] CIA-54: node: Object.prototype explicitly. - http://git.io/w-PWyA [17:55] brion has joined the channel [17:55] brion has joined the channel [17:55] DrMcKay: and I haven't even touch that path :< [17:55] heavysixer has joined the channel [17:56] japj: DrMcKay: what did you do with deps/uv/test/test-tcp-close.c? [17:56] japj: ah [17:57] DrMcKay: japj: it isn't in my repo, and it got checked in into upstream just few days ago [17:58] slifty has joined the channel [17:59] japj: DrMcKay: is your change a complex one? I'm not really deep into conflict handling with git [17:59] bnoordhuis: japj: that's an awesome test btw [17:59] japj: bnoordhuis: does the unix implementation fork an empty thing? [18:00] DrMcKay: interesting, it says that upstream/master and origin/master diverged [18:00] bnoordhuis: japj: unix implementation of what? [18:00] japj: bnoordhuis: ok, lost here... what test are we talking about? [18:00] japj: DrMcKay: what is your origin? [18:00] DrMcKay: this could happen when some changes got resetted instead of reverted, I think [18:00] bnoordhuis: japj: test-tcp-close (which is awesome because i wrote it) [18:01] japj: DrMcKay: hmm.. I usually do my own changes in a non-master branch to avoid too much headache [18:02] japj: bnoordhuis: ah, then you get to fix DrMcKay's issue I guess ;) [18:02] bnoordhuis: DrMcKay: so what is the issue? [18:02] DrMcKay: japj: I also do, no way they would diverge [18:02] storrgie has joined the channel [18:03] japj: bnoordhuis: slightly offtopic, are you going to fix that memory leak, or should I send a pull request for that one before it is forgotten? [18:03] DrMcKay: japj: my origin is mmalecki/node.git, upstream is joyent/node.git [18:04] davidwalsh has joined the channel [18:04] DrMcKay: bnoordhuis: merge upstream/master fails, because branches diverged, I guess [18:04] scott_gonzalez has joined the channel [18:04] pietern has joined the channel [18:04] DrMcKay: I could rebase with theirs [18:04] bnoordhuis: DrMcKay: stash your changes or park them in a branch, then simply fetch and reset --hard, done [18:04] knifed has joined the channel [18:05] DrMcKay: bnoordhuis: no, my working directory is clean [18:05] srruby has joined the channel [18:05] DrMcKay: bnoordhuis: I haven't made *any* changes to master branch [18:05] bnoordhuis: DrMcKay: so you're tracking origin and upstream? [18:05] bnoordhuis: and it's complaining about divergence? [18:05] srruby: I'm trying npm publish and it is failing. Is it possibly not my fault? [18:06] DrMcKay: bnoordhuis: yes [18:06] netlemur_ has joined the channel [18:06] dmkbot1: joyent/node: 03cwolves: 0.5.6: fs.readdirSync crashes on empty directory (OSX) - https://github.com/joyent/node/issues/1713 [18:06] dmkbot1: joyent/node: 03cwolves: 0.5.6: fs.readdirSync crashes on empty directory (OSX) - https://github.com/joyent/node/issues/1713 [18:07] japj: DrMcKay: I can reproduce it here [18:07] japj: DrMcKay: how very strange [18:07] Aiden_ has joined the channel [18:07] bnoordhuis: phone call, biab [18:07] DrMcKay: bnoordhuis: I would invalidate SSH keys first... [18:08] japj: DrMcKay: I did "git clone https://github.com/mmalecki/node.git" cd node, and then "git pull https://github.com/joyent/node.git master" [18:09] DrMcKay: japj: yup. and I can't any commit that would render those branches diverged [18:10] DrMcKay: *can't see [18:10] bogomips2_ has joined the channel [18:10] blessYAHU has joined the channel [18:10] burningdog has joined the channel [18:11] devdazed has joined the channel [18:11] burningdog has left the channel [18:11] dmkbot1: joyent/node: 03bnoordhuis: process_wrap memory leak? - https://github.com/joyent/node/issues/1714 [18:11] dmkbot1: joyent/node: 03bnoordhuis: process_wrap memory leak? - https://github.com/joyent/node/issues/1714 [18:11] slifty has joined the channel [18:12] isaacs: srruby: gist the output, please [18:12] srruby: thanks brb [18:12] pen has joined the channel [18:13] japj: DrMcKay: I am looking at the commit log of node for 9 september and there is something strange compared to your repository [18:13] felixge has joined the channel [18:13] felixge has joined the channel [18:13] japj: DrMcKay: the last commit has a different sha [18:14] DrMcKay: japj: that's impossible... [18:14] DrMcKay: japj: link? [18:14] slifty_corsair has joined the channel [18:14] japj: DrMcKay: look at https://github.com/joyent/node/commits/master?page=2 and https://github.com/mmalecki/node/commits/master side by side [18:14] DrMcKay: japj: oh shit [18:15] japj: "fix for test-fs-chmod" (igorzi) matches, but the next one doesn't [18:16] DrMcKay: but it's impossible, I haven't done a single rebase on this repo [18:16] japj: DrMcKay: I don't know either, but can you revert that last commit in your repo and then try the merge with upstream again? [18:16] dmkbot1: joyent/node: 03hildjj: Results of stat() incorrect, don't match statSync - https://github.com/joyent/node/issues/1401 [18:16] dmkbot1: joyent/node: 03BillBarnhill: Fix memory allocation in uv__fs_after - https://github.com/joyent/node/issues/1686 [18:17] DrMcKay: japj: true, I have both commits accesible, the diff is not empty [18:17] random123: i wuz u guyz [18:17] DrMcKay: japj: sure, but it isn't a desired situation [18:18] DrMcKay: bnoordhuis: didn't you guys reset and then push or something? [18:18] japj: DrMcKay: I think there is a way you can undo a commit without it showing up in the history anymore [18:18] DrMcKay: japj: it's reset [18:18] bnoordhuis: DrMcKay: possibly [18:19] japj: DrMcKay: anyway, I hope that helps solve it [18:20] igl has joined the channel [18:20] lightcap has joined the channel [18:20] DrMcKay: japj: it did, thank you :) ! [18:22] lightcap has joined the channel [18:24] joe-f2 has joined the channel [18:24] ttpva has joined the channel [18:24] stash1 has joined the channel [18:25] japj: bnoordhuis: slightly offtopic, are you going to fix that memory leak, or should I send a pull request for that one before it is forgotten? [18:25] pfried: thank you guys, my LED Matrix is working quite well and now can provide the current state [18:25] dandean has joined the channel [18:25] pfried: http://warsitters.dnsalias.org/ [18:25] DrMcKay: pfried: :D [18:26] mjr_ has joined the channel [18:27] bnoordhuis: japj: if you want to fix it then yes please [18:27] colinclark_ has joined the channel [18:27] frederickcook has joined the channel [18:27] enmand has joined the channel [18:28] colinclark_ has joined the channel [18:29] frederickcook: just posted an SO question on using executing node.io jobs from within node.js: http://stackoverflow.com/questions/7435544/calling-node-io-job-from-within-node-js [18:29] maushu has joined the channel [18:29] N0va has joined the channel [18:29] uberpro has joined the channel [18:29] AvianFlu: pfried: that's pretty cool [18:30] caaakeeey has joined the channel [18:30] MT has joined the channel [18:30] Wizek has joined the channel [18:30] MT: Hello everyone. [18:30] MT: I am totally new to Node.js [18:31] pfried: somebody sending some special arguments [18:31] MT: I am currently using Windows 7 x64 [18:31] MT: Can someone tell me where I need to start [18:31] pfried: Well my first project using node.js and socket.io but ich love it [18:31] dmkbot1: joyent/node: 03seebees: Tests for Sockets - https://github.com/joyent/node/issues/1699 [18:31] kersny has joined the channel [18:31] frederickcook: MT: I started with http://nodebeginner.org [18:32] MT: Thanks frederickcook. [18:32] AvianFlu: MT: you should also check out http://docs.nodejitsu.com , although those articles tend to be written from a linux/macos perspective [18:32] MT: thanks for that too. [18:32] MT: One quick question though. Do you guys think it is OK to start working on Node.js on Windows? [18:32] vipaca has joined the channel [18:32] vipaca has joined the channel [18:33] japj: bnoordhuis: now I'm slightly confused, it appears uv_process_options_s.file is a const char*, so we cannot free it, but we can strdup to it .. sigh [18:33] AvianFlu: MT: it's still unstable to an extent, and it won't be "ready" till you see 0.6.x [18:33] vampi-the-frog has joined the channel [18:33] vampi-the-frog has joined the channel [18:33] AvianFlu: you'll be able to do most basic things now, though [18:33] bnoordhuis: japj: free((void*)req.file); // :-) [18:33] AvianFlu: no npm though I don't think [18:34] MT: Yes, there is still no NPM [18:34] quijote has joined the channel [18:34] japj: bnoordhuis: it is const! [18:34] MT: So, I will start using it on Ubuntu. [18:34] bnoordhuis: japj: const is just a hint, a guideline, not a rule [18:34] MT: AvianFlu: Can I ask you something? [18:35] AvianFlu: sure [18:36] MT: AvianFlu: Is it possible to use Node.js in place of a Comet server/reverse ajax ? [18:36] NetRoY has joined the channel [18:36] AvianFlu: I haven't used comet myself, but it seems like you could definitely do that kind of thing [18:37] AvianFlu: probably easier, I'd say [18:37] MT: I have been trying to know if Node.js has that capability to do so. [18:38] enmand has joined the channel [18:38] JSManiacs: MT: That is one of the use cases where node typically shines [18:38] JSManiacs: MT: depending on your current backedn, commet servers can be very costly to hold those connections since many servers block on IO [18:38] vampi-the-frog: http://s3.amazonaws.com/kym-assets/photos/images/original/000/155/594/yesitis2.gif?1311943181 [18:38] JSManiacs: and every connection into the server can be IO bound [18:38] MT: JSManiacs: I am working on a project currently and I haven't ever used node. [18:39] MT: So I really wanted to give it a try. Node seems to be a lot famous on twitter. [18:39] JSManiacs: NIO / Java make commet possible, but the paradigm in those languages / stacks is very different than traditional servlet programming [18:39] MT: This eventually led me to get curious about what it exactly is. [18:39] JSManiacs: whereas in node evented based non blocking IO programming is a first class design choice [18:40] MT: Okay. How do you think I can go ahead with Node? [18:40] JSManiacs: watch some tutorials… but I can tell you now the libraries your interested in are socket.io [18:40] JSManiacs: dnode or hook.io [18:41] MT: Are those the ones that help continuous polling [18:41] JSManiacs: yes, those implmented what the industry has traditionally thought of long polling [18:41] JSManiacs: but socket.io in particular will make use of web sockets- which is much better than an ajax long poll [18:42] MT: Ok. I will start off with learning Node.js [18:42] MT: I really want to get my hands dirty ASAP. I want to try out and know what Node.js actually is about. [18:42] MT: I am completely oblivious to the power of Node. [18:43] JulioBarros has joined the channel [18:44] japj: bnoordhuis: ok, I think my github workflow is slightly flawed, I just saw all my merges of upstream ending up in a pull request. I guess you'll have a tip to not do that? :) [18:45] KingJamool has joined the channel [18:46] dmkbot1: joyent/node: 03japj: Fix options file memory leak - https://github.com/joyent/node/issues/1715 [18:49] mendel_ has joined the channel [18:49] colinclark_ has joined the channel [18:50] srruby: isaacs: Thanks, I figured it out. Looks like the package.json was misconfigured. [18:51] astacy has joined the channel [18:51] jbpros has joined the channel [18:51] mikey_p: are there any node.js hosting providers that are based in the rackspace cloud? [18:51] tjholowaychuk: mikey_p i think nodejitsu uses rs [18:52] thalll_ has joined the channel [18:53] Aiden has joined the channel [18:53] mikey_p: i have a client that has existing PHP app there and they want roll out some new feature with node [18:55] freeformz has joined the channel [18:56] sveimac has joined the channel [18:58] colinclark has joined the channel [18:59] devdazed has left the channel [19:00] sveimac has joined the channel [19:00] micheil has joined the channel [19:00] Frippe has joined the channel [19:00] CIA-54: node: 03isaacs 07master * r98990b9 10/ (lib/module.js lib/querystring.js lib/repl.js): Fix #1707 hasOwnProperty usage - http://git.io/u439bA [19:00] CIA-54: node: 03isaacs 07master * re06ce75 10/ (4 files in 2 dirs): [19:00] CIA-54: node: Fix #1707 hasOwnProperty usage [19:00] CIA-54: node: If hasOwnProperty is overridden, then calling `obj.hasOwnProperty(prop)` [19:00] CIA-54: node: can fail. Any time a dictionary of user-generated items is built, we [19:00] CIA-54: node: cannot rely on hasOwnProperty being safe, so must call it from the [19:00] CIA-54: node: Object.prototype explicitly. - http://git.io/w-PWyA [19:00] CIA-54: node: 03isaacs 07master * rb3af074 10/ test/simple/test-querystring.js : Add querystring test for hasOwnProperty usage - http://git.io/1--cpA [19:00] CIA-54: node: 03Ryan Dahl 07master * ra1bafc5 10/ (5 files in 2 dirs): [19:00] CIA-54: node: Merge remote branch 'origin/v0.4' [19:00] CIA-54: node: Conflicts: [19:00] CIA-54: node: deps/http_parser/http_parser.c [19:00] CIA-54: node: deps/http_parser/test.c [19:00] CIA-54: node: lib/repl.js - http://git.io/9h7SAA [19:01] Margle has joined the channel [19:01] albertosheinfeld has joined the channel [19:01] aruns has joined the channel [19:03] wGEric has joined the channel [19:03] CIA-54: node: 03Jeroen Janssen 07master * r3e66780 10/ src/process_wrap.cc : [19:03] CIA-54: node: Fix options_file_memory_leak [19:03] CIA-54: node: Fixes #1714. [19:03] CIA-54: node: Fixes #1715. - http://git.io/ZL0NCA [19:05] dseif has joined the channel [19:06] soapyillusions has joined the channel [19:07] jhurliman has joined the channel [19:07] pfried: '3rdEden: Do you remeber talking about the LED Matrix stuff yesterday? Works fine so far! Hardware is getting its signals via tcp and the website is running quite well under http://warsitters.dnsalias.org/ [19:07] netlemur has joined the channel [19:08] Lemon|mbp has joined the channel [19:08] soapyillusions: hey everyone, I am receiving the following error with no more stack trace, anyone recognise it [19:08] soapyillusions: Error: Parse Error at Socket.ondata (http.js:1231:22) at Socket._onReadable (net.js:683:27 at IOWatcher.onReadable (net.js:177:10) [19:09] pt_tr has joined the channel [19:09] mike5w3c has joined the channel [19:09] AvianFlu: soapyillusions, that looks like somebody sent you malformed HTTP, at first glance [19:09] Renegade001 has joined the channel [19:10] DrMcKay: no no [19:10] TheJH has joined the channel [19:10] TheJH has joined the channel [19:10] soapyillusions: AvianFlu so my server would be trying to read a malformed HTTP request (for example) [19:10] DrMcKay: soapyillusions: what are you doing exactly? [19:10] soapyillusions: DrMcKay well a lot is going on, and it seems to happen sporadically and with no other stack trace, so I am a little confused [19:10] sveimac has joined the channel [19:10] Wizek has joined the channel [19:11] soapyillusions: but many POST requests should be coming in at that time [19:11] DrMcKay: I don't think that's a malformed request [19:12] soapyillusions: hmm, anything else come to mind ( I am trying to make sense of that part of the source code ) [19:13] AvianFlu: DrMcKay, what else would cause an HTTP parse error? [19:13] vipaca has joined the channel [19:13] gazumps has joined the channel [19:14] artnez has joined the channel [19:14] L_starTST has joined the channel [19:14] DrMcKay: AvianFlu: I don't think that's a parse error, they look a bit different [19:15] DrMcKay: socket.onReadeble is the real source, I think [19:15] DrMcKay: it happens when socket gets closed [19:15] sveimac has joined the channel [19:16] kersny has joined the channel [19:16] soapyillusions: DrMcKay so my code is trying to write to a closed socket? [19:20] DrMcKay: soapyillusions: or read from it [19:20] DrMcKay: soapyillusions: does the server work after that? [19:20] DrMcKay: expected answer is no [19:20] mraleph has joined the channel [19:21] soapyillusions: nope it immediatly dies [19:21] dmkbot1: joyent/node: 03jifeon: node_waf: 'no such environment: default' - https://github.com/joyent/node/issues/1716 [19:21] soapyillusions: anywhere I should be looking into for debugging purposes [19:22] artnez has joined the channel [19:22] DrMcKay: soapyillusions: process has an event which gets called in case of such exception [19:23] romanb has joined the channel [19:23] matyr_ has joined the channel [19:24] wbednarski has joined the channel [19:24] soapyillusions: DrMcKay uncaughtException ? [19:25] pfried has joined the channel [19:26] Skipants has joined the channel [19:26] locksfree has joined the channel [19:26] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [19:26] freeformz has joined the channel [19:27] DrMcKay: soapyillusions: that would be it [19:27] DrMcKay: soapyillusions: but I'm not sure if that will actually help [19:27] soapyillusions: well I am giving it a try [19:28] artnez has joined the channel [19:28] r04r has joined the channel [19:28] r04r has joined the channel [19:28] i42n has joined the channel [19:28] gazumps has joined the channel [19:28] matyr has joined the channel [19:28] artnez has left the channel [19:28] i42n has joined the channel [19:29] apoc has joined the channel [19:30] JSManiacs has left the channel [19:30] Aphelion has joined the channel [19:30] JaKWaC has joined the channel [19:30] soapyillusions: on a side note, anyone know how to detect which parameter of a rather large object has a circular reference… JSON.stringify() dies but does not say at what parameter [19:30] CarterL has joined the channel [19:31] AaronMT has joined the channel [19:32] Renegade001 has joined the channel [19:32] soapyillusions: DrMcKay and I caught the parse error, it let program go without dying, but gave no more information regarding it [19:32] Xano has joined the channel [19:32] soapyillusions: DrMcKay it actually caught a socket hang up right afterwards too [19:33] DrMcKay: it might be it [19:33] iivvoo has joined the channel [19:34] chrisbuchholz has joined the channel [19:35] mpoz2 has joined the channel [19:35] r04r has joined the channel [19:35] mynameisbender has joined the channel [19:35] jacobolus has joined the channel [19:36] freeformz has joined the channel [19:36] L_starTST has joined the channel [19:37] dudewheresmycode has joined the channel [19:37] dudewheresmycode: hey any one know a better way than ELB to cluster node.js servers on amazon? [19:38] boltR has joined the channel [19:38] dudewheresmycode: i have 1 small instance running node.js and i'd like to be able to split the load between a few VMs [19:39] jesusabdullah: What's ELB? [19:39] jesusabdullah: learnboost has a project called cluster. Maybe that will do what you want [19:39] ErikHCorry has joined the channel [19:40] r04r has joined the channel [19:41] aruns: i'm trying to read a file using the lazy module. - lazy = Lazy(stream).lines.map(String).forEach(function(line) { ...}). how can i execute something after lazy has finished? i tried adding a lazy.on('end', function() {}) but that didnt work [19:42] Cromulent has joined the channel [19:42] dudewheresmycode: jesusabdullah: ELB is (Elastic Load Balancing) [19:43] dudewheresmycode: jesusabdullah: It's an AmazonWS feature to have one DNS work as a balancer and send traffic to the instance with the least load [19:43] superjudge has joined the channel [19:45] ngl has joined the channel [19:45] dudewheresmycode: does cluster (http://learnboost.github.com/cluster/) work between multiple instances? or one single instance? [19:45] ngl: ...anybody looking for a job in Saint Louis, MO ??? [19:45] darshanshankar has joined the channel [19:45] r04r has joined the channel [19:46] jesusabdullah: tjholowaychuk: dudewheresmycode has questions about cluster [19:46] ngl: we need a node guru-ish. [19:46] tjholowaychuk: dudewheresmycode hey [19:46] dudewheresmycode: hey.. just wondering about cluster.. it seems it's meant more for multi-CPU or multi-Core systems rather than multiple VM instances [19:47] digitalt_ has joined the channel [19:47] garrensmith has joined the channel [19:47] vipaca has joined the channel [19:47] AvianFlu: ngl there have been posts to the mailing list about St. Louis node meetups, you should look for some of those threads, you may find a couple locally [19:47] sorin has left the channel [19:47] blazento has joined the channel [19:47] dudewheresmycode: i'm looking for a better alternative (more node.js friendly) way to do load Balancing between servers running node.js [19:47] topaxi has joined the channel [19:47] tjholowaychuk: dudewheresmycode yeah it's for managing several processes [19:47] tjholowaychuk: more node friendly? [19:48] tjholowaychuk: that's what cluster is designed for [19:48] dudewheresmycode: multiple instances of node on totally different machines? [19:48] dudewheresmycode: or the same machine? [19:49] dudewheresmycode: say I don't have a multi-core server [19:49] tjholowaychuk: same machine, however you could for example use cluster with node-http-proxy to fan out to multiple machines [19:49] tjholowaychuk: that also use cluster to utilize the cpus [19:49] dudewheresmycode: ok gotcha.. that makes more sense [19:49] tjholowaychuk: (or haproxy if you want something faster) [19:49] dudewheresmycode: yes faster, leaner is the goal [19:49] colinclark has joined the channel [19:49] skiz has joined the channel [19:49] dudewheresmycode: it's for a metrics solution for high volume impression tracking [19:50] cole_gillespie has joined the channel [19:50] dudewheresmycode: so lots and lots of incoming writes [19:50] r04r has joined the channel [19:51] dudewheresmycode: haproxy isn't a direct node module tho is it? [19:51] dmkbot1: joyent/node: 03jifeon: context in EventEmitter.on - https://github.com/joyent/node/issues/1717 [19:51] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [19:53] blazento: hi. I'm having trouble with modules. When I run node app.js I get Error: Cannot find module 'express'. When i run echo $NODE_PATH, i see /home/john/.nave/installed/0.4.11/lib/node... and when i go there and up a directory nstalled/0.4.11/lib/node_modules, sure enough i see express [19:53] AvianFlu: dudewheresmycode, if you want a pure-node solution then http://github.com/nodejitsu/node-http-proxy is your best bet, and it can be used with cluster for sure [19:54] blazento: now i can go into my app and run 'npm install -d', which will install all the modules according to packages.json inside my app itself, however it doesn't install some addition packages such as 'connect' [19:54] blazento: but 'connect' is in the node_modules path in .nave/installed/0.4.11/lib/ [19:55] dudewheresmycode: AvianFlu: how do haproxy and node-http-proxy differ in speed / reliance? [19:55] AvianFlu: haproxy is 10+ years old [19:55] dudewheresmycode: reading http://www.candland.net/2011/01/30/aws-ec2-nodejs-forever-haproxy-setup/ right now [19:55] r04r has joined the channel [19:55] AvianFlu: both are a single-threaded event-driven architecture [19:56] AvianFlu: raw speed, haproxy wins - which it should, after being around for 10 years [19:56] AvianFlu: node-http-proxy is performant, but a little less so, and it also lets you add middlewares and proxy tables and other features that are useful, but slow things down a little [19:57] __sorin__ has joined the channel [19:57] dudewheresmycode: k.. my major concern is reliability and speed (which makes me learn towards haproxy) [19:57] isaacs: blazento: you're installing express globally. install it locally. [19:57] dudewheresmycode: since it's for metrics collection.. accuracy is VERY important [19:58] AvianFlu: haproxy has been around for longer. I haven't seen reliability issues with node-http-proxy, but haproxy is definitely a more established product. [19:58] AvianFlu: nodejitsu and no.de both run node-http-proxy in production [19:59] dudewheresmycode: gotcha.. i might play around with both and get a feel for it.. i also might compare to how it fares with traditional Load Balancing thru amazon [20:00] AvianFlu: well-put-together benchmarks would definitely be welcome [20:00] AvianFlu: as advice for node-http-proxy, the less you do to the requests as they come in, the more performance you get [20:00] AvianFlu: I guess that's true of all proxies [20:00] Gregor has joined the channel [20:00] Nathan__ has joined the channel [20:00] r04r has joined the channel [20:00] dudewheresmycode: gotcha.. appreciate the help AvianFlu [20:01] felixge has joined the channel [20:01] felixge has joined the channel [20:01] tauren_ has joined the channel [20:02] ydef has joined the channel [20:02] frederickcook: Does anyone know the best way to run a node.io job from a node.js application? [20:03] TheJH: frederickcook, define "job" [20:03] frederickcook: spawn child_process? [20:03] tomtomaso has joined the channel [20:03] japj: AvianFlu: btw, is there some proxy server/mechanism that proxies an app to a url, i.e. instead of app1.domain.com and app2.domain.com you have domain.com/app1 and domain.com/app2 ? [20:03] blazento: do i need to have the modules both in my application path and in my node path? [20:04] javaanse_jongens has joined the channel [20:04] frederickcook: TheJH: well, I wrote a scraper that works great from command line, but want to run it from within an application [20:04] AvianFlu: japj there are a few ways to do that [20:04] TheJH: frederickcook, require() it and use it [20:04] TheJH: frederickcook, you won't need an extra process for that [20:04] AvianFlu: japj the easies would probably be to use an (experimental) middleware that dominictarr wrote because of how often we get this question: http://github.com/dominictarr/proxy-by-url [20:05] AvianFlu: that lets you do forward and reverse proxying based solely on url matches [20:05] japj: AvianFlu: ah, cool! ;) [20:05] AvianFlu: japj: "that thing works as far as I've seen" (tm) [20:05] AvianFlu: it's pretty basic, and should work, but just to warn you lol [20:05] japj: hehe [20:05] frederickcook: TheJH: so, doing that, the node.io job sends SIGTERM command and kills the node process [20:06] localhost has joined the channel [20:06] alnewkirk has joined the channel [20:06] CIA-54: node: 03Ryan Dahl 07master * r763059e 10/ LICENSE : Remove pthread-win32 from license file (no longer using it) - http://git.io/RvjjdA [20:06] TheJH: frederickcook, so the question is: why does your scraper send a SIGTERM? a node process should usually just die from joblessness [20:06] cody-- has joined the channel [20:06] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [20:06] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [20:06] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [20:06] freeformz has joined the channel [20:07] DrMcKay: freeformz: ping [20:07] DrMcKay: I knew it. someone ban this wannabe spammer. [20:07] zeade has joined the channel [20:07] cody--: can anyone tell me the difference between storing a list of currently connected clients in an object compared to storing them in redis [20:07] japj: that's a hot issue [20:07] r04r has joined the channel [20:07] japj: ;) [20:08] DrMcKay: japj: 3 comments in 5 minutes ;) [20:08] japj: yeah [20:08] DrMcKay: japj: it needs some issue diffing [20:08] japj: is github giving you that in their api? [20:08] DrMcKay: japj: yes, checkout API v3, issues [20:09] HektoR has joined the channel [20:09] AvianFlu: DrMcKay, is that stuff streamed or do you have to long-poll [20:09] DrMcKay: AvianFlu: long poll -.- [20:10] HektoR: hello guys ... is there any good tutorial about writing node.js module in javascript ? [20:10] AvianFlu: HektoR: http://docs.nodejitsu.com [20:10] ydef: module question: so say I have the following function: "imp=function(obj, me){for (k in obj) { me[k] = obj[k]}};" [20:11] AvianFlu: also http://docs.nodejitsu.com/articles/getting-started/what-is-require [20:11] frederickcook: TheJH: agreed. when I run a node.io job from the command line, when you do emit(results), it sends results to stdout, and runs a SIGTERM. [20:11] ydef: running "imp(require('lib'), this);" will bring the values of "exports" into my local namespace [20:11] dudewheresmycode has left the channel [20:11] ydef: ie, attaching them to "this" [20:11] AvianFlu: ydef: looks like it, yes [20:11] AvianFlu: although you may have to assign "this" to something before you can assign to it [20:12] AvianFlu: I can't remember offhand [20:12] TheJH: frederickcook, why does it send a SIGTERM to itself? are you explicitely doing that? [20:12] sparrowsteeth has joined the channel [20:12] ydef: however, if "imp" is defined *within* a module, ie "exports.imp =...", and I import the module, and invoke it, "lib.imp(require('a'), this)", it does not work. [20:13] sparrowsteeth: Hi, is this the right place to ask questions about installing node.js on OSX? [20:13] frederickcook: TheJH: as I understand, node.io is designed primarily as a command-line tool, so when you run emit(), it returns the results and kills itself [20:13] ydef: which confused me because it's an identical function being invoked on an identical value [20:13] AvianFlu: ydef: try var self = this; lib.imp(require('a'), self) or whatever [20:13] frederickcook: TheJH: unless I'm mis-understanding something [20:13] ydef: AvianFlu: thanks, voy a intentarlo [20:14] alindeman has joined the channel [20:14] CIA-54: libuv: 03Bert Belder 07prefork * r8afa067 10/ (include/uv-win.h prefork.c src/win/tcp.c): prefork II - http://git.io/kXXXZg [20:15] r04r has joined the channel [20:15] TheJH: frederickcook, https://github.com/chriso/node.io/wiki mentions an API [20:15] sparrowsteeth: can someone tell me what is the most up-to-date stable version of node? [20:16] AvianFlu: 0.4.11 [20:16] AvianFlu: 0.5.6 is "unstable", which should be regarded as "not done yet" until you see 0.6.0 [20:16] AvianFlu: unless you want to test it, of course [20:17] JaKWaC has joined the channel [20:17] astacy has joined the channel [20:17] sparrowsteeth: ok - thanks, I will try installing 0.4.11 then [20:18] DrMcKay: + npm doesn't work on 0.5.6 [20:19] BillyBreen has joined the channel [20:19] japj: ryppi does ;) [20:19] freeformz: DrMcKay: ? [20:20] jchris has joined the channel [20:21] ydef: AvianFlu: var self=this; didn't make any difference. So: locally defined fn "imp" can modify 'this', but if I pass "this" to a function in my module, I can't seem to modify it. Is that by design? [20:21] DrMcKay: freeformz: ah, no, you're a human? I was just wondering why do you join the channel and then quit because of Excess flood [20:21] ceej has joined the channel [20:21] freeformz: DrMcKay: Crap. I need to check my bouncer then. Sorry about that. [20:21] AvianFlu: ydef: I'm not sure. can you gist the code for me to look at? [20:21] r04r has joined the channel [20:21] r04r has joined the channel [20:22] ydef: AvianFlue: sure! gist a second ... [20:22] tylerstalder has joined the channel [20:22] DrMcKay: freeformz: sorry about assuming you're a bot :). http://xkcd.com/632/ [20:23] iivvoo has joined the channel [20:23] freeformz: DrMcKay: np. I idle a lot ... so simple mistake ... esp when mixed with Excess Floods [20:24] Lemon|mbp has joined the channel [20:28] ydef: AvianFlu: the source of my confusion revealed: https://gist.github.com/1220380 [20:29] joshfng has joined the channel [20:31] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [20:31] dmkbot1: joyent/node: 03tjanczuk: Support for building MSI installers on Windows - https://github.com/joyent/node/issues/1706 [20:31] TheJH: there are no working fuse bindings for node yet, right? [20:31] Lukeas has joined the channel [20:32] aruns: i'm reading a file, processing the data and spitting out some calculation using - Lazy(stream).lines.map(function(line){/*process*/}).join(function(lines){ /* spit out result */}) [20:32] r04r has joined the channel [20:32] r04r has joined the channel [20:32] aruns: is this the most efficient way? [20:32] TheJH: I guess it would be possible to write a fuse-to-js-proxy in java... but that'd be ugly [20:33] TheJH: aruns, is it a large file? [20:33] aruns: TheJH, yes [20:33] slicky: I usually map an alias like `var Productive = Lazy;` to make me feel better about it. :D [20:33] jchris has joined the channel [20:33] slicky: that way I can Productive(stream).blahblahblah [20:33] aruns: could be upto a GB [20:34] ydef: AvianFlu: I could see me missing something super-obvious on this one. [20:34] aruns: haha slicky [20:34] AvianFlu: ydef: I think that it might be the way you're exporting it... I think that exports can get particular at times [20:34] AvianFlu: give me a moment [20:34] TheJH: aruns, that join thing looks bad to me... [20:34] aruns: i'm concerned about the join at the end. i couldn't find another way of doing the reporting after the work had been done [20:35] CIA-54: libuv: 03Erick Tryzelaar 07master * r9700181 10/ test/test-ping-pong.c : test: fix compiling with gcc-4.5 - http://git.io/1y8QWg [20:35] CIA-54: libuv: 03Erick Tryzelaar 07master * r905fe71 10/ src/unix/fs.c : unix: fix a compiler warning - http://git.io/gZxXog [20:35] CIA-54: libuv: 03Erick Tryzelaar 07master * r533418d 10/ (7 files): test and bench: assert return values of *_init functions in tests - http://git.io/bVKYmA [20:35] TomY has joined the channel [20:35] aruns: TheJH, exactly. i'm not sure how to run a function after lazy has finished the forEach, or map [20:35] devdazed has joined the channel [20:35] AvianFlu: ydef, "this" refers to the current module in the scope you're using it in [20:36] CIA-54: node: 03Ryan Dahl 07master * r5cb1fd2 10/ (lib/net_uv.js test/simple/test-console.js): net.Socket(fd) should start readable and writable - http://git.io/KeW73g [20:36] KingJamool has joined the channel [20:36] TheJH: aruns, you could use one of those whatever-delimited-chunks modules and then do something map-reduce-like on each chunk [20:36] dmkbot1: joyent/libuv: 03erickt: Fix a couple warnings, added some asserts, and compiling with gcc-4.5 and mingw-w64 - https://github.com/joyent/libuv/issues/186 [20:36] TheJH: !npm search delimited|newline [20:36] jhbot: package directive: Parser for simple line delimited files [20:36] jhbot: package json-line-protocol: Stream protocol handler for CRLF-delimited JSON values [20:36] ydef: AvianFlu: so, there's no way to set a value of 'this' even if I pass it as an object to a function in a module? [20:37] AvianFlu: let me look at your code, one second [20:37] aruns: TheJH, so use json-line-protocol instead of lazy ? [20:37] ydef: AvianFlu: in the gist I bind it to 'self', too -- I can see me missing something basic about scope, but I thought that that way it would behave like any lexical variable bound to an object [20:38] TheJH: aruns, or submit a pull request with a reduce function to the Lazy module, shouldn't be hard to do :D [20:38] Margle has joined the channel [20:38] AvianFlu: ydef, your code works for me [20:38] TheJH: pkrumins, what would you think about adding such functionality? [20:39] AvianFlu: when I console.log(this) after the first m.imp I see the properties that should be there [20:39] neilk_ has joined the channel [20:39] ydef: AvianFlu: no way ... could the fact that I've been testing in the repl have mucked it up? :P [20:39] aruns: TheJH, there already is a foldr and bucket function. but i'm still trying to figure out how to solve my problem using that [20:39] AvianFlu: ydef: probably [20:39] ydef: hahaha [20:40] ydef: I'm a MORAN. thanks, AF. [20:40] AvianFlu: it's all good [20:40] r04r has joined the channel [20:40] r04r has joined the channel [20:41] jbpros: hey guys -- anyone can tell me how to track down what module is causing "No wrapper for core module crypto" in browserify? [20:41] dmkbot1: joyent/libuv: 03erickt: Fix a couple warnings, added some asserts, and compiling with gcc-4.5 and mingw-w64 - https://github.com/joyent/libuv/issues/186 [20:42] TheJH: aruns, what's the problem? the part with writing a reduce function or doing it with Lazy? [20:42] AvianFlu: jbpros: it means one of your modules is requiring "crypto", what are your requires? [20:43] skiz: whats your favorite router for express and why? [20:43] kuebk^ has joined the channel [20:43] kuebk^: js [20:43] kuebk^: hi [20:43] aruns: TheJH, the reduce function. i'm still learning the functional approach. what i'm trying to do is parse some router log files, and essentially do a report on the number of times two IPs communicated [20:43] aruns: with each other [20:43] kuebk^: does v8 garbage collector can handle node buffers? [20:44] metellus has joined the channel [20:44] jbpros: AvianFlu: yep -- https://gist.github.com/1220427 [20:45] TheJH: aruns, have 0 as the start value, let your map function return 0 or 1 depending on whether it was communication between the two clients you want to filter for and let your reduce function add the two arguments [20:45] TheJH: aruns, looks like Lazy even has "sum" for that reduce thing [20:45] aruns: TheJH, i want to do a report on all the IPs, not just two [20:45] cronopio has joined the channel [20:46] AvianFlu: jbpros: I'm not sure offhand >.< [20:46] aruns: TheJH, yes. i guess what i need is some kind of group function, i thought bucket does it, but i'm not sure [20:46] jbpros: AvianFlu: it's weird because when I got back to a previous commit I'm sure was working, I still get that error [20:46] DrMcKay has joined the channel [20:47] TheJH: aruns, ah, so you want entries in your output for each IP-IP combination that communicated? [20:47] jbpros: AvianFlu: tried several node versions to no avail [20:47] DrMcKay: kuebk^: what do you mean? [20:47] AvianFlu: new version of one of your dependencies? [20:47] kuebk^: I mean [20:47] kuebk^: for example [20:47] kuebk^: on string you need to do strdup [20:47] AvianFlu: hey substack, there's a browserify question for you in here [20:47] jbpros: AvianFlu: that's what I thought, but reverting to an old commit with older deps didn't help [20:48] aruns: TheJH, exactly a report on how many times two nodes communicated, preferrably ordered by the number of connects [20:48] kuebk^: to use it in other function/method/whatever [20:48] AvianFlu: grep the source tree [20:48] AvianFlu: for require('crypto') [20:48] AvianFlu: or just for crypto [20:48] kuebk^: i'm asking do i need to do same thing on buffers too [20:49] jbpros: AvianFlu: you mean un node_modules or in the app? [20:49] jbpros: s/un/in/ [20:49] AvianFlu: I mean, either [20:49] AvianFlu: it's gotta be somewhere in the app [20:49] AvianFlu: in the big sense, I mean [20:49] AvianFlu: it has to be in there somewhere if it's throwing [20:49] ryanrolds has joined the channel [20:49] DrMcKay: kuebk^: you mean something like a deep copy? [20:49] slifty has joined the channel [20:49] kuebk^: no [20:49] jbpros: yeah already did that, trying again. would be cool to get a more clear message from browserify ;) [20:50] kuebk^: or no, i meant yes [20:50] kuebk^: ~~ [20:50] fly-away has joined the channel [20:50] AvianFlu: ask substack, I'm pretty sure there are things you can do to help with that [20:51] felixge has joined the channel [20:51] felixge has joined the channel [20:51] TheJH: aruns, maybe let the map function return {"1.2.3.4-5.6.7.8": 1} or so and let the reduce function add the values of all keys? [20:51] sparrow_ has joined the channel [20:52] slifty_corsair has joined the channel [20:52] jbpros: AvianFlu: results: browserify (ok..) and connect [20:52] TheJH: aruns, e.g. reduce({'1.2.3.4-5.6.7.8':2,'1.2.3.4-6.7.8.9':1}, {'1.2.3.4-6.7.8.9':1}) => {'1.2.3.4-5.6.7.8':2,'1.2.3.4-6.7.8.9':2} [20:53] AvianFlu: grepping for 'crypto' will get results from browserify because it checks for it [20:53] KingJamool has joined the channel [20:53] jbpros: AvianFlu: yeah, hence my (ok.. ;)) [20:53] AvianFlu: as for connect, see where it is [20:53] sparrow_: quick question re: install of node.js... I cloned the git repo, checked out branch v0.4.11, built it, and checked the built binary is correct verison with `node -v`, and then I simply copied the binary alone to ~/local/node/bin/ which seems to work, but I don't know if this is the right thing to do, and if I am missing something from my installation process - so does anyone know? [20:53] jbpros: AvianFlu: ok -- it's not supposed to be in the chain though, only in this server.js file. [20:53] DrMcKay: kuebk^: I think it's somehow possible [20:54] AvianFlu: yeah, I'm not really sure [20:54] kuebk^: DrMcKay [20:54] AvianFlu: jbpros: talk to substack when he's online next [20:54] DrMcKay: kuebk^: also, Buffer will be replaced by typed arrays soon [20:54] DrMcKay: kuebk^: let me look it up [20:54] kuebk^: I've heard so [20:54] jbpros: AvianFlu: I found it I think! Gherkin is requiring connect [20:55] AvianFlu: there you go [20:55] ismell: if i have a number 12345 how can i get a new number 345 ? [20:55] ismell: I don't know what to divide or multiply by [20:55] jbpros: AvianFlu: awesome -- thanks :) [20:55] kuebk^: i'm messing around with one of the node-memcache plugins [20:55] kuebk^: trying to support buffers instead of plain strings [20:55] aruns: TheJH, thanks trying that [20:55] jbpros: AvianFlu: fixed! [20:56] Murvin has joined the channel [20:56] shipit has joined the channel [20:57] DrMcKay: kuebk^: yes, it's possible [20:57] astacy has joined the channel [20:57] kuebk^: yea i know [20:57] DrMcKay: kuebk^: var deepCopy = someBuffer.slice(0) [20:57] kuebk^: i'm doing it in cpp [20:57] DrMcKay: ahh... [20:58] CIA-54: node: 03Ryan Dahl 07master * rb281171 10/ (src/node.js test/simple/test-console.js): Support legacy API: process.stdout.fd - http://git.io/VE3Xew [20:59] astacy has joined the channel [20:59] DrMcKay: kuebk^: what class are you using as a buffer? [20:59] kuebk^: Buffer [20:59] Murvin: when I use express.staticGzip or static provider, how can I put in eTag in the response. [21:00] passion has joined the channel [21:00] passion: hi [21:00] TheJH: ismell, try 12345 % 1000 [21:00] TheJH: !admin eval "ismell, "+(12345%1000) [21:00] TheJH: huh? [21:00] Guest16896: how to use node.js with any web server - for example how to call node.js from some php script? [21:01] TheJH: !admin eval 12345 % 1000 [21:01] TheJH: !admin eval Math.mod(12345, 1000) [21:01] DrMcKay: !admin eval anything [21:01] jhbot: you're not my admin [21:01] TheJH: !admin eval 1 [21:01] devaholic: call node.js from a php script?? [21:01] DrMcKay: lol [21:01] TheJH: DrMcKay, hmm, weird, it's alive, but there's something wrong... [21:01] japj: !help [21:01] DrMcKay: kuebk^: OK, and you want to know when it'll get gc-ed, right? [21:02] japj: help still works ;) [21:02] kuebk^: I need to know if it ever be [21:02] kuebk^: gc-e-d [21:02] kuebk^: gc-ed [21:03] kriszyp has joined the channel [21:03] TheJH: sparrow_, "sudo make install" [21:03] Cromulent has joined the channel [21:05] AaronMT has joined the channel [21:05] sebastianedwards has joined the channel [21:05] Poetro_ has joined the channel [21:06] DrMcKay: kuebk^: Buffers get gc-ed just like any other objects, I think. so when you keep references to them in some kind of array, you're safe [21:06] springmeyer_ has joined the channel [21:06] tlrobinson has joined the channel [21:06] springmeyer_ has left the channel [21:06] kuebk^: that's about what i'm not sure [21:06] kuebk^: especially in combination with asynchronous handling using eio [21:09] sparrow_: @TheJH just did that and it gives success message - does that mean I can be confident all is installed correctly? [21:09] alnewkirk has joined the channel [21:09] DrMcKay: kuebk^: try that, but I'm pretty sure that you're safe [21:09] TheJH: sparrow_, should be [21:09] sparrow_: thanks [21:09] dudewheresmycode has joined the channel [21:10] dudewheresmycode: hey can someone explain in a nutshell the difference between running just a node.js http server or using express? [21:11] ossareh: express is a framework with bells and whistles built on top of node.js [21:11] mjr_: dudewheresmycode: express is a higher level abstraction for common things you want to do [21:12] dudewheresmycode: so for the most basic http server i'd want to just stick with node.js and http [21:12] ossareh: if you intend to serve static _files_ use express, if you're going to serve up a response that isn't a file - node.js should work. [21:12] funyon has left the channel [21:13] dudewheresmycode: just wondering if express was somehow better performing for serving.. (reading too far into the name "express" i think).. thanks! [21:13] astacy_ has joined the channel [21:13] ossareh: that said, understanding the underlying platform is key to any technical decision you make, imho. [21:13] slifty has joined the channel [21:13] mjr_: dudewheresmycode: it'll probably run slower in express, but it'll be easier to write, once you figure it out. [21:13] mjr_: The slowdown is likely to be negligible. [21:14] neilk_ has joined the channel [21:14] kkaefer has left the channel [21:14] dinarcon has joined the channel [21:15] dudewheresmycode: also.. random other question.. if im using node.js for (very) high volume metrics collection (impressions, events), would using socket.io work well at high volumes? [21:16] dudewheresmycode: i feel like creating one socket connection per user and then just firing my events with emits() would somehow be less of a load on the server than how im doing it now.. which is a few separate HTTP GET requests with query string of data [21:17] dudewheresmycode: using node.js to simply append the query vars to a JSON file and then a cronjob every few min to scrape the log, do a batchInsert to mongoDB and clear the log [21:19] Nathan__: dudewheresmycode, you may find that keeping open a persistent socket to every user consumes more resources than the way you are ding it now [21:19] nrstott has joined the channel [21:19] astacy has joined the channel [21:19] abravo has joined the channel [21:20] dudewheresmycode: that sort of what i figured.. usually i've found with metrics the simpler the better [21:20] TheDahv has joined the channel [21:20] nrstott: right [21:20] pkrumins: aruns, TheJH, Lazy(...).on('end', function(){}) [21:21] HektoR: guys is it possible in node.js to extend two functions which are included from different files ? please look at scripts: index.js -> http://pastebin.com/mbM94ii4 Router.js -> http://pastebin.com/8Ngg0qQG View.js -> http://pastebin.com/znyZ5hK4 [21:21] Xano has joined the channel [21:21] pkrumins: TheJH: which functionality? [21:21] fangel has joined the channel [21:21] Wa has joined the channel [21:22] sonnym has joined the channel [21:22] aruns: pkrumins, i tried that. but it didn't seem to work. let me try it again [21:22] TheJH: pkrumins, he needs just-in-time-reduce for ram reasons, I think, but I just was mistaken, didn't know foldr and bucket [21:22] ryanfitz has joined the channel [21:23] eignerchris_ has joined the channel [21:23] hernan has joined the channel [21:24] HektoR: can anyone help me ? [21:25] jesusabdullah: HektoR: What do you mean by extend? [21:26] aruns: pkrumins, i tried it with both chaining it to the end of the Lazy().lines.map...on('end', function()) as well as doing a lazy.on('end', function()) but neither one works [21:26] HektoR: jesusabdullah, inheritance of two function ... [21:26] aruns: i'm using node 0.4.11 and coffee 1.1.2 if that matters [21:27] jesusabdullah: HektoR: You'll have to be more specific. :( [21:27] shipit_ has joined the channel [21:27] freeformz has joined the channel [21:27] neilk_ has joined the channel [21:27] HektoR: jesusabdullah, ok ... let me show you another snippet ... [21:27] jesusabdullah: Just one snippet [21:27] jesusabdullah: if possible [21:27] jesusabdullah: just enough to describe your issue [21:30] HektoR: jesusabdullah, http://pastebin.com/Ue0hpfEc look at this one ... this is combined code from Router.js and View.js ... with this i can call Router methods in View. the same thing want when i require this Router and View functions from different files [21:31] Guest16896: how to use node.js with any web server - for example how to call node.js from some php script or from html page? Is it possible? [21:34] jj0hns0n has joined the channel [21:35] dudewheresmycode: Guest16896: think of node.js as more of an apache replacement... [21:36] dudewheresmycode: but you can setup a node.js server on, say, port 8080 and then interact with it from your server on 80 using php / html [21:36] dudewheresmycode: just my 2 cents [21:36] dmkbot1: joyent/node: 03vitorbal: Add anchor links next to each function - https://github.com/joyent/node/issues/1718 [21:37] robertfw has joined the channel [21:38] HektoR: jesusabdullah, did you see that ? [21:39] eignerchris has joined the channel [21:39] jj0hns0n has joined the channel [21:39] jesusabdullah: HektoR: One sec [21:40] jesusabdullah: HektoR: So what's wrong with that? [21:40] jesusabdullah: HektoR: Maybe you should write down what you want to do with it and say, "would this work?" [21:40] Guest16896: dude, can I use node.js with other languages? [21:41] tlrobinson has joined the channel [21:41] shipit_ has joined the channel [21:42] denom has joined the channel [21:42] jesusabdullah: Guest16896: lolwat [21:42] AvianFlu: Guest16896, how are you hoping to connect them? [21:42] dudewheresmycode: you can use node.js with javascript... [21:42] AvianFlu: or, what do you mean, more specifically [21:43] dudewheresmycode: Guest16896: What are you trying to accomplish exactly? [21:43] jesusabdullah: You can make a node process communicate with another process written in a different language. How well you can do this depends on the other language/runtime [21:43] aruns: Guest16896, if you are talking about calling it from php then lookup shell_exec. you can call anything installed on your machine from php using that, including node.js [21:44] HektoR: jesusabdullah, there is nothing wrong with this file... I can call Router function in View. but when i include these function from different files there are no longer inheritance. http://pastebin.com/mbM94ii4 [21:44] aruns: but like dudewheresmycode said, its probably not a good design if you are calling node.js from php [21:45] Guest16896: dude, I just want to use node and be able to use something else if there will be problem with node limitations [21:45] dudewheresmycode: i can attest it's a hard concept to wrap your brain around, if you're used to using a LAMP stack [21:45] jesusabdullah: HektoR: Do you mean that your prototypes aren't sticking? [21:45] dudewheresmycode: look into http://socket.io [21:46] dudewheresmycode: you can create server / clients and run your client on apache [21:46] dudewheresmycode: then send / receive events back and forth thru node [21:46] dudewheresmycode: from a static html page and your running node server [21:46] dmkbot1: joyent/node: 03mikeal: streams2 - https://github.com/joyent/node/issues/1681 [21:46] Guest16896: aruns, that would be very bad design to call a shell like that just to use node [21:46] jesusabdullah: HektoR: afaict that should work. [21:47] jesusabdullah: Guest16896: why for? >:P [21:47] meandi has joined the channel [21:48] dudewheresmycode: Guest16896, i should also note you can use mysql modules to integrate with an existing MySQL database in node.js http://nodejsdb.org/ [21:52] astacy_ has joined the channel [21:53] HektoR: jesusabdullah, yes... the prototypes aren't sticking [21:54] Guest16896: hm... it would be good to have in node.js something similar to php, jsp in html pages - like some html code <%node.js node code %> [21:54] er1c_ has joined the channel [21:56] dmkbot1: joyent/node: 03ry: SSL hanging due undrained error queue? - https://github.com/joyent/node/issues/1719 [22:00] markwubben has joined the channel [22:00] jj0hns0n has joined the channel [22:01] freeformz has joined the channel [22:03] jj0hns0n has joined the channel [22:03] darshanshankar has joined the channel [22:04] chrisbuc1holz has joined the channel [22:05] nuck has joined the channel [22:05] chrisbuchholz has joined the channel [22:06] SweatyKeyboard has joined the channel [22:06] SweatyKeyboard: Madonna makes my keyboards sweaty. [22:07] vidi has joined the channel [22:07] AaronMT has joined the channel [22:07] CIA-54: node: 03Ryan Dahl 07v0.4 * r6312e88 10/ src/node_crypto.cc : Drain OpenSSL error queue? Addresses #1719 - http://git.io/J1M7Fg [22:07] mynameisbender has joined the channel [22:07] jmoyers has joined the channel [22:08] cjm has joined the channel [22:08] Aiden has joined the channel [22:09] CIA-54: node: 03Ryan Dahl 07master * r6312e88 10/ src/node_crypto.cc : Drain OpenSSL error queue? Addresses #1719 - http://git.io/J1M7Fg [22:09] CIA-54: node: 03Ryan Dahl 07master * r1b0a5cb 10/ src/node_crypto.cc : Merge remote branch 'origin/v0.4' - http://git.io/VXfl-A [22:09] devdazed_ has joined the channel [22:10] Slayterson has joined the channel [22:11] random123 has joined the channel [22:11] TheFuzzball has joined the channel [22:11] Slayterson: I'm looking at a list of templating modules for node on the github page however, there are so many. Does anyone know some of the better ones? [22:11] softdrink: stupid question: are require()s run in the order that they're written? [22:12] topaxi has joined the channel [22:12] markwubben has joined the channel [22:13] jmoyers: require is synch softdrink [22:13] AvianFlu: softdrink: require is synchronous, so I'm pretty sure they are. [22:14] softdrink: alrighty [22:14] rudolfrck has joined the channel [22:15] pietern has joined the channel [22:15] SweatyKeyboard: So, I built a web app that uses nginx and is totally ajax/HTML5. [22:16] SweatyKeyboard: The problem: When new features are updated, user's browsers still have the old Javascript cached, making the site break. [22:16] abjorn has joined the channel [22:16] SweatyKeyboard: What is the most effective way to do cache invalidation? [22:16] softdrink: html 5 manifest [22:16] softdrink: or etags [22:16] softdrink: or last modified [22:17] SweatyKeyboard: etags? [22:17] dudewheresmycode: expire.. [22:17] slicky: goooooogle etags [22:18] Nathan__ has joined the channel [22:18] robhawkes has joined the channel [22:19] Murvin: is there a way to configure connect.static not to set ETag and add antoher HTTP header? [22:20] ph^ has joined the channel [22:20] SweatyKeyboard: Is HTML5 manifest supported be IE though? [22:23] davidbanham has joined the channel [22:23] ecin has joined the channel [22:24] softdrink: is there a way for a module to access the global namespace? [22:24] softdrink: (don't hit me) [22:24] CIA-54: libuv: 03Ryan Dahl 07master * r2640aae 10/ src/unix/process.c : unix: Reset flags for stdio fds after fork - http://git.io/-xkaMg [22:24] devaholic: what global namespace [22:24] shipit has joined the channel [22:26] vipaca has joined the channel [22:26] vipaca has joined the channel [22:28] frederickcook has joined the channel [22:29] softdrink: the top level namespace… equivalent of 'window' in a browser [22:29] zomgbie has joined the channel [22:31] AvianFlu: softdrink: there's a global namespace [22:31] AvianFlu: you can set global.whatever.whateverElse [22:31] AvianFlu: "globals are dumb" etc. but it's there and have fun! [22:31] softdrink: i cant seem to do so from within something i've require()d [22:31] dudewheresmycode has left the channel [22:31] nibblebo_ has joined the channel [22:31] AvianFlu: I don't know, the docs say it should work lol [22:34] softdrink: Object.keys(global) within my module returns an empty array. [22:35] AvianFlu: interesting [22:35] gxdssoft has joined the channel [22:35] AvianFlu: !docs process [22:35] AvianFlu: is that bot around? [22:36] AvianFlu: damn [22:36] DrMcKay: AvianFlu: !doc link [22:36] joshthecoder has joined the channel [22:36] DrMcKay: !doc link process [22:36] dmkbot1: http://nodejs.org/docs/latest/api/process.html [22:36] dmkbot1: joyent/node: 03davglass: HTTP parser fails if server returns no headers - https://github.com/joyent/node/issues/1711 [22:36] AvianFlu: thanks [22:37] AvianFlu: !doc link globals#global [22:37] dmkbot1: http://nodejs.org/docs/latest/api/globals.html#globals.global [22:37] davidbanham: I want a chat server for my company so we can keep in touch with our offsite guy. Obviously I'm thinking something in Node. There are a million hello world chat clients out there, but is anyone aware of any more nicely built out chat servers in node? [22:37] davidbanham: https://github.com/scottgonzalez/node-chat looks promising, but there's a lot missing. It might be a good starting place to contribute to. [22:37] Yuffster_work: davidbanham: Wouldn't it make more sense just to use Campfire or something ready-made? [22:37] mrkurt: I wouldn't bother writing something like that, I'd just pay for campfire or hipchat or something [22:38] Yuffster_work: Unless you just want to have fun on a cool project. [22:38] synax has joined the channel [22:38] JaKWaC has joined the channel [22:38] synax: fancy meeting you here, davidwalsh [22:38] davidbanham: Yuffster_work: There's a bit of that. I also just rankle at paying for things like that. I'm cheap. I also like to have the option of extending it, integrating it into other projects, etc etc. [22:38] Yuffster_work: Good enough reason for me. :) [22:39] davidwalsh: What you working on synax? [22:39] devaholic: davidbanham: https://github.com/tblobaum/aebleskiver [22:39] softdrink: process no workie either [22:39] synax: davidwalsh: nothing in particular—just trying out node [22:39] devaholic: that's my fork [22:39] CIA-54: node: 03Ryan Dahl 07master * r2d0b1ed 10/ (12 files in 4 dirs): [22:39] CIA-54: node: Upgrade libuv to 2640aae [22:39] CIA-54: node: Add test for bug fixed in joyent/libuv@2640aae1 - http://git.io/ik04NQ [22:39] devaholic: i'd send you to the original, but its always broken [22:41] softdrink: so in the browser, i have a global namespace of "Nixie". so: window.Nixie = {};… then later in another file, i do: Nixie.Foo = function () {}… I'm trying to get the same bit of code to work server-side without too much wrapping [22:41] Yuffster_work: I love how the names in #mootools are the same as in here. [22:41] davidbanham: devaholic: Wow! Seems a lot more built out than any of the others. I'll have a look. Was about to ask you whether it was worth going to the original, thanks, [22:41] softdrink: but inside my Foo.js module, it pukes and says "Nixie is not defined", when i've clearly defined it and can see it in the repl [22:41] devaholic: you'll need redis and mongo [22:42] CStumph_ has joined the channel [22:42] softdrink: ACTION waves at yuff [22:42] davidbanham: devaholic: Yep, that's cool. I use redis in production on another project. Haven't wrangled Mongo much yet but I've been meaning to. [22:44] isaacs has joined the channel [22:44] jacobolus has joined the channel [22:44] boltR has joined the channel [22:45] JSManiacs has joined the channel [22:45] softdrink: or even for something like Backbone which needs to really be available globally.... [22:46] dmkbot1: joyent/node: 03davglass: HTTP parser fails if server returns no headers - https://github.com/joyent/node/issues/1711 [22:46] Murvin: Hi.. is there a way to set or overwrite the HTTP response header in connect.static before the response is sent out? [22:47] balaa has joined the channel [22:48] _sh0x has joined the channel [22:48] synax: folks, I'm trying to add some submodules to my node project... I've done the 'git submodule add/init' dance, but 'npm ls' shows 'UNMET DEPENDENCY' errors [22:49] synax: oh, isaacs—just the guy I was looking for ;) [22:49] synax: isaacs, even [22:49] wGEric has left the channel [22:49] isaacs: synax: do your submodules have deps that you have not installed? [22:49] synax: yes, likely [22:50] synax: oh... I'm also noticing the submodules are referencing HEAD instead of the latest stable... [22:50] synax: my git-fu is weak [22:50] isaacs: yeah, submodules are a pita [22:51] synax: so I've been reading [22:51] isaacs: if you're not writing npm, i recommend just running `npm install` to install your deps [22:51] isaacs: i can't do that for npm's deps, for obvious reasons [22:51] synax: alright, I'll backtrack [22:52] softdrink: uuuuggggllyyyyy: G = (process ? window) class G.Nixie.modules.Foo extends G.Backbone.View [22:52] felixge has joined the channel [22:52] felixge has joined the channel [22:55] nibblebot has joined the channel [22:56] devaholic: softdrink: ... [22:56] devaholic: just define backbone in your node app [22:56] dmkbot1: joyent/node: 03kingkaeru: net_uv.js throws assertion error - https://github.com/joyent/node/issues/1697 [22:56] devaholic: var Backbone = require('backbone'); [22:57] sorin has joined the channel [22:57] freeformz has joined the channel [22:57] devaholic: put that in app.js or whatever you run initially [22:57] devaholic: then just fuckin use it [22:57] rabidewok has joined the channel [22:59] AaronMT has joined the channel [23:01] blup has joined the channel [23:02] brianseeders has joined the channel [23:02] JaKWaC_ has joined the channel [23:02] k1ttty has joined the channel [23:03] AvianFlu has joined the channel [23:06] gnb has joined the channel [23:08] normanrichards has joined the channel [23:08] neilk_ has joined the channel [23:09] _sh0x has left the channel [23:10] devdazed: is there a replacement for __dirname and __filename in the latest stable version of node? [23:11] davidbanham: devaholic: I'm getting 404s on all the vendor js files. Do I need to move everything manually from node_modules into public/vendor or is there an installation/configuration step that I've missed? [23:12] devdazed: or do they just boot exist in the node console? [23:12] devdazed: *not [23:12] smathy has joined the channel [23:13] topaxi has joined the channel [23:14] pizthewiz has joined the channel [23:16] elijah|home has joined the channel [23:16] devaholic: 404s what [23:16] Sorella has joined the channel [23:16] devaholic: dont move node_modules around unless you want things to break [23:18] davidbanham: devaholic: The public/vendor directory has a bunch of subfolders which are all empty. When I connect to the server, my client looks for domain/vendor/keycandy/keyCandy.js and gets a 404. [23:19] gnb has joined the channel [23:19] davidbanham: Ah, looks like you've got them as git submodules. [23:21] ryanj has joined the channel [23:21] mikl has joined the channel [23:26] slifty has joined the channel [23:27] justinTNT has joined the channel [23:29] yept has joined the channel [23:31] SamWhited has joined the channel [23:31] dmkbot1: joyent/node: 03isaacs: node -v in bash PROMPT_COMMAND causes assertion error - https://github.com/joyent/node/issues/1720 [23:31] meandi2 has joined the channel [23:32] broofa has joined the channel [23:32] boltR has joined the channel [23:33] slyphon has joined the channel [23:33] slyphon has left the channel [23:34] ashnur has joined the channel [23:34] ashnur: hi [23:35] matyr_ has joined the channel [23:35] CarterL has joined the channel [23:36] pt_tr has joined the channel [23:37] tyfighter has joined the channel [23:38] amerine has joined the channel [23:38] Ond has joined the channel [23:41] nuck has joined the channel [23:43] netlemur_ has joined the channel [23:45] AvianFlu has joined the channel [23:46] mosen has joined the channel [23:46] skiz: does requiring a module several times have any performance/memory concerns? [23:48] neilk_ has joined the channel [23:48] damjan has joined the channel [23:48] AvianFlu: skiz: there's a module cache [23:49] AvianFlu: so most likely no [23:49] devaholic: its cached the first time, subsequent calls to require() load the cached version [23:49] skiz: excellent! [23:49] ryah: http://nodejs.org/dist/node-v0.4.12.tar.gz please test [23:49] damjan: can I install npm without root? [23:49] isaacs: damjan: yes [23:50] mosen: anyone had issues compiling node-glob on 0.5? or am i being stupid? :) [23:50] isaacs: mosen: node-glob doesn't work on 0.5 [23:50] isaacs: doesn't compile. haven't dug into why [23:50] mosen: isaacs: gotcha, no problem [23:50] isaacs: mosen: you may be able to use minimatch, which is all js [23:51] slifty has joined the channel [23:51] mosen: isaacs: oh nice, I don't need anything too extensive. [23:51] netlemur_: hi there [23:51] mosen: oh same author :) [23:51] netlemur_: is it possible to access objects in objects in jade? [23:52] isaacs: mosen: indeed :) [23:52] mandric has joined the channel [23:53] damjan: isaacs: I didn't find it [23:56] blup has joined the channel [23:58] igl has joined the channel [23:58] slifty_corsair has joined the channel