[00:00] ptimothyp: Yep trying out modules [00:00] derick_skibotn has joined the channel [00:01] Bwen: you know you dont have to, to learn node though right? [00:01] derick_skibotn: how do I implement persistent fields in express? [00:01] Bwen: whats express? [00:01] ptimothyp: Yep... [00:01] derick_skibotn: rails/sinatra-like framework [00:01] ptimothyp: It is a web framework sitting on top of node [00:02] Bwen: derick_skibotn: ohhh... ic... do they have a channel? [00:02] ptimothyp: I am new to express @derick don't have a clue what you are talking about [00:02] derick_skibotn: When I render a form how can I repopulate the fields? [00:02] gwm__ has joined the channel [00:02] derick_skibotn: pimothyp: maybe someone else here does? [00:02] ptimothyp: Yep... maybe [00:02] Bwen: we'll find out :> [00:02] insin: derick_skibotn: as in redisplaying with errors? [00:02] derick_skibotn: Let's say a user has to fill out an address form [00:02] ptimothyp: @Bwen not too sure if they have one for express [00:02] avalanche123 has joined the channel [00:02] derick_skibotn: and they botch one of the fields [00:03] derick_skibotn: I'd like to render that form back, with all fields but the botched one containing the known data [00:03] kmiyashiro: persistent? [00:03] kmiyashiro: oh [00:03] derick_skibotn: By persistent I mean they don't have to type all the fields in again [00:03] kmiyashiro: just send the data back [00:03] kmiyashiro: in the render [00:03] derick_skibotn: Yes, there would be a flash with error messages at the top, with the layout [00:03] insin: I ported Django's forms library for that purpose: https://github.com/insin/newforms [00:04] derick_skibotn: kmiyashiro: dumb question -- how do I send the data back? [00:04] insin: (Still need to go back and make the whole thing async for validation which needs I/O, though) [00:04] derick_skibotn: Do I need to use it in the template explicitly? [00:04] kmiyashiro: I don't know, I barely know how to program [00:04] kmiyashiro: haha [00:04] kmiyashiro: but [00:04] derick_skibotn: In Rails this was all automatic [00:04] kmiyashiro: I've used express for one prototype [00:04] kmiyashiro: from what I gather [00:04] kmiyashiro: you can do your validation on submit [00:04] kmiyashiro: and then if invalid, respond with an error and the data that was submitted [00:05] kmiyashiro: and have a handler on the frontend that just re-populates it [00:05] kmiyashiro: or [00:05] derick_skibotn: what's the code for that? [00:05] kmiyashiro: why not just do an ajax submit? [00:05] kmiyashiro: so the data is never wiped [00:05] ptimothyp: Can't you just populate the html form manually ? [00:05] ptimothyp: from the server ? [00:05] kmiyashiro: you can [00:05] kmiyashiro: but that's so much work! [00:05] kmiyashiro: are you using jquery or some other library? [00:06] derick_skibotn: no, I'm just starting out [00:06] derick_skibotn: express + nodejs [00:06] flippyhead_ has joined the channel [00:06] kmiyashiro: ah [00:06] kmiyashiro: I'd use jquery on the frontend [00:06] kmiyashiro: and just do an AJAX submit [00:06] ptimothyp: Yep that would make things a lot easier [00:07] derick_skibotn: Sometimes I need to change pages [00:07] ryah: fight stupidity with shame [00:07] kmiyashiro: I see [00:07] kmiyashiro: well then in the render, you have to populate the local variables [00:07] kmiyashiro: are you using a db? [00:07] derick_skibotn: just sqlite3 right now [00:07] kmiyashiro: do a get for the form data [00:07] kmiyashiro: then pass it to the view [00:08] autotron has joined the channel [00:08] JianMeng has joined the channel [00:08] kmiyashiro: http://expressjs.com/screencasts.html [00:08] Sami_ZzZ___ has joined the channel [00:08] kmiyashiro: check out this one http://www.screenr.com/4AL [00:08] kmiyashiro: it shows how to use local variables in the view [00:08] kmiyashiro: I think [00:08] brettgoulder has joined the channel [00:09] derick_skibotn: thx [00:09] derick_skibotn: How did you get the full-size URL from the first URL? [00:09] JulioBarros has left the channel [00:10] sveimac has joined the channel [00:10] F1LT3R has joined the channel [00:10] derick_skibotn: I did watch that one, not exactly what I'm looking for. I hate to do this manually if I don't have to [00:11] rpj8: Just curious [00:11] rpj8: How long have you guys been doing node stuff [00:11] daekano: for ever. [00:12] insin: derick_skibotn: have you looked for form modules on npm? [00:12] derick_skibotn: insin: nope [00:12] derick_skibotn: just started this whole thing yesterday, finding out what's available [00:13] Bwen: I havent finished anything really. Less than a week for me. Still learning... [00:13] Emmanuel__ has joined the channel [00:16] bentruyman has joined the channel [00:17] mscdex: F1LT3R: were you looking for an smtp server or a module to retrieve email from an existing server? [00:17] kmiyashiro: manually as in creating forms manually? [00:17] kmiyashiro: as in, writing partials manually? [00:19] dlkinney has joined the channel [00:20] geochap has joined the channel [00:20] autotron has joined the channel [00:23] mdaisuke has joined the channel [00:24] jaket has joined the channel [00:24] brownies has joined the channel [00:25] dguttman has joined the channel [00:25] dguttman has joined the channel [00:26] jashkenas has joined the channel [00:26] jacter has joined the channel [00:27] stagas has joined the channel [00:27] telemachus: I think he wanted something to pull mail down, but I may be wrong [00:28] geochap has left the channel [00:29] harth has joined the channel [00:31] autotron has joined the channel [00:31] Corren has joined the channel [00:32] dcampano has joined the channel [00:32] Me1000 has joined the channel [00:33] derick_skibotn: kmiyashiro: another dumb question -- how do I send the data back via a redirect [00:34] daekano_ has joined the channel [00:35] jashkenas has left the channel [00:35] Owner_ has joined the channel [00:35] Owner_: Anyone ever see new Date() return a wrong time? like 30 mins after midnight? [00:36] kmiyashiro: derick_skibotn: No idea about redirects :/ [00:36] zentoooo has joined the channel [00:36] EyePulp: Owner_: maybe if the system clock is off or some locale issue is in play [00:36] Owner_: EyePulp: I'm running it on a VM, but the linux date command in the vm returns the correct time [00:37] EyePulp: or possibly the fact that it's ignoring a timezone offset [00:37] Bwen: Owner_: is it the right year? :P [00:37] brolin has joined the channel [00:37] EyePulp: is it reporting 00:37 or something right now? [00:37] softdrink1 has joined the channel [00:38] EyePulp: on the 26th? [00:38] c_t_montgomery has joined the channel [00:38] c_t_montgomery has left the channel [00:38] Owner_: yes [00:38] Owner_: my timezone appear correct in the vm [00:39] c_t_montgomery has joined the channel [00:39] Owner_: meh probably nothing [00:39] Bwen: Or maybe you finaly found a hole in time :O [00:40] davidascher has joined the channel [00:40] brendanjerwin has joined the channel [00:40] indexzero: @isaacs dicks.js takes the cake in thunderhub [00:41] timmywil has joined the channel [00:41] SubStack: hahaha [00:42] blueadept has joined the channel [00:43] brendanjerwin: Hi all. I'm having some trouble diagnosing a `require` issue. I'm trying to use "connect" which I've installed with `npm install connect` but I'm only getting "Cannot find module 'connect'" at runtime. [00:43] brendanjerwin: Where should I start to understand my issue? [00:45] gazumps has joined the channel [00:45] chapel: brendanjerwin: npm v1? [00:45] kmwallio has joined the channel [00:46] chapel: if you just do npm install module it installs in that directory under node_modules [00:46] chapel: you would have to do it in your project directory, or do npm install -g module [00:46] chapel: the -g is for global [00:46] piscisaureus has left the channel [00:46] chapel: that goes into your node install directory [00:47] brendanjerwin: chapel: npm --version : 0.2.11-5 [00:47] chapel: oh [00:47] chapel: thats old [00:47] brendanjerwin: ok, I installed via brew, let me see if I can update [00:48] brendanjerwin: 0.3.18 [00:49] brendanjerwin: ok, up to date now, but it never creates a directory when I run npm install module [00:50] isaacs: brendanjerwin: to get 1.0, you can follow the instructions on the npm github readme [00:50] chapel: well, with 0.3.18 or < v1 it installs globally by default [00:50] mif86 has joined the channel [00:50] chapel: isaacs be the man behind npm [00:50] isaacs: ACTION seens chapel's got this. [00:50] isaacs: *sees [00:50] isaacs: ACTION off to class. [00:50] chapel: well I had issues with v1, had to learn the hard way :) [00:50] chapel: but its all good now [00:50] brendanjerwin: ah, npm hit 1.0. I'm still out of touch with node things [00:51] c_t_montgomery: hey all. When I do "npm install express", and then try to generate the skeleton app via "express APPNAME", I keep getting an error that express command isn't found. Anybody happen to know what may be causing that? [00:52] themiddleman has joined the channel [00:53] brendanjerwin: chapel: 1.0.1rc9 installed, created node_modules, and my test passes! thx. [00:53] sunblush has joined the channel [00:53] mischievious has joined the channel [00:54] piscisaureus has joined the channel [00:55] broofa has joined the channel [00:57] ReshadN has joined the channel [00:57] brez__ has joined the channel [00:57] chapel: good brendanjerwin [00:58] ReshadN: Hello all! [00:58] _fat has joined the channel [00:58] ReshadN: Started reading http://nodebeginner.org/ recently. Any thoughts on it's strengths vs weaknesses? [01:00] Emmanuel__ has joined the channel [01:00] strmpnk has joined the channel [01:00] ji0n has joined the channel [01:01] _fat has joined the channel [01:02] Emmanuel__ has joined the channel [01:02] mischief has joined the channel [01:02] chapel: that is highly subjective [01:02] chapel: what do you want to do ReshadN [01:04] ReshadN: Just learning the basics and the foundational elements. Want to make sure I'm learning things the right way from the start and not learning bad habits. [01:04] aho has joined the channel [01:04] ReshadN: It's been very useful on major concepts thus far. [01:05] Owner_: Yeah, but it just kinda stops and you have to wait for the next installment ;_; [01:05] wilmoore has joined the channel [01:05] chapel: I learned mostly by reading other peoples code [01:05] chapel: and coming in here when I was stumped [01:05] pyrony has joined the channel [01:08] hunterloftis has joined the channel [01:08] mischief has joined the channel [01:09] Croms has joined the channel [01:10] sh1mmer has joined the channel [01:10] dhasenan: Anyone have a wrapper for std:: collections? [01:11] febits has joined the channel [01:11] derick_skibotn has joined the channel [01:11] killfill: anyone happend to use vogue?.. [01:16] zkirill_ has joined the channel [01:17] bartt has joined the channel [01:17] rchavik has joined the channel [01:18] sub_pop has joined the channel [01:20] bartt1 has joined the channel [01:21] brolin has joined the channel [01:21] ditesh|cassini has joined the channel [01:22] newy has joined the channel [01:26] bartt has joined the channel [01:26] newy_ has joined the channel [01:26] abraxas has joined the channel [01:27] gtramont1na: Hey all, quick question on Jade [01:28] gtramont1na: How do I render something as the element id? I mean, I want this result: [01:29] crazed has left the channel [01:29] blueadept: would using socket.io be a better replacement for using traditional ajax page updates? [01:29] blueadept: for for instance with pagination and such [01:29] wilmoore has joined the channel [01:30] jdp has joined the channel [01:30] gqlewis has joined the channel [01:33] gtramont1na: blueadept: I'd say yes... Haven't really though about this, but at a first glance, it seems a good replacement! [01:33] adulteratedjedi: chapel: reading code is deffo the best way to learn something ;-) [01:33] mscdex: blueadept: potentially yes, depending on what the browser supports [01:33] chapel: adulteratedjedi: yep [01:33] mscdex: blueadept: it won't be any worse [01:33] blueadept: yeah sort of in the middle of a project, i think im just going to finish it with ajax, and take a look at socket.io on another project [01:33] dhasenan: Hrm, I'm trying to bind some C++ code in node. How do I handle constructors? [01:34] blueadept: looks really cool [01:34] skohorn has joined the channel [01:34] aroop has joined the channel [01:35] mscdex: dhasenan: take a look here: https://github.com/ry/node_postgres/blob/master/binding.cc#L145 [01:35] ptimothyp1 has joined the channel [01:36] tmpvar has joined the channel [01:36] deoxxa has left the channel [01:38] mischief has joined the channel [01:38] dguttman_ has joined the channel [01:39] dhasenan: mscdex, thanks, I was using that but just brainfarted. [01:43] skm has joined the channel [01:43] mscdex: :) [01:45] bartt has joined the channel [01:46] sridatta has joined the channel [01:46] mikeal has joined the channel [01:46] sridatta: hey, is anyone here familiar with writing node c++ extensions? [01:47] tjholowaychuk has joined the channel [01:47] gtramont1na: Folks.. Jade question. I want to achieve this result: where the id is a variable [01:48] gtramont1na: room##{roomId} doesn't work. Neither room(id="#{roomId}") [01:48] gtramont1na: Thoughts? [01:48] tjholowaychuk: room(id=roomId) [01:48] tjholowaychuk: lol [01:48] gtramont1na: just like that? :-) [01:48] gtramont1na: Thanks! [01:48] zzak: get a room [01:48] tjholowaychuk: gtramont1na: it's a js expression [01:48] tjholowaychuk: no need for interpolation [01:49] gtramont1na: Got it. [01:49] gtramont1na: thx! [01:50] devdazed has joined the channel [01:51] rfay_ has joined the channel [01:51] sridatta: ryah: you'd probably know best. I'm trying to call the native JSON.parse method in a v8 extension. I keep getting a "Uncaught RangeError: Maximum call stack size exceeded" exception [01:51] mischief has joined the channel [01:51] zzak: nice [01:51] davidascher has joined the channel [01:52] wilmoore has joined the channel [01:53] jacter has joined the channel [01:55] mscdex: sridatta: what's your question? [01:55] adulteratedjedi: tjholowaychuk: have sent you some pull requests for your finance app ;-) [01:55] tjholowaychuk: adulteratedjedi: haha sweet :) ill check em out [01:57] sridatta: mscdex: I'm trying to call the native JSON.parse method from a v8 extension but I keep getting a JS stack overflow. I'll gist/pastebin my code [01:57] F1LT3R has joined the channel [01:57] gavin_huang has joined the channel [01:58] adulteratedjedi: tjholowaychuk: wanting to work on that autocomplete just thinking the best way to do it. may lay the foundation (being able to add categories and payee's) and then expose as json? [01:58] _fat has joined the channel [01:58] tjholowaychuk: adulteratedjedi: yup that would be the plan, should be pretty straight-forward [01:59] rburhum has joined the channel [01:59] sridatta: mscdex: https://gist.github.com/941668 [02:00] rburhum has left the channel [02:01] sunblush has joined the channel [02:02] beejeebus has joined the channel [02:03] adulteratedjedi: tjholowaychuk: yeah, the hardest part should be decideding which of the million jquery auto complete plugins to use lol [02:03] tjholowaychuk: adulteratedjedi: none of them :D [02:03] tjholowaychuk: thats the joy of ad hoc apps [02:03] tjholowaychuk: that only need to run in chrome [02:03] tjholowaychuk: haha [02:04] zzak: yay chrome [02:04] adulteratedjedi: ha, touche' [02:04] sridatta: mscdex: am I doing anything blatantly stupid here? [02:05] stagas: http://www.youtube.com/watch?v=RpnJkjpgxOM [02:05] stagas: έτσι [02:07] trotter has joined the channel [02:08] mynyml has joined the channel [02:08] NuckingFuts has joined the channel [02:09] Mrfloyd has joined the channel [02:10] mscdex: sridatta: hrmm not sure, never used the json parser from c++ land before. what data are you feeding it? [02:11] mscdex: sridatta: do you get the same error parsing the json from js? [02:11] copongcopong has joined the channel [02:12] jakehow has joined the channel [02:12] stagas: http://www.youtube.com/watch?v=lJ2kpqmZfnk [02:12] seivan has joined the channel [02:12] Dreamer3_ has joined the channel [02:13] jaket has joined the channel [02:14] stagas: http://www.youtube.com/watch?v=W-OHiqqKEyE [02:14] mbrevoort has joined the channel [02:14] uho has joined the channel [02:15] langworthy has joined the channel [02:15] stagas: Ι'μ δρυνκ [02:15] sridatta: mscdex: nope, definitely not [02:15] bartt1 has joined the channel [02:16] sridatta: I'm feeding it some valid JSON strings [02:16] adulteratedjedi: ah balls, just deleted the wrong directory/repo [02:17] adulteratedjedi: yay for github and pushing often [02:17] mscdex: sridatta: weird [02:18] n2n3 has joined the channel [02:19] karboh has joined the channel [02:20] stagas: http://www.youtube.com/watch?v=ogiMPav32bc [02:20] Owner_: wtf stagas [02:20] stagas: Owner_: wtf owner? [02:21] Owner_: sorry, i meant thanks for spamming us with your shitty music videos [02:21] stagas: Owner_: you can just fuck yourself off [02:21] stagas: you know /ignore ? [02:22] stagas: I can do whatever I want [02:22] Owner_: ignore doesn't seem to work [02:22] bradleymeck has joined the channel [02:23] Owner_: You sound like white trash, stagas [02:23] jacobolus has joined the channel [02:23] mischievious has joined the channel [02:23] Owner_: I'll do what I want! [02:23] http402 has joined the channel [02:24] stagas: I'm drunk I can do whatever I want [02:24] stagas: http://www.youtube.com/watch?v=k194vbhSG3A [02:24] Owner_: That's tits, man. [02:24] stagas: fuck yourself [02:25] stagas: τζιτζιφιοτγκε [02:25] stagas: μαλάκα [02:25] blkcat: come on guys, keep that crap in #defocus [02:26] themiddleman_itv has joined the channel [02:26] stagas: I am greek [02:27] rauchg has joined the channel [02:28] brez__ has left the channel [02:28] k1ttty has joined the channel [02:29] stagas: and it's my name day so I can post whatever I want http://www.youtube.com/watch?v=ba624MArqeo [02:29] stagas: bitches [02:30] gtramont1na: hey all, question on generating unique ids... I've noticed that those URL shrinked sites use Base62 to encode the URLs. Do you think it is safe for me to use the same Base62 to encode server's time in milliseconds? [02:30] chrislorenz has joined the channel [02:31] mscdex: gtramont1na: out of curiousity, why do you need to encode the timestamp? [02:31] aho: he wants to use the timestamp as source of uniqueness [02:31] aho: http://www.reddit.com/r/lolphp/comments/gb4sr/the_return_value_of_uniqid_is_the_current_time_in/ [02:31] gtramont1na: dont know... maybe to not expose server's time. [02:32] aho: well... yea... no :> [02:32] aho: those shorteners increment some counter [02:32] jimt has joined the channel [02:33] langworthy has joined the channel [02:33] gtramont1na: really? I thought they would just convert the given URL into base62 and persist it to future mappings... [02:33] aho: and then you can for example convert that counter value to base64 (for urls bastardization) :> [02:33] balaa has joined the channel [02:33] tilgovi has joined the channel [02:38] jakehow has joined the channel [02:38] beejeebus: seen darklrd [02:39] beejeebus: woops [02:40] losing has joined the channel [02:40] mscdex: :P [02:44] justinTNT has joined the channel [02:44] JacobSingh has joined the channel [02:44] boaz has joined the channel [02:46] brownies has joined the channel [02:48] derick_skibotn has joined the channel [02:52] Xedecimal has joined the channel [02:53] Xedecimal: I always end up in these situations, once I was like "jquery? Pfft! That sounds stupid!" or "html5?! Lame!", until after actually learning how they work and what they do I find them absolutely invaluable! So here I am now again saying "node.js?! Why does anyone need this?" and the FAQ doesn't seem to be helping much, or the wiki or the api documentation... Could I use this to make a upnp server ? [02:54] tmpvar: Xedecimal, sure [02:54] Xedecimal: it also says "evented i/o for v8 javascript" does this mean that node.js works on nothing but chrome ? [02:54] tmpvar: its a server side platform [02:55] konobi: v8 is a vm [02:55] tmpvar: right [02:55] konobi: it's not tied to chrome [02:55] tmpvar: so its, fast js on the server :) [02:55] Xedecimal: so this thing isn't actually meant to run inside a web browser on the client side ? [02:55] tmpvar: with evented io, so async makes sense [02:55] tmpvar: Xedecimal, nope [02:55] zcopley has joined the channel [02:55] Xedecimal: well that sure helps a lot, I was under the impression that this was like another pubhubsubbub or jquery ajax or something [02:55] tmpvar: lol, no [02:56] tmpvar: Xedecimal, do you run a mac/linux? [02:56] Xedecimal: so as ruby on rails has it's 'rails' server serving ruby code, node.js has it's 'node' server serving javascript code ? [02:56] konobi: Xedecimal: node is being used (on the serverside) to generate all the tarball downloads on github, for example [02:57] konobi: Xedecimal: s/php|ruby/javascript/ [02:57] konobi: that's what node is [02:57] tmpvar: heh [02:57] tmpvar: there is truth in that [02:57] konobi: well, more than that... but that's the basic way to look at it [02:57] Xedecimal: I run a nix in a vm, but primarily a windows user [02:58] tmpvar: Xedecimal, we are working on a native windows port.. right now you have to use cygwin [02:58] Xedecimal: I use virtualbox for nix [02:58] mbrevoort has joined the channel [02:58] tmpvar: nice, I'd recommend trying it out [02:58] Xedecimal: which seems to work much better than cygwin, lol [02:58] tmpvar: yes. no jokes ;) [02:59] Xedecimal: so, node.js is actually more like an application development platform, rather than a web-based server integration right ? [02:59] tmpvar: it is a platform, yes [02:59] konobi: it's great for writing network servers [03:00] konobi: it's a server-side javascript runtime [03:00] konobi: (with a bunch of useful core libraries) [03:00] Xedecimal: you say that node.js is what github uses to compress and send tar compressed packages on github, you mean when it says "hardcore computing action" or whatever when you're attempting to download an git repo ? [03:00] konobi: yup [03:00] ngs has joined the channel [03:01] tmpvar: Xedecimal, for example: https://nodeload.github.com/creationix/nstore/zipball/v0.3.0 [03:01] tmpvar: that will give you a tarball :) [03:01] tmpvar: zipball, sorry [03:01] tmpvar: nodeload is an awesome name btw [03:02] Xedecimal: but this wouldn't be such a good idea for designing a desktop application as much as it's more designated to creating servers and portions of servers ? [03:02] Xedecimal: like say someone ports gtk over to a node.js module and then could be used for a gui application I mean [03:03] Xedecimal: why not just design an application in java that is portable and pre-compiled and nice and fast ? [03:03] tmpvar: because its java :( [03:03] intel_ix has joined the channel [03:04] tmpvar: but yes, there are things in progress in the desktop app realm [03:04] Xedecimal: java always sucked the balls when sun was running things, now that oracle is around I've found that netbeans and java are really getting pretty nice, I even ported a game from .net over to lwjgl and it ran better with less code on java than it's C# predecessor [03:04] Xedecimal: so then java out, what about python ? [03:05] Xedecimal: what about perl ? What about ruby on the application side? I can package up a php binary to execute php code as an application including gtk support [03:05] konobi: Xedecimal: there's always prism [03:05] Xedecimal: *looks up prism* [03:05] litropy has joined the channel [03:06] Xedecimal: gotcha, this thing basically generates a lightweight browser meant to run just a single page, whereas you have multiple browser options to run any page you want, kinda like google gears, allowing you to run a few things on the go but they eventually decided that was actually a bad idea [03:07] Corren has joined the channel [03:07] brettgoulder has joined the channel [03:07] konobi: there's also a chrome equivalent [03:08] Xedecimal: my current passion is development of a media library interface for indexing media on all drives across a network, in comparison of tools like xmbc I've never been able to compete on the server side, because this all runs on php in a web browser and on a web server, I couldn't actually create a server or run something consistently, just per-request does execution happen [03:08] Xedecimal: when I first saw node.js I immediately thought (and this is why I previously asked if I could create a upnp server with it), "I wonder if I could use this node.js to create a upnp server and finally start bridging the gap over there" [03:09] litropy: Hmm [03:09] Xedecimal: but if I were to do something like that, I'd end up having to package up another dependency in my application right ? [03:10] konobi: https://github.com/TooTallNate/node-upnp-client [03:10] litropy: When I "$ node" on my first computer, it enters me into the node cli. When I "$ node" on my second computer, it tells me node isn't installed. Yet I just sudo aptitude install nodejs'ed. Ideas? [03:11] uho has joined the channel [03:11] tbranyen: litropy: is it nodejs on that box? [03:11] litropy: tbranyen, yes [03:11] tbranyen: i mean is the binary called nodejs [03:11] Xedecimal: litropy: if you installed node from a parent console, like su'ing and it may have altered a path or such, then you exited that and attempted to run it, it'd still not be availble because the old console was not aware of the new available executable [03:11] tbranyen: instead of node [03:11] litropy: adam@Quorra:~$ nodejs -v [03:11] litropy: 0.1.97 [03:11] litropy: ooooooh [03:11] mscdex: wow [03:11] tbranyen: litropy: :) [03:11] litropy: that's right [03:11] mscdex: that's old [03:11] litropy: I needed to install it from the site [03:11] jacter1 has joined the channel [03:12] litropy: could I get a link for that? [03:12] mscdex: http://nodejs.org/dist/node-v0.4.7.tar.gz [03:12] konobi: source tarball [03:12] mscdex: :-D [03:13] mscdex: so sad to see debian/ubuntu repos so out of date [03:14] konobi: mscdex: meh [03:15] tilgovi has joined the channel [03:16] Aria has joined the channel [03:18] Xedecimal: I see what you were talking about needing cygwin... I'd need everyone on windows that installed this app and wanted upnp support to also need that [03:19] siculars has joined the channel [03:19] Xedecimal: someone needs to make a tiny overhead for a tiny effecient langauge... I had once installed ruby to find over 18,000 files in the installation directory... Like really ? [03:20] bartt has joined the channel [03:20] Aria: ...18,000?! I get 646. [03:21] litropy: I forget. What is it again? ./configure && make && sudo make install? [03:21] Aria: Yes, generally [03:22] Xedecimal: I got a lot less later on, I'm not sure what gave me that many files, it was an older version of ruby I'm sure [03:22] Xedecimal: mostly in some rdoc folder or something like that [03:22] tsyd has joined the channel [03:22] Aria: Oh, okay, there's that. [03:22] Aria: The docs are well split. [03:23] tsyd: anyone familiar with node.js, what are these node_module directories that it creates? [03:23] tsyd: I don't remember older versions creating them [03:23] Xedecimal: everyone here should be familiar with node.js I'd think [03:23] litropy: U'm looking for something-dev and something-build-essentials [03:23] tsyd: sorry, I mean npm [03:23] Aria: That's the new location that node looks for modules you require. [03:23] litropy: I'm* [03:23] litropy: ubuntu^^ [03:23] Aria: litropy: openssl-dev ? [03:23] tsyd: Aria: ah, ok, thanks [03:23] litropy: Aria, yes [03:24] Aria: apt-cache search build-essentials [03:24] Aria: I don't know the package but that should tell you [03:25] Xedecimal: I gotta go work on a stupid car [03:25] konobi: libssl-dev [03:25] Xedecimal: I very well may be back [03:25] Aria: Oh, right. Debian naming. [03:27] litropy: apt-cache search build-essentials returns null [03:27] litropy: this has gcc, etc [03:27] Aria: Hrm. [03:27] litropy: for ubuntu. alright, googling [03:28] tsyd: litropy: are you trying to compile node 0.4.7 on debian or ubuntu? [03:28] litropy: it's build-essential [03:28] litropy: ubuntu, tsyd [03:29] litropy: there we go. compiling ... [03:29] tsyd: litropy: did you try installing libcurl4-openssl-dev? [03:29] jpld has joined the channel [03:29] intel_ix: Are there any gzip libs for node that don't suck? [03:29] tbranyen: trick question [03:30] tbranyen: gzip inherently sucks [03:30] litropy: tsyd, yes, but it returned null [03:30] litropy: libssl-dev worked [03:30] ezmobius has joined the channel [03:30] A_Nub has joined the channel [03:31] litropy: tsyd, why do you ask? [03:31] intel_ix: gzip doesn't suck, but none of the libs I know of are async AND work in ram. [03:32] intel_ix: If I have to, ill just mount a RAMdisk, but it's kind of annoying. ._. [03:32] intel_ix: I'm surprised node.js doesn't have something this basic. ._. [03:33] azend_ has joined the channel [03:33] jaket has joined the channel [03:33] intel_ix: Also, is there a way to tell how much http data has actually been sent so far? [03:34] rudolfrck has joined the channel [03:34] litropy: make: *** No rule to make target `install?'. Stop. [03:34] newy_ has joined the channel [03:34] litropy: keep in mind, this is a spankin' fresh install of ubuntu 10.10 [03:35] A_Nub: litropy: do you have the developer utilities installed? [03:36] A_Nub: sudo apt-get install build-essential [03:37] litropy: A_Nub: how do I check? [03:37] A_Nub: run what I just posted [03:37] litropy: A_Nub, what's the packaage name? [03:37] A_Nub: that will install them [03:37] A_Nub: `sudo apt-get install build-essential` [03:37] litropy: A_Nub, ah. yes - it's actually the last command I did. [03:38] A_Nub: then the environment variables may not be set [03:38] A_Nub: close that shell and open a fresh one. [03:39] litropy: pfft [03:39] litropy: rookie mistKE [03:39] A_Nub: did that do it? [03:39] litropy: make: *** No rule to make target `install?' [03:39] litropy: se3e the question mark? [03:40] litropy: heh, I ran it with that included [03:40] A_Nub: oh [03:40] A_Nub: lol [03:40] litropy: sweet [03:40] litropy: now in node cli [03:40] Spion_ has joined the channel [03:41] JusticeFries has joined the channel [03:41] litropy: once in node cli: npm install zombie [03:41] litropy: that works, right? [03:41] A_Nub: not in node cli [03:41] litropy: I ran it and I've got elipses [03:41] A_Nub: npm is ran in the shell. [03:42] A_Nub: not in node [03:42] rsms has joined the channel [03:42] litropy: what's npm's package name? [03:42] Aria: package name? [03:42] litropy: wait [03:43] litropy: I remember I dl'ed that manually as well [03:43] litropy: some npm link ... googling [03:43] A_Nub: curl http://npmjs.org/install.sh | sh [03:43] A_Nub: run that [03:43] A_Nub: to install npm [03:43] litropy: aaaah curl [03:43] litropy: except it [03:43] litropy: 's | sudo sh [03:44] litropy: I remember that now [03:44] A_Nub: you should have installed node in a user folder [03:44] A_Nub: sudoing is annoying. [03:44] beejeebus has joined the channel [03:44] sivy_ has joined the channel [03:44] litropy: installing curl lol [03:45] Me1000 has joined the channel [03:45] litropy: whoops, A_Nub [03:46] jdalton has joined the channel [03:46] jdalton has left the channel [03:47] derick_skibotn has joined the channel [03:47] mike5w3c has joined the channel [03:50] ryah: suggestions on the best way to wait for a child pid to terminate *with* timeout [03:50] ryah: in posix [03:50] ryah: thread + waitpid + pipe trick + select ? [03:50] ryah: alarm? [03:52] A_Nub: ryah: semaphores? [03:53] Corren has joined the channel [03:53] A_Nub: access to a datastructure with info about that child that flips a flag when its terminating? [03:53] Emmanuel__: wow, npm.mape.me behave weirdly [03:54] Emmanuel__: crashes on chromium, and warn for a infinite loop script on firefox [03:56] losing has joined the channel [03:56] bradleymeck has joined the channel [03:58] rmustacc: ryah: Is sigchild masked? [03:59] Darshan-NowJS has joined the channel [04:01] djktno has left the channel [04:02] Transformer has joined the channel [04:02] pyrony has joined the channel [04:02] mikey_p: Emmanuel__: the layout seems very broken in chrome as well [04:04] ako has joined the channel [04:04] A_Nub: yeah its odd in safari 5 aswell [04:06] beawesomeinstead has joined the channel [04:08] ryah: rmustacc: yeah, that's the problem with threads... [04:08] ryah: rmustacc: this is for a test runner [04:08] ryah: so it doesn't matter what i do [04:09] ryah: https://github.com/joyent/liboio/blob/master/test/runner-unix.c#L95-112 [04:10] A_Nub: ryah: I think you just need to child to ping the parent that it is quitting. [04:10] abraham has joined the channel [04:10] A_Nub: Rather than watching, seems more efficient. [04:10] ryah: A_Nub: that's what sigchld is for [04:11] A_Nub: Ah, ok, I don't have unix threading experience, only mobile devices. [04:11] brianc has joined the channel [04:11] aroop has joined the channel [04:13] mape: Emmanuel__: hmm yeah you are probly better of using http://search.npmjs.org/ [04:17] mynyml has joined the channel [04:17] zcopley has joined the channel [04:18] mdwright has joined the channel [04:19] rmustacc: ryah: I'll think on it tonight and let you know if I have something clever / some code [04:20] koz has joined the channel [04:20] koz has left the channel [04:21] catch has joined the channel [04:21] azeroth_ has joined the channel [04:22] litropy has joined the channel [04:23] wilmoore has joined the channel [04:27] Lorentz has joined the channel [04:30] ryah: it's kind of amazing how hard libc makes things. it could have been so much better. [04:30] kriszyp has joined the channel [04:30] A_Nub: Haha, i totally agree [04:30] A_Nub: I find it even funnier how libpng works. [04:30] A_Nub: how you have to code a crap ton to load a png image. [04:31] A_Nub: I thought libraries were supposed to relieve work. [04:31] rmustacc: API design is hard. [04:31] A_Nub: Yes and no [04:32] A_Nub: Its hard when you don't get specific. [04:32] systemfault: It is. [04:32] A_Nub: if you decided to code to something specific then it becomes easier [04:32] A_Nub: A lot of libraries try to be too general which is what can cause the crazy things [04:33] A_Nub: Oh and Im not saying its easy [04:34] A_Nub: So far, OBJ-C and its NextStep library is my favorite. [04:34] A_Nub: Althought I wish OBJ-C had operator overloads like C++ [04:34] systemfault: I hate objc.. [04:34] A_Nub: to each his own ;) [04:34] systemfault: smalltalkish message passing style with EVERY damn weaknesses of C. [04:34] systemfault: What a fail.. [04:35] A_Nub: Just a quick question, how much OBJ-C have you actually coded. [04:36] zcopley has joined the channel [04:36] fr0stbyte: anyone not having issues with coffeekup? getting an error with "coffeekup -h", from files within the actual module: Error: Cannot find module 'coffeekup' [04:36] A_Nub: I only ask, because it seems most people who have little to no experience with OBJ-C usually despise it. [04:37] systemfault: A_Nub: Just a little bit. [04:37] A_Nub: Yeah [04:37] A_Nub: I hated it at first [04:37] A_Nub: it grows on you. [04:37] systemfault: Haha [04:37] systemfault: Basically, you suffer from the stockholm syndrome for ObjC? :) [04:37] A_Nub: maybe [04:37] A_Nub: But it follows a callback model [04:37] A_Nub: which is nice [04:37] systemfault: I think I do... for JS :/ [04:38] A_Nub: Oh JS is lovely. [04:38] A_Nub: great language. [04:38] systemfault: Simple but powerful [04:38] A_Nub: although I would like a better class/object implementation [04:38] systemfault: You mean? [04:38] systemfault: Like classic java oop? [04:39] A_Nub: maybe slightly similar to php's [04:39] A_Nub: well not quite java [04:39] fr0stbyte: meh, use mixins/traits. complicated multi inheritence, overloading, blah implementations are overrated [04:39] A_Nub: or php [04:39] dhasenan: I wish it had a better syntax for object orientation. [04:39] frodenius has joined the channel [04:39] harth has joined the channel [04:39] A_Nub: yes [04:39] systemfault: Eww, not php, please :'( [04:39] frodenius has joined the channel [04:39] A_Nub: Im not saying I like php [04:39] A_Nub: im just saying how it has simple contructors and to strings [04:39] A_Nub: you can override. [04:39] A_Nub: but they also have defaults. [04:40] A_Nub: JS could use a better OOP model [04:40] systemfault: I got used to the prototypal mode [04:40] A_Nub: other than that it is quite nice. [04:40] systemfault: It think it's fine already [04:40] sveimac has joined the channel [04:40] dhasenan: Calling base prototype methods easier would be nice. [04:40] systemfault: It's just that people are used to java-style oop [04:40] Draggor: JS needs macros :3 [04:40] A_Nub: yeah but JS is hard to create instances and subclassing and templating. [04:40] systemfault: Draggor: Haha :) [04:40] A_Nub: Draggor: lol JS is MACRO [04:40] A_Nub: just use eval [04:40] A_Nub: haha [04:41] Draggor: Buh, no [04:41] dhasenan: Coffeescript helps a lot, and it's the *same* object model. [04:41] Draggor: coffeescript is nice [04:41] A_Nub: I read about it [04:41] Draggor: but I dislike a lot of its syntax choices [04:41] fr0stbyte: ACTION is coding coffeescript right now [04:41] A_Nub: Im not sure if I like its syntax at all [04:41] A_Nub: JS is nice because its syntax is simple. [04:41] matjas has joined the channel [04:41] fr0stbyte: ruby/python hybrid - love it [04:42] A_Nub: coffee just seems like [04:42] A_Nub: too far abstracted. [04:42] A_Nub: for my taste [04:42] losing: I've found this (https://github.com/chrisdickinson/wilson) anyone know of a good ORM (Postgres) for node> [04:42] systemfault: I heard that coffeescript is difficult to debug.. [04:42] A_Nub: Well yea [04:42] systemfault: (I have no experience with it) [04:42] A_Nub: its interpreted to JS [04:42] indiefan2a has joined the channel [04:43] A_Nub: so you would be debuggin the interpreted code. [04:43] dhasenan: Yeah, it'd be nice if there were something to fix up the line numbers. [04:43] sub_pop has joined the channel [04:43] brianc: losing: the only ORM (postgres) for node is fastlegs [04:43] brianc: losing: It's really young though, still. [04:43] A_Nub: Im not sure that coffeescript is usefull. [04:43] A_Nub: JS works quite well [04:43] fr0stbyte: A_Nub: why don't you try it first [04:44] A_Nub: I may [04:44] brianc: Lorentz: if you're looking for a postgres driver, use http://github.com/brianc/node-postgres [04:44] A_Nub: I said "Im not sure" [04:44] losing: brianc: I linked the wrong thing! I meant to link FastLegs [04:44] Draggor: I wonder how hard it would be to do something like coffeescript, but just add in destructuring, macros, and better anon function syntax. [04:44] losing: brianc: It looks good, I'm using your module atm [04:44] A_Nub: Draggor: just some regex ;) [04:44] losing: didnt know if there were other modules worth looking at [04:45] A_Nub: some hardcore regex that is. [04:45] Draggor: I'm a regex nub [04:45] brianc: for ORMS...not sure. they're all pretty alpha still [04:45] Draggor: I'd probably hav e an easier time writing it in reparse [04:45] brianc: bed time 4 me [04:45] Draggor: Hell, write a parsec parser [04:45] abraham has joined the channel [04:45] losing: brianc: cool. Thanks. I'll keep researching FastLegS [04:46] systemfault: What are good uses of ecmascript 5 getter/setters? [04:47] A_Nub: When can I purchase a better server from no.de / Joyent? [04:47] systemfault: Beside emulating the ugly DOM. [04:47] themiddleman has joined the channel [04:47] zcopley has joined the channel [04:50] dhasenan: systemfault, the only use I can think of is updating an existing API that has fields, and you need behavior behind those things that used to be fields. [04:51] Aria: Bridging object systems. [04:51] systemfault: dhasenan: Because when I first heard it was possible to do them in ecmascript 5, I thought "Cool!" but then... where would I used them :/ [04:52] Draggor: it can clean up some syntax [04:52] Draggor: but really I kinda believe in programmer responsability [04:52] dhasenan: I use properties in C#, but that's only because of NHibernate. [04:52] Draggor: so hiding functions on properties like that is kinda mean [04:54] rudolfrck has joined the channel [04:54] dhasenan: Mainly because it's new. In C#, properties always existed, making their use unsurprising. [04:55] systemfault: I guess you're right [04:55] perezd has joined the channel [04:55] bingomanatee has joined the channel [04:56] ryah: rmustacc: this is what i ended up doing [04:56] ryah: https://github.com/joyent/liboio/blob/b4836377f99ff8fcefb879f7bdcea552dd8a81c6/test/runner-unix.c#L137-215 [04:56] Nican has joined the channel [04:56] ryah: let me know if you think of anything better [04:57] dhasenan: How do I wrap scalars in V8? Booleans and integers and so forth. [04:57] fr0stbyte: does ie9 have getters/setters? [04:57] systemfault: Yes [04:57] systemfault: ie9 has pretty much everything from ecmascript5 beside the strict mode [04:58] ryah: dhasenan: wrap? [04:58] systemfault: Imho, the strict mode is essential :/ [04:59] jdub has joined the channel [04:59] dhasenan: ryah, I have C++ code that I want to call from javascript. [04:59] niftylettuce has joined the channel [05:00] niftylettuce: \o [05:00] ryah: dhasenan: Integer::New(5) [05:00] mdwright: systemfault: Why do you think strict mode is essential? [05:00] mdwright: out of curiosity [05:00] ryah: dhasenan: False() True() [05:01] systemfault: mdwright: Because some features like freeze doesn't make any sense without it. [05:01] systemfault: mdwright: In any programming language on the planet, failing silently isn't an option [05:01] dhasenan: ryah, thanks. [05:02] mdaisuke has joined the channel [05:04] mdwright: systemfault: true enough. I suppose I just haven't used those features enough to run into a case where strict is necessary [05:04] n2liquid has joined the channel [05:04] systemfault: mdwright: Just write a test, create an object, freeze it then try to modify it [05:05] systemfault: Without strict mode, it simply doesn't make any sense :/ [05:05] MikhX has joined the channel [05:05] mdwright: systemfault: oh, no, I understood the argument and agree. I just didn't realize that was the case / haven't used those features enough. [05:05] systemfault: Ahhh, pardon [05:09] rmustacc: ryah: I think I would problably end up doing it differently. I didn't have select in mind. Let me sketch it out a bit more in my head. [05:09] rmustacc: Not sure if it's cleaner though. [05:09] puffpio has joined the channel [05:10] n2liquid: is NodeJS good enough on Cygwin? [05:10] secoif has left the channel [05:11] ryah: n2liquid: good enough for what? [05:11] n2liquid: ryah: how does it compare to the Linux native? [05:11] timmywil has joined the channel [05:11] ryah: sucks [05:11] puffpio: lol [05:12] n2liquid: ryah: why? [05:12] puffpio: is it faster to run a linux VM and run node inside [05:12] n2liquid: lol [05:12] n2liquid: probably not [05:12] systemfault: n2liquid: Don't mind ryah, he doesn't know what he's talking about [05:12] systemfault: [05:12] bingomanatee has joined the channel [05:12] n2liquid: systemfault: lolololol [05:12] Aria: Because cygwin is a pretty heavy layer and fakes a lot. [05:13] n2liquid: ah [05:13] n2liquid: ok, but [05:13] systemfault: I'd use a VM if I were you [05:13] n2liquid: systemfault, Aria: is it good enough for a client application, though? [05:13] Aria: What sort of client application? [05:14] n2liquid: Aria: the non-mathematical part of a game [05:14] n2liquid: and a simple game, at that [05:14] Aria: Probably, then! [05:14] Aria: It runs. [05:14] n2liquid: hm [05:14] n2liquid: Aria, ryah: is the purpose of libev destroyed by Cygwin? [05:15] n2liquid: (I mean, does it make it a slow waste?) [05:15] tbranyen: n2liquid: cygwin destroys all it touches [05:15] onre has joined the channel [05:16] systemfault: I would install it by default on every Windows then ;) [05:16] n2liquid: tbranyen: didn't know it was that bad [05:16] n2liquid: aren't you guys overdoing it? [05:16] rmustacc: The Win32 APIs and the POSIX ones are quite different in a lot of areas. Cygwin tries hard, but it's not the best. The question of getting good io is why liboio is being worked on. [05:17] n2liquid: rmustacc: libev isn't hit by the polling stuff? [05:17] n2liquid: on Cygwin, that is [05:18] rmustacc: Unlikely. While I'm not the most familiar with that code base you have to keep in mind the notion of a file descriptor doesn't exist in the standard Windows APIs [05:19] rmustacc: Select for example exists nominally but is capped at either 32/64 fds. [05:19] rmustacc: Instead Windows uses something called I/O completion ports. [05:19] systemfault: Win32 Overlapped IO? [05:19] n2liquid: yeah, I know Windows has its own answers to IO and everything, but I'd guess Cygwin doesn't use all that? [05:19] ryah: n2liquid: no cygwin has select [05:20] ryah: n2liquid: so libev uses select there [05:20] ryah: poll actually [05:20] n2liquid: ryah: and does it work well? [05:20] ryah: there's no overhead from libev [05:20] systemfault: Something like cygwin must be conservative.. Not sure that performance is the goal [05:20] n2liquid: hm, sure [05:20] ryah: it sucks because cygwin sucks [05:20] n2liquid: lol [05:21] systemfault: ryah: Totally offtopic question... Do you speak french? [05:21] ryah: no [05:21] systemfault: ryah: (Because I had a small WTF moment with that twit from yesterday(or the day before)) [05:21] barodeur has joined the channel [05:21] n2liquid: ryah: should I give up NodeJS and use V8 directly instead for my game scripting needs? I'm pretty sure I'd have to rewrite a lot of things, that'd be such a shame.. :\ [05:21] n2liquid: and before you begin Lua and crap, I hate them [05:22] n2liquid: I want CommonJS [05:22] ryah: systemfault: you mean the best song ever? [05:22] ryah: http://www.youtube.com/watch?v=QI6H3ylhiLA [05:22] ryah: :P~~ [05:22] systemfault: ryah: Yes [05:22] ryah: i dont understand but i like it [05:22] bradleymeck has joined the channel [05:22] systemfault: ryah: Ahhh ok :) [05:22] ryah: you know, like little girls in germany listening to boyz-2-men [05:22] systemfault: Haha [05:22] ryah: they don't understand but they like [05:23] n2liquid: lol [05:23] n2liquid: ryah? really needing your opinion there [05:23] bingomanatee_ has joined the channel [05:23] Twelve-60` has joined the channel [05:23] ryah: n2liquid: we're working very hard on a native windows port now [05:23] ryah: n2liquid: you should wait for it [05:23] ryah: n2liquid: and use cygwin until then [05:24] A_Nub: n2liquid: or try to get a server on no.de [05:24] n2liquid: ryah: ah, that's perfect [05:24] A_Nub: and test from there [05:24] systemfault: ryah: It will be possible to compile it with nmake/cl.exe? :P [05:24] A_Nub: its only 128mb ram [05:24] A_Nub: but should be more than enough for testing [05:24] systemfault: ryah: Or we'll need msys/mingw [05:24] ryah: systemfault: no, but with mingw probably [05:24] systemfault: Ah ok :) [05:25] rmustacc: ryah: Do you remember off hand if you can be cancelled while in wait(2)? [05:25] n2liquid: ryah: I know you hate Windows and I know you have good reasons to, and I wouldn't be on Windows if I weren't on games, but I'd like to thank you for working on a Windows port even when you hate it [05:26] ryah: rmustacc: you can recv signals - so, i think so [05:26] n2liquid: I have my reasons to dislike OpenGL too, so even though I hate Windows, I want to use Direct3D [05:26] onre_ has joined the channel [05:26] ryah: n2liquid: i dont hate windows [05:26] n2liquid: so it's good you'll make that possible [05:26] n2liquid: oh, you don't? [05:26] A_Nub: OpenGL <3 [05:26] mjr_: ryah doesn't hate Windows, just JavaScript. [05:26] A_Nub: Direct X build/default/deps/libeio/eio_1.o /usr/bin/gcc -rdynamic -D_GNU_SOURCE -DHAVE_CONFIG_H=1 -pthread -arch x86_64 -g -O3 -DHAVE_OPENSSL=1 -DHAVE_MONOTONIC_CLOCK=0 -DEV_FORK_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_MULTIPLICITY=0 -DX_STACKSIZE=65536 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DEV_MULTIPLICITY=0 -DHAVE_FDATASYNC=0 -DPLATFORM="darwin" -D__POSIX__=1 -Wno-unused-parameter -D_FORTIF [05:52] A_Nub: Dont paste here [05:52] A_Nub: paste to a pastebin. [05:52] mscdex: hoopi2: those aren't errors :S [05:52] hoopi2: :o [05:52] hoopi2: but they keep on going [05:52] hoopi2: forever [05:53] A_Nub: lol not forever [05:53] mscdex: hoopi2: those are the various parts compiling [05:53] A_Nub: scroll to the bottom of the window. [05:53] Corren has joined the channel [05:53] hoopi2: awww good [05:53] mscdex: it's like a progress update [05:53] coreb has joined the channel [05:53] hoopi2: ill see if it stops soon [05:53] mscdex: with [ 1/75] being the progress [05:53] mscdex: so there's 75 steps [05:53] mscdex: :) [05:53] hoopi2: then i'll do make sudo install :P [05:53] rmustacc: Depending on what your machine is it will take somewhere around 5-15 minutes. [05:53] A_Nub: no [05:53] A_Nub: sudo make install [05:53] A_Nub: but [05:53] hoopi2: okay [05:53] A_Nub: if you are following that link [05:53] A_Nub: on the wiki [05:53] A_Nub: it installs to a user folder [05:54] A_Nub: and sudo is uneccessary [05:54] hoopi2: yeah i know [05:54] hoopi2: oh? [05:54] A_Nub: I suggest not using sudo [05:54] hoopi2: so i ca just do make install? [05:54] A_Nub: it just is a hassle with permissions. [05:54] A_Nub: Yes. [05:54] mscdex: hoopi2: if your processor has more than one core, you do a little trick to speed compilation up [05:54] hoopi2: Sweet [05:54] hoopi2: im not on the admin account on my comp any way... [05:54] A_Nub: sudo doesnt care [05:54] A_Nub: it just asks for an admin password [05:54] mscdex: sudo make me a sandwich [05:55] mscdex: :-D [05:55] hoopi2: i put it in and it says wrong password [05:55] A_Nub: sudo>$ No, you go get me a natty. [05:55] seivan has joined the channel [05:55] rbranson has joined the channel [05:55] mscdex: hoopi2: you have to enter root's password [05:55] hoopi2: ? [05:55] onre_ has joined the channel [05:55] hoopi2: is that just the admin pass? [05:55] A_Nub: hoopi2: then just leave it to user permissions [05:55] mscdex: i suppose [05:55] hoopi2: kk [05:56] A_Nub: hoopi2: the original admin accounts pass. [05:56] hoopi2: mhmmm okay [05:56] A_Nub: is root in OS X [05:56] mscdex: i use osx as little as possible [05:56] mscdex: ;) [05:56] A_Nub: or it should be [05:56] hoopi2: easy i still remember it. [05:56] A_Nub: Hey at least its unix based, right? [05:56] __tosh has joined the channel [05:57] hoopi2: im only using it for now. [05:57] hoopi2: im saving to get an alienware. :D [05:57] A_Nub: Ewww :P [05:57] A_Nub: I quad boot my iMac [05:57] mscdex: download virtualbox or something and install a real os! [05:57] mscdex: :p [05:57] A_Nub: but 98% of the time OS X is more than enough. [05:57] hoopi2: lol [05:58] mscdex: osx is always pissing me off in one or another [05:58] A_Nub: hmm [05:58] mscdex: s/one/one way/ [05:58] A_Nub: It ocassionally bugs me [05:58] A_Nub: when it has a non standard build of a common tool [05:58] A_Nub: like libtool [05:58] hoopi2: the only reason im installing node.js is my friend made a program for minecraft and i need it for it to run [05:58] A_Nub: but a configure make [05:58] A_Nub: fixes that [05:59] A_Nub: in a few seconds [05:59] mscdex: nodecraft! [05:59] A_Nub: tehehe [05:59] A_Nub: WebGL nodecraft. [05:59] A_Nub: doit [05:59] A_Nub: KGO! [05:59] hoopi2: Is called GriefGuild [05:59] hoopi2: it lets you bug up your player.dat [05:59] hoopi2: so whenever you join some server it crashes [05:59] hoopi2: its evil. [05:59] A_Nub: Heh [05:59] mscdex: https://github.com/koryk/griefguild [05:59] mscdex: ! [06:00] A_Nub: lets not help him now. [06:00] A_Nub: thats not cool [06:00] hoopi2: lol im testing it [06:00] A_Nub: DONT CRASH MY PRIVATE SERVER THAT I ONLY USE ONCE IN A BLUE MOON. [06:00] hoopi2: i've never used it before [06:00] mscdex: er well, that's a fork [06:00] hoopi2: i dont even know how to use it Derp [06:00] hoopi2: 62/75 :) [06:01] onre_ has joined the channel [06:01] hoopi2: its done. [06:01] hoopi2: so make install? [06:01] mscdex: node compiles in 39 seconds with node 0.4.7 [06:01] A_Nub: http://www.nodecraft.net is primed for hacking. [06:01] mscdex: on my server machine [06:01] mscdex: :D [06:01] mscdex: whose domain is that? [06:02] hoopi2: haha [06:02] hoopi2: WOO [06:02] hoopi2: now how do i run a .js [06:02] mscdex: node foo.js [06:02] hoopi2: okay [06:02] A_Nub: including configure? [06:02] hoopi2: configure? [06:02] blkcat: hoopi2: you should probably go find a guide instead of asking all of these questions in here :) [06:03] A_Nub: @mscdex is that time including configure? [06:03] hoopi2: the guide didnt tell me to wait for forever [06:03] mscdex: A_Nub: no, but configure only takes like a second or less though [06:03] A_Nub: my computer compiled it in 24.542s with configure ;) [06:03] mraleph has joined the channel [06:03] hoopi2: what do i do to configure? [06:03] hoopi2: and is it compulsory or wut [06:03] A_Nub: hoopi2: you already did. [06:03] hoopi2: oh yeah... [06:03] mscdex: A_Nub: yeah but i just have a standard development setup [06:04] hoopi2: configure took like 4 seconds [06:04] mscdex: heh [06:04] A_Nub: mscdex: what do you mean? [06:04] mnemonic: hi [06:04] mscdex: A_Nub: sudo apt-get install build-essential libssl-dev && ./configure && make [06:04] A_Nub: how does that make it slower? [06:05] A_Nub: ok lmao [06:05] mscdex: my point is i don't have any optimizations in place or anything [06:05] A_Nub: I forgot JOBS=2 last time [06:05] A_Nub: not it compiled in 16.345s [06:05] A_Nub: now* [06:05] A_Nub: thats with configure [06:05] A_Nub: I don't have any optimizations in place [06:05] mscdex: A_Nub: that's after a `make distclean` ? [06:05] A_Nub: after `make clean` [06:05] pedrobelo has joined the channel [06:06] mscdex: do `make distclean` [06:06] A_Nub: ok [06:06] Hoopi2 has joined the channel [06:06] Hoopi2: i try using node griefuild.net [06:06] Hoopi2: i mean griefguild.js [06:06] Hoopi2: -bash: node: command not found [06:07] mscdex: Hoopi2: close out the terminal window and start a new terminal session and try again [06:07] A_Nub: aha im loosing now [06:07] Hoopi2: still: -bash: node: command not found [06:07] rmustacc: Hoopi2: Did you install it into a directory in your path? [06:07] Hoopi2: yes [06:07] Hoopi2: into my user [06:07] ExsysTech has joined the channel [06:07] rmustacc: Into your user? [06:08] A_Nub: Hoopi2: run this `echo "PATH=$HOME/local/node/bin:$PATH" > ~/.bash_profile [06:08] A_Nub: then open a new terminal window. [06:08] Hoopi2: nope [06:08] mscdex: Hoopi2: does /usr/local/bin/node exist? [06:08] sh1mmer has joined the channel [06:08] Hoopi2: i think so. [06:09] Hoopi2: im in my user folder and the node folder is there. [06:09] mscdex: you did `sudo make install` right? [06:09] A_Nub: $HOME on OS X is ~ [06:09] Hoopi2: i did make install [06:09] Hoopi2: you said sudo doesnt matter... [06:09] Hoopi2: or someone did [06:09] rmustacc: If it didn't error than it didn't matter. [06:09] A_Nub: Hoopi2: its installed in ~/local/node [06:10] A_Nub: if you followed the tutorial [06:10] Hoopi2: Its in my user folder [06:10] A_Nub: ~ = user folder. [06:10] Hoopi2: Users/tim/node [06:10] rmustacc: Then replace the $HOME above with /Users/tim [06:11] Hoopi2: huh? [06:11] A_Nub: type $HOME [06:11] rmustacc: Is the executable at /Usrs/tim/node? [06:11] A_Nub: what does it say? [06:11] A_Nub: Zachs-iMac:node zachthayer$ $HOME [06:11] A_Nub: -bash: /Users/zachthayer: is a directory [06:11] rmustacc: */Users/tim/node [06:11] Hoopi2: okay i did $home [06:12] A_Nub: what does it say [06:12] Hoopi2: i got a new line. [06:12] Hoopi2: Tim-computer:~ tim$ $home Tim-computer:~ tim$ [06:12] A_Nub: capitalize. [06:12] A_Nub: $HOME [06:12] Hoopi2: -bash: /Users/tim: is a directory [06:12] A_Nub: as I expected [06:12] A_Nub: do this [06:12] Guest29794 has joined the channel [06:12] A_Nub: echo "PATH=$HOME/local/node/bin:$PATH" > ~/.bash_profile [06:13] A_Nub: then open a new terminal window. [06:13] Hoopi2: okay cool [06:13] Hoopi2: http://pastebin.com/8xAjPVKF [06:13] A_Nub: worked? [06:13] A_Nub: yep [06:13] A_Nub: worked [06:13] Hoopi2: i did it right? i got that in the new window [06:13] Hoopi2: sweet [06:14] A_Nub: type 2+2 to test [06:14] Hoopi2: wow thats cool [06:14] A_Nub: haha [06:14] Hoopi2: sweet griefguild is loading i think.. [06:17] Hoopi2: did i do something wrong or is it the script? http://pastebin.com/gzVzh9TH [06:17] tykelewis has joined the channel [06:17] fr0stbyte has joined the channel [06:18] jacter has joined the channel [06:19] Hoopi2: anyone? [06:20] mscdex: Hoopi2: probably missing a dependency [06:20] Hoopi2: k [06:20] mscdex: actually, just comment line 3 in that file out [06:20] mscdex: it doesn't look like he's even using that library [06:21] mscdex: which is probably why it's missing i guess [06:21] Hoopi2: Okay..... [06:21] rphillips has joined the channel [06:21] onre_ has joined the channel [06:21] Hoopi2: wait [06:22] Hoopi2: , Binary = require('binary') is line 3 [06:22] Hoopi2: but there is a binary.js in the folder with griefguild.js [06:22] SubStack: npm install binary [06:23] Hoopi2: im new to this; explain what you just said> [06:23] SubStack: npm is the node package manager http://npmjs.org/ [06:23] Hoopi2: okay [06:23] SubStack: you can use it to install libraries like binary [06:23] A_Nub has left the channel [06:24] Hoopi2: wow quick install... [06:24] Hoopi2: so now what [06:24] SubStack: npm install binary [06:24] Hoopi2: i installed the packet manager [06:24] Hoopi2: how? [06:25] SubStack: it's a command [06:25] Hoopi2: ok done [06:25] Hoopi2: is that it? [06:25] zivester has joined the channel [06:25] SubStack: yes [06:26] Hoopi2: im still getting that error [06:27] onre_ has joined the channel [06:28] niftylettuce: hey lads -- how can I do a callback on "_.each(folders, function(folder, index) {" [06:28] Hoopi2: http://pastebin.com/LevnPhVn [06:28] niftylettuce: e.g. after the forEach is done??? [06:28] Hoopi2: im getting that error [06:31] Ddorda has joined the channel [06:31] mscdex: Hoopi2: comment that line out... the one requiring jspack [06:32] mscdex: in griefguild.js [06:32] seivan has joined the channel [06:32] Hoopi2: which line? [06:32] mscdex: you'll see it [06:32] mscdex: it's near the top of the file [06:32] Hoopi2: i see it ! [06:33] onre_ has joined the channel [06:33] Hoopi2: so just add # at the front of the line? [06:34] mscdex: Hoopi2: it's javascript so: // [06:34] Hoopi2: ok [06:35] Hoopi2: DEBUG: Listening on 6000 [06:35] koo7 has joined the channel [06:36] matjas has joined the channel [06:36] skm has joined the channel [06:38] onre_ has joined the channel [06:38] ph^ has joined the channel [06:38] Hoopi2: msc [06:39] Hoopi2: help; Tim-computer:~ tim$ node /Users/tim/Desktop/koryk-griefguild-994a174/griefguild.js DEBUG: Listening on 6000 \\ [06:41] mscdex: Hoopi2: sorry, i don't know anything about minecraft or that script [06:41] namelessnotion_ has joined the channel [06:41] gmgl has joined the channel [06:41] Hoopi2: okay [06:41] Hoopi2: i'll asky kory [06:48] neshaug has joined the channel [06:49] groom has joined the channel [06:50] industrial has left the channel [06:50] onre_ has joined the channel [06:50] mraleph has joined the channel [06:51] emattias has joined the channel [06:56] groom has joined the channel [06:59] ivanfi has joined the channel [07:00] saschagehlich has joined the channel [07:01] ckknight: Hey, does anyone know what the website is where you can put up a snippet of javascript code and it'll benchmark that code and log your results based on your browser? [07:03] Tobsn: jsfiddle? [07:03] Tobsn: ah nah thats not it [07:03] pifantastic: Can anyone make a good Promises module recommendation? [07:03] pifantastic: dev on https://github.com/kriszyp/node-promise seems to have slowed [07:03] jetienne has joined the channel [07:03] ckknight: Tobsn: yeah, it's not jsfiddle [07:04] Jonasbn_ has joined the channel [07:05] liar has joined the channel [07:07] mape: ckknight: jsperf? [07:07] ckknight: yes, much love, mape [07:11] V1 has joined the channel [07:12] seivan has joined the channel [07:12] mAritz has joined the channel [07:12] fangel has joined the channel [07:13] pedrobelo has joined the channel [07:14] ckknight: this is kinda interesting: http://jsperf.com/has-vs-get [07:16] jaket has joined the channel [07:17] Charuru has joined the channel [07:17] jacobolus has joined the channel [07:18] Ddorda: hey guys, i'm looking for an ex. for a callback to get data from another site... [07:19] uho has joined the channel [07:20] djcoin has joined the channel [07:25] nrbafna has joined the channel [07:26] newy_ has joined the channel [07:28] DJazz has joined the channel [07:31] Xano has joined the channel [07:32] dsirijus has joined the channel [07:33] jonaslund has joined the channel [07:34] mikeal has joined the channel [07:35] Ddorda: guys, i'm trying to GET data from a page using Request. but when i try to return the data i get it is still undefined [07:36] Druide_ has joined the channel [07:36] ckknight: Ddorda: paste your code (in a gist or pastebin) [07:37] adambeynon has joined the channel [07:38] DJazz has left the channel [07:39] Ddorda: ckknight: sec :) [07:40] Ddorda: http://pastebin.com/B9S35X45 [07:40] Ddorda: ckknight: ^ [07:40] troessner has joined the channel [07:40] skm has joined the channel [07:40] ckknight: first off, return isn't a function, don't use it like a function. return 'good'; return('weird'); [07:41] ckknight: for your actual issue, the issue is that you're returning from the inner callback, not from the outer function [07:41] ckknight: so what you need to do is instead of returning, call some callback [07:41] ckknight: callback(body); [07:41] ckknight: and that does other stuff. [07:41] andy_dawson has joined the channel [07:42] Ddorda: ckknight: i will try that, than you very much! [07:42] daglees has joined the channel [07:47] msucan has joined the channel [07:48] samcday_away has joined the channel [07:50] mikedeboer has joined the channel [07:53] hellp has joined the channel [07:54] mc_greeny has joined the channel [07:57] samcday_away has joined the channel [07:58] catshirt has joined the channel [07:59] robhawkes has joined the channel [08:02] NuckingFuts has joined the channel [08:02] NuckingFuts: Ugh [08:02] [AD]Turbo has joined the channel [08:02] NuckingFuts: PHP is making me wann kill myself [08:02] catshirt has joined the channel [08:02] NuckingFuts: I'm waist-deep in an array structure, but it's painful, unlike in JS [08:03] jesusabdullah: Then why are you phping? [08:03] NuckingFuts: Because my NodeJS deviantART chat bot still isn't stable :/ [08:03] NuckingFuts: So I use the PHP bot Contra [08:04] samcday_away has joined the channel [08:04] jesusabdullah: Why not NuckingFuts ?? [08:04] litropy has joined the channel [08:04] jesusabdullah: I guess that would be pretty niche :/ [08:05] litropy: baaah. It seems comcast.com's login process has been updated to used ajax. Looks like I'll never log in using a script :'( [08:05] litropy: s/used/use [08:06] mjr_: sure you will, it'll just be a more clever script [08:06] pomodoro has joined the channel [08:06] brettgoulder has joined the channel [08:06] NuckingFuts: litropy: AJAX makes things easier IMO [08:07] NuckingFuts: jesusabdullah: My NodeJS bot has problems staying connected, at least my current "stable" version is [08:07] jesusabdullah: Bummer :S [08:07] litropy: I've already appended the linked javascript files to get around its inability to do so itself. [08:07] litropy: err, zombie's inablity* [08:07] saikat has joined the channel [08:08] litropy: NuckingFuts, how so? [08:12] JianMeng has joined the channel [08:12] NuckingFuts: litropy: Never quite figured out why. Socket just kept closing... [08:13] andy_dawson: hi, what happend to: node.createProcess - did that becomes something else? (Looking at an old module's code) [08:13] jbpros has joined the channel [08:13] litropy: NuckingFuts, sounds more like a dead end! [08:15] NuckingFuts: litropy: Not a dead end, just meant a total rewrite ;) [08:15] NuckingFuts: And that rewrite has worked flawlessly thus far :D [08:15] NuckingFuts: Just not done [08:17] litropy: NuckingFuts, can you point me in the right direction of running ajax just like a headed browser on a page I've curled? [08:20] herbySk has joined the channel [08:21] pdelgallego has joined the channel [08:22] NuckingFuts: litropy: You don't. [08:22] nrbafna has joined the channel [08:23] NuckingFuts: litropy: But you gotta remember, that page JS is doing HTTP requests, and nothing more [08:23] NuckingFuts: So just fire up a packet sniffer and get going! [08:23] NuckingFuts: Or Firebug lol [08:26] jetienne has joined the channel [08:26] mjr_: or even npm install http_trace [08:27] zentoooo has joined the channel [08:29] mikedeboer_ has joined the channel [08:30] daglees has joined the channel [08:32] TomY has joined the channel [08:32] nornagon_ has joined the channel [08:33] NuckingFuts: mjr_: npm is for pussies. [08:33] NuckingFuts: Real mean use WIRESHARK [08:33] NuckingFuts: Err, http_trace [08:33] mjr_: no, they actually do use wireshark [08:34] NuckingFuts: Same difference, they're all the same to MEN [08:34] mjr_: But that's way too hard for me [08:34] NuckingFuts: Wireshark is a pain yeah I don't use it much myself lol [08:34] NuckingFuts: I generally stick to the Firebug Net panel [08:35] mjr_: Latest chrome dev tools is pretty good too [08:35] Tobsn: i find them confusing [08:35] Tobsn: ;) [08:36] NuckingFuts: Chrome dev tools are AMAZING [08:36] NuckingFuts: But the lack of an equivalent to Firebug's DOM tab is what drives me away [08:36] NuckingFuts: I like the ability to inspect the object structure from the window level [08:37] duncanbeevers has joined the channel [08:37] SamuraiJack has joined the channel [08:38] a2800276 has joined the channel [08:38] astropirate has joined the channel [08:40] swearos has joined the channel [08:42] uho has joined the channel [08:43] tokumine has joined the channel [08:43] dies_el has joined the channel [08:43] philhawksworth has joined the channel [08:44] philhawksworth has left the channel [08:44] hackband has joined the channel [08:45] jbpros has left the channel [08:45] jbpros has joined the channel [08:46] swearos has left the channel [08:47] beejeebus has joined the channel [08:47] litropy: NuckingFuts, you pointed me right back to where I was days ago [08:48] litropy: http://stackoverflow.com/questions/5726728/bash-curling-comcast-com-for-my-bill-amount-and-bill-date [08:49] Opaque has joined the channel [08:50] litropy: Could ajax encrypt an ASP session ID client side then send it back to the server? [08:50] nailer has joined the channel [08:51] mikedeboer has joined the channel [08:54] Ddorda: guys, where can i read about callbacks in node.js? [08:56] saikat has joined the channel [08:57] catshirt has joined the channel [08:59] rworth: Ddorda: you might try http://nodebeginner.org/ starting with the section 'Passing functions around' [09:01] bzinger has joined the channel [09:01] andy_dawson: can anyone see a glaring error in this example? https://github.com/AD7six/node-mongodb-native/blob/feature%2Ftests/integration/cant-update.js the problem I'm looking at is line 46 (collection.insert) fails IFF I attempt to update on line 53 [09:02] Ddorda: rworth: thanks [09:04] skohorn has joined the channel [09:07] Tobsn has joined the channel [09:11] wilmoore has joined the channel [09:14] thalll has joined the channel [09:15] christophsturm has joined the channel [09:15] christophsturm has joined the channel [09:15] justinTNT: andy: how does it fail? [09:16] christophsturm: I have a javascript object to which i will add many properties. can i somehow allocate all the memory at the start to avoid resizes? [09:16] christophsturm: like giving a hashtable an initial site [09:16] christophsturm: size [09:17] Ezku\: christophsturm: except for enumerating all the properties at construction, i don't think so. [09:17] christophsturm: is there a custom high performance hash class for node? [09:18] k1ttty has joined the channel [09:19] roidrage has joined the channel [09:19] mc_greeny has joined the channel [09:20] Gruni has joined the channel [09:20] nailer_ has joined the channel [09:21] beawesomeinstead has joined the channel [09:24] adulteratedjedi has joined the channel [09:27] mjr_: christophsturm: V8 doesn't handle very large numbers of properties as well as you might hope. [09:27] christophsturm: mjr_: any idea how to speed up big hashes or sets? [09:27] mjr_: You can have thousands of properties, and it's generally fine [09:27] mjr_: even tens of thousands, and it's often OK [09:28] mjr_: But in my experience, somewhere past 100,000, things start to get really slow. [09:28] mjr_: I've taken to keeping very large things in redis instead of node [09:28] mjr_: Obviously not the right answer for many applications [09:29] ditesh|cassini has joined the channel [09:29] mjr_: But the V8 GC tax comes into play when dealing with a large heap that often accompanies a large object. [09:30] christophsturm: ok, good to know! [09:30] mjr_: but you know, the V8 guys are awesome and they are making V8 faster all the time [09:31] mjr_: Might as well try and see if it goes fast enough. [09:37] piranha has joined the channel [09:40] temp01 has joined the channel [09:41] herbySk has joined the channel [09:41] mc_greeny has joined the channel [09:43] CiRlE_ has joined the channel [09:44] Xano has joined the channel [09:49] RusAlex has joined the channel [09:49] skohorn_ has joined the channel [09:50] moshe has joined the channel [09:55] mike5w3c has joined the channel [09:59] apoc has joined the channel [10:00] piscisaureus has joined the channel [10:01] fly-away has joined the channel [10:02] mc_greeny has joined the channel [10:04] mdaisuke has joined the channel [10:05] TheDeveloper has joined the channel [10:05] fairwinds has joined the channel [10:08] pietern has joined the channel [10:09] skohorn has joined the channel [10:10] beawesomeinstead has joined the channel [10:14] andy_dawson: is there a way to get more details out of a thrown error - right now I see http://pastebin.com/bf6M2PMP [10:18] tokumine has joined the channel [10:20] troessner has joined the channel [10:22] Xano: I am looking for a module that lets me build a DOM and that can export it to indented XML. [10:24] Jarppa has joined the channel [10:24] moshe has joined the channel [10:24] moshe_ has joined the channel [10:24] Jarppa: Hey. http://pastebin.com/pGGi2pqB can anyone figure out why it's getting parse error? [10:25] Jarppa: it's working on site's front page and /feed but not /feed/transfer/ for reason that I can't figure out [10:26] liar has joined the channel [10:28] justinTNT: andy_dawson are you using node-inspector ? are you calling .use(express.errorHandler({ dumpExceptions: true, showStack: true })); [10:31] bojicas has joined the channel [10:32] robm has joined the channel [10:33] fairwinds_ has joined the channel [10:33] Wizek has joined the channel [10:34] parkim has joined the channel [10:35] MattJ has joined the channel [10:42] demastrie has joined the channel [10:43] andi5 has joined the channel [10:46] Xano has joined the channel [10:48] saschagehlich has joined the channel [10:48] mattly has joined the channel [10:50] unomi has joined the channel [10:52] andy_dawson: justinTNT: no, it's an error coming out of the mongodbnative driver, but not suere where. [10:52] mytrile has joined the channel [10:53] pt_tr has joined the channel [10:53] andy_dawson: Jarppa: there's no error message in your paste [10:53] Jarppa: whops, sorry [10:53] Jarppa: "Got error: Parse Error" [10:54] andy_dawson: thats not the full error, or you're not telling the whole story [10:54] duncanbeevers has joined the channel [10:54] Jarppa: well hold on [10:54] Jarppa: taking off "on error" and send what i get then to pastebin [10:55] nzfish has joined the channel [10:55] zilch has joined the channel [10:55] Jarppa: http://pastebin.com/uW9Dut0K [10:55] Jarppa: there [10:56] andy_dawson: Jarppa: now you've got some file and line numbers to look at ;) [10:59] Jarppa: err, feels tricky [11:00] eldios has joined the channel [11:02] herbySk has joined the channel [11:02] coreb has joined the channel [11:03] saschagehlich: That could be everything... I get exceptions like these from time to time but thanks to the short stack traces I will never find out where exactly they come from ;) [11:04] andy_dawson: saschagehlich: anything*. Not when it's consistent and repeatable though [11:05] andi5: You should try to restart mongod and test db.stats() in mongo [11:11] Heath_Carruthers has joined the channel [11:12] Heath_Carruthers: Hi all! [11:12] Wizek_ has joined the channel [11:12] Heath_Carruthers: Just wondering does anyone have any experience communicating between 2 node js socket servers using piping? Or do I need to do a manual pump? [11:13] piranha has left the channel [11:14] V1: saschagehlich: not using https://github.com/tlrobinson/long-stack-traces :)? [11:15] zilch: Heath_Carruthers, checkout dnode module [11:15] icebox has joined the channel [11:15] saschagehlich: V1: no, I tried it but the stack traces were really, really long [11:15] saschagehlich: and didn't help me at all [11:15] zilch: V1, Hi, did you solve that issue then ? [11:15] V1: (what issue) [11:16] V1: zilch: what issue [11:16] zilch: V1, you had trouble with something , let me call back ... [11:16] zilch: V1, will let you know as I remind my self [11:17] V1: zilch: :D okay [11:17] zilch: V1, or you can show me how to see irc chat history !! [11:17] zilch: :p [11:17] V1: zilch: that always depends on the IRC client :p [11:18] Heath_Carruthers: hmm [11:18] V1: some keep logs in folders, some doesn't even log at all, if you don't enable it [11:18] zilch: am using Xchat on ubuntu !! [11:18] Heath_Carruthers: Yeah, but thats only with using socket.io. I dont want to use socket.io, as Im communicating to a java front end [11:18] christophsturm has joined the channel [11:19] christophsturm has joined the channel [11:19] amerine has joined the channel [11:20] zilch: Vi, enabled the log [11:20] zilch: Vi, bring a new issue and I will tell you what it was :D [11:20] zilch: Heath_Carruthers, can you use RPC ? [11:20] V1: zilch: I probably fixed the issue, or I wouldn't be here ;D [11:21] Heath_Carruthers: remote procedure calls? hadnt considered it really [11:21] zilch: V1, np, it was you you have shortest name, unless they allow one letter nick here !! [11:22] Heath_Carruthers: The sockets are both written on the same code [11:22] Heath_Carruthers: same file* [11:22] V1: zilch: ;D [11:22] SubStack: Heath_Carruthers: dnode talks straight tcp and socket.io [11:23] zilch: heath, i thought you would have same script but different instance running ... [11:23] SubStack: Heath_Carruthers: also this https://github.com/aslakhellesoy/dnode-java [11:23] zilch: SubStack, greetings !!! [11:23] Heath_Carruthers: god I really hate being behind the great firewall of china [11:24] Heath_Carruthers: I cant wait to get back home to oz. No facebook, no twitter, no lots of things! [11:24] djcoin: baidu FTW [11:24] SubStack: pesky governments [11:25] Heath_Carruthers: even trying ti use that link you sent me substack, is failing...fucking firewall... sigh [11:27] SubStack: china blocked github? [11:27] Heath_Carruthers: npm ERR! install failed Error: ENOENT, No such file or directory - tried to NPM install it and get that error :( [11:27] Heath_Carruthers: Only SOME hubs [11:28] Heath_Carruthers: oh wait, it finally loaded lol [11:28] SubStack: at least you can get on freenode [11:29] Heath_Carruthers: JUST [11:29] FireFly|n900 has joined the channel [11:30] SubStack: Heath_Carruthers: although from what I can gather oz likes to dick around with internet censorship too and network is expensive and slow [11:30] Heath_Carruthers: the great firewall isnt up YET [11:31] Heath_Carruthers: secondly, the network is getting cheaper. [11:31] Heath_Carruthers: AND faster [11:31] Heath_Carruthers: its just taking its sweet ass time about it [11:31] Heath_Carruthers: At home I usually get 8.5mbps avg no sweat, but only 384k up :( [11:31] SubStack: my cofounder pays $8 / month for unlimited 3g data plan in latvia and $10 / month for 100mbit internet [11:32] SubStack: fucking crazy over there [11:32] Heath_Carruthers: lol [11:32] Heath_Carruthers: for 3g data, I'd be seriously looking at avg speeds [11:32] Heath_Carruthers: And how bad it is to connect, and what the coverage is like [11:33] skohorn has joined the channel [11:33] Heath_Carruthers: I work for a major telco in oz, and trust me, when your on a big landmass, its a BITCH to get constant coverage, especially in 3g. [11:33] Heath_Carruthers: plus expensive. lol [11:33] SubStack: tiny countries do have a pretty big advantage that way [11:34] Heath_Carruthers: very much [11:35] Heath_Carruthers: that said, congestion is the real problem these days [11:37] hij1nx has joined the channel [11:37] Heath_Carruthers: OUr network isnt throttled at a certain speed, but we do have noticable issues with congestion in certain areas, but they are lightyears better than they used to be. [11:40] jaket has joined the channel [11:40] Heath_Carruthers: anyways dnode aint installing though NPM, requires socket io, which I dont want to add to my limited server [11:41] Heath_Carruthers: anyone got any other ideas for communicating between sockets servers? [11:42] dsirijus has joined the channel [11:42] TheDeveloper: websockets or IPC? [11:42] eb4890 has joined the channel [11:42] Shao: You could try Faye [11:43] hebz0rl has joined the channel [11:43] lukegalea has joined the channel [11:44] Heath_Carruthers: IPC - Basically I want the data to come into the primary socket, from the clients, and then sent to the secondary socket for processing like db requests etc [11:44] Heath_Carruthers: I need full real time, not polling or comet [11:45] TheDeveloper: polling/comet is more cross-network RPC, IPC involves net sockets [11:45] TheDeveloper: http://nodejs.org/docs/v0.4.7/api/net.html [11:48] Heath_Carruthers: yeah [11:48] Heath_Carruthers: dragged my eyes over that but I cant seem to fathom what Im missing [11:48] TheDeveloper: so you have two processes [11:48] TheDeveloper: flow is [11:48] V1: Heath_Carruthers: Just because a dnode requires socket.io in the NPM package, it doesn't mean that it will also use it.. as it also has a TCP abstraction [11:49] TheDeveloper: remote client -> process a -> socket -> process b [11:49] TheDeveloper: you open a socket server in process b and write to it from process a [11:50] TheDeveloper: if you want full real time between client and process a, client -> socket.io (or other websocket server) -> socket -> process b [11:51] Heath_Carruthers: http://pastebin.com/tS6HppFk [11:51] Heath_Carruthers: thats my example code. [11:51] Heath_Carruthers: Gotta run. Got dinner time [11:51] Heath_Carruthers: Will talk laters. [11:54] gavin_huang has joined the channel [11:55] dnolen has joined the channel [11:58] galaxywatcher has joined the channel [11:59] jacter has joined the channel [12:00] omni5cience_ has joined the channel [12:03] tiagoa has joined the channel [12:07] Ddorda has joined the channel [12:07] Ddorda has joined the channel [12:07] nornagon_ has joined the channel [12:12] joshthecoder has joined the channel [12:12] dcampano has joined the channel [12:13] bradleymeck has joined the channel [12:16] devdazed has joined the channel [12:16] awenkhh has joined the channel [12:16] dipser has joined the channel [12:18] naneau has joined the channel [12:20] naneau has joined the channel [12:23] vierja has joined the channel [12:24] jonaslund has joined the channel [12:24] sunblush has joined the channel [12:25] sunblush has joined the channel [12:25] hellp has joined the channel [12:27] SSgtSpoon|work has joined the channel [12:27] Postmodernist has joined the channel [12:28] Postmodernist: Node.js is the Madonna of server frameworks. [12:28] littke has joined the channel [12:28] Postmodernist: Sexy, intelligent, fast in bed, beautiful, and clairvoyant. [12:29] Poetro has joined the channel [12:29] nail_ has joined the channel [12:30] jetienne has joined the channel [12:32] dsirijus has joined the channel [12:32] mc_greeny has joined the channel [12:32] V1: Postmodernist: Madonna is also old and full of cum, node isn't [12:32] Postmodernist: Madonna is forever. [12:32] NoNoNo has joined the channel [12:32] jtrudeau has joined the channel [12:33] NoNoNo: hi! [12:33] NoNoNo: In TextMate on "JavaScript Lint Tools" > "Validate with JSLint" I get "Error: Cannot find module 'util' at loadModule (node.js:558:15)" [12:33] NoNoNo: node.js is installed [12:33] Postmodernist: And Madonna is God. [12:34] NoNoNo: node --version == v0.4.7 [12:34] Postmodernist: Is Node.js like a virgin? [12:35] NoNoNo: who knows? [12:35] NoNoNo: who cares? [12:35] jscheel has joined the channel [12:35] jscheel has joined the channel [12:37] Postmodernist: Madonna would be the perfect spokeswoman for node.js [12:37] NoNoNo: just call her (LA? SF?) [12:38] jlecker has joined the channel [12:38] Postmodernist: Manhattan. [12:38] sledge: Postmodernist: I'd rather have Hayden Penetierre as a spokesperson. [12:38] sledge: But that's just me. [12:39] Postmodernist: I just finished a 17,000 lines of code node.js CRM :) [12:40] roidrage has joined the channel [12:40] Postmodernist: It's hard to write node.js for me though because I get distracted kinging to Madonna. [12:41] Postmodernist: Anyway, anyone used Joylent for elastic computing? [12:41] crodas has joined the channel [12:42] dask: I use Soylent Green for tasty computing [12:44] mikl has joined the channel [12:46] Opaque has joined the channel [12:46] pdelgallego has joined the channel [12:46] davidascher has joined the channel [12:47] swearos has joined the channel [12:48] jbpros has joined the channel [12:50] FireFly has joined the channel [12:51] moshe: whats the difference between building a chat using node.js/socket.io to building one using Socky? are they similar ? [12:51] fumanchu182 has joined the channel [12:52] unomi: one seems to be for a ruby backend and the other seems to be for a NodeJs backend [12:53] FireFly|n900 has joined the channel [12:53] __tomb has joined the channel [12:53] fermion has joined the channel [12:55] moshe: yeah i know, is there a difference tho between the two? they're both based websocket no? [12:55] unomi: socket.io has a number of fallbacks if websockets aren't available [12:56] unomi: Socky is in Ruby. [12:56] __tomb: Would anyone be able to help me understand how I can create a ReadStream on a file that acts like tail -f? I am using createReadStream with the default options at the moment. [12:57] unomi: Ruby is a nice language, but it seems very close to EOL for web based apps in the medium - long term [12:57] moshe: i actually have used dnode, it's uses socket.io tho [12:57] moshe: 'but it seems very close to EOL for web based apps in the medium - long term' what do you mean by that? [12:58] unomi: if you are waffling between using nodejs or a Ruby backend, I think you need to give more thought to what you actually want to do [12:59] unomi: I mean that it seems to lack a compelling reason to use it. [12:59] zivester: ACTION test [12:59] moshe: well i know what imactully want to do, the problem is that im not sure how i should be doing it [12:59] unomi: the browser performance wars are on, nodejs will only get faster [13:00] moshe: yeah i managed to understand that [13:00] moshe: looks like websockets is the big thing now isnt it [13:01] unomi: Ruby doesn't have a sponsor, many of the nice parts of the language have been co-opted by other languages such as Scala or even coffee-script [13:01] unomi: the only upgrade path is to throw memory at it in JRuby or implement core in C [13:01] unomi: and neither of those are particularly compelling [13:02] brendanjerwin has joined the channel [13:02] unomi: unless you need to support a legacy rails app, why bother? [13:03] moshe: which is the reason why node.js is so much more awesome? :) [13:04] amacleod has joined the channel [13:04] unomi: node.js hits a lot of the right notes - ryah has been an exceptional steward [13:07] troessner has joined the channel [13:08] moshe: well i'd like to build my chat in node, but it's just a part of the project, most of the project is on rails [13:08] moshe: so i need to integrate the two [13:08] Mrfloyd has joined the channel [13:08] sirkitree has joined the channel [13:09] unomi: well, it depends on the concerns - for the most part I would imagine that the issue is adding a whole new slew of dependencies to your infrastructure [13:10] moshe: which is pretty simple i suppose? [13:11] avalanche123 has joined the channel [13:12] chakrit has joined the channel [13:16] planetic has joined the channel [13:16] ditesh|cassini has joined the channel [13:16] jtrudeau has joined the channel [13:16] planetic: Is anybody uses cradle lib? [13:17] trotter has joined the channel [13:17] malkomalko has joined the channel [13:19] c4milo has joined the channel [13:22] rubydiamond_ has joined the channel [13:22] rubydiamond has joined the channel [13:24] hij1nx has joined the channel [13:24] matthijs_ has joined the channel [13:24] cha0s has joined the channel [13:24] cha0s has joined the channel [13:24] taf2 has joined the channel [13:26] unomi has joined the channel [13:26] samilton has joined the channel [13:26] Epeli has joined the channel [13:28] baudehlo has joined the channel [13:29] thomblake has joined the channel [13:31] therrg has joined the channel [13:32] nciagra has joined the channel [13:32] mbrevoort has joined the channel [13:35] emattias_ has joined the channel [13:38] jpld has joined the channel [13:38] jpld has joined the channel [13:38] colinclark has joined the channel [13:39] jamey-uk_ has joined the channel [13:39] jamey-uk has joined the channel [13:40] cbibler_ has joined the channel [13:41] NoNoNo has left the channel [13:42] rfay has joined the channel [13:42] jamey-uk: wow, node looks popular :D [13:43] c4milo: jamey-uk: very popular I'd say :) [13:44] jamey-uk: c4milo: I've been hibernating and my boss has just introduced node to me [13:44] c4milo: jamey-uk: good boss [13:44] jamey-uk: immediately feel like using it for *everything* but someone was telling me not to use it for synchronous stuff, for some reason [13:44] jamey-uk: trying to figure out what that reason is atm [13:44] c4milo: jamey-uk: synch stuff like what? [13:44] brez__ has joined the channel [13:45] c4milo: jamey-uk: I [13:45] jamey-uk: yeah i'm not sure what exactly, trying to get back to him on that [13:45] c4milo: jamey-uk: I see [13:45] jonaslund: jamey-uk: you need to structure your code slightly differently when using node [13:45] jonaslund: jamey-uk: with java you can f.ex. start opening a file, read it and then just return it in one method and it's no problem since everything is threaded [13:46] jamey-uk: jonaslund: so you have to think about not blocking anything all the time? how would you structure that same bit of code in node? [13:46] jonaslund: jamey-uk: with node, you need to rewrite this to event processing, so when you get a request you rewrite it to a file opening event that's chained to reading, sending,etc [13:46] jonaslund: exactly, don't block :) [13:46] mc_greeny has joined the channel [13:47] jamey-uk: ah, I'm very well versed with JS, jQuery, anonymous functions, that sort of thing [13:47] jonaslund: now for stuff like file-serving i guess the frameworks will take care of most [13:47] jamey-uk: you mean, for example, express-js? [13:47] kal-EL_ has joined the channel [13:48] jonaslund: not used it but i guess so [13:49] jamey-uk: what do you use? [13:49] dcampano has joined the channel [13:50] eb4890 has joined the channel [13:51] jonaslund: I'm not using node for file serving yet atleast [13:51] planetic: Cradle library kills the event loop when using list function with nonexistent key in key option http://friendpaste.com/sQuvVTFE1ZtrdO96BQ7ka, why? How to handle such errors. [13:51] timmywil has joined the channel [13:52] jano has joined the channel [13:52] perezd has joined the channel [13:52] jamey-uk: jonaslund: is that because node is slow for that? [13:52] emattias_ has joined the channel [13:52] jamey-uk: ah got it, modules :) [13:53] planetic: node version 0.5.0.pre [13:54] nibblebot has joined the channel [13:54] jonaslund: jamey-uk: i'm using node for game logic right now and just communications with the web client. haven't done much on any "web-part" yet :) [13:55] jamey-uk: jonaslund: interesting :) literally been going just an hour-or-so with all of this, just hardcore reading and compiling right now :) [13:55] jbpros has joined the channel [13:57] bingomanatee has joined the channel [13:59] kmiyashiro has joined the channel [14:00] unomi has joined the channel [14:00] brolin has joined the channel [14:01] tiemonster has joined the channel [14:03] strmpnk has joined the channel [14:04] timmywil has joined the channel [14:05] chbrown has joined the channel [14:05] skm has joined the channel [14:05] jacter has joined the channel [14:06] chbrown: Why doesn't JSON.parse throw an error on this string?: [14:06] davidascher has joined the channel [14:06] chbrown: '{{: xjnk123, null};;-=+' [14:06] chbrown: It just stalls. [14:06] sourcode has joined the channel [14:07] jif has joined the channel [14:07] Me1000 has joined the channel [14:08] Heath_Carruthers has joined the channel [14:08] Heath_Carruthers: heya [14:08] miccolis has joined the channel [14:09] brianc has joined the channel [14:11] V1: chbrown report a bug @github as it should throw an error [14:12] chbrown: V1 - to V8 or node? I'm not sure about node.js internals, like if JSON.* is node.js code or V8. [14:12] jaket has joined the channel [14:12] JulioBarros has joined the channel [14:12] miccolis has joined the channel [14:12] V1: chbrown: it throws in error in my latest chromium build. So I guess it's node's issue [14:13] TheDeveloper: JSON is V8 [14:13] TheDeveloper: its a native class to all modern javascript engines [14:13] m64253 has joined the channel [14:14] Heath_Carruthers: Ok guys and girls, I was speaking to a couple of you earlier, but I had to run (the missus said we were having dinner...and she cant be disobeyed lol) [14:14] Heath_Carruthers: http://pastebin.com/XCK2PJbj [14:14] sivy has joined the channel [14:14] Heath_Carruthers: thats my basic sample code. [14:14] chbrown: V1, TheDeveloper -- nvm, I think it's a node REPL issue. If I run it as a script, it throws an error as expected. [14:15] V1: chbrown: report it i@ repl [14:15] Heath_Carruthers: What Im trying to do, is have the first socket server talk to the second one to do the grunt work (db queries etc), and send it back to server 1 to be shipped off to the clients [14:15] brianc has joined the channel [14:15] fumanchu182 has joined the channel [14:17] paulrobinson has joined the channel [14:17] rauchg has joined the channel [14:17] d0k has joined the channel [14:18] dmma has joined the channel [14:18] ph^ has joined the channel [14:19] seangaffney has joined the channel [14:21] mscdex: Heath_Carruthers: huh? why not do db queries in the same server? [14:21] beawesomeinstead has joined the channel [14:22] Yuffster has joined the channel [14:22] rfay_ has joined the channel [14:23] Heath_Carruthers: Im trying to seperate it, if I can get all the grunt work done by one server and use the front server as basically a simple proxy, Im hoping to alleviate some overhead [14:23] tmpvar has joined the channel [14:23] baudehlo: the overhead of having two servers instead of 1? [14:24] mendel_ has joined the channel [14:24] tokumine has joined the channel [14:25] rfay has joined the channel [14:25] V1: "premature optimization is the root of all evil" ;) [14:25] aheckmann has joined the channel [14:26] aheckmann_ has joined the channel [14:27] mscdex: heh [14:28] skm has joined the channel [14:28] mscdex: Heath_Carruthers: as long as the db driver is async (which almost all are), then doing it all in one server is probably going to be a better solution [14:28] mytrile has joined the channel [14:28] Know1edge has joined the channel [14:28] jacksonmills has joined the channel [14:28] hij1nx has joined the channel [14:28] mscdex: Heath_Carruthers: the only time you'd need more than one node instance is if you're load balancing or if you're doing something computation intensive that will be blocking the event loop for a considerable amount of time [14:30] Heath_Carruthers: my thinking is, for what I want to do, is have basic processing done by server one, with the heavier processing (db queries and that) done by server two. [14:30] Heath_Carruthers: a truer statement has never been made V1 [14:30] Heath_Carruthers: IM sort of doing it for 2 reasons. [14:31] Corren has joined the channel [14:32] doki_pen: my express apps staticProvider doesn't work with the lastest update. I tried using static instead, but it doesn't seem to work. Does anyone know how to server a directory of static files from a path within express? [14:32] Heath_Carruthers: What I have planned for it it will be pretty intensive. [14:33] davidwalsh has joined the channel [14:34] Heath_Carruthers: Its going to end up being my game server for a nodejs/websocket/flex version of battletech [14:35] killfill has joined the channel [14:36] pifantastic has joined the channel [14:37] Emmanuel__ has joined the channel [14:39] planetic: is there a generic way to hanle errors e.g ParserError that kills event loop without monkey patch another's code which I require? [14:39] V1: doki_pen it's renamed to static, read the docs :) [14:40] fawek has joined the channel [14:40] jonaslund: anyone here using eclipse ? [14:40] jonaslund: ACTION made a small plugin that helps with node/web development.. [14:40] V1: eclipse makes my eyes bleed ;9 awfull ui [14:40] Emmanuel_ has joined the channel [14:41] joshbaptiste: jonaslund: oh? [14:41] jonaslund: basically [14:41] Heath_Carruthers: komodo edit for the win [14:41] sledge: vim for the win [14:41] mscdex: non-IDEs ftw [14:41] mscdex: :-D [14:41] planetic: emacs [14:42] V1: echo '' >> myserver.js ftw [14:42] jonaslund: If you tell node to connect to the eclipse-server you can then send data directly from the editor to the node client [14:42] jonaslund: Most obvious example is serving code for eval [14:42] jonaslund: so if i make changes i just select the code and press ctrl-0 and the code is sent for "eval" [14:43] jonaslund: kinda like a repl but allows you to use your editors as a clipboard or to update code on the fly (pondering on if it's possible to make a neat solution for updating code in required modules) [14:43] unomi has joined the channel [14:43] doki_pen: V1: oh ,the problem I had was it went from ({root: blah}) to just (root). [14:44] Venom_X has joined the channel [14:45] jonaslund: well.. if anyone wants to beta-test mail me at com.gmail@whizzter (reversed :)) [14:45] jonaslund: ACTION runs off to practice [14:46] V1: doki_pen: glad you solved it :) [14:47] Heath_Carruthers has joined the channel [14:47] __tomb has joined the channel [14:47] bitprobe has joined the channel [14:48] Heath_Carruthers: blah [14:48] Heath_Carruthers: silly computer [14:48] killfill has joined the channel [14:48] Aikar: um [14:48] jdp has joined the channel [14:49] Aikar: npm 1.0 rc is installing modules to /usr/local/lib/node_modules/ when using -g [14:49] thalll has joined the channel [14:49] nailer_ has joined the channel [14:49] Aikar: that path isnt in nodes require.paths O.o [14:49] Aikar: so npm install vows -g makes require('vows') not work [14:50] xqi has joined the channel [14:50] Aikar: and isaacs isnt here ;/ [14:50] Aikar: guess ill symlink node_modules to ../ in mean time [14:50] xqi: why Node.js is so cool? [14:52] rustyconover has joined the channel [14:53] rustyconover: Hi guys, I'm having trouble with express, in my app.post() handler it seems I need to immedately add a 'data' event handler to the request, otherwise I drop data, so I added a req.pause(), but that is still resulting in data being dropped. What should I do? [14:54] brianmario has joined the channel [14:54] hosh_work has joined the channel [14:55] springmeyer has joined the channel [14:58] EyePulp has joined the channel [14:58] Aria has joined the channel [14:58] BillyBreen has joined the channel [14:59] mattmcmanus has joined the channel [14:59] harth has joined the channel [15:00] kmiyashiro has joined the channel [15:00] brettgoulder has joined the channel [15:00] softdrink has joined the channel [15:01] Ori_p has joined the channel [15:01] pdelgallego has joined the channel [15:03] mscdex: rustyconover: yup, you'll have to buffer it somewhere. if you've got files being uploaded, you may want to take a look at node-formidable [15:03] rustyconover: I'm using formidible [15:03] rustyconover: but I'm doing stuff before I'm ready to read that body [15:05] sub_pop has joined the channel [15:05] rustyconover: I guess thats what 100 continue is for [15:05] echong has joined the channel [15:06] chapel: rustyconover: what are you needing to do before you accept the file/s? [15:06] themiddleman_itv has joined the channel [15:06] rustyconover: Check some permissions in a remote file system. [15:06] rustyconover: basically go back into the event loop [15:06] Heath_Carruthers: hmm [15:06] dies-el has joined the channel [15:06] Heath_Carruthers: ok [15:07] _skurfer has joined the channel [15:07] chapel: why do you have to check the permissions? [15:07] roidrage has joined the channel [15:07] chapel: is it related to the person uploading, or what they are uploading? [15:08] tokumine has joined the channel [15:08] _skurfer has left the channel [15:09] rustyconover: well basically, I'm checking to see if the folder where they are uploading the file, that they should be able to write to it [15:09] chapel: couldn't you do that check before they try to upload the file? [15:09] rustyconover: permissions could change. [15:10] dguttman has joined the channel [15:10] chapel: why would they change? [15:10] skurfer has joined the channel [15:11] Heath_Carruthers: http://pastebin.com/0tADBJr8 [15:11] indutny has joined the channel [15:11] Javier_ has joined the channel [15:11] Heath_Carruthers: The big question is, how would I fire a on data event coming BACK from server2? [15:12] tiemonster: Has anyone tried to use Cloud9 with Joyent's no.de hosting? I can't get the repo to work. [15:14] bradleymeck has joined the channel [15:14] tjholowaychuk has joined the channel [15:15] jdalton has joined the channel [15:15] jdalton has left the channel [15:15] Javier_ has joined the channel [15:16] emattias has joined the channel [15:17] chrislorenz has joined the channel [15:17] SSgtSpoon|work has joined the channel [15:18] themiddleman_itv has joined the channel [15:18] rihegher has joined the channel [15:18] killfill has joined the channel [15:19] Vertice has joined the channel [15:20] mike5w3c has joined the channel [15:20] Heath_Carruthers: Hmm perhaps if I used event emitter to "emit" an event back, to the original server like "response" would that work? [15:20] demastrie has joined the channel [15:23] mickaelz has joined the channel [15:23] rfay_ has joined the channel [15:24] dmcquay has joined the channel [15:24] killfill has joined the channel [15:25] davidsklar has joined the channel [15:26] Tobsn has joined the channel [15:26] highermath_away has joined the channel [15:26] jakehow has joined the channel [15:28] jonaslund has joined the channel [15:28] Bj_o_rn has joined the channel [15:30] chapel: Heath_Carruthers: you can have multiple listeners [15:31] __tomb has joined the channel [15:31] briznad has joined the channel [15:32] mdaisuke has joined the channel [15:33] temp01 has joined the channel [15:35] TheFuzzball has joined the channel [15:36] demastrie has left the channel [15:37] mc_greeny has joined the channel [15:37] davidascher has joined the channel [15:37] christophsturm has joined the channel [15:40] Spion__ has joined the channel [15:40] DennisRasmussen has joined the channel [15:42] jarek has joined the channel [15:43] willwhite has joined the channel [15:43] daniellindsley has joined the channel [15:44] Corren has joined the channel [15:44] eresair has joined the channel [15:45] puffpio has joined the channel [15:46] pHcF has joined the channel [15:46] eazyigz_ has joined the channel [15:48] eazyigz_: I am executing a python script child process. In this script I am using print statements. I tried to direct the print to a log file by adding "> script.log" in the .execute() command. However, I do not see anything outputted. What am I doing wrong? [15:48] dguttman has joined the channel [15:49] pcardune has joined the channel [15:49] tiemonster: eazyigz_: you're not doing it asynchronously. read up on the documentation for subprocesses. [15:49] jtsnow has joined the channel [15:50] eazyigz_: tiemonster: so if I do this: child = exec('python2.6 twitter_test4.py >twitter4.log', ..... [15:50] eazyigz_: that is not correct?? [15:50] temp01 has joined the channel [15:50] tiemonster: no. you don't want to do output redirection like that. You want to have a listener on stdout [15:50] bingomanatee has joined the channel [15:51] eazyigz_: tiemonster: here is what I'm doing - http://pastie.org/1835703 [15:51] wilmoore has joined the channel [15:51] m64253 has joined the channel [15:51] langworthy has joined the channel [15:52] tiemonster: eazyigz_: http://nodejs.org/docs/v0.4.7/api/child_processes.html#child.stdout [15:52] jmar777 has joined the channel [15:52] tiemonster: stdout a stream. you need to attach an on data event handler to it. [15:52] Opaque has joined the channel [15:53] tiemonster: ah - nevermind [15:53] tiemonster: you're using exec [15:53] eazyigz_: tiemonster: so I shouldn't use exec, I should use spawn? Or it doesn't matter? [15:53] tiemonster: which buffers the output, and returns it [15:53] tiemonster: if you don't mind buffering, then that's fine [15:53] michaelficarra has joined the channel [15:53] tiemonster: the script doesn't require interaction, correct? [15:54] boghog: how stable is node.js' API? [15:54] eazyigz_: tiemonster: what if I want to see the output right away? [15:54] eazyigz_: tiemonster: i don't want to wait till the end of the script to see the output [15:54] tiemonster: boghog: stable as in doesn't crash, or doesn't change? [15:54] tiemonster: eazyigz_: yeah, then use spawn and add an event handler to stdout [15:55] tiemonster: http://nodejs.org/docs/v0.4.7/api/child_processes.html#child_process.spawn [15:56] jmar777: tjholowaychuk: you around? [15:56] tjholowaychuk: jmar777: yo [15:57] jmar777: tjholowaychuk: in jade, is "title= foo" basically a convenience for "title #{foo}", when you don't need any literal text in the tag body? [15:57] tjholowaychuk: jmar777: other way around really [15:57] tjholowaychuk: - and = are literal js [15:57] tjholowaychuk: #{} is just interpolation to plunk and expression in some text [15:58] tjholowaychuk: using #{} all over doesnt make sense [15:59] nailer has joined the channel [15:59] Yuffster_work has joined the channel [16:00] Heath_Carruthers: ok can anyone give me an idea why this aint working...I gather events cant be used, but if I use 'this' it doesnt work either> [16:00] eldios has joined the channel [16:00] jmar777: tjholowaychuk: ahh - that makes sense. thanks [16:00] hwinkel has joined the channel [16:01] Heath_Carruthers: http://pastebin.com/160SdKpN [16:01] Heath_Carruthers: any ideas? [16:01] RushPL has joined the channel [16:03] kmiyashiro has joined the channel [16:04] Heath_Carruthers: hmm, I think I got it working [16:04] kkaefer: fairwinds: there is an examples folder in bones [16:04] Heath_Carruthers: however, when it spits the data to the standard out (console.log), its in buffer, how would I cnvert it? [16:04] kkaefer: fairwinds: although the documentation is pretty sparse atm :/ [16:05] rihegher has left the channel [16:05] MikhX has joined the channel [16:06] estrathmeyer has joined the channel [16:06] estrathmeyer has left the channel [16:06] aberry has joined the channel [16:07] chapel: Heath_Carruthers: data.toString(); [16:07] bradleymeck: anyone have a pipe function for piping a string in chunks of x bytes? [16:07] Heath_Carruthers: oh der! lol [16:08] fairwinds: kkaefer: hi. yeah, have read the example there. Is there anything that has been made from it to get a better idea of this in a project [16:09] Heath_Carruthers: OK, that seems to be working... [16:09] kkaefer: yes; but that's not open source atm [16:09] indiefan2a has joined the channel [16:09] Heath_Carruthers: except now its sending multiple copies of the data to the second server... [16:09] chapel: bradleymeck: maybe lazy module? [16:09] chapel: `v git lazy [16:09] v8bot: chapel: pkrumins/node-lazy - GitHub - https://github.com/pkrumins/node-lazy [16:09] Heath_Carruthers: first work goes to the second sever once [16:09] kkaefer: fairwinds: do you have any questions in particular? [16:10] Heath_Carruthers: then another word gets doubled, and the third word is trippled [16:10] kkaefer: or is it just the lack of documentation/examples that's a bit offputting? [16:10] sh1mmer has joined the channel [16:10] Heath_Carruthers: http://pastebin.com/sfn1VeNM [16:11] fairwinds: kkaefer: not atm. I have a sophisticated model approach but have been considering shifting to backbone [16:12] kkaefer: I hope to write some more docs/more elaborate examples till the end of the week [16:12] m64253 has joined the channel [16:12] kkaefer: but I can't promise that :/ [16:12] fairwinds: kkaefer: so have been consuming anything to get a sense of the various implementation approaches [16:12] Gruni has joined the channel [16:12] fairwinds: kkaefer: my model class already had many of the features of the Backbone.Model [16:12] erikcorry has joined the channel [16:13] eazyigz_: I am using .spawn() to run a python script. I am not seeing any print statements output from this script. Any ideas?? [16:13] kkaefer: fairwinds: the goal of bones is to run the same code on the client and the server [16:13] aroop has joined the channel [16:13] kkaefer: fairwinds: so most of the code is shared, except for code that pulls data from the database [16:14] fairwinds: kkaefer: so it is a matter at this point of determining whether I will extend my own libs or dive in. [16:14] michaelficarra has joined the channel [16:14] fairwinds: kkaefer: absolutely [16:14] ceej has joined the channel [16:14] tjholowaychuk: fairwinds: might as well go with your own [16:14] fairwinds: yeah. I am working on the same goal. to unify my development across platforms [16:14] tjholowaychuk: backbone doesnt really do anything [16:14] neonstalwart has joined the channel [16:15] tjholowaychuk: except force lame classical oo stuff on you [16:15] perezd has joined the channel [16:15] cwang has joined the channel [16:15] neonstalwart: can anyone confirm for me that the filename provided to runInThisContext needs to be absolute for debugging/breakpoints to work? [16:15] addisonj_ has joined the channel [16:17] eazyigz_: What can I do to see a child process's stdout? My print statements from python aren't being displayed... [16:18] tjholowaychuk: eazyigz_: child.stdout.on('data', ...) [16:18] addisonj_: okay, i am struggling this morning, using a select input, with jade how can I programatically set the selected option? [16:18] fairwinds: tjholowaychuk: heh. I think the value is not necessarily backbone itself but more that you have some decent model and collection objects, and that you have a way to interact with object state in a browser or some type of ui (that is not on the server side) [16:18] eazyigz_: tjholowaychuk: that is exactly what I'm doing, but no dice! [16:19] tjholowaychuk: fairwinds yeah totally [16:19] fairwinds: tjholowaychuk: so yeah, you don't need backbone for that. I have rolled my own for the most part up to now [16:19] tjholowaychuk: function MyModel(){} bam done [16:19] eldios has joined the channel [16:20] fairwinds: heh, pretty much. I make use of json schema for defining models [16:20] Heath_Carruthers: ok this is strange [16:20] SubStack: I don't get why MVC is considered a thing [16:20] creationix has joined the channel [16:20] amerine has joined the channel [16:21] saschagehlich has joined the channel [16:21] Heath_Carruthers: http://pastebin.com/Ah9Pknb0 [16:21] Aria: I do! But what's out on the web isn't MVC, it's request-render-response. [16:21] Heath_Carruthers: even after removing the for loop Im still getting strange responses from the second sever [16:21] Aria: MVC makes sense in a GUI, where you maintain an abstract model and then concrete displays of those abstract things. [16:22] fairwinds: tjholowaychuk: some of the ideas in backbone are good so being objective when I see that I don't need to throw away anything I am doing, but possibly just assimilate what is valuable there. [16:22] Heath_Carruthers: hi [16:22] Heath_Carruthers: loal [16:22] Heath_Carruthers: moi [16:22] Heath_Carruthers: shes [16:22] tjholowaychuk: haha yeah i mean its just basic stuff people should do anyway [16:22] Heath_Carruthers: this is the data [16:22] Heath_Carruthers: however the responses from the second sever is this: [16:23] fairwinds: for sure. [16:23] ezl has joined the channel [16:23] Heath_Carruthers: loal [16:23] Heath_Carruthers: moi [16:23] Heath_Carruthers: moi [16:23] Heath_Carruthers: shesh [16:23] Heath_Carruthers: shesh [16:23] Heath_Carruthers: shesh [16:23] neonstalwart has left the channel [16:23] Heath_Carruthers: its bizare [16:24] fairwinds: tjholowaychuk: man the Canuks better win the next game huh? [16:24] tjholowaychuk: fairwinds: I dont watch hockey :p [16:24] tjholowaychuk: played for 14 years [16:24] tjholowaychuk: would never watch it [16:24] Heath_Carruthers: anyone got any ideas for me? Something Im missing perhaps? [16:24] demastrie has joined the channel [16:25] sirkitree has joined the channel [16:25] fairwinds: tjholowaychuk: haha, I used to play also but like to watch when getting close to playoffs. When I lived in Winnipeg and Vancouver, liked to go to the games [16:25] pyrony has joined the channel [16:25] chrislorenz has joined the channel [16:26] brianloveswords has joined the channel [16:26] jakehow has joined the channel [16:28] djcoin has joined the channel [16:30] shanez has joined the channel [16:30] jeff_horton has joined the channel [16:31] DennisRas has joined the channel [16:31] eee_c has joined the channel [16:31] djcoin: hi Substack, I have a simple question for you related to dnode. Is there a way to forbid the client to pass dangerous stuff on the protocol (as it basically enables anything). Like the server offers the client to pass a callback, how can I restrict to only a few func (ok - i should not have enable him to pass a cb - )? Or, even if i do not offer him to pass a cb, are they some parameters/functions, [16:31] djcoin: whatever, that may threat my server, and how to avoid this case ? [16:32] djcoin: B [16:32] djcoin: oups [16:32] kkaefer: is there a way to run expresso tests in the browser? [16:33] creationix has left the channel [16:34] Me1000 has joined the channel [16:34] sirkitree has joined the channel [16:36] boaz has joined the channel [16:37] framlin: how can I decide, that a file I want to serve to a http-browser is a binary file (e.g. a icon)? [16:37] nvardar has joined the channel [16:38] bradleymeck: framlin content-type header [16:41] matjas has joined the channel [16:41] k1ttty has joined the channel [16:41] chapel: djcoin: like anything, if you are running the data from the client without any sanitizing, that could be a problem [16:43] framlin: bradleymeck: I only have a url, that means I have only the filename? How to get a "content-type header" from a Filename? [16:44] vipaca has joined the channel [16:44] vipaca has joined the channel [16:44] djcoin: chapel: yeah [16:44] framlin: bradleymeck: I want to know that from the server-side point of view [16:44] djcoin: but this time sanitizing needs to be well cause basically anything may happen [16:46] Sebmaster has joined the channel [16:46] jbpros has joined the channel [16:47] broofa has joined the channel [16:47] SamuraiJack has joined the channel [16:48] dguttman has joined the channel [16:48] techwraith has joined the channel [16:49] techwraith: Morning all :) [16:49] aho has joined the channel [16:49] newy_ has joined the channel [16:50] CIA-72: node: 03isaacs 07v0.4 * rbbffd9e 10/ lib/repl.js : [16:50] CIA-72: node: Close #983 Better JSON.parse error detection [16:50] CIA-72: node: Previous pattern would only catch ILLEGAL, not { or other [16:50] CIA-72: node: known-but-unexpected JSON tokens. - http://bit.ly/e124A0 [16:50] bradleymeck: framlin? server side? you are serving the file so you declare the content-type... you cant really detect mime types generically and always be correct [16:50] dahankzter has joined the channel [16:50] jbpros has joined the channel [16:51] framlin: bradleymeck: that means, I have to have a "table" with informationn which file I serve is binary and wich is "text"? [16:51] timmywil has joined the channel [16:52] coreb has joined the channel [16:52] bradleymeck: I can keep asking questions until you give the whole scenario. what kind of table? what are the mappings, for file types? why do you need to know if it is binary? what do you define as "binary"? are you testing for mime-type? [16:52] framlin: is there any comon "mime-type"-file-suffix registry, I can use for this? [16:52] tykelewis has joined the channel [16:52] bradleymeck: file suffix table, somewhere... /digs [16:53] tykelewis has left the channel [16:53] rfay has joined the channel [16:53] bradleymeck: http://www.webmaster-toolkit.com/mime-types.shtml [16:54] bradleymeck: but if you are serving files as resources instead of raw downloads you may not want to use those [16:54] stride: isn't one in connect/express? [16:55] addisonj_: so, does jade have any shortcut way of setting the selected attribute for a select list? [16:55] abraham has joined the channel [16:56] framlin: bradleymeck: I have implemented a small http-server, some kind of couchapp, and want to write it as generic as possible. If there is e.g. a request for a file, I have to read the file from the disk and write it to the response. If I read the file with the wrong encoding and write this to the response, the browser shows an error. Only if I choose the right encoding, the data will correct displayed at the browser [16:56] pcardune has joined the channel [16:56] EvilPacket has joined the channel [16:57] bartt has joined the channel [16:58] _fat has joined the channel [16:58] stride: is felixge's node-couchdb still the go-to module for couch? [16:58] framlin: bradleymeck: what do you mean by "serving files as resources instead of raw downloads" [16:59] framlin: stride: I use cradle, seems to work fine [16:59] bradleymeck: meaning a file can have multiple content-types depending upon context, ie showing download popups [16:59] seivan has joined the channel [17:00] stride: framlin: ah, that one. okay, thanks [17:01] bradleymeck: anyone know if buffer's 'binary' encoding is really going away? I would prefer not to be using binary strings and buffers and strings just to do a regexp on a buffer [17:02] framlin: bradleymeck: the first time I saw the problem was, when the browser requested favicon.ico and did not show it, although I served it, because I used fs.readFile(..'utf-8' ...) for it [17:02] indiefan2a1 has joined the channel [17:03] framlin: but it seems that I understood, that there is no general solution [17:03] bradleymeck: just pipe streams if you dont want to have reencoding issues is what i do [17:04] langworthy has joined the channel [17:04] framlin: bradleymeck: ok, thanks!! I will google for stream piping with nodejs ;) [17:04] indiefan2a has joined the channel [17:05] sh1mmer has joined the channel [17:05] V1 has joined the channel [17:06] jacter has joined the channel [17:06] kmiyashiro has joined the channel [17:07] cwang has joined the channel [17:07] matjas has joined the channel [17:07] uudens has joined the channel [17:10] indiefan2a has joined the channel [17:11] uudens: hello, i'm trying to eval call a top-level function. in the top-level i have 'function test(){ console.log("test success") }' and inside a callback i'm trying to call this["test"](); but it throws an error saying there is no function called 'test' [17:11] uudens: i realize it's the wrong 'this' object, but how can i access the top-level object and eval a function call? [17:12] sledge: uudens: shouldn't global functions be in the environment at that point? [17:13] uudens: ok then i'll try process.env["test"](); [17:13] sledge: uudens: no, not _that_ global env... ;) [17:13] sledge: uudens: try just 'test()' [17:13] uudens: that works but i need to evaluate the function name from a string [17:14] sledge: uudens: eval(string) [17:14] sledge: :P [17:14] pr2012 has joined the channel [17:14] uudens: oh sweet that worked. for some reason i thought eval() was obsolete [17:15] uudens: and u had to use object["str to evaluate"] [17:15] uudens: tnx sledge [17:15] sledge: uudens: be careful though. [17:15] indiefan2a has joined the channel [17:15] sledge: uudens: i hope you'll be aware of the security implications. [17:15] uudens: yea yea [17:16] Corren has joined the channel [17:16] hij1nx has joined the channel [17:16] indiefan2a has joined the channel [17:18] pr2012: Aren't there performance concerns oo? [17:19] sledge: uudens: why don't you store a mapping somewhere? also, does your context not allow a user-supplied closure? [17:21] uudens: the word 'user' makes me confused when dealing with servers. not sure what you mean [17:21] uudens: im not at all experienced in server programming [17:21] blueadept has joined the channel [17:21] sledge: uudens: user as in the module/component/class/method/function that's interfacing with that particular piece of code. [17:22] thalll has joined the channel [17:25] mickaelz has left the channel [17:25] pyrony has joined the channel [17:26] mbrevoor_ has joined the channel [17:26] demastrie has joined the channel [17:28] uudens: i dont know [17:28] uudens: i see you are recommending against using eval [17:29] uudens: i think there's a nicer way to do what i need without using eval, i'll use that then [17:30] indiefan2a has joined the channel [17:30] mjr_: yikes, node segfault and me without my ulimit -c. [17:31] eventi has joined the channel [17:31] pcardune has joined the channel [17:32] demastrie has left the channel [17:33] cbiscardi has joined the channel [17:33] dmcquay_ has joined the channel [17:35] ruquay has joined the channel [17:35] mendel_ has joined the channel [17:35] perezd has joined the channel [17:36] patcito has joined the channel [17:37] techwraith has joined the channel [17:37] aphelion has joined the channel [17:37] jdavenport has joined the channel [17:37] mikedeboer has joined the channel [17:38] astropirate has joined the channel [17:39] joshontheweb has joined the channel [17:41] catshirt has joined the channel [17:42] dahankzter has joined the channel [17:42] Sebmaster has joined the channel [17:45] sh1mmer has joined the channel [17:45] joshontheweb has joined the channel [17:47] dguttman has joined the channel [17:47] a2800276 has joined the channel [17:48] Aikar: what happens when you try catch around a while statement, if an exception is thrown, does it break the while or does it continue on to next? ie try { while (x != null) { } } [17:48] ruquay: it will break out of the while. [17:48] Aikar: ok [17:49] ruquay: why, what are you trying to do? [17:49] ruquay: if it's something you could recover from after it breaks out of the while, you could save an index of how far you got, and do it again, but that'd be a bit kludgy. [17:49] Aikar: yeah thats what i mdoing, i just wanted to ensure the behavior [17:50] mc_greeny has joined the channel [17:50] cm|tmp has joined the channel [17:51] cm|tmp: How do I get the parameters (of the GET type) from the URL when running a HTTP server? [17:52] ruquay: have you looked at the http part of the documentation? [17:52] brez__ has joined the channel [17:52] ruquay: when you get a request, you can access request.url on the request object [17:53] ruquay: if you need to parse it, you can use the querystring library which is included. [17:53] cm|tmp: I tried using url.parse [17:53] Guest89491 has joined the channel [17:53] cm|tmp: got a weird error [17:53] Guest89491 has left the channel [17:53] ruquay: what error did you get? [17:53] ruquay: you should be using require("querystring") for URL parsing. [17:53] cm|tmp: http://pastebin.com/bvnX8CyJ [17:53] insin has joined the channel [17:53] cm|tmp: okay [17:53] cm|tmp: thanks [17:54] pdelgallego has joined the channel [17:54] ruquay: you've got an undefined error, so your "rest" object was not initialized. [17:55] cm|tmp: oh, okay [17:55] ruquay: http://nodejs.org/docs/v0.4.5/api/querystring.html [17:55] cm|tmp: thanks :) [17:55] ruquay: no prob. [17:56] Aikar: hmm, if an update makes something run twice as fast, would that be a 100% performance gain or would you say 200%? [17:56] chrislorenz has joined the channel [17:56] mattly_ has joined the channel [17:56] ruquay: i would have to go with 100%. [17:57] techwraith: 100% [17:57] tjholowaychuk: 100% if you are saying "gain" [17:57] ruquay: because if you choose 200%, then you would be saying that a 100% gain is going once as fast, which would make no sense at all [17:57] Aikar: yeah [17:57] Aikar: thats what i thought [17:57] guireisc has joined the channel [17:57] techwraith: you can say it's a 100% increase in performance, or you can say it's 200% of the current performance [17:58] ruquay: or, you can wait until you make it three times as fast, and then say that it's a 200% performance gain ;-) [17:59] Aikar: lol [17:59] abe has joined the channel [17:59] Aikar: actually, my commit msg is invalid, it really is a 200% gain lol [17:59] Aikar: i didnt run the benchmark on the same machine as original benchmark :P [18:00] Aikar: 3x as fast as original benchmark [18:00] mjr_: Currently being vexed by https://github.com/joyent/node/issues/849 [18:00] mjr_: HTTP client is still not quite right in 0.4 [18:01] tjholowaychuk: mjr_: it's pretty funky when you try and extend it too [18:01] abe: In mongoose, how do I access a prexisting database? I can create and access data in my node, but I can't access a database I already have [18:01] hwinkel has joined the channel [18:02] abe: I'm pointing the connection to 'mongodb://localhost/test' and want to access a collection called 'euler' which has all the project euler problems scrapped [18:02] harth has joined the channel [18:02] Aikar: hmm, if you do a force update in git, how do you properly pull it down on another end? [18:03] steffkes has joined the channel [18:03] fmarceau has joined the channel [18:04] copongcopong has joined the channel [18:04] mape_ has joined the channel [18:04] [1]Corren has joined the channel [18:04] Aikar: i did commit from 1 pc, pulled on desktopat home to run benchmark, then did an append commit and force push but now pc at home aint happy [18:04] thalll has joined the channel [18:05] stagas has joined the channel [18:05] ichilton_ has joined the channel [18:05] woltage has joined the channel [18:05] vilhonen has joined the channel [18:05] sth has joined the channel [18:06] Aikar: nvm, git reset to commit before, git fetch, git pull [18:06] rudebwoy has joined the channel [18:06] ralphholzmann has joined the channel [18:06] javaanse_jongens has joined the channel [18:06] eazyigz_ has joined the channel [18:06] Country has joined the channel [18:06] perezd has joined the channel [18:07] eazyigz_: is there a way for me to spawn the same child process again on stderr? [18:07] btipling has joined the channel [18:08] abe has joined the channel [18:08] killfill has joined the channel [18:08] tjholowaychuk: eazyigz_ just wrap your code in a function and call that function [18:08] EvanCarroll has joined the channel [18:08] eazyigz_: thx [18:10] saschagehlich has joined the channel [18:11] nefD has joined the channel [18:11] kmiyashiro has joined the channel [18:11] dabailey has joined the channel [18:12] ruquay: i am working on a server to communicate with gps devices, and it seems to me easier to emit a custom event on the tcp connection object than to wrap the connection in my own object. is there any reason not to do this? [18:12] DennisRasmussen has joined the channel [18:13] tfe_ has joined the channel [18:13] tfe_ has joined the channel [18:13] Tobsn: hey tjholowaychuk, you know what you should do, build in a module into express.js that automatically uploads static files to S3 [18:13] Tobsn: like a proxy script with extension filter [18:13] tilgovi has joined the channel [18:14] tjholowaychuk: i hate aws [18:14] tjholowaychuk: haha [18:14] tjholowaychuk: so no :p [18:14] Tobsn: lol. [18:14] Tobsn: if i really had use for it i would do it [18:14] Tobsn: i think its a cool idea but i would not need it [18:14] Tobsn: but i guess a lot of people would love it [18:15] Tobsn: any uploaded image could be hosted local and instantly mirrored to S3 after the first request [18:15] tjholowaychuk: yeah thats what we do currently [18:15] Tobsn: hmm you could even build in verioning of files [18:16] tjholowaychuk: either the css/js are used uncompressed, then compressed, then cloudfront [18:16] tjholowaychuk: whichever is available at the time [18:16] Tobsn: save the metadata of the upload in redis, check against the file every once in a while, if local is newer you initiate a new version [18:16] Rodtusker has joined the channel [18:19] tiemonster has joined the channel [18:20] JusticeFries has joined the channel [18:21] Blackguard has joined the channel [18:21] cbiscardi has joined the channel [18:24] mjr_: ryah: With the latest 0.4, I can reproduce issue 849 pretty regularly, the "Cannot call method 'emit' of undefined" one. Only with real data though, sadly. [18:25] dve_ has joined the channel [18:25] onre_ has joined the channel [18:26] tiemonster has joined the channel [18:26] Mrfloyd has joined the channel [18:26] jacobolus has joined the channel [18:27] a2800276_ has joined the channel [18:28] hackband has joined the channel [18:30] saikat_ has joined the channel [18:32] tiemonster has joined the channel [18:32] pcardune has joined the channel [18:33] bojicas has joined the channel [18:34] codetonowhere has joined the channel [18:34] pcardune_ has joined the channel [18:34] kmwallio has joined the channel [18:34] cbiscardi has joined the channel [18:35] orospakr has joined the channel [18:35] oscarkilhed has joined the channel [18:35] beawesomeinstead has joined the channel [18:35] beawesomeinstead has joined the channel [18:36] eirikb has joined the channel [18:36] eirikb: Hello. What is the best way to use now.js over several js-files? [18:37] eirikb: Server side [18:37] newy has joined the channel [18:38] TheDeveloper: require() on each of them? [18:38] eirikb: It seems I can either add everyone object to exports in the original file, or create a exports.init = function(everyone) and then use everyone inside init [18:39] eirikb: TheDeveloper: The thing is that I have to do var everyone = nowjs.initialize(httpServer); [18:39] jpld has joined the channel [18:40] mraleph has joined the channel [18:40] mraleph: mjr_: ping [18:40] mjr_: hey [18:40] pyrony has joined the channel [18:40] tiagoa_ has joined the channel [18:41] saschagehlich: http://www.railshotline.com/ <- so, who will do nodehotline? [18:41] mraleph: mjr_: hard to say from stack trace. GC barfed --- can be caused by something fixed can be caused by something new. [18:41] copongcopong has joined the channel [18:42] mraleph: mjr_: might be a memory corruption [18:42] mjr_: I can easily repro if you want me to try something else [18:42] mjr_: or a new V8 version person [18:42] mjr_: version perhaps, I mean [18:42] onre_ has joined the channel [18:42] mraleph: mjr_: yeah new V8 can be a good starting point [18:42] mjr_: Which version should I try? [18:42] mraleph: mjr_: latest trunk should be fine [18:42] mraleph: just checkout it [18:43] mraleph: mjr_: does it fail with debug version of node? [18:43] mjr_: not sure, but it happens under very heavy load. node_g is so slow that I'm sure it'd be testing different conditions [18:43] unomi has joined the channel [18:43] mjr_: I can try node_g though [18:43] unomi_ has joined the channel [18:44] mraleph: mjr_: ah. heavy load *sigh* I was thinking about turning heap verification on (--verify-heap) but that will make every GC like gazillion times slower [18:45] mbrevoort has joined the channel [18:45] Charuru has joined the channel [18:45] mjr_: odd that this works fine on 32 bit, but dies on 64 bit [18:45] V1|IR|PLAYIN|CSS: saschagehlich: you might as well set up a skype group calll [18:46] saschagehlich: V1|IR|PLAYIN|CSS: I thought you have no time for playing stuff :P [18:46] christiansmith has joined the channel [18:46] saschagehlich: :D [18:46] V1: saschagehlich: My old clan needed me, good to kill a bit of time [18:47] mscdex: here i thought you were playing around with cascading style sheets [18:47] saschagehlich: hehe... let's do a short match on nodecamp [18:47] mscdex: ;-) [18:47] saschagehlich: *at [18:47] mraleph: mjr_: well it's not very odd. I recall pretty nasty bug in one of the nodejs packages I helped to debug once. Somebody was passing a pointer to int into some library which inside casted it to (void**) and then treated it as a pointer to a pointer [18:47] Bonuspunkt: css @ nodecamp? :D [18:47] saschagehlich: sure, why not [18:48] V1: Why not, there are geeks, with laptops + internet == free lan party [18:48] mraleph: mjr_: so it was causing memory corruption on x64 but worked just fine on ia32 [18:48] jonaslund: ptrdiff_t for the win [18:48] saschagehlich: just give me some time to do a css server in node... just to make it kind of topic-related [18:48] mraleph: mjr_: and of course V8 has differences on ia32 and x64 so it might be an actual bug in V8 [18:48] jonaslund: (most reliable pointer sized integer if i'm not misstaken) [18:48] mjr_: mraleph: hmm, we are using one C++ module, but I can try it without [18:49] Bonuspunkt: wouldn't Q3 be easier do the fact the source is available? [18:49] mscdex: heh [18:49] V1: saschagehlich: If you have a working node-driven css server by the time node camp starts, i'll buy you a beer ;D [18:49] saschagehlich: V1: I don't drink beer. I need jägermeister. [18:49] dies_el has joined the channel [18:49] V1: ._. that would be fine as well saschagehlich [18:50] mraleph: mjr_: that's pretty much all I can recommend. this stack trace is so generic I can't really deduce anything from that. [18:50] teemow has joined the channel [18:50] dmcquay has joined the channel [18:51] Tobsn: http://adrianotto.com/2010/08/dev-null-unlimited-scale/ [18:51] jonaslund: mraleph: hey, is the guys who did chromedevtools for eclipse on irc ? [18:51] mraleph: jonaslund: I doubt that. [18:51] losing has joined the channel [18:52] postwait has joined the channel [18:52] mraleph: jonaslund: is there are any question? [18:53] mraleph: *fuuuu* are there any questions [18:53] ajashton has joined the channel [18:53] jonaslund: mraleph: well i was kinda curious about if there is plans for it and how it does syncing to source (I've not really had time to delve into the sources for it since i have other stuff to do) [18:53] jelveh has joined the channel [18:53] jonaslund: mraleph: since it doesn't seem to sync breakpoints to the eclispe workspace when debugging node apps [18:53] jelveh has left the channel [18:54] jonaslund: mraleph: instead you get this "virtual" workspace like when debugging web pages [18:54] jonaslund: but that means re-setting breakpoints after restarts [18:54] mraleph: jonaslund: I think you can send all your questions to Peter Rybin -> https://groups.google.com/group/nodejs/browse_thread/thread/7e6bdd4df29570fb/fdddb5327f56ee25 [18:54] cm|tmp: How do I get POST headers on a node.js http server? [18:55] robhawkes has joined the channel [18:56] mjr_: mraleph: I was wrong, this one isn't using any native code modules. Just node and V8. I'll try node_g just for fun, and then try the latest V8 [18:56] mraleph: ok [18:56] TheDeveloper: cm|tmp: in req.headers? [18:56] cm|tmp: ...I'm an idiot [18:58] orospakr has joined the channel [18:59] jonaslund: mraleph: ooh.. that video in the thread showed something about the source-mappings i had missed [18:59] jonaslund: mraleph: i'll test that.. maybe that needs to go into the wiki [19:01] indutny has joined the channel [19:01] jonaslund: mraleph: i was assuming some automatic mapping being borked on my windows builds [19:01] deedubs has joined the channel [19:01] dmcquay_ has joined the channel [19:02] sirkitree has joined the channel [19:03] V1: Finally, dyndns + port forwarding is working again [19:05] broofa has joined the channel [19:05] sledge: V8 JavaScript: Now with fruits! [19:06] sledge: :-D [19:07] bradleymeck has joined the channel [19:07] yozgrahame has joined the channel [19:08] mjr_: mraleph: caught it under node_g! [19:09] rburhum has joined the channel [19:10] djktno has joined the channel [19:10] mjr_: oh, but it's in a totally different place. Memory corruption. [19:10] sunblush has joined the channel [19:11] aheckmann has joined the channel [19:11] aheckmann_ has joined the channel [19:12] marlun: Any tips on what to use if I want to use ejs like templates on the client side too? Is there allready a tool which compiles ejs templates and makes them available client-side? [19:13] jonaslund: mjr_: added v8 debugging options ? [19:13] mraleph: mjr_: so what did happen? [19:13] ezmobius has joined the channel [19:13] mjr_: mraleph: it segfaulted in a totally different spot, in util.inspect() [19:13] mraleph: mjr_: hmm. [19:13] mraleph: can I see backtrace? [19:14] mjr_: sure [19:14] orospakr has joined the channel [19:14] pcardune_ has joined the channel [19:14] tbranyen: tjholowaychuk: whats that template engine that doesn't use eval again? [19:14] jonaslund: isn't there any option to enable memory barriers in the V8 gc under node ? [19:14] mjr_: mraleph: https://gist.github.com/98a5a9a09917fefbce98 [19:15] jonaslund: memory barriers and validation of them can be shit slow but invaluable for debugging [19:16] mjr_: jonaslund: for sure [19:16] mraleph: mjr_: mjr@prod-04:~/node_router$ gdb /usr/local/bin/node core <- forgot _g [19:16] jonaslund: i don't know how many C++ bugs i've caught with that [19:16] mjr_: whoops [19:16] zylo has joined the channel [19:17] CiRlE has joined the channel [19:17] saikat has joined the channel [19:17] mraleph: jonaslund: what do you mean by "memory barriers"? [19:17] tjholowaychuk: tbranyen: none of them eval() [19:17] mjr_: mraleph: https://gist.github.com/f5811b58adefa1ac34cc [19:17] tjholowaychuk: tbranyen: they use with() [19:17] mjr_: barriers like guard malloc [19:17] jonaslund: mraleph: placing deterministic "garbage" between allocations and having routines that validates the garbage at specific intervals,etc [19:18] cloudhead has joined the channel [19:18] roman_ has joined the channel [19:18] tbranyen: tjholowaychuk: huh most of them use eval [19:18] tbranyen: at least from what i've seen [19:18] jonaslund: mraleph: when we were doing our games we usually validated "once per frame".. and once we found out when bugs happened we started adding manual validations to narrow down the scope until we found it [19:18] tbranyen: jquery templates especially [19:18] tjholowaychuk: tbranyen: I havent seen any that do [19:18] tjholowaychuk: :s [19:18] tjholowaychuk: sketchy [19:18] mjr_: mraleph: want me to run it again under node_g, or try the latest V8? [19:18] mjr_: Takes a while grinding along in node_g to repro [19:18] jonaslund: mraleph: slow as shit but got things done one you knew how to crash things [19:18] tbranyen: there was a templating framework you mentioned before tho [19:19] tbranyen: wasn't in JS [19:19] tbranyen: mindmelt [19:19] tjholowaychuk: tbranyen: not sure what you are referencing haha. I dont know any that eval though, jade doesnt, ejs doesnt [19:19] mraleph: mjr_: yeah, try the latest V8, I'll try to mediate on this stacktrace [19:20] mraleph: jonaslund: well there is --verify-heap do verify the heap and there are some things to cause GC more often. [19:20] mraleph: usually it's enough [19:20] V1: I don't think jq templ eval as well, they use Function() to generate the code, not eval tbranyen [19:21] mraleph: mjr_: ah, oh. this does not look very good. [19:21] mjr_: it's just all corrupted, right? [19:21] mraleph: mjr_: no. it's zapped with kFromSpaceZapValue [19:21] jonaslund: mraleph: ah ok.. the node --v8-options flag didn't list it [19:21] tbranyen: V1: its basically the same thing, very subtle difference [19:21] mraleph: mjr_: that means that GC forgot to update some pointer [19:22] mjr_: oh shit [19:22] mraleph: mjr_: after collection [19:22] tbranyen: its like saying the difference between new Function and eval for JSON->Object [19:22] mraleph: mjr_: I am trying to remember whether we fixed something like that recently or not. [19:23] Jonasbn_ has joined the channel [19:23] cloudhead has joined the channel [19:23] RusAlex has left the channel [19:23] mjr_: So I checked out v8 from svn and put it in the node deps dir. Is this the right version: [19:23] mjr_: { node: '0.4.8-pre', v8: '3.3.1', ares: '1.7.4', ev: '4.4', openssl: '0.9.8k' } [19:23] binaryjohn has joined the channel [19:23] roman_: Quick question for node-oscar: Shouldn't this code write all online contacts to res (http response)? http://nopaste.info/7b1a568407.html [19:24] mraleph: mjr_: let me check [19:24] Tobsn: anyone an idea how to change the timezone in mongodb? [19:24] mraleph: mjr_: yeah [19:26] postwait: Tobias|: I don't believe mongo supports timezones. [19:26] postwait: all times are stored a ms since epoch (UTC) [19:26] onre_ has joined the channel [19:27] ericnakagawa has joined the channel [19:27] springmeyer has joined the channel [19:27] Tobsn: weird [19:27] Tobsn: if i do date int he shell its actually showing me system time [19:28] Tobsn: but if i save its UTC [19:28] Tobsn: well or at least if i retrieve it i get UTC [19:28] Tobsn: > x[0]._id.getTimestamp() [19:28] Tobsn: ISODate("2011-04-26T19:20:35Z") [19:28] Tobsn: pretty weird [19:29] mscdex: roman_: looks right to me, except contacts is misspelled on line 2 [19:29] cm|tmp: How do I retrieve POST data? All the information I've found on the internet is out of date [19:29] mscdex: cm|tmp: listen for 'data' events on the request when it comes in [19:29] cm|tmp: uh [19:29] cm|tmp: okay [19:30] mjr_: mraleph: OK, it's grinding away with node_g on V8 3.3.1 [19:30] mscdex: cm|tmp: buffer the chunks and then do something with them on 'end' [19:30] cm|tmp: thanks [19:30] mraleph: mjr_: the code in that place looks pretty wierd. I am trying to grok whether it's correct or not [19:30] joeshaw has joined the channel [19:30] mjr_: mraleph: just crashed, standby for trace [19:31] indexzero has joined the channel [19:31] roman_: mscdex: d'oh. Thanks, that fixed it :D [19:31] mscdex: cm|tmp: although, if you're accepting file uploads in your POST, you may want to use something like node-formidable instead of buffering it all [19:31] mscdex: roman_: :) [19:31] cm|tmp: Nah no files [19:31] mjr_: mraleph: this time no helpful info from node_g, but here's the stacktrace: https://gist.github.com/929e9d63117a3ce8a6da [19:32] cm|tmp: I'm getting this, how do I turn it into something useful? http://pastebin.com/w6SnwLSw [19:32] cm|tmp: IS their anything built in, or do I have to regex it? [19:32] mraleph: it the same. I actually see the bug in that code [19:32] mraleph: it's the same [19:32] mraleph: standby for the patch [19:33] blueadept: anyone got this error trying to install npm canvas? Error: canvas@0.5.4 preinstall: `node-waf configure build` [19:33] mbrevoort has joined the channel [19:33] tjholowaychuk: blueadept: npm logs the commands somewhere [19:33] tjholowaychuk: should give you a better idea of what is up [19:33] mscdex: cm|tmp: oh it's multipart.... well then i'd still use node-formidable, since it handles multipart [19:33] mscdex: cm|tmp: https://github.com/felixge/node-formidable [19:33] cm|tmp: Wait, I forgot to remove that! [19:33] cm|tmp: XD [19:33] mscdex: :) [19:33] blueadept: alright, i'll take a look [19:34] mraleph: mjr_: https://gist.github.com/942933 [19:34] cm|tmp: It's all working now, thanks [19:34] mscdex: cm|tmp: cool [19:34] Tobsn: func(req,res){if(req.method=='POST'){var b;req.on('data', function('d'){b+=d});request.on('end',function(){var p = qs.parse(body)})}} [19:35] Tobsn: var q = require('querystring'); [19:35] mraleph: mjr_: I should train my GCMole static analyzer to catch this kind of bugs. *sigh* [19:35] echong has left the channel [19:35] daekano has joined the channel [19:35] mscdex: Tobsn: b is undefined to start with [19:35] bingomanatee has joined the channel [19:36] mscdex: Tobsn: and you have 'd' instead of d [19:36] mscdex: :p [19:36] mjr_: mraleph: I will apply and try again [19:36] Tobsn: shut up [19:36] Tobsn: ;) [19:36] mraleph: mjr_: yep, thanks [19:36] Tobsn: put a node testing bot in here and we're talking [19:36] Tobsn: :P [19:37] mscdex: and if i really wanted to be nitpicky like some are, i'd say don't do concatenation in the 'data' event. use an array and push to that and then join on 'end' [19:37] mscdex: :P [19:37] cm|tmp: <3 node.js XD [19:37] Tobsn: unc(req,res){if(req.method=='POST'){var b='';;req.on('data', function('d'){b+=d});request.on('end',function(){var p = qs.parse(b)})}} [19:37] saschagehlich: mscdex: concatenation is faster. [19:37] Tobsn: there ya go [19:37] mscdex: saschagehlich: tell that to some people in here hehe [19:37] Tobsn: zomg [19:38] blueadept: tj: found it, was missing libcairo2 [19:38] yozgrahame has joined the channel [19:38] rburhum has left the channel [19:38] mscdex: there oughta be a jsperf to compare the two [19:38] Tobsn: function(req,res){if(req.method=='POST'){var b=[];req.on('data', function('d'){b.push(d)});request.on('end',function(){var p = qs.parse(b.join());})}} [19:38] onre_ has joined the channel [19:38] V1: no node benchmark, no proof [19:39] Tobsn: wait wrong [19:39] mscdex: heh [19:39] mraleph: even benchmarks sometimes don't prove anything :-) [19:39] mscdex: true [19:39] V1: yuno using `benchmark` module in node [19:39] cloudhead has joined the channel [19:39] Tobsn: function(rq,r){if(r.method=='POST'){var b=[];r.on('data', function('d'){b.push(d)});r.on('end',function(){var p=q.parse(b.join());})}} [19:39] V1: but load testing proofs everything ;) [19:39] Tobsn: bam! [19:40] Tobsn: ;) [19:40] markwubben has joined the channel [19:40] mscdex: Tobsn: r is the response, not the request ;) [19:41] mscdex: and you still have 'd' there :P [19:42] mscdex: alright, time to get back to youknow dev :D [19:42] Tobsn: DAMNIT [19:42] demet8 has joined the channel [19:42] NuckingFuts has joined the channel [19:42] Tobsn: nevermind [19:43] Tobsn: fuck it. [19:43] Tobsn: haha [19:43] Tobsn: anyone ever looked up what CAPTCHA means? ;) [19:43] Tobsn: TIL its fucking retarded. [19:43] cm|tmp: It's hilarious XD [19:44] hij1nx has joined the channel [19:44] V1: Completely Automated Public Turing test to tell Computers and Humans Apart [19:45] ErikCorry2: mraleph: That's some nasty mixed Handle non-Handle code :-( [19:45] ErikCorry2: mraleph, That's some nasty mixed Handle non-Handle code :-( [19:46] V1: well well well, this a new log message that I haven't seen before `This type of response MUST NOT have a body. Ignoring write() calls` [19:46] mraleph: ErikCorry2: yeah. you can LGTM my CL if you want too :-) [19:46] V1: Is it something that node spams in to my logs? [19:47] techwraith: V1: Are you using any 3rd party modules that might print it? I've never seen it before [19:47] m64253 has joined the channel [19:48] arpegius has joined the channel [19:48] ErikCorry2: mraleph: URL? [19:49] onre_ has joined the channel [19:49] Venom_X has joined the channel [19:49] mscdex: V1: https://github.com/joyent/node/blob/master/lib/http.js#L594 [19:50] ajashton has left the channel [19:50] mraleph: ErikCorry2: http://codereview.chromium.org/6905035/ [19:50] mjr_: mraleph: is that patch against 3.3.1, or some other version? I can't match up that line [19:50] zzak has joined the channel [19:50] smrchy has joined the channel [19:50] mraleph: mjr_: ah. it's against bleeding_edge. let me repatch it [19:51] V1: mscdex: thanks, there should be console.trace() before that, so we can actually see where the error is thrown [19:51] V1: I still have no clue where it came from :p [19:51] mscdex: heh [19:53] AntelopeSalad: can someone take a quick look at this? i'm getting a socket hang up error http://pastie.org/1836557 [19:53] mraleph: mjr_: https://gist.github.com/942983 [19:53] mraleph: mjr_: it does not look much different though [19:54] F1LT3R has joined the channel [19:54] mraleph: ErikCorry2: thanks [19:54] mjr_: mraleph: oh, sorry, I transposed the line numbers when manually applying. [19:55] onre has joined the channel [19:56] ErikCorry2: mraleph: It's obviously correct now :-) [19:58] herbySk has joined the channel [19:58] chrislorenz has joined the channel [19:59] Nexxy has joined the channel [19:59] Nexxy has joined the channel [20:01] ericnakagawa has joined the channel [20:02] codetonowhere has joined the channel [20:02] V1: Whee, just used the new github fork & edit button to add the console.trace() to the http.js :D [20:03] jesusabdullah: word [20:04] mjr_: mraleph: that patch looks to have fixed it. I cannot reproduce with either node or node_g now. [20:04] mjr_: Thanks! [20:05] mraleph: mjr_: great, I am glad it helped. [20:06] mraleph: I am going offline then ;-) [20:07] dyer has joined the channel [20:08] springmeyer has joined the channel [20:08] springmeyer has left the channel [20:09] youknow has joined the channel [20:09] onre_ has joined the channel [20:10] youknow has joined the channel [20:11] dlkinney has joined the channel [20:12] bartt has joined the channel [20:14] heavysixer has joined the channel [20:14] jetienne: http://yfrog.com/hs1iqp ryah in a new adventure :) [20:14] onre_ has joined the channel [20:14] vipaca has joined the channel [20:14] vipaca has joined the channel [20:15] bingomanatee: ACTION shoves http://wonderlandlabs.com/wll_drupal/node/283 up the self-satisfied asses of all the smug tableless layout people. [20:17] jbpros has joined the channel [20:17] arpegius has joined the channel [20:20] mikeal has joined the channel [20:20] techwraith: bingomanatee: Dude, your site is way too wide for my screen. Perhaps consider a fluid layout? [20:20] Bonuspunkt has joined the channel [20:21] bingomanatee: Pehaps you should consider a wider screen? :D and it is fluid ... thats known as "Spillover " :D :D [20:22] aberry has left the channel [20:22] [[zzz]] has joined the channel [20:22] techwraith: I should not have to full screen my browser window on a 15" MacBook Pro to view a site, lol [20:22] EyePulp: wow - that site is... retina scorching. [20:22] EyePulp: in layout [20:22] EyePulp: =) [20:22] techwraith: lol, which one, the screenshot or the blog? [20:22] pandeiro has joined the channel [20:23] bartt has joined the channel [20:23] EyePulp: admittedly, the content is sort of trolling for a response, so it makes it less easy to forgive when the "fit" of everything is so unconcerned with user experience. [20:24] yozgrahame has joined the channel [20:25] techwraith: EyePulp++ [20:25] v8bot: techwraith has given a beer to EyePulp. EyePulp now has 3 beers. [20:25] EyePulp: I have no room to talk, my personal site isn't fluid either. Just a bit narrower. [20:27] Remoun has joined the channel [20:28] ericnakagawa has joined the channel [20:30] beejeebus has joined the channel [20:30] bingomanatee: clever idea for a clever chap- develop a web content viewer where you can rotate the page and see z-depth expressed visualy [20:31] techwraith: Whoa, that sounds awesom [20:31] unomi: 3d gives me a head ache [20:31] techwraith: *awesome [20:31] bingomanatee: technowraith - if you don't have a cinema/HD display you aren't my target market. People hanging out at starbucks can't afford my rates :D [20:32] techwraith: lol [20:33] sh1mmer has joined the channel [20:33] bingomanatee: So if I want to run a subprocess in PHP (editorial > dev.null) and get the results from a node script how do I do it? [20:34] broofa has joined the channel [20:34] bingomanatee: ACTION is going to redo Wonderland labs in Unity, where each story is a particle emitter that works on words.  [20:34] teemow has joined the channel [20:35] bingomanatee: ACTION will show you TABLELESS LAYOUT! BWA HA HA HA HA! [20:36] unomi: bingomanatee, http://3d.xkcd.com/880/ [20:37] bingomanatee: thx [20:37] bingomanatee: Technically 4D - future tense implies the passage of time... [20:37] CiRlE has joined the channel [20:37] coreb has joined the channel [20:40] jamescarr_ has joined the channel [20:40] arcanearts101 has joined the channel [20:41] brettgoulder has joined the channel [20:42] CiRlE has joined the channel [20:45] chrislorenz has joined the channel [20:46] onre_ has joined the channel [20:46] mattly_ has joined the channel [20:47] CiRlE has joined the channel [20:48] MikhX has joined the channel [20:49] insin: mmm... lovely npm publish [20:50] mendel_ has left the channel [20:50] cloudhea1 has joined the channel [20:52] ericnakagawa has joined the channel [20:52] bingomanatee: If you are in express and you just want to dump raw data out intead of using a template how do you do that? [20:53] tjholowaychuk: "raw data" ? [20:53] path[l] has joined the channel [20:53] path[l]: has anyone here used jquery with driverdan's xhr ? [20:54] brez__ has joined the channel [20:54] bingomanatee: Yeah I have a contorller action that I want to emit an image. [20:54] CiRlE has joined the channel [20:54] tjholowaychuk: bingomanatee: just write to the socket like you normally would [20:54] eee_c has joined the channel [20:54] bingomanatee: I'm getting raw data from PHP GL (Yes I know there is a node equiv - I am using subcon's) [20:55] bingomanatee: response.write? [20:55] tjholowaychuk: yeah [20:55] bingomanatee: thx [20:57] xeodox has joined the channel [20:57] arpegius has joined the channel [20:58] newy has joined the channel [20:58] zakabird has joined the channel [20:59] chrislorenz has joined the channel [20:59] CiRlE has joined the channel [21:00] stonebranch has joined the channel [21:00] indexzero has joined the channel [21:01] pedrobelo has joined the channel [21:02] mendel_ has joined the channel [21:02] JulioBarros has joined the channel [21:02] k_89 has joined the channel [21:02] copongcopong has joined the channel [21:04] BillyBreen has joined the channel [21:04] CiRlE has joined the channel [21:07] k_89: hi...i have a question ...its about storing data in .txt/.js/.bin /watever files as json objects instead of database tables, just read the file and store the data in a json obj etc ... with node.js, the whole file-locking thing would be automatically taken care of, what can be the disadvantages of such an approach over db's [21:08] kaueraal has joined the channel [21:08] stride: that stuff is locked, nobody takes care of revisions, ... [21:08] Bwen has joined the channel [21:09] k_89: stride, you talking to me?? [21:09] CiRlE has joined the channel [21:10] markwubben has joined the channel [21:10] techwraith: k_89: Yeah, you'd only be able to write to the file one at a time. Concurrent DB writes wouldn't really work. [21:10] mraleph has joined the channel [21:10] akavlie has joined the channel [21:10] stride: yeah, databases offer a bit more advantages than just "put stuff in and get stuff out". you'd miss out on all of that [21:11] stride: if you want something that's usable in that way (and have technical reasons for it) you might want to go with one of the nosql solutions, couchdb or something [21:11] flippyhead_ has joined the channel [21:11] ardcore has joined the channel [21:11] ardcore has left the channel [21:11] techwraith: couchdb, mongo, even redis [21:11] akavlie: Odd problem here: as soon as I put a doctype on the page for my node.js project, CSS isn't applied to the page. Anyone seen something like that before? [21:11] k_89: techwraith, stride, thanx [21:12] techwraith: stride++ [21:12] v8bot: techwraith has given a beer to stride. stride now has 1 beers. [21:12] stride: k_89: take a look at chaos (it's on npm) though. it's a key value store thingy that stores json in files if you're interested in the technical side [21:13] k_89: sure [21:13] eazyigz__ has joined the channel [21:13] flippyhead_ has joined the channel [21:14] eazyigz__: Don't know if this is a server question more than Node.js: but when my ssh session closed due to timeout, apparently the running node program closed too. Is that normal? [21:14] EyePulp: eazyigz_: yes [21:14] eazyigz__: EyePulp: what steps can I take to keep node running [21:14] dotcomstu: eazyigz__: you can run it with nohup [21:14] sh1mmer has joined the channel [21:14] eazyigz__: like when I go home! [21:15] kmiyashiro: what's a free couch db host? [21:15] eazyigz__: oh, nohup [21:15] eazyigz__: thanks [21:15] EyePulp: you need to launch your node service as a daemon, or with supervisor, or upstart, or nohup [21:15] DrDoom has joined the channel [21:15] DrDoom: Hey guys. [21:15] sh1mmer: hi [21:16] DrDoom: I want to try and write a simple firewall in native node. [21:16] flippyhead_ has joined the channel [21:16] sh1mmer: sounds nea [21:16] kaueraal has joined the channel [21:16] sh1mmer: neat [21:16] DrDoom: The first step, is how do I block all traffic on all interfaces for UDP, TCP, and ICMP. Basically clone of a REJECT [21:16] bradleymeck: akavlie gist the code [21:16] kaueraal has joined the channel [21:17] DrDoom: I know with net and dgram you have to explicitly bind on an ip address and port [21:17] unomi has joined the channel [21:17] Bwen: anyone knows node C++ enough to help me reformat this example https://github.com/isaacs/node-async-simple/blob/master/nas.cc I would like to take off the namespace and put the prefix to the right place so as a newb I know whats what... i'd help me learn to differenciate C++/V8/Node etc... [21:17] sh1mmer: right [21:17] wink_: DrDoom: you're not going to be able to do that solely in node [21:17] stride: DrDoom: is that even possible in userspace? [21:18] bradleymeck: drdoom you are looking at some OS level stuff, that generally cant be done in true userspace (though you might get same effect w/ something like iptables) [21:18] akavlie: bradleymeck, https://gist.github.com/943173 [21:18] akavlie: that's the index.html [21:18] DrDoom: Sure, I know about iptables, I was wondering if it is feasible, to write a simply clone in node [21:18] wink_: your options are to shell out to iptables/ipf/etc or write a driver [21:18] akavlie: take away the DOCTYPE and it works fine. [21:19] bradleymeck: akavlie node side too [21:19] akavlie: bradleymeck, server JS? [21:19] bradleymeck: ya if you are serving it. [21:20] akavlie: bradleymeck, https://gist.github.com/943181 [21:20] DrDoom: So it is even possible to write node code that simply blocks all traffic on all interfaces? That would be the first step. [21:20] eazyigz_: if I run node with nohup, i do not see stdout [21:20] akavlie: bradleymeck, looks a bit messy as it's compiled from CoffeeScript. [21:20] eazyigz_: I'm not sure what is the proper way to run node with nohup... [21:21] wink_: DrDoom: not stock, no. [21:21] wink_: DrDoom: you could write a binding to libnetfilter_queue that could probably do it [21:21] wink_: but you'd need a binding for it [21:21] lessthanzero has joined the channel [21:22] stride: akavlie: ".css".substr(-4) != "css", your mime types might be wrong which might cause issues outside of quirks mode [21:22] DrDoom: Right, bummer. Yeah iptables is a headache, was thinking of making a simple alternative in node, with a built in RESTful API [21:22] stride: try if a -3 down there helps [21:22] wink_: DrDoom: the right way to go is to bind up libnetfilter and run with that [21:22] stride: DrDoom: there are several "lightweight" frontends to iptables [21:23] guireisc- has joined the channel [21:23] wink_: a binding to libnetfilter would be awesome though [21:23] wink_: :> [21:24] Me1000 has joined the channel [21:24] stride: wink_: :) [21:24] DrDoom: Yeah I know nothing about libnetfilter that is C right [21:24] yozgrahame has joined the channel [21:24] wink_: DrDoom: yes [21:24] mscdex: iddqd [21:24] wink_: this isnt your doom window [21:25] mscdex: :-D [21:25] wink_: <3 [21:25] piscisaureus: mraleph: here? [21:25] mraleph: kind of [21:25] devrim: hey guys what was the way to npm install something globally ? so it's availabe asa command line tool ? [21:26] wink_: stride: http://www.netfilter.org/projects/libnetfilter_queue/doxygen/nfqnl__test_8c_source.html [21:26] devrim: npm install now -g ? [21:26] DrDoom: is libnetfilter-queue specific to a flavor or linux, or does it work on all distros [21:26] piscisaureus: mraleph: I take that for a yes :-) [21:26] wink_: DrDoom: it works on all kernels > 2.6.14 [21:26] brendanjerwin has joined the channel [21:26] techwraith: devrim: just add a `-g` [21:26] devrim: thx [21:26] mraleph: piscisaureus: :-) [21:27] wink_: it allows you to get callbacks from the ip stack inside the kernel so you can do all the iptable-y things with them [21:27] DrDoom: Humm ok, I'll take a gander at it a bit, but its probably beyond my pay grade [21:28] davida has joined the channel [21:28] wink_: throughput aside, a node binding would probably open up a number of neat things you could do [21:28] wink_: since it'll also allow you to modify payloads [21:28] stride: and as a lazy-aside: if you don't want to bother with this, just pipe generated rules into iptables :) [21:28] wink_: or that [21:28] wink_: ACTION booooos [21:28] piscisaureus: mraleph: So node uses SetIndexedPropertiesToExternalArrayData for buffers [21:29] piscisaureus: mraleph: is it possible to have multiple ranges? [21:29] mraleph: mraleph: what do you mean? [21:30] mraleph: lol [21:30] mraleph: I am talking to myself [21:30] fly-away has joined the channel [21:30] akavlie: stride, you're exactly right, that was the issue. Thanks!! [21:31] piscisaureus: mraleph: can I allocate 2 regions of 1000 bytes of memory and then have buf[0] ... buf[999] refer to the first block of memory and buf[1000]...1099 refer to the second [21:31] mraleph: piscisaureus: no [21:31] stride: akavlie: no problem :) [21:31] piscisaureus: mraleph: but v8 does something like that for concatenated strings internally, right? [21:31] mraleph: piscisaureus: well. kind of. [21:31] balaa has joined the channel [21:31] cgcardona has joined the channel [21:32] mraleph: piscisaureus: I think as soon as you index it -> V8 flattens the whole string [21:32] xeodox: Hey guys...do you know of any modules that handle Facebook Connect on node.js? [21:32] mbrevoort has joined the channel [21:32] piscisaureus: mraleph: then how does that work with array? e.g. a=[]; a[0]=4; a[34534534] = 3; [21:33] stride: xeodox: there was a blog post on howtonode about fb connect last year iirc [21:33] mraleph: piscisaureus: internally it is hashtable [21:33] mraleph: when it's sparse [21:33] gonsfx has joined the channel [21:33] brez__: xeodox: http://search.npmjs.org/ [21:33] iFire has joined the channel [21:34] stride: xeodox: http://howtonode.org/facebook-connect -> http://github.com/dominiek/node-facebook [21:34] cgcardona: last year there was a hackathon where someone created an app that was a bunch of pixels on the screen and the goal was to get everyone to move their pixel into the shape of an icon that appeared. Does anyone remember what that was called or if the url is still up? [21:34] xeodox: @stride: that was published last year, and facebook changed a lot of stuff. I want to use their oauth 2.0 version, instead of the page you sent me, which uses xd_receiver.htm crap [21:35] dmcquay has joined the channel [21:35] Postmodernist has joined the channel [21:35] piscisaureus: mraleph: is it possible to provide an "out-of-range" hook for externalarraydata lookups? [21:36] Postmodernist: What is the name of the library that is required when you compile node.js normally, i.e. without the --without-ssl option? [21:36] Postmodernist: ssl dev or something [21:36] astropirate has joined the channel [21:36] AntelopeSalad: is there an http.request response event that resembles the functionality of "when everything is complete"? i do not see it in the api docs [21:36] mjr_: cgcardona: that was called "swarmation" [21:36] stride: cgcardona: the knockout url is down, http://swarmation.com/ is the new one [21:36] mjr_: Part of node knockout [21:36] mraleph: well if you set a prototype with indexed interceptor it should in theory capture out of index access [21:36] mraleph: but do not expect that be fast [21:37] cgcardona: mjr_: stride ah yeah. node knockout. thanks :) [21:38] mscdex: AntelopeSalad: the 'end' event? [21:38] cgcardona: that is so freakin epic :D [21:38] piscisaureus: mraleph: I guess that if I call SetIndexedPropertiesToExternalArrayData to remap the data range often that will fuck up performance as well ... ? [21:38] wink_: drdoom: it looks like a binding to that library wouldnt be too bad, i may have a go at it once i get some free time [21:39] stride: Postmodernist: libssl-dev on debian iirc [21:39] mraleph: no that should be fine [21:39] wink_: it'd be pretty awesome [21:39] astropirate: How can I set a cookie with Express? [21:39] dmcquay_ has joined the channel [21:39] Postmodernist: thnx! [21:39] tjholowaychuk: astropirate: res.cookie(key, val, opts) [21:39] brez__ has left the channel [21:39] astropirate: tjholowaychuk, awesome! thanks [21:40] Postmodernist: We're building a trading platform using machine learning to trade on CDOs. Goldman Sachs will be so envious! :D [21:40] openpercept has joined the channel [21:40] moshe: they will just buy you out :) [21:41] Postmodernist: Some is written in Common Lisp, how can we best integrate it with node.js? a v8 binding? [21:41] stride: with their weird dedicated realtime hardware? [21:41] Postmodernist: Time isn't quite as critical with our strategy. L:) [21:42] jonaslund: Postmodernist: there is a scheme to JS compiler written by the "hop" guys [21:43] Postmodernist: And it works with node.js inline? [21:43] gonsfx: when im accessing a mongoose model inside an express-app controller function (say, a user by email) and no result is found, i want to pass control by using next() [21:43] gonsfx: i can't do if (!user.length) next(); res.render('user.jade'); but need to use if/else so i dont get "can't set headers after they are sent" error. can someone explain why? [21:43] piscisaureus: mraleph: So calling SetIndexedProperties.. does not make crankshaft recompile buffer accesses? [21:43] piscisaureus: mraleph: And is it also not possible to map a range that does not start with 0, e.g. map a[1000] ... a[2000] to a buffer? [21:43] piscisaureus:  [21:44] mraleph: yes it is not possible [21:44] piscisaureus: mraleph: :'-( [21:44] mraleph: though it is obviously possible to map 1000 into 0 and 2000 into 1000 [21:45] piscisaureus: mraleph: yes obviously [21:45] mraleph: why? [21:45] mraleph: why do you need such a strange features? [21:45] piscisaureus: mraleph: suppose I want to join two buffers together without reallocating and copying both to a new memory space [21:46] piscisaureus: mraleph: the obvious trick would be to tell v8 about both of them [21:46] brownies has joined the channel [21:46] Venom_X_ has joined the channel [21:46] piscisaureus: but if that can't be done [21:46] piscisaureus: I could map just one of them, then if the user makes an out of bound access map the other one [21:47] piscisaureus: since in most situations buffers would be accessed linearly that wouldn't be so bad [21:47] piscisaureus: The other thing is [21:47] piscisaureus: That I want to make external data arrays (or even worse: parts of them) read-only [21:48] jonaslund: piscisaureus: what are you up to really ? [21:50] KillerX has joined the channel [21:50] piscisaureus: jonaslund: https://github.com/joyent/node/issues/628 [21:50] KillerX: anyone know of a quick way to tell which platform you are running on? [21:51] KillerX: i.e. I would like to execute some conditional code if my node.js script was invoked in a mac environment as opposed to Linux [21:51] mscdex: KillerX: process.platform [21:51] ukev has joined the channel [21:51] KillerX: mscdex: many thanks! [21:52] jonaslund: piscisaureus: yeah but why that buffer-magic-merging thing ? [21:52] pquerna: http://news.ycombinator.com/item?id=2487331 <- cast is written in node.js :) [21:53] piscisaureus: jonaslund: it's kinda the same. Suppose that you want to make a part of a buffer read-only. That is not unlikely because multiple buffer objects can reference the same memory by slicing them. [21:54] jonaslund: piscisaureus: ahh right that thing [21:54] jonaslund: piscisaureus: it would give some orthogonality yeah [21:54] jonaslund: piscisaureus: the question is if the price is worth it ? [21:54] piscisaureus: jonaslund: sure but I don't even know what the price is [21:55] piscisaureus: jonaslund: I was bugging mraleph to find out :-) [21:55] eee_c has joined the channel [21:56] jonaslund: piscisaureus: personally i think the sane thing would not to have a slice function mapping into another array.. but now it's there and people have to do with it i guess [21:59] sveimac has joined the channel [21:59] piscisaureus: jonaslund: that would make some stuff very difficult -- like efficiently managing read buffers. Currently every time node reads from a socket it reads into a "big" buffer. Then if that buffer isn't used entirely that a sliced reference is returned to the user and the rest of the buffer can be used for a subsequent read. [22:02] jonaslund: piscisaureus: well i'm off the old school "allocate your own damn buffers" philosophy :) [22:02] jonaslund: but it's just an opinion :) [22:02] piscisaureus: jonaslund: for 0.6 this will be even more important because iocp requires you to preallocate read buffers for all your sockets. So if you open 10K may need to preallocate 640 MB of memory [22:03] amerine has joined the channel [22:03] piscisaureus: *open 10K sockets [22:04] jonaslund: piscisaureus: auch [22:05] pcardune_ has joined the channel [22:05] jonaslund: piscisaureus: tricky that.. 64k is a pretty big amount of memory in those situations.. but then again you'd prolly loose performance if you're doing high bandwidth stuff with few connections [22:06] jonaslund: piscisaureus: I'm not entirely sure about the buffer-merging still ? [22:07] MikhX has joined the channel [22:07] piscisaureus: jonaslund: yes we would need to do some auto-scaling of the read buffer size I think. I'm not really sure how atm./ [22:08] christophsturm has joined the channel [22:08] gonsfx: i'll try to reformulate: is there any difference between calling next() and returning next() in express besides stopping execution of current middleware? [22:08] zaphod1001 has joined the channel [22:08] jonaslund: piscisaureus: sounds like a "tuneable" to me.. however dirty it feels :) [22:08] piscisaureus: jonaslund: about the buffer merging: I'd like to allocate buffers the size of page [22:08] mischief has joined the channel [22:09] piscisaureus: send multiple buffers to readv or WSARecv [22:09] tjholowaychuk: gonsfx: no difference [22:09] gonsfx: tjholowaychuk: thanks :) [22:09] tjholowaychuk: gonsfx: just beats having a bunch of elses all over some times [22:09] piscisaureus: then when bytes_read > page_size string combine expose all used pages as one buffer object [22:09] gonsfx: couldn't find one from a quick view over the connect source, but wasn't sure about it [22:10] gonsfx: yeah, that was exactly why i was asking. too many cascading if/else :) [22:10] piscisaureus: jonaslund: let me rephrase that... 01when bytes_read > page_size expose all pages that contain read data as one buffer object01 [22:11] jonaslund: piscisaureus: hmm.. why not fire multiple data events instead ? [22:11] piscisaureus: jonaslund: yes that's an alternative I think [22:11] [1]Corren has joined the channel [22:11] broofa has joined the channel [22:12] jonaslund: piscisaureus: it might feel "smooth" to be able to catch big stuff in one go.. but if at some point your code will need to handle big requests then it's far better if you get a chance to debug that code [22:12] boaz has joined the channel [22:12] jonaslund: piscisaureus: oh and if people do alot of string decoding,etc they'd get huge objects that's prolly not that nice to the GC if you pump big buffers onto them [22:12] mdaisuke has joined the channel [22:13] piscisaureus: jonaslund: I guess the gc would like that better actually, though it could be less memory-efficient [22:13] piscisaureus: well maybe not the huge strings [22:14] jonaslund: piscisaureus: if people process their data instead of hanging around that'd be more efficient :) [22:15] jonaslund: piscisaureus: as for 10k memory consumption.... http.createServer(reqListener,{readBufferSize:4096}); or something alike that for people to be able to tune stuff [22:16] piscisaureus: yeah we'll see [22:17] mange has joined the channel [22:18] __tomb has joined the channel [22:20] ericnakagawa has joined the channel [22:20] jacter1 has joined the channel [22:21] brownies has joined the channel [22:23] mischief has joined the channel [22:23] ako has joined the channel [22:23] temp01 has joined the channel [22:24] pHcF has joined the channel [22:27] chrislorenz has joined the channel [22:27] ph^ has joined the channel [22:27] taf2_ has joined the channel [22:29] clintandrewhall has joined the channel [22:29] tg has joined the channel [22:30] pedrobelo has joined the channel [22:30] MikhX has joined the channel [22:31] secoif has joined the channel [22:31] micahjohnston_ has joined the channel [22:31] micahjohnston_ has left the channel [22:32] gilesgoatboy has joined the channel [22:34] Aikar: svn ci [22:34] Aikar: err, thats not the right window [22:35] Aikar: (yes, using SVN at work ;(, but to be fair, i dont think git would work with our development style with having 10000+ branches >_> [22:35] Owner_ has joined the channel [22:35] secret_agent has joined the channel [22:35] secret_agent: !bot [22:35] elliottcable: is a bot + + + + + does the robot [22:35] secret_agent: !bot [22:35] elliottcable: is a bot + + + + + does the robot [22:35] secret_agent: !bot [22:35] elliottcable: is a bot + + + + + does the robot [22:35] Owner_: Can I set a cookie in an ajax reply? [22:35] Owner_: The browser seems to not get them when I do that. [22:36] secret_agent: !bot [22:36] elliottcable: is a bot + + + + + does the robot [22:36] secret_agent: !bot [22:36] secret_agent: !bot [22:36] elliottcable: is a bot + + + + + does the robot [22:36] elliottcable: is a bot + + + + + does the robot [22:36] Aikar: ryah: baninate please [22:36] secret_agent: !bot [22:36] elliottcable: is a bot + + + + + does the robot [22:36] secret_agent has left the channel [22:37] micahjohnston has joined the channel [22:37] micahjohnston has left the channel [22:38] levi501d has joined the channel [22:38] zzak: elliottcable++ [22:38] v8bot: zzak has given a beer to elliottcable. elliottcable now has 1 beers. [22:39] elliottcable: god damnit [22:39] losing has joined the channel [22:39] elliottcable: who did that [22:39] elliottcable: oh christ, micah [22:39] zzak: you got botowned [22:39] elliottcable: sorry about that, m’friends [22:39] elliottcable: lulz in another channel leaked over here. [22:39] zzak: no having fun! [22:40] zzak: :D [22:42] ericnakagawa has joined the channel [22:42] SvenDowideit has joined the channel [22:44] elliottcable: lol’d hard at http://twitter.com/hasmanytweets/status/63009596427616256 [22:45] nornagon_ has joined the channel [22:46] chrislorenz has joined the channel [22:47] ibrahimal-rajhi has joined the channel [22:47] dandean has joined the channel [22:48] micahjohnston has joined the channel [22:48] brianc: tjholowaychuk: http://i.imgur.com/1qt8z.jpg [22:48] tjholowaychuk: haha [22:48] tjholowaychuk: so lame [22:49] brianc: hahaha [22:50] mikeal: is anyone in SF going to that edinburgh castle thing tomorrow? [22:51] sephr has joined the channel [22:51] GriffenJBS has joined the channel [22:51] mikeal: http://www.meetup.com/jsmeetup/events/17270224/ [22:51] sth: am I the only one who dislikes coffeescript? [22:51] ako has joined the channel [22:51] tjholowaychuk: sth: nope [22:51] sephr: I hired a man named elliott cable to write a node.js webapp for me [22:51] tjholowaychuk: me too [22:51] sephr: at $80/hr [22:51] sephr: and now he's telling me that you guys *banned* him [22:52] sth: The concept of it infuriates me [22:52] dandean: sth: nope [22:52] sephr: I'll still be paying him the whole $58,000 but this isn't cool [22:52] mikeal: sephr: banned? [22:52] mikeal: from what? [22:52] brianc: sth: plus it is annoying to try to contribute to a project but they use coffeescript...now i gotta learn another language to write some node.js lib? :( [22:52] mikeal: how do you ban someone from node.js [22:52] sephr: the channel [22:53] tjholowaychuk: brianc: yeah agreed [22:53] zzak: lol [22:53] sth: the concept of writing code in an interperated language to be converted into another interperated language for that to be ran through a JIT compiler is irritating [22:53] sephr: this is the best node.js resource [22:53] sephr: this channel itself [22:53] sephr: so now he has become programming incapacitated [22:53] sephr: bedridden for life [22:53] mikeal: i didn't even know we had the facility to ban people [22:53] tjholowaychuk: sth: theres nothing unique about it either which is kinda funny [22:53] mikeal: i've never seen anyone get banned [22:53] tjholowaychuk: its just py/ruby mashed together [22:53] dandean: sth: coffeescript makes you debug code you didn't write. silly. [22:53] mikeal: the only op we have ever had is ryah [22:53] zzak: trollololol [22:53] McMAGIC--Copy has joined the channel [22:54] taf2__ has joined the channel [22:54] mikeal: coffeescript is a barrier to entry for most people [22:54] mikeal: if you write coffeescript you need to know js, because you'll be debugging the compile target code [22:54] pifantastic_ has joined the channel [22:54] sephr: another $3.5 million down the drain [22:54] mikeal: but you don't need to know coffeescript to write js, so it's not a good idea for most projects [22:54] sephr has left the channel [22:54] zzak: coffeescript is like skinny jeans [22:54] mikeal: but, at the same time [22:55] tjholowaychuk: zzak: hahaha [22:55] mikeal: coffeescript as an experiment has been great [22:55] ryah: ACTION looks around [22:55] Bwen: sephr: I think maybe your guy might have took on maybe more he could chew and finding excuses. But I would check with ryah, as said is the only OP in here. [22:55] mikeal: we've learned a lot of good shit that we wouldn't have learned otherwise [22:55] zzak: sure you need to wear pants to keep warm [22:55] mikeal: ryah: did you ban someone from the channel? like ever? [22:55] bingomanatee: ACTION is too busy learning jruby and writing my php compiler in PASCAL [22:55] ryah: mikeal: maybe [22:55] mikeal: i like the fact that coffeescript exists and that we have a nice playground for language development [22:55] dgathright has joined the channel [22:56] sth: bingomanatee: good luck with that... [22:56] mikeal: but people who send me pull requests that want to rewrite my js code in coffeescript [22:56] mikeal: that's retarded [22:56] tjholowaychuk: mikeal: haha yeah or coffee-script specifics in your code [22:56] tjholowaychuk: for extensions n shit [22:56] tjholowaychuk: bugs me a lot [22:56] tjholowaychuk: jison has more talent [22:56] tjholowaychuk: than coffeescript [22:56] mikeal: tjholowaychuk: totally, and they add it as a dependency [22:56] mikeal: and you're like "no, that's not happening" [22:56] tjholowaychuk: ahahaha [22:56] brianc: "this is not rails" [22:57] zzak: i like coffeescript for small projects, but its definitely newbait [22:57] sirkitree has joined the channel [22:57] tjholowaychuk: mikeal: I just say it was their choice to compile something to js, so live with it [22:57] davidwalsh has joined the channel [22:57] tjholowaychuk: I dont want to bake CS stuff in [22:57] ngs has joined the channel [22:58] dandean: tjholowaychuk: thanks for this, I was just about to write a patch for this and send it to you, but now I don't have to. https://github.com/visionmedia/express/commit/f4487343df389ca578e8aabad0b302c35d413521#lib/view.js [22:58] mjr_: mikeal: are you still battling with strange things in http client / agent? [22:58] tjholowaychuk: dandean: np [22:58] Greyscale has joined the channel [22:58] mikeal: mjr_: yes [22:58] zzak: express 2.4 to have coffee-script as default js parser [22:58] bingomanatee: Why go half assed, why not create a visual flowcharter with property editors [22:59] mjr_: mikeal: me too. Today I started getting the "cannot call emit of undefined" one [22:59] ericnakagawa has joined the channel [22:59] tjholowaychuk: zzak: haha you bet [22:59] tjholowaychuk: im redoing the whole thing in CS [22:59] mjr_: Something is still not right in client land. [22:59] zzak: called it [22:59] zzak: think of the profits. [23:00] dandean: zzak: I thought that was coming in 2.4.1 [23:00] Astro has joined the channel [23:00] micahjohnston: where's elliottcable? [23:03] gazumps has joined the channel [23:03] losing has joined the channel [23:05] lalithmaddali has joined the channel [23:06] mikeal: mjr_: i still haven't seen that one myself [23:06] lalithmaddali: how to get system hostname and ipaddress in nodejs? [23:06] mikeal: the worst ones for me right now are things i need to add to the socket which doesn't exist yet [23:06] mikeal: when the pool is full [23:06] mikeal: mjr_: did you see my email to the list? [23:07] mikeal: basically, there is a set of problems with the http client that we can't fix w/o a refactor [23:07] mjr_: mikeal: it seems to happen after socket gets closed with error, and then subsequent requests get confused [23:07] mjr_: Yeah, I read your message today, which is why I mentioned it. [23:07] mikeal: if it's closed do to an error doesn't it get taken out of the pool [23:07] mikeal: let me look [23:07] dnyy has joined the channel [23:08] zzak: tjholowaychuk: https://twitter.com/#!/hasmanytweets/status/63016085498245120 [23:08] zzak: rt for truth [23:08] tjholowaychuk: ahahahaha [23:08] tjholowaychuk: retweet! [23:08] Greyscale has joined the channel [23:08] zzak: lolol [23:09] mikeal: mjr_: http.js line 1188 [23:09] mikeal: is where we should look [23:09] mikeal: mjr_: parser.finish()????? [23:09] mikeal: do that actually force the parser to finish, or is that like a nice close call? [23:10] mjr_: mikeal: it's http.js:1202 that's the issue, somehow there's a socket error, but no request? [23:10] mjr_: somehow [23:10] mikeal: i wonder if data is making it to the parser after the socket is closed???? [23:10] techwraith: NOOOO! not cs :( [23:10] mikeal: oh [23:10] McMAGIC--Copy has joined the channel [23:10] mikeal: no request object [23:10] zzak: lets rewrite node in CS [23:10] lalithmaddali: grrr.. how do I get my system's host name in nodejs? I could hardcode it .. but would be good to get it programmatically.. [23:11] techwraith: tjholowaychuk: why? [23:11] mikeal: does that assert(0) on line 1199 get called? [23:11] tjholowaychuk: zzak: it's the logical thing to do [23:11] Owner_: Can you set cookies in an ajax reply? [23:12] mjr_: mikeal: I would assume that 1199 is pre-processed out like all asserts, no? [23:12] mikeal: i was hoping you were running in debug :) [23:13] mjr_: I only get this withi production load, sadly [23:13] bstimmerman has joined the channel [23:13] arpegius has joined the channel [23:14] mjr_: I assume it would be getting called though [23:14] aroop has joined the channel [23:15] mikeal: mjr_: wait a sec [23:15] mikeal: do you think it might be *before* a request is assigned to the socket? [23:16] mjr_: I dunno. [23:16] mjr_: This only happens under heavy load and only after I've seen an otherwise handled socket error go by [23:17] mikeal: line 1193 [23:17] mikeal: what is that all about? [23:17] mikeal: we're emitting an error and a request that hasn't even been assigned to this socket [23:17] mikeal: we assing a request to a socket before it's even finished connecting? [23:18] mikeal: cycle() calls establishNewConnection() which calls cycle() again before continuing [23:18] dmcquay has joined the channel [23:19] mikeal: wait [23:19] mikeal: it doesn't get assigned unless it already has a message [23:19] mikeal: mjr_: this is what is happening [23:19] mikeal: i think i got it [23:20] daekano has joined the channel [23:20] mikeal: a socket gets an error before it gets an http message [23:20] themiddleman_i-1 has joined the channel [23:20] mikeal: it's not assigned to a socket [23:20] tanepiper: tjholowaychuk: is it true? you've been converted to cs? :) [23:20] mjr_: to a request [23:20] tjholowaychuk: tanepiper: nope :p [23:20] techwraith: tanepiper: God I hope not [23:20] mikeal: so it emits an error on the first request in the queue [23:20] Opaque has joined the channel [23:21] mjr_: This might explain why I get socket errors, the handled kind, when it doesn't seem like I should [23:21] techwraith: damn syntactic sugar. [23:21] mikeal: which is probably wrong, because it's under high concurrent load and that socket already got assigned to a different socket [23:21] openpercept has left the channel [23:21] mjr_: On otherwise reasonable requests [23:21] mikeal: sorry [23:21] mikeal: the *request* already got assigned to a different socket [23:22] bingomanatee: ACTION thinks all you really need in a language is memory access and bit operations.  [23:22] bingomanatee: everything else is syntactic sugar [23:22] mikeal: that request gets an error, but it's actually fine and in the pool [23:23] mikeal: no, sorry, it's removed from the pool [23:23] mikeal: even tho it's still working and fine [23:23] newy_ has joined the channel [23:23] mikeal: an actual error happens now on the socket that got removed from the pool [23:23] techwraith: bingomanatee: I'm all for sytactic sugar as long as it doesn't get in the way of debugging. high level languages that compile to other high level languages suck. [23:23] techwraith: unless they have debug support somehow [23:24] mikeal: and in that handler, the pool is empty, because it was removed by another error handler when it shouldn't have been [23:24] mikeal: and the original socket that got an error was removed on close or something [23:24] bingomanatee: /me likes it in the basement. [23:24] mikeal: mjr_: does that make sense? [23:24] mjr_: mikeal: yeah, I think so. I haven't looked at the agent code enough to really understand it all [23:25] techwraith: bingomanatee: I'll leave you to your ones and zeros then ;) [23:25] mjr_: But if you have a suggestion for how to fix this, I can throw some load at it. [23:25] mikeal: here's the kicker [23:25] bingomanatee: Ones are a hack. [23:25] mikeal: no idea how to fix it [23:25] bingomanatee: If you know how to use zeros right you dont need them. [23:25] mikeal: actually [23:25] techwraith: lol [23:27] Nexxy has joined the channel [23:27] Nexxy has joined the channel [23:28] elliottcable: micahjohnston: what? [23:28] micahjohnston: elliottcable: nothing [23:29] elliottcable: I keep confusing zzak with zzap [23:29] elliottcable: the latter is some dude on twitter who hates my fucking guts, like, *loathes* me, and I don’t know why [23:29] elliottcable: wheras the former is a funny guy in #Node.js [23:30] jif has joined the channel [23:31] mikeal: mjr_: you want something to try? [23:31] mjr_: sure [23:32] mikeal: remove that ifelse on line 1193 [23:32] mikeal: remove the else as well [23:32] mikeal: move the req.emit('error') to the if statement [23:32] zzak: elliotcable: haters gonna hate [23:32] mikeal: do nothing with a request if that if doesn't work [23:32] cloudhea1: is there anything special I need to do to receive stdout from a child_process without calling end()? [23:33] mikeal: that won't work for core [23:33] mikeal: but it should work for you [23:33] _fat has joined the channel [23:33] ChrisPartridge has joined the channel [23:34] mjr_: mikeal: so like: https://gist.github.com/2c74c3c0522f1f8829dd [23:34] elliottcable: zzak: I always thought that meme was a little unfair to us haters. We *do* have human discretion, you know; we can electively LOVE instead of HATE when we so please! #surprise #sarcasm [23:35] amerine has joined the channel [23:35] mikeal: the reason it won't work in core is that it means that you'll never get a request error on the first request you create if you can't connect [23:35] NuckingFuts has joined the channel [23:35] k1ttty has joined the channel [23:35] mjr_: oh, that's bad. I want to be able to detect if a host is down. I have a pool of addresses that I round robin through [23:36] dandean has left the channel [23:36] zzak: haters are just emotionally extreme, its either love or hate [23:36] mikeal: so [23:36] mikeal: the *real* fix, is to assign a request object to a socket when it's created [23:37] mikeal: and if i errors it's already referenced [23:37] mikeal: instead of this crazy dance between the queue and the connection creation [23:37] mikeal: but that's a sizable refactor [23:37] mjr_: what if you don't have enough sockets? That req has to go somewhere [23:38] konobi: anyone aware of any expect libraries for node? [23:39] konobi: hopefully well maintained [23:39] brownies has joined the channel [23:39] jmorris has joined the channel [23:40] kristofferh has joined the channel [23:40] zzak: expect as in bdd? [23:40] zzak: konobi ^ [23:40] jmorris: i have a dumb question, on os x, when i, say npm supervisor, how do i then just be able to type supervisor -p app.js? [23:40] skurfer has left the channel [23:41] springmeyer has joined the channel [23:42] konobi: zzak: as in TCL expect [23:43] springmeyer has joined the channel [23:43] piscisaureus: cloudhea1: the program you are calling is probably buffering up its output [23:44] mikeal: mjr_: no no no, the req is in queue [23:44] mikeal: when a socket is closed/freed [23:44] mikeal: a req is popped off the queue, assigned to a socket that is probably not even open yet [23:44] zzak: konobi: none that i know of :/ [23:45] mikeal: why is Tim not in here? [23:45] zzak: there might be some tcl/tk bindings floating around [23:45] lalithmaddali has joined the channel [23:46] tbranyen: mikeal: he hasn't been for a while, said he was busy busy busy [23:46] cloudhea1: piscisaureus: that's what I thought, but running it in the console works as expected [23:46] rchavik has joined the channel [23:46] cloudhea1: piscisaureus: ie on every \n it outputs something [23:46] mikeal: he can't go releasing new libraries and not be on irc to discuss them with me [23:46] saikat has joined the channel [23:47] jesusabdullah: who wrote a library? [23:47] cloudhea1: piscisaureus: however doing proc.stdin.write('foo\n') yeilds nothing in the stdout channel [23:48] piscisaureus: cloudhea1: hmm. maybe your child detects the type of stream? [23:48] piscisaureus: cloudhea1: what are you calling? [23:49] cloudhea1: piscisaureus: would the type of stream be non-standard? [23:49] cloudhea1: piscisaureus: it's a wrapper around the pandoc library [23:50] piscisaureus: cloudhea1: hmm, doesn't ring a bell. The type of stream is tty when you call it from a terminal. If you're running it from node it's gonna be a pipe. [23:51] piscisaureus: cloudhea1: try to write a lot of lines to it, see if you get a data event eventually [23:51] cloudhea1: oh I see [23:53] dandean has joined the channel [23:53] cloudhea1: piscisaureus: running `echo foo | pandocd` gives me some output [23:54] cloudhea1: ie with a pipe, not sure if it's the same kind node uses though [23:54] piscisaureus: cloudhea1: you're still not giving it a pipe for stdout. [23:54] cloudhea1: ah yes [23:54] piscisaureus: cloudhea1: plus its stdin gets closed, most programs will terminate after that [23:55] piscisaureus: cloudhea1: probably if you call child.stdin.end() you'll get output within node too. [23:55] kylefox has joined the channel [23:55] piscisaureus: cloudhea1: try `pandocd | cat` to find out :-) [23:56] cloudhea1: piscisaureus: yea that seems to work too [23:56] cloudhea1: piscisaureus: the problem is I can't end() it, I need to keep the process open [23:57] kylefox has left the channel [23:57] piscisaureus: hmm. does writing a lot help? [23:57] cloudhea1: doesn't seem like it [23:57] cloudhea1: gonna try from node directly [23:58] piscisaureus: maybe it outputs to stderr? [23:59] cloudhea1: got a watcher on that thoo : / [23:59] cloudhea1: too*