[00:00] bingomanatee: whats the best way to detect an integer/number in js? [00:00] Country has joined the channel [00:01] yozgrahame has joined the channel [00:02] locks has joined the channel [00:02] locks: howdy :) [00:03] tanepiper: bingomanatee: isNaN(value) ? [00:03] tanepiper: if false, it's a number [00:03] bingomanatee: thx. [00:03] zzak: locks: :o [00:04] mikeal: isaacs: the registry is growing at an alarming rate [00:04] mikeal: http://search.npmjs.org/ [00:05] tjholowaychuk: tanepiper: isNaN([]) [00:05] mikeal: the latest board is never under 24 hours anymore [00:05] tanepiper: v8: isNaN([]) [00:05] v8bot: tanepiper: false [00:05] tanepiper: mehh, i never said it was perfect :) [00:05] tjholowaychuk: :D [00:05] isaacs: mikeal: hm,it's still hovering around a gig [00:06] tanepiper: if (isNan(value) && !Array.isArray(value)) [00:06] mikeal: i wasn't referring to size [00:06] mikeal: in terms of disc [00:06] mikeal: but frequency of updates and pushes [00:06] isaacs: oic [00:06] broofa_ has joined the channel [00:06] ryah: flukes1: just another commit [00:07] dnolen has joined the channel [00:07] isaacs: mikeal: yeah, almost 1000 docs [00:07] mikeal: and people push updates a LOT [00:07] isaacs: mikeal: wer'e only one OOM from CPAN [00:08] mikeal: like, let me see what the PYPI update ratio is [00:08] isaacs: javascripters move fast [00:08] flukes1: ryah: http://pastie.org/1504344 I assume this is acceptable, going off the style guide (just want to confirm before i commit) [00:08] mikeal: i think people wrote perls scripts that automatically write other perl scripts that push to CPAN [00:08] derferman has joined the channel [00:08] tanepiper: metaperl [00:08] ryah: flukes1: use tools/cpplint.py [00:08] highriseo has joined the channel [00:09] flukes1: ah, ok [00:09] ryah: flukes1: there are probably many other errors in that file [00:09] ryah: flukes1: just fix yours [00:09] flukes1: yeah, tons I noticed just by looking at it [00:09] echosystm: what v8 type do you use for 'null' ? [00:09] flukes1: rgr [00:09] highriseo: Hey I"m having an issue where my app crashes after a couple hours of running on my hosting service. I can't figure out quite why its doing that. Anyone have any suggestions? [00:10] rwhitby has joined the channel [00:10] tanepiper: highriseo: run it through node-inspector with v8-profiler with node --debug app.js [00:10] highriseo: ok [00:11] highriseo: it usually takes a couple of hours to respond [00:11] echosystm: theres no specific v8::Value subclass for null values, so what do you use? [00:11] highriseo: sorry not to respond but to fail. where would I find a log? [00:11] echosystm: int32 with value 0? :/ [00:12] lukegalea has joined the channel [00:13] ryah: v8::Null() [00:13] v8bot: ryah: SyntaxError: Unexpected token : [00:14] flukes1: ryah: all done: https://github.com/ry/node/pull/586 [00:14] stepheneb has joined the channel [00:16] micheil: ryah: thoughts on that patch? [00:16] pyrotechnick has joined the channel [00:16] micheil: (writestream, from yesterday) [00:19] backthatzachup_ has joined the channel [00:20] tilgovi has joined the channel [00:20] shiawuen has joined the channel [00:21] CIA-99: node: 03Greg Hughes 07master * r1a5e513 10/ (src/node_crypto.cc test/simple/test-tls-ext-key-usage.js): [00:21] CIA-99: node: Fix style issues with ext_key_usage patch [00:21] CIA-99: node: Closes GH-586. - http://bit.ly/fPCfD1 [00:22] callaghan001 has joined the channel [00:22] abrookins has joined the channel [00:22] callaghan001: Hi there, I am having a problem on the ./configure step of the setup [00:22] callaghan001: error:could not configure a cxx compiler [00:23] rachelbutts: apt-get install build-essential [00:24] cloudhead has joined the channel [00:24] CIA-99: node: 03Ryan Dahl 07master * r6e53cf8 10/ README.md : Fix links - http://bit.ly/eXDXb2 [00:24] ryah: flukes1: thanks [00:24] callaghan001: that did not work - i'm using Cygwin - does that make a difference [00:24] callaghan001: ? [00:24] rachelbutts: yes it does [00:24] rachelbutts: apt-get is only for debian/ubuntu :(( [00:25] rachelbutts: you need gcc or something similar [00:25] callaghan001: i gcc installed - i thought the same [00:25] callaghan001: *i have gcc installed [00:26] callaghan001: i think it might have something to do with my cygwin install [00:26] callaghan001: gonna try that again [00:26] callaghan001: thanks for the help [00:26] Fuld: I thought v8 was written in C++? [00:29] riven has joined the channel [00:30] charlenopires has joined the channel [00:31] broofa_ has joined the channel [00:32] zomgbie has joined the channel [00:33] piscisaureus has joined the channel [00:34] kiddphunk_ has joined the channel [00:34] skm has joined the channel [00:34] echosystm: ok i'm totally lost [00:34] echosystm: v8::Local args[x]; [00:34] v8bot: echosystm: SyntaxError: Unexpected token : [00:35] echosystm: how do i make args[0] a null value? [00:36] rga has joined the channel [00:36] ryah: can someone make me a client to the github issues [00:37] ryah: so i don't have to scratch my eyes out? [00:37] clarkfischer: yeah, it's pretty buggy. [00:37] rga: Hi, someone can help-me from instal node.js on windows? [00:37] ryah: preferably mutt-like [00:37] clarkfischer: I like how they don't even use the github issue tracker to track github-issue issues. [00:38] rga: someone have this error? [00:38] rga: Build failed: -> task failed (err #2): [00:38] rga: {task: libv8.a SConstruct -> libv8.a} [00:39] sveimac has joined the channel [00:39] CIA-99: node: 03Ryan Dahl 07master * rf9f0e5c 10/ (src/node.js wscript): Pre-process out assert() - http://bit.ly/eBGSn3 [00:40] Ond: rga, virtualbox + ubuntu. Problem solved! [00:41] rga: Ond But I can run the node.js in ubuntu and access browser on windows? [00:42] Ond: Yep [00:42] rga: Ond How? [00:42] Ond: Same way you normally would [00:42] rga: Ond I need to configure samba for this? [00:43] Ond: You shouldn't need to configure anything. Try it out, rga [00:43] locks has left the channel [00:43] yhahn has left the channel [00:44] clarkfischer: ryah, have you seen pit? https://github.com/michaeldv/pit [00:44] clarkfischer: not exactly what you were asking for, but sort of close. [00:46] rga: Ond I try but don't work, only work in browser on ubuntu [00:47] Ond: Are you behind a router? [00:48] keyvan- has joined the channel [00:48] rga: Ond Yep [00:48] Ond: Well forward the ports of the ubuntu device, anyway [00:48] Fenda has joined the channel [00:49] jpick has left the channel [00:50] Lorentz: Dammit, I can't find any decent tut/doc on mongoose [00:50] Lorentz: Even the learnboost site tells me to use their github page since the api's changed/ing, but link goes to nowhere. [00:51] saschagehlich has joined the channel [00:51] Lorentz: Anyone got any suggestions or good examples? [00:51] Lorentz: All I have atm to go on is the example schema.js they have :\ [00:51] cainus: hey all... can anyone tell me how people are generally doing node in production? nginx + daemontools maybe? [00:52] Solsys_ has joined the channel [00:52] Fenda: question regarding socket.io. Anyway the server knows if client.send() doesn't get through? (returns error ?) [00:53] hornairs has joined the channel [00:53] wadey: cainus: we are doing nginx in front, http://libslack.org/daemon/ launching spark [00:53] wadey: not sure that we need nginx in front though, we have been debating that [00:54] rga: Ond This forward I make on virtualbox? [00:55] Ond: No just in your router configuration [00:55] cainus: wadey: I think I'll need it for https [00:55] cainus: if I'm not mistaken [00:55] Ond: You should see a new connexion which is your ubuntu device, forward the web traffic appropriately [00:55] jpick has joined the channel [00:56] rga: Ond But how i know what ip using on ubuntu [00:56] wadey: cainus: that definitly makes it easier [00:56] Ond: Doesn't it have a computer name or something listed? [00:56] Ond: Otherwise [00:56] CIA-99: node: 03Ryan Dahl 07master * rf71e4d8 10/ lib/module.js : [00:56] CIA-99: node: Fix process.assert problem [00:56] CIA-99: node: Introduced in f9f0e5c75c6a6fa32dd91f242c7463d467f6dcd4 - http://bit.ly/gM4KM5 [00:57] Ond: System > Administration > Network tools > Devices tab, select appropriate interface (if you're using the latest ubuntu) [00:57] Ond: (I think) [00:58] [[zz]] has joined the channel [00:59] cainus: wadey: is spark a load balancer? [00:59] CIA-99: node: 03Ryan Dahl 07master * rbfb6a67 10/ (7 files in 2 dirs): Another fix for process.assert - http://bit.ly/dRLkCk [01:00] wadey: cainus: its just a simple launcher which lets you have multiple processes share the same socket [01:00] wadey: to make use of multiple cores [01:00] wadey: https://github.com/senchalabs/spark [01:00] rga: Ond You have windows 7? [01:00] cainus: how does it know what process to defer to? [01:00] Ond: On my netbook I do [01:00] cainus: sounds like cpu load-balancing [01:00] Ond: In theory I am able to use windows 7, yeah [01:00] wadey: cainus: correct [01:01] cainus: interesting [01:01] cainus: thanks for the heads-up [01:04] rga: Ond I found the connect with virtualbox on windows, what I make now? [01:04] Nevtus has joined the channel [01:04] Nevtus has joined the channel [01:05] Ond: Forward HTTP to this device [01:05] CIA-99: node: 03Ryan Dahl 07master * rfbb7478 10/ (2 files): Remove more process.assert - http://bit.ly/hKRxpW [01:05] Ond: And because this is wildly off-topic I will now point you in the direction of www.google.com [01:06] rga: Ond Through the network connection settings windows 7 [01:06] TooTallNate has joined the channel [01:07] Ond: See above [01:07] overra has joined the channel [01:08] rga: Ond You had the same problem for my install cygwin? [01:08] Ond: Didn't attempt [01:08] sanslocust has joined the channel [01:09] rga: Ond For me, working with cygwin is easier, I do not know how to help solve the problem with cygwin? [01:10] eikke has joined the channel [01:10] sth has joined the channel [01:10] Ond: Are you asking if I can help you with cygwin? Answer: No [01:10] boaz has joined the channel [01:10] marcab has joined the channel [01:11] stephen_mcd has joined the channel [01:12] muk_mb has joined the channel [01:12] rga: Ond OK, Thanks [01:13] BrianTheCoder has joined the channel [01:15] gflarity has joined the channel [01:15] Poetro has joined the channel [01:16] dgathright has joined the channel [01:17] rjrodger_ has joined the channel [01:18] hanamaro has joined the channel [01:19] Kenta has joined the channel [01:20] nooder: anyone interested in developing torrent tracker? https://github.com/anhel/node-bittorrent-tracker [01:20] chrischris has joined the channel [01:23] Lorentz: Hmm, torrent tracker in node, huh [01:25] keks has joined the channel [01:25] ChrisPartridge: nooder: looks good [01:25] nooder: working good [01:25] nooder: very fast [01:25] ChrisPartridge: nooder: all those parseInt need the radix specified? [01:26] torvalamo: what if the code was dropped into a base 12 universe [01:26] torvalamo: specified radix would be helpful [01:26] rga: Ond I install node-v0.2.0 on cygwin and work :D [01:26] Ond: :thumbsup: [01:27] ipmb has joined the channel [01:27] torvalamo: only 0.2.0? [01:27] torvalamo: there's 0.2.6, you know [01:27] nooder: ChrisPartridge, you mean i have to use radix? no problem for now [01:28] rga: torvalamo I no try only 0.2.0 [01:28] nooder: ChrisPartridge, its 10 for default i think [01:29] ChrisPartridge: nooder: if tries to parseInt(08) for example, it will come back as 0 [01:30] ChrisPartridge: afaik [01:30] ChrisPartridge: I'm no javascript pro, but had the issue several times before :-) [01:30] airhorns has joined the channel [01:31] nooder: v8: parseInt(08) [01:31] v8bot: nooder: 8 [01:31] mike5w3c_ has joined the channel [01:31] ChrisPartridge: v8: parseInt('08') [01:31] v8bot: ChrisPartridge: 0 [01:32] nooder: yep, i see [01:32] pengo has joined the channel [01:32] nooder: so what is your solution? [01:33] ChrisPartridge: v8: parseInt('08', 10); [01:33] v8bot: ChrisPartridge: 8 [01:33] nooder: interesting :) [01:33] ChrisPartridge: Just need to specify the radix on each call [01:35] ChrisPartridge: nooder: considered using the node-mysql lib? [01:35] nooder: ChrisPartridge, thx [01:35] nooder: yep, will have to probably [01:36] nooder: just looking for 1 file db, or need to add submodule [01:36] ChrisPartridge: I'll fork it this evening and have a play around [01:36] nooder: it produces heavy load just for redis, so mysql can be used anything [01:37] devkorcvince has joined the channel [01:38] nooder: mysql even break conn due to inactivity :) using setinterval and tryed setting options on socket but it doesn't work [01:39] saikat has joined the channel [01:39] nooder: client dev suggests using mysql_ping before each query but this is madness [01:42] jimt has joined the channel [01:42] skm has joined the channel [01:42] forzan has joined the channel [01:45] CIA-99: node: 03Ryan Dahl 07master * r1f041fe 10/ lib/_debugger.js : debugger: prevent crash when backtrace doesn't come back - http://bit.ly/eb75m5 [01:45] CIA-99: node: 03Ryan Dahl 07master * rcb06abe 10/ (lib/child_process.js test/simple/test-exec-max-buffer.js): Helpful error when child_process.exec hit maxBuffer - http://bit.ly/fLM1Sa [01:49] lukegalea has joined the channel [01:53] zentoooo has joined the channel [01:57] markstory has joined the channel [01:57] ChrisPartridge: nooder: Try using node-mysql and see if the problem persists [01:57] jacobolus has joined the channel [01:59] mikeal has joined the channel [02:01] matt_c_ has joined the channel [02:02] nooder: ChrisPartridge, ok. will definitly try. i just like bindings :) i think if someone write hiredis bindings thats will be great [02:04] lukegalea has joined the channel [02:04] nooder: oops, there is one already [02:04] ChrisPartridge: :-0 [02:05] sveimac has joined the channel [02:05] Yuffster has joined the channel [02:05] ipmb has joined the channel [02:06] pyrotechnick has joined the channel [02:06] Fuld: If my program is busy for a while looping through processing text/appending to an array, will node.js stop it? [02:07] ryah: Fuld: no [02:07] ryah: it does not preempt processing, if that's what you're wasking [02:10] ChrisPartridge: ryah: do you ever sleep? [02:10] micheil: Fuld: how ever, while(1) {} will block node's event loop [02:11] ryah: ChrisPartridge: yes, but i wake up every few hours to check irc [02:11] nooder: ryah is amazing :) [02:12] ryah: hehe jk. :P [02:12] nooder: hope they paying you big money for such great work [02:14] mynyml has joined the channel [02:16] marienz has joined the channel [02:19] jimt has joined the channel [02:19] onar_ has joined the channel [02:20] Fuld: Has anyone written a text serializer for node? [02:21] Fuld: micheil: for won't block node's event loop? [02:21] ryah: Fuld: it will [02:21] Fuld: Well that's okay I guess [02:21] tedsuo has joined the channel [02:22] micheil: ryah: actually, it might be an idea to have something like that which pushes it off to a worker or something [02:22] ryah: try to get back to the event loop quickly [02:22] Fuld: ryah: I am doing some hardcore text processing. [02:22] micheil: Fuld: perhaps try to use a webworker, if you have large processing amounts [02:22] Fenda: can't get my head around setTimeout, closures and referencing :D [02:23] ryah: micheil: that would require being heavily involved with the vm [02:23] Fenda: this.uid in broadcastOffline() becomes undefined.. any idea how to avoid that? http://pastebin.com/3J3iQTME [02:23] micheil: ryah: hmm, okay [02:23] ChrisPartridge: ryah: know anyone that can code review an internal node app for some $$? is this something Joyent can do? [02:23] ryah: ChrisPartridge: email me, im sure i can find someone [02:23] Fuld: micheil: Node.js is going to be in the background getting jobs sent to it by a Python script on the Apache server using curl() [02:23] micheil: okay [02:24] micheil: so, what I'd recommend is using a queue plus worker processes [02:24] langworthy has joined the channel [02:24] Fuld: Yes, that sounds right [02:24] Fuld: To keep it simple now, it's just going to be one worker [02:24] micheil: or, use webworkers, which do pretty much that in app. [02:24] Fuld: *for now [02:24] Fuld: No one has written a text serializer for js have they? [02:24] micheil: yeah, so, the main process should be being talked to from python. [02:25] micheil: then the worker should get feed the data from the main process [02:26] ChrisPartridge: ryah: Thanks, I'll send something through today [02:26] micheil: Fuld: someone probably has. [02:26] Fuld: micheil: It basically needs to detect punctuation and spacing to chop up a bunch of text into a one-dimensionsal array of words [02:26] micheil: oh, right. [02:26] Fuld: Pretty simple [02:27] Fuld: ACTION is doing natural language processing in node.js :) [02:27] micheil: v8: "test. test test ".split(/[.\ ]/gi) [02:27] v8bot: micheil: ["test", "", "test", "test", ""] [02:27] micheil: like that? [02:27] Fuld: yeah [02:27] Fuld: regular expressions ftw ;d [02:27] micheil: .split shouldn't block, I don't think. [02:27] micheil: ryah: can you confirm that? [02:28] eee_c has joined the channel [02:29] cloudhead: isaacs: there? [02:29] isaacs: hi [02:29] ryah: micheil: well... depends on what you mean by 'block'... [02:29] cloudhead: isaacs: can't seem to authenticate with npm anymore.. has anything changed? [02:29] ryah: it's not async [02:29] micheil: okay. [02:29] cloudhead: it's telling me unauthorized name or invalid password [02:30] ryah: it should be fast most of the time [02:30] micheil: split would probably use similar to boyer-moer or something? [02:30] ryah: i guess they use it for the substring search [02:30] micheil: in which case it would be possible to write an async one. but yeah, it should normally be fast [02:32] KungFuHamster has left the channel [02:33] langworthy has joined the channel [02:34] davidwalsh has joined the channel [02:35] MatthewMueller has joined the channel [02:36] bingomanatee: Fluid did you have a question about tag clouds? [02:37] jakehow has joined the channel [02:39] luke`_ has joined the channel [02:41] mw has joined the channel [02:41] abraham has joined the channel [02:43] cloudhead: isaacs: you around? [02:43] isaacs: cloudhead: nah, should still work [02:43] isaacs: worked for me earlier today [02:44] cloudhead: isaacs: ok, then it must be on my end [02:44] cloudhead: is it supposed to work with 0.3.7-pre? [02:44] isaacs: cloudhead: try runnig `npm adduser`, perhaps after removing any _auth stuff out of your .npmrc file [02:44] isaacs: cloudhead: ohhh... wait, did the crypto stuff go away? [02:44] isaacs: that might be a... problem. [02:44] cloudhead: it changed [02:45] isaacs: yeah. ok. [02:45] cloudhead: well, some of it [02:45] isaacs: i'll have to look into it [02:45] cloudhead: thing is, I'm pretty sure it worked yesterday [02:45] isaacs: fornow, use 0.3.6, or 0.2.x or whatever [02:45] cloudhead: and I was already on 0.3.7 [02:45] cloudhead: but yea I'll try with .6 [02:47] jimt has joined the channel [02:48] philipharrison has joined the channel [02:53] meso has joined the channel [02:54] pHcF has joined the channel [02:54] bartt has joined the channel [02:55] matbee: does anyone here know how to find all users subscribed to a channel using faye? [02:58] ROBOTARMY has joined the channel [02:58] ROBOTARMY has joined the channel [03:00] zikes has joined the channel [03:02] luke` has joined the channel [03:03] tedsuo has joined the channel [03:03] jimt has joined the channel [03:04] sveimac has joined the channel [03:05] ryah: the main problem with 0.3.6 was the client changed [03:05] ryah: that will be fixed in 0.3.7 [03:07] ryah: wc -l ChangeLog [03:07] ryah: 1337 ChangeLog [03:07] ryah: :D [03:07] ChrisPartridge: hah [03:09] mscdex has joined the channel [03:10] pkrumins: :D [03:14] ryah: https://github.com/ry/node/wiki/ChangeLog [03:14] ryah: i put this up, feel free to add notes [03:16] tedsuo has joined the channel [03:23] jetheredge has joined the channel [03:23] mikeal has joined the channel [03:24] broofa has joined the channel [03:27] zentoooo_ has joined the channel [03:28] CIA-99: node: 03Ryan Dahl 07master * rdf5d5d6 10/ lib/tls.js : Fix option parsing in tls.connect() - http://bit.ly/fuQEts [03:28] CIA-99: node: 03Ryan Dahl 07master * r895968d 10/ test/simple/test-https-large-response.js : Add test-https-large-response.js - http://bit.ly/gBFNey [03:29] ryah: so - it seems like https is working [03:29] ryah: *shrug* [03:30] bingomanatee: sweet. thanks. [03:31] ChrisPartridge: ryah: even with larger requests? [03:31] SubStack: yay my awesome session module of awesome is looking super nice [03:34] ianward has joined the channel [03:34] micheil: ryah: hmm, is that https.Server or https.Request? [03:34] lukegalea has joined the channel [03:34] stepheneb has joined the channel [03:36] sh1mmer has joined the channel [03:37] heavysixer has joined the channel [03:38] cloudhead: anyone here able to push to npm? [03:39] ChrisPartridge: SubStack: if that means a new image on your blog, i'm excited ;) [03:39] micheil: cloudhead: the registry may be down, whats' the error? [03:39] mscdex: heh [03:39] SubStack: it does indeed! [03:39] cloudhead: micheil: I get an authorization error [03:39] cloudhead: as if my password is wrong [03:39] cloudhead: I tried on two computers [03:39] mikeal: who know how to edit images [03:39] micheil: man. so gotta get a good way to announce the awesome opensource stuff I'm doing at work. [03:39] mikeal: i need to change the white in this image to a transparency [03:39] cloudhead: and node 0.2.5 and node 0.3.6 [03:39] micheil: mikeal: shoot it across :) [03:40] mikeal: i can't figure out how to do it in pixelmator [03:40] micheil: ACTION has photoshop and such :) [03:40] mikeal: sent [03:40] SubStack: ACTION only uses the gimp and inkscape [03:40] SubStack: mostly inkscape [03:41] bingomanatee: ACTION thinks that someone needs to find better names for a lot of OS packages. [03:43] micheil: mikeal: hmm, might have another way for that. [03:43] msilverman2 has joined the channel [03:45] lukegalea has joined the channel [03:47] andrewfff has joined the channel [03:50] sh1mmer has joined the channel [03:51] tilgovi has joined the channel [03:54] losing has joined the channel [03:55] onar_ has joined the channel [03:57] ryah: please test http://nodejs.org/dist/node-v0.3.7.tar.gz [03:58] Coal has joined the channel [03:59] broofa has joined the channel [03:59] SubStack: pesky npm auth [04:00] lukegalea has joined the channel [04:00] cloudhead: SubStack: yay [04:00] dipser_ has joined the channel [04:00] cloudhead: you have auth problems too? [04:01] SubStack: affirmative [04:01] cloudhead: thank you :D [04:01] SubStack: exactly this: https://github.com/isaacs/npm/issues/issue/534 [04:01] cloudhead: I was going crazy [04:02] cloudhead: yea, I get the same error [04:02] cloudhead: : ( [04:02] SubStack: cloudhead: add a comment to the issue [04:03] warz has joined the channel [04:04] cloudhead: SubStack: done [04:08] noahcampbell has joined the channel [04:10] tedsuo has joined the channel [04:11] jimt has joined the channel [04:11] cloudhead: ACTION tries to summon isaacs [04:13] SubStack: ACTION switches on the bat -signal [04:14] tilgovi has joined the channel [04:14] SamuraiJack has joined the channel [04:15] brapse has joined the channel [04:16] sh1mmer has joined the channel [04:16] cloudhea has joined the channel [04:17] jacobolus has joined the channel [04:20] nooder: i have array with some elements and for each of them i want to call async function and wait for results. is there an easy way? [04:20] ChrisPartridge: nooder: look at async.js [04:21] ChrisPartridge: or any other flow control lib for that matter [04:21] ChrisPartridge: http://caolanmcmahon.com/async.html [04:21] slickplaid: lol [04:21] admc has joined the channel [04:22] slickplaid: i just spent the past 15 minutes writing something that does just that [04:22] SubStack: Seq.ap(xs).mapEach(function (x) { moo(x, this) }).seq(function (xs) { console.dir(xs) }) [04:22] SubStack: like that? [04:22] jesusabdullah: JSON.parse doesn't take a callback, does it? [04:22] SubStack: oh wait, s/mapEach/parMap/ >_< [04:22] SubStack: ACTION wrote seq, he should know these things [04:22] jesusabdullah: Hah [04:23] ChrisPartridge: SubStack: ah, Seq is more than what I thought [04:24] slickplaid: one of the reasons it's a good idea to ask i suppose... that is going to save me a lot of time i think [04:24] slickplaid: thank you ChrisPartridge, SubStack :D [04:24] SubStack: ChrisPartridge: you can sneak a limit in too! [04:24] SubStack: if you don't want too many async ops firing at once [04:24] SubStack: par{Each,Map}(limit, cb) [04:24] langworthy has joined the channel [04:25] SubStack: oh goodness seq is so ugly inside [04:25] ChrisPartridge: SubStack: oh, that sounds useful [04:25] SubStack: it's ugly so your code doesn't have to be! [04:26] ChrisPartridge: haha that's it [04:26] jesusabdullah: Cute [04:27] ChrisPartridge: SubStack: should have called it makeup [04:28] SubStack: heh [04:28] SubStack: lipstick [04:28] SubStack: lipstick on a pig! [04:28] SubStack: polemic aside [04:28] yhahn has joined the channel [04:29] ChrisPartridge: hah [04:32] ossareh has joined the channel [04:35] jchris has joined the channel [04:36] BrianTheCoder has joined the channel [04:40] tilgovi has joined the channel [04:40] jimt_ has joined the channel [04:43] ChrisPartridge: v8: parseInt(null, 10); [04:43] v8bot: ChrisPartridge: NaN [04:43] ChrisPartridge: v8: parseInt(null, 10) || 'test'; [04:43] v8bot: ChrisPartridge: "test" [04:45] jimt has joined the channel [04:46] bingomanatee: ACTION squeals like a pig [04:46] Fuld: v8: eval("1"); [04:46] v8bot: Fuld: 1 [04:46] bbttxu has joined the channel [04:47] Fuld: v8: eval("function yo() { return 'lolz'; }"); yo(); [04:47] v8bot: Fuld: "lolz" [04:47] hig has joined the channel [04:48] devrim has joined the channel [04:49] Me1000 has joined the channel [04:50] Aria has joined the channel [04:52] Fuld: Is evaling a good way to get code injected in from a .js file loaded using fs? [04:52] Fuld: ACTION doesn't want modules [04:52] Fuld: (not for this small thing anyway) [04:52] skm has joined the channel [04:53] SubStack: Fuld: that seems a very silly way to do it! [04:53] SubStack: just module.exports = ... or export.baz = ... and require() it! [04:53] SubStack: modules in node are super simple [04:53] SubStack: it's more work to eval() them yourself [04:54] ChrisPartridge: eval is only 2 vowels away from evil! [04:54] bingomanatee: 2? [04:54] bingomanatee: whats the second on? [04:54] bingomanatee: e? [04:54] SubStack: aeiou [04:55] bingomanatee: and sometimes x [04:55] slickplaid: evil eval [04:55] bingomanatee: yes - thats one vowel. [04:55] JianMeng has joined the channel [04:55] bingomanatee: you said two. [04:55] JianMeng has left the channel [04:56] slickplaid: I don't remember saying two. :D [04:56] bingomanatee: eval is only 2 vowels away from evil! [04:57] bingomanatee: sorry - not you [04:57] slickplaid: :) [04:58] creationix has joined the channel [04:58] creationix: when did setTImeout change? [04:58] creationix: if you omit the second argument, it never fires [04:59] onar_ has joined the channel [05:00] ryah: creationix: hm... [05:00] creationix: not sure what the spec says, but it is changed behavior [05:00] creationix: I have some really old code that used setTimeout without a time to simulate nextTicks [05:01] ryah: there have been several small changes to it. i'd need to git-bisect to find the cause [05:01] creationix: it's not a big deal, I'm not sure what the desired behavior would be [05:01] creationix: ACTION goes to read the spec [05:02] ryah: well, however it works in the browser [05:02] ryah: which i assume is "very short timeout" [05:02] creationix: right, I assume it was the same as a 0 length [05:02] shiawuen1 has joined the channel [05:02] creationix: which is really about 10ms in most browsers [05:03] creationix: hah, it's not part of the spec, it's a browser thing. I knew that... [05:03] sivy has joined the channel [05:04] maod has joined the channel [05:05] creationix: yeah, the second argument isn't optional, it doesn't say what the behavior should be in that case [05:06] maod: anyone know how one can reset auth privileges for npm? having publishing issues [05:06] creationix: maod: if the problem is local, delete your .npmrc file and start over [05:07] creationix: if it's on the server, you might have to bug isaacs [05:07] bronson_ has joined the channel [05:07] ChrisPartridge: maod: there are currently issues afaik [05:07] maod: creationix: it would be on the server -- i published a package long time ago, and now i can't update it [05:08] dnolen has joined the channel [05:08] jmwinn21 has joined the channel [05:08] ChrisPartridge: maod: https://github.com/isaacs/npm/issues/issue/534 [05:08] maod: ChrisPartridge: oh, well i guess it must have been related. I deleted my .npmrc so I probably have to recreate my account [05:08] ryah: creationix: https://github.com/ry/node/issues/issue/593 [05:09] creationix: ryah: sounds good. It's a tough call, but I think defaulting to 0 timeout is better than never fireing the timeout [05:09] creationix: either way people shouldn't be doing it [05:11] ryanfitz has joined the channel [05:11] slickplaid: Has anyone written or know of a redis/express user auth system that is available for use? [05:11] creationix: ryah: also while updating my unit tests I noticed that assert.deepEqual doesn't check the type [05:11] creationix: it thinks {} and [] are equal [05:12] creationix: an easy check is to do a === on the __proto__ of both objects [05:12] CIA-99: node: 03Ryan Dahl 07master * reb565e1 10/ (4 files in 2 dirs): Simplify website - http://bit.ly/gXePvc [05:12] CIA-99: node: 03Ryan Dahl 07master * rb6c66f7 10/ (3 files in 2 dirs): [05:12] CIA-99: node: Revert "Use html5 spec stylesheet for docs" [05:12] CIA-99: node: 03Ryan Dahl 07master * rd8579c6 10/ (AUTHORS ChangeLog doc/index.html src/node_version.h wscript): Bump version to v0.3.7 - http://bit.ly/ftKsRx [05:12] CIA-99: node: 03Ryan Dahl 07master * r97375c4 10/ src/node_version.h : Now working on v0.3.8 - http://bit.ly/i8i1d3 [05:12] abraham has joined the channel [05:12] bingomanatee: some things are more equal than others :D [05:12] themiddleman has joined the channel [05:13] admc1 has joined the channel [05:14] creationix: must be website cleanup day at Joyent today [05:14] galaxywatcher has joined the channel [05:15] ryah: creationix: https://github.com/ry/node/issues/issue/594 [05:16] Fuld: SubStack, okay I'll use the damn modules. [05:16] Fuld: You're right :p [05:18] creationix: ryah: does this mean that you're going to start using the issue tracker more? [05:18] losing has joined the channel [05:19] ryah: creationix: yes [05:19] creationix: cool [05:20] creationix: ryah: did we ever find out what was causing my https server to hang as soon as there was back-pressure from the client? [05:20] creationix: or should I file a ticket? [05:21] ryah: creationix: no - i sent you an email [05:21] admc has joined the channel [05:21] ryah: i added a test trying to find it [05:22] ryah: but i couldn't get it to blow up [05:22] SubStack: Fuld: hooray! \o/ [05:22] creationix: cool [05:22] creationix: ryah: fwiw, I couldn't reproduce it over localhost, only when the client was across the internet [05:23] creationix: and the point at which it hung changed every time [05:23] micheil: creationix: a bit more then website clean-up day.. I think :) [05:23] creationix: but strangely in sawtooth patterns [05:23] creationix: just like tcp backoff patterns [05:23] shiawuen has joined the channel [05:24] micheil: ryah: Revert "Use html5 spec stylesheet for docs" [05:24] micheil: ? [05:25] micheil: ryah: is that to-do with the code blocks? [05:25] creationix: I'm not sure how to reproduce the problem in a unit test. It requires the client to not accept the packets right away [05:26] creationix: or cause backpressure somehow [05:27] micheil: client.pause? [05:27] creationix: what does that do exactly? [05:28] micheil: stops reading on the socket, iirc. [05:28] ryanfitz has joined the channel [05:32] micheil: ryah: also, it looks like you accidentally dropped the link to the CLA from the site [05:32] creationix: micheil: hmm, I can try [05:32] creationix: ACTION wishes he had dtrace [05:33] creationix: is there a dtrace capable os that runs on netbooks [05:33] creationix: hackintosh or some open solaris distro? [05:35] micheil: doesn't dtrace run on ubuntu or solaris? [05:36] creationix: not linux [05:36] creationix: and if you ever want a good laugh, ask bcantrell about dtrace on linux [05:37] creationix: and ubuntu is the only thing I can reliably get running on random laptops [05:38] killfill has joined the channel [05:38] Aria: Opensolaris /should/ be good much of the time, but good luck in general. [05:40] shiawuen has joined the channel [05:41] GlobalDomestic has joined the channel [05:41] creationix: ah, yes, I remember [05:42] creationix: nexenta [05:42] creationix: ubuntu on solaris [05:42] Aria: Oh, yes. [05:42] creationix: what are the chances that will run? [05:43] creationix: but I bet it will have dtrace [05:43] Aria: About the same as OpenSolaris running ;-) [05:43] Aria: What with the same kernel and all. [05:44] Aria: That said, if you want access to a solaris shell, I'd be happy to give you a login. [05:44] Aria: s/solaris/OpenIndiana/ [05:44] Lorentz: Could always VM it, no? [05:44] creationix: no, my home machine is a netbook [05:44] creationix: VMs are too heavy [05:45] Lorentz: Hrm [05:45] creationix: if only Joyent made a laptop distro [05:45] Lorentz: Well, mine isn't exactly a supercomputer either. Just an ordinary thinkpad. [05:45] Lorentz: It's not that bad running virtualbox, just needs some more RAM than usual. [05:47] creationix: yeah, I have an atom processor and 2gb of ram [05:48] ChrisPartridge: ouch [05:48] creationix: hmm, http://www.belenix.org/ looks neat [05:48] masahiroh has joined the channel [05:50] GlobalDomestic has joined the channel [05:50] creationix: meh, I'll just log into my no.de instance when I need to profile something [05:50] creationix: I need working drivers on my laptop [05:51] slickplaid: wish i could get my coupon code for my no.de [05:51] aenygma has joined the channel [05:51] slickplaid: been waiting for a week or so now :( [05:52] robtmr has joined the channel [05:54] blueadept has joined the channel [05:55] dguttman has joined the channel [05:55] ossareh has joined the channel [05:57] benburkert has joined the channel [05:57] rachelbutts: when was node.js first released? [05:58] rachelbutts: according to the changelog... 2009.06.11, Version 0.0.3, 6e0dfe50006ae4f5dac987f055e0c9338662f40a [05:58] ChrisPartridge: creationix: http://www.nexenta.org/ might be worth looking at [05:58] slickplaid: 1776 [05:58] slickplaid: no wait, that was the declaration of indep. [05:58] rachelbutts: same thing pmuch [05:58] slickplaid: yeah, i was close [06:00] mjr_ has joined the channel [06:00] creationix: ChrisPartridge: especially http://www.stormos.org/ [06:01] ChrisPartridge: creationix++ [06:01] v8bot: ChrisPartridge has given a beer to creationix. creationix now has 2 beers. [06:01] mjr_: creationix: what are you going to do with all of those beers? [06:01] Aria: Mmm, beeer. [06:01] zzak: creationix-- [06:01] v8bot: creationix is getting too many beers. Don't let creationix get drunk! [06:02] creationix: please don't let creationix get drunk [06:02] Aria: How about just enough for a ballmer peak? [06:02] creationix: sleep deprived is bad enough [06:02] ChrisPartridge: while(true) creationix++ ;) [06:02] creationix: see the jsconf.eu video for details [06:02] slickplaid: lolz [06:02] slickplaid: xkcd? [06:02] Aria: Yep. [06:02] slickplaid: nice. [06:02] zzak: creationix: did you decide on a reddirt talk yet? [06:02] creationix: zzak: I have one that's somewhat popular [06:03] creationix: it's open vote [06:03] Aria: Hey, I claim that 50% of the HTML5 parser was written while at the ballmer peak. [06:03] creationix: I submitted three [06:03] Aria: (the good part.) ... the bad parts were written in a doctor's waiting room. [06:03] zzak: are you just gonna go with the most popular one? [06:03] zzak: ( i think i voted for the synergy one ) [06:03] creationix: http://vimeo.com/19119767 [06:04] creationix: zzak: I assume that's what the voting is for. I'm not a organizer so I don't know the details [06:04] hdon has joined the channel [06:05] zzak: ahh [06:09] echosystm has left the channel [06:11] kuhrt has joined the channel [06:18] jankoprowski has joined the channel [06:20] butu5 has joined the channel [06:20] kuhrt: has anyone worked with (fab) https://github.com/jed/fab ? [06:21] derferman has joined the channel [06:22] butu5: I am having issues on running node.js since yesterday.. configure worked for v0.3.5 but make failed [06:22] butu5: /cygdrive/c/home/node/deps/v8/src/platform-cygwin.cc:611: error: cannot allocate an object of type `v8::internal::CygwinMutex' [06:23] butu5: i tried several branch such as v0.2.6, v0.3.1, v0.3.6 etc [06:23] mscdex: butu5: i think 0.2.6 is your best bet [06:23] mscdex: for cygwin [06:23] butu5: but not able to install node.js on cygwin.. followed the instruction on https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(Windows) [06:23] amerine has joined the channel [06:23] mscdex: butu5: what is the error with 0.2.6 ? [06:23] butu5: mscdex: thanks.. I tried [06:24] butu5: let me run it again and will let u know in a min [06:25] butu5: please have a look at https://gist.github.com/799912 [06:26] cfq has joined the channel [06:27] butu5: for v0.3.5 I am able to pass ./configure step. then failing on make [06:28] nooder: is this right approach to parallel execution? https://gist.github.com/e372d5be7a1421c03621 [06:28] nooder: butu5, why don't you use built binaries? [06:28] butu5: is it available? [06:28] uttie has joined the channel [06:29] ecto has joined the channel [06:29] mjr_: nooder: it all depends on whether your db module does anything with concurrent requests. [06:29] butu5: nooder: sorry I am bit new to node.js.. gone thru the site and found this approach [06:30] butu5: if anybody can refer me to the link.. it would be great .. thanks! [06:30] mscdex: the cygwin binaries aren't up to date [06:30] SubStack: hmmm! [06:31] mscdex: time to fire up cygwin [06:31] mscdex: :p [06:31] creationix has left the channel [06:31] fangel has joined the channel [06:31] butu5: :( [06:32] nooder: mjr_, lets assume that it can [06:32] SubStack: silly people breaking npm [06:32] SubStack: $ npm view balancer@0.2.2 dependencies [06:32] mjr_: well then, sure. That fires off a bunch of queries without waiting for the previous one to finish. [06:33] nooder: mjr_, but then i need results from all of them. how i can do it without globals? [06:34] butu5: hmm I downloaded the http://nodejs.org/dist/node-v0.2.6.tar.gz looks like it is configuring [06:34] butu5: from github something is broken [06:34] mjr_: nooder: lots of the "control flow libraries" handle this for you. [06:34] curtischambers has joined the channel [06:34] curtischambers has left the channel [06:34] Aria: Or you wrap the thing in a closure and use a variable inside the closure to keep it from being global. [06:34] mjr_: Basically your callback either closes over some var where you stash teh results, or else you stash them in some global var. [06:35] mscdex: ugh... cygwin on a netbook is so slow [06:35] mscdex: hah [06:35] butu5: configure went successfully :) [06:35] Aria: Is cygwin not slow some other way? [06:35] butu5: now make is going good.. [06:35] curtischambers has joined the channel [06:35] mscdex: butu5: cool [06:36] Utkarsh has joined the channel [06:36] rpbertp13 has joined the channel [06:36] SubStack: crap, stupid bcrypt [06:36] SubStack: it's ruining my npm fun [06:38] pkrumins: hacking on node-browser! [06:39] mscdex: what is node-browser's user-agent string? [06:39] mscdex: :p [06:40] pkrumins: it's usre configurable ;) [06:40] butu5: hurray!!! after 2 day able to install node.js on windows :) [06:40] butu5: thanks guys! [06:40] mscdex: butu5: awesome, have fun! :-) [06:42] andrewfff has joined the channel [06:44] vineyard has joined the channel [06:44] SubStack: aha actually balancer is the broken package [06:45] SubStack: bwahaha, building a dependency graph for npm [06:48] mscdex: make sure you use a ruler [06:48] ChrisPartridge: I think im going to need a bigger monitor for that.. [06:48] SubStack: all I have a compass and protractor [06:49] Aria: ACTION hands SubStack dot. [06:49] SubStack: *is [06:49] mscdex: what do you need to know which way is north for? [06:49] mscdex: :p [06:49] SubStack: that is so I know when the poles flip [06:50] mscdex: polish acrobats? [06:51] SubStack: bah I got the fields wrong, ingesting again [06:51] muhqu has joined the channel [06:51] SubStack: thankfully seq makes rate-limiting super easy or I wouldn't even bother [06:52] SubStack: silly npm.commands.list doesn't put the dependency field on there for me, so I have to call npm.commands.view for each package [06:52] SubStack: I'm sure there is a couchy way to get all of this in one go but meh [06:55] ChrisPartridge: ACTION hears the pub calling [06:56] ChrisPartridge: bye bye [06:56] EyePulp has joined the channel [06:57] nook has joined the channel [06:58] galaxywatcher has joined the channel [06:58] slickplaid: Has anyone written or know of a redis w/express user auth system that is available for use? [06:59] AAA_awright: I have a pretty useful library I wrote for an application, I wonder if I should commit it into the Git repository, make it a submodule, or distribute it seperately... [06:59] backinnam__ has joined the channel [07:00] backinnam__: so this is a pretty noob question, but how do I import a module like this https://github.com/chrisdickinson/plate/blob/master/lib/plugins/loaders/filesystem.js [07:01] backinnam__: I need to use the Loader function but can[t seem to import it correctly [07:01] backinnam__: filesystem = require('plate/lib/plugins/loaders/filesystem'); just gives me an error [07:01] nooder: AAA_awright, sharing is good and can be used as your future portfolio [07:01] backinnam__: cannot find module [07:02] AAA_awright: nooder: Well it's available no matter what I choose [07:02] AAA_awright: nooder: Public domain, in fact [07:02] liar has joined the channel [07:05] skm has joined the channel [07:11] mikedeboer has joined the channel [07:12] niklasfi has joined the channel [07:20] hobodave_ has joined the channel [07:20] beawesomeinstead has joined the channel [07:29] k04n has joined the channel [07:30] pyrotechnick has joined the channel [07:32] hobodave has joined the channel [07:38] desaiu has joined the channel [07:39] teddy_ has joined the channel [07:40] mike5w3c has joined the channel [07:43] SubStack: at this rate I'll have 3 new npm modules before isaacs fixes `npm publish` [07:44] Aria: backinnam__: Where's the code doing the requiring? [07:45] backinnam__: Aria: i figured it out now. I wasn't using new on Loader after the import [07:45] Aria: Oh good. [07:45] backinnam__: thanks for the help though [07:45] Aria: Sure thing. [07:50] TomY_ has joined the channel [07:54] jbpros has joined the channel [07:55] jimt has joined the channel [07:56] confoocious has joined the channel [07:56] confoocious has joined the channel [07:58] butu5 has left the channel [07:59] abrookins has joined the channel [08:00] ivanfi has joined the channel [08:00] MatthewMueller has joined the channel [08:01] callmetim has joined the channel [08:01] sriley has joined the channel [08:02] hobodave has joined the channel [08:03] svenlito_ has joined the channel [08:04] fangel has joined the channel [08:06] ilpoldo has joined the channel [08:07] froots has joined the channel [08:11] mape: stagas: around? [08:12] jimt_ has joined the channel [08:15] mAritz has joined the channel [08:16] ipmb has joined the channel [08:16] ipmb has left the channel [08:18] tc77 has joined the channel [08:19] gattuso has joined the channel [08:21] tanepiper: woop! one step closer to 0.4 release [08:23] d0k has joined the channel [08:27] BrianTheCoder has joined the channel [08:28] Blink7 has joined the channel [08:31] jimt has joined the channel [08:32] evl has joined the channel [08:32] [AD]Turbo has joined the channel [08:33] evl: /usr/local/Cellar/node/0.2.2/bin/node:1 ���� ^ SyntaxError: Unexpected token ILLEGAL [08:33] evl: I got that when trying to run "forever", anyone know what might be causing this? [08:33] tanepiper: JSON parse errro [08:34] tanepiper: *error [08:34] evl: Seems wierd, the module was built from npm [08:38] dekz has joined the channel [08:38] tc77 has left the channel [08:39] m64253 has joined the channel [08:42] Druid_ has joined the channel [08:42] qFox has joined the channel [08:43] jimt_ has joined the channel [08:43] forzan has joined the channel [08:44] rwaldron has joined the channel [08:44] thermal has joined the channel [08:44] q_no has joined the channel [08:47] tim_smart: mikeal: Ping. [08:51] ChrisPartridge has joined the channel [08:52] codetonowhere has joined the channel [08:56] isaacs has joined the channel [08:58] jimt has joined the channel [08:58] GasbaKid has joined the channel [08:59] ryah: what's the best simple "web framework" thing? [08:59] ryah: express? [09:00] ryah: connect? [09:00] ryah: :) [09:00] ryah: ACTION is going to make a website [09:00] chapel: simple, as in to use [09:00] chapel: or simple as in the smallest? [09:00] ryah: simple as in will not invoke rage [09:00] chapel: express is really simple [09:00] chapel: express/connect are connected, and very similar, express has more webstuff on top [09:01] chapel: what kind of website? [09:01] ryah: a cool one [09:01] tim_smart: ryah: Sound like impulse development. [09:01] tim_smart: Sounds* [09:02] chapel: heh [09:02] chapel: well good luck ryah [09:02] chapel: :) [09:02] torgeir: express actually _is_ insanely fast, flexible, and sexy, as stated on github :) [09:02] tim_smart: I sometimes get that. "I just wanna make a friggen website." [09:03] ryah: surprised how painless 'npm bundle install socket.io' was [09:03] isaacs: ryah: i think you're always just surprised when npm works. [09:03] ROBOd has joined the channel [09:03] ryah: im surprised when node works [09:03] tim_smart: I have been hacking node.js into the facebook realtime api most of today. [09:04] isaacs: i'm still pretty impressed when ls works [09:04] ryah: anything written on top of node is mind boggling [09:04] isaacs: (not npm ls, actual ls) [09:04] chapel: heh [09:04] tim_smart: OMG MY FILES ARE LISTED! [09:04] ryah: wow. find node_modules/ | wc -l [09:04] ryah: 1796 [09:05] ryah: :/ [09:05] SubStack: huurah isaacs has come to slay the evil npm publish bugs [09:05] MikeyB has joined the channel [09:05] SubStack: but lo, npm ERR! Error: unauthorized Name or password is incorrect.: resware [09:05] isaacs: SubStack: what version of node? [09:05] SubStack: 0.2.16 [09:06] isaacs: node [09:06] SubStack: v0.2.5 [09:06] SubStack: https://github.com/isaacs/npm/issues/issue/534 [09:06] isaacs: with or without crypto? [09:06] tim_smart: Isn't crypto getting depreciated or something? [09:07] SubStack: checking, I think with [09:07] SubStack: also see http://search.npmjs.org/ [09:07] SubStack: no new uploads for 7 hours [09:07] sveimac has joined the channel [09:07] SubStack: and the last one was me [09:07] isaacs: aha, it's something on the registry or something. [09:07] chapel: how many are there? [09:07] tim_smart: Hey, everybody who's having problems publishing stuff: [09:07] isaacs: i just reproduced. ok, hang on [09:07] SubStack: hah I probably broke it [09:07] tim_smart: I'm aware. I'll look into it in a little bit. Sorry for the inconvenience. [09:08] tim_smart: via mailing list. [09:08] chapel: SubStack: you bad person you [09:08] saikat has joined the channel [09:08] SubStack: I know right! [09:08] SubStack: isaacs: here is something too [09:08] SubStack: the balancer package is broken [09:08] SubStack: do: npm view balancer [09:08] SubStack: it was breaking my npm dependency graph analyzer until I put it on a blacklist [09:08] isaacs: weird [09:11] ryah: rauchg should not bundle expresso with socket.io-node [09:11] ryah: super huge [09:11] SubStack: O_O [09:11] SubStack: hah and I bundled socket.io with dnode for a while until I wrote a terrible hack to fake an http request to the client source part [09:12] aklt has joined the channel [09:13] virtuo has joined the channel [09:13] stagas has joined the channel [09:13] isaacs: SubStack: can you try logging into http://isaacs.couchone.com/_utils/ ? [09:14] SubStack: logging in? [09:14] SubStack: aha there it is [09:15] onar_ has joined the channel [09:15] SubStack: Error logging in: Name or password is incorrect. [09:15] SubStack: :/ [09:15] isaacs: ok. [09:16] isaacs: what's super odd is that this is happening on multiple versions of node, and affecting users created both from npm, and from futon. [09:16] isaacs: (also multiple versions of npm) [09:16] SubStack: couch problem? [09:17] isaacs: and that code hasnt' changed, and the base64 implementation hasn't changed, and crypto still exists (for now) [09:17] isaacs: yes. couch problem. [09:17] charlenopires has joined the channel [09:18] luke` has joined the channel [09:18] margle has joined the channel [09:18] sveimac has joined the channel [09:18] isaacs: it's very late, so i'm going to email them, and then go to bed, and maybe it'll be fixed in the morning. [09:18] isaacs: or not. whatever. [09:18] adambeynon has joined the channel [09:21] romainhuet has joined the channel [09:22] shiawuen1 has joined the channel [09:23] q_no has joined the channel [09:23] isaacs: Worst thing about using vim: typing jjj in Gmail, and suddenly looking at a different message instead of the one i was writing. [09:24] peol has joined the channel [09:24] peol has joined the channel [09:26] MikhX has joined the channel [09:26] pdelgallego_ has joined the channel [09:26] romainhuet has joined the channel [09:27] vyvea has joined the channel [09:29] ttpva has joined the channel [09:29] Gruni has joined the channel [09:31] tim_smart: isaacs: Don't use in vim :/ [09:31] isaacs: tim_smart: why not? [09:31] tim_smart: C-[ or remap it. [09:31] isaacs: well, yeah, is under the key labelled "caps lock" [09:31] isaacs: SO WHEN I TYPE CAPS, IT'S MANUAL MOTHERFUTON!! [09:31] tim_smart: is a long reach. [09:32] tim_smart: The idea is to keep your fingers on the home row. [09:33] tim_smart: isaacs: Oh you remapped caps lock? [09:33] isaacs: yeah [09:34] tim_smart: OK cool. [09:34] isaacs: that's where was when vi was written originally [09:34] isaacs: just to the left of the left pinky [09:34] isaacs: (or so i read) [09:38] |sWORDs| has joined the channel [09:38] tim_smart: isaacs: What did you use before vim? [09:38] isaacs: tim_smart: textmate [09:38] isaacs: before that was SciTE [09:38] kkaefer_ has joined the channel [09:38] mscdex: oh jeez... aol makes a new tcp connection for every group chat [09:38] isaacs: <3 SciTE [09:40] tim_smart: scite seems interesting... [09:40] tim_smart: But I <3 vim too much. [09:41] tim_smart: I should probably try emacs, but something makes me dislike it before even trying it. [09:42] kubrow has joined the channel [09:43] pdelgallego__ has joined the channel [09:44] pdelgallego has joined the channel [09:45] BHSPitMonkay has joined the channel [09:45] zz_raja has joined the channel [09:46] |sWORDs|: I love Aptana Studio [09:47] tim_smart: Eclispe is too bulky for me. [09:48] maod has joined the channel [09:48] |sWORDs|: jslint (code integrety) and sdoc (documenting your code, and auto generate documentation) integrated and runs on Windows, Linux and Mac. It's bulky yes, but working with it makes developing much faster for me. [09:48] maod: hm, is npm publishing still down? [09:49] SubStack: maod: yep, seems to be a couch issue [09:49] maod: doh. k [09:50] keks: is the cryptolib broken for anyone else? [09:50] |sWORDs|: I also love the format and compact functions. [09:52] ddollar has joined the channel [09:52] glenngillen has joined the channel [09:52] glenngillen has left the channel [09:52] whyme has joined the channel [09:53] iszak has joined the channel [09:54] iszak: How would the performance compare of a MySQL driver in JS vs. C++? [09:57] mscdex: no idea, there is no async c++ mysql addon for node yet [09:57] mscdex: that i know of [09:57] ryah: felige's [09:57] ryah: oh, not c++, true [09:57] tim_smart: iszak: C++ will probably be slower [09:58] tim_smart: Calling into C++ doesn't come cheap :/ [09:58] iszak: I somehow don't believe that [09:58] tim_smart: Don't then :) [09:59] mnbvasd: but what about the c++ for the network or pipe io? [09:59] bzinger has joined the channel [10:00] SubStack: pow now up to 2 unpublished npm modules [10:00] tim_smart: iszak: I'm only speaking from experience while I worked on a redis client. [10:00] SubStack: new ones [10:00] SubStack: going for a third [10:01] bzinger has joined the channel [10:01] xla has joined the channel [10:01] tim_smart: iszak: Who knows, mysql might be a different story. [10:02] mscdex: it's easier to write it in js instead of c++ ;-) [10:02] SubStack: oh but first I want to make a graphviz dump of npm [10:02] chapel: SubStack: you are a busy guys [10:02] chapel: guy :) [10:02] SubStack: I am! [10:03] SubStack: only sometimes [10:03] SubStack: my productivity scales pretty linearly with the amount of coffee I drink [10:03] tim_smart: ryah: Tried this? https://github.com/hallettj/jslint.vim [10:05] viktor has joined the channel [10:05] saschagehlich has joined the channel [10:06] jimt_ has joined the channel [10:06] viktor: hi, is there a version of http.get (node v0.3.7) that follows redirects ? [10:06] tim_smart: viktor: You have to implement redirects yourself. [10:07] viktor: ah, i see, thx [10:08] tilgovi has joined the channel [10:08] piscisaureus has joined the channel [10:09] piscisaureus: ACTION mournin' [10:09] eikke has joined the channel [10:10] caolanm has joined the channel [10:15] [[zz]] has joined the channel [10:15] piscisaureus: ryah: symlink api on windows: fs.symlink(target, path, [type], [cb]) [10:15] piscisaureus: type = "j" -> junction point, "d" -> directory symlink, "f"or absent -> file symlink, "dj" -> try directory symlink first, if that fails create a junction point. [10:15] piscisaureus: OK? [10:15] stephank has joined the channel [10:16] devdrinker has joined the channel [10:19] matjas has joined the channel [10:20] clarkfischer has joined the channel [10:20] GasbaKid has joined the channel [10:26] stagas: mape: hey [10:27] MatthewMueller has left the channel [10:28] mape: stagas: Hey, was just wondering if you've looked any more on the piping stdout into node? [10:29] ryah: piscisaureus: hm.. [10:29] derferman has joined the channel [10:29] ryah: piscisaureus: i thought you didn't have symlinks? [10:29] piscisaureus: I do. [10:29] ryah: win7 only? [10:29] stagas: mape: I haven't [10:29] piscisaureus: junction points are xp+ [10:29] piscisaureus: other types are vista+ [10:30] mape: stagas: k [10:30] SubStack: awesome, node-graphviz exists [10:30] piscisaureus: ryah: junction points are the most practical I think, and they should be useful for e.g. npm [10:31] ryah: what's the differnce between all these? [10:31] ryah: does socket.io work on the new https server? [10:31] ryah: i can't get it to run [10:31] piscisaureus: erm. Well a directory symlink and a junction point can only point to a directory, and a file link can only point to a file [10:32] piscisaureus: Junction points require the target to exist at time of creation [10:32] stagas: mape: maybe wrapping the process.stdout.write method? :) [10:32] piscisaureus: the other types require elevation under default configuration (that is soooo lame btw) [10:32] piscisaureus: (to create them, that is) [10:33] piscisaureus: to create a junction point u need to use a very lame API [10:33] mape: stagas: Hmm yeah, ryah should it be easy enough to create an app that just proxys output? tail -f my.log | node app.js ? [10:33] piscisaureus: but I got it to work [10:34] piscisaureus: ryah: on your windows machine, enter `mklink /?` :-) [10:34] ryah: mape: yes, process.stdin.resume(); process.stdin.on('data', fn); [10:34] peteatolia has joined the channel [10:34] mape: ryah: Neat, thanks [10:35] kristsk has joined the channel [10:37] mape: stagas: Might be better to use something like that rather then what you are doing now, that would allow people to use it with anything [10:39] peteatolia has left the channel [10:40] |sWORDs|: Maybe someone can answer a really dumb question. How do I include another .js file? In html I just add a second script to the page and on my Pronto's I can add them to the page. But how do I do it with node? [10:40] |sWORDs|: Copying the code in a single file just makes it really unreadable. [10:40] mape: |sWORDs|: That nick is totally annoying ;) You use require(); [10:40] CIA-99: node: 03Ryan Dahl 07master * r7eaa956 10/ (117 files in 10 dirs): Upgrade V8 to 3.0.12 - http://bit.ly/fHTkpt [10:41] stagas: mape: yeah that's cool. should be easy to mod, just ditch the spawn and open stdin. the original idea was to make it also act as a middleware but I don't have any time [10:42] mape: var helloString = require('other')('hello'); where other.js contains module.exports = function(msg) {return msg} [10:42] pyrotechnick: anyone done any DHT in node? [10:42] mape: stagas: yeah [10:44] |sWORDs|: mape, so I have to export all functions in the second .js file? Or should I wrap (encapsulate) all functions in one function? [10:44] pomodoro has joined the channel [10:44] snearch has joined the channel [10:44] mape: Might want to wrap them, depends on what it is [10:45] mape: But I would rather to utils.js then have 20 small functions required [10:45] mape: *do [10:46] |sWORDs|: I'm building a controller (gateway for all domotica capable devices) which will have TCPClients (tcpclient.js) a Server (gateway.js) and ofcourse the main (controller.js). So I probably could wrap them. [10:46] slaskis: JSON.parse() keeps telling me syntaxerror on this: https://gist.github.com/334047d8393e0441d5b2 but i can't see what's wrong in it, anyone else with a keen eye? [10:47] slaskis: i wish it was a little bit more helpful [10:47] slaskis: jsonlint.com says its valid as well.. [10:48] |sWORDs|: slaskis it's valid javascript [10:48] RushPL: is there in easy way to introduce constant artificial lag for node.js? [10:48] slaskis: does it run in repl for you? [10:48] RushPL: maybe with also adding some random jitter [10:49] slaskis: i just run JSON.parse('the string in the gist') in node repl [10:49] |sWORDs|: but why did you put it in as an array? you could try to remove the brackets [10:49] RushPL: |sWORDs|: that's quite easy. [10:50] RushPL: hm, but you have to modify that target file a bit [10:50] slaskis: sometimes it's more than one entry [10:50] |sWORDs|: maybe the parse doesn't like an array with only one item? [10:51] slaskis: same thing without the [] [10:51] RushPL: for example if it has "var SomeClass = function() { classBody }; " it has to have "module.exports = SomeClass and later you can do "global.SomeClass = SomeClass" which will get exported to all files [10:51] RushPL: and with all the other symbols you can set them in global as well [10:51] |sWORDs|: RushPL I'll have a go withit. [10:52] mape: slaskis: works fine if you replace \n with \\n and \" with \\" [10:52] markwubben has joined the channel [10:52] slaskis: mape: oh? thanks, i'll try that [10:52] mape: at least in repl [10:52] |sWORDs|: mape, you're to fast [10:53] |sWORDs|: just figured that out aswell ;) [10:53] |sWORDs|: It worked without the body [10:53] RushPL: |sWORDs|: I'm sharing some .js files with the browser client-side js and thus I have something like function globalInclude(className) {var something = require(className); global[className] = something; } - but I would imagine it could be made much more universal [10:54] |sWORDs|: RushPL: Where did you put it? I'd love a peak. [10:55] RushPL: actually it's almost literally this function since I only have a need to globally include my classes. [10:55] |sWORDs|: Ok, tnx! [10:55] slaskis: mape: |sWORDs| yeah, jsonlint complained about body first. it seems it didn't fix it though [10:55] mape: slaskis: replacing didn't fix it? [10:56] skm has joined the channel [10:56] slaskis: i'm getting crappy html from tumblr and it seems to contain some hidden characters or something that json doesn't like [10:56] slaskis: mape: no :( [10:56] |sWORDs|: But slaskis, it works without the body for you aswell? [10:56] mape: did you try doing it to the gist in repl? [10:57] slaskis: |sWORDs|: well yes, but that's where the good stuff is ;) [10:57] |sWORDs|: I know, but simply put a small thing in there and keep adding things until it breaks [10:58] |sWORDs|: You might have to escape even more [10:58] slaskis: it worked in repl as you said mape, but running it from the tumblr api didn't. sorry, i wasn't very clear [10:58] mape: k [10:59] slaskis: and i don't dare to do a whitelist regexp to clean stuff up, it'll be international characters in there eventually [10:59] slaskis: strange that JSON.stringify on that string doesn't fix it [10:59] slaskis: it should make it JSON parsable [10:59] mape: Probly better of telling tumblr to fix their JSON output if there is something wrong with it [11:00] slaskis: actually, parsing their json works. but it's when i convert it into the format i want and save it back it fails [11:00] mape: Oh k [11:00] slaskis: mape: good point though, it must be i doing something wrong then [11:01] slaskis: i'm cleaning it by converting it to/from markdown, might be something from there [11:01] mape: slaskis: Btw where are you located in SE? [11:01] rjrodger_ has joined the channel [11:01] slaskis: japp [11:01] mape: ACTION points to where [11:02] SubStack: yay I made an npm graph! [11:02] mape: slaskis: neat, what does it show? [11:02] SubStack: it's ugly as hell and the scale is all wonky but it works! [11:02] mape: * SubStack [11:02] SubStack: mape: dependencies between modules [11:02] mape: Ah k [11:02] slaskis: SubStack: print screen! [11:02] mape: screenshot? [11:02] stagas: SubStack: hahah cool [11:03] Yuffster_work has joined the channel [11:03] SubStack: one sec, figuring out how to scale this [11:04] Paul___ has joined the channel [11:08] Coal has joined the channel [11:08] yozgrahame has joined the channel [11:08] fly-away has joined the channel [11:09] jimt has joined the channel [11:10] slaskis: damnit, i got those annoying hidden characters out of the way [11:10] slaskis: but it still won't parse [11:10] shiawuen has joined the channel [11:10] SubStack: STDERR:dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.328008 to fit [11:10] SubStack: >_< [11:12] skm has joined the channel [11:13] skohorn has joined the channel [11:13] jetienne has joined the channel [11:16] |sWORDs|: var Gateway = require('com.test.Gateway'); gives Error: Cannot find module 'com.test.Gateway' [11:17] |sWORDs|: there is a com.test.Gateway.js file in the same dir as the js file that's started [11:17] jetienne: var Gateway = require('./com.test.Gateway'); [11:17] jetienne: all in the ./ [11:17] icy has joined the channel [11:18] shiawuen has joined the channel [11:18] SubStack: sweeeeeeet [11:18] icy: I have an issue building both node 0.2.6 aswell 0.3.7 on a centos 5.3 box (yea yea). here's the make output: http://pastie.org/1505402 [11:18] |sWORDs|: jetienne: Tnx, one step further: TypeError: object is not a function [11:18] SubStack: trying another algorithm [11:19] |sWORDs|: var Gateway = require('./com.test.Gateway');var Gateway1 = new Gateway(7000); [11:20] |sWORDs|: that second line used to be in the gateway.js and it works there, why isn't it a construstor in the new js file? [11:21] shiawuen1 has joined the channel [11:22] |sWORDs|: Maybe I'm not getting the module.exports part. [11:24] m64253 has joined the channel [11:24] lukegalea has joined the channel [11:25] |sWORDs|: Nevermind, I found the error, I needed to learn how to type module without missing a keypress ;) [11:25] fermion has joined the channel [11:25] ErikCorry: icy there is no error message from the compiler there. [11:25] ErikCorry: That's strange. [11:29] icy: yep [11:30] icy: the only thing that I can see above that is: scons: warning: Ignoring missing SConscript 'obj/test/release/SConscript' [11:32] ErikCorry: Try typing in the gcc line that it outputs and see if it gives an error message [11:33] icy: indeed, Fatal error: can't create obj/release/dtoa-config.o: No such file or directory [11:33] w0rse_ has joined the channel [11:33] charlenopires has joined the channel [11:34] icy: build/default/obj/release/ has fine permissions [11:34] arlolra has joined the channel [11:35] icy: open("obj/release/dtoa-config.o", O_RDWR|O_CREAT|O_TRUNC, 0666) = -1 ENOENT (No such file or directory) [11:36] hwinkel has joined the channel [11:37] icy: when I switch into buld/default, then execute the gcc line, it works fine [11:38] ErikCorry: No ideas, sorry [11:38] syntheze has joined the channel [11:42] luke`_ has joined the channel [11:42] |sWORDs|: Is it possible to do this is a single command? var Gateway = require('./com.test.Gateway');var Gateway1 = new Gateway(7000); [11:43] mikekelly has joined the channel [11:43] syntheze has joined the channel [11:44] syntheze has joined the channel [11:45] kawaz_air has joined the channel [11:45] philipharrison has joined the channel [11:45] syntheze has joined the channel [11:49] chapel: maybe var Gateway = require('./com.test.Gateway').Gateway(7000); [11:49] chapel: idk for sure [11:49] |sWORDs|: idk? [11:49] chapel: i dont know [11:49] |sWORDs|: k, tnx! [11:51] zorzar_away has joined the channel [11:53] |sWORDs|: Didn't work, I'm using something like this to make less mess: com.test.Constructors = {Net: require('net'),Gateway: require('./com.test.Gateway')}; [11:57] herenowcoder has joined the channel [12:03] jashkenas has joined the channel [12:09] Evet: ryah: why dont you use nginx as event-loop and networking base? [12:09] jetienne: :) [12:10] chapel: why use nginx? [12:10] chapel: what does it provide that something node specific couldn't? [12:11] Evet: chapel: stability, performance? [12:11] chapel: but wouldn't it behoove node to develop its own best of breed solutions for that? [12:12] chapel: instead of adopting something like nginx that has a lot of problems [12:12] Evet: chapel: could you rephrase? [12:13] chapel: well nginx has its own problems and limitations [12:13] unomi has joined the channel [12:13] Evet: chapel: what kinda? [12:13] chapel: if node adopted it as a foundation, then node would have those limitations [12:13] chapel: http 1.0 instead of 1.1 [12:13] chapel: ie no websockets [12:13] jetienne: ? [12:14] jetienne: node as no websocket either [12:14] chapel: node does websockets [12:14] jetienne: but it is irrelevant [12:14] Evet: chapel: http server is just a module of nginx [12:14] chapel: socket.io [12:14] chapel: eh [12:14] Evet: and yeah, it sucks [12:14] jetienne: chapel: look socket.io and look node. and see how they are != projects :) [12:14] chapel: if node were just being started, maybe you could ask for something like that [12:14] jetienne: nginx is a webserver. node.js is a script langauge [12:15] jetienne: just nothing related [12:15] Evet: nginx isnt a webserver at all [12:15] jetienne: Evet: ok you win [12:15] chapel: I like where node is going [12:15] chapel: it needs to stay simple and pure [12:15] tokumine has joined the channel [12:15] SubStack: http://substack.net/images/npmdep/ npm graphs! [12:16] SubStack: mape slaskis stagas ^^^ [12:16] mape: SubStack: nice [12:16] jetienne: SubStack: do that in js live ? /) [12:17] SubStack: live? They take a minute or so to generate. [12:17] jetienne: SubStack: how did you dump the whole npm db ? [12:17] SubStack: :) [12:17] mape: SubStack: looks like a joy division album cover [12:17] Evet: chapel: what makes nodejs instable? [12:17] SubStack: jetienne: https://github.com/substack/npmdep [12:17] chapel: node isn't unstable [12:17] chapel: the reason 0.3.x is 'unstable' is because its changing [12:18] chapel: not because it will crash (though it could, as with anything) [12:18] chapel: but there are plenty of examples where good code has had insane up times [12:18] Evet: dont people use nginx front of node? [12:18] garrensmith has joined the channel [12:19] chapel: so dont take the term unstable to mean it crashes all the time [12:19] chapel: Evet: some people do [12:19] chapel: some dont [12:19] chapel: you dont need to [12:19] chapel: you could run a node proxy in front just as easily [12:19] chapel: or run your own solution that is specific to your app [12:20] ErikCorry: http://en.wikipedia.org/wiki/Linux_kernel#Development_model <-- I think this is where the 'unstable' tag comes from. [12:20] chapel: yeah [12:20] chapel: again, another misconception [12:21] herbySk has joined the channel [12:21] skm has joined the channel [12:21] jetienne: https://github.com/substack/npmdep/blob/master/index.js#L83 got it :) [12:22] SubStack: jetienne: list unfortunately doesn't give you the dependency data [12:22] SubStack: had to call npm.commands.view() repeatedly >_> [12:22] SubStack: I'm sure there's a couchy fast way to do it but meh [12:23] jetienne: https://github.com/substack/npmdep/blob/master/index.js#L107 <- i love the 250ms timer :) [12:23] Evet: why dont nodejs use spidermonkey instead of google v8? [12:23] martigam has joined the channel [12:23] chapel: why use spidermonkey instead of google v8? [12:23] jetienne: Evet: are you doing a homework or something ? [12:24] Evet: because spidermonkey is worse than v8 [12:24] SubStack: why use v8 instead of netscape 3's javascript engine? [12:24] SubStack: why use vi instead of emacs? [12:25] Evet: im asking you [12:25] jetienne: maybe this is it. Evet is trying to trigger a troll [12:25] Evet: there is a reason to use v8, right? [12:25] jetienne: Evet: yes [12:26] shiawuen has joined the channel [12:26] Evet: so, why use ryah's libev implementation instead of nginx? [12:26] jetienne: Evet: because [12:27] jetienne: mysql instead of v8 has never been considered either [12:27] Evet: it makes some people use nginx front of node [12:27] Evet: its funny like, we're using another javascript engine front of node [12:28] chapel: Evet: if you were to throw the js logic you put in node into nginx, it would need a proxy in front of it as well [12:28] chapel: and the reason people put nginx in front of node is not because node can't handle load, its because they want to load balance between multiple node processes [12:28] chapel: but you can use node to do that [12:29] chapel: or apache if you like to torture yourself [12:29] jetienne: or mysql [12:29] jetienne: or any other software [12:29] eikke: ACTION would use nginx in front of node to serve static media as well [12:30] chapel: well there is that [12:30] chapel: but I am sure node could handle static files as good or better than nginx eventually [12:30] Evet: nginx has a in-memory database to balance load [12:30] jetienne: Evet: mysql too [12:30] chapel: Evet: node could do the same thing [12:31] jetienne: Evet: photoshop too!!! [12:31] Evet: chapel: so, would you use ryah's javascript parser instead of v8? [12:31] jetienne: hehe this guy is strange [12:31] jetienne: Evet: seriously read more [12:31] chapel: I think ryah knows what he is doing, and I trust where he is taking node [12:31] chapel: if you dont like node [12:31] chapel: go use something else [12:31] Evet: fanboy alert. [12:32] jetienne: and ryah hasnt written a js parser :) [12:32] chapel: Evet: you're in #node.js [12:32] eikke: fwiw, there's something node-like which uses the monkey [12:32] chapel: quit trolling [12:32] pdelgallego has joined the channel [12:32] pdelgallego_ has joined the channel [12:32] pdelgallego__ has joined the channel [12:32] jetienne: eikke: it was there even before nodejs as far as i know :) [12:32] Evet: its not trolling [12:33] eikke: jetienne: then I think we're referring to different projects :) [12:33] jetienne: Evet: 9+9 = ? [12:33] jetienne: im doing the usual bot detection [12:33] chapel: it is when you are trying to spark an argument [12:33] mnbvasd: argument or discussion? [12:33] jetienne: i think it is a bot [12:35] Evet: nodejs uses v8 because its better than spidermonkey? is there a reason to use ryah's implementation instead of nginx (a better solution)? [12:35] chapel: you say its a better solution [12:35] chapel: but that doesn't mean you are right [12:36] Evet: what makes nodejs' networking and event-loop stuff better than nginx' [12:36] Evet: ? [12:36] jetienne: Evet: it is not [12:36] mnbvasd: Evet: better is suerly down to context? [12:36] SubStack: hooray npm works again! [12:37] tokumine has joined the channel [12:37] stagas: Evet: nobody stops you from forking node and adding nginx [12:38] stagas: if it performs better I'll use it. hypothetically we can talk about anything [12:38] Evet: stagas: sure. im doing it atm. i was just asking it to ryah [12:38] jetienne: Evet: publish it on github [12:39] jetienne: function(){}.bind(this) <- nice one SubStack, i didnt know this one [12:39] dnolen has joined the channel [12:41] jetienne: socket.io on gae websocketlike.. ? anybody with too much time to port it ? :) [12:41] SubStack: gae? [12:42] jetienne: google app engine, they released a custom websocket like a few months ago [12:44] jetienne: http://code.google.com/p/typhoonae/wiki/ChannelAPI [12:49] thermal has joined the channel [12:49] Evet: jetienne: python websocket library, https://github.com/kanaka/noVNC/blob/master/utils/websocket.py [12:50] jetienne: Evet: you are sureal :) [12:50] Evet: jetienne: and flash fallback js library, https://github.com/gimite/web-socket-js/ [12:50] Evet: socket.io also uses this [12:52] boaz has joined the channel [12:53] virtuo has joined the channel [12:56] nook has joined the channel [13:02] w0rse has joined the channel [13:02] zedas has joined the channel [13:03] tiemonster has joined the channel [13:07] stepheneb has joined the channel [13:07] rawroland has joined the channel [13:08] rachelbutts has joined the channel [13:09] jbpros has joined the channel [13:10] vilsonvieira has joined the channel [13:11] pyrotechnick has joined the channel [13:12] okuryu has joined the channel [13:12] jimt has joined the channel [13:12] masahiroh has joined the channel [13:13] perlmonkey2 has joined the channel [13:13] pyrotechnick has joined the channel [13:14] virtuo has joined the channel [13:15] mw has joined the channel [13:15] hunterloftis has joined the channel [13:16] tokumine has joined the channel [13:18] PyroPete1 has joined the channel [13:18] fairwinds has joined the channel [13:20] jimt has joined the channel [13:20] saschagehlich has joined the channel [13:23] boaz has joined the channel [13:25] hwinkel has joined the channel [13:25] Me1000 has joined the channel [13:25] piscisaureus has joined the channel [13:28] djanowski has joined the channel [13:30] pHcF has joined the channel [13:31] aklt: cloudhead: Hi! I am looking at adding xunit/junit like output to vows, is that ok? Do you have any plans for something like that? [13:31] mike5w3c_ has joined the channel [13:33] kawaz_air has joined the channel [13:34] kawaz_ai_ has joined the channel [13:34] jbpros_ has joined the channel [13:35] kawaz_air has joined the channel [13:36] aklt: I remember there were some requests asking for the addition of --nocolor option, which would change the vowText method, so maybe it is a good idea if I do not depend too heavily on that? [13:36] arpegius has joined the channel [13:38] syntheze has joined the channel [13:38] wdperson has joined the channel [13:40] eee_c has joined the channel [13:43] aklt: Hello? [13:43] lukegalea has joined the channel [13:45] gflarity has joined the channel [13:45] charlenopires has joined the channel [13:47] tiemonster: aklt: most people aren't in yet [13:49] edw: Hey, I got here at 8:05 GMT-5 [13:50] tiemonster: I've had more luck after 10, which leads me to believe most people are in Pacific time zone [13:50] eevin has joined the channel [13:50] tiemonster: well, I'm off [13:52] booths has joined the channel [13:52] kris_ has joined the channel [13:53] Wizek_ has joined the channel [13:54] shaunau has joined the channel [13:55] MattJ has joined the channel [13:56] piscisaureus has joined the channel [13:57] piscisaureus: felixge: ping [13:58] aklt: tiemonster: Ok, thanks... I was just unsure if it would be a good idea for me to put work into adding another output format if there are major changes underway :-) But thanks! [13:59] jimt has joined the channel [14:01] davidsklar has joined the channel [14:03] gattuso has joined the channel [14:03] Ari-Ugwu has joined the channel [14:04] jimt_ has joined the channel [14:07] Christopher_Bisc has joined the channel [14:07] jlecker has joined the channel [14:07] fumanchu182 has joined the channel [14:07] void_ has joined the channel [14:14] amacleod has joined the channel [14:15] booths has joined the channel [14:17] eevin has joined the channel [14:18] iskren has joined the channel [14:19] rudebwoy has joined the channel [14:19] iskren: do you know how to disconnect a socket.io client from the server (I couldn't find the socket.io channel :() [14:19] hwinkel has joined the channel [14:20] claudiu__ has joined the channel [14:21] kris_ has joined the channel [14:22] CrazyGoogle has joined the channel [14:22] CrazyGoogle: hi [14:22] edw: Hi. [14:22] eevin has joined the channel [14:22] CrazyGoogle: i am trying to compile v0.3.6 [14:22] CrazyGoogle: and it hangs with 100% CPU [14:22] CrazyGoogle: scons: Building targets ... obj/release/mksnapshot obj/release/snapshot.cc --logfile "/home/httpd/software/node/build/default/obj/release/snapshot.log" --log-snapshot-positions [14:23] CrazyGoogle: is it normal ? [14:23] colinclark has joined the channel [14:23] ErikCorry: Yeah. [14:23] ErikCorry: It's a feature. [14:24] edw: I would guess that the answer is no, but I am sticking with the stable release. [14:24] ErikCorry: Wait, let me check my notes. [14:24] ErikCorry: Nah, turns out it's a bug! [14:25] virtuo has joined the channel [14:25] ErikCorry: What's your gcc version? [14:27] CrazyGoogle: i use usualy 0.2.6 [14:27] jakehow has joined the channel [14:27] CrazyGoogle: but try some modules for compatibility with 0.3.x [14:27] CrazyGoogle: so i compile time to time newest release [14:28] CrazyGoogle: gcc version 4.5.2 (Gentoo 4.5.2 p1.0, pie-0.4.5) [14:28] booths_ has joined the channel [14:28] eee_c has joined the channel [14:28] CrazyGoogle: and it still do mksnapshot [14:28] CrazyGoogle: cpu is on one core at 100% [14:28] ErikCorry: I wonder if export "CCFLAGS=-fno-strict-aliasing" helps you [14:28] booths_: Iskren: Your best bet might be to send a message to the client to call disconnect from their side. I looked through real quick and didn't see a disconnect method. [14:29] Evet_ has joined the channel [14:29] jimt has joined the channel [14:29] ErikCorry: Sorry the export is part of the command [14:29] ErikCorry: The quotes are not [14:29] CrazyGoogle: looks like that [14:30] iskren: booths_, ok, the reason I'm asking is because if I call disconnect from the client my last message gets dropped [14:30] CrazyGoogle: ErikCorry: yeah, i know how to pass Flags to compiler :D [14:30] iskren: booths_, so I decided to send a message to the server to disconnect me, so now I should return it back ... omfg :) [14:31] booths_: iskren: So you want to force disconnect IE to stop them from receiving messages? [14:31] CrazyGoogle: ErikCorry: is that something wrong on my side, or in build system ? [14:31] booths_: iskren: I'm not sure if this will fuck something up, but theoretically you could remove the sessionid from socket.clients. I believe that will leave it out of any messages. [14:31] iskren: I want to send a message from the client, and then disconnect, but if I : "socket.send(), socket.disconnect()", then that last message gets dropped (FF) [14:32] CrazyGoogle: ErikCorry: with CCFLAGS=-fno-strict-aliasing compilation done nicely [14:32] ErikCorry: You have a very new gcc. [14:32] ErikCorry: Every [14:33] ErikCorry: time gcc gets smarter we have to get more careful with the strict aliasing analysis. [14:33] ErikCorry: It inlines more and makes wrong assumptions. [14:33] CrazyGoogle: node -v : v0.3.6 [14:33] CrazyGoogle: :D [14:33] trotter has joined the channel [14:33] iskren: booths_, I want to disconnect, because I'm counting the users connected, and if they stay connected it is pretty bad [14:34] mandric has joined the channel [14:34] iskren: booths_, I guess I can send back the disconnect message to the client as you proposed ... [14:34] kennon has joined the channel [14:34] booths_: Yeah, that will handle any latency and ensures you're ready for the client to disconnect. [14:35] kennon has left the channel [14:35] Poetro has joined the channel [14:36] till_ has joined the channel [14:36] ErikCorry: CrazyGoogle: http://code.google.com/p/v8/issues/detail?id=884 [14:36] CrazyGoogle: i am trying also to write minimalistic code to leak memory with node.js, and cant do that somehow :( Even circular referencing helps :( [14:36] ErikCorry: In this case it's probably gcc getting dumber, not smarter. [14:37] ErikCorry: You want to leak memory? [14:37] till_: anyone use socket.io in here? i'm trying to update clients that are connected to it (without any 'event' from the client side). just send out messages, as new messages arrive. i can't figure out how to do that [14:37] ErikCorry: This is the forum for people who want to stop leaking memory [14:37] |sWORDs| has joined the channel [14:37] mandric has joined the channel [14:38] CrazyGoogle: ErikCorry: yea, i want see if someonce can write code that leaks [14:38] |sWORDs|: I'm using sys.puts from an example but get Cannot call method 'puts' of undefined. Did it change in later versions of Node.js? [14:38] CrazyGoogle: ErikCorry: not that node.js leak memory where it isnt suspected [14:38] ErikCorry: bye [14:38] CrazyGoogle: util.puts [14:38] chrischris has joined the channel [14:38] stepheneb has joined the channel [14:39] Anti-X has joined the channel [14:40] iskren: booths_, yep, that one worked nicely (or at least as nice as possible considering the hack :)) [14:40] boaz has joined the channel [14:40] booths_: iskren: :) [14:40] montylounge has joined the channel [14:40] sivy_ has joined the channel [14:41] |sWORDs|: util.puts still gives the same error. [14:41] |sWORDs|: ypeError: Cannot call method 'puts' of undefined [14:41] kristsk: do you have a 'var util = require("util");' [14:42] CrazyGoogle: var util = require('util'); [14:42] booths_: till_: You can send messages without having received. You should be able to just do socket.broadcast(message, [except]) [14:42] CrazyGoogle: util.puts("hallo world"); [14:42] |sWORDs|: yes, I've got that line [14:42] Gruni has joined the channel [14:42] kristsk: require("util").puts("Hallow world"); [14:42] kristsk: how about this. [14:45] |sWORDs|: that line works, but not with require('util') in a var [14:45] |sWORDs|: really strange, I do it with all other requires aswell [14:47] kristsk: somthing wierd is going on there [14:47] kristsk: it does not work even if you do require exacltly before puts() ? [14:48] till_: booths_: thanks, i'll check that out [14:49] |sWORDs|: no it does work with require on the same line [14:50] |sWORDs|: just not when the require('util') is in a variable, but 'net' does work [14:50] kristsk: umm. [14:50] kristsk: which version of node are you using? [14:50] kristsk: 0.3.x or 0.2.x ? [14:51] |sWORDs|: 0.3.1 [14:51] saschagehlich: hm try var util = require("util"); console.log(util); [14:52] jetienne: > var util = require("util"); console.log(util); [14:52] jetienne: 2 [14:52] jetienne: saschagehlich: how come it display 2 ? [14:52] saschagehlich: 3?! [14:52] pietern has joined the channel [14:52] saschagehlich: i mean 2?! [14:52] saschagehlich: hm strange o_O try installing a newer version of node [14:53] jetienne: saschagehlich: this is node 0.2.6 [14:53] |sWORDs|: var util = require("util"); console.log(util); gives no output [14:53] saschagehlich: jetienne: okay, util is not available in 0.2 I guess [14:53] gflarity has joined the channel [14:53] saschagehlich: but maybe there has been a util module anyway, dunno realle [14:53] saschagehlich: *really [14:53] chapel: before 0.3.x util was sys [14:54] jetienne: > require("util") [14:54] jetienne: 2 [14:54] jetienne: what is the npm command to know the locally installed package ? [14:54] tiemonster: piscisaureus: ping [14:55] till_: booths_: awesome, that did the trick. any suggestion on how to figure out the socket.io api? :) i've been looking at the code and it's not too documented. [14:55] jetienne: npm list installed [14:56] liar has joined the channel [14:56] jetienne: saschagehlich: no npm package installed called "util". i have no idea why require('util') return 2 [14:56] nooder has joined the channel [14:57] bradleymeck has joined the channel [14:57] booths_: till_: Poking through the source is always a good bet. There's an example as well https://github.com/LearnBoost/Socket.IO-node/blob/master/example/server.js [14:57] CrazyGoogle: :D 2, why not 42 ? [14:57] kristsk: 2 means "not found" afaik [14:58] kristsk: ENOTFOUND or what was its name [14:58] CrazyGoogle: does 0.3.1 already hat util ? [14:58] CrazyGoogle: require('sys') ? [14:58] jetienne: kristsk: i guess a exception would be more suitable than a errno :) [14:58] kristsk: well in repl this kinda makes sense [14:59] jetienne: and require('notamod') does throw an exception [14:59] jetienne: > require('dd') [14:59] jetienne: Error: Cannot find module 'dd' [14:59] kristsk: hmm [14:59] kristsk: that is a bit wierd. [15:00] Utkarsh_ has joined the channel [15:00] CrazyGoogle: hehe. cool desktop background . http://www.flickr.com/photos/louish/5371825855/in/pool-421216@N24/lightbox/ [15:01] booths_: CrazyGoogle: Yeah those are always cool, but what happens when it's dark out [15:02] jdrannbauer has joined the channel [15:02] CrazyGoogle: :D you have blackscreen ? o_O [15:02] piscisaureus has joined the channel [15:02] CrazyGoogle: jetienne: install node once again, and little bit newer version, or stable [15:02] |sWORDs| has joined the channel [15:03] jetienne: CrazyGoogle: this is the last stable version. aka 0.2.6 [15:03] piscisaureus: tiemonster: I'm not really here. But talk to me anyway :O [15:03] jdrannbauer: brianc: Got a sec for a question on node-postgres? [15:03] gf3 has joined the channel [15:03] tiemonster: eh? [15:03] CrazyGoogle: jetienne: than its somehow wired installed [15:04] malkomalko has joined the channel [15:04] jetienne: CrazyGoogle: ? [15:04] |sWORDs|: The problem is somewhere else, I use an object to declare all requires like testobj={net: require("net"),Util: require("util")}; [15:04] jetienne: CrazyGoogle: you dunno and do several wild guesses, correct ? [15:04] CrazyGoogle: require('util') on 0.2.6 shoulnd return 2 [15:04] |sWORDs|: this works for net, but not for util. with var util = ... it does work [15:04] kristsk: on 0.2.5 to [15:04] kristsk: too [15:04] jetienne: kristsk: you can reproduce it ? [15:04] CrazyGoogle: yes, 0.2.5 knows about util too [15:05] virtuo has joined the channel [15:06] davidwalsh has joined the channel [15:06] jetienne: https://github.com/ry/node/blob/v0.2.6/lib/utils.js <- interesting :) [15:06] aklt: cloudhead: Hi! I am looking at adding xunit/junit like output to vows, is that ok? Do you have any plans for something like that? [15:07] jetienne: oh wait theiur is a s at utils.js [15:08] jetienne: > require("utils") [15:08] jetienne: 2 [15:08] jetienne: bjut [15:09] jetienne: once built, node has the .js in the executable directly ? [15:10] jetienne: what was the sencha stuff for distributing node with custom js ? [15:10] unomi has joined the channel [15:11] |sWORDs|: Does anyone know why this fails: testobj={net: require("net"),Util: require("util")}; testobj.Util.puts("Hello"); [15:11] |sWORDs|: testobj.net works but testobj.util doesn't. [15:13] booths_: case sensitivity? [15:13] akahn has joined the channel [15:13] CrazyGoogle: |sWORDs|: it works for me [15:13] piscisaureus has joined the channel [15:14] booths_: If you're using testobj.util, you have it as testobj.Util in declaration [15:15] piscisaureus: tiemonster: going well? [15:15] aheckmann has joined the channel [15:18] jetienne: https://github.com/visionmedia/ndistro found it :) [15:18] bradleymeck: ryah about? [15:19] figital has joined the channel [15:19] fly-away has joined the channel [15:20] tiemonster: piscisaureus: three of us got Node compiled correctly on MinGW [15:20] tiemonster: we're breaking the group into three work groups in descending order of skill [15:20] tiemonster: the first group is going to tackle setenv/unsetenv [15:21] tiemonster: the second, trying to get the test runner operational [15:21] piscisaureus: tiemonster: good :-) [15:21] tiemonster: I was going to ask if you thought the third could work on getuid() [15:21] jetienne: ok i give up. require('util') = require('utils' = 2 and i wont know why :) [15:21] tiemonster: I found this: http://stackoverflow.com/questions/1594746/win32-equivalent-of-getuid/1594839#1594839 [15:21] vineyard has joined the channel [15:21] piscisaureus: tiemonster: you don't need my approval. Go ahead. [15:21] tiemonster: which seems to indicate that we can call GetUserNameW followed by LookupAccountNameW to get the UID on the current process [15:22] piscisaureus: tiemonster: but setuid has no real equivalent on windows so think of something smart :-) [15:22] tiemonster: well if we can get getuid working, I'd be happy [15:23] piscisaureus: tiemonster: I would be too. Go ahead! [15:23] tiemonster: we've created a fork here: https://github.com/tiemonster/node [15:23] |sWORDs| has joined the channel [15:23] tiemonster: we can make changes there, and then submit for merge, right? [15:24] jdrannbauer has joined the channel [15:24] |sWORDs|: booths_: cases are equal, I just typed it wrong one time here [15:24] piscisaureus: good. If you need anything reviewed, drop me an email. You can also talk directly to ryah, he's the one to get stuff landed [15:24] mynyml has joined the channel [15:24] piscisaureus: But I guess if you do that he'll let me review your stuff anyway :-p [15:24] tiemonster: Isn't there an official github way to request a merge? [15:24] sonnym has joined the channel [15:25] piscisaureus: you can send a pull request, yah. That's also fine [15:25] tiemonster: pull == merge? [15:25] tiemonster: I'm new to git [15:25] jeromegn has joined the channel [15:25] tiemonster: always used svn [15:25] kristsk: pull == fetch & merge [15:25] piscisaureus: tiemonster: there is no github way to request a merge [15:25] muhqu has joined the channel [15:25] piscisaureus: but you can request a 'cherry pick', basically landing your commit onto another tree [15:25] piscisaureus: with node we rarely do any merges [15:26] tiemonster: but ryah could merge our stuff in on the master [15:26] piscisaureus: tiemonster: he would probably cherry pick too [15:26] tiemonster: ok [15:26] tiemonster: cool [15:26] tiemonster: so we'll make our changes, and then submit the link via IRC? [15:27] piscisaureus: yeah, that's fine. Or send an email. Or post to nodejs-dev [15:27] tiemonster: cool. thanks! [15:27] piscisaureus: with irc you need to be lucky that the right person is around [15:27] tiemonster: I should have good news by a week from today [15:27] piscisaureus: tiemonster: good work. [15:27] piscisaureus: gotta go now [15:27] tiemonster: thanks for letting us contribute! [15:27] tiemonster: have a good day! [15:27] jherdman has joined the channel [15:29] jeromegn: How weird is that? I use console.log to verify what is returned, as expected it logs an array in my console, but then the node.js instance quits because it says that same thing I was logging one line above is now undefined... [15:29] hwinkel has joined the channel [15:29] jeromegn: https://gist.github.com/d10e72efe23b8f75e9e4 [15:30] jeromegn: boggles my mind [15:31] ceej has joined the channel [15:31] CrazyGoogle: jeromegn: you have to check that tweet.text is defined and is string [15:31] jherdman has joined the channel [15:31] CrazyGoogle: or do try and catch [15:32] bradleymeck: why is there a this.text when you seem to be using just text? [15:32] bradleymeck: s/text/tweets/ [15:32] m64253 has joined the channel [15:32] hellp has joined the channel [15:33] jeromegn: CrazyGoogle: Sounds to me like it's a bigger problem then that... the console returns something, but then it throws an error in that console statement! (I added some more explicit stuff here: https://gist.github.com/d10e72efe23b8f75e9e4) [15:33] jeromegn: bradleymeck: this represents the twitter account model [15:34] bradleymeck: i still think the fact that you have one tweets using the 'this' keyword and one not is confusing [15:34] piscisaureus has joined the channel [15:34] piscisaureu_ has joined the channel [15:35] shiawuen has joined the channel [15:35] jchris has joined the channel [15:35] CrazyGoogle: jeromegn: there is your error [15:35] CrazyGoogle: [ 'http://twitpic.com/3u1xgl' ] -is not a string [15:37] CrazyGoogle: jeromegn: i mean, you try to call "match" on array [15:37] BillyBreen has joined the channel [15:37] losing has joined the channel [15:38] bradleymeck: crazygoogle thats not it, the question is why does tweet.text become undefined [15:38] bradleymeck: it does so in the if statement, but it doesnt appear to be set before that [15:38] gflarity has joined the channel [15:39] CrazyGoogle: bradleymeck: i dont understand you, gist shows that tweet.text is an array [15:39] jeromegn: bradleymeck: Yes exactly. Actually it's pretty darn weird that the console.log returns the right thing, but then it throws me an error in that same console.log? How can that be? [15:39] akahn has left the channel [15:40] bradleymeck: crazygoogle shows the result of match is an array [15:40] bradleymeck: jeromegn it dies before the 2nd log [15:40] kawaz_air has joined the channel [15:40] jeromegn: bradleymeck: there's no second log [15:40] jeromegn: :( [15:41] jeromegn: Does it help if I give you more of the code? it's running through a _.each loop [15:41] bradleymeck: exactly its not dying in the console.log its dying because prior to the log being invoked and prior to match being invoked, tweet.text is set to undefined or simply not defined [15:41] bradleymeck: it helps a lot [15:41] CrazyGoogle: jeromegn: i tryed your code with 0.3.6 and it works without exception [15:42] jeromegn: updated the gist: https://gist.github.com/d10e72efe23b8f75e9e4 [15:42] rjrodger_ has joined the channel [15:43] jherdman has joined the channel [15:43] paulrobinson has joined the channel [15:44] CrazyGoogle: jeromegn: try something like that ? if(tweeto.hasOwnProperty('text')) console.log(tweet.text.match(urlRegex)); [15:44] gflarity has joined the channel [15:45] killfill: hi [15:46] springify has joined the channel [15:46] killfill: sorry for the question.. but, im doing a http (client) request, and need to get binary data. the 'data' event is emitting Buffer struct's. I need to recollect them all, and when on 'end' write it somewhere. [15:46] killfill: How much big should i make the Buffer im using to collect all the data?.. [15:47] CrazyGoogle: as big as you need o_O [15:47] killfill: i mean.. make i make it dynamically grow right? [15:47] brianc: jdrannbauer: yes [15:47] killfill: can i .. :P [15:48] brianc: jdrannbauer: just got in to the office. had a knife fight with my alarm clock and lost. I am ready for your question. [15:48] warz has joined the channel [15:48] augustl: anyone know if there are orm-ish wrappers for i.e. node-postgres? [15:48] brianc: augustl: not that I know of currently though a few are 'in the works' I believe [15:49] augustl: I see [15:49] Yuffster has joined the channel [15:50] Yuffster has joined the channel [15:50] jeromegn: CrazyGoogle: here's what I get... I suppose the bunch of nulls is due to going through tweets that did not match the regex: https://gist.github.com/64c01c709183c76e4d9a [15:50] ROBOTARMY has joined the channel [15:51] CrazyGoogle: jeromegn: if (tweet.text.match(urlRegex)) this.tweets.push(tweet); should go in to the if for hasOwnProperty [15:51] CrazyGoogle: or you just check if( tweet ) {console.log if(....) put } [15:53] brianc: augustl: I started toying with one last night...going to be a few weeks before it's not a heap of trash though. :) [15:53] jeromegn: CrazyGoogle: there will always be a tweet.text property. [15:53] softdrink has joined the channel [15:53] CrazyGoogle: jeromegn: as i understand _.each gives you also null tweets [15:54] killfill: ah i could use the content length.. :^P [15:54] CrazyGoogle: jeromegn: you have to ignore null objects from .each [15:54] jeromegn: woah [15:54] CrazyGoogle: jeromegn: best way not to null empty tweets but delete them [15:54] jeromegn: ok, let me try that out [15:56] CrazyGoogle: jeromegn: best way you also can use splice [15:56] CrazyGoogle: so you never has null values in array [15:58] augustl: brianc: looking forward to see what people come up with [15:58] augustl: since JavaScript is different from most other languages that have ORMs, with Object.create etc. [15:58] bradleymeck: Object.create(null) == win [15:59] augustl: bradleymeck: is that the same as {}? [15:59] jeromegn: CrazyGoogle: Still getting the same issue :( that really boggles me... https://gist.github.com/64c01c709183c76e4d9a [15:59] bradleymeck: augustl no [15:59] bradleymeck: its actually pretty messed up [16:00] brianc: augustl: yeah, I have my eye on the new "ToyStore" gem in the ruby community & the ext.js 4.0 Data stuff they're doing at sencha [16:00] CrazyGoogle: jeromegn: can you make output from tweets befor each ? [16:01] ttpva has joined the channel [16:01] CrazyGoogle: console.log(require('util').inspect(tweets)); [16:01] jeromegn: CrazyGoogle: yep [16:02] springmeyer has joined the channel [16:02] xla has joined the channel [16:03] jdrannbauer: brianc: Stepped away for a minute. Sorry. Thanks for responding. Here's my question... [16:03] w0rse_ has joined the channel [16:03] dmcquay has joined the channel [16:03] jdrannbauer: brianc: btw... Hope the alarm clock didn't win... [16:03] jeromegn: CrazyGoogle: the output ends abruptly as the server quits... but every tweet has a "text" property for sure! https://gist.github.com/64c01c709183c76e4d9a [16:05] brianc: jdrannbauer: I'm here [16:05] CrazyGoogle: jeromegn: it didnt show me what i wanted [16:05] CrazyGoogle: jeromegn: comment stuff that breaks node [16:06] stepheneb has joined the channel [16:06] CrazyGoogle: jeromegn: you can also try: if (tweet && tweet.text && typeof tweet.text === "string") { [16:06] mischievious has joined the channel [16:07] Me1000 has joined the channel [16:08] abraham has joined the channel [16:08] jdrannbauer: brianc: I've actually figured out most of what my question was going to be about so I'm having difficulty expressing my current thoughts... [16:09] brianc: no worries [16:10] jdrannbauer: brianc: Let's say I have an object that I want to reuse the same client on. How would you do that? [16:10] CrazyGoogle: jeromegn: even if your code works it doesnt makes much sense :D You do want filter tweet based on some url in the text ? You double tweets that have it at the moment with current code. [16:11] gflarity has joined the channel [16:12] hwinkel has joined the channel [16:13] brianc: jdrannbauer: reuse the same client? [16:13] jdrannbauer: yes. [16:13] brianc: jdrannbauer: you can create clients w/ the constructor: new Client("pg://user:password@host:port/databaseName") [16:14] jeromegn: CrazyGoogle: Hmm, really? How so? Looping through them once, if the tweet's text matches the url I push it as an embedded object in my mongodb model, else I do nothing. How would it double it? Btw, thanks so much for your help! [16:14] langworthy has joined the channel [16:14] bshumate has joined the channel [16:14] brianc: then you have a reference to the client and you can do anything you please with it [16:14] CrazyGoogle: you looping thow whis.tweets and than do this.tweets.push(tweet) [16:14] brianc: jdrannbauer: is this in reference to usually gaining access to clients via the callback passed to pg.connect()? [16:15] jdrannbauer: Right. That's the part that I've figured out. I'm having difficulty using the 'drain' event with it. [16:15] Christopher_Bisc has joined the channel [16:15] jdrannbauer: not using pg.connect() [16:15] CrazyGoogle: jeromegn: isnt it simpliert to cut unneded tweets from existing array, than build new one ? [16:15] flippyhead has joined the channel [16:15] brianc: jdrannbauer: 'drain' fires once all the queued queries in the client have finished executing [16:15] CrazyGoogle: jeromegn: no idea, do my new if statement worked ? [16:15] syntheze has joined the channel [16:15] jeromegn: CrazyGoogle: Probably :D I'll check it out! splice you said? perhaps _.filter! anyway, this.homeTimeline actually fetches it from Twitter, not from his own tweets, I know, confusing ;) [16:15] brianc: jdrannbauer: mostly good for disconnecting the client at the end of using it, returning it to a pool, or doing something else with it. basically it is the client saying "hey, I'm sitting idle now." [16:16] jeromegn: CrazyGoogle: yes, but there's another issue I'll be able to fix though! [16:17] jdrannbauer: That's identified by an empty QueryQueue, right? But there are times when my client's queryqueue will be empty but I want it to hang around anyway. [16:17] bradleymeck: does the dns module support MX record support? [16:17] brianc: jdrannbauer: sure, you don't have to disconnect the client when drain fires [16:17] danyork has joined the channel [16:17] daniellindsley has joined the channel [16:18] Christopher_Bisc: torgeir: Are you in here? I've got an eventedsocket question [16:19] brianc: jdrannbauer: the main reason to disconnect the client is so your node process can eventually exit. If you never disconnect the client node keeps running because the socket to postgres is still open. [16:21] jdrannbauer: That leads me to what I think my real question is... Right, So how might I allow my object to stay connected and then disconnect when I want it to? Safely? [16:22] keyvan- has joined the channel [16:22] jdrannbauer: BTW... I know I'm probably just missing something obvious. [16:24] BrianTheCoder has joined the channel [16:24] lukegalea has joined the channel [16:24] brianc: jdrannbauer: so you want to tell the client to disconnect and have it only disconnect after it's finished running it's queries. but then if the client is already finished the 'drain' event wont fire, huh? [16:24] kuhrt has joined the channel [16:26] nooder: is this right approach to parallel implementation https://gist.github.com/7a358411a9fbe233e370 ? [16:26] jdrannbauer: Exactly... I'm positive I'm not being clear. Sorry. Here's a gist: https://gist.github.com/800490 [16:26] stepheneb has joined the channel [16:28] briznad has joined the channel [16:28] jdrannbauer: In Base, I would want to provide some function that allows me disconnect but only after everything that I need the client to do is done. [16:29] gflarity has joined the channel [16:29] jvolkman-work has joined the channel [16:29] jvolkman-work: Does npm's installation require net access, and if so, can I make it use an http proxy? [16:30] brianc: jdrannbauer: i see. you could just add "disconnect" or "end" method to the base and in that check to see if the client.queryQueue.length == 0; if it does, call 'client.end' otherwise "client.on('drain', client.end.bind(client))" [16:30] dguttman has joined the channel [16:30] tokumine has joined the channel [16:33] jdrannbauer: Oh, I see... good call. Lemme give that a try. Thanks. Sorry for being so scattered. [16:33] c4milo has joined the channel [16:33] brianc: jdrannbauer: no worries man [16:34] eresair has joined the channel [16:35] bmavity has joined the channel [16:36] sprout has joined the channel [16:36] jherdman has joined the channel [16:38] losing has joined the channel [16:40] jdrannbauer: brianc: Works like a charm. Thanks for your help. I knew I was missing something. Just wasn't sure what it was. [16:40] nonnikcam has joined the channel [16:40] tjholowaychuk has joined the channel [16:41] hornairs has joined the channel [16:42] iszak has joined the channel [16:44] keyvan- has joined the channel [16:44] saschagehlich has joined the channel [16:47] brianc: jdrannbauer: cool, maybe I can put an overload on the 'connection.end()' method that takes a boolean. if you pass it 'connection.end(true)' it'll wait for all active queries and or end immediately if the queue is already empty [16:48] brianc: s/connection/client [16:49] jdrannbauer: I like that. [16:49] |sWORDs| has joined the channel [16:49] brianc: jdrannbauer: I opened an issue for it, i'll work on it when I get the chance [16:50] jdrannbauer: Here's what it looks like now: https://gist.github.com/800490 [16:50] jakehow has joined the channel [16:52] siculars has joined the channel [16:52] brianc: jdrannbauer: yeah, that's cool. technically queryQueue shouldn't be on the public api of Client but is no big deal [16:53] brianc: jdrannbauer: also would recommend if you're planning on using this on a website you work up some kind of pooling because if you create a new Base for each request you will overload the number of connections your PostgreSQL server can withstand [16:53] jdrannbauer: Right. It would be nice to wrap that whole function into the api like suggested. [16:53] q_no has joined the channel [16:53] jdrannbauer: It's not for a website. At least not yet. [16:54] brianc: jdrannbauer: and if you only use a single client instance ever it might bottlkneck the app since it will only execute 1 query at a time regardless of the number of queries issued to the client [16:54] jdrannbauer: Oh... good point on the one at a time thing. [16:55] warz: is there a package, on github perhaps, that provides utility functions such as range(n) for list comprehension, and stuff? [16:55] aklt: cloudhead: I have looked a bit at vows, very nice stuff! ... [16:56] aklt: cloudhead: But I am having a bit of an issue with ansi escape codes in the json output, as well as some questions on how to format things correctly, so I was hoping to get a hold of you. [16:56] chrischris has joined the channel [16:56] beawesomeinstead has joined the channel [16:57] stephank has joined the channel [16:58] ryanfitz has joined the channel [16:59] beawesomeinstead has joined the channel [17:01] masahiroh has joined the channel [17:01] bronson_ has joined the channel [17:02] beawesomeinstead has joined the channel [17:04] beawesomeinstead has joined the channel [17:04] snearch has joined the channel [17:05] syntheze has joined the channel [17:07] beawesomeinstead has joined the channel [17:07] cloudhead: aklt: yo [17:07] tanepiper: hey cloudhead ! thanks again for getting those patches in to cradle :) [17:08] cloudhead: tanepiper: hey! thanks for submitting [17:08] steffkes has joined the channel [17:09] jamesarosen has joined the channel [17:09] beawesomeinstead has joined the channel [17:11] blueadept has joined the channel [17:12] sechrist has joined the channel [17:12] beawesomeinstead has joined the channel [17:13] broofa has joined the channel [17:13] bingomanatee: Is there any simple way to union two arrays in JS? [17:14] aklt: cloudhead: Argh I am on the way out, so time is short [17:14] cloudhead: aklt: I'm usually around [17:15] Utkarsh_ has joined the channel [17:15] cloudhead: but you shouldn't be getting escapes in json output, that's weird [17:15] amerine has joined the channel [17:15] aklt: cloudhead: The thing is I was looking into adding xunit output to vows, so we could use vows for our hudson setup and ran into funny stuff [17:16] beawesomeinstead has joined the channel [17:16] aklt: cloudhead: I simply threw an exception in one of the vows [17:16] cloudhead: aklt: ah hm [17:16] tokumine has joined the channel [17:16] cloudhead: aklt: you looked at the included reporters? [17:16] LoRe has left the channel [17:16] matt_c_ has joined the channel [17:17] aklt: Yes I did,.. but I really got to go, let m,e see if I can catch you later ;-) [17:17] cloudhead: cool [17:18] aklt: :-) [17:18] csanz has joined the channel [17:18] beawesomeinstead has joined the channel [17:19] mape: tjholowaychuk: Swinging about? :) [17:19] tjholowaychuk: yup yup [17:19] noahcampbell has joined the channel [17:19] mape: tjholowaychuk: Mind a PM? [17:19] tjholowaychuk: nope [17:19] keyvan- has joined the channel [17:21] piscisaureus has joined the channel [17:23] losing has joined the channel [17:23] farhadi has joined the channel [17:25] garrensmith_ has joined the channel [17:26] mm2001 has joined the channel [17:26] booths has joined the channel [17:27] booths: I'm havin some weird issue that appears to be related to timeouts, just throwing this out there in case anyone has had a similar experience and knows the answer before I keep digging... [17:27] romainhuet has joined the channel [17:27] PrgmrBill has joined the channel [17:28] booths: I'm doing something that's pretty heavy process wise, but the frequency for the requests can be 2-3 minutes between or 2-3ms between. So, I clearTimeout(timeout) and then timeout = setTimeout(..., 100); and do the actual thing in the timeout, and clear before setting. It seems to work oaky most of the time, but it seems when they're really quick, like back to back, it's not finishing the timeout ever. [17:28] MatthewMueller has joined the channel [17:30] thelinuxlich has joined the channel [17:31] wadey has joined the channel [17:36] sprout has joined the channel [17:36] swaj has joined the channel [17:36] benburkert has joined the channel [17:37] bronson_ has joined the channel [17:39] cloudhead: booths: I wouldn't trust timeouts to be accurate to the millisecond [17:39] cloudhead: booths: maybe you should have a threshold [17:40] cloudhead: are you running a simulation, or does it have to be realtime? [17:40] bronson_ has joined the channel [17:41] MatthewMueller has joined the channel [17:44] hobodave has joined the channel [17:45] Max-Might has joined the channel [17:46] herbySk has joined the channel [17:48] Gruni has joined the channel [17:48] malkomalko has joined the channel [17:50] isaacs has joined the channel [17:52] pyrotechnick: bingomanatee: pinf [17:52] pyrotechnick: fffff [17:52] pyrotechnick: ping [17:52] pyrotechnick: irc needs message modification like skype [17:52] pyrotechnick: you there dave? [17:53] mape: pyrotechnick: There are reasons why things are like they are :) [17:53] bgilbert has joined the channel [17:53] mape: Especially on IRC [17:53] pyrotechnick: because it's old? [17:53] pyrotechnick: :p [17:54] pyrotechnick: what you working on mr mape? [17:54] pyrotechnick: anything rad? [17:54] mape: pyrotechnick: Always, why would I do anything less [17:54] pyrotechnick: for the money [17:55] pyrotechnick: no, for the quick money [17:55] lukegalea_ has joined the channel [17:56] mape: pyrotechnick: If you aren't doing "rad" stuff which ends in good money, you haven't surrounded yourself with good enough people. [17:56] pyrotechnick: we're trying [17:57] mape: Trying harder is always an option :) [17:57] derferman has joined the channel [17:58] EyePulp has joined the channel [17:58] langworthy has joined the channel [17:59] jarfhy has joined the channel [17:59] curtischambers has joined the channel [18:00] brianler_ has joined the channel [18:01] daglees has joined the channel [18:03] gflarity has joined the channel [18:05] clarkfischer has joined the channel [18:05] ryah: so 'strict mode' is in node now [18:05] ryah: HEAD [18:07] sh1mmer has joined the channel [18:08] jherdman has joined the channel [18:08] brapse has joined the channel [18:09] booths: cloudhead: Sorry, grabbed a bite to eat. Accuracy isn't really the key concern, more efficiency [18:10] tjholowaychuk: ryah: so basically all template engines will explode? [18:10] tjholowaychuk: without with(){} [18:10] dahankzter has joined the channel [18:10] ryah: tjholowaychuk: *shrug* [18:10] tjholowaychuk: sweet lol [18:11] djanowski: sorry about the n00b question, but what is strict mode and what is with() ? urls welcome [18:11] killfill: hey.. im trying to compile v0.3.7 on cygwin, and i see this problem when compiling: Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} [18:12] killfill: version 0.3.2 compiled fine [18:12] killfill: what can i try to do?.. (i have already set SHELL to /bin/sh) [18:13] Ond has joined the channel [18:13] killfill: i think the problem is on 0.3.3 and grater [18:13] tiemonster: killfill: what OS? [18:14] tiemonster: version, that is [18:14] booths: I think it's something where you have to wait for v8 to be patched for cygwin [18:14] tiemonster: no, it works [18:14] killfill: windows xp SP3 [18:14] booths: 3.7? [18:14] tiemonster: latest git compiles fine on cygwin [18:14] killfill: oh yes?.. [18:14] killfill: ACTION trying [18:15] tiemonster: killfill: try closing all cygwin windows, finding ash.exe, running it... [18:15] tiemonster: ... and running: `rebaseall -v` [18:15] tjholowaychuk: ryah [18:15] tjholowaychuk: will this apply to node's core only? [18:15] tjholowaychuk: i dont see the commit [18:15] tjholowaychuk: ACTION hopes so [18:16] killfill: ash.. hm.. [18:16] MikhX has joined the channel [18:16] tiemonster: it's it cygwin's bin folder [18:17] killfill: rebaseall? i guess its something i need to install extra [18:17] tiemonster: shouldn't [18:17] tiemonster: ash.exe is a different shell [18:17] mape: ryah: so the EventEmitter warning thingy, is that per object or process? [18:18] tk has joined the channel [18:18] sivy has joined the channel [18:18] tiemonster: killfill: it fixes deps (http://forum.kaspersky.com/lofiversion/index.php/t48713.html) [18:20] tiemonster: any luck? [18:22] killfill: tiemonster: nope. i did enter ash first, and then execute rebaseall tho [18:22] killfill: i get the same problem :S [18:23] aheckmann: node shouldn't be "strict" - that would be like firefox or chrome saying: everything is strict now [18:23] broofa has joined the channel [18:23] aheckmann: the point is that it is optional : opt in [18:23] aheckmann: the env shouldn't determine that for you [18:23] aheckmann: fail [18:24] jeromegn: can forEach() be used on any array? I get: Object has no method 'forEach' [18:24] ossareh has joined the channel [18:25] mscdex: jeromegn: only arrays, not plain objects [18:25] aheckmann: jeromegn yes [18:25] gkatsev: forEach is an array function [18:25] |sWORDs| has joined the channel [18:25] Bonuspunkt: v8: ['winrar'].forEach(function(a) { return a; }) [18:25] v8bot: Bonuspunkt: undefined [18:25] gkatsev: you can apply an array-like object to it, though [18:25] jeromegn: I did use it on an array :S [18:25] jeromegn: so weird [18:25] Bonuspunkt: v8: [].forEach [18:25] v8bot: Bonuspunkt: function forEach() { [native code] } [18:25] killfill: tiemonster: nope, i did exactly as the url you gave.. same problem.. :S [18:26] killfill: ACTION rebooting [18:26] mscdex: v8: {}.forEach [18:26] v8bot: mscdex: SyntaxError: Unexpected token . [18:26] mscdex: v8: ({}).forEach [18:26] v8bot: mscdex: undefined [18:26] mscdex: ;-) [18:27] jeromegn: v8: [{"some":"thing"}].forEach [18:27] v8bot: jeromegn: function forEach() { [native code] } [18:27] jeromegn: hmm [18:27] mscdex: jeromegn: be aware that objects can be used as associative arrays and look like arrays, but they're not [18:27] booths: tiemonster: I'm getting the same thing as well. What source is telling you that it works on the latest git version? [18:27] tiemonster: I compiled it myself yesterday [18:27] jeromegn: mscdex: Yea. I'm using it on the response from Twitter... it's an array of tweets in json! should work... [18:28] mscdex: jeromegn: care to gist the code? [18:28] tiemonster: booths: I wonder if that's the Visual Studio error... [18:28] jeromegn: mscdex: sure, give me a sec [18:28] tiemonster: I have it on my TODO to trap that error better [18:29] ossareh_ has joined the channel [18:29] booths: ryah did push an update about 8 hours ago, so maybe something changed as well [18:29] tiemonster: let me try again [18:30] jeromegn: mscdex: https://gist.github.com/04cbab41ff61fce155c0 [18:30] perlmonkey2 has joined the channel [18:31] nonnikcam has joined the channel [18:31] mscdex: jeromegn: what about the homeTimeline() function? [18:31] piscisaureus has joined the channel [18:32] xla has joined the channel [18:34] m14t has joined the channel [18:34] killfill: shold 0.3.7 compile on cygwin? i mean.. is it a problem on mymashine? or its a common issue [18:34] tiemonster: killfill: common. let me see if I remember how to fix it. [18:35] killfill: mayne missing a linker component or something.. [18:35] Bosmon2: I don't see a tag for 0.3.7... even though I see messages it was committed [18:35] Bosmon2: killfill: To my knowledge no version since 0.3.2 has compiled on Cygwin, although I haven't tested versions later than 0.3.5 [18:35] Bosmon2: But the error you reported earlier is the same one that has been seen since then [18:36] losing has joined the channel [18:36] killfill: Bosmon2: oh yes.. 0.3.2 compile fine.. i tryied with 0.3.6 and 0.3.5 too [18:36] killfill: :S [18:36] Bosmon2: I see [18:37] tiemonster: I'm working on it now [18:37] tiemonster: killfill: do you have Visual Studio installed? [18:37] killfill: tiemonster: yup [18:37] killfill: 2008 [18:37] Poetro1 has joined the channel [18:37] booths: but I don't. [18:37] tiemonster: it's on the known issues [18:37] Bosmon2: killfill, I just tried v0.3.6 again [18:37] tiemonster: booths: and you can't compile either? [18:37] jeromegn: mscdex: it's basically just an alias that uses getHomeTimeline from node-twitter and returns the user's home timeline [18:37] Bosmon2: It doesn't compile [18:37] booths: Not higher than 3.2 [18:38] Bosmon2: The last version I managed to build was v0.3.1 [18:38] tiemonster: I built latest git yesterday [18:38] Bosmon2: ok, I'll try that [18:38] booths: ryah pushed a v8 upgrade, which is what the cygwin issue is i believe [18:39] tiemonster: that did screw me up at one point [18:39] killfill: i need to 'git checkout works' to get the lastest right?.. (sorry.. git niewbie.. :P) [18:40] piscisaureus: dont mix up cygwin and mingw [18:40] tiemonster: `git pull` I believe [18:40] deepthawtz has joined the channel [18:40] tiemonster: piscisaureus: I got both working yesterday, independently [18:40] garrensmith_ has joined the channel [18:40] tedsuo has joined the channel [18:40] piscisaureus: ok [18:40] Bosmon2: I am trying current head and it still doesn't work for me [18:41] tiemonster: I was all proud of myself I got it compiled on cygwin, and then you burst my bubble. ;-) [18:41] killfill: hehe.. [18:41] ossareh_ has joined the channel [18:41] pomodoro has joined the channel [18:41] jpick has joined the channel [18:42] tiemonster: well cygwin is installing again. I'll let you know how that goes... [18:42] booths: how efficient is array.sort() with a custom function comparing 3 attributes. [18:43] booths: Seems like it might be better to make an alternative [18:43] killfill: hm.. http://node-js.prcn.co.cc/ [18:43] tiemonster: killfill: oh yeah - if you aren't actively developing the Windows port, I'd grab binaries [18:44] tiemonster: I think there are more reputable binaries than that [18:44] Bosmon2: That one worked for me too [18:44] Bosmon2: I still get the "SConstruct" issue [18:44] Bosmon2: Even if I set SHELL correctly [18:44] tiemonster: ok - yeah that's it [18:45] killfill: oh well.. im doing a proggy to help me develop something in the office.. got it almost done in my server.. but all mashines in the office are win32.. :S [18:45] tiemonster: right [18:45] killfill: i need the 'expect' implementation of node.. i think it was dont > 0.3.2.. :P [18:45] Bosmon2: killfill - that's awkward :P [18:46] mscdex: jeromegn: hmm, which one? there's at least a couple projects on github called node-twitter [18:46] tiemonster: well if they have hardware virtualization, I'd venture to guess that a Linux VM might be faster than cygwin [18:46] benburkert has joined the channel [18:46] killfill: heh [18:46] tiemonster: mscdex: lots of forks probably [18:46] mscdex: tiemonster: no, individual projects [18:46] _jud has joined the channel [18:47] Bosmon2: tiemonster: A BSD VM will probably be faster still :P [18:47] mscdex: but there are forks with changed names [18:47] jeromegn: mscdex: This one: https://github.com/jdub/node-twitter/blob/master/lib/twitter.js#L97 (linked to the line at which it sends the parsed json as the callback) [18:47] tiemonster: beat me to it [18:47] killfill: Bosmon2: faster? [18:48] mscdex: jeromegn: if that's the case, it's sending an actual json object, not an array [18:48] Bosmon2: BSD has async disk IO in the kernel, which is something I believe Node can take advantage of [18:48] mscdex: er js object rather [18:48] tiemonster: Bosmon2: oh nice [18:49] tiemonster: then why use WIndows at all? [18:49] paulrobinson has left the channel [18:49] tiemonster: ;-) [18:49] jeromegn: mscdex: I inspected what it gave me, and it was an array of json objects, like I pasted in the gist... no? [18:49] Bosmon2: Well... why use Windows... you may just be used to it for development [18:49] Z10x6k6h has joined the channel [18:49] Bosmon2: You'd be insane to run a production server on Windows :P [18:49] tiemonster: true [18:50] q_no has joined the channel [18:50] Bosmon2: Anyway, I'm sure the build issue will be resolved by the next stable node release [18:50] mscdex: jeromegn: try calling Array.isArray(respTweets) and see what that gives you [18:50] Bosmon2: The whole point of the 0.3.x releases is that they are "unstable" :P [18:50] mscdex: jeromegn: just to verify [18:50] killfill: Bosmon2: oh nice.. looking at the fbsd port, thereis a pthread patch.. makes me think it will be 'less suported'.. :P [18:50] jeromegn: sure! [18:50] tiemonster: well that's what I'm trying to help do! stabilize the build process! :-) [18:51] Bosmon2: In that case you have my support - let me know if there's any help I can give :) [18:51] tiemonster: Bosmon2: piscisaureus is the boss [18:51] mikeal has joined the channel [18:51] tiemonster: we're his minions [18:52] tiemonster: :-) [18:52] killfill: heh [18:52] Bosmon2: Well, piscis insists he doesn't do anything with Cygwin.... so I guess it is up to us [18:52] Bosmon2: He is mainly interested in MinGW [18:52] tiemonster: our software engineering class has been tasked with contributing to an open source project, and piscisaureus adopted us [18:52] tiemonster: Bosmon2: true [18:53] Bosmon2: Well, that is excellent nws [18:53] Bosmon2: I suggest you roll your sleeves up and dive into scons.py and see what is up with it :P [18:53] tiemonster: our class is broken into 3 teams [18:53] tiemonster: our team is trying to fix the test runner, which is broken on both types of Windows deployments [18:54] piscisaureus has joined the channel [18:54] ossareh_ has joined the channel [18:55] jeromegn: mscdex: Woah, seems like it's running that callback twice somehow :S I got two console entries within the callback... one isArray returned true and the next one returned false! [18:56] mscdex: jeromegn: i bet the other one is instanceof Error [18:56] mscdex: you'll want to check for that in your callback [18:56] jeromegn: oh, thanks [18:56] tiemonster: holy crap the vt mirror is slow [18:57] tiemonster: stupid gatech mirror disappeared... [18:58] kiddphunk has joined the channel [18:59] tiemonster: cygwin still installing... [19:00] mscdex: cygwin takes as long as possible so that you can have second thoughts about using it :-) [19:00] tiemonster: it's not bad [19:00] mscdex: yes it is [19:00] tiemonster: seems more stable than MinGW to me [19:00] mscdex: heh [19:01] tiemonster: it's certainly not like using bare metal Ubuntu [19:01] Bosmon2: It appeals to a different mentality :) [19:01] Bosmon2: Certainly I never wanted to run Node on Windows because I was interested in anything *fast* or *stable* [19:01] Bosmon2: I just want something to develop with :P [19:01] mscdex: VM! [19:01] mscdex: :-D [19:02] kkaefer_: how far is express with migrating to 0.3/0.4? [19:02] peol has joined the channel [19:02] peol has joined the channel [19:02] Bosmon2: Even with 6Gb in this machine I find it frequently overcommitted... I'd prefer to run things in the same OS if I can [19:02] Bosmon2: Anyway, diving in into the scons documentation now [19:02] Bosmon2: I think this should be a relatively straightforward problem [19:04] tiemonster: I'm still debating a bare metal install of Ubuntu at work [19:04] tiemonster: I just need a way to connect to Outlook... [19:04] Bosmon2: Yeah, just stick "os=win32" on the list of arguments and it will go [19:04] Bosmon2: Let me test if the final executable actually works [19:05] Bosmon2: oops, not quite :P [19:05] killfill: Bosmon2: it compiled? [19:05] meandi has joined the channel [19:06] Bosmon2: killfill - it got a little further into the build process :) [19:08] Ori_P has joined the channel [19:08] ossareh_ has joined the channel [19:10] curtischambers has joined the channel [19:10] ryah: piscisaureus: hey [19:10] chrischris has joined the channel [19:11] jakehow has joined the channel [19:13] herbySk has joined the channel [19:13] adambeynon has joined the channel [19:14] piscisaureus_ has joined the channel [19:14] piscisaureus: ryah: hi [19:14] piscisaureus: what's up? [19:14] shaver: one of the concurrency libraries has parallel-but-at-most-N -- which one is it? [19:14] shaver: I think it's substack's? [19:15] sveimac_ has joined the channel [19:15] hellp has joined the channel [19:15] pdelgallego has joined the channel [19:15] pdelgallego_ has joined the channel [19:16] pdelgallego__ has joined the channel [19:16] keyvan- has joined the channel [19:17] ryah: piscisaureus: is there a better shell for windows? [19:17] shaver: console2 [19:17] ryah: piscisaureus: tty, i mean [19:17] shaver: you might just want to get the mozilla-build package [19:18] piscisaureus: ryah: like, not the cmd or mingw bash? [19:18] ryah: i'm going to kill myself using the mingw one [19:18] shaver: it has msys and python and stuff [19:18] pomodoro has joined the channel [19:18] shaver: yes, the mingw one is hate [19:18] dspree has joined the channel [19:18] piscisaureus: ryah: it depends what your problem is with the mingw one [19:18] bronson_ has joined the channel [19:18] ryah: can't copy paste, small font [19:18] ryah: shaver: console2? [19:18] shaver: ryah: yeah [19:18] piscisaureus: ryah: you can change the font size [19:19] shaver: http://sourceforge.net/projects/console/ [19:19] piscisaureus: ryah: what shaver said :-) that is a good one [19:19] piscisaureus: requires some configuration tho [19:19] hunterloftis has joined the channel [19:20] jherdman has joined the channel [19:20] hunterloftis: tjholowaychuk: Any experience with jade getting *really* confused about what level it's supposed to nest partials in? [19:20] tjholowaychuk: haha yeah [19:20] ryah: shaver: oh, great [19:20] tjholowaychuk: just like nesting in anything really [19:20] ryah: shaver: yeah, it's okay. i wish i could fucking select text though. [19:20] tjholowaychuk: hunterloftis: sass / lesscss etc, it will bite you in the ass if you nest to much [19:20] gflarity has left the channel [19:20] tjholowaychuk: or have to much in the same file [19:21] hunterloftis: Well it's the markup that's nesting wrong [19:21] hunterloftis: Two partials at the same level, are being nested with the 2nd inside the 1st [19:21] ryah: shaver, piscisaureus: sorry for the windows support questions. how do i install console2 ? [19:21] ryah: do i put it into program files? [19:22] piscisaureus: use the installer :-) [19:22] shaver: ryah: yeah [19:22] piscisaureus: yeah, whereevery you like [19:22] shaver: no [19:22] shaver: the installer isn't...existing [19:22] shaver: so I copy the console dir into Program Files x86 [19:22] shaver: then I drag the icon to my quick-launch bar [19:22] ossareh_ has joined the channel [19:22] shaver: and just use windowskey-1 to open it [19:23] ryah: shaver: sweet, thanks [19:23] shaver: np [19:23] ryah: i kind of like windows [19:23] shaver: I do my development from windows now [19:23] shaver: I need to put together some library-info stuff for Node [19:23] ryah: i wish i could modify my path without opening this dialog [19:23] shaver: for Eclipse, I mean [19:23] muhqu has joined the channel [19:23] shaver: ryah: I use bash under console2 [19:24] shaver: so .bashrc and shit just works [19:24] hunterloftis: tjholowaychuk: Think I've gotten it sort of working; seems to be caused by sometimes having to use |
0.2.3 on win? [19:39] ryah: got bash. whew. [19:40] mike5w3c has joined the channel [19:40] akahn has joined the channel [19:40] svenlito has joined the channel [19:42] piscisaureus: killfill: it's a minefield. it *could* be the problem [19:43] killfill: heh [19:43] jimt has joined the channel [19:43] hornairs has joined the channel [19:43] piscisaureus: ryah: does the test runner work for you on windows? [19:44] piscisaureus: for me it does but tiemonster said it didn't for him and his fellows [19:45] Evet has joined the channel [19:45] ossareh_ has joined the channel [19:46] ryah: still trying to get my fucking paths.. can't find make now... [19:46] shaver: man [19:46] shaver: ryah: did you install mozilla-build? [19:47] losing has joined the channel [19:47] piscisaureus: ryah: I should buy you a book [19:47] piscisaureus: http://www.amazon.com/Windows-7-Dummies-Andy-Rathbone/dp/0470497432 [19:47] piscisaureus: :-p [19:47] bingomanatee: or more simply - how do you get map/reduce results from a temporary collection in node / christkov-native mongo? [19:48] q_no has joined the channel [19:48] tiemonster: piscisaureus: the {task: libv8.a SConstruct -> libv8.a } error is the msvc bug, right? [19:48] tiemonster: I just ran into that again [19:48] piscisaureus: could be [19:48] tiemonster: I think I did a cygwin build on the VM [19:48] piscisaureus: can be anything [19:48] tiemonster: I think this is the msvc bug [19:49] richcollins has joined the channel [19:49] piscisaureus: try running scons from deps/v8 [19:49] piscisaureus: ACTION this msvc thing is annoying. it should get it myself [19:49] tiemonster: :-) [19:50] ryah: yey. windows! [19:50] ryah: it's all working [19:50] pHcF has joined the channel [19:50] ryah: how can i get console2 to be full screen? [19:51] bronson_ has joined the channel [19:51] Bosmon2: tiemonster - you will get that line if the V8 build fails for any reason - it's not necessarily related to MSVC [19:51] tiemonster: piscisaureus: run what now? [19:52] shaver: piscisaureus: you can get the express edition for free [19:52] shaver: piscisaureus: read the firefox build instructions, it points you to all the pieces [19:52] piscisaureus: shaver: I can get the enterprise edition for free :-) [19:52] piscisaureus: that's not the point [19:52] piscisaureus: but it takes a day to install [19:52] shaver: does setTimeout(func, 0) mean what I hope it means in node? (namely, "queue this in the event loop") [19:53] shaver: yeah, express isn't too bad [19:53] shaver: and you get to have some disk left over [19:53] piscisaureus: shaver: use process.nextTick(cb) [19:53] malkomalko has joined the channel [19:53] sh1mmer has joined the channel [19:53] piscisaureus: shaver: setTimeout does about the same but slower [19:54] shaver: ok [19:54] losing has joined the channel [19:54] teemow has joined the channel [19:55] piscisaureus: tiemonster: [19:55] piscisaureus: cd deps/v8 [19:55] piscisaureus: ../../tools/scons/scons.py [19:55] ryah: piscisaureus: does not work for you on HEAD? [19:55] ryah: s/not/node/ ? [19:55] ryah: v0.3.7 seemed to work, but now it's not [19:55] piscisaureus: ryah: need to update first [19:55] softdrink has joined the channel [19:56] tiemonster: piscisaureus: KeyError 'os' is not in env [19:56] piscisaureus: ryah: hangs [19:57] ryah: piscisaureus: it must have been the v8 update? [19:57] piscisaureus: ryah: yeah, maybe [19:57] q_no has joined the channel [19:57] piscisaureus: trying [19:58] piscisaureus: ryah: next well I'll maybe try to switch to msvc [19:58] piscisaureus: because v8 actually gets tested with msvc [19:59] ryah: yeah [19:59] ryah: would be nice for the debugger [19:59] ryah: try to switch to scons [20:00] ryah: :X [20:00] ossareh_ has joined the channel [20:01] piscisaureus: ryah: do you mean, you want to swap waf for scons? [20:01] ryah: piscisaureus: yeah, the v8 seems to have hung node [20:01] ryah: piscisaureus: yeah [20:01] pifantastic has joined the channel [20:01] jesusabdullah: msvc? [20:02] piscisaureus: ryah: lets try to build v8 sample=shell and if that fails, bug mraleph about it [20:03] Qbix1: hey ryah. [20:03] ryah: Qbix1: hi [20:03] Qbix1: ryah: can we run node.js for a year serving requests all day without any memory leaks? Sorry I have just never hosted anything major with it. Is it at that point yet -- any known leaks? [20:03] tfe_ has joined the channel [20:04] Qbix1: I heard something in the past about JSON.parse or something [20:04] ryah: Qbix1: no known leaks [20:04] sveimac_ has joined the channel [20:04] Qbix1: http://blog.mysyncpad.com/post/2073441622/node-js-vs-erlang-syncpads-experience <-- this is what got me spooked [20:04] Qbix1: "I attempted to send 198k requests, but the server quit after 138k requests, which took almost 2hrs. " [20:04] Qbix1: "Researching this issue led me to an HackerNews thread and related blog post that made me theorize the issue may be related to garbage collection, JSON.parse and the decoding of the JSON." [20:04] ryah: that benchmark is horribly flawed [20:05] Qbix1: yeah but what did he do that caused node to barf? [20:05] Qbix1: I want to make sure to not do that [20:05] sveimac has joined the channel [20:05] ryah: left references all over the place which caused his objects never to get collected [20:05] mAritz: tjholowaychuk: is there a maintained version of jade for browser js? miksagos hasn't been updated since july 2010. :( [20:06] Qbix1: oh. [20:06] tjholowaychuk: mAritz: nope [20:06] mAritz: :*( [20:06] Qbix1: are you sure that's what happened or it's your guess [20:06] Qbix1: I basically want to have assurance that if I delete references to things in node, that there won't be any memory leaks [20:06] ryah: i spent an afternoon looking at it [20:06] Qbix1: (that there isn't some extra retaining by node of v8 objects basically). [20:06] Coal has joined the channel [20:07] ryah: piscisaureus: shell.exe also hangs [20:07] Qbix1: ryah: okay. I'm just paranoid :) [20:07] felixge has joined the channel [20:07] felixge has joined the channel [20:07] piscisaureus: ryah: did you reapply the fno-builtin-memcpy patch? [20:07] desaiu has joined the channel [20:07] ryah: piscisaureus: uh, no. [20:07] piscisaureus: I don't think they fixed that yet [20:07] jimt has joined the channel [20:08] ryah: sigh, if i could only copy and paste in windows... [20:08] ryah: is it possible to select text in console2? [20:08] gkatsev: yes [20:08] techwraith has joined the channel [20:09] ossareh_ has joined the channel [20:09] piscisaureus: ryah: use shift + drag [20:09] gkatsev: ryah: hold shift and click+drag [20:09] techwraith: Hey tjholowaychuk - you around? [20:09] ryah: oh thank god. [20:09] ryah: thanks [20:09] Qbix1: ryah: can I share with you some code that I am concerned about memory leaks in? I will paste a link to a pastie [20:09] nichdiekuh has joined the channel [20:10] tiemonster: piscisaureus: after I force the os=win32 I get "execv: Bad Address" on as.exe when trying to build ares_search_1.o [20:10] tiemonster: when I built successfully, it was definitely on Windows XP [20:10] piscisaureus: tiemonster: you have cygwin on that machine [20:10] piscisaureus: ? [20:10] tiemonster: the vista, yeah [20:10] Qbix1: actually nevermind, I don't expect you to wade through it... I just want to ask one more thing [20:10] matt_c has joined the channel [20:10] Qbix1: the garbage collector ... can it prevent the reponsiveness of the app to web requests? [20:10] tiemonster: s/vista/windows 7 [20:10] piscisaureus: tiemonster: make sure it's not trying to use the cygwin binaries [20:11] ryah: is there a hotkey for pasting in console2? (sorry for all the windows questins - but it's for the good of node) [20:11] Qbix1: ryah: how long does the generational gc take in practice, meaning what about lost interactivity at that point / latency [20:11] tjholowaychuk: tiemonster: hey [20:11] tiemonster: piscisaureus: it is [20:11] piscisaureus: ryah: you can set hotkeys I think [20:11] tiemonster: tjholowaychuk: hi [20:11] piscisaureus: ryah: shift+insert bu default [20:11] JohnnyL has joined the channel [20:11] techwraith: tjholowaychuk: Can connect-logger handle custom headers? [20:12] tjholowaychuk: tiemonster: sorry, haha, techwraith hi, im here [20:12] piscisaureus: tiemonster: what you're doing is actually a windows program trying to the fork+exec trick [20:12] piscisaureus: and failing at it [20:12] piscisaureus: use the mingw binaries [20:12] ryah: \o/ [20:12] tjholowaychuk: techwraith: http://senchalabs.github.com/connect/logger.html [20:12] jimt_ has joined the channel [20:13] tiemonster: piscisaureus: but Node *can* be built on cygwin [20:13] techwraith: tjholowaychuk: Yeah, I've tried :req[x-custom-header] but it just gets undefined [20:13] tjholowaychuk: maybe it is undefined [20:13] piscisaureus: tiemonster: yeah but only from the cygwin shell [20:13] techwraith: I'm using it elsewhere in my code, so it can't be ;) [20:14] ryanfitz has joined the channel [20:14] Qbix1: does node.js gc tie up node.js for very long in practice? [20:14] Qbix1: it's stop-the-world so that's my only other worry [20:14] tjholowaychuk: techwraith: dunno [20:14] Qbix1: I'm thinking java back int he day :( [20:14] MattJ has joined the channel [20:14] tiemonster: piscisaureus: I'm in the cygwin shell [20:14] techwraith: tjholowaychuk - thanks man :) I guess I'll try some other stuff. [20:14] piscisaureus: Qbix; I think ~100ms for every 100MB of heap [20:15] tjholowaychuk: techwraith: make sure it is lowercase though [20:15] tjholowaychuk: should work [20:15] Qbix1: oh, that ain't so bad [20:15] ryah: Qbix1: this is not the right way to vet node. you should do some tests. [20:15] techwraith: it would be cool if I had access to the res and req objects in the logger format string [20:15] Qbix1: ryah: can you give me some suggestions on what kind of tests would I write for a real time chat application? [20:15] ryah: we've seen gc pauses for up to 1000ms [20:15] Qbix1: (where there are multiple rooms) [20:16] piscisaureus: yeah that would be with a 1GIG heap :-) [20:16] brapse has joined the channel [20:16] Coal has joined the channel [20:16] piscisaureus: tiemonster: -shrug-. Hey, you're the CS student. I'm only a public administration student :-O [20:17] tiemonster: lol [20:17] tanepiper: This evenings comedy URL is http://www.nsbasic.com/app/ [20:17] tiemonster: my conclusion is it's Windows 7 or 64-bit issues [20:17] piscisaureus: tiemonster: win 7 and 64 bit here, so that seems unlikely to me [20:17] JimBastard has joined the channel [20:17] aaronblohowiak has joined the channel [20:17] piscisaureus: I think ryah has the same configuration [20:18] aaronblohowiak: i wonder if they forgot a 0 when entering the amount of available tickets for nodeconf [20:18] JimBastard: does anyone know if there is a socket.io + backbone.js template floating around? [20:18] tanepiper: JimBastard: no, but that sounds like it would be awesome - go write it :) [20:18] kristsk has joined the channel [20:19] JimBastard: tanepiper: i pretty much already did, just wondering if i should make it a separate project [20:19] JimBastard: backbone.io, naturally [20:19] JimBastard: its just a binding for keeping collections and models in sync [20:19] tanepiper: so realtime templating? [20:19] JimBastard: templating, if you want [20:19] JimBastard: thats not really my concern though right? i just worry about the data [20:19] JimBastard: you have the bindings to the data change events [20:20] JimBastard: i could do a simple table example [20:20] tiemonster: piscisaureus: I stick to it, until we find the real issue. ;-) [20:20] chapel: JimBastard: well nothing exists that I know [20:20] chapel: JimBastard: are you using dnode? [20:20] aaronblohowiak: I am working on something like this: transitive.io [20:20] chapel: why not use dnode instead of just socket.io? [20:20] JimBastard: chapel: im not using dnode for anything right now [20:20] chapel: well you should [20:20] chapel: :) [20:21] chapel: its magic [20:21] aaronblohowiak: roflcopter [20:21] chapel: :) [20:21] chapel: haha [20:21] tanepiper: no! magic is bad [20:21] tanepiper: look at Django [20:21] tanepiper: it just works [20:21] tiemonster: django++ [20:21] v8bot: tiemonster has given a beer to django. django now has 1 beers. [20:21] chapel: well I said that in jest [20:21] bartt has joined the channel [20:22] jimt has joined the channel [20:22] JimBastard: im not sure if dnode would be better [20:22] chapel: JimBastard: I am working on a dnode based backbone.io to connect/express controller/routes bridge [20:22] JimBastard: i wanna ping jashkenas when he reappears [20:22] chapel: JimBastard: dnode uses socket.io [20:22] JimBastard: yeah [20:22] chapel: it just allows native functions [20:23] chapel: Im not the best to explain the details [20:23] chapel: SubStack you here? [20:24] SubStack: pow [20:24] chapel: yay [20:24] aaronblohowiak: SubStack++ [20:24] v8bot: aaronblohowiak has given a beer to SubStack. SubStack now has 4 beers. [20:24] JimBastard: i dont know if i would want a full RMI though, i think just sharing the models might be good enough [20:24] JimBastard: im not sure really [20:24] chapel: SubStack: explain to JimBastard why he needs to use dnode [20:24] JimBastard: SubStack: backbone.js + socket.io so you can share collections and models in real-time [20:24] heavysixer has joined the channel [20:24] chapel: specially for what he is doing [20:24] ossareh has joined the channel [20:24] Qbix1: dnode is sweet [20:24] JimBastard: would that be better built with backbone + dnode instead? [20:24] Qbix1: it makes everything symmetric [20:25] tanepiper: it's callbacks all the way down [20:25] Qbix1: makes you feel like there is a giant machine of nodes and browser javascript clients [20:25] pgte has joined the channel [20:25] SubStack: because shipping a lib with sensible socket.io client source deps is hard :p [20:25] pgte: anyone having trouble with npm publish? [20:25] tanepiper: pgte: yes [20:25] isaacs: pgte: what's the problem? [20:25] Qbix1: SubStack: what does that mean [20:25] JimBastard: pgte: there has been a mention of that on the mailing list, not me [20:25] tanepiper: it's a known issue [20:25] isaacs: it should be working now [20:25] pgte: I get Error: unauthorized Name or password is incorrect: [20:26] isaacs: grr... [20:26] isaacs: just now, you got this response? [20:26] pgte: I published yesterday, and all was fine [20:26] pgte: yup [20:26] rjbs has joined the channel [20:26] spetrea_ has joined the channel [20:26] nonnikcam has joined the channel [20:27] SubStack: maybe I should write another lib that makes extending the socket.io client source trivial [20:28] chapel: anyways JimBastard regardless if you do it your way with socket.io or use dnode, I will be doing it in dnode [20:28] isaacs: pgte: can you try now? [20:29] aaronblohowiak: chapel: what about authentication ? [20:29] chapel: what about authentication? [20:29] techwraith: SubStack: Sounds cool, what did you need to extend it to do? [20:30] djanowski_ has joined the channel [20:30] Fuld: If anyone is interested in sentiment analysis/text parsing/natural language processing in node.js, I have released: http://open.prodigylink.com/nlp/serialize.js [20:30] aaronblohowiak: chapel: i'd like to better understand the dnode security story, i suppose [20:30] aaronblohowiak: Fuld: why not github? [20:30] softdrink: anyone know if there's something like -moz-element() for webkit? [20:30] chapel: umm, you mean like security between client and server with dnode? [20:30] Fuld: Maybe that will be useful to someone, or you can suggest how I can make it better (I'm learning JS) [20:31] aaronblohowiak: chapel: or like, who is the person that has this client connection [20:31] Fuld: aaronblohowiak, github is a wonderful tool and I will be moving to it soon. [20:31] chapel: umm the client = browser, so whoever [20:31] aaronblohowiak: Fuld: this seems to just split on words and punctuation [20:32] Fuld: aaronblohowiak, it's just small function yes. [20:32] aaronblohowiak: chapel: i suppose the overall "security story" of dnode is confusing to me [20:32] chapel: well you write functions on one side, and call them on the other [20:33] tanepiper: SubStack is looking into auth at the moment [20:33] piscisaureus: ryah: just reapply a61066 [20:33] chapel: can be done bi-directionally [20:33] chapel: so it is only as secure as your code is [20:33] Anti-X: or the code of "those" [20:33] SubStack: aaronblohowiak: check out https://github.com/substack/dnode/tree/master/examples/auth [20:33] chapel: Anti-X: sure [20:33] Fuld: aaronblohowiak: I am not happy with the opensource solutions right now, which are GATE and rapidMiner (Java) [20:33] Anti-X: that is, if you're letting them execute things [20:33] aaronblohowiak: Fuld: ah, cool then. you might want to test the indexOf calls against a simple regex for your canonical_penc stuff [20:34] aaronblohowiak: SubStack: cool! [20:34] SubStack: you can just close over the methods you want to protect and only give them up when the client delivers the magic words [20:34] SubStack: but yeah, I'm working on a middleware for this [20:34] piscisaureus: tiemonster: I don't know about getuid. There is no point in implementing that if there's nothing sensible at all that you can do with the result [20:34] Anti-X: canonical_punc... variable name of the day? [20:34] Fuld: aaronblohowiak, thank you for the feedback. Will do. :) [20:34] tiemonster: piscisaureus: meh [20:34] BrianTheCoder has joined the channel [20:35] aaronblohowiak: Anti-X: it has a mohawk [20:35] chapel: SubStack: how would you recommend doing model/collection integration in backbone with dnode? [20:35] SubStack: oh goodness, I (or better, JimBastard) could write a dnode data replication middleware now [20:35] Fuld: My variable names could be shorter ;p [20:35] SubStack: because dnode 0.5 has .use() [20:35] chapel: heh [20:35] Anti-X: no descriptive is good [20:35] tiemonster: piscisaureus: have something better in mind? [20:35] aaronblohowiak: SubStack: with my experiments with Push-It, i generate a nonce and put it in a browser-readable cookie, then when the socket.io connection is made, pass that to the server. the server then ties the socket.io cid to the express session [20:36] techwraith: Fuld: Definitely keep things descriptive :) (though I would take out those underscores and camel case 'em - then again, that's personal preference...) [20:36] Fuld: In the future, I think programming language variables will be semantic. They'll have a short name, and a description that pops up in vim. [20:36] Anti-X: Fuld, speaking of indexOf.. use !~indexOf() to test for no match [20:36] Fuld: techwraith, yup [20:37] piscisaureus: tiemonster: make the nonproficient ppl do the env stuf.. That's really a no-brainer. [20:37] piscisaureus: The good guys should do something more challenging, like fixing getAddrInfo [20:37] piscisaureus: still too easy I'd say :-) [20:37] Anti-X: ACTION is preaching squiggleoperatorism [20:38] aaronblohowiak: SubStack: this gets around the question of "how does the socket.io transport become aware of user auth without exposing a huge XSS vulnerability" [20:38] tiemonster: piscisaureus: I'll look into it [20:38] SubStack: aaronblohowiak: in socket.io you can get at the middlewarified request object using some tricks [20:38] piscisaureus: ok. [20:38] piscisaureus: well, whatever [20:38] tiemonster: maybe we'll do getuid and see how much time we have left [20:38] aaronblohowiak: SubStack: does that support all transports? [20:38] piscisaureus: yeah thats okay [20:38] SubStack: aaronblohowiak: not sure, but it seems to work in websockets and xhr multipart at least [20:38] aaronblohowiak: SubStack: i've tried using bnoguchi's socket.io-connect, but it had a couple hang-ups [20:39] Anti-X: Fuld, sorry... in your case it's ~indexOf for match.. not !~ for no match [20:39] Anti-X: i misread the code for a sec [20:39] piscisaureus: tiemonster: but if your teacher wants you to actually land something maybe its better to do something else [20:39] aaronblohowiak: SubStack: do you have a good link for those tricks? [20:39] Fuld: Anti-X, np. :) [20:39] tiemonster: piscisaureus: if the env guys finish early, we'll go from there [20:39] Fuld: Okay so now I need to get libaspell working in node.js [20:39] SubStack: aaronblohowiak: https://github.com/substack/dnode-stack/blob/master/index.js [20:39] piscisaureus: ok [20:40] aaronblohowiak: SubStack: ah, so you're just getting the raw socketio.request [20:40] tanepiper: aaronblohowiak: any of the push-it code with auth open source? [20:40] pgte: isaacs: publish got through, thanks [20:40] piscisaureus: ACTION friday, 9:40 pm. No better moment drink beer [20:40] curtischambers has joined the channel [20:41] SubStack: aaronblohowiak: and running it through the webserver's middleware myself [20:41] tiemonster: bye for now [20:41] aaronblohowiak: tanepiper: not yet, but i could do an example over the next couple days if you'd like [20:41] mnbvasd: piscisaureus: how about 9:39pm? [20:41] Fuld: How would one go about using a C library from node.js? Write a C extension with v8.h and node.h? [20:41] tanepiper: aaronblohowiak: that would be cool, auth is something i really need to bolt up [20:41] Fuld: A libaspell module for node.js would rock [20:41] piscisaureus: mnbvasd: I didn't knew there was a timezone UTC-1:02 heh [20:41] mAritz: hm, i'm trying to use haml.js and can't get a > out of an . https://gist.github.com/800908 [20:41] aaronblohowiak: SubStack: ahhh, with the help of Seq. [20:41] piscisaureus: *know [20:41] aaronblohowiak: tanepiper: cool, are you using connect-auth ? [20:41] mnbvasd: piscisaureus: just make one. [20:42] JohnnyL: Page routing can have regexpressions? [20:42] mnbvasd: piscisaureus: everything is UTC+0000 to me anyway ;P [20:42] tjholowaychuk: mAritz: haml-js? [20:42] langworthy has joined the channel [20:42] piscisaureus: mnbvasd: U r on the north pole? [20:42] tanepiper: aaronblohowiak: nope, not using any proper auth just now, just getting username/password from user, checking it, and passing back a user object [20:42] tanepiper: it's not tied to any proper auth backend [20:42] Fuld: If anyone's interested, I'm making libaspell for node.js :) [20:42] mnbvasd: piscisaureus: nah, or I'd be in *every* timezone! ;) [20:42] mAritz: tjholowaychuk: yes. [20:42] tjholowaychuk: ah [20:43] tjholowaychuk: cant help you there [20:43] SubStack: aaronblohowiak: it might be better to do it the token-passing way that you describe though [20:43] aaronblohowiak: tanepiper: ok, cool. aaron.blohowiak@gmail.com -- i'll drop you an email when i have an example up [20:43] pzich has joined the channel [20:43] mAritz: tjholowaychuk: i'd prefer using jade, but browser blah... :( [20:43] tjholowaychuk: meh [20:43] tjholowaychuk: lol [20:43] aaronblohowiak: SubStack: having a way of associating a nonce with a user is also a Nice Thing To Have [20:43] SubStack: aaronblohowiak: already have that with conn.id [20:43] tjholowaychuk: mAritz: if i ever become a fan of client-side templating I will support it [20:44] tjholowaychuk: i might write something to convert commonjs stuff to browser crap [20:44] tjholowaychuk: some day [20:44] mAritz: tjholowaychuk: it's pretty essential for single-page-apps :/ [20:44] mikeal has joined the channel [20:45] ajashton has joined the channel [20:45] mnbvasd: SubStack: what are you authing? [20:45] aaronblohowiak: mAritz: are you also sharing templates between server and client with haml-js ? [20:46] aaronblohowiak: mAritz: also useful if you want to leverage cache-manifest =) [20:46] SubStack: mnbvasd: so much [20:46] SubStack: oh I thought you meant authoring [20:46] CIA-99: node: 03Bert Belder 07master * rfa4356c 10/ deps/v8/SConstruct : [20:46] CIA-99: node: Workaround for V8 bug 884 [20:46] CIA-99: node: See http://code.google.com/p/v8/issues/detail?id=884 - http://bit.ly/fFmpz0 [20:47] mAritz: aaronblohowiak: no, the server will only have one template. the main page. everything else will be json based. [20:47] mnbvasd: ACTION had trouble implementing rfc2831 digest auth the other week.. [20:47] SubStack: mnbvasd: just simple user/pass [20:47] mnbvasd: turns out it's easy if you don't use split to chop stuff up. [20:47] SubStack: this module is generic enough for you to bring your own arguments [20:48] mnbvasd: cool.. you should implement all the common auth mechs then :D [20:48] aaronblohowiak: mAritz: ah. i wrote some code which will go through a directory, run all the *.haml files through Haml() to get the function source and then put this in a single javascript file to a) pre-compile templates for the browser and b) make it so that templates have the same path [20:49] tjholowaychuk: mAritz: if you did that you could use jade i'd think [20:49] mAritz: aaronblohowiak: not a bad idea. :) [20:49] tjholowaychuk: anything really [20:49] mAritz: does jade pre-compile into js functions that are browser-usable? [20:49] tjholowaychuk: js functions yes [20:49] SubStack: aaronblohowiak: hey I do that sometimes [20:49] tjholowaychuk: cross-browser safe i dont know haha [20:49] tjholowaychuk: havent tried [20:50] SubStack: oh wait, no I don't [20:50] aaronblohowiak: SubStack: you tease [20:50] tjholowaychuk: mAritz: there is a .compile() function exported by jade [20:50] piscisaureus: ryah: you need to set up you git username and email on windows [20:50] mAritz: tjholowaychuk: i'll try that. awesome! :) [20:51] mAritz: (however i'm still curious what's going on here: https://gist.github.com/800908) [20:51] tjholowaychuk: i dunno, i havent touched haml-js [20:51] mAritz: aaronblohowiak: any idea? :D [20:52] ryah: piscisaureus: oh - shit [20:52] aaronblohowiak: mAritz: try putting a line break between 1 nd 2 [20:52] mAritz: aaronblohowiak: you mean a hard
? [20:52] aaronblohowiak: mAritz: no, i mean a carriage return in the source [20:53] mAritz: aaronblohowiak: yeah, doesn't help [20:53] mAritz: tried that in quite a few different ways :D [20:53] aaronblohowiak: mAritz: what is the resulting function ? [20:53] pr2012 has joined the channel [20:54] muhqu has joined the channel [20:54] bartt has joined the channel [20:56] maushu has joined the channel [20:56] CIA-99: node: 03Bert Belder 07master * r88947dc 10/ deps/v8/SConstruct : [20:56] CIA-99: node: Workaround for V8 bug 884 [20:56] CIA-99: node: See http://code.google.com/p/v8/issues/detail?id=884 - http://bit.ly/gSBoEZ [20:56] aaronblohowiak: mAritz: are you using an old version? [20:57] ryah: forced push, sorry [20:57] aaronblohowiak: mAritz: this is working for me [20:57] ossareh has joined the channel [20:58] mikeal: i can't believe how fast this just sold out [20:58] aaronblohowiak: mikeal: how many tickets were available? [20:58] CIA-99: node: 03Ryan Dahl 07master * r192d2e0 10/ lib/repl.js : REPL: disable colors in windows for now - http://bit.ly/i7coEz [20:58] adambeynon has joined the channel [20:58] Kingdutch has joined the channel [20:59] mikeal: aaronblohowiak: we released over 100 today [20:59] Kingdutch: Anyone wanna see a (imo) nice example of client side closure usage? :> [20:59] mikeal: all of then were locked up in the first 4 minutes [20:59] mikeal: over the last 40 minutes some have been freeing up [20:59] Kingdutch: http://pastebin.com/P0A78TwP [20:59] aaronblohowiak: mikeal: how many total attendees did you plan for? [20:59] bingomanatee has joined the channel [20:59] mikeal: the way eventbrite works is that you have a lock on the ticket when you get to the CC form [20:59] mikeal: ~200 [21:00] mikeal: but there are a lot of reserved tickets for speakers, organizers and sponsors [21:00] aaronblohowiak: mikeal: any possibility to double that size, change venue? [21:00] mAritz: aaronblohowiak: i'm using master and i have no idea wtf is going on. the resulting function looks good to me: https://gist.github.com/800908 [21:00] bingomanatee: Has anyone here done map/reduce on mongo databases? [21:00] mikeal: we don't want a MegaConf [21:00] mAritz: aaronblohowiak: no, it doesn't look good, actually. but that doesn't help. [21:00] aaronblohowiak: mikeal: ah, understandable [21:00] miccolis has joined the channel [21:00] mikeal: huge conferences suffer from a lack of intimacy and community [21:01] mikeal: i'm sure we'll experiment as we go forward with increasing the size [21:01] bingomanatee: Yeah but they are great for publicity [21:01] aaronblohowiak: mAritz: i tried this exact test on my local box and it works as desired [21:01] mikeal: but I don't ever wanna be OSCON [21:01] brapse has joined the channel [21:01] ryah: mikeal: the font on that website is pretty bad [21:01] ryah: not sure if it's just windows [21:01] mikeal: node.js needs more publicity [21:01] mikeal: ryah: screenshot? [21:01] ryah: mikeal: how do you take a screenshot in windows? [21:01] tiemonster has joined the channel [21:01] mikeal: i have no idea [21:02] techwraith: What's the "significant others track" for nodeconf? [21:02] piscisaureus: print screen button [21:02] tjholowaychuk: ryah: its not just you [21:02] sveimac has joined the channel [21:02] tiemonster: piscisaureus: I can't figure out why it won't work on Win 7 for me. Works great in XP. [21:02] bingomanatee: well in prison the rule was, find the biggest guy and bash is face in with a steel cafeteria tray. [21:02] mikeal: are you bringing a significant other that will probably be at the parties? [21:02] bingomanatee: Who's the biggest guy in server side computing? [21:02] pr2012: bingomanatee simple ones [21:02] piscisaureus: tiemonster: no cigar :p [21:03] mikeal: bingomanatee: that's what Rails did, and it leads to a really immature community [21:03] techwraith: mikeal, got it, nope - can't afford a ticket this year :P [21:03] bingomanatee: immature - and prosperous. [21:03] tiemonster: well I'll continue to use my VM to dev [21:03] mikeal: they grew fast but attracted some of the biggest assholes in software develoment [21:03] bingomanatee: I think node is stuck with an immature community whether it likes it or not. [21:03] bingomanatee: You can either wait for it to mature or make it more propserous. [21:03] techwraith: Unless someone wants me to be their significant other for the parties ;) [21:03] tiemonster: bingomanatee: I know you are but what am I? [21:03] tiemonster: :-P [21:03] mikeal: node's code needs to mature [21:03] aaronblohowiak: mikeal: that is a good point, it is really hard to figure out how to solve that [21:03] mikeal: we should go out and tell people to slow down :) [21:04] ossareh_ has joined the channel [21:04] arlolra has joined the channel [21:04] bingomanatee: that will work wonders. [21:04] bingomanatee: You should be in marketing. [21:04] aaronblohowiak: mikeal: i wonder if there is a social-graph way to solve this. perhaps invite-only conference where each invitee can invite 2 people [21:04] bingomanatee: "Don't try and gain market presence. Slow down, wait and eventually your clients will find you. " [21:04] edw: If a project's relatively immature, you don't want too many fans. Many of the ROR fanboys were insufferable and did nothing but stoke DHH's ego. [21:04] ryah: piscisaureus: https://github.com/ry/node/commit/192d2e0803b5220666c0e2dfef2dade03afafada [21:04] ryah: piscisaureus: my first contribution [21:05] piscisaureus: :) nice [21:05] bingomanatee: "were" insufferable? [21:05] rjrodger_ has joined the channel [21:05] pr2012: where is the node conference? [21:05] aaronblohowiak: pr2012: portland [21:05] bingomanatee: When's the last time you talked to a RoR fanboy? [21:05] edw: I'm talking about ROR fanboys circa 2005. [21:05] halfhalo: ACTION works in a RoR only devshop [21:05] aaronblohowiak: ACTION has 5 years professional RoR dev [21:06] edw: If one is clueful, one is not a fanboy. [21:06] bingomanatee: The fact is node already has all the tools necessary to make a rails like experience - only faster [21:06] bingomanatee: and more scalable. [21:06] mnbvasd: edw: so you're a fanboy then? ;) [21:06] mnbvasd: ACTION ducks [21:06] piscisaureus: ryah: I thought you would fix the colors, not disable them :-p [21:06] halfhalo: ACTION convinced everyone to let him built a small api server on a server in node.... but then got screwed because node can't work with the damn http api [21:06] edw: Yeah, exactly mnbvasd. [21:07] bingomanatee: I mean - the strength of node is its simplicity. Are you saying it needs more time to become simpler? [21:07] ryah: piscisaureus: that's next [21:07] floby has joined the channel [21:07] halfhalo: no, what it needs is to not die when talking to eucalyptus [21:07] ryah: [01:50|% 100|+ 119|- 53]: Done [21:07] bingomanatee: eucawhatnow? [21:07] piscisaureus: ryah: don't hurry. Its not on my priority list. the problem is really in changing util.inspect [21:08] halfhalo: open source aws clone [21:08] piscisaureus: ryah: uh thats bad. I get -40 [21:08] halfhalo: same api's for both ec2 and s3 [21:08] zzak: they server 2 different purposes imo, rails is more of a full-stack [21:08] edw: With the ROR example, I'm talking about the PHP exiles who saw ROR as the Second Coming yet didn't want to discard their Google-then-cut-and-paste model of programming. [21:08] richcollins has joined the channel [21:09] bingomanatee: hum. [21:09] halfhalo: node works just fine with the amazon version, but due to eucalyptus's ssl cert node just dies trying to connect [21:09] CIA-99: node: 03Ryan Dahl 07master * r43d818a 10/ src/node_version.h : Fix version - http://bit.ly/gqe3K2 [21:09] bingomanatee: sounds like eucalyptis' problem. [21:09] edw: I only mentioned ROR because of its fanboys. They radically reduced the signal-to-noise ratio of the rails freenode channel. [21:09] mnbvasd: halfhalo: what's wrong with the ssl certs? [21:10] bingomanatee: All smart programmers lift code. [21:10] halfhalo: it causes node to die with a Parse Error in the http code [21:10] SubStack: libraries are like cut-and-paste for even lazier people [21:10] mnbvasd: bingomanatee: but smart programmers have a clue what the code does. [21:10] edw: bingomanatee: No, smart programmers lift techniques. [21:10] bingomanatee: If you are going to rely on fresh code for every project that means your developers are a teenager and your company probably won't ever be one. [21:10] SubStack: mnbvasd: hahahahahaha [21:10] ryah: piscisaureus: [21:10] ryah: ryan /c/Users/ryan/node2:> rm build/default/node.exe [21:10] ryah: rm: cannot remove `build/default/node.exe': Permission denied [21:10] ryah: ryan /c/Users/ryan/node2:> rm -f build/default/node.exe [21:10] ryah: rm: cannot remove `build/default/node.exe': Permission denied [21:10] ryah: ryan /c/Users/ryan/node2:> ls -l build/default/node.exe [21:10] piscisaureus: yeah [21:11] ryah: -rwxr-xr-x 1 ryan Administrators 7604087 Jan 28 12:58 build/default/node.exe [21:11] SubStack: I don't even know what my own code does a lot of the time [21:11] ryah: ryan /c/Users/ryan/node2:> sudo rm build/default/node.exe [21:11] ryah: bash: sudo: command not found [21:11] ryah: ryan /c/Users/ryan/node2:> [21:11] piscisaureus: ryah: no sudo on windows [21:11] piscisaureus: erm [21:11] bingomanatee: Smart programmers assemble proven components, configure them, and write a minimum of routing code to cover the parts of their app that their compnents don't. [21:11] piscisaureus: probably a stray child process [21:11] halfhalo: its the same issue as this: https://github.com/ry/node/issuesearch?state=open&q=Parse+Error#issue/504 [21:11] edw: Please don't infer that I mean the most stupid possible interpretation of what I write. [21:11] ryah: piscisaureus: ? [21:11] piscisaureus: ryah: try ` taskkill -f -im node.exe ` [21:11] piscisaureus: then try to rm again [21:12] mnbvasd: bingomanatee: libraries, shared librarries, common copy/paste code etc. [21:12] Silks has joined the channel [21:12] bingomanatee: http://en.wikipedia.org/wiki/Technical_debt [21:12] edw: bingomanatee: Yes, I know the concept. [21:12] bingomanatee: I'm already feeling a fair amount of technical debt already with noogle. [21:12] ryah: piscisaureus: thanks [21:12] void_ has joined the channel [21:12] halfhalo: if someone fixed that I would give them a cookie [21:13] mnbvasd: bingomanatee: with node I've generally tried to write my own stuff from scratch, as I've used it as a chance to relearn js, having abandoned it from doing ajax style posts into zero-sized frames in the late '90s, early 2ks. [21:13] piscisaureus: ryah: I really need to go now. so long for the windows support ... [21:13] halfhalo: because wrapping curl sucks [21:13] ryah: piscisaureus: bye, thanks [21:13] bshumate has joined the channel [21:13] bshumate has joined the channel [21:14] Evet: javascript getting closer and closer to world domination [21:14] bingomanatee: I'm pretty comfortable with express to date - and a little less so with mongo-native - but I think there is a missing metamodel of component driven code that would make node a little more adaptible. [21:14] mnbvasd: bingomanatee: like? [21:14] Silks has joined the channel [21:14] halfhalo: ACTION is working on this right now https://github.com/csun-student-affairs/node-cloud-bridge [21:15] edw: bingomanatee: 1) It's often smart to acquire code debt. You need to use judgement. 2) If you're trying to learn something, simply re-typing what you see on a page is a hell of a lot more effective than copy and paste. 3.) To equate copy and paste coding with building atop the abstractions of others is bold, boldly wrong. [21:15] bingomanatee: Well, and please I know there are a lot of mockable points to what I'm about to say but, Drupal has given peope tools to do a fantastic amount of work by creating modules with an API that interrelates said modules in a working fashion. [21:16] ossareh_ has joined the channel [21:16] flukes1: is it possible to get the IP for a CleartextStream [21:16] miccolis: bingomanatee: it's hard to hold back the mocking... [21:16] bingomanatee: Node's modules interoperate at the code level - I would like to see a higher level of compoent based design where a certain amount of assumed standards allow for a wealth of RAD sites that retain the strengths of node's performance while allowing for a richer community driven development rrain. [21:16] bingomanatee: Just give it five minutes. [21:17] m14t_ has joined the channel [21:17] Lorentz: I think I'm going to give up on mongoose for now [21:17] flukes1: I have a TLS server but can't see a way to get a connecting client's IP - is this unimplemented or undocumented? [21:17] Lorentz: Just gonna go at it with straight-up native mongodb. [21:17] bingomanatee: I realize full well Drupal has a dark side - a community built on ingnorance and a codebase that is just simply painful. [21:17] mnbvasd: flukes1: look for the real socket attached to the secure one. [21:17] bingomanatee: But the fact is its been a commercial success because it has answered the needs of developers AND their downstream clients. [21:18] mnbvasd: bingomanatee: then look for the ip on that. [21:18] mnbvasd: s/big/flukes1/ [21:18] bingomanatee: I agree - someone needs to do bettter. [21:18] pr2012: damn airfare to portland from nyc is to much $ [21:18] flukes1: mnbvasd: ok thanks [21:18] bingomanatee: And Ruby does to some extent - it forces you to program which is a good thing and has component models in the gem system which is also a good thing. [21:18] pr2012: why do these things always have to be on the west coast. [21:19] bingomanatee: What I am saying is that if node doesn't exist at a healthy point on the ease of deployment, ease of use, and wealth of customer centric feature scale than its not going to persist. [21:19] mandric has joined the channel [21:19] pr2012: Its not that hard to deploy [21:20] edw: bingomanatee: Drupal all but forces its developers into acquiring an unsupportable level of code debt. And it's so easy to do. And your typical Drupal developer (graphic designer who thinks HTML is programming) is in no place to understand how grave their situation is. [21:20] Bosmon2: It will persist... [21:20] Bosmon2: It answers a need that nothing else meets [21:20] edw: Bosmon2: I don't disagree. [21:21] zzak: apples and oranges [21:21] Bosmon2: All of those other extrinsic values will come, in time [21:21] bingomanatee: Oh yeah - Drupal lets you dig yourself into a hole big time. [21:21] Bosmon2: As a result of mere survival and growing mass [21:21] pr2012: ror had plenty of issues at first [21:21] Me1000 has joined the channel [21:21] bingomanatee: I'm not saying Drupal does everything right - I am pointing to the one thing that it does do right and saying, that is a thing that other apps would do well to emulate. [21:22] Lorentz: I don't care about drupal in and of itself, but it would be good to see a nodejs version. [21:22] Lorentz: Possibly leveraging npm for having modules available. [21:22] bingomanatee: I am not completely convinced that we need more swiss-army knives - I think a series of specialist apps built on a shared higher level series of libraries would be fine. [21:22] zzak: lorentz: there is a node cms [21:22] Bosmon2: Organic growth of a library and community is the only way to achieve those things [21:23] Bosmon2: It's no good setting out by saying "we need all these customer-centric features or else we will fail" :P [21:23] mnbvasd: node just needs some good apps. [21:23] bingomanatee: I think its defensible to say that node needs customers or it will fail. [21:23] Lorentz: zzak: There is? [21:23] nooder has joined the channel [21:23] zzak: https://github.com/robrighter/node-cms [21:24] edw: I think a Drupal-atop-Nodejs would suck as badly as Drupal-atop-PHP. My take on it is that nontrivial Drupal projects are trying to do things that are more complex than your typical Drupal "author" is capable of understanding, and it therefore results in an unsupportable pile of hundreds of modules. [21:24] bingomanatee: I'm not saying which set of customer centric features it needs, though I think its fair to say that it needs SOME. [21:24] Lorentz: zzak: Looks pretty early in the works [21:24] zzak: there might be others, just look around [21:24] bingomanatee: And Drupal and RoR have succeeded because they have customer centric features. [21:24] tanepiper: bingomanatee: agreed, i think what node does need is a bunch of high level libraries with well written API's. [21:24] tanepiper: I mean express already does a pretty good job of being a routing + view engine [21:24] edw: There are three sorts of CMS-like projects: 1) projects that are simple enough for WordPress, 2) projects that are simple enough for Drupal, and 3) projects that you should use Django or Rails or whatever for. [21:24] Bosmon2: Well, node "in itself" isn't going to solve the problem of composition of libraries any more than any other environment did [21:25] bingomanatee: So if you don't like the customer centric features of Drupal and you don't like the customer centric features of RoR, then you better find some customer centric features to like. [21:25] Bosmon2: That is a problem for our entire community :P [21:25] tanepiper: and i like it doesn't make assumptions about the database you want to use [21:25] CarterA has joined the channel [21:25] CarterA: All the build slaves are timing out on the test-https-large-response test... [21:25] bingomanatee: Because people whose only criteria is application speed already have a solution: c++. [21:26] bingomanatee: Express is a marvelous first step. [21:26] AAA_awright: Lorentz: I'm working on something like that [21:26] SubStack: better sessions! [21:26] SubStack: ACTION hacks on that [21:26] tjholowaychuk: SubStack: I had started rewritting connect's session stuff [21:26] tjholowaychuk: a few days ago [21:27] tjholowaychuk: git side-tracked [21:27] tjholowaychuk: haha [21:27] tjholowaychuk: got * [21:27] SubStack: a race! [21:27] AAA_awright: edw: Why can't you combine all three, I wonder? [21:27] tjholowaychuk: :D [21:27] SubStack: I just started sesame yesterday [21:27] SubStack: this one will be a little bit different for sure [21:27] tjholowaychuk: id like to all the cookie stuff controllable at the session level etc [21:27] AAA_awright: edw: I think I've found the "correct" model for working with data where the same framework could power a very simple blog, or a complex site with lots of different content types, or a massively complex data analysis project [21:27] tanepiper: if Connect + Dnode work together even nicer, that would be awesome guys :) [21:27] tjholowaychuk: lots of api things i want to get nicer [21:28] JohnnyL: http://pastie.org/1507174 [21:28] yozgrahame: SubStack: What's sesame, then? [21:28] SubStack: sesame is my session middleware [21:28] yozgrahame: oooh. [21:28] SubStack: where everybody gets a session no matter what [21:29] SubStack: and you can just req.session.whatever = 555 [21:29] tjholowaychuk: connect's should always give you a session [21:29] SubStack: even if you use a persistent store [21:29] tjholowaychuk: unless its broken [21:29] tjholowaychuk: lol [21:29] SubStack: tjholowaychuk: it's so broken [21:29] tjholowaychuk: fuck [21:29] tjholowaychuk: haha [21:29] SubStack: you have to generate() it [21:29] Lorentz: Oh well, should get my irc bot and lib for npm release [21:29] cronopio has joined the channel [21:29] SubStack: or regenerate() it [21:29] SubStack: it's so fucked [21:29] tjholowaychuk: hmm yeah you shouldnt have to, probably a simple fix [21:29] tjholowaychuk: oddly we have not run into that [21:29] ossareh_ has joined the channel [21:30] lukegalea has joined the channel [21:30] bingomanatee: For instance if your project is a fairly straightforward app with users, blog pages, and a simple layout, I think you have a right to expect a framework to be able to give you a decent scaffolding app with a simple configuration file. [21:30] AAA_awright: zzak: Is that your project? [21:30] zzak: negative [21:30] SubStack: I hate scaffolding. :/ [21:30] SubStack: code generation! [21:30] SubStack: makes me queasy [21:31] edw: AAA_awright: It's about finding the right level of abstraction. I've seen people do things like use ontology systems eg Protege to model problems that should be solved with RDBMSes, and then use an RDBMS as the backing store for the Protege model. They just could have used Erwin for God's sake. Similarly, I have seen people doing stuff in Drupal that would take three lines of Python code using Django but take hours with Drupal. [21:31] pr2012: its good for prototyping [21:31] tjholowaychuk: SubStack: I'll see if i can fix that in a few days if i have time [21:31] SubStack: scaffolding shouldn't be necessary in a language with lambdas [21:31] tjholowaychuk: probably something really dumb [21:31] SubStack: tjholowaychuk: awesome [21:31] bingomanatee: I'm not saying every project should be like that - but to me that is a basic benchmark of a mature framework. [21:32] bingomanatee: You should be able to assemble a working prototype then deviate and optimize where deviation and optimization are appropriate. [21:32] AAA_awright: edw: No system is the fastest for any given project, but in terms of the data model I'm using RDF to represent data, in such a way you can manipulate it in a great number of ways [21:32] Lorentz: Is there a standard document for coding standard for packages going up into npm? [21:32] Lorentz: Or is it free for all as it is? [21:32] SubStack: bingomanatee: I definitely prefer incrementalism over scaffolding [21:33] montylounge has joined the channel [21:33] edw: AAA_awright: And RDF makes sense for a subset of problems. But to then think it's the Universal Solution to All Problems is misguided. [21:33] SubStack: of course, I'm not writing boring crud apps [21:33] adambeynon has joined the channel [21:34] edw: AAA_awright: Similarly, to not see that eg Drupal is much easier to use than RoR if you're just putting together a blog++ is stupid. [21:34] SubStack: but most business apps are just a boring database frontend :/ [21:35] SubStack: the middleware approach is much more composable than scaffolds, so it's easier to tie in a bunch of disparate libs [21:35] SubStack: but then it requires a bit more research to figure out which middlewares your app will need [21:35] edw: I flip the bozo bit on people when they start to think of every web site as a CMS (as in the example of Drupal), because, duh, yeah you CAN think of everything as a CMS (nail) waiting to be built (hit) with Drupal (hammer), but it's not smart. [21:36] AAA_awright: I'm following what Drupal is doing with the great Git migration and I see them driving off a cliff [21:36] pgte has left the channel [21:37] ryah: getaddrinfo works in windows out of the bo [21:37] Lorentz: So there's no coding standard for all packages going up on npm? [21:38] Lorentz: Other than that it works. [21:38] ossareh_ has joined the channel [21:38] isaacs: Lorentz: the standard is to use a package.json [21:38] matbee has joined the channel [21:38] SubStack: Lorentz: not even that much [21:38] isaacs: Lorentz: npm help json [21:38] AAA_awright: edw: There's things that a CMS wouldn't be useful but with what I'm thinking of there's not much it wouldn't be useful for [21:38] SubStack: if a package works, it doesn't matter how it's coded [21:38] Lorentz: isaacs: Coding standard, not about package.json. [21:38] isaacs: Lorentz: it's considered Good Form to describe your package in that document as accurately as possible, provide docs, a "main" module, a test script, etc. [21:39] isaacs: Lorentz: there are some emerging conventions. [21:39] isaacs: but nothing like the FHS or anything [21:39] Lorentz: Righto then [21:39] isaacs: I guess the main thing is, don't do stuff like "make install" into /usr/local/bin when you can just "make" and then tell npm to put it where it goes. [21:39] stepheneb_ has joined the channel [21:39] bronson_ has joined the channel [21:40] aaronblohowiak: SubStack: code generation is fine for standard folder structure stuff or making things like a package.json skeleton [21:40] isaacs: if you absolutely *must* do some package-installation stuff that npm doesn't cover, try to respect its configuration params, in the env as npm_config_* [21:40] malkomalko has joined the channel [21:40] isaacs: also, post an issue describing why you had to go outside its functionality, and we can evaluate whether that is a common enough use case to implement in a cleaner way [21:40] dgathright has joined the channel [21:40] SubStack: aaronblohowiak: the problem is that if you disagree with how the generator sets up everything you will be very angry [21:40] isaacs: whenever possible, a package.json should describe "what" rather than "how" [21:41] SubStack: ACTION <--- often gets very mad at generated code [21:41] aaronblohowiak: SubStack: "everything" should be a small amount of things [21:41] CIA-99: node: 03Ryan Dahl 07master * rfda70b8 10/ src/node_net.cc : getaddrinfo exists on windows - http://bit.ly/gwCol0 [21:41] SubStack: package.json is not code, it's markup [21:41] isaacs: SubStack: well put. [21:41] aaronblohowiak: isaacs: the answer to my question yesterday about using package.json to track deps without worrying about accidentally deploying the closed-source code has a trivial solution: put it in a subfolder in the application source [21:41] SubStack: by which I mean, json is not turing computable [21:41] tjholowaychuk: SubStack: just so i know when im checking out the session thing, was there anything specific causing the issue? or just seemed at random? [21:41] isaacs: aaronblohowiak: how do you mean? [21:41] aaronblohowiak: SubStack: neither are folder structures [21:41] edw: AAA_awright: Then I think you're barking up the wrong tree. Because you're going to need to introduce so much flexibility that there's little value in the abstractions you're producing. "Specifically targeted at...everybody and everything" makes no sense. [21:41] isaacs: aaronblohowiak: oh, you mean, you have project/packagedeps/package.json? [21:41] aaronblohowiak: isaacs: APPLICATION_ROOT/package/package.json [21:42] aaronblohowiak: yea [21:42] isaacs: and then npm install ./package instead of npm install . [21:42] aaronblohowiak: yup!!! [21:42] isaacs: you could still do `npm publish ./package`, but then it'd not include your stuff. very clever! [21:42] aaronblohowiak: or maybe ./dependencies or so, which would then also lend itself for bundler-esque things [21:42] SubStack: I don't like too many directories at first [21:42] isaacs: you could even (cd package ; npm bundle), and then require("./package/node_modules/foo") [21:43] SubStack: actually, I don't like too many directories at all [21:43] aaronblohowiak: isaacs: that, i'd have to experiment with [21:43] AAA_awright: edw: Put it this way It's a matter of making it modular enough to build up the system as high as you need it and no higher. Drupal comes with a notion of "users" and generates HTML, but no notion of data types or HTTP or other data protocols like IMAP [21:43] isaacs: aaronblohowiak: re: generating a package.json, that's what `npm init` does. i don't use it personally, but i'm happy to accept patches if you want to make it fancier. [21:43] AAA_awright: So if you want it, it goes in the wrong direction for many things, likely [21:43] aaronblohowiak: isaacs: npm init does exactly what i want it to [21:43] isaacs: aaronblohowiak: there are some issues on the list about it [21:44] aaronblohowiak: isaacs: okay, maybe i'll check those out later in the weekend [21:44] aaronblohowiak: isaacs: is there an `npm recipes` ? [21:44] matt_c has joined the channel [21:44] isaacs: aaronblohowiak: what would that do? [21:44] cloudhead: isaacs: thanks for sorting out the npm issue [21:44] aaronblohowiak: isaacs: errr, wiki page [21:44] isaacs: (ie, no, please describe the feature yoer' requesting) [21:44] isaacs: oh, hahah [21:45] isaacs: like, "This is how you can set up your package..." [21:45] pr2012: Why are node devs talking so much about Drupal? [21:45] isaacs: pr2012: because the php community just foudn out about node [21:45] pr2012: Is this really some sort of standard to strive for? [21:45] aaronblohowiak: isaacs: sure, or have a link to the One True nave/npm/usemain gist [21:45] tanepiper: pr2012: good to discuss the failures of other languages and their frameworks? [21:45] aaronblohowiak: isaacs: and my little trick about tracking app deps ;) [21:45] isaacs: aaronblohowiak: i think it'd be good to have a blog post/wiki page about patterns for setting up various different sorts of node program.s [21:46] isaacs: aaronblohowiak: maybe even fire up the npm wiki... [21:46] yhahn has joined the channel [21:46] aaronblohowiak: okalie dokalie. [21:46] bingomanatee: Because it is one of the current models of commercial success and you can't hope to become successful without understanding the sucessful models that have come before you. [21:46] pr2012: The PHP devs at my firm hate node for reasons I haven't identified yet. [21:46] isaacs: pr2012: no dollar signs. [21:46] pandark_ has joined the channel [21:46] aaronblohowiak: isaacs: that's not true, and you know it. [21:47] isaacs: pr2012: you should tell them that they can put $ in front of their variable names in js. [21:47] isaacs: it's allowed :) [21:47] aaronblohowiak: isaacs+++ [21:47] aaronblohowiak: oh shit, burning lunch [21:47] edw: AAA_awright: I can buy a crate engine from BMW and a transmission from ZF, but if I want to put them together, I had better be a car mechanic. What I'm saying is that your idea may require that people have a level of programming skill that negates the value of the glue you're providing. No drag-and-drool programming system has ever succeeded, in large part because of this problem. [21:47] bingomanatee: Node doesn't rely on Apache which is an immediate reason for best practices developers to question it. [21:47] isaacs: $filename = "foo.txt" ; $fs = require("fs"); $fs.readFile($filename, function ($er, $data) { ... }) [21:47] Lorentz: pr2012: Dunno why, I'm mainly a php dev and I still love nodejs. [21:48] pr2012: I think they all got burnt on python somehow and now won't ever try anything else ever again [21:48] isaacs: ACTION grew up on php [21:48] bingomanatee: Whenever a framework stacks on Apache or a known server an outsider thinks, "great, thats one set of reliabiltiy criteria I don't have to investigate" [21:48] Bosmon2: Well, stuff outsiders, is all I can say :) [21:48] isaacs: bingomanatee++ [21:48] v8bot: isaacs has given a beer to bingomanatee. bingomanatee now has 1 beers. [21:48] isaacs: node IS the server, and most php devs aren't server devs. [21:49] isaacs: it's interesting that low-level C systems hackers LOVE node. [21:49] AAA_awright: edw: My idea is provide enough car for a flying tank with flamethrowers that can travel 1000mi/hr, but modular enough you can buy just a working chassis and engine, say [21:49] tanepiper: pr2012: PHP devs are the new Perl devs [21:49] Bosmon2: If they think that Apache is some kind of gold-plated guarantee of stability or scalability, they will get the model of software they are entitled to :P [21:49] bingomanatee: You have to respect the position of people who imply scores of other people: their first concern is that their site CANNOT fail. [21:49] AAA_awright: (bah car analogies) [21:49] stepheneb has joined the channel [21:49] tanepiper: they will cling on to their dying language [21:49] Bosmon2: That's fine [21:49] isaacs: it's this odd blend in our community. jquery script kiddies and kernel hackers. [21:49] Bosmon2: Node doesn't *need* to be an immediate, and universal public success [21:49] tanepiper: and people in between [21:49] Bosmon2: It just needs to be sustaintable [21:49] Bosmon2: Which IMO it is already [21:49] bingomanatee: With all due respect you have to understand that engineers in positions to make strategic decisions are forced to think in worst case scenarios and existential threats. [21:50] edw: AAA_awright: I say good luck to you sir, but in my youth I pursued such crazy ideas and they came to naught. Or worse. [21:50] isaacs: php's not great, but it's also only terrible in well-understood ways. [21:50] AAA_awright: edw: I've been on this idea for a few years, I think Node.js is the technology that makes it possible [21:50] ossareh_ has joined the channel [21:50] Bosmon2: All of the misunderstood that is valuable, will in time come to be well-understood :) [21:50] isaacs: that makes it a great fit for many problems. usually "the best solution" is not as good as "the solution with a fixed pricetag" [21:51] bingomanatee: For a lot of companies, buying 5 times as many people and three times as many servers - or thirty - is a very small price to pay for realiability. [21:51] Ond has joined the channel [21:51] isaacs: if you're a CTO, the right choice might well be the horse you know, rather than the horse that's fastest. [21:51] bingomanatee: When you are looking for a tank you don't ask, "What kind of mileage does it get? What's its top speed?" [21:52] isaacs: bingomanatee: unless you want to actually use it :) [21:52] Bosmon2: No point worrying about it, let's just get on with making node better :P [21:52] bingomanatee: you ask: "Can I drive it through a wall? Can it kill anything in front of it?" [21:52] Lorentz: A retailer I worked for used to push a million dollars in sales a day, minimum. [21:52] pr2012: Really AWS has been awful for us. No one worries about code performance anymore. Just throw more servers at it. Which of course rarely works out. [21:52] tanepiper: ^5 Bosmon2 [21:52] Lorentz: That's a lot of money lost if even one minute is down. [21:52] Lorentz: And really bad downtimes rarely are just only one minute long. [21:53] tanepiper: A) Lets get SSL fixed B) Lets make debugging better c) Lets get some higher level frameworks to make approaching common problems easier [21:53] lukegalea has joined the channel [21:53] bingomanatee: I used to work in Currenex. They trade currency in the units of millions of dollars. Let me repeat: EVERY transaction on Currenex is a trade of millions of Dollars (or other currency units.) [21:53] isaacs: bingomanatee: i get what your'e saying, but your analogy is flawed. [21:53] tanepiper: and by frameworks i really mean libraries [21:53] Lorentz: SSL definitely needs to work flawlessly. [21:53] bingomanatee: Anyone care to write a proposal for wny Currenex should be using Node? [21:53] isaacs: bingomanatee: when it comes to tanks, getting there on time is worth a lot [21:54] Lorentz: I can't imagine businesses doing business without ssl. [21:54] bingomanatee: Thats why you get planes to drop your tanks out of :D [21:54] Lorentz: In fact, I probably can't deploy business sites in korea, it's illegal to not have ssl on transactions. [21:54] bingomanatee: Big fucking planes. [21:54] lukegalea: Hey, is anyone using master(1.0) of Mongoose? [21:54] aaronblohowiak: pr2012: the I/O on ec2 is horrendous [21:55] ezmobius has joined the channel [21:55] piscisaureus has joined the channel [21:55] aaronblohowiak: tanepiper: what more do you want than node-inspector ? [21:55] tanepiper: Lorentz: we can't launch out app without SSL [21:55] pr2012: I use slicehost on my own projects, but it hasn't been much better [21:55] isaacs: bingomanatee: right, so, the point is, *knowing* your resource usage and limitations is half the battle. the other half is showing up and killing a substantial number of your enemies forces, or convincing their leadership to back down in some other fashion. [21:55] vilsonvieira has joined the channel [21:55] bingomanatee: By the way Currenex DID have down time problems :D [21:55] tanepiper: aaronblohowiak: easier to use, maybe it just needs better docs [21:56] bingomanatee: I'm not tring to make an absolute argument: I'm here - obviously I like node, and where it is going. [21:56] aaronblohowiak: tanepiper: have you seen the youtube videos? [21:56] tanepiper: aaronblohowiak: no [21:56] flukes1: What would be the best way in node to avoid processing socket data until I have n bytes [21:56] bingomanatee: I just think that you have to respect the world as it is and realize that reasonable people are going to look at node and often make reasonable and defensible decisions not to use it [21:57] bingomanatee: until node has established itself on par with some very intrenched and mature players . [21:57] tanepiper: flukes1: pipe into a buffer and check the lenght, then when you have the amount of bytes pass it to another event? [21:57] lukegalea: tjholowaychuk: Are you involved in maintaining mongoose at all? Can I bug you? Or should I wait until Guillermo is around? [21:57] aaronblohowiak: bingomanatee: yes, node is not going to replace all programming environments. [21:57] tjholowaychuk: lukegalea: i was involved, not anymore tho, working on other stuff [21:58] tjholowaychuk: lukegalea: Guillermo has been rewritting it [21:58] lukegalea: Thanks anyway :) I'm using his rewrite. [21:58] lukegalea: Or rather, I am *trying* to use his rewrite. [21:58] tjholowaychuk: :) [21:58] bingomanatee: I'm trying to establish - being flip about the other frameworks that have succeeded blinds you to the lessons you can take away from their success. [21:58] lukegalea: It's perhaps not fully rewritten yet. [21:58] aaronblohowiak: lukegalea: Monday, that will be easier [21:59] aaronblohowiak: bingomanatee: i would not say that drupal has succeeded in any way that I care about [21:59] lukegalea: aaronblohowiak: hehe. Sure. Well at the very least I can help test it. I can feed some issues into github if it's not just going to be: "ya ya, we know it doesn't work" [21:59] bingomanatee: You can choose your market and vector but you are not going to be able to invent a marketplace for applications that doesn't have a player - know and respect them. [21:59] tanepiper: aaronblohowiak: cool found the videos, i'll run through it tomorrow [21:59] aaronblohowiak: lukegalea: ah, okay [21:59] bingomanatee: aaronblohowiak: then you must never have heard of a job board or talked to a recruiter. [21:59] aaronblohowiak: tanepiper: coo. they should add that to the README [21:59] ossareh_ has joined the channel [22:00] bingomanatee: oh and how about this one little area: D O C U M E N T A T I O N ? [22:00] aaronblohowiak: bingomanatee: your attitude isn't very gentlemanly [22:00] pr2012: Id rather flip burgers then do a drupal implementations. [22:00] bingomanatee: Yes. [22:00] tanepiper: bingomanatee: it's being worked on [22:00] aaronblohowiak: pr2012++ [22:00] v8bot: aaronblohowiak has given a beer to pr2012. pr2012 now has 1 beers. [22:00] shaver: a gentleman wouldn't point that out [22:00] bingomanatee: And I'd love to help in any way I can. [22:00] aaronblohowiak: shaver++ [22:00] v8bot: aaronblohowiak has given a beer to shaver. shaver now has 1 beers. [22:00] aaronblohowiak: shaver: what is the appropriate recourse to establish cultural norms for behavior ? [22:00] tanepiper: bingomanatee: talk to micheil [22:01] bingomanatee: I will - think he is coming to my node meet. [22:01] JohnnyL: http://pastie.org/1507174 does anyone here know why I get that error. I'm new to node.js [22:02] shaver: aaronblohowiak: modelling of desired behaviour [22:02] aaronblohowiak: JohnnyL: you close the response, not the request.. the client closes the request [22:03] aaronblohowiak: shaver: i wish that were enough, and it can be if the community grows slowly enough [22:03] JohnnyL: aaronblohowiak: thanks, it's sample code of the net. [22:03] shaver: it's worked for me [22:03] aaronblohowiak: JohnnyL: link to that? [22:04] JohnnyL: http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/ [22:04] bingomanatee: pr2012: you can do both :D [22:04] aaronblohowiak: JohnnyL: ooooh, i didnt read that well. whoops i thought it was an httpServer clientRequest [22:05] aaronblohowiak: JohnnyL: that is based on an old version of node =/ you want to change close() to end() [22:05] JohnnyL: aaronblohowiak: great thanks! :) [22:06] mfernest has joined the channel [22:09] ossareh_ has joined the channel [22:09] flukes1: is it possible to limit how much data node will read from a socket at once [22:10] mscdex: flukes1: you can pause the stream [22:10] aaronblohowiak: flukes1: you can pause() it [22:10] mscdex: ha [22:10] admc has joined the channel [22:10] aaronblohowiak: mscdex++ [22:10] v8bot: aaronblohowiak has given a beer to mscdex. mscdex now has 2 beers. [22:10] echosystm has joined the channel [22:10] mscdex: aaronblohowiak++ [22:10] v8bot: mscdex has given a beer to aaronblohowiak. aaronblohowiak now has 1 beers. [22:11] JohnnyL: aaronblohowiak++ [22:11] v8bot: aaronblohowiak is getting too many beers. Don't let aaronblohowiak get drunk! [22:11] flukes1: I mean, it reads the maximum amount possible and automatically allocates memory to store it, right? [22:11] flukes1: surely someone can just send a shitload of data at once and eat your ram [22:12] mikeal has joined the channel [22:12] aaronblohowiak: flukes1: that is what pause() does, it will stop sending tcp ack's [22:12] flukes1: hm, okay [22:12] flukes1: thanks [22:13] aaronblohowiak: flukes1: the operating system itself has a fixed-size buffer for network traffic, when that buffer starts to get too full it basically won't accept any more [22:13] tim_smart: flukes1: 'data' event emits a network chunk. [22:13] flukes1: yeah, makes sense, sorry was just being slightly dim [22:13] aaronblohowiak: flukes1: you run into trouble in lesser libraries that just keep on consuming the os buffer no matter what your application does [22:13] tim_smart: Which is around 80kb or something. [22:13] mjr_ has joined the channel [22:14] aaronblohowiak: flukes1: no worries, node is the lowest-level high-level i/o lib [22:14] tim_smart: Depends on the connection. [22:14] fission6 has joined the channel [22:14] fission6: whats a good module for console.log output color [22:14] tim_smart: fission6: util.inspect supports color. [22:14] tanepiper: fission6: colors.js [22:14] tanepiper: tim_smart: oh does it? [22:15] thermal has joined the channel [22:15] flukes1: is there some way to parse an integer out of a buffer [22:15] fission6: hmm let me reiew [22:15] flukes1: ala struct.unpack in python [22:15] mscdex: flukes1: yeah, there is a module for that [22:15] mscdex: if you don't want to do it manually :p [22:15] flukes1: not particularly ;p [22:16] tim_smart: tanepiper: Yeah. util.inspect(data, showHidden, depth, showColor); [22:16] tim_smart: That is what repl uses. [22:16] mraleph has joined the channel [22:16] fission6: how do i pass colors for utils.inspect [22:16] fission6: or utils.log [22:16] flukes1: mscdex: which module? [22:16] tanepiper: tim_smart: ahh, color isn't documented [22:16] tanepiper: http://nodejs.org/docs/v0.3.7/api/util.html#util.inspect [22:17] tim_smart: I use it for my prettify JSON node script :) [22:17] tim_smart: echo "some json" [22:17] mscdex: flukes1: https://github.com/pgriess/node-jspack [22:17] tim_smart: echo "some json" | prettify-json [22:17] flukes1: mscdex: excellent, thanks [22:18] fission6: well where is it document or can i get a simple example [22:18] mraleph: piscisaureus: did you want to bug me with something? [22:18] tim_smart: fission6: It is just a boolean, you can't customize it. [22:18] zemanel has joined the channel [22:19] tim_smart: So you will need to use something else if you want something all fancy. [22:20] mandric has joined the channel [22:20] CarterA: So really, anyone know what's making all the builders choke on the large https response? [22:20] isaacs: felixge: i like that new module caching stuff you did. [22:20] fission6: i see colored.js and colours.js, any rec [22:20] isaacs: felixge: and the src/node.js refactor. [22:20] felixge: isaacs: thanks :) [22:20] bingomanatee: isaacs: not ignoring your point by the way - [22:20] Fuld: What should I call my node.js extension that adds the spell checking library that Openoffice and Chrome use to node.js? [22:21] felixge: isaacs: well, I actually decided I'll not use the cache for injecting test doubles [22:21] Fuld: It's libhunspell. Maybe call it nodehazspell :p [22:21] felixge: isaacs: Instead I'll execute my test code in a sandbox [22:21] isaacs: felixge: that's one way to do it [22:21] felixge: isaacs: much more flexible, and it will also allow me to easily test client-side code [22:21] ossareh_ has joined the channel [22:21] isaacs: felixge: you can even give it a require function [22:21] isaacs: that does different stuff [22:21] fission6: i think ill try colored.js [22:22] aaronblohowiak: Fuld: how about node-libhunspell on github and just unspell in npm [22:22] lukegalea: aaronblohowiak: https://github.com/LearnBoost/mongoose/issues/issue/186 [22:22] felixge: isaacs: exactly [22:22] Fuld: aaronblohowiak, okay [22:22] tanepiper: felixge: when are you releasing details of your new test lib? :) [22:22] jvolkman-work has joined the channel [22:23] aaronblohowiak: lukegalea: i don't hack on mongoose [22:23] piscisaureus: mraleph: no need to bug you. sorry, would have love it [22:23] lukegalea: aaah. Sorry. My bad. [22:23] felixge: tanepiper: I'm pretty close to working code now, so maybe already this weekend [22:24] tanepiper: felixge: cool, i need to implement some proper tests over asserts [22:24] fission6: whats the advatage of using sys.puts vs console.log [22:24] tanepiper: assert is fine for basic stuff [22:24] tilgovi has joined the channel [22:24] tanepiper: fission6: console is global, sys needs import [22:25] fission6: is one better than another [22:25] felixge: tanepiper: this effort is orthogonal to the assert module [22:25] mraleph: piscisaureus: great. I just greped the log for my name and found that you had some problems with windows... [22:25] felixge: tanepiper: but maybe I'll ship an enhanced assert library with it, not sure :) [22:26] tanepiper: fission6: console.log is fine, and you can use it with util.inspect as well [22:26] tanepiper: and do string replacement [22:26] fission6: ok cool [22:26] perlmonkey2 has joined the channel [22:26] tanepiper: like console.log("result %j", jsonObject); console.log("value %d", value) [22:26] fission6: hey how does colors.js work when i do console.log("some string".red) whats going on when i add the red how does it get interpreted [22:27] mattly has joined the channel [22:27] piscisaureus: mraleph: yeah but it was bug 884 again [22:27] tanepiper: felixge: cool, i;ve got the JSTDD book but i haven't had time to read it :) [22:27] mraleph: *sigh* [22:28] tanepiper: but anything that helps with testing will be good [22:28] felixge: tanepiper: are you coming to nodeconf? [22:28] slickplaid: when you're dealing with callbacks in functions... is it std practice to include 'return true/false;' after the callback is given depending on if it was successful or not (even if you're giving the callback errors,results? [22:28] tanepiper: felixge: nahh, can't afford it [22:28] tanepiper: slickplaid: i only do if i return an error at some point [22:29] tanepiper: like [22:29] tanepiper: if (error) { cb(error); return } // code continues here [22:29] slickplaid: yeah okay [22:29] slickplaid: but you don't on a positive result? [22:29] SubStack: slickplaid: you very rarely know by the time the function returns whether an error happened if that's what you mean [22:30] perlmonkey2 has joined the channel [22:30] slickplaid: i'm using return false; after the error callback to stop the function from continuing [22:30] slickplaid: but I'm wondering if I should be doing return true; on the successful ones? [22:30] JohnnyL: what's the function name of the deprecated response.sendHeader() and where can I find this reference information? [22:30] unomi has joined the channel [22:30] hosh_work has joined the channel [22:31] Lorentz: Wait, npm auto-generates config.js if there's config.example.js in package? [22:31] isaacs: Lorentz: whu? [22:32] Lorentz: No, that's wrong [22:32] Lorentz: Must be just me [22:32] hunterloftis: What's the most stable templating for ExpressJS? EJS? [22:32] JohnnyL: nevermind i think i found it. [22:32] sh1mmer has joined the channel [22:33] zorzar has joined the channel [22:33] Lorentz: isaacs: Heh, looks like I was dumb enough to publish my config.js, since for some reason I figured it wouldn't, since it wasn't commited into git [22:33] Lorentz: No loss though, it's almost identical to config.example.js [22:33] isaacs: Lorentz: nope. npm doesn't know about git [22:34] isaacs: Lorentz: but you can put it in a .npmignore file, though [22:34] Lorentz: Didn't know about .npmignore, now I know [22:34] isaacs: :D [22:34] slickplaid: And knowing is half the battle... [22:34] SubStack: the more you know™ [22:34] Lorentz: More I know, less I know :S [22:34] Lorentz: Oh well, time to head out for work [22:35] kubrow has joined the channel [22:36] ossareh_ has joined the channel [22:37] JohnnyL: wow great, node.js is sweet. [22:37] slickplaid: You probably won't find another channel anywhere with more people that would agree with that statement. :D [22:38] JohnnyL: slickplaid: :) [22:38] paulrobinson has joined the channel [22:40] piscisaureus_ has joined the channel [22:41] piscisaureus: mraleph: I've never had more proactive support :-) [22:41] piscisaureus: felixge: ping [22:41] felixge: piscisaureus: pong [22:41] slickplaid: response: 9s [22:42] piscisaureus: felixge: maybe not so important but... [22:42] piscisaureus: would it be an idea to make the latest 24h of chat log available at http://nodejs.debuggable.com/today.txt [22:42] piscisaureus: ? [22:42] mraleph: piscisaureus: hehe [22:42] romainhuet has joined the channel [22:43] k04n has joined the channel [22:43] malkomalko has joined the channel [22:43] felixge: piscisaureus: https://github.com/felixge/nodelog :) [22:43] felixge: piscisaureus: well, I do want to rewrite this thing and add some features to it [22:44] piscisaureus: I can just fork & change that [22:44] piscisaureus: ? [22:44] felixge: probably a search [22:44] felixge: piscisaureus: well, it runs on a slightly old node version [22:44] felixge: *g* [22:44] Qbix1 has joined the channel [22:44] Qbix1: fooziboor hi [22:44] felixge: but there isn't a lot of code either [22:44] piscisaureus: well. I can think of a gazillion nice features. But a way to quickly check what I missed out in the last hour or so really stands out [22:44] felixge: so it should just be a few lines of to update [22:44] tanepiper: piscisaureus: http://narrative.io:3000/ [22:45] felixge: piscisaureus: well, I'll do it if I find some time. But I'll also merge & deploy any changes you send (be i [22:45] felixge: I can deploy it on a new node version, no problem [22:46] ossareh_ has joined the channel [22:46] piscisaureus: felixge: tomorrow is saturday. Maybe I'll do it :-) [22:46] bingomanatee: If you have asycnchronous tasks that you are waiting to finish whats the least invasive way to wait? [22:46] bingomanatee: setInterval/clearinterval + callback? [22:46] Fuld: Does npm have any spellchecking modules right now? [22:47] Fuld: ACTION can't get npm working on this older centos machine atm [22:48] kubrow_ has joined the channel [22:50] tanepiper: http://blog.httpwatch.com/2011/01/28/top-7-myths-about-https/ some good tips here for when SSL lands in nodejs [22:51] eee_c has joined the channel [22:51] ryah: it's landed [22:52] Fuld: ryah: Are you aware of any spelling modules in npm? [22:52] bronson_ has joined the channel [22:53] jtsnow has joined the channel [22:53] ryah: no [22:53] jtsnow has left the channel [22:53] pr2012: you could use the yahoo rest api [22:53] Fuld: cool, I'm going to make one and github it them :p [22:53] pr2012: very easily [22:54] pr2012: http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20search.spelling%20where%20query%3D%22madnna%22&diagnostics=true [22:54] Fuld: Using libhunspell that Chromium uses [22:54] Fuld: pr2012, this should be a pretty straight-forward node.js C++ extension :) [22:54] Fuld: But I do use Yahoo for stock quotes :p [22:55] JohnnyL: how stable is Node.js. Is it production-ready? [22:55] tanepiper: ryah: well you know what i mean, when it's stable landed :) as in connect/express support it as well [22:55] pr2012: depends on what you want to do really [22:55] tanepiper: otherwise, it's useless to me just now [22:56] Fuld: JohnnyL, NASA uses node.js for their mission-critical launch operations [22:56] piscisaureus: tanepiper: that narrative.io looks good but it's not really useful right now [22:56] ossareh_ has joined the channel [22:56] Fuld: j/k ;P [22:56] pr2012: Fuld: ll [22:56] pr2012: lol [22:56] JohnnyL: lol [22:57] Fuld: Node.js powered pacemakers and nuclear power plants *grin* [22:57] tanepiper: but that's not really on nodejs, thats for tjholowaychuk and creationix to fix :D [22:57] slickplaid: Is it smart when accepting a PUT (REST) request to check the values already in place to see if they're the same or just ignore and overwrite everything (if anything is in place already)? being that PUT is idempotent and all... [22:58] tjholowaychuk: tanepiper what? [22:58] JohnnyL: I like the stace track in Node.js as compared to Python/Django. [22:58] JohnnyL: stack trace [22:58] JohnnyL: hahah [22:59] tanepiper: tjholowaychuk: connect/expres moving to support https server. [22:59] tjholowaychuk: ah [22:59] tjholowaychuk: that will be me, creationix is not working on connect anymore [23:00] tjholowaychuk: when i rewrite ill move it to my account, sencha isnt doing anything with it [23:01] tanepiper: shame for them, but good for us cos tbh they are terrible at releasing stuff *cough* *extjs4* *cough* [23:01] tjholowaychuk: its just annoying having it on their account, i never get notifications for it really [23:02] tjholowaychuk: and im the only one touching it lol so its kinda pointless [23:02] tanepiper: i [possibly] have some ideas to upstream as well, but i'll wait to see whats in the next release [23:03] tjholowaychuk: it wont really be much different [23:03] tjholowaychuk: just less crappy code [23:03] tanepiper: i had a look myself, but i don't see a way to do it without breaking stuff just now [23:03] tjholowaychuk: more organization [23:03] tjholowaychuk: better docs etc [23:03] tjholowaychuk: https? [23:03] tjholowaychuk: yeah [23:03] tjholowaychuk: easily [23:03] SubStack: I had https going in v0.2 [23:03] SubStack: with dnode even [23:03] slickplaid: Is there a good tutorial on sessions for express/connect and/or a lib for managing users being logged in and such? [23:04] SubStack: slickplaid: working on that [23:04] SubStack: also there's connect.session() middleware but it's broken [23:04] tjholowaychuk: it cant be THAT broken, we use it in production and its fine [23:04] tjholowaychuk: but definitely sounds like a bug [23:04] tjholowaychuk: of some sort [23:04] blueadept has joined the channel [23:04] piscisaureus: ryah: ping [23:05] slickplaid: I am extremely interested in finding something for that or at least some place to point me in the right direction [23:05] tjholowaychuk: the express repo has a session example [23:05] tjholowaychuk: but its nothing amazing [23:05] tjholowaychuk: i need some larger examples [23:05] slickplaid: Is there code/information on what you're working on SubStack? [23:05] piscisaureus: ryah: getaddrinfo might work but you need to be aware of unicode issues [23:05] slickplaid: Yeah, I'm looking at that now tjholowaychuk :) [23:05] Ond: I'd like that, tjholowachuk [23:05] Ond: Love examples [23:06] elbod has joined the channel [23:06] SubStack: slickplaid: nah, probably a few more hours to go [23:06] Ond: And the express examples are more thorough than any other module I've played with :thumbsup: [23:06] tjholowaychuk: :) [23:06] tjholowaychuk: its hard to keep them focused [23:06] tjholowaychuk: but ill take the auth one and add sessions to it for a larger example [23:06] elbod has left the channel [23:06] JohnnyL: found a bug. The program worked the first time is ran. Now I get: http://pastie.org/1507483 Aparently the ctrl-c to stop the server left it in a funny state (or more likely found a deprecrated object-function in a conditional path). [23:07] slickplaid: SubStack, just ping you later tonight or is there somewhere I could be looking for updates for it? :D [23:07] SubStack: slickplaid: sure, or just follow me on github and you'll see it in your timeline [23:07] SubStack: tjholowaychuk: consider wrapping the http.ServerRequest so it's actually useful for a change :p [23:08] slickplaid: Okay, thanks... username is substack? [23:08] sechrist has joined the channel [23:08] SubStack: tjholowaychuk: like this https://github.com/substack/node-resware [23:08] SubStack: slickplaid: yep [23:08] tjholowaychuk: SubStack: for what? [23:08] slickplaid: Done and done. [23:09] SubStack: tjholowaychuk: so middleware can do stuff like set cookies cleanly [23:09] ossareh_ has joined the channel [23:09] SubStack: if that is already possible then it's not obvious without wrapping around the response object [23:09] tjholowaychuk: SubStack: i'd like to keep that stuff at the express level (mostly) [23:09] tjholowaychuk: it's easy.. [23:09] tjholowaychuk: we do it in lots of connect modules [23:09] tjholowaychuk: in fact most of them [23:10] SubStack: how? [23:10] tjholowaychuk: replacing the method and calling the old one within it [23:10] mdoan has joined the channel [23:11] SubStack: aha, I see res.cookie() neat [23:12] tanepiper: hmm, sounds like i'll need to plug express into my app then, i'm just using connect just now [23:12] tjholowaychuk: SubStack: https://github.com/senchalabs/connect/blob/master/lib/connect/middleware/logger.js#L102-113 [23:12] tjholowaychuk: is that what you mean? [23:12] tjholowaychuk: we proxy like that all over [23:12] tjholowaychuk: tanepiper: why? [23:12] tanepiper: < tjholowaychuk> SubStack: i'd like to keep that stuff at the express level (mostly) [23:12] tjholowaychuk: oh [23:12] tjholowaychuk: yes [23:12] tjholowaychuk: higher level stuff will stay in express [23:13] bingomanatee: tjholowaychuk: do you ever get "Stream is not writable" in mongodb? [23:13] brianmario has joined the channel [23:13] tjholowaychuk: bingomanatee: nope [23:13] SubStack: it seems a bit clunky for every module to implement that stuff itself [23:13] bingomanatee: hm. [23:14] tjholowaychuk: SubStack: you could say that about anything [23:14] dmcquay has joined the channel [23:14] tjholowaychuk: cookies are possibly the one exception [23:14] SubStack: in the sense specifically of duplicated functionality [23:15] SubStack: although it seems stable in practice with multiple middlewares patching the same objects [23:15] iFire has joined the channel [23:15] tjholowaychuk: yeah [23:15] tjholowaychuk: i wouldnt want it on the response, maybe a util or something [23:15] Fuld: How do you compile a node.js C++ extension with gcc? [23:15] benburkert has joined the channel [23:15] Fuld: Do I make this an object for node.js to load? [23:16] SubStack: the real problem is that http should have setHeader() [23:16] SubStack: that would negate all of this [23:16] Fuld: ACTION is trying to make a boilerplate for libhunspell for node.js [23:17] tjholowaychuk: SubStack: yeah I do all that stuff at the express level right now, that and a cookie util would be ok in connect [23:17] tjholowaychuk: i just have res.headers buffer up until res.send() [23:17] tjholowaychuk: or res.writeHead(200, res.headers) etc [23:17] tjholowaychuk: but if node would handle that it would be way nicer [23:17] ossareh has joined the channel [23:17] tjholowaychuk: not having a progressive api kinda sucks [23:19] hasenj has joined the channel [23:19] jesusabdullah: What's a progressive api? [23:20] CIA-99: node: 03Tim Caswell 07master * r845df3c 10/ test/simple/test-https-large-response.js : Slightly throttle https large body test - http://bit.ly/e7SMqN [23:20] jesusabdullah: Would this be vs. a conserbative api? [23:20] jesusabdullah: *my* api is a PATRIOT [23:20] devdazed has joined the channel [23:20] piscisaureu_ has joined the channel [23:20] tjholowaychuk: jesusabdullah: something additive, res.header(field, val) blah blah instead of only res.writeHead() [23:21] iFire has joined the channel [23:21] jesusabdullah: Hmm [23:21] ossareh_ has joined the channel [23:21] Fuld: Anyone know how to fix this? Checking for node path : not found [23:21] tanepiper: tjholowaychuk: is it something that could be put in pre-0.4 with the new http stuff or would it break too much? [23:21] Fuld: How do you tell node-waf the node path? Is that the node source code? [23:22] tanepiper: ACTION really needs to take a weekend to dive into node internals [23:22] mscdex: Fuld: where is that from? [23:22] tjholowaychuk: tanepiper: should be able to change connect's http.Server inheritance to use https.Server and then do connect.createServer(...).setOptions(....).listen() [23:22] Fuld: mscdex, I'm making a node module for spelling and I'm new to this :) [23:23] mscdex: what do you need the node path for? [23:23] Fuld: Here's more detail: http://codepad.org/AMJLBJdN [23:24] Fuld: Hopefully that will give you an idea of what I'm trying to accomplish :) [23:24] mikeal: ryah: did you ever figure out how to get a screenshot on widnows? [23:24] sonnym has joined the channel [23:24] mscdex: alt+printscr! [23:24] mscdex: :p [23:25] pgte has joined the channel [23:26] ryah: oh, nope. back in linux now [23:26] tjholowaychuk: SubStack: i thought there was a mailing list discussion about that kind of api for http? [23:26] tjholowaychuk: not sure where it went [23:26] tjholowaychuk: but i thought it was generally accepted [23:26] Fuld: http://codepad.org/AMJLBJdN Any ideas what I'm doing wrong? [23:26] jimt has joined the channel [23:26] ezmobius: man i blinked a nd missed out on buying a ticket to nodeconf [23:26] mscdex: Fuld: i'm not sure off the top of my head, but when i configure, it's set to my ~/.node_libraries [23:27] ezmobius: and i live in portland [23:27] ezmobius: maybe ill just come lurk [23:27] tanepiper: tjholowaychuk: https://groups.google.com/d/topic/nodejs-dev/06rzrC5JBo4/discussion ? [23:28] tjholowaychuk: yeah i think that would be the one [23:28] moneal: ezmobius: general is sold out? [23:28] podman1 has joined the channel [23:29] ezmobius: sold out in 2 minutes aparently [23:29] moneal: Node conf should sell virtual tickets. Allow you to stream the talks or something [23:29] ezmobius: people must have had botgs ready to buy tickets or something [23:29] mscdex: they streamed it last time [23:29] ezmobius: bots* [23:29] ryah: mikeal: how many earlybird tickets were there? [23:30] Fuld: I don't have node_libraries anywhere on my machine. Where can you grab them? [23:30] mikeal: i don't remember [23:30] mikeal: we sold over a hundred total [23:30] curtischambers has joined the channel [23:30] mscdex: Fuld: it's just a user-created directory [23:30] mscdex: but it shouldn't matter if you have it or not [23:31] flukes1: if you call stream.pipe() will subsequent 'data' events continue to be emitted [23:31] moneal: I dig that portland is getting more conferences. [23:31] tanepiper: tjholowaychuk: infact reading it yea i think it's talking about the exact same thing as SubStack is [23:31] Fuld: Checking for node path : not found is a fatal error isn't it? [23:31] tanepiper: "Different middlewares may need to set different cookies and these middleware(s) may have no knowledge of each other (since they have no need to from a modularity / separation-of-concerns standpoint). An immutable 'Set-Cookie' header would prevent this scenario." [23:31] mscdex: Fuld: evidentally not [23:32] Fuld: This is in red: Cannot guess how to process src:///opt/prodigylink/open/nodejs_spell/hunspell.c (got mappings ['.C', '.cc', '.cpp', '.c++', '.cxx'] in ) -> try conf.check_tool(..)? [23:32] svens has joined the channel [23:32] jamesarosen has joined the channel [23:32] moneal: ezmobius: Does portland have any good web usergroups? [23:32] Fuld: Okay I fixed it :D [23:33] Fuld: It didn't like the .c extension :p [23:33] mscdex: heh [23:33] tokumine has joined the channel [23:33] ossareh_ has joined the channel [23:37] bronson_ has joined the channel [23:38] desaiu has left the channel [23:38] superdug has joined the channel [23:38] keks has joined the channel [23:39] Rixius has joined the channel [23:40] Rixius: Is there a dependable HMAC Sha-1 in Node.js crypto? [23:41] tjholowaychuk: all that stuff is getting removed anyway [23:41] tjholowaychuk: so you might want to look elsewhere [23:41] ezmobius: moneal yeah theres actually a lot of good user groups up here [23:41] ezmobius: theres a great ruby group [23:41] SwiftLayer has joined the channel [23:41] ezmobius: nd a few js groups [23:41] ezmobius: and some killer arduino/robot ones too ;) [23:41] Rixius: crypto is disappearing? [23:41] keks: tjholowaychuk: because it's broken? [23:41] podman1 has left the channel [23:42] moneal: sweet! arduino rocks [23:42] tjholowaychuk: Rixius: i believe so [23:42] tanepiper: moving to userland isn't it? [23:42] Rixius: thanks then, coulden't find one in node.js any suggestions from the node.js gallery? [23:42] moneal: I live in bend and get asked about portland groups all the time [23:42] Rixius: I meant couldent find one in npm [23:42] tjholowaychuk: keks: not sure. if its so broken i dont know why it was in at all [23:42] Rixius: looked there before I looked in the API docs [23:42] Ond: I've been to Bend [23:42] Ond: Wouldn't live there personally [23:43] moneal: :( I love it here [23:43] Ond: Let me know if there are any meetups in the area, moeal? [23:43] Ond: Oh are you attending nodeconf in portland? I'm sure you are [23:43] moneal: We have a hacknight every wendsday here [23:43] Ond: Awesome! [23:44] moneal: Ond: not sure about nodeconf yet. [23:44] keks: tjholowaychuk: aes256 doesn't work for binary data and it is really "nodey"(doesn't take callbacks and stuff) [23:44] ossareh_ has joined the channel [23:44] tjholowaychuk: keks: ah [23:44] moneal: if you're into ruby we have a conf here in a few months http://ruby.onales.com/ [23:45] tjholowaychuk: keks: the portions i have used seem fine [23:45] isaacs has joined the channel [23:45] Ond: I like the page. Nice and simple [23:45] Ond: But nah, not into Ruby [23:45] moneal: I'm not into ruby either. But its local and I know a lot of the people [23:46] Rixius: I find ruby gorgeous [23:46] keks: tjholowaychuk: hm, someone suggested it works if i encrypt to binary. that didn't do it for me though. first 0.3.6, then 0.2.6 [23:46] zzak: rubyonales++ [23:46] v8bot: zzak has given a beer to rubyonales. rubyonales now has 1 beers. [23:46] moneal: lol [23:46] Rixius: I wish JS had syntax a little further away from C like Ruby has [23:47] zzak: like coffee-script? [23:47] Rixius: yep [23:47] ilpoldo has joined the channel [23:47] mscdex: latte script! [23:47] Rixius: loce coffee-script [23:47] Fuld: var hunspell = require("./hunspell"); <-- fails with: Error: No module symbol found in module. [23:47] mscdex: Fuld: is "./hunspell" your binding.node file ? [23:47] shaver: what, there's no pure-JS gzip implementation? [23:47] shaver: lame [23:48] Fuld: shaver: Make one like I am :) [23:48] cadorn has joined the channel [23:48] Fuld: mscdex, this is what I have in the build directory that node-waf made: /build/default/hunspell_1.o and /build/default/hunspell.node [23:49] Fuld: I assume that's what I need to copy over to my node.js server and require() [23:49] MikhX has joined the channel [23:49] mscdex: Fuld: copy hunspell.node into the directory of your script so it can find it :) [23:49] Fuld: ok [23:50] shaver: socket.io has me confused [23:51] Fuld: mscdex, no dice :\ [23:51] Fuld: Still getting Error: No module symbol found in module. from require("/hunspell") [23:51] flukes1: I just have to say this out loud: holy crap node is the most awesome thing ever. [23:51] yozgrahame: +100 [23:51] yozgrahame: well, possibly not MOST awesome [23:51] Fuld: flukes1, let's have a node party ;D [23:51] flukes1: yes, most awesome. :P [23:52] yozgrahame: schwartzwalder kirschtorte provides some stiff competition [23:52] mscdex: Fuld: hmm, can you gist your binding? [23:52] Rixius: found a SHA-x + HMAC JS lib: http://jssha.sourceforge.net/ [23:52] yozgrahame: I'm thinking of writing a kid's book about node [23:52] yozgrahame: "Charlie and the Blockless Factory" [23:52] SubStack: me too! [23:52] bingomanatee: I thought that was nodejs.org? [23:52] Fuld: mscdex, what's the binding you want me to put up? [23:52] bingomanatee: :D [23:52] felixge has joined the channel [23:52] felixge has joined the channel [23:53] mscdex: Fuld: the one for ./hunspell.node [23:53] keks: Rixius: crypto was espacially nice because it used openssl, which made it really fast. if you implement all this in js, i guess you'll have to wait. a lot. [23:53] yozgrahame: followed by another one on doing better OO in JS [23:53] Fuld: mscdex, do you mean hunspell.cc? [23:53] yozgrahame: "Charlie and the Great Class Generator" [23:53] mscdex: Fuld: yep [23:53] Fuld: ok [23:53] SubStack: better OO? [23:53] Rixius: anyone else building on top of Openssl? [23:53] yozgrahame: SubStack: sorry, just lining up the joke [23:53] shaver: so for client-initiated stuff it seems like HTTP is better than socket.io's flashsocket transport [23:54] shaver: that's unexpected [23:54] SubStack: ah right [23:54] keks: Rixius: I don't think so, since using c(++)-libs is a pretty new to do in js... [23:54] ossareh_ has joined the channel [23:54] mscdex: ryah: you know 0.3.7 is missing a tag in the repo? [23:55] Fuld: mscdex, I think I see the issue. I'll gist it if this doesn't work [23:55] mscdex: Fuld: okie [23:55] Rixius: What are teh problems with crypto right now? [23:55] Rixius: the** [23:56] tanepiper: Rixius: early implementation, hasn't really been worked on afaik [23:56] tanepiper: just needs some crypto lovin [23:57] keyvan- has joined the channel [23:57] tanepiper: it won't be thrown away, but should be moved into npm [23:57] keks: Rixius: I havent looked at the details, but when i tried to read a file, encrypt it, decrypt it, and write it to another file the binary of the jpg was all messed up. the strings were fine, but the binary wasn't. maybe you try the same, would be good to know if this is a general problem... [23:58] Rixius: So it is stable to build on in 0.2.6? and can be translated into the npm dependencie when that happens? [23:58] Rixius: AFAIK I'm only encrypting/decrypting things in memory [23:58] Rixius: and it's only strings [23:59] Rixius: Making a JS implementation of a Blizzard Authenticator http://www.mmowned.com/forums/world-of-warcraft/bots-programs/298532-source-yet-another-blizzard-authenticator-emulator.html [23:59] keks: Rixius: oh well then your good i guess [23:59] Rixius: >.< Not a fan of using Java [23:59] keks: Rixius: me neither [23:59] DTrejo has joined the channel [23:59] DTrejo: hi everyone