[00:02] _announcer: Twitter: "@NeilCrosby in future, use http://tempalias.com. It's more awesome cause it was built in node.js" -- Colin Gourlay. http://twitter.com/collypops/status/15964465220 [00:09] ryah: pquerna: a few more comments [00:09] ryah: line 60ish put a nextTick around _startWatcher [00:09] ryah: so that people can listen for 'listening' after calling bind() [00:10] ryah: (don't emit 'listening' until the nextTick) [00:10] ryah: pquerna: also it appears that if you send() but have not called bind() you start a watcher [00:11] ryah: pquerna: that seems unnecessary [00:11] ryah: (line 99) [00:11] jashkenas has left the channel [00:12] ryah: otherwise i think it's looking very fine. [00:14] Aria has joined the channel [00:18] pquerna: okay, yeah, i was wondering what nextTick was used for [00:19] pquerna: ryah: well, if thats not there, you can't get an ephermal port and listen for responses [00:19] pquerna: common in p2p style clients [00:19] pquerna: even things like a memcached client would use that style [00:22] ryah: pquerna: ah okay [00:22] ryah: nevermind then [00:23] ryah: i was just thinking about hte case where someone might want to fire off a message and then close the socket [00:23] ryah: without incurring the overhead of turning on a watcher [00:23] pquerna: could make it explicit either way [00:24] pquerna: need to run, will be late or tomorrow. [00:24] ryah: ok [00:24] ryah: pquerna: test too :) [00:25] _announcer: Twitter: "FINALLY! I have node.js running on Windows 7. (cc: @ryah)" -- Joe McCann. http://twitter.com/joemccann/status/15965743835 [00:27] _announcer: Twitter: "Connect's description: Connect is a middleware layer for Node.js http://bit.ly/9CTU0Y" -- Yevgeniy Viktorov. http://twitter.com/yviktorov/status/15965820311 [00:31] charlesjolley- has joined the channel [00:38] mattly has joined the channel [00:47] _announcer: Twitter: "A HTTP load/traffic generator and benchmark tool built on Node.js http://goo.gl/fb/oHYoz #fb" -- kmartino. http://twitter.com/kmartino/status/15966898364 [00:48] saikat: a lot of my callbacks are of the form callback(err, value). is there anything wrong with doing something like this - http://gist.github.com/435252 [00:48] saikat: otherwise i am ending up doing a check for err and putting a try/catch within each indented closure [00:57] cwolves has joined the channel [00:59] _announcer: Twitter: "What do people use to edit Node.js programs? Emacs' javascript-mode doesn't do so well with nested functions." -- Saikat Chakrabarti. http://twitter.com/saikatc/status/15967545216 [01:06] Yuffster has joined the channel [01:08] stevendavie has joined the channel [01:12] Aria: ryah, did you drop --system from configure? [01:13] ryah: Aria yes [01:13] Aria: Doh. [01:13] ryah: Aria: but there is a replacement [01:13] Aria: Oh, good. 'cause I have to unbreak my package build. [01:13] ryah: Aria: ./configure --help [01:13] Aria: Ah, --shared-foo? [01:13] ryah: sorry, would have consulted if i knew you were packaging [01:13] Aria: Hehe. No problem. This is sane ;-) [01:15] Aria: Ooh. very sane. Thank you, nice improvement! [01:15] sanderjd has joined the channel [01:19] SamuraiJack has joined the channel [01:23] _announcer: Twitter: "the Node.js presentation by Ryan Dahl in the background while i work. http://blip.tv/file/3735944" -- Eric. http://twitter.com/ericzoo/status/15968878027 [01:32] ryah: the repl actually works [01:32] ryah: amazing. [01:32] ryah: readline, i should say [01:33] stepheneb has joined the channel [01:34] mau has joined the channel [01:34] Aria: Ooho! Yes it does! [01:37] saikat has joined the channel [01:41] saikat has joined the channel [01:43] _announcer: Twitter: ""its not Rails-terrible" - Dahl on node.js vs rails at node's response time with 200kb for 300 concurrent users. is rails that bad? lol" -- Eric. http://twitter.com/ericzoo/status/15970007152 [01:44] derbumi has joined the channel [01:47] Aria: ACTION laughs. That quote made me laugh earlier today. [02:05] stepheneb has joined the channel [02:05] JimBastard has joined the channel [02:07] Aikar has joined the channel [02:12] derbumi has joined the channel [02:15] rolfb has joined the channel [02:16] jedschmidt has joined the channel [02:16] jedschmidt: wow, readline + REPL by omitting args is awesome. nice work, folks! [02:23] softdrink has joined the channel [02:27] _announcer: Twitter: "pushed http-console 0.3.0, with a bunch of improvements, and native readline support! — make sure you upgrade to the latest #nodejs" -- Alexis Sellier. http://twitter.com/cloudhead/status/15972465622 [02:27] _announcer: Twitter: "watching a great nodejs presentation /by @ryah http://bit.ly/cDI2Ge #nodejs #jsconf" -- Régis Gaidot. http://twitter.com/rgaidot/status/15972470727 [02:37] _announcer: Twitter: "node-ogl is partially working on osx, still needs some work as it is segfaulting randomly #nodejs" -- Elijah Insua. http://twitter.com/tmpvar/status/15973075657 [02:44] kevm has joined the channel [02:47] rictic has joined the channel [02:50] JimBastard: yeah tmpvar [02:52] mjr_ has joined the channel [02:54] kevm has joined the channel [03:07] _announcer: Twitter: "@DRMacIver it's driving me to seriously contemplate converting my ruby code to js on node.js (likely), erlang (maybe) or clojure (unlikely)" -- Chris@SocialTexture. http://twitter.com/communicating/status/15974511509 [03:07] mattly has joined the channel [03:19] dji has joined the channel [03:21] ceej_ has joined the channel [03:25] jxson has joined the channel [03:29] _announcer: Twitter: "Re-org of functional (node.js / fab.js / raphael.js) code using napkins: http://bit.ly/99IUDV #mychain" -- Chris Strom. http://twitter.com/eee_c/status/15976129105 [03:32] jedschmidt: is anyone else experiencing weird behavior from sys.puts? subsequent calls start at the last column for me. [03:33] jedschmidt: so sys.puts("x"); sys.puts("x"); sys.puts("x"); looks like this, where _ is whitespace: [03:33] jedschmidt: x [03:33] jedschmidt: _x [03:33] jedschmidt: __x [03:39] hsuh has joined the channel [03:39] tsyd has joined the channel [03:39] guybrush has joined the channel [03:39] Pilate has joined the channel [03:39] kevm: not from REPL [03:40] tmpvar has joined the channel [03:40] isaacs_home has joined the channel [03:40] tmpvar: is there a good way to debug node/v8? I'm up against some segfault that is deep in v8 [03:40] mscdex: ndb? [03:41] jedschmidt: weird, this only occurs when i puts after starting a REPL. [03:41] tmpvar: mscdex, not sure if thats going to cut it :/ this is all in c/c++ land [03:44] jedschmidt: kevm: try require("repl").start() from REPL to see what i mean. [03:48] kevm: jedschmidt: I see what you mean. node noob here what exactly does that get me from within REPL? [03:48] jedschmidt: kevm: well, from a node script it would start an interactive REPL. [03:48] sdgvf has joined the channel [03:48] jedschmidt: kevm: aka, the same REPL you'd have by calling node with no args. [03:49] kevm: heh just hit the REPL docs. So when I require REPL within a REPL console I get lots of weird spacing and duplicate output. [03:50] isaacs_home has joined the channel [03:50] isaacs has joined the channel [03:51] jedschmidt: kevm: right, but start repl from a node script and then use puts. [03:51] isaacs: jedschmidt: what's the issue? [03:51] jedschmidt: once i start a repl in a node script, all subsequent puts are borked. [03:52] isaacs: hrm... [03:52] isaacs: that's weir [03:52] isaacs: d [03:52] jedschmidt: they line break, but don't reset the column of the next puts. [03:52] isaacs: also, starting a repl in a repl is the weirdest thing ever [03:52] isaacs: everything's getting duplicated. [03:52] _announcer: Twitter: "@Rhiokim 잘된다니 다행이군요, NodeJS 와 CouchDB도 곧 올릴 예정인데, 지금은 LVM2 하드 증설에 대해서 쓰고 있는 중,," -- A.J. http://twitter.com/andrwj/status/15977433621 [03:52] jedschmidt: isaacs: (right, that was just to show you what the borked formatting looks like) [03:52] tmpvar: funny, node-ogl works perfectly in linux. completely shits itself under osx [03:52] isaacs: jedschmidt: works fine for me [03:53] isaacs: jedschmidt: oh, wait, i bet you're using the readline stuff... [03:53] jedschmidt: yeah. [03:53] jedschmidt: latest version. [03:54] isaacs: jedschmidt: just set NODE_NO_READLINE=1 [03:55] isaacs: and then use rlwrap, like the good old days [03:56] jedschmidt: well, seems like this would be a bug? [03:56] jedschmidt: http://gist.github.com/435402 [03:56] isaacs: jedschmidt: indeed. [03:56] isaacs: my vote is to remove readline.js [03:57] isaacs: or at least have a way to suppress it other than an env var. [03:57] jedschmidt: isaacs: i guess i don't know enough about how terminals work. [03:57] isaacs: but the people, they like their readline functionality, and they dont wanna use rlwrap, so thems the breaks. [03:57] isaacs: and i guess there are use cases where you want to go repl-ish, but just for like a second or something [03:57] jedschmidt: isaacs: is there any way to keep readline by fix this? [03:57] jedschmidt: but fix this? [03:58] isaacs: jedschmidt: probably, yes [03:58] isaacs: jedschmidt: but i don't know enough about how this thing works to answer that. [03:58] jedschmidt: okay, i'll file an issue. [03:58] fictorial: fwiw, re: readline: http://github.com/antirez/linenoise [04:00] fictorial: ok I turn into a pumpkin soon -bye. [04:02] jedschmidt: okay, http://github.com/ry/node/issues/issue/172 [04:04] _announcer: Twitter: "New blog post: Starting with Node.js.: http://bit.ly/cXugeg" -- Hernan Garcia. http://twitter.com/theprogrammer/status/15978109419 [04:04] _announcer: Twitter: "@chrismatthieu thinking about node.js really -it's not mature but I like the idea of writing frontend code and backend code in the same lang" -- Alex Bosworth. http://twitter.com/alexbosworth/status/15978117844 [04:08] derekcollison has joined the channel [04:08] derekcollison: Anyone have issues with make test for the new 0.1.98 under macosx? [04:09] isaacs: derekcollison: what's your issue? [04:10] derekcollison: Path: simple/test-http-upgrade fails [04:10] derekcollison: assert:80 [04:10] derekcollison: AssertionError: "0\r\n\r\n" == "HTTP/1.1 200" [04:10] derekcollison: at Stream. (/Users/derek/Development/node-v0.1.98/test/simple/test-http-upgrade.js:135:12) [04:10] derekcollison: at Stream.emit (events:25:26) [04:10] isaacs: derekcollison: weird. works for me? [04:10] derekcollison: at IOWatcher.callback (net:507:14) [04:10] derekcollison: at node.js:221:9 [04:10] derekcollison: I'll try to rebuild.. [04:12] derekcollison: Worked that time.. [04:12] derekcollison: I did make -j 8, that probably caused the problem.. [04:12] derekcollison: Thanks Isaac.. [04:12] isaacs: np [04:12] isaacs: :) [04:13] _announcer: Twitter: "@alexbosworth I'll have read up more on node.js. Sounds interesting." -- Chris Matthieu N7ICE. http://twitter.com/chrismatthieu/status/15978573721 [04:19] mjr_: yeah, readline is hard to get right [04:20] mattly has joined the channel [04:23] maushu: File descriptor passing on unix sockets. (Peter Griess) [04:24] maushu: Oh nice. [04:25] mjr_: ACTION passes a file descriptor to maushu [04:25] maushu: ACTION eats it. [04:34] tmpvar_ has joined the channel [04:38] isaacs: ryah: you around? [04:39] isaacs: ryah: seems like that phantom error-less abort might be related to sending the file over https [04:45] ph^ has joined the channel [04:55] keeto has joined the channel [04:57] keeto has joined the channel [05:02] _announcer: Twitter: "Node.jsからGTKを呼べないか考えるなど" -- KOBA789. http://twitter.com/koba789/status/15981081307 [05:15] halorgium has joined the channel [05:21] admc has joined the channel [05:21] jakehow has joined the channel [05:23] nsm has joined the channel [05:27] pquerna: ryah: heya [05:43] isaacs_home has left the channel [05:44] jedschmidt has joined the channel [05:47] nikhil_ has joined the channel [05:50] _announcer: Twitter: "Node.js keeps getting better & more exciting - Connect is a middleware layer for Node.js: http://github.com/extjs/Connect" -- Chris@SocialTexture. http://twitter.com/communicating/status/15983334320 [05:57] ewdafa has joined the channel [05:57] rdrake has joined the channel [05:58] smtlaissezfaire has joined the channel [05:58] jedschmidt: deanlandolt_: ping [05:59] smtlaissezfaire: Can someone recommend a benchmarking library to me? I know JimBastard was looking for one the other day. [06:00] tmpvar_ has joined the channel [06:01] smtlaissezfaire: nm - looks like there is benchmark.js: http://github.com/mnoble/Benchmark.js [06:02] joshbuddy has joined the channel [06:02] wilmoore has joined the channel [06:05] cedricv has joined the channel [06:07] jakehow has joined the channel [06:10] dji has joined the channel [06:11] smtlaissezfaire: Hey jakehow. I didn't realize you were into node. [06:35] smtlaissezfaire has joined the channel [06:38] qFox has joined the channel [06:58] felixge has joined the channel [07:00] jetienne: hi [07:06] wilmoore has joined the channel [07:09] _announcer: Twitter: "awasome, i will be on time to join the whole session of nodejs. I am very excited, have thoughts about nodejs for about 2 months now #dpc10" -- Dennis vd ende. http://twitter.com/Dennisvdende/status/15986527773 [07:27] wilmoore has joined the channel [07:28] _announcer: Twitter: "submitted my first #node.js patch: UDP datagram support! http://github.com/pquerna/node/tree/udp" -- Paul Querna. http://twitter.com/pquerna/status/15987265433 [07:34] jetienne: pquerna: nice [07:41] jetienne: there is a bug in the event handling, sometime event are lost [07:41] pquerna: hmm? [07:41] pquerna: in the udp patch? [07:41] jetienne: like "i dont receive network data IF i dont press the keyboard" [07:41] jetienne: pquerna: yes [07:42] pquerna: that seems odd. hmm. [07:42] pquerna: what platform? [07:42] jetienne: pquerna: the bug is seen thru http. nothing to do with udp [07:42] jetienne: my sentences were unclear [07:43] jetienne: pquerna: i just like udp a lot [07:43] micheil: jetienne: hey [07:43] jetienne: micheil: hey [07:43] micheil: anyone seen pgreis about? [07:43] pquerna: lol [07:43] micheil: erm.. pgriess [07:43] micheil: http://github.com/pgriess/node-websocket-client [07:45] jetienne: oh my bad about the network with keyboard press requirement [07:45] b_erb has joined the channel [07:45] jetienne: ./oload_stress_test.js* <- this with #!/usr/bin/env node as first line => require to press a key to start [07:46] qFox has joined the channel [07:46] jetienne: this is likely a weirdness of shell expansion [07:48] sechrist has joined the channel [07:49] jetienne: nah [07:54] jetienne: http://pastebin.com/7cxQRfXN <- the weirdest bug ever :) require('http') wont pass unless i press a key [07:54] jetienne: OR do a sys.puts('anything') before... i can reproduce that everytime [07:56] jetienne: ok funny race :) [07:57] mikeal has joined the channel [08:00] _announcer: Twitter: "#barcampsh session on node.js, a Javascript event server, brought to us by Todd Cullen. Play along at http://192.168.1.133:8124/" -- Micah Sittig. http://twitter.com/msittig/status/15988470971 [08:05] mikeal has joined the channel [08:08] sechrist has joined the channel [08:09] mikeal has joined the channel [08:13] lobridge has joined the channel [08:22] micheil: fuck. just accidentally removed my working copy of my websocket-server [08:23] micheil: oh well. [08:29] jedschmidt: this test is pretty flawed: http://www.sitepen.com/blog/2010/06/11/jsgi-vs-connect-for-node-middleware/ [08:29] jedschmidt: (1) it writes a string for connect, but not JSGI [08:29] jedschmidt: (2) it spawns a server for connect, but not JSGI [08:30] jedschmidt: (3) it's sync... isn't connect supposed to be async? [08:31] _announcer: Twitter: "Session on node.js by Todd Cullen @Shakakai at #barcampsh was very cool, gave the notes through his local web server. Effective technique." -- Micah Sittig. http://twitter.com/msittig/status/15989583028 [08:35] jetienne: jedschmidt: most likely [08:39] _announcer: Twitter: "@clmntlxndr je vais le tester bientôt! APE à l'air vraiment bon! y a aussi nodejs mais qui paraît un peu limité" -- Farid Safi. http://twitter.com/FaridSafi/status/15989869125 [08:42] jetienne: anybody aware of a code using crypto.digest ? [08:44] _announcer: Twitter: "now up to listen to a talk about PHP and nodejs. #dpc10" -- Jan Borger. http://twitter.com/birdbook/status/15990060611 [08:45] _announcer: Twitter: "now watching php and nodejs #dpc10" -- ivar. http://twitter.com/ivar/status/15990092034 [08:45] micheil: jetienne: what do you need from it? [08:46] jetienne: micheil: a sample code to see how to use it [08:46] jetienne: var hash = crypto.createHash('md5'); [08:46] jetienne: hash.update(""); [08:46] jetienne: sys.puts("result="+hash.digest('hex')); [08:46] jetienne: something like that :) [08:46] micheil: hmm.. [08:46] _announcer: Twitter: "Sitting in the 'PHP and node.js' talk. A topic I wanted to look myself into for quite a while. Hoping for a little motivation boost. #dpc10" -- Raphael Stolt. http://twitter.com/raphaelstolt/status/15990123959 [08:46] jetienne: this is to stress test my p2p [08:47] jetienne: php vs nodejs hello world... nodejs is twice faster, oopsa [08:47] micheil: http://github.com/miksago/node-websocket-server/blob/master/lib/ws/connection.js#L393-400 [08:47] micheil: I just tried to max client my websocket server.. [08:47] micheil: ran into an issue.. 250 max open connections from one host. [08:48] jetienne: hmm they should have used hmac [08:48] jetienne: to prepend keys got issue [08:49] micheil: heh. I don't design the spec, I just implement it. [08:49] jetienne: micheil: may be the OS too [08:49] micheil: yeah [08:49] micheil: considering it's always 250 [08:49] _announcer: Twitter: "@clmntlxndr j'ai mis en place un chat nodejs hier, c'est rapide par contre je sais pas ce qu'il vaut si y a une grosse charge" -- Farid Safi. http://twitter.com/FaridSafi/status/15990220818 [08:49] _announcer: Twitter: "First workshop of the day: PHP and node.js #dpc10 - http://moby.to/at7stt" -- Timan Rebel. http://twitter.com/timanrebel/status/15990226444 [08:50] micheil: bbl. [08:50] isaacs: jetienne: i use crypto.hash in npm [08:50] _announcer: Twitter: "@FaridSafi nodejs tiens tres bien la charge, n'hesiter pas a le stress test" -- Jerome Etienne. http://twitter.com/jerome_etienne/status/15990268240 [08:50] jetienne: isaacs: ok [08:50] jetienne: ACTION do promotions for french tweeters :) [08:51] _announcer: Twitter: "Listening to @sschuermann at #dpc10 talking about node.js" -- antz29. http://twitter.com/antz29/status/15990298257 [08:51] isaacs: jetienne: http://github.com/isaacs/npm/blob/master/lib/utils/registry/adduser.js#L8-10 [08:54] _announcer: Twitter: "@hackcamp Anyone knowing well about Twitter API, NodeJS or Apache Solr? Come to the red-shirt guy on window side and say 'hi' plz. #hackcamp" -- Johan. http://twitter.com/freenerd/status/15990409804 [08:54] micheil: jetienne: do you think it would be cool to translate the docs into other languages? [08:54] micheil: like, when we're near 0.2.00 [08:55] jetienne: micheil: yep but a LOT of work to translate [08:55] jetienne: micheil: i think the first stage would be to get it nice in english [08:55] micheil: true, but once we're at 0.2.00 the API should be fairly stable [08:55] jetienne: micheil: this is still in early stage. so people coming to play with it are early birds, likely skilled and no problem with english [08:56] micheil: yeah, good point [08:56] jetienne: micheil: if you want a project, you can do what i call the "ez library" [08:56] jetienne: micheil: pure js library based on nodejs API but making it easier to use [08:56] jetienne: micheil: there is a node-utils with a http request. a lot can be done for the files too [08:57] jetienne: micheil: to copy the API of ruby library could be nice [08:57] jetienne: micheil: or you could port my p2p to 64bit :) [08:57] micheil: is your p2p on github? [08:58] micheil: oh. also. http://isitongithubyet.com/ what should go there? [08:58] _announcer: Twitter: "@Japh Hack on node.js + websockets :D" -- Micheil Smith. http://twitter.com/miksago/status/15990546932 [08:58] jetienne: http://github.com/jeromeetienne/neoip <- micheil but i was kidding. this is a major work, not a weekend toy :) [08:58] micheil: good lordy. [08:59] micheil: yeah, you have fun with that ;P [08:59] isaacs: jetienne: what is neoip? [08:59] isaacs: jetienne: needs a readme [09:00] jetienne: isaacs: yep, it has been the core tech of a startup i tried... failed the startup so publishing the whole stuff opensource :) [09:00] dabreaka has joined the channel [09:00] isaacs: i see [09:01] jetienne: neoip is 12 apps related to networking and p2p. one is a ipv4 which no more have address issue, but is still compatible.. another is a p2p able to read/write from http [09:01] _announcer: Twitter: "@miksago I've never use Node.js, so that could be interesting. Guys across the table are doing some Node.js stuff (cc @freenerd)" -- Japh. http://twitter.com/Japh/status/15990662506 [09:01] jetienne: currently working on neoip-webpack, the http+p2p mix [09:03] jetienne: micheil: another project could be to revamp the sys part. to get stderr output for example [09:03] jetienne: current one is not "unix old timer" compliant [09:03] micheil: yeah, I'm gunna go back to my protocols :P [09:04] mitkok has joined the channel [09:04] jetienne: :) [09:07] hellp has joined the channel [09:08] visnup has joined the channel [09:10] markwubben has joined the channel [09:13] _announcer: Twitter: "Video: Node.js by Ryan Dahl - JSConf.eu - 2009 http://bit.ly/ahjLkW #dpc10" -- Timan Rebel. http://twitter.com/timanrebel/status/15991078946 [09:16] derbumi has joined the channel [09:24] _announcer: Twitter: "Looking forward to gameQuery 0.5 really intersted to see how easy it will be to get working with NodeJS." -- Iain Carsberg. http://twitter.com/httpmmo/status/15991483281 [09:24] micheil: wow. this could've improved error handling in writes significantly. [09:25] micheil: next up: spam testing the code. [09:25] jetienne: anybody knows a working example of open/seek a bit/read a bit/close ? in nodejs obviously [09:29] utgo has joined the channel [09:33] nsm has joined the channel [09:33] _announcer: Twitter: "Very excited about node.js the talk of @sschuermann!" -- Peter Kruithof. http://twitter.com/pkruithof/status/15991805386 [09:35] jetienne: response.setEncoding('binary'); <- this costs me [09:36] hassox has joined the channel [09:41] _announcer: Twitter: "hm.. not so good talk about node.js, at least thats what I think... too long too little." -- Jan Borger. http://twitter.com/birdbook/status/15992071059 [09:42] CIA-77: node: 03Paul Querna 07master * r02da5ed 10/ (4 files in 3 dirs): (log message trimmed) [09:42] CIA-77: node: Implement datagram sockets [09:42] CIA-77: node: - Adds new dgram module, for all data-gram type transports [09:42] CIA-77: node: - Supports both UDP client and servers [09:42] CIA-77: node: - Supports Unix Daemon sockets in DGRAM mode too (think syslog) [09:42] CIA-77: node: - Uses a shared Buffer and slices that as needed to be reasonably [09:42] CIA-77: node: performant. [09:45] _announcer: Twitter: "@communicating I'm going to be spending some time this weekend porting a small merobe project to node.js to see how it goes." -- David R. MacIver. http://twitter.com/DRMacIver/status/15992223565 [09:47] _announcer: Twitter: "Nice follow-up after the node.js talk about CouchDB #dpc10" -- Peter Kruithof. http://twitter.com/pkruithof/status/15992305007 [09:48] _announcer: Twitter: "UDP in #nodejs courtesy of @pquerna! http://github.com/ry/node/commit/02da5ed4a1f63bb0990b8e7b1fd0793cd045cbb0" -- Ryan Dahl. http://twitter.com/ryah/status/15992318617 [09:53] visnup has joined the channel [10:04] _announcer: Twitter: "Node.js will destroy the web!!!!!!!! (At least with my node based multi player version of DestroyTheWeb)" -- Malte Ubl. http://twitter.com/cramforce/status/15992916945 [10:10] markwubben has joined the channel [10:10] _announcer: Twitter: "@pquerna : thanks for nodejs UDP code" -- Olivier Goudron. http://twitter.com/ogoudron/status/15993118206 [10:14] saikat has joined the channel [10:17] jetienne: q. how to read part of a file in nodejs ? [10:17] TobiasFar has joined the channel [10:18] DRMacIver has joined the channel [10:20] jetienne: im a morron [10:34] nikhil_ has joined the channel [10:39] _announcer: Twitter: "I am currently doing the ground work to write a very simple XMPP server in node.js Reading the RFC at www.j.mp/dencF2" -- Sudar. http://twitter.com/sudarmuthu/status/15994150514 [10:43] zomgbie has joined the channel [10:46] jlilly has joined the channel [10:50] teemow has joined the channel [10:53] derbumi has joined the channel [10:59] hassox has joined the channel [10:59] skampler has joined the channel [11:00] Twelve-60 has joined the channel [11:01] kschzt has joined the channel [11:02] micheil_mbp has joined the channel [11:02] kschzt: would be cool to write a Hazelcast client / clone for Node ;) considering it, it's a bit of an undertaking [11:05] kschzt: I made a simple peer discovery / loss detector through an AMQP fanout channel last night, that's the easy part :) [11:07] kschzt: would be really useful to have distributed collections and queues [11:12] kschzt: but maybe I'll study the WebWorkers api first.. [11:16] jetienne: ok my p2p makes node crash :) [11:16] jetienne: http://pastebin.com/GaBHS8eJ <- the printed input [11:16] jetienne: outptu [11:16] jetienne: ok i give up :) [11:19] kschzt: jetienne, some missing argument? [11:19] kschzt: nah, parse error [11:20] micheil has joined the channel [11:20] jetienne: kschzt: nope, it seems related to the http client (nodejs) and the http server (my prog), my prog is doing "connection: close" and it seems to displease nodejs [11:20] micheil: jetienne: any more information? [11:20] jetienne: when pointed to appache, nodejs stay alive [11:21] micheil: what's the data you should receive from your p2p service? [11:22] jetienne: micheil: it acts as a normal http server [11:22] micheil: okay [11:22] jetienne: micheil: the issue is not there i think. i mean unrelated to p2p. this is more about compatibility on http [11:22] frodenius has joined the channel [11:22] micheil: can you dump the response to a regular request? [11:23] jetienne: http://pastebin.com/JYq8285Z <- the one from my p2p http server [11:23] jetienne: http://pastebin.com/TnXEwhKj <- the one from appache [11:24] jetienne: notice that mine include a "connection close" and that nodejs is crashing after the "end" event [11:24] micheil: why's there a double http? [11:24] jetienne: micheil: some weirdo url needed. this is normel [11:24] jetienne: normal [11:25] gwoo_ has joined the channel [11:25] jetienne: maybe the http server is not too cool with the server closing immediatly the connection [11:26] micheil: okay, yeah, the http server shouldn't close. [11:26] jetienne: micheil: connection: close ? and the http server should not close ? [11:27] jetienne: micheil: like it is up to the client to close ? [11:27] micheil: yeah [11:27] micheil: no, 206 is partial content [11:27] micheil: meaning, more to come [11:27] jetienne: na [11:27] jetienne: 206 = partial content. nothing on the future [11:27] jetienne: aka you ask part of a file/rescource [11:28] jetienne: imagine this is up to the client to close... this mean apache would never close its connection :) [11:28] jetienne: but lets check [11:29] jetienne: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html [11:29] jetienne: "HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion of the response." [11:29] jetienne: "in either the request or the response header fields indicates that the connection SHOULD NOT be considered `persistent' (section 8.1) after the current request/response is complete." [11:30] jetienne: "the sender to signal" in my case this mean the server [11:30] jetienne: i should try with 0.1.98 [11:31] jetienne: ok i need to get apache to close immediatly to see what happen [11:37] jetienne: and apparently this is nodejs which close the connection (by crashing or closing the socket) [11:38] DRMacIver: So I'm trying to parse a largeish (about 3M) JSON file. This seems to be causing some sort of unspecified error, but with no error message: http://pastebin.com/mwt5gMF3 [11:38] DRMacIver: Any idea why this might happen? [11:38] hassox has joined the channel [11:39] DRMacIver: The json is valid as far as I can tell (Yajl parses it fine) [11:39] micheil: DRMacIver: what's the full error? [11:39] jetienne: DRMacIver: this should not even do json.parse [11:39] jetienne: DRMacIver: read another file to see [11:39] DRMacIver: micheil: that is the full error. [11:40] DRMacIver: micheil: That's the problem. :) [11:40] jetienne: DRMacIver: you never call json.parse, correct ? [11:40] micheil: jetienne: has a point [11:40] micheil: JSON.parse is never called [11:40] DRMacIver: Oh, sorry [11:40] DRMacIver: I pasted the wrong version of the code. That was a tinkered version written to make sure it was getting the full data [11:41] DRMacIver: The correct version is exactly that but with JSON.parse instead of sys.print :) [11:41] DRMacIver: http://pastebin.com/LVyL8CvD [11:42] jetienne: DRMacIver: put a file with only "{}" in it, and read this [11:42] DRMacIver: Yeah, just tried that. Same error. [11:43] DRMacIver: Oh, is the problem perhaps that it's a buffer rather than a string? [11:43] DRMacIver: Yes, it is [11:44] DRMacIver: Adding data.toString() before the parse fixes it. [11:44] jetienne: nice [11:44] DRMacIver: Not the most informative of error messages though :) [11:45] jetienne: strong typing ftw :) [11:45] micheil: DRMacIver: better [11:45] micheil: fs.readFile returns a buffer when the encoding is not set./ [11:46] micheil: so, fs.readFile(name, encoding, callback) [11:49] DRMacIver: Ah, that is better. Thanks. [11:51] MattJ has joined the channel [11:51] jetienne: micheil: i would like to read in the middle of a file on the disk... where should i look [11:52] micheil: I don't think there is a method to do that. [11:53] derbumi has joined the channel [11:53] micheil: hmm.. too much memory in chrome & chrome kills javascript. [11:53] jetienne: grumble [11:53] kriszyp has joined the channel [11:53] jetienne: ryah: do you confirm it is impossible to seek in a local file ? [11:55] jetienne: grumble im a morron double [11:55] jetienne: position is an integer specifying where to begin reading from in the file. If position is null, data will be read from the current file position. <- this is NOT 0 as in 0 SEEK_SET [11:56] jetienne: micheil: seek is not available, but it is "hidden" in the fs.read(fd, buffer, offset, length, position, callback) [11:57] jetienne: i confused the "offset" with "position" [11:57] micheil: whoops. [11:57] micheil: hmm.. my websocket server.. sort handles okay when exchanging.. large data. [11:58] micheil: 1mb of packet size [12:02] micheil: I do note that large packets are massively latent in coming into the client [12:02] micheil: but that'd be a system / browser issue [12:02] micheil: and really, why would you be sending 1mb of data down a websocket connection? [12:04] jetienne: yep, what about a page which test latency+throughput on websocket ? [12:05] jetienne: then you dynamically produce a nice report and put that on the web. [12:05] jetienne: like sunspider bench but for websocket [12:08] micheil: uhh.. it's kinda really difficult to do that. [12:08] micheil: because testing throughput + latency in the browser means killing the browser [12:09] micheil: basically these test cases are fringe. [12:09] micheil: you're probably not going to send 100,000 packets in < 1sec [12:10] jetienne: micheil: like "browser send 20byte", "server plain echo it", "how long since browser get it back" [12:10] micheil: oh [12:10] jetienne: from 20b, 100b 500b 1k 20k etc.. [12:10] micheil: 1 mb is about 2 seconds, iirc. [12:11] jetienne: micheil: yep but the key was to be automatic :) [12:11] micheil: yeah [12:11] micheil: 1276344682490s [12:11] micheil: 1276344683195r [12:11] micheil: s is when 1 mb was sent [12:11] jetienne: bts just suggesting [12:11] micheil: r is when the browser recieved a packet back [12:12] micheil: so about 700ms. [12:12] micheil: 705ms [12:12] jetienne: yep [12:12] utgo has joined the channel [12:13] stepheneb has joined the channel [12:14] micheil: heh. my current net stats, 3.20Gb transfer over 1 day [12:15] jetienne: :) [12:20] jashkenas has joined the channel [12:22] _announcer: Twitter: "¿Habrá alguien en España con problemas de carga en aplicaciones de red como para reescribir servicios en javascript/node.js?" -- Santiago Gala. http://twitter.com/sgala/status/15998441658 [12:36] hojberg has joined the channel [12:39] DRMacIver: How do I set the paths require looks into? The documentation claims it's a property require.paths, but this appears to be a lie. [12:41] DRMacIver: (in that the property isn't set when I check it, and setting it doesn't appear to do anything) [12:43] _announcer: Twitter: "@Chris_Ys 不过貌似是要安装node.js才能转换到javascript= =" -- aki. http://twitter.com/aki_xavier/status/15999460438 [12:45] hellp has joined the channel [12:48] javajunky has joined the channel [12:50] steadicat has joined the channel [12:50] _announcer: Twitter: "One of the most active mail group I've seen ever. #nodejs" -- Kadir Pekel. http://twitter.com/kadirpekel/status/15999805252 [12:57] mindeavor has joined the channel [12:57] neynenmo has joined the channel [12:58] javajunky has joined the channel [12:59] femto has joined the channel [13:01] kixxauth has joined the channel [13:05] neynenmo has joined the channel [13:06] stepheneb has joined the channel [13:11] BBB has joined the channel [13:28] micheil_mbp has joined the channel [13:34] sechrist__ has joined the channel [13:35] micheil has joined the channel [13:46] Aria has joined the channel [13:47] _announcer: Twitter: "HTML5 parser for #nodejs is now 8x faster. http://bit.ly/bCxQY2" -- Aria Stewart. http://twitter.com/aredridel/status/16002976785 [13:47] _announcer: Twitter: "[js人気情報] felixge's node-formidable at master - GitHub http://bit.ly/aD22Qf #javascript" -- jsMagazine. http://twitter.com/jsMagazine/status/16003004103 [13:52] _announcer: Twitter: "@mambenanje @nara_l @laluma africa should be lookign into javascript server-side programming for real time data pushing such node.js." -- ebot tabi. http://twitter.com/ebottabi/status/16003318217 [13:56] tav_ has joined the channel [14:01] nsm has joined the channel [14:10] srveit has joined the channel [14:13] markwubben has joined the channel [14:15] dabreaka has joined the channel [14:17] jherdman has joined the channel [14:17] mfeiri has joined the channel [14:17] Aria has joined the channel [14:21] derbumi_ has joined the channel [14:23] maushu has joined the channel [14:24] dabreaka_ has joined the channel [14:26] jetienne has joined the channel [14:31] _announcer: Twitter: "just got my first node.js example working, now just have to work out how to do some funky stuff" -- Garry Finch. http://twitter.com/gazraa/status/16005950429 [14:31] aho has joined the channel [14:36] mfeiri has joined the channel [14:37] weepy has joined the channel [14:41] weepy: has anyone here done much with mongo ? [14:41] weepy: recommend mongoose ? [14:46] _announcer: Twitter: "installing #nodejs on #dreamhost http://goo.gl/WZeI" -- Peter Dayo Banjo. http://twitter.com/dayosuperstar/status/16006963232 [14:48] jbrantly has joined the channel [14:53] dji has joined the channel [14:59] dji has joined the channel [15:00] mdx has joined the channel [15:04] sechrist__ has joined the channel [15:05] _announcer: Twitter: "とりあえず epoll と poll はそんなに楽しくなかったです. Node.js が楽しいんじゃないかなたぶん. さよなら." -- mooz 8 clicks. http://twitter.com/stillpedant/status/16008260352 [15:07] ako has joined the channel [15:20] brainproxy has joined the channel [15:20] _announcer: Twitter: "it worked!! #nodejs #dreamhost" -- Peter Dayo Banjo. http://twitter.com/dayosuperstar/status/16009273758 [15:30] JimBastard has joined the channel [15:31] JimBastard: so guys ive lost it [15:31] JimBastard: i wrote a javascript audio sequencer that builds songs bases on nested JSON arrays [15:31] JimBastard: its working in node right now using childprocess and afplay [15:31] JimBastard: http://github.com/Marak/JSONloops/blob/master/demo.js [15:32] JimBastard: the childprocess afplay can barely hold a metronome....got tmpvar working on the openAL bindings [15:32] JimBastard: im gonna see if i can port this to the browser using embed tags or maybe a SWF with externalinterface [15:35] devtime has joined the channel [15:37] JimBastard: ACTION waits for his props [15:37] ajpiano has joined the channel [15:44] mfeiri_ has joined the channel [15:50] kocolosk has joined the channel [15:51] kschzt: JimBastard *props* [15:51] JimBastard: yeaaaah the nub gave me props [15:51] JimBastard: :p [15:51] JimBastard: node and javascript is actually a pretty good platform for build audio apps [15:52] JimBastard: if i can get a solid channel to output audio to with no latency i can do some sick shit with this [15:52] kschzt: yup [15:52] JimBastard: the looper works right now at fixed BPM and fixed beats per measure [15:52] JimBastard: and the JSONLoops format is pretty solid [15:53] kschzt: 'the nub' will bbiab [15:54] jashkenas has left the channel [15:55] Aria has joined the channel [16:04] jedschmidt has joined the channel [16:05] screen-x has joined the channel [16:07] Guest80066 has joined the channel [16:10] utgo has joined the channel [16:12] cloudhead has joined the channel [16:12] softdrink has joined the channel [16:15] _announcer: Twitter: "Contemplating the outside heat and humidity while installing node.js. Cool. In here and in, you know, the computer." -- J.C.Burns. http://twitter.com/jcburns/status/16013060444 [16:21] teemow has joined the channel [16:29] innu: how to check if there is a process with xxx pid? [16:33] Yuffster has joined the channel [16:34] deanlandolt_home has joined the channel [16:44] mrjjwright has joined the channel [16:46] Aria: send it a signal 0. [16:51] _announcer: Twitter: "Node.js WebSocket module that works with new WebKit -76 protocol: http://github.com/miksago/node-websocket-server" -- Rob Flaherty. http://twitter.com/ravelrumba/status/16015266861 [16:53] markwubben has joined the channel [16:56] markwubben_ has joined the channel [17:02] mrjjwright has joined the channel [17:07] Clooth has joined the channel [17:08] wilmoore has joined the channel [17:12] tmpvar_ has joined the channel [17:16] sudoer has joined the channel [17:18] isaacs has joined the channel [17:32] jakehow has joined the channel [17:32] sechrist__ has joined the channel [17:38] ajpiano has joined the channel [17:39] aho has joined the channel [17:41] cloudhead: anyone got a good regexp for matching regexps? [17:41] mape: /\/.*\// ? [17:44] Aria: ++ [17:45] mape: Aria: know of a good regexp for matching regexps matching regexps? [17:46] cloudhead: lol [17:46] cloudhead: hmm [17:46] cloudhead: will that deal fine with escapes though? [17:46] mape: well you can't match a regexp object? [17:46] Aria: Are regular expressions a regular language, counting escapes? [17:47] Aria: I know without they are, but ... [17:47] Aria: With wrappers like // and escapes, my suspicion is not. [17:47] cloudhead: hmm [17:47] mape: you are talking about a regex in a string? [17:47] kschzt: the / can also be eg. | [17:47] maushu: mape, /\/\\\/\.*\\\/\// [17:48] mape: maushu: thanks [17:49] o_o has joined the channel [17:50] loxs has joined the channel [17:50] loxs: how do you guys internationalize node.js programs? [17:50] mape: loxs: I would say most don't [17:50] Aria: I've not yet, but I'd write something gettext-like [17:51] mape: but there were some l18n js stuff on ajaxian [17:56] mape: loxs: http://ajaxian.com/archives/l10n-js-js-localization-library [17:56] mape: not sure if it is any good though [17:57] cloudhead: anyone ever gotten a weird 'sys is not defined' error, even though it should be? [17:57] loxs: I'll have a look, thanks for sharing [17:59] JimBastard: hey loxs [17:59] JimBastard: im actually on that right now [18:00] mape: Isn't it fairly easy? At least in the basic parts? [18:00] loxs: JimBastard, I'm not yet, but in order to choose node.js for my application, I'll have to find some way to do it [18:00] JimBastard: im doing stuff with google translate [18:00] mape: Any my work we just ahve a json with the definitions and then use the keys to set lang and phrase [18:00] mape: and then a sprintf kinda deal [18:00] mape: *have [18:00] rnewson has joined the channel [18:01] mape: For the dynamic parts [18:01] loxs: mape, that doesn't work if you want to use existing tools for collaborating with translators. Things like .po editors [18:02] mape: loxs: yeah, but those are sucky [18:02] kschzt: that's what the translation companies typically produce though [18:02] loxs: mape, not if you need to have your translation by non-techy translators, who have never seen .json (but know how to work with .po files) [18:03] mape: Well then I just generate a file that is able to be used by .po people [18:03] mape: and then I import the po and make it not po [18:04] loxs: and you need to invent all the functionality like updating translations etc [18:07] kschzt: take a look at XLIFF too [18:08] mape: xml.. [18:08] kschzt: yup, but like you said, a converter ;) [18:20] tmpvar: wut wut! node-ogl runs on osx for ~15 seconds at 10fps before exploding [18:20] JimBastard: thats not 10000fps [18:20] JimBastard: lol [18:20] mape: tmpvar: Close to making a AAA-title on that? ;) [18:20] tmpvar: dude, not only does it segfault randomly, but it doesnt render properly [18:21] tmpvar: could be because I generated off of the mesa gl.h [18:21] JimBastard: rendering video with node is crazy, you gotta process audio lol [18:21] JimBastard: JSONloops will be badass once we add movie clip support [18:21] JimBastard: :p [18:21] tmpvar: lmfao [18:21] JimBastard: i dunno is JSONloops is a good name for the dataformat [18:21] tmpvar: dude, im-going-as-fast-as-i-can [18:21] JimBastard: or if it should just be the name of this sequencer [18:21] JimBastard: it occurred to me that JSONloops is a replacement for MIDI [18:22] mape: umpabumbadump-json? [18:22] JimBastard: lol mape [18:22] JimBastard: node-band was my first idea [18:22] tmpvar: JimBastard, OSC is the replacement for MIDI [18:22] JimBastard: mape: did you see my JSONloops? i wrote an audio sequencer in node that works. it ships with a 2 bar beat [18:22] mape: rock-node? [18:22] JimBastard: plays wav files through the console using afplay [18:22] JimBastard: lol [18:22] mape: JimBastard: nope? [18:23] JimBastard: http://github.com/marak/JSONloops [18:23] tmpvar: OSC is UDP based though ;) [18:23] JimBastard: thats like a very very basic proof of concept, i'll be polishing it and porting to browser over the next day or so [18:23] JimBastard: i wouldnt bother running it btw, the latency on childprocess and afplay is insane [18:24] JimBastard: im waiting for tmpvar to get me proper audio processing using a c add on [18:24] mape: JimBastard: when are you adding the dsp stuff? [18:24] markwubben has joined the channel [18:24] tmpvar: im waiting for osx not to suck, so i can finish opengl lol [18:25] JimBastard: mape: ask tmpvar lol [18:25] JimBastard: its been < 15 hours since i had this idea [18:25] JimBastard: so i think we are moving along fast enough [18:25] JimBastard: ahaha [18:25] tmpvar: mape, we're thinking about using openal [18:25] tmpvar: which is pretty low level :) [18:25] mape: Nice [18:25] mape: So I assume this ends up with node having a theme song? [18:25] mape: generated through node? [18:26] tmpvar: generated from your mind [18:26] mape: you probly don't want to listen to that [18:26] [[zz]] has joined the channel [18:29] pzich has joined the channel [18:30] derbumi has joined the channel [18:31] TobiasFar has joined the channel [18:32] cloudhead: JimBastard: you should port http://github.com/mental/bloopsaphone [18:32] cloudhead: or creating bindings for it [18:32] cloudhead: : > [18:32] JimBastard: word life [18:33] JimBastard: well im going to add vst support [18:33] JimBastard: and im going to build some virtual instruments in JS [18:33] JimBastard: im not there yet [18:33] JimBastard: i love audio production, i got like 300+ beats [18:33] JimBastard: two instrumental albums published [18:33] JimBastard: a couple of rap albums [18:33] JimBastard: lots of mixes [18:34] kschzt: what about fmod [18:35] peutetre has joined the channel [18:35] technoweenie has joined the channel [18:36] kschzt: instead of openal [18:39] shahbaz has joined the channel [18:39] vexter has joined the channel [18:39] tmpvar: kschzt, havent looked at it, what are your thoughts? [18:40] tmpvar: oh wow, I didn't see that UDP landed earlier [18:40] tmpvar: very very cool [18:40] kschzt: it's very widely used in the games industry sall i know [18:40] kschzt: yeah [18:40] tmpvar: got ya [18:41] kschzt: OSC would be really cool to have :) [18:42] tmpvar: yeah it would :)\ [18:42] tmpvar: so, FMOD licensing looks tricky [18:42] kschzt: :( [18:43] tmpvar: http://www.fmod.org/index.php/sales [18:47] kschzt: well, free for non-commercial at least [18:48] shahbaz: hi, javascript/node newbie here: i have an object that 'inherits' from events, i give it a 'write' method, which seems to conflict with 'write' from stream, if i name it something else, like 'writex' [18:48] shahbaz: i get an error saying stream has no such method [18:49] shahbaz: do i need to post some code snippets or does someone know a simple solution? [18:49] JimBastard: what do you mean "inherits" shahbaz [18:49] JimBastard: do you have a code snippet we can look at [18:50] kschzt: SuperCollider + OSC could work for your setup too :) mmmm neat [18:50] zomgbie has joined the channel [18:50] shahbaz: events.EventEmitter.call(this); and sys.inherits(Session, events.EventEmitter); [18:50] shahbaz: let me get you a snippet...it is about 300 lines of code some let me cut and paste choice line into patebin or something ... [18:51] tmpvar: do we have any python heads in the house? [18:52] kschzt: i know a little py [18:53] tmpvar: cool, I have a feeling im going to have to re-gen the opengl binding on each platform during the compile step.. right now its in php *duck* [18:53] kschzt: :) [18:54] vexter has joined the channel [18:54] tmpvar: running some tests now to see if that is indeed the case [18:54] vexter has left the channel [18:55] shahbaz: line five: http://pastebin.com/wQ0as4qu [18:55] shahbaz: writex tells me there is no such method in stream, if i change it to "write" it tells me the second argument should be a buffer [18:55] shahbaz: this is a server for a protocol, i am trying to hide the "net" package, but provide a similar interface [18:56] saikat has joined the channel [18:58] teemow has joined the channel [18:59] gwoo has joined the channel [19:02] kschzt: so I guess we can have multicast between nodes now that we have UDP right? :) [19:03] pquerna: yes [19:04] pquerna: well [19:04] pquerna: not quite [19:04] pquerna: recieving multicast isn't in there [19:04] pquerna: need to bind another function to do all the multicast stuff [19:04] tmpvar: good work man :) [19:04] kschzt: I see, nice one [19:06] kschzt: paving the way for a nice clustering solution :) [19:06] shahbaz: any ideas on how to get node to stop complaining about "stream" not having a "writex" method? [19:06] pquerna: well, thats actually why I wanted UDP support -- for heartbeating in my project [19:06] javajunky has joined the channel [19:06] bpot has joined the channel [19:06] kschzt: yeah, I used an AMQP fanout for that [19:06] pquerna: but I'm not all that interested in multicast tbh, none of my servers have multicast connections :) [19:07] kschzt: that's true in EC2 [19:07] pquerna: yes, which is where $work lives now days [19:09] skampler: pquerna: are you adding udp to node? [19:10] tmpvar: skampler, its already been landed :) [19:11] DRMacIver: kschzt: What's the state of amqp in node.js? I saw a project that seemed to be subscribe only. [19:11] skampler: that's great news! i've been waiting for that [19:12] kschzt: DRMacIver, I just submitted two tests to ry for his node-amqp project http://github.com/ry/node-amqp which works fine, except for headers and type fields [19:13] DRMacIver: Ah, cool. [19:14] kschzt: and the performance seems very good, it can certainly kill my backend nodes :b [19:14] temp01 has left the channel [19:16] DRMacIver: That's interesting to know. We've got a ruby setup which is tied together with amqp. Would be nice to integrate node into it for some performance critical bits [19:17] DRMacIver: Although we would need header support. Maybe I'll add that. It seems to be my fate to work on amqp clients. [19:18] kschzt: sending headers works, receiving them in node-amqp doesn't [19:18] temp01 has joined the channel [19:19] kschzt: DRMacIver, if you want to work on it, add this test http://pastie.org/1001951 [19:19] kschzt: type + headers -> first header key becomes type. I couldn't figure it out yet [19:19] kschzt: brb dog walk :) [19:20] markwubben has joined the channel [19:21] DRMacIver: I probably won't work on it just yet. Haven't decided how thoroughly I'm going to embrace node.js :) [19:22] DRMacIver: But it seems to sit at a nice intersection of tolerable language, being able to get people to work on it with me and decent performance. [19:22] SteveDekorte has joined the channel [19:28] smtlaissezfaire has joined the channel [19:31] b_erb1 has joined the channel [19:37] mrjjwright has joined the channel [19:38] softdrink has joined the channel [19:45] kschzt: DRMacIver, yep. I'm using it as a HTTP front end for Akka services ;) [19:46] kschzt: soo much nicer to work in JS than J2EE stack for HTTP... [19:48] kschzt: tmpvar, I reckon a node-osc project is in order [19:49] zaach has joined the channel [19:52] tmpvar: kschzt, dude.. how can you even compare J2EE with JS? [19:52] mape: java.* ? [19:52] tmpvar: yeah, but especially j2ee [19:53] kschzt: :) servlets v. node [19:55] isaacs: zaach: hey, you know what? if you don't care about exposing your username and password over unsecured interweb pipes, it seems like the publish issue is related to nginx's crappy https [19:55] tmpvar: thats not even funny, im stuck doing portlet stuff at work. FAIL [19:55] isaacs: or, node's crappy https client. [19:56] isaacs: zaach: not quite sure exactly which. but without https, it works flawlessly. [19:56] zaach: isaacs: ah [19:56] isaacs: zaach: so, you can do this: npm config set registry http://registry.npmjs.org/ [19:56] isaacs: zaach: note the lacking "s" [19:57] zaach: isaacs: right, I'll just do that for now [19:57] isaacs: zaach: it'll warn you about sending login info over an insecure channel, but it'll work. [19:58] maushu: My http server went down. [19:58] tmpvar: wooo! node-ogl is no longer segfaulting in osx! [19:58] mape: tmpvar: what was the issue? [19:58] tmpvar: i was using mesa headers to generate the binding [19:58] maushu: I found a giant panda scratching it. Anyone lost a giant panda? [19:59] tmpvar: in my infinite wisdom, I assumed that the #defines would be the same, etc etc [19:59] tmpvar: it still is rendering oddly, but it doesn't blow up randomly :) [19:59] mape: hehe k [20:00] mape: awsome http://groups.google.com/group/nodejs/browse_thread/thread/3754088b7b528166# [20:00] mape: anyone checked it out? Found any amazing win tips?... [20:01] javajunky: mape: I was so glad for that, before I found the link I just didn't know *what* to do [20:02] mape: Totally [20:02] mape: Wonder how many spam reports it takes to get it removed [20:02] DRMacIver: kschzt: I sometimes wake up screaming from j2ee flashbacks :) [20:03] javajunky: is cloning from github working for others ? [20:04] jetienne has joined the channel [20:04] mpoz2 has joined the channel [20:05] mape: javajunky: jup [20:05] javajunky: git clone http://github.com/visionmedia/kiwi.git working for anyone ? [20:05] mape: jup [20:05] mape: Receiving objects: 100% (2386/2386), 10.34 MiB | 2.15 MiB/s, done.Receiving objects: 100% (2386/2386), 9.65 MiB | 1 [20:05] mape: done done and done [20:05] javajunky: it goes to completion.weird. [20:06] mape: Seems to work fine here [20:06] technoweenie: javajunky: are you behind a firewall or something [20:06] javajunky: no . a NAT'd router, this is normally fine! [20:07] javajunky: (so yes a firewall. doh! .. but normally this is fine) .. looks like its something local to me though :( [20:07] javajunky: darn this howtonode article ain't gonna happen [20:07] javajunky: ooo works with git:// protocol [20:07] javajunky: meh [20:08] mape: blocking http? ;D [20:08] technoweenie: weird. can you try putting yourself on the dmz and trying again [20:08] technoweenie: and maybe try getting a full http trace of the server request/response [20:08] kschzt: tmpvar, another thing to look at for JSONLoops (I am a sound geek) is portaudio [20:08] technoweenie: hmm, you can probably only get what your computer is sending, not what your router is sending. i'd need to add something on our end [20:09] javajunky: not really, I'm as close to the 'DMZ' as I can get (I'm at home, connecting through an ADSL router [which is the firewall]) [20:09] javajunky: I can get the trace though (up to the router ) bear with [20:09] technoweenie: they usually have a dmz setting for a specific ip that skips the firewall [20:09] mape: but using git clone the client is initiating it? [20:09] mape: So the fw shouldn't block? [20:10] technoweenie: i mean if you dont care, dont bother. i ask because i work at github :) [20:10] javajunky: ok I'll briefly stick it in the dmz [20:10] javajunky: technoweenie: yeah I know, no worries . [20:11] javajunky: I'll be pissed if any of you fskers try to p0wn my mac in this interval [20:12] mfeiri_ has joined the channel [20:12] isaacs: technoweenie: you work at github? [20:12] isaacs: neato [20:12] tmpvar: kschzt, I don't know if I trust you any more, man. first FMOD then J2ee.. hrm [20:12] technoweenie: yup [20:12] rolfb has joined the channel [20:13] joshbuddy has joined the channel [20:13] kschzt: tmpvar :) portaudio might be appropriate for bindings [20:14] tmpvar: ill look [20:14] joshbuddy_ has joined the channel [20:14] tmpvar: fighting with node-ogl texture / depth buffer corruption [20:16] kschzt: trying to entice an experienced sound coder to learn Node through node-osc project. [20:17] grahamalot has joined the channel [20:23] tmpvar: kschzt, do you have something against openal? [20:23] kschzt: no [20:23] kschzt: whatever works best [20:24] tmpvar: k [20:26] saikat: a while back i remember seeing a realyl great article explaining how "this" in javascript works [20:26] saikat: i think it was possibly by creationix [20:26] saikat: anyone know what i'm talking about? [20:26] saikat: oh i think it was this (heh) - http://howtonode.org/what-is-this [20:27] javajunky: yeah its on howotnode.org [20:27] javajunky: err howtonode.org [20:27] javajunky: it is good [20:27] javajunky: 'what is this' I thikn [20:27] pitrpen has left the channel [20:29] mscdex: so when are we going to have an mp3 player for node? [20:29] mscdex: node-xmms! [20:29] mape: nightbird but node? [20:29] mscdex: :-D [20:29] mscdex: nodebird? [20:30] tmpvar: i have a feeling its quite a ways off lol [20:30] mscdex: ;-) [20:30] mscdex: then we can have node-ogl or whatever do the visualizations :> [20:30] mape: mscdex: http://mscdex.net/ wth? [20:31] mape: c:\> :S [20:31] mscdex: mape: yep :-) [20:32] mape: ish push [20:37] javajunky: technoweenie: I wouldn't worry about it, nothing HTTP appeasr to be working for me tonight :( I think my ISP is dropping packets or something, ughhhh [20:37] technoweenie: ahh lame, thanks for trying anyway [20:38] javajunky: well I'm still uploading my trace drop.io but its taking a very very long time [20:38] javajunky: (I suspect ACKs are struggling to make it upstream … ) [20:40] zomgbie has joined the channel [20:51] kkaefer has joined the channel [20:51] JimBastard: here is there is a library that takes a async call and makes it blocking and returns values? [20:52] JimBastard: ive got a bunch of APIs ive created here that are seperate and async, but i want to add a sync option for all of them. essentially reflect the async api as sync for fun [20:52] JimBastard: the use case for the sync calls are scripts that run once on one node instance and no other scripts run on the instance [20:55] kschzt: JimB, you mean something like Step? http://github.com/creationix/step [20:56] _announcer: Twitter: "Suffering from t-shirt envy at #hackcamp. I shall now proceed to distract myself with node.js..." -- Seyi Ogunyemi. http://twitter.com/micrypt/status/16029315971 [20:57] dji has joined the channel [20:57] kkaefer: is there a function in node that converts a string or buffer to xml unicode characters? [20:57] kkaefer: with proper escapes [21:03] mape: kriszyp: There? [21:03] aconran has joined the channel [21:07] jbaron has joined the channel [21:08] jsilver has joined the channel [21:17] JimBastard: kschzt: not really. i dont need a flow control library. i think need a small piece out of a flow control library. i've got the idea methinks [21:19] stevendavie has joined the channel [21:20] kschzt: JB, you want a synchronous call [21:21] JimBastard: yes... [21:21] JimBastard: thats what i said [21:21] kschzt: I think you can't have it :) [21:21] JimBastard: i beg to differ [21:22] JimBastard: i can do anything in javascript [21:25] sztanpet has joined the channel [21:25] tmpvar: you can have it [21:25] tmpvar: i told you how last night lol [21:25] tmpvar: timer + while loop ;) [21:26] tmpvar: i guess that is more for "sleep", but its the same concept really [21:27] kkaefer: what's the fastest way to xml-encode unicode characters in node? [21:28] tmpvar: looks for a js library that does it, liberate it (make it a commonjs module) and use it [21:29] ako has joined the channel [21:29] tmpvar: s/looks/look [21:30] JimBastard: sleep.js tmpvar? [21:30] JimBastard: i really like the idea of being able to alias my async API into sync API [21:31] technoweenie: doesn't node do it w/ fs methods [21:31] tmpvar: JimBastard, im not going to ask why, my previous comment was directed at kkaefer [21:32] JimBastard: yeah technoweenie , following that API [21:32] JimBastard: for instance say is a good example [21:32] JimBastard: say('fuck') [21:32] JimBastard: saySync('fuck') [21:32] JimBastard: but say the blocking is only for say commands [21:32] JimBastard: in translate.js, you can translate.text('yo soy tacos', callback); [21:33] JimBastard: would be nice to have, translateTextSync('yo soy tacos') [21:33] JimBastard: and translateTextSync blocked all execution [21:34] tmpvar: does translate.text() even need to be async? [21:34] jakehow has joined the channel [21:34] technoweenie: http://github.com/ry/node/blob/master/lib/fs.js#L176-198 [21:34] JimBastard: it should be, its using a webservice [21:34] tmpvar: ah [21:35] JimBastard: technoweenie: hrmmm [21:35] technoweenie: yea the 2 look identical except one simply doesnt pass a callback to binding.read [21:36] technoweenie: var binding = process.binding('fs'); [21:36] JimBastard: yeah i like how in node you gotta build the async api first and then really force a sync call [21:36] JimBastard: its dangerous giving people sync apis, but like if there is always a async counterpart, its use at your own stupidity [21:39] saikat has joined the channel [21:39] javajunky has joined the channel [21:40] technoweenie: process.binding isnt documented, so i'm going to assume its off limits [21:42] hammerdr has joined the channel [21:47] _announcer: Twitter: "http://yuilibrary.com/gallery/show/nodejs yui3 in nodejs, including yql calls cc @webgnu" -- Robert Brook. http://twitter.com/robertbrook/status/16031472160 [21:53] mape: technoweenie: or just abuse it to the limits [21:54] _announcer: Twitter: "friends and followers, please do send me every js innovation on server and client side you know of :) (looking at v8 and node.js so far)" -- nathan. http://twitter.com/webr3/status/16031764967 [21:55] _announcer: Twitter: "Working with #nodejs makes me sleepy :( it's just a lot of reading to understand what I'm doing. I don't understand sockets and proxies" -- Jeremy Woertink. http://twitter.com/jeremywoertink/status/16031818891 [21:55] JimBastard: man people are soo stupid [21:56] JimBastard: and they all seem to congregate on twitter [21:56] MattJ: Yeah, the ones that congregate on IRC are the cream of humanity [21:56] JimBastard: why the fuck would you take the time to announce and then discuss how you dont know something [21:56] JimBastard: go fucking learn it and ask contextual questions [21:56] JimBastard: fair enough [22:02] saikat: am I right that there is no way for me to write a test around getProject where getProject is defined here: http://gist.github.com/436130 that uses a mock redisClient without changing exports.redisClient globally? [22:02] saikat: or well, i shouldn't say no way [22:03] saikat: since i'd be curious to hear how others make mocks/spies that don't affect things globally [22:05] stagas has joined the channel [22:05] shahbaz: anyone know of a node example that emulates the "net" module, but does so for a custom protocol? [22:05] shahbaz: in other words, something that has the same interface as 'stream' but isn't tcp (and is implemented in pure javascript--no c)? [22:06] jashkenas has joined the channel [22:07] MattJ: I've done it in a browser script, I don't know exactly how closely it follows node, but I decided to keep the API the same so people wouldn't have to learn both [22:08] hammerdr has joined the channel [22:08] shahbaz: MattJ, not sure if that'll help. I have my custom protocol on top of tcp, i want client to "write(msg)" where msg is an object (not string/binary), but it isn't working (conflict with stream.write) [22:10] MattJ: You want something that uses Node APIs? or are you just looking for an example? [22:10] MattJ: I mean, mine mimicked a TCP stream, but didn't use a socket underneath [22:10] shahbaz: something that uses Node [22:10] javajunky has joined the channel [22:10] MattJ: I don't see that it would be hard [22:10] shahbaz: unfortunately, mine has to use sockets underneath, but hide away sockets from the client [22:11] shahbaz: then i wonder if you could look at this: http://pastebin.com/wQ0as4qu [22:12] shahbaz: line 5 gives me an error that "writefix" is not in stream...if i change its name to "write", i get an error that "write" must have buffer as second param [22:13] jashkenas: open question: When doing a deep comparison of two nested objects ... should NaN be equal to NaN? [22:14] tmpvar: shahbaz, can you paste more? It'd be nice to just copy/paste and test some stuff [22:14] jashkenas: Does it make more sense for NaN != NaN, like in the number spec, and in JS ... or does it make more sense for objects to be considered equal that have equal values for properties... even if one of those properties is accidentally NaN. [22:14] shahbaz: hm...let me see tmpvar [22:15] ivan: NaN != NaN always despite the badness of the decision many years ago [22:15] jashkenas: ivan: thanks. [22:16] ivan: inverting it just for a deep-compare would have to be a documented quirk [22:16] ivan: jQuery's qunit disagrees and does NaN == NaN I think [22:16] jashkenas: really... that's quite interesting. [22:17] javajunky: you can use isNan on the properties, if isNan returns true for both values [22:17] jashkenas: javajunky: yeah .. comparing it isn't a problem. It just seems like *a good thing* to have deep equality treat nan properties as equal. [22:17] tlrobinson_ has joined the channel [22:17] smtlaissezfaire has joined the channel [22:17] jashkenas: Otherwise, you can directly clone an object, run a deep isEqual, and get false. [22:18] javajunky: true [22:19] zaach: jashkenas: a NaN property is usually a bug, no? [22:19] ivan: well, people already expect that behavior even for a = NaN; b = a; a === b is false [22:19] jashkenas: yes. and having an accidental NaN cause isEqual to return false, when the objects are really the same, would turn the little bug into a bigger one. [22:19] jashkenas: http://github.com/ryantenney/underscore/commit/0e8ca3cb978f4fe0205a25ba94dd0564b5c2fc83 [22:21] zaach: jashkenas: I like bugs that make a lot of noise :) [22:22] jashkenas: zaach: btw, any new news happening with Jison? [22:23] zaach: better node support via npm [22:24] shahbaz: tmpvar, this should be runnable: http://pastebin.com/RAKwYXbQ [22:24] zaach: jashkenas: so now I'll be running tests routinely on node, and tuning performance, etc. [22:25] jashkenas: lovely. [22:26] shahbaz: tmpvar, this should be runnable: http://pastebin.com/RAKwYXbQ [22:26] shahbaz: with this as the test runner: http://pastebin.com/k83Js9DP [22:29] tmpvar: shahbaz, "this" is not what you think it is [22:29] admc has joined the channel [22:30] technoweenie has joined the channel [22:30] saikat: inside a function, is it possible to reference the Function object's properties? [22:31] tmpvar: shahbaz, http://gist.github.com/436148 [22:31] shahbaz: oh...self instead of this? [22:32] saikat: shahbaz: tells me self is not defined? [22:32] tmpvar: shahbaz, http://howtonode.org/what-is-this [22:32] saikat: oh sorry, not sure if you were talking to me [22:33] saikat: but yeah i just read the what-is-this article, and i see that this will refer to the context that the function is called within [22:33] dji has joined the channel [22:33] saikat: but is it possible to do something like [22:33] saikat: var x = function() { }; x.foo = 'hello'; [22:33] saikat: and have the function refer to x.foo? [22:33] tmpvar: yeah [22:33] tmpvar: x,foo [22:33] tmpvar: . sorry [22:34] shahbaz: tmpvar, i get the same thing "self" is not defined...and i'll check out the article too [22:34] saikat: but how does the function know that it is assigned to a variable called x? [22:35] technoweenie: shahbaz: that gist has a self = this; line. you have to define or set your variables before using them [22:35] shahbaz: :), thanks tmpvar, i'm looking at the article now [22:35] saikat: interesting, so "x" doesn't refer to x at all [22:35] saikat: or wait, nevermind [22:35] saikat: that's not true [22:36] saikat: i understand, thanks tmpvar [22:36] tmpvar: np [22:38] jashkenas: saikat: you can paste it into a browser console: [22:38] jashkenas: var x = function() { alert(x.foo); }; x.foo = "hello"; x(); [22:38] saikat: jashkenas: yeah i was just using the node repl [22:38] saikat: i only got confused because i then did y = x; y.foo = "world"; y() and got "world" [22:38] saikat: but then i realized [22:38] saikat: i'm modifying the same object [22:39] jashkenas: Just out of curiousity, is there anyone who would defend JS's dynamic scoping of "this" as a feature? [22:39] kevm has joined the channel [22:40] tmpvar: yes [22:41] hammerdr has joined the channel [22:41] jbr has joined the channel [22:46] pquerna: say I was writing a blog post, what is the prefered way to name NodeJS: Node.JS, NodeJS, Node.js, or something else :P ? [22:48] mde: Node.js seems to be pretty common. [22:48] mde: When I hashtag it, I usually try to cover both bases with #node.js and #nodejs though. [22:49] hammerdr_ has joined the channel [22:49] jashkenas: pquerna: the homepage uses "Node.js" [22:52] mde: As does the IRC channel. :) [22:55] smtlaissezfaire has joined the channel [23:04] mau has joined the channel [23:04] shahbaz: tmpvar, after a couple of days my project is moving forward again. java programmers should be warned about "this" :) thanks [23:12] smtlaissezfaire has joined the channel [23:32] dji has joined the channel [23:36] mikeal has joined the channel [23:37] magcius has joined the channel [23:39] _announcer: Twitter: "@stevelosh Unfortunately yes. XRefresh2 will be based on node.js so cross-browser. But: whats wrong with FF for Development? (…)" -- Martin Klepsch. http://twitter.com/mklappstuhl/status/16036461884 [23:39] JAAulde has joined the channel [23:40] kevm has joined the channel [23:40] _announcer: Twitter: "New blog post, Drinking the Node.js Kool-Aid: http://bit.ly/d5NBd5 #nodejs #node.js -- Two blog posts in one weekend, miracles happen!" -- Paul Querna. http://twitter.com/pquerna/status/16036503628 [23:41] softdrink has joined the channel [23:47] jedschmidt has joined the channel [23:47] iheartnodejs has joined the channel [23:48] iheartnodejs: :-D [23:48] jashkenas: that was cute. [23:49] mscdex: it was just a test ;-) [23:50] pquerna: this is only a test [23:52] mscdex: just need to make sure the ncurses bindings still work after every weekly patch [23:52] Aikar has joined the channel [23:52] kocolosk has joined the channel [23:57] towski has joined the channel [23:57] visnup has joined the channel