[00:08] badaxx has joined the channel
[00:08] rkieffer has joined the channel
[00:08] Tim_Smart: phound: Depend on the situation. For a cross-browser solution yes, otherwise a few people use plain websockets.
[00:09] jamescarr_: is there a way to access the raw request string?
[00:09] jamescarr_: phound, it seems that way
[00:09] ayo has joined the channel
[00:15] mjr_ has joined the channel
[00:15] phound: cool, thanks guys
[00:17] _announcer: Twitter: "I've launched my first #nodejs #websockets #mongodb #jquery implementation, http://www.toptwittertrends.com Have Fun :)" -- Erdem Gezer. http://twitter.com/erdemgezer/status/21870379711
[00:18] jakehow has joined the channel
[00:22] _announcer: Twitter: "@mserdark I've launched my first #nodejs #websockets #mongodb #jquery implementation, http://www.toptwittertrends.com - amirime duyurulur.." -- Erdem Gezer. http://twitter.com/erdemgezer/status/21870700153
[00:23] chewbran1a has joined the channel
[00:25] Yuffster has joined the channel
[00:29] FransWillem: :)
[00:29] bradleymeck2 has joined the channel
[00:32] _announcer: Twitter: "Out of curiosity, any other @node_knockout teams in WNY? #node #js" -- Dan DeFelippi. http://twitter.com/ExpertDan/status/21871319774
[00:32] jimt_ has joined the channel
[00:37] _announcer: Twitter: "List of Node.js Modules http://dlvr.it/46xst" -- Tech & Friki Stuff. http://twitter.com/FrikiFeeds/status/21871664694
[00:38] stellar has joined the channel
[00:39] _announcer: Twitter: "possibly the defacto list for node.js modules http://bit.ly/cQT2qy" -- Jeff Schoolcraft. http://twitter.com/jschoolcraft/status/21871780706
[00:40] polotek: isaacs: the stable tag has no more significance right?
[00:40] isaacs: polotek: nope.
[00:40] isaacs: polotek: not unless you did "npm config set tag stable"
[00:41] isaacs: polotek: the "tag" config is the default tag that's installed if no version is specified. the default value for that is "latest"
[00:41] isaacs: that is, the last one published
[00:41] polotek: I was just gonna say you should update the man page
[00:42] bradleymeck2: gah, strict mode this, strict mode that, why do soo many ppl want strict mode
[00:46] polotek: isaacs: is there a way to remove a tag?
[00:46] dylang has joined the channel
[00:46] JimBastard has joined the channel
[00:46] JimBastard: i came, i saw, i wrote javascript
[00:46] JimBastard: ^_^
[00:46] isaacs: polotek: just unpublishing that version, i guess. but i could remove it for you
[00:47] polotek: isaacs: if it's easy, please remove stable from 0.4.0
[00:47] polotek: I just dropped 0.4.1
[00:47] polotek: don't wanna confuse anyone
[00:47] isaacs: polotek: ok
[00:47] isaacs: polotek: oh, you could also tag 0.4.1 as stable
[00:47] isaacs: but then you've gotta do that each time which is lame.
[00:47] polotek: isaacs: yeah
[00:52] davidwalsh has joined the channel
[00:54] _announcer: Twitter: "[Watch] Release of Node.js v0.2.0: Node.js, whose slogan is Evented I / O for V8 JavaScript, aims to offer ... http://bit.ly/dfVesg" [fr] -- Camille Roux. http://twitter.com/camilleroux/status/21872771745
[00:54] _announcer: Twitter: "protobot - a node.js IRC bot: bmilleare : protobot - a node.js IRC bot Tags : node.js irc http://bit.ly/95UDf6" -- Paolo Patronimic. http://twitter.com/salve/status/21872786317
[00:59] jamescarr_ has joined the channel
[00:59] joshbuddy has joined the channel
[01:01] joshbuddy has left the channel
[01:04] [[zzz]] has joined the channel
[01:04] jetienne has joined the channel
[01:06] josephhitchens has joined the channel
[01:09] ezmobius has joined the channel
[01:11] jackish has joined the channel
[01:11] pufuwozu has joined the channel
[01:12] nerdEd has joined the channel
[01:22] _announcer: Twitter: "clojure is now a part of my deployment scripting, as is node.js ... easy peasy ..." -- grantmichaels. http://twitter.com/grantmichaels/status/21874590405
[01:22] stellar has joined the channel
[01:25] saikat has joined the channel
[01:25] _announcer: Twitter: "@garybernhardt the firebug console is a repl. Also node.js has a repl, at least the latest versions do." -- Scott Koon. http://twitter.com/lazycoder/status/21874796350
[01:26] loincloth has joined the channel
[01:26] ajpiano has joined the channel
[01:30] ceej has joined the channel
[01:31] josephhitchens has joined the channel
[01:35] kriszyp has joined the channel
[01:35] josephhitchens has left the channel
[01:36] jakehow has joined the channel
[01:44] blogometer has joined the channel
[01:44] blogometer: Hello, people.
[01:47] gm__: hoy
[01:48] jetienne: hi
[01:48] _announcer: Twitter: "Studying the Node.JS http://nodejs.org/ Very interesting" [pt] -- Fernando - MasanT. http://twitter.com/fmacedos/status/21876298661
[01:50] isaacs: about to release a new version of npm, anyone wanna smoke-test it?
[01:50] amerine has joined the channel
[01:51] danielzilla has joined the channel
[01:52] isaacs: it's on github if you get the urge.
[01:53] e^ipi has joined the channel
[01:54] nerdEd has joined the channel
[01:54] FireFoxIXI has joined the channel
[01:55] siedrix has joined the channel
[01:57] _announcer: Twitter: "Node.wtf: I was wondering what all this hub-bub about node.js was so I went and did some internet detective work. http://bit.ly/a38yJH" -- Harrison Shoff. http://twitter.com/hshoff/status/21876904367
[02:00] paul_irish: "There you have it. Node.js deciphered. "
[02:00] _announcer: Twitter: "Check here before you decide on what to do for node.js KO. http://bit.ly/cQT2qy #node.js" -- Kenny Shen. http://twitter.com/kenny_shen/status/21877092870
[02:00] polotek: anybody got access to the twitter firehose that i can "borrow" for a bit
[02:01] jetienne: isnt that open for all now ?
[02:01] ditesh|cassini has joined the channel
[02:02] meso has joined the channel
[02:02] Tim_Smart: paul_irish: Oh how I bet how he loved writing that.
[02:02] Tim_Smart: s/bet how/bet/
[02:02] paul_irish: :)
[02:04] jakehow has joined the channel
[02:04] jackish has joined the channel
[02:07] JimBastard has joined the channel
[02:07] Tim_Smart: Yeah that node.wtf needs a lot of work.
[02:07] Tim_Smart: article*
[02:08] cloudhead has joined the channel
[02:09] terinjokes: HELLO CHANNEL!
[02:10] polotek: jetienne: not the full firehose
[02:10] JimBastard: sup terinjokes
[02:10] JimBastard: HELLO CHANEL
[02:10] JimBastard: i love your perfume
[02:11] matt_c has joined the channel
[02:12] terinjokes: JimBastard: LOL
[02:12] terinjokes: JimBastard: i know someone called Chanel, I try to undo the connection
[02:13] terinjokes: ACTION goes and disabled access for people to tag him in Facebook Places
[02:14] mscdex: chanel.js
[02:14] mscdex: i can see it as a Marak repo now
[02:14] jamescarr_: hmmm
[02:17] JimBastard: lol mscdex
[02:17] JimBastard: nodejitsu!
[02:18] jamescarr_: doh... websocket-server has issues I think :S
[02:22] MikhX has joined the channel
[02:23] Tim_Smart has joined the channel
[02:28] mscdex: jamescarr_: what issues?
[02:30] beelzabub has joined the channel
[02:32] MikhX has joined the channel
[02:32] isaacs[dinner]: w00t! npm 0.1.26
[02:34] _announcer: Twitter: "Published npm@0.1.26. Lots of bugfixing, and the "modules" hash support c/o @alexkwolfe `npm update npm` or `make install` #nodejs" -- Ⓘⓢⓐⓐⓒ. http://twitter.com/izs/status/21879358528
[02:35] visnup: whoo hooo!
[02:35] JimBastard: nice
[02:36] mscdex: js: dinner
[02:36] gbot2: mscdex: Error: ReferenceError: dinner is not defined
[02:36] mscdex: !!
[02:36] mscdex: invalid nickname!
[02:36] mscdex: :p
[02:36] isaacs: hehe
[02:36] ryah: Aria: npm updated npm@0.1.26
[02:36] ryah: er
[02:36] ryah: npm updated npm@0.1.26
[02:36] ryah: npm ok
[02:36] isaacs: ACTION is technically still eating dinner
[02:36] ryah: yey
[02:36] Aria: Hehe.
[02:36] visnup: hahaha
[02:36] isaacs: ryah: don't you totally love it when it says "npm ok"?
[02:37] ryah: yeah
[02:37] ryah: i hold my breath until it happens
[02:37] isaacs: i've like, trained myself to have this huge pavlovian response to the word "ok" in lower case like that.
[02:37] JimBastard: >.<
[02:37] isaacs: when i see "ok", i just *feel* *good*
[02:37] mscdex: is there a sad smiley when things are not ok?
[02:37] JimBastard: i wont complain about UX until there are no more real bugs to fix
[02:37] mscdex: like growisofs does
[02:37] isaacs: mscdex: it just says "npm not ok"
[02:37] mscdex: aw
[02:38] mscdex: i think growisofs even uses other smilies to indicate the level of severity of issues
[02:38] visnup: what are the pitfalls of allowing user specified css? (toying with the idea of letting teams sparkly unicorn out their team pages)
[02:38] isaacs: visnup: you can put javascript in css
[02:39] visnup: isaacs: yeah ok, then no
[02:39] visnup: maybe a checkbox to include a stock sparkly unicorn then
[02:40] Flam`: visnup: You can make a form with input boxes for hex colors of certain things
[02:40] Flam`: That's decent customization~
[02:40] jacobolus has joined the channel
[02:40] visnup: Flam`: too much extra work for me and not enough impact for most users though
[02:40] kriszyp has joined the channel
[02:41] bpot has joined the channel
[02:41] isaacs: man, I really <3 how much cleaner the npm root folder is now thanks to the modules hash. i ddint' expect it to be so awesome.
[02:41] isaacs: all that's in there now are folder with the package-version modules, and a symlink to the active one. that's it.
[02:41] Flam`: you can scrub the css sheet before applying it also
[02:43] mjr_: i wonder if a bunch of Javascript programmers who are willing to stay up all night for 2 days are the kind of people that would try to defeat such a scrubber?
[02:43] mjr_: Probably not.
[02:43] Tim_Smart: isaacs: Have you released the new version?
[02:43] isaacs: Tim_Smart: yeah
[02:43] mscdex: anti-scrubbing technology
[02:43] isaacs: Tim_Smart: but it'll be a while before everything is cleaned out of there, unless you uninstall and reinstall all your modules.
[02:43] Tim_Smart: Does it migrate automatically, or should I re-install stuff?
[02:43] Tim_Smart: Ah ok.
[02:44] isaacs: Tim_Smart: there's no need. it'll be backwards compatible until 0.3.0 though
[02:44] Tim_Smart: I like cleanliness though.
[02:44] isaacs: but i recommend it just so that the lib/node folder is nice and tidy
[02:44] visnup: mjr_: and if it would be smiled or frowned upon for such a defeat
[02:44] isaacs: maybe even just make a note of what you have installed, rm everything, and install it fresh
[02:44] Tim_Smart: isaacs: Well, .node_libraries in my case.
[02:44] isaacs: sure, same thing
[02:45] visnup: mjr_: especially if all they do is put flying rainbows on their page
[02:45] ryah: isaacs: what do you mean?
[02:45] mscdex: visnup: what would that mean?
[02:45] ryah: where can i see the clean?
[02:46] isaacs: ryah: http://gist.github.com/544323
[02:46] mscdex: visnup: i mean, if it was double of course
[02:46] mjr_: visnup: I like the idea of teams being able to put fancy JS on their team page. Can you avoid the abuse issue with social pressure somehow?
[02:46] mscdex: threaten to put them in a synchronous jail
[02:46] visnup: mjr_: well, it could be a disqualification. I mean, if they want to eff up someone's browser they have a whole entry to do that with.
[02:46] mscdex: :p
[02:47] Tim_Smart: ryah: I'll take a before after ;)
[02:47] isaacs: ryah: you can look in that folder and actually see wtf is going on now.
[02:47] ryah: ok
[02:47] ryah: ACTION never looked in there before
[02:47] isaacs: hehe
[02:48] isaacs: ryah: i spent a lot of time in there myself :)
[02:48] ryah: oh damn
[02:48] isaacs: i think that's why i'm the only person who cares about that enhancement
[02:48] ryah: i wanted to change the name of that to ./node_modules
[02:48] visnup: hm, threat of disqualification could be enough
[02:48] ryah: i guess we can do that in 0.3
[02:48] stepheneb has joined the channel
[02:48] ryah: ~/.node_modules, i meant
[02:49] mjr_: visnup: team page JS rule: if you intentionally mangle the viewer's browser, you owe everybody an iPad.
[02:49] ryah: my friend tim becker is visiting for node knockout from germany
[02:49] mscdex: lol owning an iPad is a punishment
[02:49] visnup: mjr_: hah
[02:50] ryah: well, not specifically for it - but he'll be here
[02:50] visnup: mjr_: the scary thing about team page js is the vote form will be on it
[02:50] mjr_: oh, hmm
[02:50] visnup: mjr_: so it opens the door for really easy ballot stuffing
[02:50] ryah: tim helped me choose v8 for node
[02:50] mjr_: Yeah, that sucks
[02:50] isaacs: ryah: that's cool.
[02:50] visnup: mjr_: but then again, that's like instant disqualification and will be like picking out the low hanging bad apples
[02:50] ryah: which was like "we should use this new v8 thing"
[02:51] ryah: and i was like "okay"
[02:51] mjr_: persuasive
[02:51] visnup: ryah: so far, I <3 v8 more than spidermonkey (mongodb's client is on top of spidermonkey)
[02:52] ryah: yeah v8 is hot
[02:52] mjr_: I would like to marry V8.
[02:52] ryah: i wish v8 was not c++
[02:53] ryah: otherwise i like it
[02:53] isaacs: ACTION convinced his gf to have a 3way with v8, and then regretted it when she left him for v8
[02:53] mjr_: V8 made me believe that it was possible to write good C++
[02:53] mjr_: isaacs: that's a door you do not want to open
[02:53] mjr_: V8 is just that good
[02:53] ryah: heh
[02:53] MikhX has joined the channel
[02:53] isaacs: mjr_: it was worth it for the experience. gf's come and go, but that memory will never die!
[02:54] visnup: isaacs: popen3?
[02:54] russell_h: I'm definitely not a fan of c++, but after looking through the node code I almost want to give it a second chance
[02:54] mjr_: isaacs: at least until it gets garbage collected, AM I RIGHT?
[02:54] bdha: oof.
[02:54] isaacs: mjr_: i will keep a reference to it in my heart forever
[02:55] isaacs: mjr_: my soul is not an ephemeron table!
[02:55] mjr_: JavaScript locker room talk is so offensive to those of the opposite language bias.
[02:55] danielzilla: I'm guessing it was quite an "event".
[02:56] amuck has joined the channel
[02:56] ryah: isaacs: don't you seek closure?
[02:57] isaacs: ACTION omg puns
[02:57] mjr_: pun pwn3d
[02:58] visnup: the sad thing is I was looking through the node api docs for fodder
[02:58] mjr_: To add to your comeback cannon?
[03:00] Tim_Smart: isaacs: http://ubuntuone.com/p/DZd/
[03:01] mr_daniel has joined the channel
[03:01] isaacs: Tim_Smart: tidier, yes?
[03:01] danielzilla: ACTION muses about how many concurrent girlfriends Node can serve.
[03:01] Tim_Smart: isaacs: Only difference is that I have less versions installed?
[03:01] isaacs: Tim_Smart: also, there's just a folder for each thing, instead of a folder (maybe) and a js file (maybe)
[03:02] Tim_Smart: Ah yes
[03:02] isaacs: Tim_Smart: it's even more apparent if you do ls -laF
[03:02] isaacs: before, there were a lot of symlinks with long ugly paths
[03:02] Tim_Smart: Lol, I though my screenshot was the actual terminal, and thought it was frozen.
[03:02] isaacs: now, the symlinks are just like pcap @-> ./pcap-0.1.9
[03:02] isaacs: hahah
[03:03] isaacs: you just goated yourself
[03:03] mjr_: oh man, burn
[03:04] mjr_: isaacs: do you keep track of how often people download stuff from the repository?
[03:04] mjr_: It'd be interesting to see those statistics for everything and for individual packages.
[03:04] isaacs: mjr_: nope.
[03:04] isaacs: mjr_: but people ask about that all the time
[03:04] mjr_: It might help new users figure out what they should pay attention to first.
[03:04] isaacs: mjr_: the data's in my nginx logs
[03:04] isaacs: mjr_: if you feel like analyzing it, lmk, i'll send it to you
[03:05] Aria: Yeah, definitely would be useful.
[03:05] ryah: note the new appendix in the docs
[03:05] ryah: i'd like to get it to be the "top 20 modules"
[03:05] mjr_: I don't feel like a one-time analysis, but I'd be interested in building a more automated way to keep those stats available
[03:06] blogometer: mrj_: Like trending on GitHub or Twitter.
[03:06] isaacs: mjr_: right, that's what i mean
[03:06] blogometer: I'd like to create some form of market analysis.
[03:07] softdrink has joined the channel
[03:07] blogometer: And work hard to keep people from gaming it.
[03:07] blogometer: Like Google Search.
[03:07] blogometer: Mentions on Twitter, downloads, forks, etc.
[03:07] russell_h: how much overhead is associated is is incurred doing async fs operations with the thread pool?
[03:07] blogometer: Showing which projects are hottest, most stable, trending.
[03:07] russell_h: er, skip the 'is associated' bit..
[03:09] benburkert has joined the channel
[03:09] JimBastard: if only there was a place where you could try out the top node modules
[03:09] JimBastard: :-)
[03:09] JimBastard: nodejitsu!
[03:12] isaacs: ryah: new appendix in the docs?
[03:13] isaacs: oh, hey, there it is
[03:14] phound: Are there any commonly used libs that facilitate the implementation of CRUD operations when using websockets? I find myself writing a lot of boilerplate code to hook up a simple todo list that's stored on the server.
[03:17] ehaas has joined the channel
[03:19] isaacs: ryah: http://github.com/isaacs/node/commit/476791e8f38fc7ec9adb49304b26f5ec8357a260.patch
[03:20] Tim_Smart: npm is polite, it does not shout.
[03:20] isaacs: ^_^
[03:24] blogometer: Node.js serving pages.
[03:24] blogometer: What template engine is good for that ?
[03:25] CIA-77: node: 03isaacs 07master * r072750e 10/ doc/api.markdown : Add testing items, and make npm lowercase - http://bit.ly/ciUfCX
[03:25] bradleymeck2 has joined the channel
[03:26] Tim_Smart: I have used haml before, but jade looks nice. I would love to use plain HTML + jsdom though ;)
[03:27] Tim_Smart: Cache the DOM, and use DOM methods or jQuery to update the template.
[03:31] isaacs: Tim_Smart: you could also just throw your car in neutral and get a team of horses to pull it.
[03:31] phound: Can anyone recommend a well-architected project using node.js, websockets, and some sort of backend data store? I'm curious how othere people are structuring their code (models, controllers, etc).
[03:32] phound: The projects list on the wiki is huge...
[03:33] bradleymeck2: mmm one that uses all of those and is big... and open source...
[03:33] bradleymeck2: hummingbird?
[03:34] phound: Doesn't have to be big, just curious how people are setting up data model classes and things like that.
[03:34] Tim_Smart: isaacs: Yeah that is the problem. DOM is slow.
[03:35] isaacs: Tim_Smart: i'd be more excited to see a way to do haml or jade on teh client.
[03:35] isaacs: but there's a lot of ways to skin that cat
[03:35] bradleymeck2: we can, its a pretty easy port
[03:36] Tim_Smart: isaacs: Imagine sending text/haml and the browser rendering it.
[03:36] isaacs: Tim_Smart: now, THAT would be pretty badass.
[03:36] isaacs: Tim_Smart: especially if it could have markdown sections.
[03:36] bradleymeck2:
[03:37] bradleymeck2: just like less.js finds text/less
[03:37] blogometer: phound: Sniff around here: http://expressjs.com/
[03:37] bradleymeck2: or do some cdata funkyness
[03:37] blogometer: I'm new here, but that looks like the RoR of Node.js.
[03:38] blogometer: ACTION ducks
[03:38] isaacs: phound: yeah, express is the rails of node, definitely
[03:38] blogometer: I'm going to build something with it.
[03:38] bradleymeck2: i wish grasshopper had a bit more tutorials so it would have some competition
[03:38] Tim_Smart: Well it is more the sinatra or node - it doesn't have a ORM or anything.
[03:38] Tim_Smart: s/or/of/
[03:39] phound: thanks. i'm not a fan of the rails of any language really, but i'll check out their source
[03:39] Tim_Smart: I would recommend geddy at this stage.
[03:40] isaacs: yeah, probably closer to sinatra than rails
[03:40] isaacs: geddy is pretty cool, too
[03:40] Tim_Smart: dual sided models that you write once, ftw?
[03:41] Tim_Smart: phound: http://geddyjs.org/
[03:42] phound: ty
[03:42] blogometer: I'd like to see something that is not MVC.
[03:42] Tim_Smart: blogometer: What do you suggest?
[03:43] blogometer: Uh, well, I went on about it in the listserv.
[03:43] bradleymeck2: ACTION goes to the mailing list
[03:43] blogometer: MVC is like, Account object, Update Account, and Account HTML.
[03:43] blogometer: And then everything else, the login status, recent Tweets, favorites, friends online, all that crome.
[03:43] blogometer: That is "Helper".
[03:44] blogometer: So, I think MVC is great for Swing.
[03:44] blogometer: But, doesn't fit the document model of HTML.
[03:44] mscdex: gedddyyyyyyyyy
[03:44] phound: many of those things can still be considered models, and not every model needs to have its own set of CRUD HTML pages
[03:45] bradleymeck2: almost anything can be considered a model though :)
[03:45] blogometer: And yet, something like Ruby on Rails, doesn't really model those things as anything but "Helper".
[03:45] jakehow has joined the channel
[03:45] blogometer: MVC actaully does make sense if you're heavy AJAX and rendering on the client side.
[03:45] phound: maybe that's why rails always felt constricting to me :)
[03:45] blogometer: MVC is a widget paradigm.
[03:45] blogometer: Generating an HTML page is really not MVC.
[03:46] bradleymeck2: well, true, but the components of a page are often mvc, which is why so many ppl lean towards it, never got into mvc or mvcc personally
[03:46] blogometer: What is CC?
[03:47] Flam`: [22:53] * isaacs convinced his gf to have a 3way with v8, and then regretted it when she left him for v8 ---- lolers
[03:47] Flam`: oh im scrolled up :/
[03:47] blogometer: bradleymeck2: There is no MVC relatioship with the components.
[03:47] blogometer: Pages get submitted to controllers, the routing isn't right, it's all chunked wrong.
[03:48] blogometer: That is, doing tradtional HTML forms using MVC is a mismatch.
[03:48] blogometer: But, doing new AJAXy apps, not so much.
[03:48] Aria: Yeah... Rails is Model, request, router, response
[03:48] Aria: Not so much MVC
[03:49] ryah: useless nomenclature
[03:49] ryah: s/useless/boring/ :)
[03:49] bradleymeck2: mvc as in model from the backend, controller as the state changes client side, view as the representation? maybe im getting this wrong, but mvc seems to fit that to me
[03:49] Aria: Hehe. Quite.
[03:49] ryah: mvc = don't design your app like an idiot
[03:49] Aria: bradleymeck: Sure, you can shoe-horn the components into the box, but ... it doesn't actually make it easy to work with.
[03:49] Aria: Hehe. Yes, though the view/controller split isn't obvious.
[03:50] blogometer: bradleymeck2: I guess. But, oh, what Aria said. Oh, and why ryah said.
[03:50] bradleymeck2: true, but mvc isnt the way i program so im no expert
[03:50] Aria: If you design CAD software, MVC makes SO MUCH SENSE.
[03:50] blogometer: What.
[03:50] blogometer: Anyway, MVC is what Swing is. And it really is what Swing is, but there is not network with Swing, and no statelessness.
[03:50] blogometer: Aria: You are so right. Thank you. Thank you.
[03:50] Tim_Smart: I say, code your app awesome.
[03:51] blogometer: It is a real thing. It just doesn't fit here.
[03:51] Aria: Statelessness REALLY doesn't mix with MVC.
[03:51] Aria: Hehe, yeah.
[03:51] Aria: Anything with a request-response cycle isn't MVC as it was classically designed.
[03:51] blogometer: Tim_Smart: Agreed. I like the attitude around here.
[03:51] ehaas has left the channel
[03:51] bradleymeck2: statelessness if often the name of the game though for web apps, being able to regain state from nothing etc
[03:52] Tim_Smart: Require a bunch of awesome modules, glue it together with awesome code, and that is all.
[03:52] blogometer: Yeah. It is is kind of a wank. I mean, part of the problem is that when people are saying MVC, they tend to be heavy on nomenlcature, light on awesome.
[03:52] Aria: Alright. Back again to making a stream object, and feeling like there should be a way to make less boilerplate like implementing pause() and resume() and a buffer that grows while pause()d and not otherwise.
[03:52] Aria: Hehe, totally, blogometer
[03:53] blogometer: Aria: How many REST verbs is enough?
[03:53] Aria: blogometer: How many things can you think up to make HTTP do?
[03:53] bradleymeck2: 1 is enough... but it wont be pretty
[03:53] Aria: (... And they're HTTP verbs, not REST.)
[03:54] Aria: (REST is the concept of making a representation of the state to transfer -- and using the verbs to make sure the server and client agree on that state is one way of doing that.)
[03:55] blogometer: Right. HTTP verbs. The ones that we were forgot that we needed for sixteen years.
[03:55] Aria: ACTION laughs. I dunno about you, but I've been using them for about that many.
[03:55] benburkert has joined the channel
[03:55] blogometer: GET, POST and HEAD.
[03:56] mjr_: Someday I may go and figure out what MVC is. People tell me that it is a useful abstraction.
[03:56] blogometer: mjr_: Read Design Patterns. Most of the examples are using an MVC architecture.
[03:56] Aria: mjr_: It is. If you're writing a view-heavy app around something that you're modeling. 3D design software, CAD, a drawing app, hell, maybe even a word processor would do well to use it. It certainly isn't the One True Pattern.
[03:57] mikeal1 has joined the channel
[03:57] Aria: (and hell, lots of widgets are MVC in the small -- a text box -- the model is the string it stores, the view is the thing that renders it, and the controller accepts input events and tells the view to update and updates the model.)
[03:57] bradleymeck2: i love it when ppl understand some problems are suited for things better than others
[03:58] _announcer: Twitter: "Sabasaidopuroguramingu enable JavaScript frameworks of "node.js 0.2.0" release - SourceForge.JP Magazine http://tinyurl.com/2exroob" [ja] -- noda, masamichi. http://twitter.com/noda_ma/status/21884678567
[03:58] _announcer: Twitter: "Blog node.js Documentation and tries to translate English to your dish. Google, with help of a translator is shall we. http://j2p-fedev.com/?p=138" [ko] -- Jung Jae Pil. http://twitter.com/J2PFnc/status/21884679752
[03:58] mjr_: My sense with MVC and Design Patterns in general is that people figured out one of them, and then forever try to make new problems fit into that one abstraction they figured out.
[03:58] Aria: (and, one would find obvious, that one would want a String without a text view for it, but a text view without a string is useless. Views and controllers are usually tailored to the model, but models should not know about the others.)
[03:58] blogometer: The problem with Design Patterns is that people apply Design Patterns to hide implementation details.
[03:59] Aria: Yeah, kinda. If you ever read the book that the GoF book was based on (A Pattern Language -- which is about architecture, as in buildings and cities), you get a very different picture.
[03:59] blogometer: Well, the problem is when they apply them *solely* to hide implementation details.
[03:59] Aria: It's a book of descriptions of things that DO occur, patterns that show up whether you like them or not, and how to recognize and deal with tnem.
[03:59] mjr_: I've been thinking about this Leaky Abstraction idea a lot today: http://www.joelonsoftware.com/articles/LeakyAbstractions.html
[03:59] blogometer: Oh, there's something unsightly, let me put a design pattern on it. That's better. (Repeat.)
[04:00] jacobolus has joined the channel
[04:00] _announcer: Twitter: "Sabasaidopuroguramingu enable JavaScript frameworks of "node.js 0.2.0" release. http://bit.ly/9YIEzD" [ja] -- マック製品. http://twitter.com/mac_fanmania/status/21884820499
[04:01] rickbradley: alexander's series was an attempt to reintroduce workable solutions for architecture into societies which had lost those solutions, the patterns were the mechanism (see "notes on the synthesis of form" for the beginning of the process)
[04:01] Aria: Heh, yeah. when in fact, it was a "Oh, I just wrote a Foo. I guess I could clean it up, because Foos tend to break these ways if they're done badly."
[04:01] Aria: Indeed.
[04:01] Aria: (Not uncoincidentally, I own the Alexander book, but I do not own a copy of the GoF book.)
[04:01] blogometer: mjr_: Yes. Exactly. Kids coming out of Design Pattern college with their degrees in Design Patterns cannot accept that sometimes you have to deal with, oh, bits, bytes, recursion, trees, etc.
[04:02] rickbradley: Aria: hear. hear.
[04:02] bradleymeck2: pffff kids coming outta college dont learn design at all <- points
[04:02] Aria: Heh, yeah.
[04:03] blogometer: mjr_: They see a byte and they say, eek! And then apply Design Patterns until the implementation details are only of underlying Design Patterns.
[04:03] bradleymeck2: bitmask flags!
[04:03] Aria: (... And an interesting exercise is recognizing obvious things as those patterns they are -- I can't tell you how often I facepalm when I see a ruby "Factory Pattern" (or worse, a JS one...) ... Javascript constructors and ruby classes /ARE/ the factory pattern.)
[04:03] tj_ has joined the channel
[04:04] blogometer: "All problems in computer science can be solved by another level of indirection... Except for the problem of too many layers of indirection."
[04:04] bradleymeck2: then again, i see a lot of experienced ppl do things like nest functions in scripting languages that dont need nesting... idk, we all continue to learn
[04:04] Aria: Hehe, yep.
[04:04] bradleymeck2: nah, if we abstract out the indirection we can program back in assembly to generate raw assembly
[04:04] blogometer: This amused me:
[04:04] jsilver has joined the channel
[04:05] blogometer: http://www.fatvat.co.uk/2010/08/brief-history-of-java.html
[04:05] Aria: "The present letter is a very long one, simply because I had no leisure to make it shorter." --Blaise Pascal. It applies even more to programming.
[04:05] blogometer: In that post he mocks the abuse of Patterns and links to:
[04:05] blogometer: http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory.html
[04:05] blogometer: RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory
[04:05] blogometer: Hilarious.
[04:05] Aria: My eyes just started bleeding. Thanks a lot.
[04:05] blogometer: And from Apache, 'natch.
[04:06] bradleymeck2: function foo(){if(argument.caller!==foo)this.evil=new foo();};new foo()
[04:06] bradleymeck2: wtf
[04:06] bradleymeck2: factoryfactory!?
[04:06] blogometer: When I see Factory, I think "fear of commitment."
[04:06] Aria: You /do/ know that Apache.org and Erowid.org used to share a host, right? This is not a coincidence.
[04:06] blogometer: I don't know what I'm doing, but someone who does know what they are doing can plug the right implementation in here.
[04:06] phound: This look bizarre to anyone? http://gist.github.com/544753 It's how I plan on setting up and using some model-like classes in my first node app.
[04:07] Aria: I don't see anything wrong with it, but it's obviously complex for such a trivial example.
[04:07] phound: Also - which syntax for 'new' is preferred?
[04:07] Aria: What're you designing?
[04:07] blogometer: phound: I don't know. I'm doing stuff like this...
[04:08] phound: Aria: Making a little couchdb-backed todo app using websockets.
[04:08] Aria: I've never seen new(foo)(bar) ... that looks bizarre to me, phound.
[04:08] blogometer: http://github.com/bigeasy/strata/blob/javascript/lib/__internal/storage.js
[04:08] blogometer: Aria: Cloudhead loves new(Foo).
[04:08] Aria: ACTION shrugs. Doesn't look crazy, phound, but it cuold probably be simpler.
[04:08] phound: Aria: yeah I hadn't either - that's what node-static had in its example usage. Had copied it from there
[04:08] Aria: Huh. Weird.
[04:09] blogometer: I'm inspired by this:
[04:09] Aria: I'd not do that ... it's an operator, not a function call.
[04:09] blogometer: http://jweir.github.com/namespace/
[04:09] phound: How might you simplify it? I know it's overly complex for what it's doing but am I missing any node/js tricks?
[04:09] blogometer: phound: I'd write the application first.
[04:09] blogometer: You're not doing anything wrong.
[04:09] blogometer: Write the app, read Crockford, read other Node.js people's code.
[04:09] Aria: Huh.
[04:09] phound: yeah i have it all up and running already - just trying to clean up the code :)
[04:10] blogometer: Oh, sweet.
[04:10] phound: haven't seen enough node.js from others to know the common conventions yet
[04:10] blogometer: Well, you're way ahead of me.
[04:10] isaacs: Aria: it's a weird operator. the parens make it more explicit when you have stuff like: new(require("foo"))
[04:10] blogometer: Read through this:
[04:10] Aria: Well, I might not encapsulate so much -- much of that could just be {body: "Foo"} and {body: "Blah"} ... done.
[04:10] blogometer: http://github.com/ry/node/tree/master/lib/
[04:10] phound: good idea
[04:10] isaacs: Aria: ie, new (require("http").Server)
[04:10] Aria: No need to write accessors and complex objects when you can just ... make an object.
[04:11] icozzo: lol, v8 fails to compile with cl 16.0 in the most violent way
[04:11] Aria: isaacs: True. But that makes me wince in so many ways anyway.
[04:11] isaacs: Aria: otherwise the fact that require() is a function, with parens, will make it read that as new(require)("http").Server
[04:11] blogometer: Aria: Agreed. phound: I wouldn't do getters and setters.
[04:11] icozzo: it outputs a 140mb lib that completely fails to link
[04:11] blogometer: Plus, there are properties.
[04:11] icozzo: even in release mode
[04:11] isaacs: Aria: the neat thing is that you can use new with require() and it's fine.
[04:11] phound: blogometer: yeah, don't plan on it - just needed a simple function example
[04:11] blogometer: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty
[04:11] isaacs: Aria: var fs = new require("fs")
[04:12] Aria: Yeah.
[04:12] blogometer: I structured my library for easy testing...
[04:12] blogometer: http://github.com/bigeasy/strata
[04:12] blogometer: With lib/__internal which has stuff I can test separately.
[04:12] blogometer: Also, very functional. Get some functions working, then feel confident using them elsehwere.
[04:12] blogometer: And Vows is righteous.
[04:13] Aria: Hm. I'm starting to think more and more that we need a prototypical stream without any ties to the net, file descriptors or anything.
[04:14] blogometer: Aria: ?
[04:14] blogometer: What prompted that?
[04:14] isaacs: Aria: +1
[04:14] phound: That can certainly be helpful for testing
[04:14] isaacs: Aria: http://github.com/mikeal/node-utils/tree/master/streams/
[04:15] mikeal1: filter
[04:15] blogometer: LIke pipes?
[04:15] mikeal1: streams.createFilter(func)
[04:15] mikeal1: function (end, data) { … }
[04:16] mikeal1: i think
[04:16] isaacs: mikeal1: i think there's a problem wiht your Filter class in there
[04:16] Aria: what prompted it? I'm implementing another stream object and hating having to write pause() and resume() and the related parts again.
[04:16] isaacs: mikeal1: write should only emit "data" if chunk is non-null. otherwise, it should emit "end"
[04:17] admc has joined the channel
[04:17] russell_h: is fs.open() mean to require a mode argument in order to pass a callback?
[04:17] andrehjr has joined the channel
[04:17] russell_h: the docs claim the mode argument is optional, and it is, but only if you don't want a callback
[04:17] Aria: Can't just put the callback in and leave it out?
[04:17] russell_h: and I'm having trouble imagining a scenario where I would want to open a file but not get that callback
[04:18] Aria: (or pass undefined, I suppose)
[04:18] blogometer: russell_h: So am I. The callback is where you'd read the opened file.
[04:18] russell_h: Aria: yeah, you can leave it undefined
[04:18] Aria: Hm. That pause() doesn't actually pause the stream, there, mikeal, in node-utils.
[04:18] mikeal1: function (chunk, end) { … }
[04:19] mikeal1: isaacs: you're right
[04:19] mikeal1: i need to redo this
[04:19] mikeal1: forgot how that was suppose to work
[04:19] mikeal1: Aria: which pause?
[04:20] Aria: in http://github.com/mikeal/node-utils/blob/master/streams/lib/main.js#L36
[04:20] rkieffer has joined the channel
[04:20] mikeal1: yeah
[04:20] mikeal1: it's not the filter's job to pause the input sttream
[04:21] mikeal1: that's the pump's job
[04:21] Aria: Ah.
[04:21] mikeal1: if a stream can't pause, and it's readable/writable then it should emit pause()
[04:21] jamescarr_: grrr
[04:21] mikeal1: so that the pump can notify the reader
[04:21] Aria: Hm. Nothing like that in node core, eh?
[04:21] jamescarr_: when it comes to websockets, what is the difference between conn.broadcast and server send?
[04:21] mikeal1: Aria: yes there is
[04:21] mikeal1: it's in sys.pump
[04:21] Aria: Hm. Which objects do that?
[04:22] mikeal1: i know, i wrote it :)
[04:22] phound: jamescarr_: I think conn.broadcast is all *other* connections
[04:22] mikeal1: node core doesn't implement a readable/writable stream that I can remember
[04:22] mikeal1: but if you don't implement a pause() method
[04:22] Aria: Not both, no.
[04:22] mikeal1: sys.pump will add one that just emits
[04:22] Aria: Hm.
[04:23] Aria: Interesting. Time to revisit my linebuffer object.
[04:25] mikeal1: isaacs: nevermind, i did implement it right
[04:25] mikeal1: just forgot how to read my code :)
[04:25] mikeal1: it's function (chunk, write) { … }
[04:25] mikeal1: write is the function you use to write data out
[04:26] gerad has joined the channel
[04:27] jamescarr_: hmmm
[04:27] _announcer: Twitter: "node.js http://htn.to/FtWVWf" -- sasa+1. http://twitter.com/sasaplus1/status/21886422830
[04:27] jamescarr_: I can never seem to get node-websocket-server to send messages back to the client
[04:27] jamescarr_: conn.broadcast and server.send.. nuthin
[04:28] _announcer: Twitter: "I do http://ow.ly/2tc0G node.js update "was not designed to lock the thread" What?" [ja] -- kamitter. http://twitter.com/kamitter/status/21886482878
[04:29] jamescarr_: doh
[04:29] jamescarr_: I had the args wrong
[04:34] Aria: Okay, here's a weird one. I seem to have a situation where the thing returned from fs.createWriteStream doesn't have a destroy() function, despite being a writable stream
[04:36] joshbuddy has joined the channel
[04:37] mjr_: I thought destroy was only for net streams
[04:37] mjr_: no?
[04:37] sudoer has joined the channel
[04:37] russell_h: is there any way to open a file for writing with O_CREATE not set?
[04:38] Aria: Ah, interesting. It's documented in writableStream.
[04:38] Aria: russell_h: Pass numeric flags instead. {flags: process.O_RDWR}
[04:39] russell_h: Aria: where is the conversion from the little 'w' string to the numeric flags done?
[04:40] russell_h: also, thanks :)
[04:40] Aria: in lib/fs.js, function stringToFlags()
[04:40] Aria: Line 114 in node HEAD
[04:40] russell_h: ah, nice
[04:40] russell_h: thanks!
[04:40] Aria: Sure thing.
[04:40] russell_h: everything suddenly makes way more sense
[04:41] mscdex: the available constants are in src/node_constants.cc
[04:42] maqr has joined the channel
[04:42] stellar has joined the channel
[04:43] _announcer: Twitter: "Sosumi - Use Find My Phone services from your node.js apps http://github.com/drudge/node-sosumi" -- aki. http://twitter.com/aki_xavier/status/21887299402
[04:51] _announcer: Twitter: "Node.wtf: An explanation of Node.js for the non-nerds.js - http://su.pr/23oCyu" -- eBot. http://twitter.com/kicauan/status/21887750795
[04:52] jakehow has joined the channel
[04:52] _announcer: Twitter: "@mgodave maybe it's slow because it wasn't written in #node.js" -- Dietrich Featherston. http://twitter.com/d2fn/status/21887781890
[04:53] isaacs has joined the channel
[04:55] dnolen has joined the channel
[05:04] shreekavi has joined the channel
[05:05] _announcer: Twitter: "Sabasaidopuroguramingu enable JavaScript frameworks of "node.js 0.2.0" release - SourceForge.JP Magazine: Open Source http://t.co/T06dXXo full topic" [ja] -- azolca「描写された青少年」. http://twitter.com/azolca/status/21888459723
[05:05] _announcer: Twitter: "[Link] ー like that Oh what a> "JavaScript framework that enables Sabasaidopuroguramingu by" node.js 0.2.0 "release - SourceForge.JP Magazine" http://bit.ly/cC4Pl8 [Mobatsui]" [ja] -- IIJIMAS. http://twitter.com/IIJIMAS/status/21888491056
[05:09] _announcer: Twitter: "LT-house in the presentation node.js http://prezi.com/oqaesyptferr/introduction-to-nodejs/ Yo" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/21888701591
[05:11] dnolen has joined the channel
[05:13] _announcer: Twitter: "Tying, tying the presentation. Even tying node.js - Introduction to node.js by Toshihiro Shimizu on Prezi: http://j.mp/avrsnN # miteru" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/21888913675
[05:14] _announcer: Twitter: "I made a quick and useful scraper utility http://bit.ly/b7biHJ #nodejs #sizzle #jsdom #htmlparser" -- Tim Caswell. http://twitter.com/creationix/status/21888955423
[05:22] _announcer: Twitter: "Want to try google app engine ah. Kgk fun fun prizes. Or there is cloud hosting python who besides google? Or nodejs cloud hosting for free?" [id] -- Lhutfhy pribadi. http://twitter.com/lhutfhy/status/21889354458
[05:26] _announcer: Twitter: "Sounds interesting. How fast is it? | JavaScript framework that enables Sabasaidopuroguramingu by "node.js 0.2.0" release http://sourceforge.jp/magazine/10/08/23/0343208" [ja] -- Eizi Ikeda. http://twitter.com/pkyjp/status/21889536304
[05:30] _announcer: Twitter: "Wow, so people are hacking on Node-Jake and adding some opt-in async awesomeness. #nodejs #node.js" -- Matthew Eernisse. http://twitter.com/mde/status/21889719567
[05:31] jamescarr has joined the channel
[05:32] jamescarr: how could I make a script just do nothing till I kill it?
[05:32] jamescarr: I have a script that I want to kick off several children processes and kill em when I exit the script
[05:32] Aria: wait for the children!
[05:33] isaacs: jamescarr: cat
[05:33] jamescarr: lol theyll never finish
[05:33] isaacs: jamescarr: but you don't have to kill them
[05:33] isaacs: jamescarr: cat does that. it just sits there waiting
[05:34] jamescarr: ah
[05:34] isaacs: jamescarr: var kitten = require("child_process").spawn("cat", [])
[05:34] isaacs: jamescarr: but when the parent dies, it'll kill the children. so doing process.exit() will kill it automagically
[05:34] Aria: Hm. Shouldn't writing to a closed stream emit an 'error' event rather than throwing?
[05:35] jamescarr: hmmm... wont it wait on the other processes too then???
[05:35] jamescarr: the other two processes I kicked off are servers
[05:35] isaacs: jamescarr: well, it won't die automatically as lon gas the cp is going
[05:35] isaacs: jamescarr: but if you manually exit with process.exit(), then it'll kill the children
[05:36] isaacs: jamescarr: but a child process is enough to keep the event loop churning
[05:36] jamescarr: I see
[05:39] JimBastard has joined the channel
[05:39] JimBastard: zzzzz
[05:39] JimBastard: must...write....more...javascrips
[05:44] _announcer: Twitter: ""Node.js on Twitter stream being thrown in the CouchDB to discharge I have written a browser app" that will appeal / node.js on Twitter stream being thrown in the CouchDB to vertical browser ... http://htn.to/ gRcNs8" [ja] -- Toru KAWAMURA. http://twitter.com/tkawa/status/21890441943
[05:46] _announcer: Twitter: "I wish node.js had better/more documentation." -- Willson. http://twitter.com/modfox/status/21890507991
[05:46] benburkert has joined the channel
[05:48] _announcer: Twitter: "Sounds interesting / node.js being thrown in to the Twitter stream to CouchDB, I wrote a discharge application to the browser - Web diaries of people shop | | WebJourney http://htn.to/gRcNs8 Development log" [ja] -- Toru KAWAMURA. http://twitter.com/tkawa/status/21890595615
[05:48] ditesh|cassini has joined the channel
[05:49] tekky has joined the channel
[05:52] austinfromboston has joined the channel
[05:57] _announcer: Twitter: "Countdown to Knockout: Post 7 - Node.js and Redis Pub-Sub http://post.ly/tF7Q" -- node knockout. http://twitter.com/node_knockout/status/21891029011
[05:58] gerad: woah, that was published on irc via twitter before the blog post even finished submitting on posterous's web site
[05:58] overra has joined the channel
[05:58] gerad: good job intertubes!
[05:59] Aria: Hehe. Gotta love the bot.
[06:17] _announcer: Twitter: "node.js 0.2.0 release "JavaScript framework that enables Sabasaidopuroguramingu by" node.js 0.2.0 "release" http://is.gd/ey7wM" [ja] -- azu. http://twitter.com/azu_re/status/21891949902
[06:20] ditesh|cassini has joined the channel
[06:21] ph^ has joined the channel
[06:23] _announcer: Twitter: "node.js new release. Please update. / JavaScript framework that enables Sabasaidopuroguramingu by "node.js 0.2.0" release - SourceForge.JP Magazine ... http://htn.to/z2UUnL" [ja] -- Takuto Wada. http://twitter.com/t_wada/status/21892251994
[06:27] mjr_: Sabasaidopuroguramingu
[06:27] mjr_: awesome
[06:39] Throlkim has joined the channel
[06:41] sanjib has joined the channel
[06:42] sanjib: Looking for help when trying to install npm on cygwin
[06:42] sanjib: I am atcuck at this instruction, # add the IP of a valid name server nameserver 8.8.8.8
[06:42] sanjib: what do I exactly add to my etc/resolv.conf
[06:43] sanjib: anyone?
[06:43] zum_: try saying ipconfig /all"
[06:43] zum_: without the "
[06:43] zum_: and pick the first DNS server
[06:44] icozzo: 8.8.8.8 is a valid name server
[06:44] icozzo: as is 8.8.4.4
[06:44] sanjib: I see this, DNS Servers . . . . . . . . . . . : 192.168.2.1 68.87.76.182 68.87.78.134
[06:45] sanjib: that worked
[06:45] sanjib: I just put the first one and installation for npm went fine
[06:46] sanjib: thanks a lot
[06:46] sanjib: 8.8.8.8 didnt work for me
[06:46] zum_: it seems they should work though: http://code.google.com/speed/public-dns/docs/using.html
[06:47] crohr has joined the channel
[06:50] johndahlstrom has joined the channel
[06:52] SamuraiJack has joined the channel
[06:53] mikeal1 has joined the channel
[06:56] andrehjr` has joined the channel
[06:58] codetonowhere has joined the channel
[07:10] _announcer: Twitter: "Output Node.js v0.2.0 http://bit.ly/aBbXwo" [fr] -- Benoit Raux. http://twitter.com/rauxbenoit/status/21894321062
[07:13] johndahlstrom_ has joined the channel
[07:14] ditesh|cassini has joined the channel
[07:16] Aria: 8.8.8.8 and 8.8.4.4 sometimes fail in locations that don't play nice with Google -- it's anycast routed, so ISPs that don't play nice can screw with it and it'll go unreachabke.
[07:19] pquerna: i'm not sure what using google dns has to do with installing node.js
[07:19] Aria: You need a resolver in /etc/resolv.conf
[07:19] Aria: And on Windows, that doesn't exist by default.
[07:19] mjr_: npm needs at least one of the internets.
[07:19] Aria: And so, talk about DNS servers comes up
[07:20] pquerna: oh.
[07:20] mjr_: pquerna: conquer the world of SSL this weekend?
[07:21] pquerna: i swear c-ares could use the win reg
[07:21] pquerna: but i guess not if we are compiling it in cygwin world
[07:21] pquerna: no, but i leared about making bechamel
[07:21] pquerna: and saw inception
[07:21] pquerna: a great victory of a weekend
[07:21] mjr_: nice
[07:22] mjr_: I haven't seen Inception yet, but I did see Eat, Pray, Love with my wife yesterday.
[07:22] mjr_: And then we had pizza, meditated, and got married.
[07:22] johndahlstrom has joined the channel
[07:22] mjr_: So yeah, pretty busy weekend for me too.
[07:23] pquerna: heh
[07:25] Aria: Aright. I'm out of steam. Got node-smtp writing messages to disk and accepting them. I'll make a mail server yet.
[07:25] jimt has joined the channel
[07:25] pquerna: ugh yeah
[07:25] pquerna: thats what thought
[07:26] pquerna: if we compiled c-ares with mingw, it'd use the win32 reigster for nameservers
[07:26] pquerna: sigh, really gotta do that port.
[07:28] sh1mmer has joined the channel
[07:32] icozzo: whats the main thing holding nodejs back from windows support, libev?
[07:35] ker2x_ has joined the channel
[07:35] ker2x has joined the channel
[07:36] konobi: noone does development on windows
[07:37] icozzo: har har
[07:37] konobi: well, what i mean to say is you've got a chicken and egg problem
[07:38] icozzo: let me rephrase: without having spent much time in the source of node's dependencies
[07:38] konobi: the people who want to use node on windows move onto something else, so you have a bunch of unix folk working on node
[07:38] icozzo: where do you see pain points in porting to windows?
[07:38] konobi: people
[07:39] _announcer: Twitter: "It increasingly wider range of use - JavaScript framework that enables Sabasaidopuroguramingu by "node.js 0.2.0" release http://3.ly/queN" [ja] -- quanp_ruiji. http://twitter.com/quanp_ruiji/status/21895554311
[07:40] konobi: icozzo: I'm sure it's all achieveable, you just need a few people with low level windows development experience to be interested
[07:41] konobi: icozzo: if that makes sense
[07:42] konobi: as far as specific problem areas... i don't know enough about low-level windows development to know
[07:42] felixge has joined the channel
[07:42] felixge has joined the channel
[07:43] ditesh|cassini has joined the channel
[07:44] stagas has joined the channel
[07:48] proppy has joined the channel
[07:48] tobiassjosten has joined the channel
[07:48] russell_h: does node have a way to get the current time?
[07:49] konobi: the Date object... it's a javascript builtin
[07:49] russell_h: heh, I didn't even think of that
[07:49] russell_h: konobi: good call, thanks
[07:50] proppy: ryah: here ?
[07:51] proppy: I'm very new to git (coming for mercurial), ryah asked me to fix some commit but they (the bad one) are already published on github
[07:51] proppy: should I make a local branch, and then rebase a new commit on ryah HEAD ?
[07:52] proppy: I suspect this happen often
[07:52] russell_h: proppy: yeah, you can't rewrite commits that are already pushed
[07:53] proppy: I know that I can technicaly, but I remember that's bad practice
[07:54] russell_h: you can definitely do it locally, I'm not sure what happens if you try to push it... but yeah, don't find out :)
[07:54] konobi: you just need to `git push -f` it
[07:55] proppy: how could I reset back to ryah HEAD ?
[07:55] konobi: it's only bad practice if you expect others to be using the same repo, in this case, only you will be using it
[07:55] proppy: because I know that when I will pull it, it will fast forward merge with my changes
[07:55] konobi: proppy: `git reset --hard`
[07:55] konobi: then git push -f
[07:55] breccan has joined the channel
[07:56] proppy: konobi: can I move my changes in a branch first ?
[07:56] proppy: now they are on master
[07:56] jetienne has joined the channel
[07:56] proppy: so git checkout -b readline (my branch)
[07:56] proppy: then git checkout master
[07:57] proppy: then git pull http://github.com/ry/node.git
[07:57] proppy: then git reset --hard ?
[07:58] russell_h: you shouldn't need the git reset I don't think
[07:58] proppy: yes,
[07:59] proppy: git reset --hard only reset my working directory
[07:59] proppy: I need to reset on ryah HEAD
[07:59] icozzo has joined the channel
[07:59] sonnym has joined the channel
[07:59] aurynn has joined the channel
[07:59] Tekerson has joined the channel
[07:59] mde has joined the channel
[07:59] mischief has joined the channel
[07:59] scoates has joined the channel
[07:59] skampler has joined the channel
[07:59] CIA-77 has joined the channel
[07:59] SubStack has joined the channel
[08:00] proppy: git reset --hard origin/HEAD
[08:00] proppy: :)
[08:02] virtuo has joined the channel
[08:02] teemow has joined the channel
[08:05] satori_ has joined the channel
[08:08] sh1m has joined the channel
[08:10] jetienne: i just understood how echo demo for node-websocket-server !!!
[08:10] jetienne: tips: it doesn echo to itself
[08:14] _announcer: Twitter: "Having a blast with #nodejs and #expressjs - I'm wondering if I should try to implement #Socket.io into this project too :)" -- Daniel Erickson. http://twitter.com/TechWraith/status/21897028638
[08:15] xla has joined the channel
[08:16] statim has joined the channel
[08:17] MattJ has joined the channel
[08:20] margle has joined the channel
[08:21] _announcer: Twitter: "@ T_wada see. Please tell me you find node.js master!" [ja] -- INAO Naonori/稲尾尚徳. http://twitter.com/inao/status/21897326457
[08:24] codetonowhere has joined the channel
[08:24] aubergine has joined the channel
[08:25] ntelford has joined the channel
[08:25] bradleymeck has joined the channel
[08:26] hellp has joined the channel
[08:26] felixge has joined the channel
[08:26] felixge has joined the channel
[08:26] felixge: ryah: still up?
[08:27] sat has joined the channel
[08:28] konobi: felixge: i think he's asleep
[08:28] felixge: konobi: yeah, np. Posted to the mailing list
[08:30] proppy: woo git rebase -i is terrific
[08:30] _announcer: Twitter: "protobot: IRCBot in Node.js - http://github.com/gf3/protobot time to retire eggdrop?" -- Christian Heilmann. http://twitter.com/codepo8/status/21897709455
[08:31] felixge: proppy: yeah :)
[08:38] _announcer: Twitter: "Finally something useful: protobot - IRCBot in Node.js - http://bit.ly/au3eaT # node.js" [de] -- Peter. http://twitter.com/cainvommars/status/21898025282
[08:38] _announcer: Twitter: "Writing apps still heroku node.js before I thought maybe I had to move from the experimental abandoned in a separate mail application." [ja] -- nog. http://twitter.com/nog/status/21898050691
[08:41] joshbuddy has joined the channel
[08:45] Jimmy203 has joined the channel
[08:47] robotarmy has joined the channel
[08:49] CIA-77: node: 03Felix Geisendörfer 07master * rc209e57 10/ doc/api.markdown : Document WriteStream 'open' event - http://bit.ly/b7tzSf
[08:49] CIA-77: node: 03Johan Euphrosine 07master * rfd3e844 10/ (lib/readline.js test/simple/test-readline.js): add home/end support in rxvt and readline tests - http://bit.ly/axSQZ1
[08:49] CIA-77: node: 03Johan Euphrosine 07master * r748469c 10/ (lib/readline.js test/simple/test-readline.js): add readline support for meta-f and meta-b - http://bit.ly/cZsXLa
[08:54] _announcer: Twitter: "node.js on armv5t does comile now! Thx to the #V8 issue tracker :) On Debian squeeze u need to add -march=armv5t in deps/v8/SConstruct file" -- Vincent RABAH. http://twitter.com/itwars/status/21898726393
[09:00] _announcer: Twitter: "I node.js ー. Can I be a server-side JavaScript." [ja] -- sasa+1. http://twitter.com/sasaplus1/status/21898956310
[09:00] rnewson has joined the channel
[09:02] _announcer: Twitter: "Simon Willison "Node.js is very exciting" - a client-side scripting with Web Standards http://htn.to/hvAgKb" [ja] -- sasa+1. http://twitter.com/sasaplus1/status/21899053637
[09:02] MrNibbles: hey guys
[09:03] MrNibbles: are web workers working well?
[09:03] aubergine has joined the channel
[09:04] Tim_Smart has joined the channel
[09:07] _announcer: Twitter: "Native Node.JS BSON parser results - Hi everyone The new native BSON parser is finally more stable and at... http://tumblr.com/xkqght04r" -- Christian Kvalheim. http://twitter.com/christkv/status/21899281191
[09:08] Tim_Smart has joined the channel
[09:08] mAritz has joined the channel
[09:10] aubergine_ has joined the channel
[09:11] FransWillem has joined the channel
[09:13] maushu has joined the channel
[09:16] _announcer: Twitter: "I like node.js ... BSDL license?" [ja] -- sasa+1. http://twitter.com/sasaplus1/status/21899687435
[09:16] _announcer: Twitter: "I'm using a library of about node.js or MITL ApacheL story." [ja] -- sasa+1. http://twitter.com/sasaplus1/status/21899707244
[09:17] sveisvei has joined the channel
[09:17] felixge: konobi: seems like ryah is merging patches while sleeping :)
[09:18] konobi: heh
[09:18] jetienne: MrNibbles: it worked when i tried (with yahoo multi core http server)
[09:18] _announcer: Twitter: "SummerWind - node.js play: Installation Guide http://htn.to/HPk9cr" [ja] -- sasa+1. http://twitter.com/sasaplus1/status/21899785687
[09:21] ryah: not sleeping
[09:21] ryah: :~
[09:21] ryah: making web forms
[09:21] ryah: and stabing self
[09:22] konobi: sounds like you need a beer
[09:24] statim has joined the channel
[09:25] felixge: ryah: web forms? Need help? You should be working on more interesting things :)
[09:25] maushu: ryah: You can't trick us! You are sleep-irc-chatting!
[09:26] _announcer: Twitter: "I'm also includes Node.js ... httpd ... ... what is?" [ja] -- sasa+1. http://twitter.com/sasaplus1/status/21900141680
[09:27] felixge: http://search.twitter.com/search?q=node.js seems like node is taking of in japan
[09:27] felixge: :)
[09:28] statim has joined the channel
[09:29] statim has left the channel
[09:31] jetienne: http://github.com/gf3/protobot/blob/master/vendor/google/google.js <- async http client... the new way :)
[09:32] aubergine has joined the channel
[09:32] konobi: seen strange?
[09:33] ryah: eh
[09:33] ryah: because the http.Client sucks so bad?
[09:34] aubergine has joined the channel
[09:34] jetienne: ryah: i think he was in a hury and went for his "usual way"
[09:34] jetienne: but still i find it fun :)
[09:38] felixge: ACTION has some code like this in transloadit as well
[09:38] felixge: ACTION ducks
[09:38] FransWillem: ryah: Are you just up or still up ? (e.g., will you still be here in about 2 hours :p)
[09:40] maushu: felixge: That reminds me.
[09:40] maushu: Any stats about transloadit?
[09:40] maushu: Aka, Is it going well?
[09:41] felixge: maushu: it will be
[09:41] felixge: maushu: we're lining up a new gig right now that will allow us to work half time on client stuff
[09:41] felixge: maushu: while making more money than we were making with our current client fulltime :)
[09:41] felixge: maushu: so more beer and time for transloadit, starting in a few weeks :)
[09:42] felixge: maushu: as far as stats are concerned: Lots of new trial signups, some pretty big companies / development shops among them
[09:43] ryah: FransWillem: im here
[09:43] pdelgallego has joined the channel
[09:44] ditesh|cassini has joined the channel
[09:44] maushu: Hmm.
[09:44] ryah: nodes http client does need some love from more than mikeal
[09:44] felixge: ryah: what would you like to see improved?
[09:45] ryah: http.get('http://something', function (res) {});
[09:45] felixge: ryah: I like
[09:47] felixge: ryah: http.post('...', {field: val}, ...)
[09:47] proppy: ryah: thanks for pulling my changes :)
[09:47] felixge: would be über-awesome
[09:47] felixge: ryah: would you go as far as file uploading?
[09:49] mape: What's lacking in mikaels request?
[09:50] felixge: mape: link?
[09:51] mape: felixge: Huh? to request?
[09:51] mertimor has joined the channel
[09:51] felixge: mape: yeah, whatever you are talking about
[09:51] mape: http://github.com/mikeal/node-utils/tree/master/request/
[09:52] felixge: mape: it doesn't seem to do a whole lot
[09:53] mape: Nope just fetches stuff, with a little error handling, follows redirects and whatnot
[09:53] mape: but more handy then doing everything manually as it is now
[09:54] felixge: mape: yeah, but I think it would be nicer to aim for a bigger subset of curl-goodness
[09:54] mape: That would go into core?
[09:55] felixge: mape: that's for ryah to decide
[09:55] felixge: mape: request doesn't seem to handle POST parameters
[09:55] mape: Hmm k
[09:56] mape: I've only used it to fetch data, not post so haven't been an issue for me
[09:56] _announcer: Twitter: "@ NickFedchik strange. apparently the bug is a client - I NodeJS and Lieb node-stomp, I initially thought that the server can not tuned." [ru] -- Abrdev Blog. http://twitter.com/abrdev/status/21901476381
[09:58] _announcer: Twitter: "@kkovacs Found myself beeing captivated by such stuff too. node.js?" -- originell. http://twitter.com/originell/status/21901565589
[10:09] fliebel has joined the channel
[10:18] _announcer: Twitter: "Eongseonghangeo interpretation is that something. English halryeoni hard to do. node.JS Documentation Analysis [Standard Modules] http://j2p-fedev.com/?p=150" [ko] -- Jung Jae Pil. http://twitter.com/J2PFnc/status/21902523829
[10:19] maushu: Dammit, I would really love to have a missing_method here.
[10:19] Akufen has joined the channel
[10:19] Akufen has joined the channel
[10:20] CIA-77: node: 03Russell Haering 07master * r6078c37 10/ lib/fs.js : Modify fs.open to use accept a callback without a mode - http://bit.ly/bTprW6
[10:21] ryah: felixge: file uploading?
[10:21] fliebel: maushu: What? Where?
[10:22] Tim_Smart has joined the channel
[10:22] maushu: ...spidermonkey does have a noSuchMethod.
[10:22] felixge: ryah: yeah. http.post('http://example.org/upload', {my_file: fs.createReadStream('/foo/bar.jpg')});
[10:22] felixge: ryah: something like that
[10:23] fliebel: maushu: Is that the same thing as Ptyhons __getattr__ or __call__ or something similair?
[10:23] maushu: GOD DAMMIT.
[10:23] maushu: fliebel: Yup.
[10:24] fliebel: maushu: Yea, that would be nice to have in Node, if it's not there somewhere.
[10:24] _announcer: Twitter: "Node.js Japan User Group launched! node.js Interested in joining us, please us. http://groups.google.co.jp/group/nodejs_jp" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/21902822075
[10:25] maushu: christian from the v8 mailing list didn't want to add the feature because of "compatibility" problems. wtf.
[10:25] _announcer: Twitter: "@ T_wada @ koba789 @ yssk22 @ nsyee @ atsuya @ masuidrive Node.js set up a user group in Japan! Members please join us! http://groups.google.co.jp/group/nodejs_jp" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/21902881081
[10:27] FransWillem has joined the channel
[10:27] maushu: http://code.google.com/p/v8/issues/detail?id=264
[10:28] maushu: Found this though: http://github.com/brickysam26/node-proxy
[10:28] _announcer: Twitter: "Introduction to node.js by Toshihiro Shimizu on Prezi http://htn.to/BB6dMD" -- sasa+1. http://twitter.com/sasaplus1/status/21903010156
[10:35] Jimmy203: anyone good at mongoose?
[10:35] rsms has joined the channel
[10:42] Tim_Smart has joined the channel
[10:48] Jimmy203: can some one help me with some json manipulation ? Here`s an example of what I am trying to do.. http://pastebin.com/aHMtzAvJ
[10:49] Jimmy203: I want to add a custom named array to my fieldset
[10:50] proppy: json.T[ts+_a[0]] = a ?
[10:52] _announcer: Twitter: "Doing some CoffeeScript / Node.js Stuff... http://img.ly/1X13" -- Sascha Gehlich. http://twitter.com/rattazong/status/21904158893
[10:52] aho has joined the channel
[10:52] SamuraiJack_ has joined the channel
[10:55] Jimmy203: thanks proppy I`ll give it a go.
[10:55] proppy: json.T['ts_'+a[0]] = a
[10:55] proppy: Jimmy203: ^ sorry :)
[10:56] Jimmy203: I was just changing it :)
[10:56] Jimmy203: but pointed me in the right direction thanks :)
[10:56] nerdEd has joined the channel
[10:58] a4k7 has joined the channel
[10:58] nerdEd has joined the channel
[10:58] a4k7: hi guys
[10:59] _announcer: Twitter: "What node.js group. The fun, but after coming back from the mobile to register now to participate" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/21904519891
[10:59] mscdex: hola
[10:59] a4k7: Is there a way to find out where a httpServer request is coming from?
[11:00] mscdex: like ip address?
[11:00] a4k7: I want to be able to identify localhost
[11:00] nerdEd_ has joined the channel
[11:00] a4k7: yes
[11:00] mscdex: yep
[11:00] rnewson has joined the channel
[11:00] rnewson has joined the channel
[11:00] mscdex: http.ServerRequest.connection.remoteAddress
[11:01] a4k7: thx mon
[11:01] mscdex: np
[11:11] sideshowcoder has joined the channel
[11:15] Dmitry has joined the channel
[11:18] mscdex: felixge: ping
[11:18] nerdEd has joined the channel
[11:21] Tim_Smart has joined the channel
[11:21] derencius has joined the channel
[11:24] Ori_P has joined the channel
[11:26] felixge: mscdex: sup?
[11:26] mscdex: felixge: do you prefer patches or pulls?
[11:26] felixge: mscdex: pulls are fine
[11:26] felixge: mscdex: I usually just add the other repo as a remote
[11:26] felixge: mscdex: and then cherry-pick
[11:27] Jimmy203: could someone check out my mongoose model.properties structure and tell me what I`m setting wrong? http://pastebin.com/neaR943C - thanks :)
[11:27] m64253 has joined the channel
[11:28] mscdex: felixge: done
[11:29] felixge: mscdex: looks good
[11:31] felixge: mscdex: thanks, I like your solution, it's nice and simple. http://github.com/felixge/node-mysql/commit/10e81c252e6a9f3d83e9d05a8e8f693a2756784c
[11:34] SamuraiJack__ has joined the channel
[11:38] zapnap_zzz has joined the channel
[11:38] zemanel has joined the channel
[11:39] FransWillem: What should ctrl+z do at the repl ?
[11:40] mscdex: puts node to sleep? ;-)
[11:40] mscdex: in similar news, home/end doesn't work with putty/xterm
[11:40] mscdex: in the repl
[11:41] FransWillem: I know
[11:41] FransWillem: working on that :)
[11:41] mscdex: oh, i was about to add it heh
[11:41] mscdex: it should be a simple fix though
[11:41] badaxx has joined the channel
[11:41] FransWillem: Yes, you can do a quick hack
[11:41] d0k has joined the channel
[11:41] FransWillem: But I'm working on a different readline implementation
[11:42] FransWillem: one that should handle streaming data better :p
[11:42] mscdex: oh
[11:42] _announcer: Twitter: "Big Link "What's New in Node.js?" by mitchp http://dzone.com/jJjd" -- DZone. http://twitter.com/DZone/status/21906816872
[11:44] badaxx: hello there, I'm fetching the stdout of a python script via node.js and I'm trying to parse it via JSON.parse. The problem is that JSON.parse finds an Illegal token which is - in my eyes - not illegal? http://pastie.org/private/ybraykgasyxgywf2vhcxcq
[11:46] Tim_Smart: badaxx: Are you encoding it with python's JSON library?
[11:46] badaxx: Tim_Smart: yes, i do
[11:47] Tim_Smart: Your comment example response parsed for me...
[11:48] badaxx: did you do something like json = '{"extension": "mp4", "title": "Jet - Look what you\'ve done"}' ? (escaped ')
[11:48] Tim_Smart: Yeah
[11:49] badaxx: if you do console.log json then
[11:49] badaxx: you see that it logs the escaped '
[11:49] badaxx: which is wrong
[11:49] badaxx: if I say console.log(data)
[11:49] badaxx: it logs an unescaped '
[11:49] badaxx: which is right for me
[11:49] FND has joined the channel
[11:49] ironfroggy_ has joined the channel
[11:49] mscdex: badaxx: is data a buffer or a string?
[11:49] mscdex: badaxx: because JSON.parse() doesn't understand buffers
[11:49] badaxx: good question, I think its a buffer?
[11:50] _announcer: Twitter: "Only 5 days left until node.js Knockout!!! I still need an idea for what I am going to build." -- _krispy_. http://twitter.com/_krispy_/status/21907226778
[11:50] badaxx: dunno, let me have a look at the node api
[11:50] mscdex: badaxx: JSON.parse(data.toString());
[11:50] Tim_Smart: console.log outputs '{"extension": "mp4", "title": "Jet - Look what you\'ve done"}' - which is right.
[11:50] badaxx: A Readable Stream that represents the child process's stdout.
[11:50] FND: pre-v0.2 raises "No longer accepting filename extension in module names" for require("foo.js") -- has this been reverted (just curious because the "no longer" bit suggests it went back and forth)
[11:50] badaxx: well don't you think "title:" "Jet - Look what you've done" is right?
[11:50] badaxx: ' in " ?
[11:51] mscdex: badaxx: yes, that is fine
[11:51] mscdex: badaxx: try using data.toString() in .parse instead and you should be good to go i think
[11:52] badaxx: mscdex: still the same error
[11:52] mscdex: hrm
[11:52] Tim_Smart: Can you curl us the response?
[11:52] badaxx: what response? the response from the python thing?
[11:52] Tim_Smart: Oh wait.
[11:52] Tim_Smart: Um, run the script in terminal, and paste output/
[11:53] Tim_Smart: s/\//?/
[11:53] badaxx: ok one second
[11:53] badaxx: omg super fast regex creation
[11:53] badaxx: :P
[11:54] badaxx: ah
[11:54] badaxx: shit, my fault
[11:54] badaxx: the python script did more output than I expected - not only the json hash but another string
[11:54] badaxx: which json.parse does not accept of course
[11:54] badaxx: sorry for bothering you ;)
[11:55] Tim_Smart: :p
[11:56] badaxx: okay but another problem - you see the spawn call in my first pastie?
[11:56] badaxx: '"' + url '"' that's crap I think
[11:56] badaxx: because when I fetch the param in the python script it gives me the url WITH the colons
[11:56] badaxx: eeh
[11:56] badaxx: not colons
[11:56] badaxx: " << these things. ;)
[11:56] mscdex: double quote?
[11:57] badaxx: yes, exactly.
[11:59] Tim_Smart: badaxx: You don't need quotes with spawn.
[11:59] Tim_Smart: spawn isn't the same as command line, and sends arguments directly
[11:59] badaxx: so just like ..., url, server_id ?
[12:00] Tim_Smart: yup
[12:00] _announcer: Twitter: "I love it when projects suck me in like that. Seems to be happening more often with #nodejs and #expressjs" -- Daniel Erickson. http://twitter.com/TechWraith/status/21907824768
[12:00] tobiassjosten has joined the channel
[12:01] crohr__ has joined the channel
[12:01] badaxx: Tim_Smart: okay, now it's spawning the python process and waiting for stdout but there's no output coming
[12:01] Tim_Smart: Hmm.. a gstreamer ncurses media player in node.js would be awesome.
[12:02] Tim_Smart: Oh ok.
[12:02] Tim_Smart: badaxx: You probably should add some debug to the python script.
[12:03] konobi: Tim_Smart: orlandov has a node-mpd module he's working on
[12:04] Tim_Smart: Oh nice. Gstreamer is awesome though, could play video and stuff.
[12:05] konobi: mscdex: ncurses... NICE
[12:05] jetienne: why ncurse ? i mean you want a video player without window ?
[12:05] mscdex: heh
[12:05] konobi: mscdex: thinking about doing something atop that, like Curses::UI or something?
[12:06] mscdex: konobi: at some point i'll be adding in the ncurses++ form and menu api
[12:06] mscdex: it's on my todo list
[12:06] konobi: mscdex: http://search.cpan.org/~mdxi/Curses-UI-0.9607/
[12:07] konobi: nice list of cool features
[12:09] matt_c_ has joined the channel
[12:10] mscdex: konobi: yeah, the ncurses menu and form api gives you some of those basic things, but not a dedicated calendar widget for example
[12:10] aubergine has joined the channel
[12:12] Jimmy203: could someone check out my mongoose model.properties structure and tell me what I`m setting wrong? http://pastebin.com/neaR943C - thanks :)
[12:12] Tim_Smart: I have already made a little cli tool on top of the grooveshark api
[12:13] Tim_Smart: It just pipes the music to gst-launch
[12:14] _announcer: Twitter: "Join! RT @ meso: Node.js set up a user group in Japan! node.js Interested in joining us, please us. http://bit.ly/aCLEdD" [ja] -- 西山 雄也/Nishiyama Yuya. http://twitter.com/nsyee/status/21908738732
[12:17] FransWillem: Hmmm, yay, my new streaming readline implementation is functional :)
[12:17] codemariner has joined the channel
[12:17] aubergine has joined the channel
[12:20] konobi: mongodb is still corrupting data when under load still these days, right?
[12:22] badaxx: seems like the python process run via the spawn command is much slower than the one launched via command line?
[12:22] jetienne: FransWillem: with ctrlc as .break ?
[12:23] rakeshpai has joined the channel
[12:23] FransWillem: jetienne: Not yet, but should be trivial to implement
[12:23] jetienne: FransWillem: cool
[12:23] rakeshpai: I know this is the wrong place, but I need some help about html5's appcache... can anyone help/point me to the right place?
[12:24] mscdex: i think that would irk me, ctrl+c as .break
[12:24] FransWillem: LEt me first focus on putting this back in the readline source nicely
[12:24] jetienne: mscdex: this is like that in all shell
[12:24] jetienne: mscdex: bash, ruby, python
[12:24] rakeshpai: the problem is that I can't make any x-domain requests from my app that has an appcache
[12:24] rakeshpai: so, for example, I can't load google analytics on my page if I have app-cache... any idea how I can fix it?
[12:24] mscdex: i dunno, i see it as unexpected behavior
[12:25] jetienne: mscdex: being like every other implementation is unexpected ?
[12:25] jetienne: mscdex: how so
[12:25] mscdex: i don't use ruby or python, so i can't comment on that
[12:25] rudebwoy has joined the channel
[12:25] mscdex: but i mean programs in general
[12:25] jetienne: this is a shell it is special
[12:26] mscdex: and node is a program?
[12:26] mscdex: :p
[12:26] jetienne: :)
[12:26] mape: mscdex: Remember if you ever fixed that bugI found on ncurses?
[12:26] mscdex: mape: what bug was that?
[12:26] mape: not being able to run it at all, 1sec
[12:26] mscdex: seems vaguely familiar
[12:27] mape: Error opening terminal: xterm-color.
[12:27] mscdex: oh
[12:27] mape: when running any of the examples
[12:27] mscdex: is this OSX?
[12:27] mape: Yes
[12:27] mscdex: the default terminal?
[12:27] mape: yes
[12:27] mscdex: i'll see if i can duplicate it now that i have a mac at my disposal
[12:28] konobi: fun with termcap i suspect
[12:28] mscdex: yeah that's what i was thinking last time i believe
[12:28] mape: Ah dtterm works..
[12:29] Tim_Smart: Apple serious needs to make Terminal.app more awesome. It always rapes all the key bindings.
[12:29] Tim_Smart: *seriously
[12:29] mape: settings -> advanced -> declare terminal as: dtterm
[12:29] mape: Doesn't like xterm-**/ansi at all
[12:29] mape: or vt102
[12:30] mape: or rxvt
[12:30] drudge: i'm using xterm-color now, want me to test anything?
[12:31] mape: Nah, seems it won't work. but dtterm does
[12:31] mischievious has joined the channel
[12:32] ncursestest has joined the channel
[12:32] ncursestest: Hmmm
[12:32] mischievious has joined the channel
[12:32] ncursestest: Neat
[12:32] ncursestest: ACTION tests
[12:32] mape: splendid
[12:35] mape: mscdex: It is your ncurses that is on npm?
[12:35] janne has joined the channel
[12:36] valerie-23 has joined the channel
[12:38] maushu: mape: It also works on cygwin.
[12:38] FransWillem has joined the channel
[12:39] maushu: The connection doesn't. For some reason.
[12:39] mape: Well it kinda doesn't work through npm now
[12:39] mape: npm ! ERROR ! Error: ncurses-0.0.1 preinstall: `node-waf configure build`
[12:39] mape: npm ! ERROR ! `sh` failed with 1
[12:39] maushu: 1, that horrible horrible error.
[12:40] mscdex: mape: i dunno, i've haven't used npm yet, so someone else must have added it
[12:40] mape: yeah, isaacs ;)
[12:42] weepy has joined the channel
[12:42] weepy: hi - ive got an odd bug with 'require'
[12:42] weepy: i have two files stat.js and user.js
[12:42] weepy: they both contain objects that are exported like : exports.User = User
[12:43] weepy: and they also include each other like: Stat = require("./stat").Stat
[12:43] _announcer: Twitter: "Node.js is the New Black #links http://icio.us/2e0lgf" -- BizDevTalk - Mike. http://twitter.com/BizDevTalk/status/21910657861
[12:43] weepy: trouble is which ever gets included last ends up with a null refereence
[12:44] weepy: so require("./stat") <=> {}
[12:44] weepy: weird ?!
[12:44] mscdex: why the circular reference? :S
[12:48] dnolen has joined the channel
[12:48] tisba has joined the channel
[12:48] stepheneb has joined the channel
[12:51] weepy: mscdex: ah is that the problem ?
[12:51] weepy: they just both need use each others method
[12:51] weepy: s
[12:52] mscdex: weepy: i can't say for sure. maybe try factoring out the common methods into one file and have both require that instead?
[12:52] weepy: they aren't common methods :)
[12:52] mscdex: mape: reproduced the problem with xterm-color. looking into it now
[12:53] mape: mscdex: Great, and if possible take a look at isaacs package.json and get yours up on npm, makes it a lot easier to use
[12:53] _announcer: Twitter: "biting the bullet and cloning NodeJS..." -- Lukas. http://twitter.com/plukevdh/status/21911386958
[13:00] _announcer: Twitter: "node.js groups have participated. , And I noticed that participate, the translation of the way into the hands nodejs.org of the HTML file Home" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/21911877071
[13:01] trotter has joined the channel
[13:02] femtoo has joined the channel
[13:03] _announcer: Twitter: "node.js Speaking of bugs related to double-byte characters, or garbled 0.1.90 file reading time was up and around." [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/21912032780
[13:03] weepy: mscdex - here's a gist that shows the weird behaviour https://gist.github.com/c1eb5ff84f8361fa98b2
[13:04] Tim_Smart: Circular require?
[13:05] wattz: Good morning
[13:05] Tim_Smart: Nothing weird about that.
[13:05] Tim_Smart: Good Evening.
[13:06] weepy: Tim_Smart - yes true
[13:06] weepy: How do you Break The Ring !
[13:07] Tim_Smart: By rethinking your module layout.
[13:07] _announcer: Twitter: "Node.js I studied English and to read documents" [ja] -- こば@変態生徒会長. http://twitter.com/KOBA789/status/21912369444
[13:10] daleharvey has joined the channel
[13:12] Jimmy203: Any users of mongoose? could someone help me out and see if they can see a problem with mongoose model.properties structure and tell me what I`m setting wrong? http://pastebin.com/neaR943C - thanks :)
[13:13] wattz: argh, time to dive back into lex/yacc
[13:14] FransWillem: weepy: Could you put your code on a pastebin so we could take a look ?
[13:14] _announcer: Twitter: "@ Koba789 If translated to the middle of the HTML github nodejs.org be appreciated committed to public repository somewhere, or to translate in all, the # nodejs_jp and artifacts like Luke can also publish site I think you like it?" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/21912856104
[13:14] nerdEd has joined the channel
[13:14] weepy: FransWillem: thanks - i just pulled one of the methods over -- it's a bit uglier -- but at least there's no circular reference
[13:16] FransWillem: k
[13:17] ben_alman has joined the channel
[13:17] pgriess has joined the channel
[13:17] codemariner_ has joined the channel
[13:17] ben_alman has joined the channel
[13:18] ben_alman has joined the channel
[13:19] jherdman has joined the channel
[13:20] ben_alman has joined the channel
[13:23] badaxx_ has joined the channel
[13:23] maushu: Good news everyone! I just received a message from the future, it seems skynet was coded in node.js which increased multi-tasking efficiency by 350%!
[13:23] davidsklar has joined the channel
[13:24] _announcer: Twitter: "JSSP – JavaScript Server Page engine on top of NodeJS - dzone.com: java - Introduction to Alligator, a new applicat… http://bit.ly/a5wZQ7" -- KhaledE. http://twitter.com/Khaled_E/status/21913585098
[13:24] necrodearia has joined the channel
[13:26] jetienne: skynet =?
[13:27] SamuraiJack has joined the channel
[13:27] wattz: jetienne: watch a terminator movie? :D
[13:28] jetienne: oh ok :)
[13:28] nerdEd has joined the channel
[13:28] FransWillem: Could anyone check for me if test/simple/test-readline.js passes on a recent node install ?
[13:30] crohr has joined the channel
[13:30] blogometer has joined the channel
[13:31] bradleymeck2 has joined the channel
[13:32] _announcer: Twitter: "2nd guest speaker @sh1mmer will be presenting @ #sfwebperf 8/25/10 @ 7PM. He is talking about node.js and DNS. http://meetup.com/u/fq7." -- SF Web Perf. http://twitter.com/sfwebperf/status/21914138346
[13:33] _announcer: Twitter: "node.js - back to the desktop, or typical development on the client and server, with the possibility of transparent migration logic of the last customer" [ru] -- Слава. http://twitter.com/kadeter/status/21914194609
[13:34] ceej has joined the channel
[13:35] piotrekm has joined the channel
[13:35] _announcer: Twitter: "Scale Stack vs node.js vs Twisted vs Eventlet http://post.ly/tJ3v" -- Ivan Ribeiro. http://twitter.com/irr/status/21914361202
[13:36] Tim_Smart: FransWillem: All my tests are passing.
[13:36] blogometer: Good morning.
[13:36] mAritz: good morning to you too, blogometer.
[13:36] FransWillem: Tim_Smart: k, thanks, made a small error, fixed it now :)
[13:37] Tim_Smart: FransWillem: Actually, I hadn't pulled the latest changes
[13:37] Tim_Smart: Yeah, it still passes.
[13:37] piotrekm: hello. Is Date() a reliable way to measure execution time?
[13:38] mAritz: piotrekm: console.time & console.timeEnd uses Date.now, so i guess it is. ;)
[13:40] bradleymeck2: Date.now() is a tiny bit better :/ still not perfect
[13:40] jetienne has joined the channel
[13:40] _announcer: Twitter: "A simple Hpricot Clone for nodejs http://post.ly/tJ76" -- Ivan Ribeiro. http://twitter.com/irr/status/21914721793
[13:44] aubergine has joined the channel
[13:44] Deputaats has joined the channel
[13:46] lianj: a hpricot clone, why?
[13:47] FND: pre-v0.2 raises "No longer accepting filename extension in module names" for require("foo.js") -- has this been reverted (just curious because the "no longer" bit suggests it went back and forth)
[13:48] davidwalsh has joined the channel
[13:48] bradleymeck2: yes you can now do extensions
[13:49] FND: is there any background on why this (apparently) used to work, then was disallowed and later reinstated (really just plain curiosity)
[13:50] bradleymeck2: yes, gist of it was a discussion about whether to allow non-extension files. came out in the end as supporting them
[13:51] FND: thanks
[13:51] hpoydar has joined the channel
[13:52] _announcer: Twitter: "#nodejs is in 0.2 - Updating really now. #win" -- Emerson Macedo. http://twitter.com/emerleite/status/21915560526
[13:52] _announcer: Twitter: "node.js is so beautiful simplicity that AC would cry ... John Maeda" [fr] -- Frédéric Hardy. http://twitter.com/mageekguy/status/21915573799
[13:53] gf3 has joined the channel
[13:53] Deputaats: http://pastebin.com/tg5L2RGF This is my user object building script. Small, but I can't understand, why tmpUser is empty and name,username,uid is logged after tmpUser.
[13:54] Deputaats: How to get it working like I need? (I'm new to node.js)
[13:55] ceej has joined the channel
[13:55] feroz_ has joined the channel
[13:56] _announcer: Twitter: "Node.js the best software for High load apps and real time apps. Comet server and event listener in a couple of code lines!" -- Igor Minyaylo. http://twitter.com/iminyaylo/status/21915792484
[13:57] dnolen has joined the channel
[13:57] bradleymeck2: ummm, what are you trying to do, it shouldnt be empty, but it has properties rather than array indexes filled
[13:58] maushu: Oh boy.
[13:58] maushu: That code can go wrong so many ways.
[13:59] Deputaats: What's your suggestion?
[13:59] maushu: Deputaats: First, regarding your question, you are forgetting that node.js is async.
[13:59] _announcer: Twitter: "From #node.js doc : Node has several strategies for manipulating, creating, and consuming octet streams. - #php #fail" -- Frédéric Hardy. http://twitter.com/mageekguy/status/21916051609
[13:59] jfd_ has joined the channel
[14:00] BryanWB has joined the channel
[14:00] Deputaats: Yes, but could you point me to some good tutorial?
[14:00] maushu: Hmmm.
[14:00] mikeal1 has joined the channel
[14:00] jfd_: Having trouble sending a FD from one process to an other. Someone with good knowledge around the subject?
[14:01] davidwalsh has joined the channel
[14:01] dnolen has left the channel
[14:01] scoates has left the channel
[14:01] maushu: Deputaats: Sorry, I don't know of any tutorial for your specific problem.
[14:01] maushu: But I can try to explain it if you want.
[14:02] maushu: jfd_: What is the problem?
[14:03] Deputaats: Yes, explanation would be good starting point. I just need to get into the right mindset for this..
[14:03] elliottkember has joined the channel
[14:04] jfd_: maushu: I have a TCP server, one main process and one child process. Im listening for connections on the main process. Im pausing the stream on incomming request. I then send the FD to the child process. The child process starts a new Stream(fd) but no data is sent to the new stream
[14:04] Deputaats: I understand - all is happening in parrallel. But sometimes that's not what I need (my example code shows that).
[14:05] maushu: Deputaats: Ok, lets start from the top as if we were node.js reading the program.
[14:05] voodootikigod_ has joined the channel
[14:05] Deputaats: ok
[14:06] blogometer has joined the channel
[14:07] maushu: Deputaats: Node.js enters the forEach (runs the function), runs the first 3 lines of code [lines: 3-5] and then finds the first redis.get, this line basically sends a tcp request to redis but node.js doesn't care and continues, IT DOESN'T RUN THE CALLBACK.
[14:07] _announcer: Twitter: "I just upload my lecture on # # nodejs devinsampa slides are on slideshare - http://bit.ly/cD0VHU" [pt] -- Emerson Macedo. http://twitter.com/emerleite/status/21916607635
[14:07] maushu: Basically it will find a pause later on to run the call back, then it continues on and does the same thing to every redis.get
[14:08] maushu: None of the callbacks have been executed.
[14:08] JAAulde has joined the channel
[14:08] JAAulde: morning all
[14:08] maushu: It then does the console.log and pushes the (empty) tmpUser to the array.
[14:08] _announcer: Twitter: "Willian jtadeulopes @ @ # nodejs slides are in the air - http://bit.ly/cD0VHU" [pt] -- Emerson Macedo. http://twitter.com/emerleite/status/21916702572
[14:09] maushu: Now, it might run the callbacks if redis responded.
[14:09] FND has left the channel
[14:09] Deputaats: ok.
[14:10] Deputaats: I have no idea how to do this in node-way.. In every callback to place anotehr redis call? That sounds not right.
[14:10] JAAulde: bradleymeck: quick question...the JSLint script your wrote the other day...is this the correct syntax for passing the LINT options? http://pastie.textmate.org/private/affozu9y2ax14zowasuogg
[14:10] maushu: Node.js, then executes the next function of forEach (Now it gets even weirder. :o), it does the same thing but thanks to javascript closures the tmpUser inside each callback "changes" to the current tmpUser which is bad if the callbacks have not been called yet.
[14:10] Deputaats: omg
[14:11] maushu: Now not only is async-meggedon, it's var-meggedon.
[14:11] Deputaats: I see..
[14:11] maushu: If your code were a atomic bomb, half of the earth would be gone by now.
[14:12] maushu: Let me show you my quick solution.
[14:12] Deputaats: :)
[14:12] Jimmy203: http://pastebin.com/neaR943C - can anyone see what is wrong with my mongoose model.properties setup?
[14:12] benburkert has joined the channel
[14:13] tisba_ has joined the channel
[14:14] maushu: Deputaats: Wait, I might be wrong about the closure problem since you created the var inside the forEach function.
[14:17] maushu: Deputaats: http://pastebin.com/XeFYwZUe
[14:18] dylang has joined the channel
[14:18] maushu: There might be a problem with closures though, they are my Achilles heel.
[14:19] softdrink has joined the channel
[14:20] maushu: jfd_: This might sound like a stupid question... but have you resumed the stream in the child?
[14:20] jfd_: maushu: yes! :-)
[14:21] maushu: Hmmm.
[14:21] jfd_: maushu: I noticed a strange thing when Im trying to write to the delegated stream. The data is written to childproc.stderr of some strange reason
[14:23] _announcer: Twitter: "@ryah @kadirpekel I've launched my first #nodejs #websockets #mongodb #jquery implementation, http://bit.ly/a3ytbn can you please try it?" -- Erdem Gezer. http://twitter.com/erdemgezer/status/21917698391
[14:23] Deputaats: Looks like recursivity, lol.
[14:23] Deputaats: ok, thanks for your sample.
[14:25] maushu: jfd_: ...weird. Are you sure you are writing into the right fd? xD
[14:26] jfd_: maushu: They have same ID (both in main and in child) when im debugging the value
[14:26] maushu: Deputaats: Basically what happens there is that it waits for each get to finish before doing the next.
[14:26] maushu: You could use mget, I think its called.
[14:26] _announcer: Twitter: "Oh, I see. So you are node.js 0.2.0 update." [ja] -- Yohei Sasaki. http://twitter.com/yssk22/status/21917930724
[14:27] maushu: jfd_: I'm looking for that tutorial about using multi-process http server, the code should help you.
[14:27] Deputaats: I get it now :) thanks :)
[14:28] jfd_: maushu: Im looking at it right now.. Im continue investigating.. Must be something that I miss
[14:29] bradleymeck: jaaulde, you dont use the =true they are assumed false
[14:30] maushu: jfd_: Here is the yahoo: http://developer.yahoo.net/blog/archives/2010/07/multicore_http_server_with_nodejs.html
[14:30] JAAulde: bradleymeck: ah, so if the option is not present it is false, if present it is true
[14:30] JAAulde: great, thanks!
[14:30] bradleymeck: yes
[14:30] JAAulde: it's working very well--we appreciate your help!
[14:32] ajpiano has joined the channel
[14:32] fliebel has left the channel
[14:32] _announcer: Twitter: "We are currently developing a battle system for #NovaInitia based on NodeJS" -- FesterCluck. http://twitter.com/FesterCluck/status/21918369232
[14:33] maushu: ...battle system?
[14:33] maushu has left the channel
[14:33] maushu has joined the channel
[14:33] stepheneb has joined the channel
[14:34] mikeal2 has joined the channel
[14:35] rektide: "node: battlefield ready"
[14:35] rektide: fofofo?
[14:35] maushu: FIRE ALL WEAPONS (at mikeal).
[14:36] _announcer: Twitter: "JSSP – JavaScript Server Page engine on top of NodeJS - http://su.pr/29zdWP" -- Richard Laksana. http://twitter.com/rlaksana/status/21918622984
[14:36] rektide: OHGOD NO
[14:36] rektide: I THOUGHT I'D ESCAPED
[14:36] rektide: I'M DOOMED TO SEE JSP EVERYWHERE
[14:37] danielzilla has joined the channel
[14:37] JAAulde: bradleymeck: how about the predefined arg... is it followed by = and the values?
[14:37] Jimmy203: :) JSSP not jsp :)
[14:37] _announcer: Twitter: "Node.js + Raphaël.js === realtime visual porn." -- Arnout Kazemier. http://twitter.com/3rdEden/status/21918723080
[14:38] jherdman has joined the channel
[14:41] bradleymeck: idk if i actually made that predefined arg take args XD, sec
[14:41] jacobolus has joined the channel
[14:41] Neil_ has joined the channel
[14:42] stepheneb has joined the channel
[14:42] aubergine has joined the channel
[14:42] danielzilla_ has joined the channel
[14:42] JAAulde: i always have to tell it to predefine window, even though I always use the assume browser option--I need to open a bug to Papa Crock
[14:42] _announcer: Twitter: "Blogged "Node.js Japan User Group launched" http://d.hatena.ne.jp/t_43z/20100823/1282574562" [ja] -- Toshihiro Shimizu. http://twitter.com/meso/status/21919050100
[14:42] _announcer: Twitter: "Woke up late. Time for some #nodejs and #mongodb" -- Dan DeFelippi. http://twitter.com/ExpertDan/status/21919066782
[14:43] JAAulde: that happens on the web version too--nothing to do with your script adaptation
[14:46] _announcer: Twitter: "Japan Group node.js "Node.js Japan User Group started - about his sensitivity" http://is.gd/eyPXV" [ja] -- azu. http://twitter.com/azu_re/status/21919287698
[14:46] shreekavi has joined the channel
[14:46] kevm_ has joined the channel
[14:49] matt_c_ has joined the channel
[14:50] Yuffster has joined the channel
[14:51] creationix has joined the channel
[14:51] dantalizing has joined the channel
[14:52] aheckmann has joined the channel
[14:53] _announcer: Twitter: "@tdgi It's for #nodejs, so it's V8's ECMA5 + the node apis." -- Tim Caswell. http://twitter.com/creationix/status/21919833613
[14:55] _announcer: Twitter: "#Java is painful after writing code to run on #nodejs all weekend." -- Justin Shoffstall. http://twitter.com/jmshoffs0812/status/21919947021
[14:56] aubergine_ has joined the channel
[14:57] _announcer: Twitter: "@ExpertDan Hey, do you know about some tutorials for #nodejs ? I'm starting" -- alejandro. http://twitter.com/ramonlechuga/status/21920119832
[14:58] Blink7 has joined the channel
[14:58] bradleymeck: jaaulde, just hooked it up on the gist, http://gist.github.com/540535 , takes argument=1,"2",'3' style now
[14:58] bradleymeck: not sure if it works, but its sending it to jslint properly
[14:58] JAAulde: bradleymeck: awesome
[14:58] JAAulde: thanks!
[14:59] shreekavi has left the channel
[15:00] _announcer: Twitter: "@jsconf Just a heads up- the nodejs link on that site is wrong." -- Nick Campbell. http://twitter.com/ncb000gt/status/21920273858
[15:00] jherdman: FYI Torontorians, I've started a JavaScript meet up group (http://meetup.com/torontojs). Come on out. First meeting is Sept. 15
[15:01] dnolen_ has joined the channel
[15:01] marek_z has joined the channel
[15:02] _announcer: Twitter: "@ Emerleite where's the slide for the comparison of performance NodeJS # that was on the slideshow?" [pt] -- diogobaeder. http://twitter.com/diogobaeder/status/21920450302
[15:06] _announcer: Twitter: "arghh vacation, cool stuff happens and you are none the wiser , check out rest-mongo http://bit.ly/dcCS7k #nosql #mongodb #nodejs" -- Ori A Pekelman. http://twitter.com/OriPekelman/status/21920731770
[15:07] bradleymeck: connect's router's parameter passing code confuses moi
[15:08] gwoo has joined the channel
[15:09] _TS has joined the channel
[15:13] gerad has joined the channel
[15:14] rixius has joined the channel
[15:14] rixius has left the channel
[15:14] JimBastard has joined the channel
[15:16] JimBastard: so wait omgf3
[15:16] omgf3: mhmm
[15:16] JimBastard: can you add anyone you want to a github org?
[15:16] JimBastard: without confirmation?
[15:16] JimBastard: if so, im making up the best consulting company ever
[15:17] _announcer: Twitter: "NodeJS no Dev In Sampa http://ff.im/pzKT0" -- Emerson Macedo. http://twitter.com/emerleite/status/21921450009
[15:17] badaxx has joined the channel
[15:17] JimBastard: #jquery-ot Cannot join channel (+b) - you are banned
[15:17] bradleymeck: we should all use globals and gotos, its faster, that kinda company?
[15:17] JimBastard: bradleymeck: we believe in leveraging team synergy into tiger team matrices
[15:17] JimBastard: rawwrrr
[15:18] bradleymeck: lol
[15:18] JimBastard: best work day ever
[15:18] JimBastard: i love my new job
[15:18] marek_z: what is it?
[15:18] JimBastard: nodejitsu!
[15:19] _announcer: Twitter: "looking for a web integration testing solution for nodejs/expressjs, any ideas? cucumber perhaps? #asktwitter" -- Robbie Clutton. http://twitter.com/robb1e/status/21921630052
[15:20] JimBastard: i think you have to confirm to be in an org
[15:24] marshall_law has joined the channel
[15:24] jetienne has joined the channel
[15:27] stellar has joined the channel
[15:28] phoenix24 has joined the channel
[15:28] phoenix24: HI all
[15:28] bradleymeck: hello~
[15:29] phoenix24: the nodejs api function, fs.fileWatch monitors the changes made to a file
[15:29] phoenix24: is there any similar function for monitoring changes to the directories ?
[15:30] isaacs has joined the channel
[15:30] creationix: phoenix24: have you tried watchFile against a directory
[15:30] creationix: I seem to remember it works on some oses
[15:31] bradleymeck: oh boy oh boy, my router compiler is running fine against tests
[15:31] phoenix24: creationix: yeah, i did it didn't work against directory
[15:31] _TS: JimBastard Im interested in nodejitsu what is it?
[15:31] creationix: phoenix24: what os?
[15:32] cferris has joined the channel
[15:32] JimBastard: _TS: node.js hosting and ninja training
[15:33] mscdex: anyone here do bulk sms messaging?
[15:33] phoenix24: creationix: my fault, it works; (ubuntu, 9.10 - kernel 2.6.31)
[15:33] JimBastard: creationix: i finally got wheat going btw, sorry for the support issue meltdown
[15:33] JimBastard: im gonna do a release for our blog that is wheat 100% vendorered
[15:33] creationix: phoenix24: cool, glad to hear
[15:33] JimBastard: so you can just clone and go
[15:33] _TS: When willl it be available?
[15:33] creationix: JimBastard: neat
[15:33] _TS: How much?
[15:33] creationix: JimBastard: so where is my beta account ;)
[15:33] JimBastard: _TS: we've been running private alpha for about 3 months, we should be going beta end of week
[15:34] JimBastard: cost wont be too crazy
[15:34] phoenix24: if you don't mind, what project are you guys talking about ?
[15:34] _TS: Any examples so far?
[15:34] JimBastard: everyone gets their own server too, with ip address, and full port access
[15:34] creationix: JimBastard: that sounds like fun
[15:34] _TS: sounds cool good luck
[15:35] creationix: JimBastard: for years I wanted to work at slicehost
[15:35] wink_: i always knew you were a slut, giving everyone full port access..
[15:35] JimBastard: _TS: i think http://chat.nodejitsu.com
[15:35] JimBastard: im not sure, we took a bunch of shit down over the weekend to prep
[15:35] JimBastard: theres a few sites being hosted
[15:35] JimBastard: the software is far along
[15:35] JimBastard: creationix: we are using rackspace exclusively right now
[15:36] JimBastard: good ole boys, as bradleymeck says
[15:36] creationix: heh, I use linode for most my sites
[15:36] creationix: so that's rackspace too
[15:36] creationix: howtonode.org is on mediatemple
[15:36] webr3: backwards compliment : node.js is the first tech I've worked with in a long time where I haven't had to ask a series of "wtf" based questions - doesn't happen often
[15:36] steadicat has joined the channel
[15:36] JimBastard: webr3: you are web dev yeah?
[15:36] JimBastard: jquery?
[15:37] creationix: webr3: :)
[15:37] JimBastard: javascripts?
[15:37] webr3: mm a couple of techs :)
[15:37] jakehow has joined the channel
[15:37] JimBastard: coffee time
[15:37] webr3: good thinking
[15:38] Sembiance: Greetings :)
[15:39] [[zz]] has joined the channel
[15:41] webr3: JimBastard, fyi though, yup I'm a developer / software architect - do quite a few langs and techs, mainly develop in ecmascript v3, haxe, php, java, spend a lot of time on web architecture stuff and a lot of time around various w3c groups and various web techs, heavily "in to" sem web, read write web of data, rest, all the html and webapps specs and all related :)
[15:41] mscdex: mape: found the fix, and it's pretty easy
[15:41] mape: Nice :)
[15:42] wink_: anyone wanna help me debug a c binding?
[15:42] mscdex: i'll add a note about the fix in the readme
[15:43] mscdex: mape: basically you have to add to the terminal capability "database"
[15:44] mscdex: 2 or 3 commands total
[15:44] mape: Ah k, any chance of adding the updated version to npm? :)
[15:44] mscdex: heh
[15:44] mscdex: perchance
[15:44] stellar has joined the channel
[15:44] mscdex: is npm stable yet? :-p
[15:44] mape: I'm using it for all my stuff
[15:44] isaacs: mscdex: it's stabler than ever.
[15:44] mscdex: hehe
[15:45] mape: Haven't installed something manually since well, ncurses, since the one isaacs added is broke :P
[15:45] isaacs: mscdex: the same can't be said for all the packages in its registry, though ;)
[15:45] isaacs: mape: ncurses is broke?
[15:45] hellp has joined the channel
[15:45] femtoo has joined the channel
[15:45] wink_: anyone know where/who should i reach out to so i can beg for some help debugging this binding?
[15:45] sudoer has joined the channel
[15:45] isaacs: mape: if you have a fix, i'll add you as an owner, or anyone really
[15:46] mape: isaacs: Well mscdex is the creator of ncurses :P
[15:46] bradleymeck: wink_ whats going wrong?
[15:46] isaacs: oh, ok, kewl
[15:46] isaacs: mscdex: make an npm user account.
[15:47] maushu: mscdex created ncurses? Since when? :p
[15:47] mape: isaacs: http://gist.github.com/545739
[15:47] mscdex: since a long time ago :S
[15:47] mscdex: the binding anyway
[15:47] wink_: bradleymeck: its re: orlandov's mongo binding, here is the description i emailed him last week: http://pastebin.com/rGpaN9Us
[15:48] mscdex: a much older guy maintains ncurses proper
[15:48] wink_: i cant explain it, and i cant find this damn bug to save my life
[15:48] maushu: mscdex: You don't look like Thomas Dickey.
[15:48] maushu: :p
[15:48] wink_: it should be easy to reproduce, and anyone that wants to look at it, i'll make sure we get the tests set up to make it happen
[15:48] mscdex: maushu: i do when i work with ncurses
[15:48] mscdex: maushu: it's uncanny
[15:48] EyePulp has joined the channel
[15:48] maushu: ...
[15:49] isaacs: mape: works for me
[15:49] wattz: ACTION pokes mscdex
[15:49] mape: isaacs: Hmm strange, OSX?
[15:49] maushu: Don't you dare mscdex.
[15:49] isaacs: mape: yep
[15:49] isaacs: mape: but if there's a newer version, i'd love to get it into npm's registry, even if mscdex refuses. ncurses is awesomely useful.
[15:49] maushu: mape: It also works on cygwin.
[15:49] mscdex: wattztf
[15:50] maushu: DAMMIT.
[15:50] mape: maushu: I have no reason whatsoever to touch Windows.
[15:51] maushu: ...you perv! :o
[15:52] bradleymeck: creationix im a bit confused on some of the router tests for connect, is that you or tj?
[15:55] tj_ has joined the channel
[15:55] _announcer: Twitter: "A simple test #nodejs app just took down my dedicated server. Possible issues w/ node-mongodb-native (which was included but not used)?" -- Dan DeFelippi. http://twitter.com/ExpertDan/status/21924027155
[15:55] _announcer: Twitter: "ooking forward to the peepcode node.js screencast http://bit.ly/dltFiR" -- dagda1. http://twitter.com/dagda1/status/21924055527
[15:56] maushu: So, any html parser?
[15:56] eazyigz has joined the channel
[15:57] bradleymeck: wink_ bson.cc 326, key or id is null i think
[15:57] bradleymeck: it*
[15:57] _announcer: Twitter: "@ExpertDan I use #nodejs with node-mongodb-native with no problems." -- Steve Streza. http://twitter.com/SteveStreza/status/21924160482
[15:58] visnup has joined the channel
[15:59] robotarmy has joined the channel
[15:59] robinduckett has joined the channel
[15:59] steadicat has joined the channel
[15:59] JimBastard: webr3: 10-4
[15:59] JimBastard: was getting the ice coffee
[16:01] _announcer: Twitter: "@ExpertDan thanks, so your are building your own nodejs server hosting?" -- alejandro. http://twitter.com/ramonlechuga/status/21924467142
[16:02] eazyigz has joined the channel
[16:02] wink_: bradleymeck: even when i guarantee it isnt null it still dies
[16:02] bradleymeck: same spot?
[16:03] mscdex: yay repo updated
[16:03] rickbradley has left the channel
[16:03] ph^ has joined the channel
[16:03] wink_: yeah, in fact the size of the dataset seems to be the key, but i cant spot the mistake
[16:03] wink_: the first record it parses is the first record in both scenarios, but once it breaches a threshold it fails to parse it
[16:03] wink_: and v8 pukes
[16:04] bradleymeck: odd, its coming from setting an v8::Object's property with incorrect values
[16:04] bradleymeck: v8 can get stuff much larger than 500k so i think its something about what it is being given
[16:04] wink_: oh i agree, i just cant find it :(
[16:05] wink_: i'd love to have some extra eyes if you're interested i'll get everything together you'd need to reproduce it
[16:05] bradleymeck: mmm hex_oid doesnt seem to have a guaranteed \0 on end, im kinda busy, just taking glances
[16:06] wink_: it does, the hex string is guaranteed to be 24 chars
[16:07] wink_: and the converter manually terminates
[16:07] bradleymeck: didnt know it was sure to be 24
[16:07] wink_: bson_oid_to_string guarantees null termination
[16:07] _announcer: Twitter: "wondering whether any of the node.js database drivers (whether RDBMS or NoSQL) is actually mature enough for production use" -- Stefan Tilkov. http://twitter.com/stilkov/status/21924890894
[16:08] wink_: http://pastebin.com/frhtjMNu
[16:08] wink_: so even if it did get truncated ( which i dont believe it does ) it should still create ok, it'd just be a broken value
[16:10] mscdex: the npm installer gives a warning about auto-linking directories.lib being deprecated?
[16:10] mscdex: :S
[16:10] isaacs: mscdex: yeah, don't rely on that.
[16:10] isaacs: it's ok, but a lot of people use that as a way to delve into a package's guts to reuse its modules.
[16:11] isaacs: mscdex: i'm trying to encourage people to use the "modules" hash instead, since it's cleaner and more explicit.
[16:11] mscdex: i thought that was saying the npm installer was using directories.lib still
[16:11] mscdex: heh
[16:11] wink_: bradleymeck: if you look on line 235 of bson.cc, thats where its likely failing but i dont know enough v8 to be able to sort that out :<
[16:11] isaacs: yeah, it's not a harmful thing. just a reminder to not rely on it, that's all.
[16:11] robotarmy has joined the channel
[16:12] wink_: bradleymeck: however when i replace that line to just create a string value with the key in it, it still blows up
[16:12] cloudhead has joined the channel
[16:14] mscdex: do i have to increase the package version if i changed something like my email?
[16:14] shimondoodkin has joined the channel
[16:15] streampunk has joined the channel
[16:15] wink_: bradleymeck: when i alter that function to just return a handle to a string value, it dumps out a little later with that weird statement that isnt really an error:
[16:15] bradleymeck: really wish vows worked well with node-sinspector
[16:15] wink_: module:422
[16:15] wink_: var compiledWrapper = process.compile(wrapper, filename);
[16:15] wink_: i dunno what that is trying to tell me :P
[16:15] JimBastard: The Sin Specter !
[16:16] bradleymeck: means there is a problem with the .node and dlopen probably
[16:17] wink_: hm, im not sure how, it dumps out there long after it's done running through that code
[16:17] mape: mscdex: Yup
[16:18] proppy has joined the channel
[16:18] proppy: mscdex: nice to see readline is given more love :)
[16:19] wink_: bradleymeck: its the EmitResults call on 256, its never coming back out of that
[16:19] mscdex: proppy: yeah finally got tired of home and end not working in putty :p
[16:19] mscdex: mape: ah ok, thanks
[16:20] proppy: mscdex: as I was for meta-f meta-b :)
[16:20] proppy: I still miss meta-d thought
[16:20] benburkert has joined the channel
[16:22] codemariner has joined the channel
[16:22] isaacs: ryah: you around?
[16:23] CIA-77: node: 03Brian 07master * rd9eb649 10/ lib/readline.js : Fix home/end keys in repl for putty/xterm. - http://bit.ly/a38By6
[16:24] a4k7 has left the channel
[16:25] ph^ has joined the channel
[16:25] gerad has joined the channel
[16:25] wink_: bradleymeck: yeah its definitely the Emit call thats going nuts, but i dont know how to find out why, especially since it works on a slightly smaller data set
[16:26] bradleymeck: idk
[16:26] wink_: what is the best way to inspect a v8 Local ?
[16:27] _announcer: Twitter: "Node.js create a simple web server on my own to see happening .. Interesting;; yeoksina WebSocket my own server, I'm going to make it. :-)" [ko] -- 김민태. http://twitter.com/ibare/status/21926178009
[16:27] isaacs: ryah: i have an actual use for the LiveEdit "findScript" stuff.
[16:27] bradleymeck: did that get removed?
[16:28] mscdex: hrm
[16:28] mscdex: "npm error encrypting auth Could not find key"
[16:28] mscdex: s/find/get/
[16:28] hansek has joined the channel
[16:28] isaacs: mscdex: you don't have a private key in ~/.ssh?
[16:29] jetienne: q. http client on a refused port... what should be notified ?
[16:29] mscdex: isaacs: this is a bare, vanilla osx machine
[16:29] isaacs: mscdex: it uses your id_dsa, id_rsa, or identity to encrypt the authorization information in the npmrc file.
[16:29] rkieffer has joined the channel
[16:29] isaacs: mscdex: ok. do an ssh-keygen
[16:29] mscdex: isaacs: done
[16:29] bpot has joined the channel
[16:30] isaacs: mscdex: expect a warning about sending your auth info over an insecure channel. until node's https is reliable again, that's how it has to be, sadly.
[16:30] bradleymeck: jetienne, rephrase?
[16:31] wink_: bradleymeck: is there any chance part of that object is being garbage collected? it seems as though things about it are changing
[16:31] hansek has left the channel
[16:31] isaacs: mscdex: the different between npm's authorization over http and everyone else's auth over http is that npm at least complains about it being insecure.
[16:31] bradleymeck: wink_ if it is persistent and set to weak, yes
[16:31] jetienne: bradleymeck: i do httpclient toward a tcp host:port... but nobody is listening on this host:port... "error" is not notified on http.createClient()... so i wonder what is ?
[16:31] bradleymeck: i know i have to make resurrectors for my objects that i do that to T_T
[16:31] _announcer: Twitter: "Never knew an "Alligator" could be so usefulfor serverside when combined with NodeJS & Javascript. http://icio.us/rex24s" -- phoenix2life. http://twitter.com/phoenix2life/status/21926485221
[16:31] wink_: bradleymeck: how do i go about that? its definitely declared Persistant
[16:32] creationix has joined the channel
[16:32] bradleymeck: is it weak, wink_
[16:32] wink_: so Weak instead of Persistent ?
[16:32] huyhong has joined the channel
[16:32] wink_: or am i misunderstanding you
[16:32] wink_: what flags it as weak
[16:32] mscdex: isaacs: how should i go about switching the maintainer of the ncurses npm package to me and linking to the project's github head/master url?
[16:33] bradleymeck: Persistent has a makeWeak method
[16:34] mscdex: that way the package will always be current
[16:34] aubergine_ has joined the channel
[16:34] dmcquay has joined the channel
[16:34] mscdex: until enough people use it to start adding stable versions
[16:34] isaacs: mscdex: for the first one, ask the current owner to add you and remove themselves (done), and for the second, add this to your package.json: "repository": {"type":"git", "url" : "http://github.com/mscdex/ncurses.git"}
[16:34] wink_: bradleymeck: so if im not calling MakeWeak then it should never get collected? because its not being explicitly called
[16:34] wink_: unless there is something implicit im missing
[16:34] isaacs: mscdex: but that won't automatically push your package on each commit or anything
[16:34] bradleymeck: yes
[16:35] bradleymeck: unless you dispose it yourself
[16:35] isaacs: mscdex: for the most part, packages in the npm registry are not published until they're fairly stable.
[16:35] isaacs: mscdex: but you can use the npm github hook that bradleymeck made.
[16:35] wink_: it is being disposed explicitly
[16:35] wink_: but it is still behaving as though its getting collected
[16:35] wink_: or at least parts of it are
[16:35] bradleymeck: isaacs idk if that thing is still running, no one was using it so havent checked in a while
[16:36] isaacs: ACTION really really really likes explicit publish
[16:36] FransWillem: ryah: There ?
[16:36] isaacs: then, basically, the npm one is the "stable" one, and the github one is the "test" one
[16:36] bradleymeck: well the github post only grabs tags and a latest
[16:36] mscdex: isaacs: so the registry automatically stores a copy of the tarball at the time of publish?
[16:36] isaacs: mscdex: yes
[16:37] isaacs: mscdex: it actually uploads it to the registry itsefl
[16:37] mscdex: isaacs: but if you specify a url?
[16:37] isaacs: mscdex: even if you do: npm publish http://github.com/mscdex/ncurses/tarball/master
[16:37] isaacs: mscdex: it'll download the url, verify that it's a package, and then publish it as an attachment
[16:37] mscdex: hrm
[16:37] mscdex: i still say it'd be nice to have a symlink-like functionality
[16:38] mscdex: :)
[16:38] mscdex: to point to head
[16:38] jetienne: bradleymeck: my bad. i got confused by my 3 level of http server
[16:38] isaacs: mscdex: npm install http://github.com/mscdex/ncurses/tarball/master
[16:38] isaacs: mscdex: it wouldn't be that hard to do some kind of "npm git-install pkg", to fetch the latest tarball from the github url if there is one.
[16:39] mscdex: isaacs: that's longer than, "npm install ncurses@master"
[16:39] mscdex: :p
[16:39] isaacs: mscdex: just haven't thought it through. feel free to post an issue describing how you'd like that to wokr.
[16:40] isaacs: ha, it seems that in autolinking the lib folder, i got too aggressive with the async IO...
[16:43] isaacs: hey, what's that trick to change the number of open file descriptors that your OS will allow?
[16:44] mAritz: how would i best get an intersection of an arbitrary amount of arrays that contain unsorted strings?
[16:45] daleharvey: ulimit
[16:45] daniellindsley: isaacs: ``ulimit -n 2048``
[16:45] stellar has joined the channel
[16:46] stellar has left the channel
[16:46] FransWillem: mAritz: Probably do it two at a time, e.g. for three arrays, first do 1 intersected with 2, then do (1 intersected with 2) intersected with 3 (could speed this up by always doing two at a time, e.g. with 4 do (1 int 2) (3 int 4), then (1 int 2) int (3 int 4))
[16:47] FransWillem: mAritz: Hmm, got a few mins? I'll write you something :p (/me likes algo challenges)
[16:47] admc has joined the channel
[16:47] mscdex: isaacs: ulimit -n unlimited
[16:47] TooTallNate has joined the channel
[16:47] mscdex: isaacs: if you want unlimited that is
[16:47] mAritz: FransWillem: wouldn't that first example neglect intersections between 1 and 3 if it isn't in 2?
[16:48] mAritz: FransWillem: sure, go ahead. but i can't guarantee i'll use it. there seem to be a few good starting points here: http://stackoverflow.com/questions/1885557/simplest-code-for-array-intersection-in-javascript
[16:48] FransWillem: mAritz: What exactly do you mean with intersections? all items that appear in all arrays ?
[16:48] mscdex: ok, seems like the package updated now
[16:48] mAritz: FransWillem: yes
[16:48] isaacs: mscdex: sweet
[16:48] isaacs: mscdex: yep, i see the 0.0.2
[16:48] isaacs: thanks!
[16:48] FransWillem: mAritz: Let's say you have a, b, c, and you take x=a int b, then x int c is obviously equal to a int b int c, seeing as x only contains the elements that are in both a and b :)
[16:48] sudoer has joined the channel
[16:49] mscdex: still hoping for that @master functionality hehe, especially since the upstream author generally puts out weekly patches that i integrate and upping the version each week would be kinda crazy
[16:49] mAritz: FransWillem: had a bit of brainlag there... :D
[16:49] FransWillem: mAritz: gimme a few mins :)
[16:50] mAritz: suddenly it doesn't seem so difficult anymore... i had this weird misunderstanding in my though process that works out to produce a paradox :D
[16:51] mAritz: ACTION gets himself an ice while FransWillem codes for him.
[16:51] FransWillem: ;)
[16:53] Tobsn has joined the channel
[16:54] mscdex: node.js rules!
[16:55] JimBastard: go go node.js
[16:55] FransWillem: mAritz: Do you need the absolute fastest implementation :p?
[16:56] sudoer has joined the channel
[16:56] aubergine has joined the channel
[16:57] nerdEd has joined the channel
[16:57] mjr_ has joined the channel
[16:58] deepthawtz has joined the channel
[16:58] creationix: Anybody know how to implement a good cache?
[16:58] creationix: I want something that can hold N slots
[16:58] voodootikigod_: cache = {}
[16:58] voodootikigod_: :)
[16:58] tj_: redis?
[16:58] creationix: voodootikigod: if only it was that simple
[16:58] voodootikigod_: memcached
[16:58] mAritz: FransWillem: yes, please :D
[16:58] creationix: tj_: no, I need it in pure node
[16:58] wink_: bradleymeck: it's starting to look like something is being garbage collected that shouldnt be, im getting the thing to crash at different spots which makes it seem like a timing (probably gc) oddity
[16:59] gwoo has joined the channel
[16:59] FransWillem: creationix: cache={}, with a seperate
[16:59] wink_: is there a way i can disable gc for a run to confirm?
[16:59] gwoo has joined the channel
[16:59] FransWillem: creationix: cache={}, with a seperate queue for handling deletions when it gets too big
[16:59] creationix: FransWillem: I've got something like that now
[16:59] creationix: I think it's LRU
[17:00] creationix: but it really dies under certain patterns where I'm reading N + K records in a loop
[17:00] _announcer: Twitter: "Bookmarked: "Introducing Nitrode - A dedicated HTTP server - nodejs | Google Groups" http://icio.us/vnyza4" -- Masakazu . http://twitter.com/studiomaestro/status/21928325087
[17:00] creationix: so the cache gives zero benefit, but signaficant overhead
[17:01] creationix: hmm, maybe I need a MRU cache instead of LRU
[17:01] mjr_: creationix: what patterns make it slow?
[17:01] FransWillem: creationix: How are you implementing that priorityqueue? did you try a linked list of values, then a lookup={} to lookup name to node, and node.name to lookup the other way ?
[17:01] creationix: mjr_: so, suppose I have 500 records in an expensive store
[17:01] creationix: mjr_: but my cache can only hold 300 records
[17:01] voxpelli has joined the channel
[17:01] creationix: and my query loops over all 500 records looking for certain things
[17:01] creationix: an LRU cache flushes itself constantly
[17:02] inimino: http://en.wikipedia.org/wiki/Cache_algorithms
[17:02] creationix: inimino: yeah, I'm reading that
[17:02] creationix: under MRU it says "repeated scans over large datasets"
[17:02] creationix: that sounds like what I'm doing
[17:02] siculars has joined the channel
[17:02] FransWillem: creationix: Mind you that any cache algorithm with an array will perform horrible on JS :/
[17:03] creationix: FransWillem: I'm not using arrays and shift, but I'm not sure my implementation is much faster
[17:03] konobi: creationix: not been playing with Apricot?
[17:04] creationix: konobi: I tried it
[17:04] creationix: couldn't use it
[17:04] creationix: you can't nest queries
[17:04] FransWillem: creationix: Seriously, try a linked-list approach, where to remove "old" elements you pop the front, to add elements you add to the back, and to update elements you take them out and add them to the back again. And obviously a simple object to lookup name->node, that should do exactly what you described you wanted with only a little overhead.
[17:04] konobi: ah
[17:04] creationix: FransWillem: no, my problem isn't the implementation, but my algorithm
[17:04] creationix: my cache is getting zero hits
[17:05] FransWillem: mAritz: http://pastebin.com/nDcF7WYf, haven't tested if it really is the fastest I could do, but it doesn't use shift or things like that, so it should be pretty good.
[17:05] sh1mmer has joined the channel
[17:05] isaacs: if you get an EMFILE is there a way to be alerted when it's possible to open files again?
[17:05] russell_h: creationix: /window 6
[17:05] russell_h: er
[17:05] russell_h: sorry
[17:05] creationix: heh
[17:05] isaacs: i'm just doing a 200ms timeout and trying again, and that seems to work, but i'm wondering if i could get away with less of a timeout.
[17:05] creationix: inimino: could you implement Belady's Algorithm got me ;)
[17:05] FransWillem: creationix: So basically you're requestin N items after eachother on a cache with room for 1 + 1
[18:02] gbot2: noname_: 2
[18:02] noname_: node> 1 + 1
[18:02] noname_: js> fs
[18:02] gbot2: noname_: Error: ReferenceError: fs is not defined
[18:02] konobi: http://www.whatwg.org/specs/web-socket-protocol/
[18:02] noname_: js> require('fs');
[18:02] gbot2: noname_: Error: ReferenceError: require is not defined
[18:02] konobi: section 7.2
[18:03] FransWillem: js> function getGlobal() { return function() { return this; }(); }; Object.keys(getGlobal());
[18:03] gbot2: FransWillem: Error: TypeError: Object.keys is not a function
[18:03] FransWillem: js> function getGlobal() { return function() { return this; }(); }; var ret=[]; var g=getGlobal()); for (var k in g) ret.push(k); ret;
[18:03] gbot2: FransWillem: Error: SyntaxError: missing ; before statement: function getGlobal() { return function() { return this; }(); }; var ret=[]; var g=getGlobal()); for (var k in g) ret.push(k); ret; ...........................
[18:04] FransWillem: ah nvm :p
[18:05] creationix: patientfox: there are several bots, but I'm not sure who has the code
[18:05] joshholt_ has joined the channel
[18:06] Tobsn: what was that lib called with which you can reload nodejs on the fly
[18:06] Tobsn: nodepush or so?
[18:06] Tobsn: cant remember...
[18:06] creationix: Tobsn: isaacs has one
[18:06] creationix: supervisor I believe
[18:06] Tobsn: hmm there was another one
[18:06] isaacs: one what?
[18:06] isaacs: oh, yeah
[18:06] isaacs: nodules has that functionality, to
[18:07] isaacs: supervisor just kills and restarts your program if it changes
[18:07] isaacs: (and if you tell it to watch)
[18:07] _announcer: Twitter: "@tjholowaychuk - thinking of using nodejs for 1tomany video chat. question is, is nodejs a viable solution?" -- tiri_b. http://twitter.com/tiri_b/status/21932468750
[18:07] patientfox: creationix: ah.. bummer.. yeah wanting to whip up a coffeescript eval bot.. looking for some already-done stuff like sandboxing to disallow node API access, etc
[18:08] mjr_: TooTallNate: req.connection.destroy()
[18:08] JimBastard: real men start up their node.js apps to serve requests in real-time
[18:08] creationix: JimBastard: do you know any of the irc bot sources for patientfox?
[18:08] JimBastard: sup patientfox
[18:08] JimBastard: what you trying to do?
[18:08] Tobsn: hmm there was one that reloads on the fly without killing it
[18:09] creationix: Tobsn: as in break the node require cache or something?
[18:09] JimBastard: do you want an irc bot or sandboxing stuff?
[18:09] patientfox: looking for a solid node.js-backed irc lib
[18:09] patientfox: that includes the sandboxing stuff for eval
[18:09] Tobsn: it just reloaded the script
[18:09] Tobsn: on changes
[18:09] patientfox: in this case im going to wire up the coffeescript repl
[18:09] JimBastard: well patientfox , let me link you to a few irc bots
[18:09] Tobsn: i cant remember the name but it was something super obvious
[18:09] JimBastard: that should get yous tarted
[18:09] patientfox: JimBastard: please, thanks
[18:09] Tobsn: like nodepush or noderehash or so
[18:09] creationix: Tobsn: but how did it reload the script?
[18:09] Tobsn: idk, dont ask me ;)
[18:10] creationix: you can't re-require a file in node, it returns the cached version
[18:10] TooTallNate: mjr_: thanks
[18:10] JimBastard: http://github.com/gf3/Jerk
[18:10] JimBastard: http://github.com/gf3/protobot
[18:10] JimBastard: http://github.com/bmeck/_utility
[18:10] creationix: Tobsn: not sure, I do know that it's very hard to get right and the safest thing is to restart the server on changes
[18:11] JimBastard: patientfox: then for sandboxing, there is http://github.com/fictorial/jefe . i've never used that though
[18:11] patientfox: awesome, thanks
[18:11] Tobsn: hmm fuck
[18:11] patientfox: yeah Jerk looks pretty simple
[18:12] Tobsn: i really cant find it
[18:12] Tobsn: we even talked about it here
[18:12] Tobsn: like a month ago
[18:12] JimBastard: patientfox: if you are getting started with node stuff, you should check out http://github.com/marak/ and http://github.com/cloudhead/
[18:12] JimBastard: some good repos on there
[18:13] patientfox: thanks
[18:13] siedrix has joined the channel
[18:14] JimBastard: python and gcc take 30 years to install on cygwin
[18:14] Jimmy203 has joined the channel
[18:15] cardona507 has joined the channel
[18:17] JimBastard: http://gist.github.com/546001
[18:17] JimBastard: 2 [main] python 1316 C:\cygwin\bin\python.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\python2.6\lib-dynload\itertools.dll to same address as parent: 0x550000 != 0x5D0000
[18:17] JimBastard: :-(
[18:18] daniellindsley: JimBastard: Can I ask why cygwin instead of the MSI? http://python.org/ftp/python/2.7/python-2.7.msi
[18:18] JimBastard: hey daniellindsley
[18:19] JimBastard: daniellindsley: i tried the msi, but cywgin couldnt find it
[18:19] JimBastard: im trying to get node working on windows 7 with cygwni
[18:19] JimBastard: fucking spelling
[18:19] daniellindsley: JimBastard: The binary or the libraries?
[18:19] drudge: :X
[18:19] JimBastard: daniellindsley: im sorry
[18:19] JimBastard: ?
[18:19] blogometer has joined the channel
[18:20] JimBastard: i downloaded and ran that msi, that didnt work, so i installed python and gcc through the cygwin installer
[18:20] JimBastard: which has a gui for doing this
[18:20] JimBastard: after that, i tried ./configure and it failed with that message
[18:20] JimBastard: unsure what to do nexgt
[18:20] blogometer: My node-mysql queries keep bombing out with:
[18:20] blogometer: Error: Stream is not writable
[18:21] JimBastard: blogometer: are you trying to cross the streams?
[18:22] JimBastard: ACTION says, "Never cross the streams."
[18:22] daniellindsley: JimBastard: The MSI should have worked. You likely just needed to drop ``C:\Python2x`` on your path. I believe there's a registry variable to drop to make it happen automatically.
[18:22] blogometer: Only when I see the Staypuff Marshmellow Man.
[18:22] blogometer: Otherwise, no.
[18:22] JimBastard: daniellindsley: ill try that
[18:22] JimBastard: daniellindsley: but am i in some intermediate state now that i have installed python via cygwin
[18:22] blogometer: Is there something to do with streams for reals?
[18:23] JimBastard: blogometer: sorry, making ghost busters joke. i have no idea. use couch, fuck mysql
[18:23] blogometer: Can't.
[18:23] blogometer: This is an existing database.
[18:23] aurynn: Don't use mysql. :)
[18:23] blogometer: I'm not able to change that now.
[18:23] JimBastard: yeah, sucks
[18:23] femtoo has joined the channel
[18:24] blogometer: I wish there way a way to catch the exception. The server just bombs out.
[18:24] mikeal1 has joined the channel
[18:25] blogometer: Is there some sort of universal exception handling hook in Node.js?
[18:25] JimBastard: blogometer: yeah
[18:25] JimBastard: one sec
[18:26] blogometer: Sweet.
[18:26] drudge: process.addListener("uncaughtException",
[18:26] ironfroggy_ has joined the channel
[18:26] JimBastard: blogometer: http://github.com/indexzero/node-experiments/tree/master/uncaught-exception/
[18:26] JimBastard: do yourself a favor, and read that README
[18:26] JimBastard: before you shoot yourself in the face
[18:26] JimBastard: :p
[18:26] EyePulp: heh
[18:26] JimBastard: While handling the uncaughtException event can keep your application running, it may put it in an unexpected state which may cause more exceptios than you originally thought.
[18:27] JimBastard: i cant stress that enough
[18:27] JimBastard: lol spelling
[18:27] JimBastard: fail indexzero
[18:27] blogometer: JimBastard: Understood.
[18:27] mAritz: is there a fast sorting module for node.js? (sorting by number, string or boolean is enough)
[18:27] blogometer: But, that handle works now? It says experiment, but I assume that it works.
[18:27] JimBastard: mAritz: native javascript arrays?
[18:27] blogometer: [].sort()
[18:28] blogometer: It is very, very fast.
[18:28] JimBastard: blogometer: yeah it works
[18:28] JimBastard: that repo just doesnt represent any projects
[18:28] blogometer: Thanks.
[18:28] mAritz: nah, objects
[18:28] blogometer: I figured. A demo. Thanks.
[18:28] mAritz: wait
[18:28] mAritz: arrays with objects in them... so sort() will do fine... doh
[18:28] bmavity has joined the channel
[18:29] mAritz: ACTION needs more coffee
[18:29] blogometer: [].sort(function (a, b) { return a.id < b.id ? -1 : a.id > b.id ? 1 : 0; })
[18:29] powdahound has joined the channel
[18:29] powdahound has left the channel
[18:29] mAritz: blogometer: yeah, thanks. i just didn't realize i had arrays... :D
[18:34] sudoer has joined the channel
[18:36] creationix: ACTION is looking for more low hanging fruit in node that's making my nStore slow
[18:37] creationix: process.nextTick's shift was a nice one
[18:37] Sembiance: ACTION goes to Google 'Nstore'
[18:37] Sembiance: err nStore :)
[18:38] creationix: Sembiance: http://github.com/creationix/nstore/tree/rewrite
[18:38] creationix: :)
[18:38] FransWillem: creationix: Actually, I looked at that code, I think you might be able to make it run even faster
[18:38] bradleymeck: whats instore for googling nstore! haha...
[18:38] ryah: pquerna: nice post
[18:38] _announcer: Twitter: "@sh1mmer I was thinking about writing a simple server for remote copy/paste in nodejs (just to get my feet wet with nodejs)" -- elofland. http://twitter.com/elofland/status/21934249224
[18:38] Sembiance: hrm
[18:38] creationix: I'm about to implement write combining which will help, but I like to find easy to improve things in node too
[18:38] ryah: oops i already said that
[18:38] ryah: :)
[18:39] FransWillem: heh :p
[18:39] Sembiance: ACTION is currently using redis and node-redis...
[18:39] Sembiance: ACTION looks more closely at nStore.
[18:39] JimBastard has joined the channel
[18:39] mattly has joined the channel
[18:39] tjholowaychuk: redis ftw
[18:39] JimBastard: so i got ./configure working on windows, but make doesnt exist ?
[18:39] JimBastard: hrmmmmmmmmmm
[18:39] FransWillem: ryah: Out of curiosity, did you get my patch? Would like to hear what you thought of it, seeing as it's probably a weird way of doing it.
[18:39] ryah: FransWillem: got it - it was big
[18:39] ryah: so i punted it. kinda busy today
[18:39] blogometer: ryah: What post?
[18:39] ryah: but i'll reply soon
[18:39] FransWillem: Hah, lol, k :p
[18:40] ryah: blogometer: https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/
[18:40] FransWillem: ryah: I've pushed the code used to create the state-machine to a repository too, should I tell you here, or send a followup ?
[18:40] siedrix has joined the channel
[18:40] blogometer: Kewl.
[18:40] ryah: FransWillem: is the issue if you recv only part of a escape code?
[18:40] ryah: is that what you want to avoid?
[18:41] FransWillem: ryah: Yes, as well as for example getting "123^[somescapecode456", basically just being able to use this over a TCP socket instead of a local socket
[18:41] pquerna: ryah: btw, probally can refactor it into part of the main docs if interested. Not really sure if you want more tutorial-like things in the docs (there is some content like that already, but most is reference style)
[18:41] creationix: pquerna: I would love a howtonode article :)
[18:41] JimBastard: installing...
[18:42] ehaas has joined the channel
[18:42] creationix: pquerna: you can even link back to the original article if you want
[18:43] ryah: pquerna: interested
[18:44] ryah: FransWillem: im somewhat against generated parser
[18:45] _announcer: Twitter: "Cloudkick has a guide on writing Node.js extensions in C++. I am glad they and others do this :) http://ajxn.it/anzSHc" -- Dion Almaer. http://twitter.com/dalmaer/status/21934641006
[18:45] dgathright has joined the channel
[18:45] FransWillem: ryah: Hmm, yeah, was afraid you'd say that :p You don't even like them if they're the fastest string matching algo for these kinds of problems ;)?
[18:46] ryah: well, let me take a look at it
[18:47] wink_: anyone familiar with c++ node bindings wanna take a few minutes to help my dumbass find a bug? <3
[18:48] ryah: wink_: just post, im ure someone will reply
[18:48] eazyigz has joined the channel
[18:48] blogometer has left the channel
[18:48] davidwalsh has joined the channel
[18:49] aubergine has joined the channel
[18:49] FransWillem: wink_: pastebin/github it and I can take a look for you
[18:49] creationix: ryah: is there a good way to call fs.write lots of times with strings and have it all write combined for me into large buffers?
[18:49] creationix: or do I have to implement that logic at my end?
[18:50] FransWillem: ryah: If you want to read up on the algo used for that parser, be sure to read these slides: http://www.cs.uku.fi/~kilpelai/BSA05/lectures/slides04.pdf, best explanation I could find :)
[18:50] wink_: ryah, frans: http://pastebin.com/71SEBEc4
[18:50] wink_: thats the best description i can come up with of whats going on
[18:50] wink_: it almost looks like maybe the gc is eating something given the size contraints
[18:50] wink_: but i have no idea how to hunt down whats doing it, and everything looks ok to my busted eyes
[18:51] ryah: wink_: paste the code
[18:51] ryah: you modified net.js ?
[18:51] wink_: the code is essentially the entire binding which can be found at http://github.com/w1nk/node-mongodb
[18:51] _announcer: Twitter: "Sweet article by CloudKick on writing Node.js 'add-ons' e.g. C++ extensions http://bit.ly/9ntvDp" -- Tom. http://twitter.com/sh1mmer/status/21935028317
[18:51] wink_: no i didnt modify any of node's core
[18:52] wink_: bson.cc contains a function decodeObjectStr , thats where the mongo data is being decoded into v8
[18:52] wink_: and where i suspect things are going south, but i cant see it :<
[18:53] joemccann has joined the channel
[18:53] ryah: wink_: you need a HandleScope before this line: http://github.com/w1nk/node-mongodb/blob/master/src/mongo.cc#L136
[18:53] wink_: ok one sec
[18:54] maushu has joined the channel
[18:54] wink_: same issue...
[18:54] wink_: if i shrink the data set slightly, everything will work ok
[18:55] wink_: or if i change the function EmitResults to just Emit a string instead of what should be the decoded object, everything works fine
[18:56] wink_: i cant see why my object growing a little bit seems to blow it all up
[18:56] ryah: it also needs a handlescope
[18:56] ryah: http://github.com/w1nk/node-mongodb/blob/master/src/mongo.cc#L136
[18:56] wink_: thats why im guessing its gc related, but thats a total guess
[18:56] ryah: oops
[18:56] ryah: that s the same
[18:56] wink_: :p
[18:58] wink_: if it'd help anyone, i can likely get a mongo server setup that would reproduce the issue
[18:58] bradleymeck: is there an example of liveedit usage somewhere?
[18:59] dgathright_ has joined the channel
[18:59] JimBastard: hey isaacs , getting an npm issue with windows and cygwin here. http://github.com/isaacs/npm/issues/issue/192
[18:59] JimBastard: npm ! ERROR ! Error: ECONNREFUSED, Could not contact DNS servers
[18:59] isaacs: JimBastard: that's a cygwin node error, not an npm error.
[18:59] TooTallNate: JimBastard: you need to add an /etc/resolv.conf
[18:59] isaacs: JimBastard: check the node wiki
[18:59] JimBastard: thanks, checking now
[19:00] eggie5 has joined the channel
[19:00] eggie5: creationix: i have a question for you
[19:00] creationix: eggie5: what's that?
[19:01] mAritz: FransWillem: got to use it now. works great, thanks :)
[19:01] mAritz: (can't comment on the speed though, i don't have benchmarks for anything yet. and if something is really slow, it's likely not your function. :D)
[19:01] _announcer: Twitter: "Leaderboard of top tweets for #nodejs is now available at http://www.startupweekly.com/hashtag/show/nodejs.html" -- Startup Weekly. http://twitter.com/startupweeklies/status/21935614276
[19:04] ryah: wink_: donno - i'd need to test further, but gtg
[19:04] eggie5: creationix: Who wrote The Title of Liberty?
[19:04] wink_: mind if i ping you some other time? :P
[19:04] creationix: eggie5: in what context?
[19:05] creationix: eggie5: http://en.wikipedia.org/wiki/Captain_Moroni ?
[19:05] JimBastard: isaacs: where the fuck am i suppose to look? lots of noise on wiki
[19:05] isaacs: JimBastard: i have no clue. ask someone who's ever set up node on cygwin
[19:05] eggie5: creationix: i just saw your gist post and was wondering....
[19:05] JimBastard: i think resolv.conf nameserver 4.2.2.2or something
[19:05] JimBastard: TooTallNate: you have any idea?
[19:06] JimBastard: maybe i gotta restart cygwni
[19:06] TooTallNate: echo 'nameserver 4.2.2.2' > /etc/resolv.conf
[19:06] creationix: eggie5: :) it's a really awesome book, but very off-topic for this room
[19:06] JimBastard: yeah im doing that, restarting
[19:06] JimBastard: thanks
[19:06] eggie5: creationix: ha sorry to call you out!
[19:06] creationix: eggie5: no problem
[19:06] eggie5: creationix: same team ;)
[19:07] JimBastard: TooTallNate: lol fucking windows. resolv.conf.txt >.<
[19:07] TooTallNate: JimBastard: ya, fucking windows
[19:08] JimBastard: its working, except asciimo is failing really hard
[19:08] JimBastard: ahaha
[19:08] JimBastard: aight, time to try to get some work done now
[19:08] badaxx: how does piping with "spawn" work?
[19:09] bradleymeck: what was that in js js parser? not uglify
[19:09] JimBastard: isaacs: any idea whats up with the npm download / npm bundle command?
[19:10] JimBastard: is there an eta on that?
[19:10] tjholowaychuk: bradleymeck PEG.js or whatever has one
[19:10] tjholowaychuk: was going to use it
[19:10] tjholowaychuk: but that shits slow
[19:10] isaacs: JimBastard: there was a thread on the npm- mailing list that didn't really get very far
[19:10] bradleymeck: yea, but there is a new one tj
[19:11] JimBastard: isaacs: hrmmm its kinda tricky
[19:11] JimBastard: aight ill bikeshed on that later
[19:11] isaacs: JimBastard: yeah.
[19:11] isaacs: JimBastard: i personally don't use it, and it wouldn't be too hard to implement any of the ways that people wnat to use it...
[19:12] isaacs: JimBastard: just need someone to make a good argument for how it should behave. i don't really know hat's right there.
[19:12] _announcer: Twitter: "If I make or do we check the service because there is little to make node.js + express + CouchDB is a bumpy ride it goes into too much of it predecessors. Insko the time being of CouchDB." [ja] -- Kotaro Kokubo. http://twitter.com/kotarok/status/21936250047
[19:13] isaacs: i wrote a script that runs all the tests and then checks for any global leakage.
[19:13] JimBastard: isaacs: the problem i have, is that if you vendor all your packages, how do you update the code to look for those folders. to my understanding, you can't (unless you are requiring npm). the whole point of the functionality would be to bundle the code into a single deployable package
[19:13] isaacs: in so doing, i realized that i'd just written a new test runner for nodejs...
[19:13] isaacs: and, actually, it's way simpler than the mjsunit python stuf.
[19:14] nerdEd has joined the channel
[19:14] bradleymeck: if its a new test runner, can you make it integrate w/ node-inspector *puppy eyes*
[19:15] isaacs: bradleymeck: well, it's just one file.
[19:15] bradleymeck: *PUPPY EYES*
[19:15] JimBastard: isaacs: what if you could do a require('npm') in your code and that would unshift the packages
[19:15] bradleymeck: cause on error being able to stop and throw up the inspector would be amazing
[19:15] isaacs: bradleymeck: at first, it just loaded up all the builtin modules and made sure there werne't any globals created. then i was like, "wait a second, though, what if they have a function that creates a global. if only we had some collection of javascript that would run every supported function in node..."
[19:16] JimBastard: (this would be for vendorered stuff)
[19:16] isaacs: JimBastard: what?
[19:16] JimBastard: isaacs: npm bundle
[19:16] JimBastard: getting all your depends into a vendor folder
[19:16] isaacs: JimBastard: i *really* want to make sure you never ever do require("npm")
[19:16] nerdEd_ has joined the channel
[19:16] isaacs: because that means that you need to have npm on the server, which the bundle command is supposed to avoid.
[19:17] isaacs: JimBastard: it'd be better to just install everything in some specific folder, i think
[19:17] JimBastard: isaacs: how do you unshift all the paths without npm on the server
[19:17] JimBastard: update the includes manually?
[19:17] isaacs: JimBastard: you just have to know in your code to do require("./deps/foo") instead of require("./foo")
[19:18] JimBastard: isaacs: so i have to update 10 random files with random paths
[19:18] isaacs: JimBastard: sure, but only once, and only if you're using the bundled code.
[19:18] JimBastard: where everything right now is require('packagename')
[19:18] JimBastard: so there is no dir anyway
[19:18] isaacs: JimBastard: and then i can just do a normal install into that folder.
[19:18] isaacs: JimBastard: you could also do require.paths.unshift(path.join(__dirname), "./deps") or something
[19:18] JimBastard: so now i have to pull an update for a package
[19:19] isaacs: yeah, then it gets annoying.
[19:19] JimBastard: exactly
[19:19] isaacs: you have to know to install hte update in that folder.
[19:19] isaacs: but still, it could be part of the bundle command to just run an update on that root.
[19:19] isaacs: basically, it'd be like npm install --root ./deps my-dependencies
[19:19] FransWillem: isaacs: what does the QR code on the side of the NPM logo refer to :p?
[19:19] JimBastard: if you had a magic require file, for bundling, i think it would solve it all
[19:19] isaacs: FransWillem: npmjs.org
[19:20] piotrekm has joined the channel
[19:20] JimBastard: so you can require that file on your top level module, or everywhere or whatever
[19:20] JimBastard: and it would handle the path shift for you
[19:20] isaacs: JimBastard: interesting.
[19:20] JimBastard: is that wrong to think?
[19:20] isaacs: JimBastard: i dunno, that's kinda clever, and not too onerous
[19:20] FransWillem: heh
[19:20] isaacs: JimBastard: it could just be in ./deps/index.js, so you do require("./deps") and then it'll do require.paths.unshift(__dirname)
[19:20] JimBastard: thats the idea yeah
[19:21] isaacs: JimBastard: and then you could do require("my-dep")
[19:21] eazyigz has joined the channel
[19:21] JimBastard: i just dont want to have to change code on my project so it can run via npm and standalone
[19:21] isaacs: JimBastard: or you don't have to use that, and you could also do require("./deps/whatever") as well if you want.
[19:21] isaacs: JimBastard: well, you'll have to change *something*
[19:21] JimBastard: right now its require('colors')
[19:21] JimBastard: so if you havent npm install colors, you arent getting shit
[19:21] isaacs: JimBastard: even if it's just adding a require("./deps") line
[19:22] dgathright has joined the channel
[19:23] creationix: isaacs: I was playing with Apricot yesterday and realized it's impossible to use without npm
[19:23] isaacs: creationix: really? impossible?
[19:23] creationix: I can install all it's deps by hand and put them in my require.paths, but apricot only uses the magic versioned requires
[19:23] isaacs: creationix: why's that?
[19:23] creationix: require(
[19:24] creationix: require('jsdom-1.2.0/jsdom/...')
[19:24] isaacs: creationix: you should take that up with rob
[19:24] creationix: but the folder is jsdom/lib/jsdom/...
[19:24] isaacs: creationix: or you could link the jsdom lib folder to "jsdom-1.2.0"
[19:24] creationix: isaacs: well, I ended up changing apricot's source and then not even using it since you can't nest queries
[19:24] necrodearia has joined the channel
[19:24] isaacs: creationix: "impossible" is a rather big word ;)
[19:24] creationix: but basically my question is what do we do with people who make their libs ONLY work with npm's shims
[19:25] creationix: isaacs: sure I could create a npm style shim by hand, but that seems silly
[19:25] isaacs: creationix: you whine to them. i say "meh".
[19:25] tjholowaychuk: ^ is why I have not been utilizing npm features
[19:25] isaacs: creationix: there is really no case where the shims are absolutely fully 100% required.
[19:25] isaacs: creationix: you can *always* just do what they do by hand. it's not much, really.
[19:25] isaacs: creationix: but you may end up in dependency hell that way, eventually.
[19:26] zemanel has joined the channel
[19:26] creationix: isaacs: anyway, not you problem, just wondered what you opinion was
[19:26] eazyigz has joined the channel
[19:26] isaacs: creationix: my opinion is that you should either use npm, or do what it does by hand, but doing what it does by hand is really annoying, which is why i wrote it in the first place.
[19:26] creationix: fair enough
[19:26] creationix: :)
[19:27] bradleymeck: trying to wrap my head around async templates inside sync template blocks inside async... etc
[19:30] JimBastard: creationix: apricot is pointless
[19:30] JimBastard: use jsdom + jquery
[19:30] iganapolsky has joined the channel
[19:30] creationix: JimBastard: I'm using jsdom + htmlparser + sizzle
[19:30] creationix: it's great
[19:30] creationix: don't need the rest of jQuery
[19:30] JimBastard: we've got some pretty serious scraping stuff going on here
[19:30] JimBastard: yeah
[19:30] _announcer: Twitter: "I'm impressed by the list of node.js modules: http://j.mp/bargJY I need to find time to check some of them out!" -- Martin Owen. http://twitter.com/martinowen/status/21937299535
[19:31] olauzon has joined the channel
[19:31] drudge: i publish my very first package to npm this weekend!
[19:31] tjholowaychuk: libxmljs + css2xpath ftw
[19:31] tjholowaychuk: drudge woot! what is it?
[19:32] drudge: tjholowaychuk: api for interacting with mobileme's find my iphone service
[19:32] tjholowaychuk: neato
[19:32] TooTallNate: drudge: sosumi or whatever?
[19:32] drudge: yeah
[19:32] TooTallNate: what's with the name?
[19:32] drudge: can get your location, send a push message, remote lock, and maybe someday remote wipe
[19:33] TooTallNate: does apple document that or did you reverse engineer?
[19:33] drudge: TooTallNate: it's a bit of apple history regarding lawsuits http://en.wikipedia.org/wiki/Sosumi
[19:33] drudge: TooTallNate: it's reversed, they do not provide an api
[19:33] TooTallNate: well i applaud then
[19:34] eazyigz has joined the channel
[19:34] TooTallNate: those sound like some cool features too, hopefully I find a use case for it!
[19:35] drudge: remote wipe is easy to implement, just a little dangerous :)
[19:36] bradleymeck: devinus what was that js parser besides pegjs, and uglify
[19:36] bradleymeck has left the channel
[19:36] bradleymeck has joined the channel
[19:36] bradleymeck has left the channel
[19:36] bradleymeck has joined the channel
[19:37] devinus: bradleymeck: there's a bunch of them that dont work
[19:37] bradleymeck: fin heck
[19:37] davidwalsh has joined the channel
[19:39] patientfox has left the channel
[19:39] siedrix has joined the channel
[19:39] iganapolsky has joined the channel
[19:40] mAritz: fuck yeah... got my first node module to a usable state (i think). no documentation, horrible code and probably slow as fuck. please remind me to never use my own code... :/
[19:41] badaxx_ has joined the channel
[19:41] _announcer: Twitter: ""# Nodejs - The performance that I always wanted" http://slidesha.re/cD0VHU" [pt] -- Ranieri Pieper. http://twitter.com/ranieripieper/status/21937949126
[19:42] bradleymeck: any plans on adding globs to require?
[19:44] _announcer: Twitter: "nodejs api # stickr http://stickr.com/rmaksim/sticker/4238872" [lv] -- Razumenko Maksim. http://twitter.com/rmaksim/status/21938072362
[19:44] eazyigz has joined the channel
[19:48] iganapolsky has joined the channel
[19:48] mattikus has joined the channel
[19:48] mattikus has joined the channel
[19:49] _announcer: Twitter: ".@chartjes Yes. I'm upset that @zendcon didn't accept my #nodejs talk. PHP devs need to be aware of what's going on around them. #HeadInSand" -- Travis Swicegood. http://twitter.com/tswicegood/status/21938392764
[19:49] rauchg_ has joined the channel
[19:49] maushu has joined the channel
[19:50] eisd has joined the channel
[19:50] eisd has left the channel
[19:53] wattz: FINALLY :D
[19:53] codetonowhere has joined the channel
[19:57] bradleymeck: O-o, Function("closure","...code...") is beating native nesting after 2 levels
[19:57] bradleymeck: but costly construction
[19:59] rkieffer has joined the channel
[19:59] mscdex: wattz that?
[19:59] eazyigz has joined the channel
[20:00] satori_ has joined the channel
[20:02] _announcer: Twitter: "so node.js is the new shinny software toy for xmas ?" -- Declan Kennedy. http://twitter.com/DeclanKennedy/status/21939149073
[20:03] streampunk has joined the channel
[20:05] mAritz: yeah, last xmas... now it's not so new anymore, but oh so shiny :)
[20:05] eazyigz has joined the channel
[20:06] devinus: bradleymeck: oh you looking at js parsers?
[20:06] JimBastard: yeah yeah yeah, best node.js team ever! http://github.com/nodejitsu
[20:06] bradleymeck: yea
[20:06] devinus: bradleymeck: which one?
[20:06] bradleymeck: dunno, forgot the name of the one that came out on... friday or thursday, was going to try and test it out
[20:07] devinus: bradleymeck: uglifyjs?
[20:07] _announcer: Twitter: "http://tinyurl.com/yjggbol Going evented with Node.js - Naked JavaScript" -- catch_down. http://twitter.com/catch_down/status/21939443865
[20:07] bradleymeck: that looks more like a compressor than anything that gives a nice ast
[20:07] mape: I've had some issues with UglifyJs
[20:07] devinus: bradleymeck: yup, it parses the javascript and compresses or beautifies
[20:07] devinus: mape: oh? did you file any bugs?
[20:08] mape: No didn't have the time to track it down
[20:08] mape: Will take the time when it gets added to npm, no use for it if it isn't
[20:08] devinus: were they on popular JS libs?
[20:08] mape: Think it was a jQuery plugin
[20:08] cloudhead: bradleymeck: http://boshi.inimino.org/3box/asof/1269629763069/PEG/ECMAScript_unified.peg
[20:09] mape: jquery.timeago.js if I'm not mistaken
[20:10] bradleymeck: cloudhead thats the one ive seen before, it does oddly w/ conditional expressions
[20:12] admc has joined the channel
[20:12] cloudhead: bradleymeck: oh really?
[20:12] bradleymeck: yep
[20:13] cloudhead: there's also PEG.js and Jison
[20:13] cloudhead: but I don't know if there's ecma grammars for them
[20:13] wink_: ACTION smashes head on desk
[20:13] deepthawtz has joined the channel
[20:13] mAritz: wink_: wait, let me join you.
[20:13] TobiasFar has joined the channel
[20:13] mAritz: ACTION smashes head on desk as well.
[20:14] wink_: <3
[20:14] _announcer: Twitter: "http://blip.tv/file/2899135 node.js = genius!" -- Tim Farland. http://twitter.com/twfarland/status/21939847543
[20:14] pgriess: bradleymeck: what type of parsing are you looking to do?
[20:14] pgriess: bradleymeck: if you're interested in parsing binary protocols, i'd recommend checking out my (new) node-strtok module; it has very good support for writing an interruptable parser for such datatypes
[20:14] pgriess: bradkleymeck: for ascii protocols, however, you're better off looking elsewhere
[20:15] _announcer: Twitter: "I don’t know much about either tech, really, but what’s the chances one could mash node.js and obj-j to do obj-c style server side apps?" -- chris cieslak. http://twitter.com/cieslak/status/21939904061
[20:15] pgriess: bradleymeck: though from what i can tell jison and similar are not great at running in an interruptable context
[20:15] bradleymeck: knowing a. if something references a variable outside its own scope, b. preferably interruptible sans throw, c. easy to work with ast
[20:15] eazyigz has joined the channel
[20:15] bradleymeck: might end up having to write a raw interruptable char by char
[20:16] Nohryb has joined the channel
[20:17] Nohryb has joined the channel
[20:17] cardona507 has joined the channel
[20:19] pgriess: bradleymeck: what are you thinking as far as structuring your parser? i'm interested in extending node-strtok to handle ascii protocols. i think its control flow is pretty good for an interruptable parser, and frees the protocl layer from having to deal w/ data arriving byte-by-byte
[20:21] bradleymeck: parser w/ saxlike, on tokenStart/End, on error, on end. all of them providing the current ast (token at the leaf its on of the ast)
[20:21] wattz: bradleymeck: you writing a parser with Antlr or lex/yacc?
[20:21] bradleymeck: nope
[20:21] wattz: by hand?
[20:21] _announcer: Twitter: "@cieslak chances are good. Node already has support for non-js to js dynamic translation, and some one’s already running Obj-C server-side" -- rentzsch. http://twitter.com/rentzsch/status/21940303896
[20:21] bradleymeck: how i tend to do it
[20:21] wattz: ahh
[20:22] wattz: im currently writing one in yacc/lex
[20:22] pgriess: bradleymeck: i see
[20:22] eazyigz has joined the channel
[20:22] bradleymeck: im more interested in finishing this one then gutting it for a decent in JS parser gen that is easy to use while being interruptable
[20:22] pgriess: bradleymeck: interesting in helping to extend node-strtok w/ good ascii support?
[20:22] pgriess: bradleymeck: heh, ok guess that answers my question
[20:22] bradleymeck: i can look into it
[20:23] bradleymeck: no use doing everything when stuff already exists
[20:26] bradleymeck: been getting addicted to Function('...')... prolly not a good thing
[20:26] iganapolsky has joined the channel
[20:29] saikat_ has joined the channel
[20:31] justin_ has joined the channel
[20:34] _announcer: Twitter: "@cramforce you have a similar effect with the #nodejs twitter irc bot creating feedback loops with your irc-client and os-notify-window ;)" -- Soenke Ruempler. http://twitter.com/s0enke/status/21941039875
[20:35] TobiasFar has joined the channel
[20:35] rnewson has joined the channel
[20:35] rnewson has joined the channel
[20:35] devinus: interesting article: http://www.javascriptrules.com/2009/08/12/string-searching-algorithms-in-javascript-engines/
[20:38] zemanel has joined the channel
[20:41] _announcer: Twitter: "Already changed the project accordingly. Still going to be 48 hours with no / little sleep during node.js knockout." -- Arnout Kazemier. http://twitter.com/3rdEden/status/21941490335
[20:42] necrodearia has joined the channel
[20:43] bradleymeck: lol ie6 better than ie7
[20:43] sonny has joined the channel
[20:43] JimBastard: creationix: have you ever tried haml-js on windows?
[20:43] JimBastard: it seems to be failing hard, same code working on macos
[20:43] mattikus_ has joined the channel
[20:44] JimBastard: maybe there is some wonky formatting for windows only
[20:44] JimBastard: SyntaxError: Unexpected token ) at Object.Function (unknown source) at Haml (/usr/local/lib/node/.npm/haml/0.2.5/package/lib/haml.js:485:12)
[20:45] devinus: JimBastard: why not use http://github.com/visionmedia/jade
[20:45] JimBastard: i swear to god devinus ill punch you in the face
[20:45] twoism has joined the channel
[20:45] creationix: JimBastard: really?
[20:45] JimBastard: creationix: aye
[20:45] creationix: same node version?
[20:45] devinus: JimBastard: it's better
[20:45] JimBastard: i hope so, maybe older version on the other machine
[20:46] JimBastard: creationix: do you have any idea why it would toss that error? doesnt give me a file or line number
[20:46] JimBastard: is it a parsing error? bad input?
[20:46] JimBastard: i wonder how hard it would be to rip out haml anyway and just have it use js
[20:47] JimBastard: errr
[20:47] JimBastard: html
[20:47] JimBastard: creationix: same versions of node, 0.2.0 confirmed
[20:47] creationix: JimBastard: for wheat?
[20:47] creationix: shouldn
[20:47] creationix: shouldn't be hard to replace
[20:48] creationix: JimBastard: got a windows binary I can test with
[20:48] JimBastard: no
[20:48] JimBastard: im not helping you debug any of this unless you package up wheat properly >.<
[20:49] JimBastard: shreded-wheat
[20:49] mu-hannibal has joined the channel
[20:49] JimBastard: :p
[20:50] _announcer: Twitter: "is it still possible to join the beta of #nodejs on @heroku ??" -- Sascha Depold. http://twitter.com/sdepold/status/21942041404
[20:50] _announcer: Twitter: "Did I mention that @rauchg's socket.io (JS client, node server) library frickin rocks?" -- Malte Ubl. http://twitter.com/cramforce/status/21942050358
[20:50] creationix: JimBastard: haha
[20:51] JimBastard: i mean, how dare you release free software for people to use
[20:51] JimBastard: I PAID GOOD MONEY FOR THIS
[20:51] creationix: no, but tmpvar did ;)
[20:51] JimBastard: im gonna keep playing and see what i can do
[20:51] JimBastard: ill let you know if i make any headway
[20:52] _announcer: Twitter: "Nice rails-like web framework for Node.js: http://geddyjs.org #nodejs" -- Antonio Marques. http://twitter.com/acmarques/status/21942153155
[20:52] JimBastard: lol mde that guy was making fun of your framework ^^
[20:52] JimBastard: :p
[20:53] pquerna: russell_h: nice patch
[20:54] siedrix has joined the channel
[20:56] statim has joined the channel
[20:56] mde: JimBastard: That bastard. :)
[20:57] JimBastard: mde, dhh, its all three letters to me
[20:57] mde: Whoahhhhhh ....
[20:57] mde: That's hitting below the belt. :)
[20:58] devinus: dhh stole my pony :[
[20:59] t3h_awesome has joined the channel
[21:01] statim: general app architecture question if anyone has opinions: when building a js heavy single page frontend app and keeping the backend to just pure json responses, any opinions on mirroring the serverside models on the clientside along with associations vs returning say one big object that includes associations in the object? not sure if im being very clear so let me know
[21:01] mde: devinus: He didn't steal it, he removed it because it was unnecessary as a feature.
[21:02] atmos has joined the channel
[21:02] mde: statim: Geddy's model code is built to be used both on the client and on the server.
[21:02] statim: mde: cool havent seen geddy, checking it out!
[21:02] atmos: anyone using connect-auth with express 1.0rc ?
[21:03] mde: Please do, lemme know what you think.
[21:03] jakehow has joined the channel
[21:04] brianleroux has joined the channel
[21:07] _announcer: Twitter: "There is a downside to node.js after all. C++ extensions http://bit.ly/boaiaJ" -- Kevin Isom. http://twitter.com/kev_nz/status/21943135502
[21:07] joshbuddy has joined the channel
[21:07] creationix: How is allowing C extensions a downside?
[21:08] wink_: who knows what that guy is going on about
[21:08] bradleymeck: it means it is impure, c++ isnt ecma standard, i have to debug c++ to use my js cause that module uses c++... the list of bad arguments goes on and on
[21:09] mjr_: Probably a Pure Java type person.
[21:09] rnewson: is http client's ssl mode known to be buggy? I'm having success using node.js with stunnel4, but directly it exits with no error message but no response callback either.
[21:09] mjr_: rnewson: sadly, yes
[21:09] rnewson: mjr_: ok, thanks. I figured.
[21:09] mjr_: node will be usable for you soon, I promise!
[21:09] breccan has joined the channel
[21:10] _announcer: Twitter: "I'd really like to create a website with NodeJS but I just can't think of an idea." -- davidwalshblog. http://twitter.com/davidwalshblog/status/21943303976
[21:10] rnewson: mjr_: stunnel is fine for my purposes, just wanted to check if I was being daft or not.
[21:10] mjr_: SSL is buggy, although it often does work.
[21:10] rnewson: I did see a blogpost/whine about non-blocking crypto.
[21:10] mjr_: yeah, pquerna is working on it.
[21:10] rnewson: mjr_: mine's an exotic case, private CA, client certificates.
[21:11] mjr_: I try to give him moral support and encouragement whenever possible, because I really need good SSL as well.
[21:11] rnewson: mjr_: it's very painful no matter how you do it, stunnel fixes it, though I do have to pass a proper host header.
[21:11] rauchg_: mjr_: smae
[21:11] rnewson: mjr_: *nod* it would rock to do it with straight node
[21:11] rauchg_: ACTION sends moral support to pquerna
[21:11] mjr_: rnewson: how did you do it in couchdb?
[21:11] mjr_: wrestle the non-blockingness out of openssl I mean
[21:12] rnewson: mjr_: I upgraded mochiweb which already did it via the ssl module in erlang itself.
[21:12] mjr_: Oh, mochiweb has their own SSL that isn't openssl?
[21:12] rnewson: mjr_: mochiweb calls erlangs ssl module.
[21:12] mjr_: And erlang's ssl module is openssl?
[21:12] rnewson: yes, I think it is.
[21:13] mjr_: Have you done any kind of stress testing of it?
[21:13] mattmob has joined the channel
[21:13] rnewson: http://www.erlang.org/doc/man/ssl.html
[21:13] rnewson: actually not yet. I have been stress testing couchdb with a node.js based client.
[21:13] mjr_: Like opening 10K connections, max throughput, etc?
[21:14] rnewson: not 10k no.
[21:14] rnewson: but I've run couchdb with 100 writers for 48 hours straight sending large data. got to 1.3tb of data at test end.
[21:14] mjr_: Neat.
[21:14] rnewson: yep. I don't need to reach 10k connections, you see, so have never tested it.
[21:15] rnewson: I expect few connections, but lots of blobs
[21:15] mjr_: I'm pretty happy with my test of node client opening 10K connections to node server. Non-SSL it works great.
[21:15] rnewson: *nod*
[21:15] rnewson: the issue is not knowing how to make openssl non-blocking or 'just' bugs?
[21:15] mjr_: Even at 60K server connections, node was up to 190MB RSS.
[21:15] rnewson: nice!
[21:16] mjr_: I don't actually know what the issues are. I just like to talk about them in a way that will hopefully get someone with more time and expertise interested in fixing them.
[21:16] rnewson: *nod* ok. I wish I knew more about ssl to help out but I don't.
[21:17] mjr_: I do know that sometimes large client POST bodies get stuck.
[21:17] rnewson: adding multirange support to couchdb next
[21:17] statim: mde: this looks cool. one thing: "Templates and sub-templates load and render asynchronously". so does that somehow solve the big problem i see with EJS which is im in the middle of a template and need to get some more data asynchronously, but there is no way to <%= insert it %> where i currently am in the template? or does it mean something else?
[21:17] creationix: is Sizzle buggy with jsdom?
[21:18] creationix: I wasn't able to do Sizzle(".content a"), but I could do Sizzle("a", Sizzle(".content")[0])
[21:18] _announcer: Twitter: "Node.js + phonegap + jqtouch.js + our own v basic handrolled javascript mvc framework phew #twmobile" -- Jennifer. http://twitter.com/JenniferSmithCo/status/21943859271
[21:18] mde: statim: No, nothing that fancy. I just means that the I/O for reading the template data is async.
[21:19] statim: mde: gotcha
[21:19] mde: Streaming or data-async-ness for templates makes the API a lot more complicated.
[21:20] inimino: bradleymeck ⋱ What are you using a parser for?
[21:20] hdon has joined the channel
[21:20] mde: Geddy's template API could support it; it's just an EventEmitter.
[21:20] mde: But there's nothing that actually streams yet.
[21:20] bradleymeck: inimino, various tasks in preprocessing
[21:21] statim: mde: right… ive recently separated my own templates into just pure html and have another layer that handles inserting actual data into the template programatically. still on the lookout to see if anyone else has found a cooler way.
[21:22] inimino: bradleymeck ⋱ I'm implementing the mozilla proposed AST on top of the one cloudhead linked to, but it'll be slow.
[21:22] MikhX has joined the channel
[21:22] bradleymeck: mine is going to not use that ast, but be fast, i got my json parser to be 1/10th the native.
[21:22] inimino: (Except in spidermonkey if they expose it.)
[21:22] mde: statim: I've heard people mention various templating systems that stream, or pass iteratable data sources, but I haven't needed anything that fancy yet. You might ask around to see what's good.
[21:23] inimino: bradleymeck ⋱ hand-written?
[21:23] bradleymeck: ya
[21:23] inimino: oh, ok
[21:23] mde: I'd be really interested in integrating some of the more interesting templating solutions into Geddy. Haml and 'stache are pretty obvious, but I never use those either.
[21:23] inimino: ACTION is more interested in parser generators
[21:23] bradleymeck: i am too, but hand crafted first then gut em to parser gens is my approach
[21:24] inimino: ok
[21:24] MikhX has joined the channel
[21:25] statim: mde: i think they all suffer this same problem though… in ruby you could be mid-template and do a model find to get more records, then loop over them inline. but that breaks down in js because the lookup is async. might be a cool problem i could try and solve
[21:26] tjholowaychuk: dont have queries in your template lol
[21:26] eck has joined the channel
[21:26] tjholowaychuk: boo
[21:26] eck has joined the channel
[21:26] bradleymeck: ^agree
[21:27] bradleymeck: async templating is for streams, and those are oddities in themselves (event emitter based templates = fun)
[21:27] _TS has joined the channel
[21:27] mattly has joined the channel
[21:28] statim: tjholowaychuk: i think thats true from a serverside template perspective because you would be returning one time to the client. but for js client-side templates you often want to start rendering as data comes in, not wait until you have all the data and then render.
[21:28] tjholowaychuk: statim: ah it thought we were talking about SSJS
[21:28] bradleymeck: ah same
[21:28] tjholowaychuk: i*
[21:29] bradleymeck: i have an engine that can do that, but its not pretty
[21:29] statim: yea sorry im in a mess of ssjs and csjs at the moment :)
[21:30] _announcer: Twitter: "@cramforce Thanks. Good stuff! On a different note, what's a good Node.js hoster? Are there any at all in Germany?" -- Thomas Steiner. http://twitter.com/tomayac/status/21944634376
[21:32] creationix: tjholowaychuk: I hope it's ok I removed some of my deprecated code from connect
[21:32] creationix: :P
[21:33] nerdEd has joined the channel
[21:33] Deputaats: I can't fin how to tell node to log errors in file..
[21:33] Deputaats: Right now my app just dies when error happens.
[21:34] Deputaats: I want it to log errors (like php does) and continue tu run app.
[21:34] Deputaats: Is it even possible?
[21:34] bradleymeck: uncaughtExceptionHandler
[21:35] tjholowaychuk: creationix: saw that, thanks! its getting much cleaner now
[21:35] tmpvar has joined the channel
[21:35] creationix: tjholowaychuk: I'm considering removing more middleware so we have something maintainable left
[21:35] bradleymeck: process.on('uncaughtException',function(){...})
[21:35] tmpvar: hello
[21:35] tjholowaychuk: creationix: ya im down, i will pull jsonrpc out into it's own, doesnt have much of a place in core
[21:35] creationix: great, I was just looking at bugs for that
[21:36] bradleymeck: tmpvar my <3
[21:36] creationix: I'm thinking the same for pubsub
[21:36] tjholowaychuk: hmm what else
[21:36] creationix: tjholowaychuk: repl
[21:36] Deputaats: ha, found it!
[21:36] creationix: it's not even a filter, just an external addon
[21:36] bradleymeck: once i figure out the last bug in my router and have time to test it again...
[21:36] tjholowaychuk: creationix: no i know haha, pretty pointless
[21:37] tjholowaychuk: i was going to add some introspection goodies
[21:37] tjholowaychuk: but
[21:37] tjholowaychuk: still not there so meh
[21:37] creationix: yeah, I want to foster more of community maintained modules and less built-in modules
[21:37] creationix: I think that will improve the overall quality
[21:37] tjholowaychuk: the rest are ok IMO i think
[21:37] creationix: tjholowaychuk: what do you think about gzip?
[21:38] tjholowaychuk: i dont us it
[21:38] tjholowaychuk: use*
[21:38] creationix: it's rarely the ideal case
[21:38] creationix: for development you don't care
[21:38] creationix: for production pre-gzipping is much better
[21:38] tjholowaychuk: yeah exactly, ive heard people having some issues with it but none personally since i havent tried it
[21:38] creationix: it's only really useful for gzipping dynamic content on the fly
[21:39] _announcer: Twitter: "PeepCode Node.js screencast, Part I: http://peepcode.com/products/nodejs-i I had a lot of fun making this one!" -- PeepCode. http://twitter.com/peepcode/status/21945222532
[21:40] creationix: gogo topfunky
[21:41] creationix: nice $9.00 per download, he knows how to make money
[21:41] mde: statim: I'll be very interested to see what you come up with.
[21:42] creationix: mde forget books, we should be doing screencasts!
[21:42] mde: Kind of a balancing act between the streaming advantage you hope you'll get, with how horribly complicated the API gets.
[21:42] mde: creationix: No kidding, screw this legacy-media stuff.
[21:43] eisd has joined the channel
[21:44] teemow has joined the channel
[21:44] jacobolus has joined the channel
[21:46] eisd: when using Script.runInNewContext(code, sandbox)...how can I kill code that times out? e.g. while (true){}, while(1);, etc.
[21:47] _announcer: Twitter: "Faye is used in the next installment of Peepcode's Node.js tutorials: http://peepcode.com/products/nodejs-i" -- James Coglan. http://twitter.com/jcoglan/status/21945705667
[21:48] bradleymeck: eisd, you cant, use jefe or something
[21:49] eisd: bradleymeck: thanks, checking it out now
[21:52] tilgovi has joined the channel
[21:54] _announcer: Twitter: "@topfunky Bought your node.js! I hope it's awesome :D any spoilers on what part 2 might be?" -- Seivan Heidari. http://twitter.com/Seivanheidari/status/21946196753
[21:55] _announcer: Twitter: "Taking a dive into node.js What does it do that Ruby can't do?" -- Seivan Heidari. http://twitter.com/Seivanheidari/status/21946278071
[21:57] dgathright has joined the channel
[21:58] _announcer: Twitter: "http://tinyurl.com/3x7f4sd Cloudkick | blog: Writing Node.js Native Extensions" -- desk_stage. http://twitter.com/desk_stage/status/21946438403
[22:00] siedrix has joined the channel
[22:01] pquerna: so hot, i'm melting.
[22:02] eck has left the channel
[22:03] mde: Ah, you SF people, y'all are so cute with your "hot."
[22:04] konobi: eisd: you could write a patch to support alarm(2)
[22:04] pquerna: i know. but. I'm just to it never going above 70 now :x
[22:04] pquerna: plus, buildings here don't have cooling.
[22:04] eisd: konobi: alarm(2)?
[22:05] mde: Ah, that's a point. We don't have to air-condition the shit out of everything here.
[22:05] wink_: as weird as it sounds, i cannot imagine a building without central air
[22:05] maritz has joined the channel
[22:06] ink83 has joined the channel
[22:06] bradleymeck: tx, its where the heat is, well humidity+heat
[22:06] trotter has joined the channel
[22:06] konobi: eisd: http://www.tin.org/bin/man.cgi?section=2&topic=alarm
[22:07] eisd: konobi: ah, that...thought you meant a node function
[22:07] eisd: thanks
[22:07] mde: bradleymeck: Damn skippy, I'm originally a Houston boy. Houston, where they build tunnels underground so you don't have to leave the air-conditioning.
[22:08] bradleymeck: i like the heat
[22:08] mde: I hate the heat less than the 'skeeters and the fire ants.
[22:08] _announcer: Twitter: "@leyrer: http://peepcode.com/products/nodejs-i" -- Michael Kohl. http://twitter.com/citizen428/status/21947141057
[22:09] maritz: isaacs: i'm too stupid for npm. i have a package.json that i believe to be correct and then do "npm install ." in my module directory and it fails with an ENOENT error (if you don't mind i'll pm you the pastebin of the entire log)
[22:09] isaacs: maritz: i'd prefer a gist or pastie
[22:10] Tim_Smart has joined the channel
[22:10] Dmitry has joined the channel
[22:11] MikhX has joined the channel
[22:12] maritz: damn loose ethernet cable... :(
[22:12] rsms has joined the channel
[22:12] dgathright has joined the channel
[22:12] maritz: wait, did i reconnect fast enough to not quit?
[22:13] isaacs: maritz: perl -pi -e 's/\.lib/\.\/lib/' package.json
[22:15] nerdEd has joined the channel
[22:16] fod has joined the channel
[22:17] BrianTheCoder has joined the channel
[22:17] webr3: anybody know how long node.js has been going?
[22:18] webr3: i.e when did ryah first get goign with something half working
[22:19] sh1mmer: webr3: look at the github repo
[22:19] sh1mmer: feb '09
[22:19] sh1mmer: I think it was
[22:19] webr3: ty
[22:20] sh1mmer: http://github.com/ry/node/commits/master?page=60
[22:29] John9e9 has joined the channel
[22:30] derencius_ has joined the channel
[22:30] jimmy203 has joined the channel
[22:31] Wandrewvious has joined the channel
[22:31] raymorgan has joined the channel
[22:31] rixius has joined the channel
[22:33] _announcer: Twitter: "downloading peepcode's node.js screencast :D" -- Joel Garcia Martinez. http://twitter.com/jgarciama/status/21948738038
[22:34] rixius has left the channel
[22:40] mscdex: haha
[22:40] bradleymeck: thats what she said
[22:41] mscdex: that peepcode screencast
[22:41] nerdEd has joined the channel
[22:42] bradleymeck: you actually paid for that?
[22:42] malkomalko has joined the channel
[22:42] creationix: bradleymeck: I got a copy free, it's pretty for beginners
[22:43] joshbuddy has joined the channel
[22:43] creationix: lost of ruby people buy everything peepcode produces
[22:43] mscdex: bradleymeck: no, but they have previews of some of the slides on the website
[22:44] malkomalko: creationix: you got a sec for a quick express/connect/design question?
[22:44] creationix: malkomalko: posibly
[22:45] nerdEd has joined the channel
[22:45] malkomalko: auth.. storing session data with MemoryStore.. optimally i put the current_users id in memory.. then a dynamic helper that loads certain data from my db of choice based on my id in session
[22:46] malkomalko: do dynamic helpers get cached?
[22:46] creationix: dynamic helpers?
[22:46] creationix: is that an express thing?
[22:46] malkomalko: or would it do a find on every request..
[22:46] tilgovi has joined the channel
[22:46] malkomalko: yah
[22:46] siedrix has joined the channel
[22:47] ryan[WIN] has joined the channel
[22:47] creationix: not sure, I haven't used express, I do know that nstore-session (a drop in replacement for memoryStore) stores the sessionid in a cookie in the browser and then loads the session data from disk on every request
[22:47] malkomalko: ok cool
[22:47] malkomalko: I'll play around with it.. just wanted to see if you knew off hand
[22:47] daleharvey has joined the channel
[22:48] pquerna: if anyone wondered, ssl in twisted is almost worse than in node.js :|
[22:48] _announcer: Twitter: "@jcoglan Oh, and I think I might have found a non-Node.js use case for async method chaining, your articles are really gonna help if so :)" -- andybeeching. http://twitter.com/andybeeching/status/21949746090
[22:48] solidsnack has joined the channel
[22:51] drewolson has joined the channel
[22:51] bradleymeck: ssl is almost never easy
[22:52] drewolson: anyone out there using vows? it seems for async testing our callback is required to have 2 arguments, although the second seems to come in as undefined.
[22:52] visnup has joined the channel
[22:55] cnu has joined the channel
[23:05] _announcer: Twitter: "Take a look at the NODE js, and also nice:) danielvlopes @ @ @ rafaspinola __leroy" [pt] -- tOn. http://twitter.com/dev_ton/status/21950893647
[23:06] streampunk has left the channel
[23:06] overra has joined the channel
[23:07] rixius has joined the channel
[23:09] ryan[WIN] has joined the channel
[23:10] mscdex: ACTION shakes a fist at ssl
[23:12] mjr_: mscdex: are you going to join forces in the battle to make node a good platform on which to do SSL?
[23:12] mjr_: Or are you another fist shaker like me?
[23:12] mscdex: purely a fist shaker
[23:12] mjr_: fist shakers unite!
[23:12] mscdex: unless it's an easy fix :p
[23:12] mjr_: Take that, SSL!
[23:12] marshall_law has joined the channel
[23:12] rauchg_: ACTION is another fist shaker
[23:12] mscdex: like putty/xterm support in readline
[23:12] mscdex: for home and end
[23:13] mscdex: hehe
[23:13] maritz: has anyone here got DJs to work with nodev0.2.0?
[23:14] cnu has joined the channel
[23:15] _announcer: Twitter: "The #nodejs Daily is out - read this Twitter newspaper on http://paper.li/tag/nodejs (9 contributions today)" -- Christos Stathis. http://twitter.com/chstath/status/21951583903
[23:15] _announcer: Twitter: "Checking out Node.js - watching the @peepcode screencast. Cool stuff." -- James Miller. http://twitter.com/bensie/status/21951635252
[23:16] joshowens has joined the channel
[23:16] mscdex: step 1. finish node-imap, step 2. create ncurses ui on top of node-imap, step 3. ???, step 4. profit
[23:16] mscdex: :-D
[23:16] codetonowhere has joined the channel
[23:16] maritz: mscdex: step 0: tell maritz what he can use for code reloading as long as DJs doesn't work.
[23:16] maritz: P
[23:16] maritz: * :P
[23:16] joshowens has joined the channel
[23:20] maushu: ...twitter... newspaper...?
[23:20] _announcer: Twitter: "once the NCAA rids Apache from our campuses, Node.js should be immediately implemented" -- jalbertbowdenii. http://twitter.com/jalbertbowdenii/status/21951976137
[23:22] _announcer: Twitter: "in < a year, all of higher education in usa could be rocking on Node.js. motherfucking web won't even know what hit it" -- jalbertbowdenii. http://twitter.com/jalbertbowdenii/status/21952102065
[23:23] eisd: v8 1
[23:23] eisd: err...wrong channel sorry
[23:24] atmos: wtf is that guy ranting about the ncaa and apache for ?
[23:24] mjr_: The NCAA has a long history of weighing in on various web technologies.
[23:25] daleharvey has joined the channel
[23:25] _announcer: Twitter: "We ♥ node.js. We ♥ Rails Rumble. Combining the two, we got: Node.js Knockout — a 48-hour node.js coding contest. http://nodeknockout.com/" -- Panggi Libersa .J.A. http://twitter.com/panggi/status/21952303304
[23:25] mjr_: I think there is some deal where they're trying to distance themselves from Native American team names and words like "Apache".
[23:26] atmos: sounds stupid from a technical perspective
[23:26] atmos: but i prefer nginx over apache anyway :)
[23:32] mscdex: maushu.com!
[23:33] maushu: Wat.
[23:35] charlenopires has joined the channel
[23:36] _announcer: Twitter: "@McBoof So basically, you put a keylogger on your site ;) Looks neat, charts in SVG? What's it backed by? Node.js?" -- andybeeching. http://twitter.com/andybeeching/status/21953068434
[23:36] mscdex: maushu: you should add tweeting capabilities so we can tweet back to these peeps :-(
[23:36] mjr_: Break out your time machine
[23:36] maushu: There is a bot around that should do that. I think.
[23:36] mjr_: Because you already can
[23:36] mscdex: maushu: they're both down for the count
[23:37] richcollins has joined the channel
[23:37] maushu: ANNOUNCER WINS. FLAWLESS VICTORY.
[23:37] maushu: etc.
[23:37] ajpiano has joined the channel
[23:37] mjr_: level up
[23:37] mscdex: /etc
[23:37] [[zz]] has joined the channel
[23:37] mscdex: /etc/victory.conf
[23:38] maushu: I'm really tired, I will try and add that tomorrow.
[23:38] mscdex: neato!
[23:38] mscdex: :-D
[23:38] maushu: Btw, tomorrow is my birthday. Wheres the caek.
[23:38] mjr_: I thought you could tweet back from announcer.
[23:38] mscdex: the cake is a lie
[23:38] maushu: CAEK.
[23:39] mscdex: btw isn't portal 2 coming out next year?
[23:39] maushu: One more step on my green mile.
[23:39] mjr_: caek boss
[23:39] maushu: mscdex, yup. I really love the new dynamics.
[23:39] mscdex: i was really hoping there'd be some cool tie-in to the half-life world
[23:39] maushu: Like LAZZERZ!, liquids and anti-gravity.
[23:39] mscdex: other than a brief mention
[23:40] maushu: You are going to watch the gameplay videos repeatdly AND ENJOY IT.
[23:40] mscdex: i've finished all the bonus maps
[23:40] mscdex: :(
[23:40] mscdex: need moar!
[23:41] maushu: Gold in everythign?
[23:41] mscdex: yeah
[23:41] mscdex: took awhile though
[23:41] maushu: Lies.
[23:41] mscdex: i liked the least portals challenges the most
[23:44] blogometer has joined the channel
[23:45] blogometer: If any of you recall me having problems with node-msyql earlier, I wanted to say that I resolved the issue.
[23:45] mjr_: that's the pure JS one?
[23:45] blogometer: mjr_: Yes.
[23:46] blogometer: I was closing the connection on myself.
[23:47] blogometer: It is working quite nicely now, node-mysql.
[23:47] _announcer: Twitter: "Just bought PeepCode's Node.js screencast (https://peepcode.com/products/nodejs-i). Looking forward to watching it tonight." -- Dennis Martinez. http://twitter.com/dennmart/status/21953832343
[23:47] mjr_: That's great.
[23:47] blogometer: Happy to be moving my projects from Java to Node.js. Need node-mysql to make that possible.
[23:47] mjr_: Having effortless MySQL support is super useful for node.
[23:47] blogometer: (Will use Mongo DB for all new projects, if I can help it.)
[23:47] mjr_: I'd imagine it's super useful anyway. It seems to have been for PHP.
[23:48] blogometer: mjr_: I guess I should blog about my experiences with it at week's end.
[23:48] blogometer: Also interesting is how much less code to express something in Node.js than in Java, I mean you know it's true, but how true, that's amazing.
[23:49] mscdex: yeah node-mysql is working pretty good after the recent commits
[23:50] mjr_: blogometer: How many XML files do you end up using in node?
[23:50] mjr_: Fewer?
[23:51] blogometer: ACTION Mourns those hours of his life sacrificed to XML.
[23:52] blogometer: mjr_: Separation of Concerns!
[23:52] mjr_: yeah, don't mix up those concerns
[23:52] blogometer: The battle cry of the config file programmer.
[23:52] mjr_: They might fight.
[23:54] raymorgan has joined the channel
[23:55] blogometer: Hey: How is everyone deploying Node.js. I need to deploy this application on CentOS.
[23:56] isaacs: i think npm is one of themost config-file-driven things i've ever written (or seen in the nodejs world) and there's not an xml file in sight.
[23:56] isaacs: turns out, xml is a bad language for configuration.
[23:56] blogometer: I'm going to just install to /opt, but I'm wondering if anyone has other ideas?
[23:56] blogometer: XML got spanked by JSON.
[23:56] mjr_: blogometer: I run node from upstart on Ubuntu so it auto-restarts.
[23:57] mjr_: Should it die.
[23:57] blogometer: I was going to use Monit.
[23:57] mjr_: Monit seems nice.
[23:57] _announcer: Twitter: "@jalbertbowdenii Node.js is not an apache replacement. Nor is it an ngjnx replacement or an IIS replacement. They serve different purposes." -- JR. http://twitter.com/jrsmith/status/21954555465
[23:57] blogometer: Maybe I should use something more aggressive than monit?
[23:57] mjr_: I'd probably do upstart + monit if I was setting up something new.
[23:58] blogometer: Does upstart restart immediately?
[23:58] mjr_: yep
[23:58] mjr_: It'll back off it the restarts are happening too quickly.
[23:58] blogometer: Nice.
[23:58] Tim_Smart: blogometer: I usually use nginx + upstart + monit
[23:58] blogometer: mjr_: But, you just build from source?
[23:58] mjr_: I'm not sure that upstart is the best way to do that, but it is part of ubuntu.
[23:59] mjr_: Since the rest of ubuntu is using it, and I'm using ubuntu, it seems natural to use upstart.
[23:59] Tim_Smart: rauchg_: Ping.
[23:59] blogometer: Again, I'm on CentOS for this application.
[23:59] blogometer: Yes. I'm going to put nginx in front of it.
[23:59] _announcer: Twitter: "Top Ruby Article: Meet Node.js Part I: http://bit.ly/aLOsgY" -- Ruby Reflector. http://twitter.com/RubyReflector/status/21954713604