[00:00] NuckingFuts: When I wait like 15 seconds before retrying, it gives me the huge-ass tar/gzip error [00:00] isaacs: NuckingFuts: strange. works for me just fine. [00:00] NuckingFuts: isaacs: Hmmm... The JSON shows up as ok when I run it through info too [00:01] isaacs: NuckingFuts: it's not a json error [00:01] isaacs: NuckingFuts: but that being said, the json is always fine when run through info [00:01] isaacs: :) [00:01] NuckingFuts: lol [00:01] isaacs: becasue that's getting it out of couch, where it's all sanitized and good [00:01] NuckingFuts: ah [00:01] isaacs: NuckingFuts: try doing `npm cache clean` and install again? [00:01] isaacs: what is rbytes? [00:02] isaacs: oh, crypto random bytes [00:02] NuckingFuts: Yeah [00:02] NuckingFuts: I wanna generate a secure UUID, etc. [00:03] NuckingFuts: And I need it to be able to provide a 32-character hex string [00:03] NuckingFuts: So this fulfills all the requirements I have :D [00:03] isaacs: ryah: you know about simple/test-http-agent2 failing? [00:03] NuckingFuts: isaacs: And it works now -_- [00:03] NuckingFuts: :/ that's an odd issue [00:03] fcosta has joined the channel [00:04] isaacs: NuckingFuts: cygwin is stuper strange [00:04] NuckingFuts: Sounds like the tgz went haywire [00:04] NuckingFuts: isaacs: Can't wait for MinGW :P [00:04] isaacs: NuckingFuts: yeah [00:04] zemanel has joined the channel [00:04] isaacs: NuckingFuts: if you get realy bizarre tgz errors like that, sometimes it's that the cache is corrupted. [00:04] isaacs: NuckingFuts: though the shasums prevent the worst failures [00:04] NuckingFuts: isaacs: Ah, okay, that's a good thing to know :P [00:04] NuckingFuts: yeah [00:05] technowe_ has joined the channel [00:05] ryah: isaacs: yes [00:05] isaacs: kewl [00:05] ryah: isaacs: agent2 is your test that you told me about [00:05] NuckingFuts: isaacs: I find NPM's failures the most amusing, because it seems to like giving the wierdest random errors each time lol [00:06] NuckingFuts: like ESRCH [00:06] isaacs: sweet [00:06] ryah: which im still trying to fix... [00:06] ryah: :/ [00:06] gf3 has joined the channel [00:06] NuckingFuts: Well, thansk for the help, I'll remember that cache clean thing for future [00:07] ryah: http://arlolra.no.de/startup/ <-- love this so much [00:07] isaacs: ACTION kudos ryah's whuffie [00:07] ryah: hopefully we'll get memory usage up there soon [00:07] isaacs: nice [00:07] isaacs: holy crap are those git commit shas? [00:08] isaacs: /me <3 <3 <3 [00:08] postwait has joined the channel [00:08] isaacs: if so, can they link to the thing on github? that would be so hot holy oh my goodness [00:08] mjr_: X axis indexed by commit ID is pretty cool. [00:08] ryah: isaacs: the source is here: https://github.com/arlolra/nodejs-perfgraphs [00:09] ryah: im sure he'd accept a patch [00:09] isaacs: nice [00:09] gf3` has joined the channel [00:09] isaacs: i find that cygwin downslope rather weird... [00:09] ryah: the startup thing is nice because it's pretty stable [00:09] ryah: a spike there will really mean something [00:10] isaacs: yeah. that last spike in cygwin (looking at the commit that it corresponds to) seems to indicate that you started measuring cygwin properly [00:10] isaacs: git show 1efac7495 [00:10] fille: can i set a global js variable inside a callback function? [00:10] isaacs: fille: yeah [00:10] isaacs: fille: just don't use var [00:11] fille: hrm [00:11] isaacs: fille: or, you can do that explicitly by doing global.foo = "bar" [00:11] isaacs: fille: it's not very "nice" though [00:12] mies has joined the channel [00:12] fille: fs.readFile(path,function (err,data) { myglobal = data.toString();}); [00:12] fille: this dosent work =( [00:13] [[zzz]] has joined the channel [00:13] fille: isaacs did u see? [00:14] isaacs: fille: what do you mean that doesn't work? [00:14] isaacs: fille: can you gist your whole program? [00:14] marcello3d has joined the channel [00:14] arlolra has joined the channel [00:14] fille: isaacs i get the data [00:14] fille: but myglobal variable is defiend outside the readFIle [00:14] isaacs: fille: i mean, the global won't be set until the cb fires [00:15] isaacs: so if you did fs.readFile(path, function () { foo = "bar" }) ; console.log(foo), it won't be there [00:15] isaacs: because the console.log happens before the cb [00:15] fille: okej [00:15] isaacs: does that clear up the misunderstanding? [00:15] fille: what is cb [00:15] marcello3d: mape: around? [00:15] fille: :P [00:15] isaacs: fille: cb = CallBack [00:16] isaacs: fs.readFile(path, cb); function cb (er, data) { global.foo = data } ; console.log(global.foo) // undefined [00:16] fille: so what do i need to do then [00:16] isaacs: fille: what is your actual problem? what are you trying to do? [00:16] fille: i whant the data from the callback [00:16] fille: is it possible [00:17] fille: i whant the data to have a global scope [00:18] fille: but i understand what u mean now [00:19] fille: and i have been a fool [00:19] isaacs: fille: :D [00:19] isaacs: fille: you can make it global scope, you just can't use it before it's there [00:20] fille: nod [00:20] isaacs: fille: it's like if you did setTimeout(function(){ foo = "bar" }) ; alert(foo) // not there! [00:20] fille: yepp, thank u for clearing things out [00:20] isaacs: fille: you may want to check out this stuff: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=nodejs+flow+control [00:20] isaacs: fille: it's a popular topic [00:21] isaacs: fille: since clearly any large node program has to be able to say what order things happen in. do this, then do that, etc. [00:21] NuckingFuts: Damn [00:21] isaacs: even if you want *certain* things to happen in parallel [00:21] [[zz]] has joined the channel [00:21] fille: ok [00:21] NuckingFuts: The rbytes thing fails... [00:21] fille: just wondring, i have a easy html page with jquery inside [00:21] NuckingFuts: Something about permissions [00:21] fille: i load it into node.js [00:22] isaacs: NuckingFuts: it shouldn't be trying to do any fancy permission stuff, since you'er on cygwin [00:22] fille: then i res.end() [00:22] fille: the data [00:22] isaacs: ryah: did you close this on purpose? https://github.com/ry/node/issues/closed/#issue/687 [00:22] fille: but when i connect to the site [00:22] fille: the jquery.js [00:22] fille: dosent work [00:22] fille: any ide about that? [00:22] NuckingFuts: isaacs: That's what it says :/ [00:22] NuckingFuts: > var rbytes = require('rbytes'); [00:22] NuckingFuts: Error: Permission denied [00:22] NuckingFuts: at Object..node (module.js:385:11) [00:22] isaacs: fille: english is a bad programming language. [00:22] isaacs: fille: gist the code. [00:23] arlolra: what do you smart people use to monitor daemons? [00:23] tmpvar has joined the channel [00:23] isaacs: NuckingFuts: no idea. [00:23] isaacs: NuckingFuts: clearly that's an issue with the program itslef, though, i'd think [00:23] fille: isaacs wait a min [00:23] NuckingFuts: isaacs: I'm assuming the same thing :/ [00:23] isaacs: NuckingFuts: works for me. [00:23] NuckingFuts: ACTION shakes his fist [00:23] isaacs: NuckingFuts: unless teh place where it's installed is somehow broken. [00:24] jimt_ has joined the channel [00:25] ryah: isaacs: no. reopening [00:25] isaacs: ryah: kewl. i updated the gist. itw as causing a test to fail first time around [00:25] NuckingFuts: hmmm... It's requiring a compiled .node file, but it's not including the extension. [00:25] isaacs: ryah: works now. stupid 0 being falsey... [00:26] isaacs: NuckingFuts: i see. definitely take up with the author, i'd say [00:26] isaacs: NuckingFuts: what does it bind to [00:26] isaacs: ? [00:26] NuckingFuts: isaacs: what? [00:27] isaacs: NuckingFuts: nvm [00:28] franck34: do you know an sql engine having pubsub like redis ? [00:29] marcello3d: NuckingFuts: what os? works fine for me on mac os x [00:29] tim_smart: franck34: Not yet. I think it is soon coming to MySQL [00:30] ryah: isaacs: link? [00:30] isaacs: ryah: i just updated the gist in the issue [00:31] isaacs: ryah: https://gist.github.com/833106 [00:32] fille: damn im so stupied [00:32] fille: im still thinking that im using apache [00:32] mnot has joined the channel [00:32] Jourkey has joined the channel [00:32] franck34: tim_smart: seem's ms sql server support it. Happy to learn that mysql will support. [00:33] Jourkey: how do i do channels with socket.io? [00:33] marcello3d: first you need your spirit stone [00:34] hij1nx has joined the channel [00:34] fcosta has joined the channel [00:34] franck34: second, you need some jack daniels [00:34] marcello3d: you probably have to code them yourself, right? I thought socket.io provided a very bare bones api [00:34] marcello3d: ie send json to server, receive json from server [00:34] jimt has joined the channel [00:35] NuckingFuts: Ugh NPM seems to hang after the first pair of shasums for me. I've had to send SIGINT each time, which has previously spoiled cache :/ [00:35] Jourkey: sure, i understand that [00:35] Jourkey: but mayhaps someone already created one? [00:35] marcello3d: wouldn't you just send {channel:"foo", message: { ... } } ? [00:35] Jourkey: a channels library to use with socket.io with redis pubsub or something else [00:35] NuckingFuts: And it always works on the second try >_> [00:35] isaacs: NuckingFuts: maybe you're just installing big stuff. [00:35] isaacs: NuckingFuts: you shoudl be more patient when you're using cygwin [00:36] isaacs: it's not a fast program [00:36] marcello3d: you probably want a bit of security/validation between socket.io and redis, which would be app specific [00:36] NuckingFuts: isaacs: It installed instantly after I stopped it, cache-clean'd, then tried again [00:36] Throlkim has joined the channel [00:36] Jourkey: wouldn't you just send {channel:"foo", message: { ... } } ? [00:37] Jourkey: that's not part of the socket.io api i think [00:37] Jourkey: it's very bare bones [00:37] fille: isaacs, i have seen the light [00:37] isaacs: fille: Hurray!! [00:37] Jourkey: unless i'm missing something [00:37] fille: :D [00:37] isaacs: NuckingFuts: then i dunno. :) [00:37] isaacs: NuckingFuts: maybe the lesson is to give up faster and try again? [00:37] NuckingFuts: isaacs: I plan to :P [00:37] marcello3d: Jourkey: doesn't it let you send arbitrary javascript datastructures? [00:37] Jourkey: it does, but then it sends to everyone [00:38] marcello3d: are you talking from the client or from the server? [00:38] Jourkey: the server [00:38] marcello3d: well, each user that connects should have a separate connection object [00:38] marcello3d: and presumably you can send messages to each connection individually [00:39] Jourkey: oh cool, and i can do this without using redis? [00:39] dve: If you dont specify a path in require... where does it default to, to look for modules? [00:39] dve: i.e require('catmilk') [00:39] marcello3d: so every time someone connects, you could throw the connection in an array (or make an array for each channel) [00:39] Juan77 has joined the channel [00:39] Jourkey: right [00:39] marcello3d: and then when you want to send to a particular channel, you just go through that array [00:39] fille: to celebrate my understanding, i will play some black ops [00:39] NuckingFuts: I want the hex representation of a buffer, how would I go about getting this? [00:40] wadey has joined the channel [00:41] russell_h: NuckingFuts: https://github.com/ry/node/blob/master/lib/buffer.js [00:41] NuckingFuts: There's a toHex function? [00:41] NuckingFuts: ACTION facepalms [00:41] russell_h: doesn't look like its exported [00:41] russell_h: but you could just do that [00:42] russell_h: that only does a single byte, you'll have to loop over it [00:42] CIA-39: node: 03isaacs 07v0.4 * r8b9dbda 10/ (lib/fs.js test/simple/test-fs-read-stream.js): Closes GH-687 Don't read fs read stream if not open - http://bit.ly/hiQXcX [00:42] ryah: isaacs: danke [00:42] NuckingFuts: CIA-39: Quiet, you abotmination *glare* [00:43] isaacs: ryah: Sie begrüßen [00:43] softdrink has joined the channel [00:43] dve: I have install all modules with NPM.. but some can not be found when I 'require()' [00:44] dve: I may have screw something up [00:44] dve: I have uninstalled and re-installed the module, but no joy [00:44] isaacs: dve: do those modules have a "main" field in their package.json? [00:44] isaacs: dve: which modules? [00:44] dve: coffeekup [00:45] Jourkey: marcello3d thanks [00:46] marcello3d: sure thing. hope it helps :) [00:46] ryah: isaacs: you mean 'bitte' , i think [00:47] dve: isaacs: and no, no main field... but then again neiter does 'connect' module' [00:47] isaacs: ryah: this is the problem with using google translate to communicate in languages you don't speak [00:47] NuckingFuts: ryah: May I ask why there isn't a hex encoding for buffers? [00:48] Jourkey: you should write a tutorial :) [00:48] NuckingFuts: I think there really ought to be :B [00:48] isaacs: ryah: i signed "you're welcome", but you didnt' see it [00:48] marcello3d: honestly, I've only played with socket.io for about 10 minutes [00:48] NuckingFuts: isaacs: I signed something entirely different :3 [00:49] ryah: NuckingFuts: hex encoding? [00:49] isaacs: ryah: any objection to a buffer.toString("hex")? [00:50] isaacs: seems oddly lacking, especially since the implementation is right there. [00:50] ryah: buffer.inspect() is basically that [00:50] isaacs: yeah, but not cleanly [00:50] ryah: no, no objection [00:50] isaacs: it'd be nice to get an actual nicely packed 2-char-per-buffer string [00:50] NuckingFuts: That it would [00:50] isaacs: ryah: should there be an appropriate hexSlice/hexWrite impl? [00:50] isaacs: or is that taking it too far? [00:50] ryah: isaacs: just doing it in js would be fine [00:51] marcello3d: Jourkey: but maybe if you get it working, *you* should write a tutorial ;) [00:51] Jourkey: yeah but a lot of this is about general nodejs knowledge and context, rather than any socket.io specific implentation details [00:51] isaacs: kewl [00:51] fcosta has left the channel [00:51] NuckingFuts: For now, I'm gonna kludge it up with a simple buffer.inspect().replace(' ','') and such [00:51] Jourkey: yeah, good point :P [00:51] tmpvar has joined the channel [00:51] isaacs: ryah: while we're at it, you know, it'd be handy to have a url encoding one,too [00:51] isaacs: new Buffer('foo%C0bar', 'url') [00:52] marcello3d: or url-style base64 :-D [00:52] isaacs: hahaha [00:52] marcello3d: (with _ and - instead of / and +) [00:52] ryah: meh [00:52] NuckingFuts: isaacs: let's also toss in a base 27, just for lulz :P [00:52] isaacs: "the door is cracked open! everybody rush it!" [00:52] isaacs: ok, hex is far enough, i think [00:52] isaacs: patch coming up [00:52] marcello3d: I haven't tested it, but does the base64 decoding support url style? [00:52] NuckingFuts: I could get SOOOOO much use from a base 27 tho lol [00:54] wadey_ has joined the channel [00:54] marcello3d: liar [00:54] NuckingFuts: marcello3d: No I r troofs [00:54] marcello3d: uh huh [00:55] NuckingFuts: lol this made me lol: [00:55] NuckingFuts: > buf.inspect().replace(' ','') [00:55] NuckingFuts: '' [00:55] NuckingFuts: It... removed the first space. [00:55] NuckingFuts: But none of the others. [00:55] marcello3d: use replace(/ /g, '') [00:55] NuckingFuts: ACTION facedesks [00:55] franck34: many mysql client for node. Which one are you using guys ? [00:55] marcello3d: not using mysql :) [00:55] NuckingFuts: I'll use this: /\s+/g [00:56] marcello3d: that also works [00:56] dspree has joined the channel [00:56] dspree has joined the channel [00:57] NuckingFuts: yay. [00:57] NuckingFuts: buf.inspect().replace(/\s+/g,'').slice(6,-1) works [00:58] NuckingFuts: Or wait [00:58] NuckingFuts: that should be 7, not 6 [00:58] marcello3d: or /\s+|/g [00:59] NuckingFuts: That oculd work too, but isn't it best to keep away from RegExp? [00:59] marcello3d: shrug [01:00] marcello3d: in that case, slice before you replace ;) [01:00] marcello3d: and only remove \s instead of \s+ [01:01] NuckingFuts: marcello3d: Why doesn't replace work on all instances with a string? [01:01] NuckingFuts: It normally does for me :/ [01:02] marcello3d: according to mdc, you have to do replace(' ', '', 'g') [01:02] marcello3d: but they seem to imply it's non standard? [01:02] marcello3d: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace [01:02] NuckingFuts: hmmm [01:02] marcello3d: not really sure [01:03] gf3 has joined the channel [01:06] abraham has joined the channel [01:09] franck34: technicaly i can make a forum using node+redis rather than node+mysql. But what will append in 5 years, when the data size in redis will be > ram i've got on my box ? [01:10] franck34: sound i need to use mysql for storage and redis for caching/pubsub stuff [01:10] franck34: any suggestion ? [01:10] fille has left the channel [01:11] russell_h: franck34: deal with it in 5 years? :) [01:11] russell_h: ram should be really cheap then [01:11] dgathright has joined the channel [01:11] russell_h: not saying thats a really good idea... [01:15] franck34: i'm starting a project and wondering, finaly, if i must put all data in redis or not .. [01:17] clarkfischer has joined the channel [01:18] gf3 has joined the channel [01:21] DTrejo has joined the channel [01:21] Utkarsh_ has joined the channel [01:25] doppler has joined the channel [01:25] pHcF has joined the channel [01:26] jimt has joined the channel [01:28] davidc_ has joined the channel [01:28] tmpvar has joined the channel [01:30] eee_c has joined the channel [01:31] jimt_ has joined the channel [01:33] tiemonster has joined the channel [01:34] tiemonster: I have a real-time application in which persistence really isn't a functional requirement. If I want to do everything in memory, should I just use an array, or should I use something like memcached? [01:34] yhahn has joined the channel [01:35] benatkin: tiemonster: sounds like a job for redis :) [01:38] tiemonster: it's a pretty deeply nested object. I was under the impress Redis was a key-value store... [01:38] muk_mb has joined the channel [01:38] tiemonster: I was hoping to avoid the overhead of relationships and different objects types and such [01:40] tim_smart has joined the channel [01:41] marcello3d has joined the channel [01:41] Me1000 has joined the channel [01:42] hornairs has joined the channel [01:43] ryah: tim_smart: doing it in memory is one option... [01:43] ryah: tiemonster: --^ [01:44] tiemonster: my concern is scalability [01:44] tiemonster: with a few hundred objects, that's reasonable. with tens of thousands, it isn't... [01:45] tiemonster: and it depends on how popular the service gets [01:45] tim_smart: tiemonster: What are you trying to do? [01:46] tiemonster: keep user and transaction data in memory to avoid the overhead of database access [01:46] tiemonster: it's a real-time game with geolocation [01:46] tim_smart: redis sounds like a good fit there [01:46] tiemonster: right now, we are sending updates every 500ms [01:47] tiemonster: we were looking at MongoDB [01:47] skm has joined the channel [01:47] pauls has joined the channel [01:48] ryah: tiemonster: is it possible to shard the data? [01:48] ryah: perhaps by location? [01:48] ryah: maybe you can have one node for each location [01:48] tiemonster: I had that thought [01:48] tiemonster: keeping all the data in memory would certainly simplify the architecture [01:49] tiemonster: we could limit the number of active games per server, and shard along those lines [01:50] ryah: if persistance is not needed - that would be my first inclination. [01:50] tiemonster: maybe I'll do that. if it looks like it's going to be successful, we can always switch to something like Redis later [01:50] micheil has joined the channel [01:50] saikat has joined the channel [01:51] tiemonster: I do want to do some sort of snapshotting so if someone writes crap code that crashes the server, we can recover the latest GPS data [01:51] tiemonster: I was thinking about storing each game in a json file on an interval [01:51] NuckingFuts: tiemonster: Well, you could write to a db instead [01:52] NuckingFuts: json with lots entries could get nasty [01:52] tiemonster: only one entry per user [01:52] ryah: tiemonster: if you need that - i'd say redis is probably a better option [01:52] tiemonster: hmm [01:53] tim_smart: redis is crazy fast [01:53] tim_smart: Me and mde have some clients. [01:53] mjr_: Lots of people using node_redis these days, it seems. [01:54] tiemonster: I'll have a look [01:54] NuckingFuts: And I'm still using mySQL lol [01:54] tim_smart: mjr_ rather, not mde [01:54] tiemonster: wonder if Joyent has it in their repo... :-) [01:54] NuckingFuts: At least until I get something like phpMyAdmin [01:55] ryah: it's really shocking that phpMyAdmin is so popular :) [01:55] NuckingFuts: OMG somebody should make a nodeRedisAdmin! [01:55] NuckingFuts: lol [01:56] fairwinds: ryah: what do you think of making path.join work for urls as well in similar way to os.path.join in py which works with filesystem and urls? [01:58] clarkfischer has joined the channel [02:00] brapse has joined the channel [02:00] tiemonster: NuckingFuts: please tell me you're not one of those people trying to get PHP working on Node... [02:00] Ratty_: php.js for node? Awesome! [02:02] mkidder has joined the channel [02:02] SubStack: fairwinds: that seems like a task best suited for userspace libraries [02:02] tedsuo has joined the channel [02:02] tmzt: anybody know of a way to do forms like in dojo, send them as json, fill them from json, in jq? [02:03] franck34: NuckingFuts: i've already see something like redisadmin ! [02:03] dgathright has joined the channel [02:05] gf3` has joined the channel [02:06] bubbafat has joined the channel [02:06] tmzt: ryah: it's installed by everybody (isp's) and it does work [02:07] tmzt: but if you have mysql you'll eventually figure out it and mysqldump are superior [02:07] tmzt: I want to know why no database suited to site signups exist, where the user in the db is the user on the site [02:08] tmzt: so each can have their own independent set of collections [02:08] ryah: fairwinds: *shurg* [02:08] ntr0py has joined the channel [02:10] tmzt: urls don't have paths or folders [02:10] ntr0py: Where can i set node path? npm says "Checking for node path: not found " ... [02:10] tmzt: it's up to you how you want them forwarded [02:10] isaacs: ntr0py: i don't actualy know what that is. [02:10] isaacs: ntr0py: it doens't matter [02:10] bentruyman has joined the channel [02:10] tfe_ has joined the channel [02:11] davidc_ has joined the channel [02:14] ntr0py: isaacs: I installed on Linux according to https://github.com/ry/node/wiki/Installation and then did "npm install pcap" which resulted in "npm ok". I just wondered if i had missed to set "node path" because im new to npm. [02:14] tmzt: bingomanatee: /me looks forward to being able to sshpush node+npm bundle+mongo etc. [02:15] shimondoodkin has joined the channel [02:15] tiemonster: mjr_: it seems that node_redis simply exposes redis commands to the node user. is this the case? [02:19] JulioBarros has joined the channel [02:20] tmzt: with async callbacks [02:21] boaz has joined the channel [02:21] tiemonster: and I would nest objects by keeping references to the childrens' keys? [02:22] bingomanatee: If PHP can have HipHop, I'm sure that a node > c++ compiler is not too far behind [02:22] bingomanatee: ^ ^ ^ worst.idea.ever [02:23] shimondoodkin: waht is hip hop [02:23] shimondoodkin: what [02:23] bingomanatee: Hip Hop is Facebook's PHP >> c compiler. [02:23] shimondoodkin: lol [02:23] tiemonster: anything that you need to run that fast you can write a node module for in C++ [02:24] lukegalea has joined the channel [02:24] tiemonster: we're doing our business logic and core algorithms in C++ and importing them as a node module [02:24] bingomanatee: What is left over? [02:25] tiemonster: url routing and data handling [02:25] shimondoodkin: the binding to other business logic [02:25] CIA-39: node: 03Ryan Dahl 07v0.4 * rc72ae27 10/ test/simple/test-tls-securepair-server.js : test-tls-securepair-server: don't shutdown stdout - http://bit.ly/hvVESX [02:26] CIA-39: node: 03Ryan Dahl 07v0.4 * rc2a6295 10/ (4 files in 3 dirs): [02:26] CIA-39: node: TLS sockets should not be writable after 'end' [02:26] tiemonster: api docs, frontend application [02:26] CIA-39: node: Closes GH-694. - http://bit.ly/gjgK7N [02:26] shimondoodkin: it is there and not realy required. there is a script that translates node js core javascript to c+++ [02:26] daveluke has joined the channel [02:26] daveluke: hi has anyone made a game with node js? [02:26] tiemonster: we are right now [02:26] daveluke: i created one but it seems laggy [02:26] tiemonster: that's really general... [02:27] jimt has joined the channel [02:27] tiemonster: I'm getting 50-200ms response times from Node [02:27] daveluke: well basically i was wondering if its the technology or how i implemented it [02:27] mkidder: anyone having issues with "nvm" when it tries to install latest npm? Getting permission errors, worked fine prior to npm 0.3.* [02:27] tiemonster: how you implemented it, probably [02:27] gf3 has joined the channel [02:27] daveluke: ok... thats good... [02:27] tiemonster: lol [02:27] daveluke: first try :) [02:27] daveluke: my game = http://socialscorer.com/index_1.html [02:27] tiemonster: oh, then I'll put my money on implementation [02:28] isaacs: mkidder: i don't know, works fine with nave, afaict [02:29] daveluke: hmm.. actually not that laggy :) [02:30] tiemonster: could also be the hardware [02:30] tiemonster: in any event, good night all [02:31] daveluke: g'nite [02:31] tiemonster: tmzt, mjr_ : we'll give Redis a shot. might fit the bill. [02:31] alek_br has joined the channel [02:31] tiemonster: thanks for the suggestion! [02:31] bingomanatee: daveluke - do you know who don Daglow is? [02:32] daveluke: bingomanatee, no [02:32] wadey has joined the channel [02:32] bingomanatee: wikipedia him. [02:33] daveluke: what about him [02:33] bingomanatee: I got on well with his wife who's recruiting - get some docs on the site and I'll send it over to her. [02:33] daveluke: site what? [02:33] daveluke: send* [02:34] bingomanatee: socialsorcerer [02:34] tc77 has joined the channel [02:34] daveluke: the game i wrote or socialscorer.com? socialscorer is just the domain to host it [02:34] bingomanatee: the game [02:35] ryah: isaacs: yt? [02:35] isaacs: yo [02:35] isaacs: ACTION semi here [02:35] ryah: isaacs: if i don't fix test-https-agent2 immediately, is this going to be a problem? [02:35] ryah: in v0.4.1? [02:35] isaacs: ryah: not for me. [02:36] ryah: okay then i'll release v0.4.1 with it broken [02:36] isaacs: ryah: i mean, it's just preventing npm from using https, that's all. but i've got a great test now to make sure that it's solid for my use case before releasing something that makes https the default [02:37] Aria has joined the channel [02:41] mkidder: isaacs: here is my error. http://pastie.org/1584291 .... and package.tgz does get decompressed. strange [02:41] marcello3d has joined the channel [02:42] shimondoodkin: just use curl [02:43] bingomanatee: why would you use curl in a language with net I/o in core? [02:43] bingomanatee: please say that was a joke [02:43] shimondoodkin: because there is a bug in ssl, until it fixed [02:43] bingomanatee: so sad. [02:46] marcello3d: just a sanity check... ryah == ryan dahl? [02:47] ryah: marcello3d: yes [02:47] dspree has joined the channel [02:47] dspree has joined the channel [02:48] dspree_ has joined the channel [02:48] dspree_ has joined the channel [02:48] tmpvar has joined the channel [02:50] ryah: http://nodejs.org/dist/node-v0.4.1.tar.gz [02:50] ryah: please test [02:50] Ratty_: close to release already? [02:51] Juan77 has joined the channel [02:52] wadey has joined the channel [02:53] marcello3d: ryah: is this the latest from the v0.4 branch on git? [02:53] marcello3d: or master? [02:55] lukegalea has joined the channel [02:55] marcello3d: gonna assume the former...building now [02:55] tg: hi [02:55] tg: hm, just installed 0.4.0 :) [02:56] tg: ok i'm gonna update it :) [02:57] tg: hm, there's no v0.4.1 tag yet though [02:57] ryah: not released yet [02:57] tg: ryah: btw there's a bug in gcc 4.5.1 which prevents v8 to compile [02:57] tg: or actually 4.5.* [02:57] tg: CCFLAGS=-fno-strict-aliasing [02:58] tg: it needs this otherwise it would hang in mksnapshot [02:58] ryah: tg: which os are you experiencing this on? [02:58] debian4tw has joined the channel [02:58] tg: gentoo, but other people reported it too [02:59] tg: http://code.google.com/p/v8/issues/detail?id=884 [02:59] ryah: thanks [02:59] tg: btw, i like the new tls api [03:00] isaacs has joined the channel [03:00] tg: i could do the tls detection thing with it without modifying anything in node.js: https://gist.github.com/835636 [03:02] ryah: wow - nice [03:02] marcello3d: tg: why do you want to support tls and not on the same socket? [03:03] tg: then i dont need two ports for it [03:03] marcello3d: but the browser won't use the same port? [03:03] tg: and there was a server app i'm porting to node.js which did it this way [03:03] tg: it's not http [03:03] marcello3d: ah [03:03] luchesse has joined the channel [03:03] marcello3d: seems insecure :) [03:06] tbranyen: how does this api look so far? http://pastie.org/1584337 [03:06] CIA-39: node: 03Ryan Dahl 07v0.4 * re8aef84 10/ (AUTHORS ChangeLog doc/index.html src/node_version.h wscript): Bump version to v0.4.1 - http://bit.ly/i14fak [03:07] CIA-39: node: 03Ryan Dahl 07v0.4 * re5a4722 10/ src/node_version.h : Now working on v0.4.2 - http://bit.ly/gk6xQG [03:07] tg: which part of it is insecure? if the client starts with tls the server switches to tls as well, otherwise it uses clear text [03:07] marcello3d: dunno, one less failsafe to ensure that your connection actually is secure? [03:08] sr has joined the channel [03:09] marcello3d: I feel like the benefits of non-tls are minimal... [03:10] marcello3d: but what do I know [03:11] marcello3d: woot, got access to the instagram api [03:12] srid has joined the channel [03:12] srid has joined the channel [03:12] srid: 'npm install latest' is failing with "Error: 404 Not Found: latest" [03:13] srid: oops, it's nvm, not npm. [03:13] ryanfitz has joined the channel [03:13] srid: 0.4.1 was released 3 mins ago, am I the first to install it? [03:13] tg: no i already did it [03:13] tg: :) [03:13] sr has joined the channel [03:15] marcello3d: do people use libs like step, seq, conseq, etc? [03:15] shimondoodkin: yes [03:15] marcello3d: which? [03:15] shimondoodkin: async [03:16] NuckingFuts has joined the channel [03:16] marcello3d: this? https://github.com/pkrumins/node-async [03:16] marcello3d: hmm no [03:16] marcello3d: https://github.com/caolan/async ? [03:16] shimondoodkin: from the ajax.org guys [03:17] tg: then it's this one: https://github.com/fjakobs/async.js [03:17] hij1nx has joined the channel [03:17] marcello3d: terrible library name :) [03:17] shimondoodkin: yes [03:17] shimondoodkin: https://github.com/ajaxorg/async.js/ [03:18] shimondoodkin: its the same [03:18] marcello3d: seems complex [03:19] marcello3d: I mean, there's definitely some good looking stuff there [03:19] shimondoodkin: its the best logical [03:19] marcello3d: but changes how you code [03:19] shimondoodkin: and best documented [03:19] shimondoodkin: better learn how to use promises [03:19] shimondoodkin: they are fine [03:20] marcello3d: promises? [03:20] sr has joined the channel [03:20] shimondoodkin: https://github.com/ry/node/wiki/modules [03:20] MikhX has joined the channel [03:21] shimondoodkin: see there [03:21] shimondoodkin: promise [03:21] isaacs: mkidder: what's `npm config get proxy`? [03:21] isaacs: why is that coming up as "true" [03:21] isaacs: ? [03:21] lukegalea has joined the channel [03:21] beppu has joined the channel [03:22] shimondoodkin: marcello3d: after tring several async libs and writing my own, after all i think promises is the way to go [03:24] ridinggiraffes has joined the channel [03:25] marcello3d: ok, I think I've seen this, I'll give it a second look [03:26] marcello3d: so much syntax:( [03:26] sr has joined the channel [03:26] tmm1 has joined the channel [03:26] marcello3d: step looked nice because it was very low on syntax, and its code was actually pretty lightweight [03:26] ridinggiraffes: Has anyone else had a permission issue when using install.sh to install npm on os X? [03:27] marcello3d: yes [03:27] marcello3d: don't remember how I fixed it though [03:27] marcello3d: sudo or chmod -R or someought [03:27] ridinggiraffes: I'm using sudo and the file already has read permissions for root [03:28] beppu has joined the channel [03:28] CIA-39: node: 03Ryan Dahl 07master * r7dad30a 10/ (12 files in 6 dirs): [03:28] CIA-39: node: Merge branch 'v0.4' [03:28] CIA-39: node: Conflicts: [03:28] CIA-39: node: src/node_version.h (+7 more commits...) - http://bit.ly/eE26KZ [03:30] shimondoodkin: marcello3d: here is my version for async https://github.com/shimondoodkin/node-inflow [03:31] marcello3d: brb [03:31] marcello3d: trying to switch to unimonitor [03:31] marcello3d: probably gonna put my computer to sleep ;D [03:31] steadicat has joined the channel [03:32] Phyllio has joined the channel [03:32] saikat has joined the channel [03:32] marcello3d has joined the channel [03:33] marcello3d: I was right [03:33] possibilities has joined the channel [03:34] lukegalea has joined the channel [03:35] ajnasz has joined the channel [03:35] beppu has joined the channel [03:35] marcello3d: hmm, couldn't the [shared] thing be replaced with closures? [03:35] shimondoodkin: yes [03:35] shimondoodkin: its additional [03:36] shimondoodkin: it is useful for distant functions [03:36] marcello3d: right [03:36] shimondoodkin: to not pass many args [03:37] ntr0py_ has joined the channel [03:39] jacobolus has joined the channel [03:39] tmm1 has joined the channel [03:39] rcol has joined the channel [03:39] zzak has joined the channel [03:39] zzak has joined the channel [03:48] marcello3d: this my bug? [03:48] marcello3d: node.js:116 [03:48] marcello3d: throw e; // process.nextTick error, or 'error' event on first tick [03:48] marcello3d: ^ [03:48] marcello3d: Error: ECONNRESET, Connection reset by peer [03:48] marcello3d: at Socket._readImpl (net.js:142:14) [03:48] marcello3d: at Socket._onReadable (net.js:608:22) [03:48] marcello3d: at IOWatcher.onReadable [as callback] (net.js:156:10) [03:49] JulioBarros has joined the channel [03:49] shimondoodkin: this measn you ware disconected from some server [03:49] shimondoodkin: means [03:49] marcello3d: yea, but it shut down node :( [03:50] marcello3d: and in this case, it was me hitting the server a bunch of times from my browser [03:50] sechrist has joined the channel [03:51] bubbafat has joined the channel [03:51] shimondoodkin: see this to learn how to make your app not crash :https://github.com/shimondoodkin/nodejs-autorestart [03:51] sechrist: Why are people using jquery to populate templates serverside? [03:51] sechrist: Isn't jsdom kind of slow performance wise? Seems like templates should be super quick [03:51] marcello3d: happened again :( [03:51] jdub: ACTION does a flailing muppet dance for 0.4.1 [03:52] mkidder has joined the channel [03:52] tmzt: can cluster do a git checkout for a new instance? [03:52] tmzt: anybody have a script for that [03:52] Aria: Well, you /can/ cache things, and jsdom isn't all THAT slow. [03:52] tmzt: sechrist: jade+ejs would be awesome [03:52] shimondoodkin: i guess its your bug, you try to use a socket tat is disconnected [03:53] noahcampbell has joined the channel [03:53] tmzt: meaning just value interopolation [03:53] Aria: tmzt: on('worker', function(id) { process.spawn('git checkout blah') }) ? [03:53] marcello3d: shimondoodkin: you sure? [03:53] sechrist: Is there a jade plugin for vim or something to manage the indentation? [03:53] sechrist: drives me nuts [03:53] shimondoodkin: no i don't see your code [03:53] marcello3d: but the crash isn't happening in my code [03:53] tmzt: so I'm going to make a jqui wysiwyg for jade [03:53] marcello3d: I have no way of catching it [03:54] tmzt: and use it as my primary data storage format for editable content [03:54] tmzt: anybody think that's insane ? :) [03:54] lukegalea has joined the channel [03:55] shimondoodkin: jqui wysiwyg for jade [03:55] shimondoodkin: [05:53] I have no way of catching it [03:55] shimondoodkin: [05:53] and [03:55] shimondoodkin: oops [03:55] marcello3d: looking at process.on('uncaughtException', function (err) { [03:56] tmzt: Aria: how does that trigger before the listen? [03:56] tmzt: what I want is this [03:56] tmzt: app.set('vhostmatch', a.domain) [03:56] Aria: Read cluster's code. It's neat and small. [03:56] tmzt: app.set('port', port) [03:56] maibus has joined the channel [03:56] shimondoodkin: marcello3d: you might want to do Error.stackTraceLimit = 100; https://github.com/shimondoodkin/nodejs-mongodb-app/wiki/Debugging-NodeJS-Apps [03:56] tmzt: app.set('tag', 'sha1') [03:56] tmzt: git checkout app.get('tag') [03:57] tmzt: app.listen(port, host) [03:57] tmzt: or something close to that [03:57] tmzt: ok [03:57] marcello3d: well, the stack trace was only 3 lines in this case [03:57] marcello3d: but that's good to know :) [03:58] cronopio has joined the channel [03:59] marcello3d: process.on('uncaughtException', function (err) ... seems to catch the exception (and not kill node.js) [03:59] zzak: sechrist: jade.vim [03:59] marcello3d: granted it catches it twice [03:59] marcello3d: for some reason [03:59] marcello3d: maybe it happens twice [04:05] tmzt: 04:03 < tmzt> ymm, if you kill a worker in cluster there's no reason you can't just require it after a git checkout [04:05] tmzt: 04:03 < tmzt> in one process [04:05] tmzt: 04:04 < tmzt> but what if you have a fatal exception, cluster still runs? [04:05] tmzt: 04:04 < tmzt> the other workers still run? [04:06] tmzt: okay, and if you npm install cluster, you just require it from a server.js and run that with node, or even spark2?? wow [04:08] MikhX has joined the channel [04:10] lukegalea has joined the channel [04:12] sechrist: zzak: I tried it but it's not putting the pipe characters and adding one space for me [04:12] sechrist: like I figured it would :\ [04:13] mscdex: node.js rules! [04:13] sechrist: science rules [04:13] mscdex: /nick BillNye [04:13] marcello3d: ooh, science [04:14] tmzt: sechrist: emedding script? [04:14] ntr0py_: I need to make an md5 hash of the UTF16LE representation of a string. Is v8/node using that representation already? [04:15] sechrist: tmzt: jade.vim [04:15] mynyml has joined the channel [04:16] tmzt: sechrist: yeah, I mean for the two space | two space thing [04:16] tmzt: for :javascript [04:16] MikhX_ has joined the channel [04:16] tmzt: I only use it for ga, but I"m switching that to jq later [04:16] zorzar_ has joined the channel [04:17] tmzt: sub, need gitfs suppoort :) [04:18] MikhX has joined the channel [04:19] mscdex: ntr0py_: no, utf-8 [04:20] mscdex: iirc [04:20] zzak: sechrist: ill be honest i havent used it myself, >< [04:20] ntr0py_: k thx [04:20] mscdex: ntr0py_: if you have the string in a Buffer, you could hash that instead i believe [04:20] shaver: code points in JS strings are UCS-2 [04:21] lukegalea has joined the channel [04:22] iFire has joined the channel [04:22] mscdex: looks like UCS-2 support was added to node last week [04:22] shaver: for Buffer object conversion, yeah [04:23] shaver: if you access the Nth character of a JS string, you get that character as UCS-2 [04:23] shaver: since like 1998, IIRC [04:23] ryah: ntr0py_: require('crypto').createHash('md5').update(Buffer('hello', 'ucs2')).digest('hex') [04:23] shaver: ryah: gesundheit [04:24] ryah: :) [04:24] alexandere has joined the channel [04:25] ntr0py_: ryah: thank you :-)) [04:26] MikhX has joined the channel [04:26] alexandere has joined the channel [04:26] jesusabdullah: Should I think of Crockford as an ass, or should I just think of jslint as being too persnickety? [04:27] SubStack: yes [04:27] jesusabdullah: I've read a lot of the jshint stuff and I'm not sure what I'm supposed to be g---- [04:27] jesusabdullah: ah [04:27] jesusabdullah: That clears THAT up [04:28] MikhX_ has joined the channel [04:29] sridharr has joined the channel [04:29] NuckingFuts has joined the channel [04:29] tglines has joined the channel [04:30] daveluke has joined the channel [04:30] joel has joined the channel [04:31] Guest34206: when can I find a list of the attributes on the request object? [04:31] Guest34206: where i mean [04:31] langworthy has joined the channel [04:32] ryah: Guest34206: http://nodejs.org/docs/v0.4.1/api/http.html#http.ServerRequest [04:33] Guest34206: thanks a lot [04:33] cduruk has joined the channel [04:34] SvenDowideit has joined the channel [04:37] jtsnow has joined the channel [04:38] joel_ has joined the channel [04:41] ridinggiraffes has joined the channel [04:46] ridinggiraffes: Has anyone else had a permission issue when using http://install.sh/ to install npm on os X? [04:46] ridinggiraffes: I ran the gzip command myself and it works, so it's an issue with how it's used in cli.js [04:48] cduruk has joined the channel [04:49] wdperson has joined the channel [04:49] gf3` has joined the channel [04:49] MikhX has joined the channel [04:51] MikhX has joined the channel [04:52] isaacs has joined the channel [04:53] micheil has joined the channel [05:02] jacobolu_ has joined the channel [05:03] Me1000 has joined the channel [05:03] hammerdr has joined the channel [05:04] lukegalea has joined the channel [05:04] amccollum has joined the channel [05:06] brapse has joined the channel [05:07] marcello3d: is there a preferred way for node instances to communicate with eachother [05:07] marcello3d: like some kind of p2p interaction [05:07] ryah: not yet [05:08] marcello3d: meaning something is in the works? or everything out there now sucks? or no one has thought to do this? [05:08] SubStack: there are lots of ways [05:08] SubStack: I'm partial to my own project, dnode [05:09] marcello3d: you should be [05:09] ryah: SubStack: i like it - it's too heavy imo [05:09] SubStack: ryah: working on that [05:10] SubStack: specifically I'm splitting up the protocol part of it from the stream-level part of it [05:10] marcello3d: how would you setup dnode if you had, say, 5 servers running 5 node instances each? [05:10] marcello3d: does each need its own port [05:10] marcello3d: and needs to a list of every other node to connect to? [05:11] SubStack: marcello3d: right now I have a central node that dispatches requests [05:11] SubStack: for browserling [05:11] gf3 has joined the channel [05:11] marcello3d: so each node submits to the master server [05:11] marcello3d: and it broadcasts out to the rest [05:12] SubStack: no need for broadcast in my case [05:13] SubStack: oh and check this out, unrelatedly: [05:13] marcello3d: just trying to imagine how a basic chat server would work [05:13] SubStack: marcello3d: I wrote one of those! [05:13] SubStack: http://github.com/substack/dnode/tree/master/examples/chat/ [05:13] marcello3d: because each web browser could connect to a different node instance [05:13] marcello3d: and any node instance could go down at any time [05:14] SubStack: but in other news I can now do: bigint(2).pow(159).add(1).rand(bigint(2).pow(160)).nextPrime() [05:14] SubStack: it's the awesome [05:14] marcello3d: nice [05:14] kwik101 has joined the channel [05:14] micheil has joined the channel [05:14] SubStack: for a random prime p where 2**159 < p < 2**160 [05:14] marcello3d: that example runs a single node instance though, right? [05:14] adrian_berg has joined the channel [05:15] SubStack: marcello3d: yes but the browser clients are also speaking the dnode protocol [05:15] marcello3d: I see that :) [05:16] marcello3d: but not exactly what I'm looking for :) [05:16] SubStack: well you brought up the example of chat [05:16] marcello3d: right, I mean, one could do the same thing with socket.io, right? [05:16] SubStack: also, super awesome! That prime generator I just pasted only takes around 2 ms [05:16] marcello3d: that's nuts [05:17] MikhX has joined the channel [05:17] marcello3d: my question is when you're running multiple node instances [05:17] marcello3d: regular socket.io code isn't enough [05:17] marcello3d: because if someone connects to one node instance, they'll be split from someone who connects to the other [05:17] marcello3d: (in a load balancer situation) [05:17] SubStack: the learnboost crew released cluster this week [05:18] SubStack: seems to be relevant to what you're looking for [05:18] marcello3d: I don't think it provides a means for node instances to talk to eachother though [05:18] langworthy has joined the channel [05:18] jesusabdullah: Been meaning to mess with cluster [05:18] jesusabdullah: well, kinda [05:18] jesusabdullah: been meaning to give it a closer look [05:18] marcello3d: which is exactly my point [05:18] devrim has joined the channel [05:18] marcello3d: once you're using something like cluster, you need a way for workers to talk to each other [05:19] marcello3d: especially in a multi-server case [05:19] Aria: Yeah. At that point you're dealing with some sort of IPC [05:19] Aria: Cluster is clever, but simplistic. It doesn't solve that problem. [05:19] Aria: .oO(Reliable multicast.) [05:19] marcello3d: yep [05:20] jesusabdullah: You can make dnode communicate between processes and all, but it's network based---idk if that's okay or not [05:20] marcello3d: that's fine [05:20] marcello3d: networking is fast :) [05:20] jesusabdullah: and it doesn't really automagically manage a pool or anything---you'd have to add that yourself [05:20] marcello3d: yea, that's the missing bit, I think [05:20] jesusabdullah: It's certainly doable [05:21] marcello3d: naw. it's impossible. I'm giving up now [05:21] marcello3d: *goes home* [05:21] SubStack: I started messing with a project to do that on top of dnode but gave up [05:21] marcello3d: (oh wait) [05:21] SubStack: dmesh, it was called [05:21] marcello3d: hehe [05:21] marcello3d: where'd you get stuck? [05:21] SubStack: but then I realized I didn't need it [05:22] jesusabdullah: I played around with something where clients could connect to a server and get jobs dispatched to them, pseudo-mapreduce style [05:22] jesusabdullah: I haven't really used REAL mr so idk if I'm doin it rite ;) but I was able to get a worker to start hammering at a problem alright [05:23] jesusabdullah: ie, the monkeys-typing-shakespeare approach applied to the Gettysburg Address [05:23] marcello3d: seems like something suited for mongodb [05:23] marcello3d: if the map reduce problem involves any kind of actual data [05:24] jesusabdullah: You mean, pulling chunks from a mongodb and pushing chunks of solved problem? [05:24] jesusabdullah: Yeah, that sounds like a reasonable approach [05:24] marcello3d: no, mongodb itself has a javascript based map reduce engine [05:24] jesusabdullah: orly? [05:24] marcello3d: you'd have it do everything [05:25] jesusabdullah: Hmm [05:25] jesusabdullah: Interesting [05:25] marcello3d: http://www.mongodb.org/display/DOCS/MapReduce [05:25] marcello3d: I think they run spidermonkey [05:26] jesusabdullah: I think couch also has mr baked in [05:26] jesusabdullah: I should play with this someday [05:26] SubStack: today is some day! [05:26] jesusabdullah: Too bad most of the problems I want to solve aren't embarrassingly parallel :( [05:26] marcello3d: sounds like you just want to use map reduce, and don't have a particular problem that requires it? [05:26] jesusabdullah: Indeed :P It sounds cool, but why play with it if I don't have a particular problem? [05:27] marcello3d: no good reason [05:27] bingomanatee: marcello3d: I have a blog on M/R in mongo - native http://www.wonderlandlabs.com/wll_drupal/os/node/mongodb/map_reduce.html [05:27] jesusabdullah: I'm an engineer by day. My problems usually have to do with solving linear equations [05:27] jesusabdullah: In fact, what I SHOULD be working on [05:27] SubStack: node-lapack! [05:27] jesusabdullah: basically does curve fits [05:27] jesusabdullah: tssch [05:27] jesusabdullah: that too ;) [05:27] bingomanatee: ACTION = mX + B [05:27] SubStack: jesusabdullah: you can use node-bigint for reference [05:27] SubStack: crazy easy to do with node-ffi [05:28] jesusabdullah: Actually, I'd rather either do node-gsl or node-octave [05:28] SubStack: low-hanging npm fruit [05:28] bingomanatee: Its not the size of the int - its how you use it [05:28] jesusabdullah: and then I could ditch python...FOREVER [05:28] SubStack: dun dun dun [05:28] jesusabdullah: substack uses his int quite effectively---it's prime after all [05:28] jesusabdullah: HURR [05:29] marcello3d: OI! [05:29] jesusabdullah: Actually, doing numerical stuff in node is something that interests me quite a bit [05:29] jesusabdullah: I use python and numpy/scipy a lot of the time, but I find that python ends in me writing a lot of stuff like, [05:30] jesusabdullah: f(h(g([x for some BS in some other BS])))[0,1] [05:30] jacobolus has joined the channel [05:30] jesusabdullah: I guess I could potentially see the same thing in javascript, but I'd like to think that javascript's added flexibility would lend itself to prettier equivalent expressions [05:30] bingomanatee: seems to me a functional language with callbacks would be useful for math. [05:31] jesusabdullah: Yes it would [05:32] marcello3d: isn't javascript a little verbose? [05:32] jesusabdullah: unfortunately, python does not lend itself to functional programming or CPS [05:32] marcello3d: seems like scala would be a better fit [05:32] jesusabdullah: Maybe [05:32] bingomanatee: never learned it. Seems nice but never had the call. [05:32] jesusabdullah: Yeah, I never bothered either [05:32] marcello3d: ah [05:32] jesusabdullah: Scala sounded like Prettier Java to me [05:32] bingomanatee: I know a recruiter who is looking for python people. [05:32] jesusabdullah: never got into java [05:32] marcello3d: yea, I'm trying to decide between using scala and node.js [05:32] marcello3d: scala is really neat [05:33] jesusabdullah: I know python, but idk if I'm a "python person," especially these days [05:33] marcello3d: but the compiler is sloooow [05:33] marcello3d: (but awesome) [05:33] bingomanatee: You should try doing the same problems in both., It would make a great blog article. [05:33] marcello3d: I did [05:33] marcello3d: I wrote a whole site in scala + play framework + mongodb-casbah + sass + scalate [05:33] marcello3d: and ported it to node.js [05:33] marcello3d: most of it [05:33] marcello3d: still porting it :) [05:33] marcello3d: the problem is both technologies are pretty "fresh" [05:34] marcello3d: so they're both lacking in different areas [05:34] marcello3d: making the comparisons tricky [05:34] MikhX has joined the channel [05:34] jesusabdullah: https://github.com/jesusabdullah/libtsl2/blob/master/temp_rods/temp_rods.pdf my latest project, wherein I'm using LabVIEW, which is tbh pretty crappy [05:34] ryah: scala is a really terrible language. it's too clever [05:34] marcello3d: haha [05:34] mkidder has joined the channel [05:34] ryah: languages should be boring [05:34] bingomanatee: only if you assume that a singular comparison is necssary [05:34] jesusabdullah: In other projects I've used a lot of Matlab [05:34] ryah: the libraries should be clever [05:34] marcello3d: ryah: but that's scala [05:34] marcello3d: most of scala is libraries [05:34] ryah: you know you can overload the ':' operator? [05:34] marcello3d: scala is actually simpler than java [05:35] marcello3d: most of the stuff is defined in itself [05:35] marcello3d: with method signatures that make no sense :D [05:35] marcello3d: but hey, if your code compiles, it probably works [05:35] ryah: how are you supposed to read it when ':' is defined to be some random function? [05:35] ryah: if you want to understand code quickly a really stupid language is helpful. [05:35] bingomanatee: Java is a pretty simple language at the core. [05:35] ryah: C is pretty much exactly what you want [05:35] jesusabdullah: Guys! Let's bash on a language we can all agree on! https://github.com/jesusabdullah/anisotropy_fea/blob/master/worker.m [05:36] bingomanatee: Tighly typed but simple. [05:36] Aria: Indeed. As long as it's not so verbose that you have to read a ream to get a simple concept across [05:36] bingomanatee: You can learn most of Java's basic syntax in a week. [05:36] marcello3d: yea [05:36] marcello3d: scala, a couple months maybe [05:36] zzak: tried scala-koans yet? [05:36] Aria: Yeesh, jesusabdullah. My eyes are bleeding now. [05:36] SubStack: in haskell you can introspect the types of the operators [05:36] jesusabdullah: I think what I don't like about java---and keep in mind I haven't really used java much since I took CS 101 years and years ago---but I think my issue with it is that it's so class-oriented [05:37] SubStack: (+) :: (Num a) => a -> a -> a [05:37] ryah: I mean if you could do things like http.request({ host: 'google.com', port: 80}, onConnection) [05:37] jesusabdullah: I'm not huge on classes. [05:37] ryah: in C... [05:37] ryah: or something like C [05:37] marcello3d: jesusabdullah: objective-c? [05:37] jesusabdullah: No [05:37] ryah: it would be perfect [05:37] jesusabdullah: matlab [05:37] marcello3d: ah [05:37] SubStack: pretty nifty thing to have if you're rolling with a strictly typed language [05:37] marcello3d: filename collision ;D [05:37] jesusabdullah: github just THINKS it's objective-C because it's not very smart [05:37] ryah: like being able to encode a JSON like object into the stack frame? [05:37] jesusabdullah: I'd put forth the preposition that The Mathworks was here first [05:37] bingomanatee: Simplicity is not the holy grail. Lisp is "Simple". [05:37] ryah: still staticly typed, no GC [05:38] jesusabdullah: lisp is also pretty rad, bingomanatee [05:38] Aria: Mmm. I'd dig that. [05:38] marcello3d: the only thing javascript needs [05:38] Aria: GC is so the devil. [05:38] daveluke has joined the channel [05:38] ryah: bingomanatee: no, lisp is not simple. [05:38] marcello3d: is a shorthand for function() { return ... } [05:38] SubStack: I hate allocating and freeing memory [05:38] ryah: lisp IMO is too clever [05:38] jesusabdullah: ME TOO [05:38] ryah: C is simple. [05:38] marcello3d: even something like #() { return ... } would be an improvement [05:38] ryah: there is nothing clever. [05:38] jesusabdullah: I think the idea of s-expressions is relatively simple [05:38] Aria: C's simple but crufty. [05:38] SubStack: ryah: macros!~ [05:38] zzak: i like ObjectSpace [05:38] ryah: no [05:38] bingomanatee: #() { } Lambda notation is in the works. [05:38] SubStack: C has macros. Your argument is invalid. [05:39] bingomanatee: For JavaScript. [05:39] ryah: ACTION is going to give away his secret programming language he's building [05:39] marcello3d: c.js ? [05:39] jesusabdullah: Jabbascripts? [05:39] ryah: more like js.c [05:39] marcello3d: :) [05:39] bingomanatee: Nascal>? [05:39] Aria: "v6" ;-) [05:39] marcello3d: prius ;D [05:39] ryah: nah, just C but with some nicer syntax for a few things [05:39] Aria: ACTION chortles. [05:39] bingomanatee: Objective Fortran? [05:39] marcello3d: like c99? ;D [05:40] ryah: like creating structs: { host: "127.0.0.1", port: 80 } [05:40] bingomanatee: Mobile COBOL? [05:40] jesusabdullah: I'd use js.c [05:40] jesusabdullah: probably [05:40] marcello3d: ryan: isn't there a way to do that? [05:40] jesusabdullah: I'd actually like something aimed towards microcontrollers [05:40] bingomanatee: Social Punchcarding? [05:40] SubStack: sounds like lua [05:40] ryah: no VM though [05:40] jesusabdullah: that has more of the toys that I'm used to, but doesn't piss me off and compiles to C [05:40] ryah: fundemental difference [05:40] ryah: just compile to machine code [05:40] Aria: Yeah. Something that doesn't have a hash table as its most elementary data structure. [05:41] ryah: (well llvm) [05:41] Aria: .oO(ASN.1 literals.) [05:41] ryah: i could probably write the compiler in node :) [05:41] marcello3d: asian literals? [05:42] bingomanatee: "Ancient Chinese Algorithm, eh?" [05:42] SubStack: I'd rather node-waf was written in node :p [05:42] jesusabdullah: hah :D [05:42] jesusabdullah: That'd be sweet [05:42] jesusabdullah: frickin' waf [05:42] jesusabdullah: i thought I'd like it [05:42] jesusabdullah: but I didn't [05:42] marcello3d: what does waf stand for? [05:42] Aria: I think it might be a typo for "wtf pos build pls" [05:42] bingomanatee: ACTION wants the month he spent learning JavaFX back [05:42] SubStack: waffles are fabulous [05:42] marcello3d: bingomanatee: lolz [05:43] bingomanatee: I actually think that at the conceptual level there is a lot of genius in JavaFX - it just has major perfomance issues. [05:43] jesusabdullah: I think it stands for, "What A Fuck-up" [05:43] jesusabdullah: PRETTY SURE [05:44] SubStack: Wtf Another Friggin' build system [05:44] jesusabdullah: Waf is Another Fucking broken build system [05:44] jesusabdullah: Time to make YABS: Yet Another Build System [05:44] jesusabdullah: except THIS time it won't suck [05:45] Aria: Good luck with that. [05:45] Aria: Everything that tries not to suck either ends up being cmake or autotools. [05:45] Aria: Or worse, both at once. [05:45] jesusabdullah: #fuckcmake [05:45] jesusabdullah: #cmakesucks [05:45] SubStack: I'm pretty sure if you set out explicitly to suck you'll still be better than everything else [05:45] seivan: Hmm is there a broadcast method for all the sockets? [05:45] marcello3d: hmmm [05:45] marcello3d: something like sbt? :D [05:45] jesusabdullah: I think there should be more tweets tagged with #cmakesucks [05:46] SubStack: I've done my part! [05:46] bingomanatee: SubStack: apparently you've never met anyone who works for Microsoft [05:47] marcello3d: learn boost keeps making me think of c++ boost [05:47] jesusabdullah: marcello3d: ME TOO [05:47] jesusabdullah: Well, for a while there [05:47] SubStack: speaking of things that suck.... [05:48] SubStack: boost... bad memories [05:48] jesusabdullah: then they became a big enough name that I started thinking of learnboost as the up-and-coming Blackboard killer [05:48] jesusabdullah: Speaking of, BlackBizzy got updated at my school. It's less sucky now. [05:48] SubStack: jesusabdullah: that's not saying much! [05:49] jesusabdullah: Tru Dat [05:49] jesusabdullah: I got to use the back-end-ish stuff as a TA, and it's even shittier than you would've seen [05:50] marcello3d: man [05:50] marcello3d: when I was a ta, we wrote our own system [05:50] marcello3d: php-mysql cms ftw :) [05:51] AAA_awright: jesusabdullah: Semantic build system [05:51] jesusabdullah: SBS, eh? [05:51] jesusabdullah: marcello3d: I could enter grades on blackboard [05:51] AAA_awright: jesusabdullah: So here's a quick write up of my idea for a Better Build System http://69.72.216.27/guru/ [05:52] gravyrobber has joined the channel [05:52] jesusabdullah: so it worked for collaborating with my boss [05:53] jesusabdullah: Did you actually make it, AAA_awright ? [05:53] jesusabdullah: Or is it just an idea? [05:53] AAA_awright: Uh no. [05:53] jesusabdullah: It's a cool idea, but it sounds hard. [05:53] AAA_awright: Just specification in progress, of sorts. [05:53] jesusabdullah: I see. [05:53] AAA_awright: jesusabdullah: The idea is you describe what each resource (like source file) do, instead of what to do with resources [05:53] AAA_awright: jesusabdullah: The idea is you describe what each resource (like source file) does, instead of what to do with resources [05:53] jesusabdullah: hmm [05:53] dustinwhittle has joined the channel [05:53] jesusabdullah: Can we do it in json? [05:54] marcello3d: ugh RDF [05:54] jesusabdullah: xml is like an automatic turn-off for me [05:54] marcello3d: should die [05:54] jesusabdullah: Both metaphorically and sexually [05:54] Aria: Aw. [05:54] marcello3d: sexually? [05:54] jesusabdullah: "Oh baby close my tag! CLOSE MY TAG" "Ugh I can't do this" [05:54] Aria: I wish RDF-XML hadn't given RDF such a bad name. [05:54] bingomanatee: Xml is clunky but its not wholly different from JSON. [05:54] AAA_awright: What XML? [05:55] marcello3d: aria: what else is rdf defined in? [05:55] SubStack: xml is very different from json [05:55] jesusabdullah: the rdf [05:55] Aria: RDF is a data model, not its serialization. [05:55] marcello3d: I've only ever seen it in xml [05:55] SubStack: in terms of libraries that are easy to get shit out of [05:55] marcello3d: vomit-full xml [05:55] Aria: Turtle, TriX, n3, ntriples... [05:55] bingomanatee: They both annotate arbitrary nesting. [05:56] Aria: GRRDL, and RDFa too. (RDFa is awesome) [05:56] marcello3d: xml is structured with multiple interpretations though [05:56] bingomanatee: XML has a lot of flaws but the impulse to store arbitrarily nested information was a healthy one. [05:56] jesusabdullah: They're obviously both shittier versions of s-expressions you guys! [05:56] AAA_awright: marcello3d: The idea is to NOT use XML, but to embed RDF directly in source code, to make it meaningful enough so a build system can run commands like "Build this program" or "Create this .deb package" [05:56] jesusabdullah: GEEZ [05:56] marcello3d: for example vs [05:57] marcello3d: could mean the same thing, or different things [05:57] AAA_awright: Maybe I should say that explicitly [05:57] jesusabdullah: You lost me, bro [05:57] marcello3d: depending how you design your data structure [05:57] Aria: Well, that's the problem with trying to encode meaning and not data. [05:57] jetheredge has joined the channel [05:57] AAA_awright: What's with all these people who think RDF is XML, the semantic web community hasn't used RDF/XML for years [05:57] Aria: ;-) [05:57] jesusabdullah: All I know is, I saw tags [05:57] Aria: AAA_awright: Utter promotion fail. [05:58] marcello3d: AAA_awright: so like javadocs? [05:58] jesusabdullah: What does rdf stand for, anyway? [05:58] AAA_awright: marcello3d: I've never had such a problem the context almost always makes the dignificance of order clear [05:58] Aria: I think it's one of those cases of "people who do not understand it will be forced to reinvent it badly" [05:58] jesusabdullah: resource description format? [05:58] AAA_awright: marcello3d: Right, but add the ability to compile with it too [05:58] Aria: Framework. [05:58] jesusabdullah: framework [05:58] jesusabdullah: I see [05:58] marcello3d: sounds good [05:58] AAA_awright: Yep, close :) [05:59] jesusabdullah: I'm gonna pretend it stands for "radtastic description framework" [05:59] jesusabdullah: See? You gotta REINVENT rdf to be cooler [05:59] jesusabdullah: and less -y [05:59] AAA_awright: It just describes "resources" identified by URIs with data (also URIs) [05:59] marcello3d: AAA_awright: how does it figure out dependencies, it "just works" on a per-language basis? [05:59] jesusabdullah: Instead of less-thans and greater-thans, we will now use strippers. [05:59] jesusabdullah: YEAH [05:59] Aria: The only problem with building simple build systems is that authors are insane. [06:00] AAA_awright: marcello3d: You would specify what API function, exactly, it is you are using, and which package it's found in, and it would figure all that out (supposedly) [06:00] Aria: Oh, and operating systems. [06:00] Aria: Oh, and compilers. [06:00] bingomanatee: There is only one feature of XML that is truly unique in comparison with JSON, that being attributes - and considering that you coulnt' have the web without HTML which is an XML variant, O [06:00] bingomanatee: I'd say XML did more good than harm. [06:00] AAA_awright: So xml->whatever is "libxml2" in meta-comments [06:00] marcello3d: AAA_awright: so it won't figure it out from #import "foo.h" ? [06:00] jesusabdullah: I just don't like specifying things in xml [06:00] Aria: HTML predates XML [06:00] AAA_awright: marcello3d: Actually it probably should yeah [06:00] jesusabdullah: I'm glad that html exists and all [06:00] jesusabdullah: and other people can HAVE their xml [06:00] jesusabdullah: but, man [06:00] jesusabdullah: it just rubs me the wrong way for some reason [06:01] AAA_awright: marcello3d: So from analyzing the source, it can generate RDF data, and from that data, other tools come in and build the software, document it, package it, install it, etc [06:01] Aria: Yeah, it mostly stinks. [06:01] marcello3d: xml is great for marking up text/etc [06:01] marcello3d: json sucks for that [06:01] AAA_awright: XML is great for what it's designed for [06:01] AAA_awright: Markup formats [06:01] Aria: AAA_awright: I think the accidental genius in guru, there, is that the tools can be somewhat independent and plentiful and still interoperate there, since they're operating on meaning. [06:01] marcello3d: who wants to write ["foo", {bold:"blah"}, "bar"] [06:01] AAA_awright: Aria: Exactly [06:01] marcello3d: when you can write fooblahbar [06:02] robotarmy has joined the channel [06:02] AAA_awright: Aria: That says it brilliantly [06:02] jesusabdullah: tru dat, marcello3d [06:02] bingomanatee: ACTION misses  [06:02] jesusabdullah: As a mark-up it ain't too bad [06:02] marcello3d: but I don't understand why people use xml for configuration (I mean, I do understand, but I'm not sure why people still do it) [06:03] jesusabdullah: I'm partial to latex myself [06:03] Aria: I really need to get back to RDF tools. . . It's actually the reason I started playing with node, wanting a language that wasn't Ruby or Java, yet the RDF-heads grokked. [06:03] marcello3d: guess it comes down to what parsers were available in most languages [06:03] jesusabdullah: even though it's just as backwards as html [06:03] AAA_awright: Aria: I'm working on RDF stuff with Node.js [06:03] AAA_awright: Aria: http://magnode.org [06:03] Aria: Awesome! [06:03] marcello3d: and corporate backing [06:03] jesusabdullah: I saw a guy doing something with that stuff at AGU [06:03] jesusabdullah: and semantic web stuff [06:03] Aria: Oh, wow, AAA_awright [06:03] marcello3d: what's the coolest semantic web stuff out there? [06:04] AAA_awright: Aria: I have a library based off of http://github.com/webr3/js3 I'm gonna publish soon, when I get around to it [06:04] bingomanatee: I've never seen any absolutely defensible argument why one syntax is better or worse than another for config files. [06:04] marcello3d: besides nmagnode [06:04] bingomanatee: XML, INI, YAML all get the job done. [06:04] tim_smart has joined the channel [06:04] jesusabdullah: perl is obviously where it's at [06:04] Aria: bingomanatee: greppability. ALl three of those fail when you only show matching lines. [06:04] jesusabdullah: Truth be told, I *like* perl as a config language [06:04] marcello3d: bingomanatee: syntax? probably whatever has the least characters [06:05] marcello3d: aria: but maybe you just need a smarter grepper [06:05] marcello3d: a semantic grepper ;D [06:05] mikeal has joined the channel [06:05] bingomanatee: that presumes machine readibility is the only criteria. I think thats flawed logic. [06:06] Aria: Hehe. The whole swiss army chainsaw approach is what makes good configs great. [06:06] AAA_awright: Aria: That's self hosting btw... The idea is to generate HTML or n3 or some other representations of RDF resources, while preserving the RDF facts in RDFa metadata [06:06] AAA_awright: I'm suprised I can't find anything like it [06:06] Aria: I really like Apache's configs for that ... grep 'thatthingIsawinaalog' /etc/httpd/conf.d -r .... oh! I see what they did there. [06:06] jesusabdullah: I can't think of anything sufficiently smartassed to say [06:07] jesusabdullah: Sorry guys [06:07] marcello3d: stopped listening at "I really like Apache" [06:07] bingomanatee: Actually the INI format probably searches best. [06:07] Aria: Hehe. People've tried, but they never get very far because they start inventing an RDF editor or an OWL inference engine again [06:07] fr0stbyt3 has joined the channel [06:07] Aria: ACTION laughs. I hate Apache nowadays, but the config format works. (Pseudo-XML aside... that's the edge where it sucks.) [06:07] AAA_awright: For Node.js, I just use JSON, it's structured very similar to .ini and not too hard to format if you're working in Javascript anyways [06:08] bingomanatee: Every line of an INI file has the full path - so if thats your criteria INI is the tops. [06:08] Aria: ... What INI file format are you using?! [06:08] marcello3d: not true [06:08] arlolra has joined the channel [06:08] marcello3d: it has [groups]! [06:08] AAA_awright: marcello3d: Like Git's config? [06:08] bingomanatee: Ya, for Node, a config format that the language itself is built to parse is the easy answer. [06:08] w0rse_ has joined the channel [06:09] jesusabdullah: Speaking of perl-configs, I started playing a little with lighttpd the other day [06:09] bingomanatee: I use INI for Zend Framework project config files and form defs. [06:09] AAA_awright: ["group" "subgroup"] item=value [06:09] AAA_awright: group.subgroup.item=value [06:09] Aria: (Worse, output from a grep on an ini file can yield a syntactically correct but broken as all get-out config.) [06:09] jesusabdullah: Nice lil' webswerver! [06:09] jesusabdullah: I've been meaning to make it dispatch to node instances [06:09] marcello3d: I run lighttpd [06:09] jesusabdullah: but I've been LAZY [06:09] AAA_awright: jesusabdullah: Why not Nginx? [06:09] Aria: Yay lighty! ... Boo lighty's config files. [06:09] AAA_awright: jesusabdullah: I've used lighttpd before but it's... idk [06:09] marcello3d: preferred it over nginx because of the documentation [06:09] jesusabdullah: A friend of mine made a wiki that was meant to run using lighttpd [06:09] AAA_awright: Didn't work out as well. Cherokee too, I like Nginx the best [06:09] hammerdr has joined the channel [06:09] jesusabdullah: so I gave it a shot [06:09] seivan: eh [06:10] jesusabdullah: It's cgi so I bet it could run on nginx easily enough [06:10] jesusabdullah: I just haven't had a chance to try nginx [06:10] seivan: Has anyone used the redis client? https://gist.github.com/982fddb703d2d3848a08 I don't get the messages or the puts [06:10] AAA_awright: Aria: Any examples of things people've tried? [06:11] jesusabdullah: lighttpd seemed non-derpy, at least [06:11] jesusabdullah: :D [06:11] Aria: Not offhand. I stopped paying attention once I noticed the sort of wankery they stuck in. [06:11] jesusabdullah: Leave the derpy to me! [06:11] jesusabdullah: I GOT THIS BRO [06:11] Aria: jesusabdullah: It totally is. And Jan's a decent programmer, and a nice guy. [06:11] Aria: AAA_awright: just so you know, cloning git://git.bzfx.net/~aaa/metawiki.git gives ECONNREFUSED [06:11] AAA_awright: Aria: No Git server right now probably... [06:11] Aria: Right. Just sayin'. HTTP worked. [06:12] AAA_awright: Aria: Yeah it wasn't running [06:12] jesusabdullah: C: [06:12] dustinwhittle has joined the channel [06:12] AAA_awright: Aria: I'll have to publish 1-2 other libraries too [06:13] jesusabdullah: What language do you use to do mapreductions in mongo? [06:13] jesusabdullah: Is that java? [06:13] jesusabdullah: No, not java [06:13] Aria: javascript. [06:13] jesusabdullah: wth is that? [06:13] AAA_awright: Aria: So my count for the number of people on the face of the earth that use RDF and Node.js is 3 [06:13] Aria: It's a start! [06:13] seivan: Hey [06:13] seivan: Anyone done redis? [06:13] jesusabdullah: http://www.mongodb.org/display/DOCS/MapReduce You sure Aria? This stuff has ARROWS in it [06:13] seivan: Has anyone used the redis client? https://gist.github.com/982fddb703d2d3848a08 I don't get the messages or the puts [06:13] seivan: I am using https://github.com/mranney/node_redis [06:14] jesusabdullah: I mean, I believe you because you're a smart dude but this almost looks like coffee [06:14] Phyllio has joined the channel [06:14] marcello3d: anyone used cherokee [06:14] Aria: ... Arrows? [06:14] marcello3d: http://www.cherokee-project.com/ [06:14] fr0stbyt3: seivan: looks like ruby to me... not node? where the hell am i [06:14] jesusabdullah: Yeah [06:14] Aria: marcello3d: Briefly. It doesn't map URLs to a 404-handler or directory index script easily, so I abandoned it. [06:14] seivan: fr0stbyt3: coffee [06:14] seivan: fr0stbyt3: it doesn't look like python? [06:14] seivan: It's more of a python thing [06:14] seivan: Anyway any idea? [06:14] jesusabdullah: should've taken a left turn at albequerqe? [06:15] Aria: I see no arrows, jesusabdullah... [06:15] Aria: I mean, some syntactic placeholders , but that looks like it's not the language itself. [06:16] marcello3d: there's a lot of pseudocode on that page [06:16] jesusabdullah: Must be the pseudocode [06:17] marcello3d: function map(void) -> void [06:17] marcello3d: implies no args and no return value [06:17] tedsuo has joined the channel [06:17] marcello3d: function finalize(key, value) -> final_value [06:17] marcello3d: couple args and a return value [06:17] marcello3d: go figure [06:17] jesusabdullah: Yeah, that guy marcello [06:18] jashkenas has joined the channel [06:20] marcello3d: what logging engines do people use? [06:20] AAA_awright: System log? [06:20] marcello3d: winston? [06:20] marcello3d: loggly? [06:20] marcello3d: other? [06:20] jesusabdullah: console.log ;) [06:20] AAA_awright: console.log? [06:20] marcello3d: in production? [06:20] AAA_awright: console.error? [06:20] AAA_awright: And define console.log=function(){} in production [06:20] Aria: Stuff logged by console.log in production for me ends up in syslog. [06:20] Aria: So it works. [06:20] jesusabdullah: Most of my projects are ad-hoc numerical "experiments" [06:21] marcello3d: how do you coalesce from multiple servers? [06:21] Aria: remote syslog! [06:21] jesusabdullah: In one project I did logging via email [06:21] marcello3d: ok [06:21] jesusabdullah: Actually, I linked it earlier, I believe [06:21] marcello3d: so roll your own [06:21] jesusabdullah: I'd have my remote job email me when it broke [06:21] mark_ has joined the channel [06:21] jesusabdullah: but seriously, Winston sounded kinda nice [06:21] jesusabdullah: same with loggly [06:21] Aria: (I'm a bit of an oldschool unix geek, and a sysadmin at heart. So I tend toward unixy ways of doing things.) [06:22] marcello3d: hey, if it works...I guess [06:22] jesusabdullah: Yeah, irl I'd probably log with console.log and then do something with that output if I cared [06:22] jesusabdullah: But, seeing as though I'll probably be working with someone else, I'd do what they do [06:22] marcello3d: http://blog.nodejitsu.com/put-your-logs-anywhere-with-winston [06:23] AAA_awright: Aria: I replaced js3 with http://git.bzfx.net/~aaa/node-rdf.git/ [06:23] AAA_awright: I'm going to need a better RDF database, right now I'm parsing my own SPARQL (with a fairly slow parser I programmed that takes 20ms for complex queries) and quering my own memory store from it... No way to ORDER or LIMIT or OFFSET right now so I'll need a better system sooner or later... It beats the MySQL backend I had a month ago, though [06:23] Aria: Hehe. [06:23] Aria: That's the other reason people fail at this whole RDF thing. They reinvent several of these wheels. [06:23] seivan: Ehm [06:23] seivan: Anyone who used redis in node? [06:24] seivan: could help me out, I can't seem to subscribe on messages [06:24] AAA_awright: Aria: There's absolutely _nothing_ for Javascript, for what I'm doing, though... I hate to re-invent the wheel but... I mean... what else is there? [06:24] jesusabdullah: Oh, that guy I met at AGU used sparql [06:24] Aria: Yeah. At least you have the chance to BE the wheel in this language. [06:24] seivan: https://gist.github.com/53094a54b96e8be0f94b [06:24] Aria: Rather than being the person who wrote their own because everything else was 80% there, and only needed the other 80% of the work. [06:25] seivan: alright [06:25] seivan: got it workin [06:25] AAA_awright: Aria: The idea is in the future there might be a compiled .node module that will read from other databases not in memory, for really large data sets [06:25] marcello3d: AAA_awright: is there any standalone database you can use? [06:25] marcello3d: with a rest api or whatever [06:25] Aria: Hehe. So many! [06:26] jesusabdullah: FOUR HUNDRED DATABASES [06:26] marcello3d: five hundred of them! [06:26] marcello3d: databases everywhere! [06:26] Aria: of them. [06:27] marcello3d: (http://www.youtube.com/watch?v=Y6rE0EakhG8) [06:27] AAA_awright: marcello3d: 4store is a nice RDF database, I've looked at it, but it doesn't have all the features I need... It might work to an extent [06:27] AAA_awright: In particular I've had problems figuring out how to query an RDF Seq and RDF collections [06:27] admc has joined the channel [06:27] AAA_awright: It's almost imposible to use RDF Collections with SPARQL 1.0 [06:28] AAA_awright: It's all chained/linked lists [06:28] gravyrobber has joined the channel [06:29] Aria: Yeah. [06:29] Aria: It's limited and they admit that. [06:29] AAA_awright: I need something that supports something similar to the RDFa API draft [06:30] AAA_awright: Also, the ability to pre-bind arbritary variables to a certain value, so I'm not substituting values in and other nonsense. I shouldbe able to have prepared statements [06:31] Aria: Yeah. [06:33] fmeyer has joined the channel [06:40] lukegalea has joined the channel [06:45] adrian_berg has joined the channel [06:46] jesusabdullah: It seems like we lost our train of thought here! [06:47] AAA_awright: What was that? [06:47] jesusabdullah: I don't know! [06:47] jesusabdullah: But I was enjoying it [06:48] marcello3d: might want to get that checked out [06:48] AAA_awright: So the big idea here is the ability to generate documents based on RDFa templates, that preserves the original RDF facts the document was created from: http://magnode.org/xml-rdft/ is an idea of how it might work. Right now I'm just generating javascript objects to pass to Jade templates. [06:49] AAA_awright: I don't want to have to parse XML and RDFa so maybe a modification to Jade so it natively recognises RDFa attributes and RDF prefixes is in order [06:49] jesusabdullah: Just what are you suggesting, marcello?? [06:50] AAA_awright: marcello3d: Yeah get what checked out? [06:50] Aria: Mmm, definitely better to work with jade than parse and do stuff there. [06:50] jesusabdullah: So, jade's not bad? [06:50] jesusabdullah: ACTION should give jade a shot [06:50] marcello3d: ;D [06:51] marcello3d: I'm using jade [06:51] marcello3d: only thing I don't like is the commas [06:51] jesusabdullah: hmm [06:51] marcello3d: in attribute lists [06:51] Aria: I really need to put the RDFa support into the HTML5 parser. [06:51] jesusabdullah: I should build a blogging system in node [06:51] lukegalea has joined the channel [06:51] jesusabdullah: that behaves how I want it to [06:51] marcello3d: go for it [06:51] jesusabdullah: tbh I'm mostly happy with jekyll/github pages [06:51] jesusabdullah: and I'm LAZY [06:51] jesusabdullah: and have too much shit on my plate anyway [06:51] jesusabdullah: >_< [06:52] jesusabdullah: but that'd be cool [06:52] jesusabdullah: building my pages in jade instead of by-hand [06:52] jesusabdullah: s/by-hand/straight html/ [06:52] Aria: Do check out wheat, then, jesusabdullah [06:52] jesusabdullah: Yeah, was thinking I should [06:52] marcello3d: you could general static html [06:52] marcello3d: with jade [06:52] AAA_awright: jesusabdullah: Jade is pretty awesome [06:52] jesusabdullah: Saw something the other day too that was kinda cool [06:52] jesusabdullah: doxy? Was that it? [06:52] jesusabdullah: It was a python tool [06:52] AAA_awright: Aria: Are you working on something? [06:52] jesusabdullah: Zed Shaw tweeted about it [06:52] marcello3d: AAA_awright: is it more awesome than haml? [06:53] jesusabdullah: but it did this thing I'd actually wanted to try messing with for a while [06:53] Aria: AAA_awright: I wrote the HTML5 parser module. Again with the wanting to work with RDFa, so... [06:53] AAA_awright: marcello3d: Yes, less %tag markup and stuff, it reads really fast [06:53] Aria: Just need to do http://dev.w3.org/html5/rdfa/ now [06:53] micheil: did someone want me? [06:54] AAA_awright: Ugh, the HTML5 XML namsepace debacle all over again? [06:54] Aria: sadly, yes. But I think it's sanely limited in scope. [06:54] jesusabdullah: ARia's html5 thing is REALLY NICE iirc [06:54] jesusabdullah: just fyi [06:54] Aria: "Here's how to handle it, but don't pretend this is XML" [06:55] micheil: zzak: yes? [06:55] jesusabdullah: micheil: Sup gurl? [06:55] micheil: jesusabdullah: ? [06:55] AAA_awright: It's "Hey we know people want to use XML namespaces to add cool new features like MathML to HTML so let's just shoehorn all of them into a single namespace!" "Hey wait doesn't that defeat the entire point of forward-compatability?" [06:56] AAA_awright: Actually I haven't read that spec yet let's see [06:56] Aria: Yeah. Though I think they did okay. "Okay, so namespaces are broken. How about starting foreign markup with a tag specific to each" [06:56] AAA_awright: Using the new Javascript APIs in plain old [X]HTML works just fine for me, thanks :p [06:57] jesusabdullah: micheil: Well? [06:57] jesusabdullah: :v [06:58] jesusabdullah: It was DEXYH [06:58] jesusabdullah: er [06:58] jesusabdullah: DEXY [06:58] jesusabdullah: https://bitbucket.org/ananelson/dexy-examples/src [06:58] jesusabdullah: THIS thing looked kinda cool [06:58] jesusabdullah: Thoughts? [06:59] Aria: AAA_awright: Have you ever actually used XHTML, or do you just hand an HTML parser stuff with /> in it? [06:59] AAA_awright: Aria: I'm using XHTML Strict [06:59] seivan: Hmmm what are the syntax sugars for sockets is there a pattern or convention? [06:59] seivan: let say socket.addListener("connect"...) [06:59] seivan: does that have a syntactic sugar to it? [06:59] seivan: socket.connect(.. ? [07:00] seivan: ok.. not connect because that seems to be a different function [07:00] Aria: AAA_awright: Yes, but what is your parser using? [07:00] AAA_awright: Aria: I'm not parsing anything, just Jade and outputting XHTML [07:01] hammerdr has joined the channel [07:02] jesusabdullah: You lost me. :( [07:02] Evet_ has joined the channel [07:03] Aria: AAA_awright: You're using a parser -- unless this HTML goes nowhere. But let me guess-- your browser gets text/html content type? [07:03] marcello3d: alright [07:03] marcello3d: night all [07:03] marcello3d: thanks for the chats. [07:04] Aria: seivan: socket.on('connect'... [07:04] Aria: seivan: 'addListener' is the old name. [07:04] seivan: Aria: It's in the docs... [07:04] seivan: addListener that is. [07:04] Aria: Which docs? [07:04] jesusabdullah: SHEAH [07:04] seivan: But how come stuff like that isn't in the docs, is there a convention so you can figure that out yourself? [07:04] seivan: http://nodejs.org/docs/v0.4.0/api/net.html [07:04] AAA_awright: Aria: It's getting... I think it's getting text/html but only until I can do content-type negotiation and send application/xhtml+xml if the browser says it supports it [07:04] Aria: seivan: http://nodejs.org/docs/v0.4.1/api/events.html [07:05] seivan: 0.4.1 [07:05] seivan: I got 0.4 I think [07:05] AAA_awright: Meaning, everyone but IE [07:05] Aria: seivan: 'on' is not new [07:05] Aria: AAA_awright: So it's being parsed as HTML ... Fun! Just wait until you discover that the DOM is different when you hand it XML. [07:05] xandrews has joined the channel [07:05] seivan: Aria: It's not following a certain pattern [07:05] seivan: that's hard to remember [07:05] seivan: and it doesn't state that under the sockit [07:05] Aria: Hm? [07:05] seivan: socket* [07:05] Aria: It's an EventEmitter. [07:06] Aria: This is kind of a core concept in Node. [07:06] seivan: http://nodejs.org/docs/v0.4.1/api/net.html#event_connect_ [07:06] seivan: How come it isn't there? [07:06] AAA_awright: Aria: I'm not doing Javascript at all right now, though I'm not entirely aware of the DOM differences, if you send the correct XML namespace I thought it's mostly the same [07:06] seivan: is it always "on" ? [07:06] AAA_awright: client-side js of course [07:06] Aria: Yes, it's always available as 'on' [07:06] Aria: Yeah. Mostly. But with case mattering vs not. [07:06] seivan: on everything that has a listener? [07:07] seivan: not just socket [07:07] Aria: (And some things being all-caps) [07:07] Aria: Yes, on all EventEmitters, seivan. [07:07] ioxer has joined the channel [07:07] jesusabdullah: I can type in all caps. It's one of my few skills atm [07:07] Aria: seivan: Node uses functionname(callback) for things that return once, and thing.on('event', callback) for things that can fire more than once or with great delay. [07:08] seivan: so.. [07:08] seivan: for connect that fires only once [07:08] seivan: how is that ? [07:08] Aria: seivan: and 'on' and 'addListener' are interchangable. But that's why you don't find socket.connect() [07:08] seivan: user = new User(socket) [07:08] seivan: ops [07:08] seivan: socket.on "connect", -> [07:08] Aria: 'connect' is not a 'comes back fast' operation. [07:08] mscdex: coffeescript! [07:08] mscdex: ACTION runs [07:08] seivan: mscdex: It's actually quite pleasant. [07:08] mscdex: :p [07:08] seivan: especially dealing with objects [07:09] seivan: Aria: Hold on I am trying to grasp the core concept as you said it. [07:09] seivan: gimme an example of things that return once [07:09] Aria: Yeah. It's subtle (and I bet up to some interpretation) [07:09] mikeal has joined the channel [07:09] Aria: server.listen [07:09] jesusabdullah: cwoffeescript, you say? [07:09] jesusabdullah: I have to admit [07:09] seivan: Aria: ah ok [07:09] jesusabdullah: Some good ideas [07:10] jesusabdullah: kinda like it [07:10] jesusabdullah: but I didn't find it compelling. [07:10] seivan: Just good ideas. Nothing in Coffee is bad [07:10] Aria: It's an async operation, but not one with any real latency. [07:10] seivan: Aria: I see [07:10] Aria: So it gets an immediate callback. It's the kind of thing you set up inline. [07:10] seivan: Okay [07:10] jesusabdullah: I wish labVIEW had callbacks [07:11] jesusabdullah: :v [07:11] seivan: hmm anyone with coffee experience? [07:11] seivan: Do I need to fat arrow here? [07:11] jesusabdullah: I have a little [07:11] jesusabdullah: but ONLY a little [07:11] seivan: https://gist.github.com/8a08f3069b6d8bc57fe6 [07:11] seivan: Yeah you need to understand the concept of fat arrow. [07:11] seivan: => vs -> [07:12] seivan: I want to use socket inside the socket.on "connect" callback [07:12] cronopio has joined the channel [07:13] jesusabdullah: probably not, if => vs. -> has to do with the meaning of "this" [07:13] jesusabdullah: I don't see any "this" up ins, so [07:13] beta_ has joined the channel [07:13] jesusabdullah: It looks like -> means a new "this", => means "old 'this'" [07:13] jesusabdullah: BUT that's just me ctrl-F-ing coffeescript.org [07:13] jesusabdullah: so feel free to ignore me [07:13] Aria: Yeah. Ditto from what I just read. [07:14] jesusabdullah: ALSO [07:14] Aria: That sounds right. [07:14] jesusabdullah: I've been hittin' the sauce, for fair disclosure [07:14] jesusabdullah: That's why I'm being a chatty Kathy. [07:15] seivan: jesusabdullah: that is true [07:15] seivan: there is no this [07:15] seivan: cool. Thanks dude [07:15] seivan: Sometimes I wanna go back to JS https://gist.github.com/f38104855bf19243e3b1 [07:16] jesusabdullah: For a second I thought you were saying that it's true that I've been a chatty Kathy [07:16] SubStack: the only coffee script I've written was 2 lines for a node-browserify example [07:16] jesusabdullah: Some JS libs also depend on the behavior of this [07:16] seivan: Coffee is really good. [07:16] jesusabdullah: like substizzy's "seq" [07:16] seivan: There can't be any hate for it [07:16] jesusabdullah: Doesn't play nice with coffee [07:16] jesusabdullah: because the last line always returns [07:16] seivan: in Coffee? [07:17] seivan: Yeah [07:17] seivan: How is that trouble? [07:17] jesusabdullah: indeed. Ask tanepiper about it [07:17] seivan: ok [07:17] SubStack: eh? seq doesn't care about return values at all [07:17] seivan: gah [07:17] SubStack: but it does use 'this' all over [07:17] SubStack: ACTUALLY [07:17] seivan: I hate the fact that for loops in coffee pushes the return value into an array [07:17] SubStack: it can also use Seq [07:17] seivan: Is there a way to loop without saving everything? [07:17] mjr_: seivan: things like coffeescript are cool until you run into trouble. [07:17] SubStack: so coffee might work with seq [07:17] seivan: mjr_: If you do, switch over to regular JS :) [07:17] SubStack: testing [07:17] seivan: The time Coffee saves is nice [07:18] mjr_: I've not done any coffeescript. I like JS, warts and all. [07:18] jesusabdullah: tbh I found it better to stick with jabbascripts [07:18] seivan: I mean seriously, code is much cleaner. Don't get me wrong, I am all about the developer writing nice code. But with all fairness, Coffee is just more less bloast [07:18] mjr_: I do drink a lot of actual coffee though. [07:18] seivan: bloat* [07:18] jesusabdullah: and that's with giving coffree a shot [07:18] chapel: seivan: there are other loops [07:18] SubStack: a shot of coffee [07:18] chapel: for x in array [07:18] jesusabdullah: also with being an ex-python type [07:18] chapel: for x of array [07:18] jesusabdullah: that still uses python from time to time [07:19] seivan: chapel: those loops will push stuff into an array [07:19] jesusabdullah: I had the hardest time making a step fxn working in python for some reason [07:19] seivan: Like I said. [07:19] samcday has joined the channel [07:19] seivan: for x in y will push the return value into an array [07:19] Utkarsh has joined the channel [07:19] jesusabdullah: I had to map(lambda x: 1 if x > a else 0, xs) [07:19] jesusabdullah: but it was still acting funky for some reason [07:20] jesusabdullah: has to do with numpy's weirdo types, iirc [07:20] jesusabdullah: <3 numpy, but shit [07:20] jesusabdullah: ANYWAY back to js [07:20] jesusabdullah: map(function (x [07:20] chapel: seivan: no [07:20] gasbakid has joined the channel [07:20] jesusabdullah: map(function (x) { x > a ? 1 : 0}, array) [07:20] SubStack: bah nope, seq is hard to do in coffee [07:21] jesusabdullah: js WINS! [07:21] seivan: hmm, is there a way to ehm union arrays? [07:21] jesusabdullah: ehm? [07:21] seivan: [1,2,3] + [3,4,5] = [1,2,3,4,5] [07:21] SubStack: seivan: you can use objects as sets and merge them [07:21] Aria: v8: [1,2].concat([3,4]) [07:21] v8bot: Aria: [1, 2, 3, 4] [07:22] jesusabdullah: WHY are you ADDING LISTS? [07:22] seivan: v8: [1,2,3].concat([1,2,3,4]) [07:22] v8bot: seivan: [1, 2, 3, 1, 2, 3, 4] [07:22] jesusabdullah: SEI VAN [07:22] seivan: wrong v8bot [07:22] seivan: jesusabdullah: What's up? [07:22] Aria: ah, I see. Not including duplicates. [07:22] seivan: yeah.. UNION :) [07:22] jesusabdullah: AH [07:22] seivan: or whatever it's called. haha sorry [07:22] jesusabdullah: You want the onion [07:22] jesusabdullah: o0kay [07:22] chapel: write a function for it [07:22] chapel: :) [07:22] chapel: jesusabdullah: you been drinking? [07:22] seivan: chapel: Well duuh, I was asking if there is :) But yeah I guess I oughta [07:23] Aria: Hehe. Union is usually an operation on a set rather than an array, so I wasn't sure how precise you were being. [07:23] jesusabdullah: chapel: Yeah [07:23] seivan: hmm [07:23] seivan: Maybe I should use redis. [07:23] seivan: to store stuff instead of keeping it all in memory [07:23] jesusabdullah: chapel: Why? [07:23] chapel: heh, just curious [07:24] jesusabdullah: orly? [07:24] SubStack: v8: var xs = [1,2,3], ys = [3,4,5], zs = {}; xs.concat(ys).forEach(function (x) { zs[x] = true }); Object.keys(zs) [07:24] v8bot: SubStack: ["1", "2", "3", "4", "5"] [07:24] seivan: wow thats fugly. [07:24] SubStack: stringifies however [07:24] seivan: :D [07:24] seivan: Yeah [07:24] seivan: no problem [07:24] seivan: Thanks, gonna look into coffee if it has something [07:25] chapel: I dont think so [07:25] SubStack: oh or I could write a reduce [07:25] mjr_: If you have a lot of things to store, putting into Redis can be a win, even if you only ever have one node. The GC performance for large heaps can be pretty bad. [07:25] SubStack: nah it's uglier [07:26] seivan: Or.. does js has a SET class(type)? [07:26] seivan: unordered list of unique elements [07:26] jesusabdullah: You could WRITE a set class [07:26] jakehow has joined the channel [07:26] SubStack: DO IT [07:26] SubStack: PEER PRESSURE [07:26] seivan: Yeah I know I can write it.. dude :) I am asking if there is. [07:26] jesusabdullah: PEER [07:26] jesusabdullah: PRESSURE [07:26] jesusabdullah: HNNNNNNNNG [07:26] mjr_: set is basically the same as Object. [07:26] seivan: ah you guys are hilarious =) [07:26] mjr_: property names are unique [07:26] SubStack: mjr_: keys can only be strings though :/ [07:26] jesusabdullah: It helps that I've been drinking. (thanks chapel for blowing my "cover") [07:26] chapel: are you at a bar or something guys? [07:27] SubStack: although indexOf is pretty fast [07:27] jesusabdullah: I'm at home [07:27] chapel: :P [07:27] chapel: Im at work [07:27] jesusabdullah: I just, umm [07:27] mjr_: uhh, really? I thought you could have integer keys [07:27] chapel: no drinking for me [07:27] SubStack: I am crazy sick and sipping some oolong [07:27] jesusabdullah: bought some wodka [07:27] jesusabdullah: and then found some white rum [07:27] SubStack: mjr_: not actually! [07:27] mjr_: wow [07:27] jesusabdullah: which is, like, less astringent wodka [07:27] SubStack: v8: Object.keys([4,5,6]) [07:27] v8bot: SubStack: ["0", "1", "2"] [07:27] chapel: nice SubStack [07:27] SubStack: they get turned to strings just the same [07:27] chapel: I prefer earl grey atm [07:27] jesusabdullah: earl grey is my go-to tea [07:27] seivan: Any good JS book? [07:28] seivan: No jquery shit [07:28] seivan: just pure JS [07:28] chapel: the good parts [07:28] seivan: OOooh yeah I recall a buddy recomending that [07:28] SubStack: ACTION can't read [07:28] mjr_: Well, Object.keys converts to strings [07:28] mjr_: But I think the properties can be Numbers, no? [07:28] ryah: is there a way to get the number of handles/fds in windows? [07:28] chapel: v8: Object.keys([4,5,6]+0) [07:28] v8bot: chapel: TypeError: Object.keys called on non-object [07:28] jesusabdullah: Yeah, try The Good Parts [07:28] mjr_: JS the Good Parts is a pretty good, short, book. [07:29] chapel: v8: Object.keys([4,5,6])+0 [07:29] v8bot: chapel: "0,1,20" [07:29] jasong_at_apache has joined the channel [07:29] chapel: haha [07:29] jesusabdullah: or, nodejs.org/api.html b/w the mozilla javascript reference thing [07:29] jesusabdullah: always forget the name/url but it's actually quite good [07:29] jesusabdullah: got me started [07:29] SubStack: mjr_: it would make sense for v8 to be using integers internally [07:29] jesusabdullah: Not that I'm a js master but, u noe [07:30] SubStack: I got started on the netscape developer's reference [07:30] SubStack: when I was in middle school [07:30] mjr_: v8: a = {1: "foo"}; a[1]; [07:30] v8bot: mjr_: "foo" [07:30] samcday: v8: [1, 2, 3].concat(1, 2, 3, 4, 5).filter(function(item, index, array) { return array.indexOf(item) >= index; }); [07:30] v8bot: samcday: [1, 2, 3, 4, 5] [07:30] samcday: Ugliest solution yet ^_^ [07:30] SubStack: the summer after 7th grade was when I stepped it up programming-wise [07:30] jesusabdullah: v8: map(Number, object.keys([4,5,6])) [07:30] v8bot: jesusabdullah: ReferenceError: object is not defined [07:30] jesusabdullah: oshit, bitches don't HAVE map [07:30] jesusabdullah: f [07:30] mjr_: So it seems that the properties are indeed integers, but that you have to use the [] syntax to access them. [07:30] SubStack: jesusabdullah: javascript does not work that way! [07:31] jesusabdullah: <--drunk wannabe pythonista that doesn't wannabe [07:31] SubStack: mjr_: makes sense [07:31] jesusabdullah: list comprehensions are the be-all, end-all! [07:31] seivan: SubStack: https://gist.github.com/74e0de9597636909df1b [07:31] jesusabdullah: I love underscores! [07:31] SubStack: jesusabdullah: haskell programmers don't even think that! [07:31] SubStack: and I should know [07:31] meatmanek: haha underscores [07:31] mjr_: jesusabdullah: you can do Object.keys().map() [07:32] meatmanek: that's one part of python I don't get [07:32] SubStack: list comprehensions are somewhat derrided in haskell except for one-offs with lots of points [07:32] SubStack: function composition is the way to go [07:32] mjr_: I splatter underscores all over the place. [07:32] seivan: SubStack: What do you think of the gist? [07:32] seivan: https://gist.github.com/12e4ab2bf98c61eb3d62 <== you guys accept? [07:32] mjr_: It looks ugly, but then you can do easy mouse and keyboard selection of the components. [07:33] SubStack: gist is pretty nice [07:33] SubStack: better than pastebin :p [07:33] SubStack: seivan: or if you wanted to write everything inline you could do: [07:33] jesusabdullah: meatmanek: Which part? The underscores or the lcomps? [07:33] mjr_: All the other paste sites have ads everywhere. [07:34] SubStack: v8: var xs = [1,2,3], ys = [3,4,5]; Object.keys(xs.concat(ys).reduce(function (acc, x) { acc[x] = true; return acc }, {})) [07:34] v8bot: SubStack: ["1", "2", "3", "4", "5"] [07:34] jesusabdullah: v8: Object.keys([4, 5, 6]).map(function(x) { return int(x) }) [07:34] seivan: Wow [07:34] v8bot: jesusabdullah: ReferenceError: int is not defined [07:34] seivan: That's hard to read [07:34] jesusabdullah: orly? [07:34] SubStack: pfft [07:34] SubStack: it's just a left fold [07:34] jesusabdullah: Okay, I'm doing something stupid? [07:34] seivan: :D most likely! *hides* [07:34] jesusabdullah: v8: Object.keys([4, 5, 6]).map(function(x) { return Number(x) }) [07:34] v8bot: jesusabdullah: [0, 1, 2] [07:34] jesusabdullah: THERE we go! [07:35] SubStack: although the Object.keys() around the whole thing is a bit kludge [07:35] jasong_at_apache: ping [07:35] jesusabdullah: woot woot [07:35] SubStack: v8: Object.keys([3,4,5]).map(Number) [07:35] v8bot: SubStack: [0, 1, 2] [07:35] SubStack: :p [07:35] jesusabdullah: Oh look at me, I'm substack and I recognize a function when I see one! [07:35] jesusabdullah: OHHH [07:35] jesusabdullah: ;) [07:35] jesusabdullah: ^___^ [07:35] jasong_at_apache: anyone run node.js dev on osx? [07:35] SubStack: jasong_at_apache: everyone [07:36] SubStack: except for me [07:36] jasong_at_apache: (LOL) [07:36] SubStack: and ryah [07:36] SubStack: also jesusabdullah runs the linux as far as I can tell [07:36] SubStack: but everybody else runs mactops [07:36] jasong_at_apache: my rig is failing test-http-agent2 on 'make test' [07:36] jasong_at_apache: (i'm new to node.js on mac) [07:37] abraham has joined the channel [07:37] SubStack: I am just so set in my ways! [07:37] jasong_at_apache: got tired of running a vm :-P [07:37] seivan: hmm [07:37] seivan: inclusion of [07:37] SubStack: jasong_at_apache: tired or running a... mac vm? [07:37] jesusabdullah: I'm using lennox [07:37] jesusabdullah: atm Fedora, but I think I'm gonna go crawling back to unbuntuo [07:38] jesusabdullah: or mebbs debian for this lappy [07:38] jasong_at_apache: tired of running my linux vm in osx, figure i just develop on my mac [07:38] jesusabdullah: Has space issues [07:38] mjr_: test failing in node at master or v0.4? [07:38] jesusabdullah: only like 8 gigs of solid state :C [07:38] AAA_awright: Aria: Let me know if you would like updates on http://magnode.org/ or want info on how to set it up [07:38] ion- has joined the channel [07:38] jasong_at_apache: master at github [07:38] Aria: I sure would. [07:39] jasong_at_apache: doh, should i pull from a release? [07:39] SubStack: ah [07:39] jasong_at_apache: (it's 2:30am) [07:39] jesusabdullah: No it's only 10:30 [07:39] jesusabdullah: You need to reset your watch gurl [07:39] jesusabdullah: Also move to way-west coast [07:39] qFox has joined the channel [07:39] jesusabdullah: so far west coast you've transcended west coast [07:40] jesusabdullah: and moved to the frigid northern wastes [07:40] jesusabdullah: then you'd have way more time [07:40] AAA_awright: k night everyone [07:40] mjr_: I've moved so far west that I've transcended the coastal boundaries. [07:40] Aria: Night, AAA_awright [07:40] jasong_at_apache: ok so i'll pull .41 [07:40] mjr_: jasong_at_apache: I'd go with a 0.4.x branch if you are concerned with tests passing [07:41] mjr_: master is often unstable. [07:41] jesusabdullah: gnight you [07:41] jesusabdullah: mjr lives in Hawaii. [07:42] jesusabdullah: PROVEN FACT [07:42] SubStack: so far west your time continuum will warp [07:42] mjr_: It's true. [07:42] jesusabdullah: ACTION does the time warp again [07:42] SubStack: now hacking comparison operators into bigint [07:43] ion- has joined the channel [07:43] SubStack: BECAUSE I NEED THEM IS WHY [07:43] jesusabdullah: ORLY [07:43] jesusabdullah: HOW DARE YOU ADD FUNCTIONALITY [07:43] SubStack: I know right? pretty soon it'll be able to send email [07:43] jesusabdullah: Back in MY day we were happy with GOTOs! [07:43] jasong_at_apache: damn [07:44] jasong_at_apache: screw that [07:44] jesusabdullah: bigint(something_outrageous).email('jesusabdullah', 'check out my bigint') [07:44] mjr_: Man, you guys have way more capital letters available than I do. [07:44] jesusabdullah: orly? [07:44] jesusabdullah: lol :D [07:45] chapel: SubStack: did you get ssh working? [07:45] seivan: I fixed it [07:45] seivan: SubStack: [07:45] seivan: I made it into a hash [07:45] seivan: for channel, subscription in message.channels [07:45] seivan: user.channels[channel] = subscription [07:45] SubStack: chapel: working on it [07:45] chapel: ah [07:45] SubStack: I've generated q for the key exchange, finalizing p generation [07:45] chapel: anyone have experience with vm and runInNewContext ? [07:46] SubStack: I looked into using libopenssh for this but "DH_generate_parameters() may run for several hours before finding a suitable prime" scared me away [07:46] chapel: damn [07:47] SubStack: but they might just be bullshitting me [07:47] Aria: Sure, on slow hardware with no entropy. [07:47] Aria: chapel: sure. [07:48] chapel: I want to have a dedicated process that just handles foreign scripts, they shouldn't have access to anything but standard v8 stuff, no node main modules [07:48] jasong_at_apache: bad news, failed "release test-http-agent2" again on v.41 [07:50] Aria: That's just what v8bot does, chapel. You can sanitize the 'global' object you give as much as you need. [07:50] chapel: looks like http://nodejs.org/docs/v0.4.1/api/vm.html#vm.runInNewContext could be what I want [07:50] Aria: Yep. [07:50] mjr_: jasong_at_apache: agent2 fails for me as well [07:51] jasong_at_apache: ah ok, must be normal... LOL [07:51] mjr_: It's not normal that tests fail in a release branch, but this seems to be the case right now. [07:52] mjr_: Worth opening an issue if there isn't one already [07:53] jasong_at_apache: will do now [07:53] seivan: user.socket.write("{'type' : 'subscribe', 'channels' : #{ message.channels}, 'status' : true}") [07:53] seivan: Bad or good? [07:53] Aria: seivan: Looks good, but javascript doesn't interpolate strings with #{}, so not sure that's what you want [07:53] chapel: umm [07:54] seivan: Aria: Coffee does .) [07:54] chapel: its coffeescript [07:54] Aria: Ah! Okey. [07:54] chapel: and no need for all that [07:54] seivan: Why not? [07:54] chapel: is it supposed to be json? [07:54] seivan: yes [07:54] chapel: cant use single quotes [07:54] seivan: ah dang, you sure? [07:54] chapel: yes [07:54] seivan: it is a string [07:54] seivan: becomes to whatever the type that decodes it [07:55] chapel: I know [07:55] seivan: I still can't? [07:55] chapel: json requires double quotes [07:55] seivan: ah [07:55] seivan: I see, true jsonlint said so [07:55] seivan: Thanks man [07:55] chapel: just make your object [07:55] chapel: and JSON.stringify [07:55] seivan: but I've been told the JSON stuff suck [07:55] seivan: "suck", leaks memory [07:56] seivan: chapel: How do you mean, how should I use JSON.stringify? [07:57] chapel: https://gist.github.com/0e5e63e06ca875a786dc [07:57] chapel: like that [07:58] chapel: and I wouldn't worry about JSON unless you really have a performance bottleneck [07:58] chapel: no reason to optimize for something like this, specially when you need correct json [07:59] chapel: its not as slow as you think [07:59] NuckingFuts: chapel: It's actually quite fast. [07:59] NuckingFuts: I mean, considering what it does [08:00] chapel: NuckingFuts [08:00] chapel: I agree [08:00] chapel: but people complain about it being slow all the time [08:00] seivan: r.socket.write JSON.stringify -> [08:00] seivan: Or like you wrote it. [08:00] seivan: Oh yeah, no paranthesis. [08:00] seivan: thanks [08:00] chapel: so I know why he would think that [08:00] jasong_at_apache: I submitted https://github.com/ry/node/issues/697 [08:01] seivan: chapel: I think that because I saw some real-life bench between erlang and node, the leak was caused by (according to author) the JSOn parser [08:01] seivan: It wasn't small stuff either... [08:01] seivan: Not slow, but leak [08:01] ziro` has joined the channel [08:01] chapel: again I wouldn't worry about it [08:02] chapel: if later down the road, there is an issue, you can come back and make changes [08:02] seivan: yeah I implemented the way you said [08:02] chapel: but having json.stringify is nice [08:02] seivan: actually I made it into an object [08:02] srid has joined the channel [08:02] srid has joined the channel [08:02] seivan: chapel: https://gist.github.com/ba9ec23e06b3cfc04104 objections? [08:02] chapel: it is an object that way [08:03] crodas has joined the channel [08:04] seivan: chapel: so? [08:05] chapel: umm, looks fine [08:07] NuckingFuts: seivan: Chances are, if JSON leaks, there'll be a fix soon enough. Plus, it's implemented differently by different environments, so you can't really say that it leaks, so much as one browser's implementation leaks. [08:08] seivan: NuckingFuts: Yeah I know, it's not gonna leak for ever that I know. Thanks for the tip guys [08:08] seivan: Starting getting into the node-grove. [08:08] seivan: I think the best tech of 2010 was Redis, Gitpusshuten and Rails 3. I hope Node can make it into 2011 [08:08] mike5w3c has joined the channel [08:08] NuckingFuts: we have a grove? [08:08] seivan: yeah! [08:08] NuckingFuts: ACTION wants to go see our trees [08:08] seivan: Not a big fan of the JS, Coffee helps a bit. Also I am not a big fan of the Node.js docs and the outdated resources out there [08:08] seivan: groove* [08:09] seivan: groove as in habit [08:09] NuckingFuts: seivan: damnit you got my hopes up :( [08:09] seivan: NuckingFuts: :) And I then I take them away ! [08:10] wilmoore has joined the channel [08:10] NuckingFuts: seivan: evil person :P [08:10] mikeal has joined the channel [08:11] seivan: wow, coffee actually mirrors the folder structures and stuff [08:11] seivan: got src and lib :D [08:11] seivan: Wow... Coffee looks so much better then the source [08:11] NuckingFuts: Also, I would like some suggestions on how to use redis. I really can't see the purpose for an in-memory storage method, when I already have, ya know, JavaScript Objects lol [08:12] NuckingFuts: seivan: I disagree entirely :P [08:12] seivan: NuckingFuts: it has a persistent store. [08:12] seivan: NuckingFuts: also it has a good way for passing messages between apps [08:12] NuckingFuts: Then again, JavaScript is my native tongue... so I'm a bit biased :D [08:12] seivan: I can pass messages from my Rails controllers to Node through redis [08:12] NuckingFuts: seivan: Hmmm... It seems clunky for a persistent store, TBH [08:12] seivan: Actually it's pretty cool [08:12] jesusabdullah: Funny; my native tongue is Englilish [08:12] seivan: has a memory swap as well [08:12] seivan: I see nothing but greatness in Redis. NuckingFuts dude you can checkout my libraries [08:13] NuckingFuts: jesusabdullah: console.log('Meh, JS > English'); [08:13] seivan: github.com/seivan [08:13] seivan: NuckingFuts: Check my redis gems [08:13] seivan: NuckingFuts: Messaging, friendship and tagging [08:13] seivan: It's a combination of SQL and Redis [08:13] NuckingFuts: seivan: lolruby I don't do ruby sorry :P [08:13] chapel: NuckingFuts: redis has complex data operations [08:13] seivan: =) Well it's just patterns that you can look into [08:13] seivan: Also redis has the _BEST_ documentation _EVER_ [08:13] seivan: Nothing is better documented then redis [08:13] seivan: Not even the Apple iOS Cocoa docs. [08:13] NuckingFuts: seivan: I dunno, jQuery may be better :V [08:13] seivan: nah [08:14] seivan: I know. Redis is better documented [08:14] NuckingFuts: api.jQuery.com/browser/ [08:14] NuckingFuts: Look at it [08:14] seivan: rediso.io [08:14] NuckingFuts: And weep. [08:14] seivan: I do... Redis is still better [08:14] jesusabdullah: NuckingFuts: Duly logged, not read :v [08:14] seivan: http://redis.io/documentation http://redis.io/commands#list http://redis.io/commands/lpop [08:14] seivan: Nothing is better documented then Redis. Period :) [08:15] seivan: than* [08:15] jesusabdullah: Except couch [08:15] jesusabdullah: obviously [08:15] NuckingFuts: jesusabdullah: sys.print('D:< u r mean'); [08:15] NuckingFuts: \n\0 [08:15] jesusabdullah: Only a little :3 [08:15] NuckingFuts: sys.laugh(); [08:15] NuckingFuts: ACTION could do this all night =P [08:16] lukegalea has joined the channel [08:20] m64253 has joined the channel [08:20] pastak has joined the channel [08:21] admc has joined the channel [08:21] ratsbane_ has joined the channel [08:22] seivan has joined the channel [08:23] seivan: damn [08:23] jesusabdullah: touch('NuckingFuts') [08:24] seivan: did a loop over 100000000 and my mac got a panic alert [08:24] jesusabdullah: f7u12.meGusta() [08:26] seivan: Oh what is the JS convention... underline or camelcase? [08:26] seivan: or is there a specific node convention? [08:26] SubStack: camelCase is the usual way [08:26] chapel: Im starting to prefer _ [08:26] seivan: coo [08:27] SubStack: on account of that's how the builtins are [08:27] seivan: Makes sense [08:27] chapel: camelCase can get ugly [08:27] SubStack: forEach, getOwnPropertyNames, ... [08:27] NuckingFuts: chapel: eviiiiiiiiiiiiil [08:27] chapel: :P [08:27] NuckingFuts: camelCase forEver. [08:27] chapel: depends on what Im doing [08:27] stride: eviIiIiIiIiIl? [08:27] SubStack: I do underscores in perl and python, but camel case in javascript and haskell [08:27] NuckingFuts: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#Naming [08:27] SubStack: underscores in ruby too [08:28] chapel: SubStack said it right, naming is the hardest part of programming [08:28] NuckingFuts: Done. [08:28] SubStack: except for class names in ruby and perl [08:28] SubStack: python is the odd one [08:28] SubStack: also I make a point of never using any variable called 'tmp' or 'temp' [08:28] lukegalea has joined the channel [08:29] SubStack: better off using x I figure [08:29] NuckingFuts: SubStack: I will do things like tmparr but rarely just tmp [08:29] NuckingFuts: yeah I go through the alphabet pretty fast :P [08:29] SubStack: tmp feels too superfluous [08:29] SubStack: since all variables are in a sense temporary [08:29] NuckingFuts: I start with x, n, or i [08:29] NuckingFuts: if I start with i, I tend to move on to ii and then iii [08:29] NuckingFuts: with n, I tend to move on to o, then p [08:30] NuckingFuts: And with x, I go on to y, then z [08:30] SubStack: points! [08:30] NuckingFuts: I sometimes also use a [08:30] jesusabdullah: NuckingFuts: what about i, j, k?! [08:30] jesusabdullah: tssch! [08:30] SubStack: I try to remove points with functional programming trickery where possible [08:30] NuckingFuts: jesusabdullah: J and K can suck a dick :B [08:30] SubStack: makes it harder to get lost [08:30] jesusabdullah: NO [08:30] jesusabdullah: i is the x-direction unit vector [08:30] NuckingFuts: jesusabdullah: orly? [08:31] jesusabdullah: j -> y unit vector [08:31] jesusabdullah: k -> z unit vecto [08:31] jesusabdullah: r [08:31] jesusabdullah: YEAH [08:31] NuckingFuts: nope I do i, ii, iii [08:31] jesusabdullah: i, j, k are really common for representing values in x, y, z [08:31] NuckingFuts: I'm odd, I know :B [08:31] NuckingFuts: I once had a 3-deep nesting of for loops [08:31] NuckingFuts: I named each one i, ii, then iii [08:31] jesusabdullah: tsk tsk tsk [08:31] Ond: I would just name them x, y, or z [08:31] seivan: hmm [08:31] NuckingFuts: I had internal vars named iiii and such for lulz [08:31] seivan: Man I keep wanting to garbage collect stuff [08:31] Ond: I've also used dx, dy, for obvious reasons [08:32] seivan: Is there a way to do manual memory management? [08:32] jesusabdullah: someone made an einstein-style summation notation thing for numpy recently [08:32] Ond: Nice [08:32] stride: var i = require('indexhelper').getFactory().get('tmp'); [08:32] NuckingFuts: I had a line on the deepest that consistend almost entirely of the letter i [08:32] jesusabdullah: that was pretty boss iirc, but it required strings [08:32] jesusabdullah: :( [08:32] jesusabdullah: That was frowny-faced [08:32] SubStack: I break on 80 columns with 4 space indent [08:32] SubStack: if your code is indented too far over you're doing it wrong! [08:33] seivan: Man after dealing with manual memory management having a GC makes it painful. It feels like I loose control, anyone else feel this way? [08:33] chapel: heh [08:33] stride: SubStack: but 80 cols don't even hold my overly descriptive method names! [08:33] chapel: 2 space indent [08:33] SubStack: seivan: absolutely not [08:33] SubStack: seivan: in fact I go out of my way to write things the slower but prettier way [08:33] seivan: Is there a way after I do message = new Message("...") I can relinquish ownership of message and have it die [08:33] stride: seivan: nowai [08:33] seivan: damn [08:33] seivan: So I am the only one? [08:33] seivan: I keep wanting to release... [08:34] SubStack: seivan: no it's a frustratingly common sentiment [08:34] jesusabdullah: why would you do that? [08:34] L_star has joined the channel [08:34] seivan: Because I no longer need it, and it ain't referenced by anything [08:34] jesusabdullah: clutter namespaces! LIKE A BOSS [08:34] jesusabdullah: Don't clean up after yourself! LIKE A BOSS [08:34] SubStack: make "the help" clean up after you [08:35] Ond: --like a boss [08:35] SubStack: like a spoiled rich kid [08:35] seivan: ehm? [08:35] seivan: So.. there is no way to do manual memory management? [08:35] SubStack: a spoiled rich kid who will someday be your boss! [08:35] Ond: lol [08:35] stride: jesusabdullah: var com.org.edu.inhouse.libraries.jquery = require('../../../../../libs/jquery1.2/jquery'); [08:35] SubStack: seivan: there is and it's terrible [08:35] joel has joined the channel [08:35] seivan: Really? [08:35] seivan: Why is that? [08:36] Ezku\_: can't you set message to null? [08:36] seivan: how does that help? [08:36] jesusabdullah: ogawd [08:36] rhmoller has joined the channel [08:36] jesusabdullah: what is that stride [08:36] Ezku\_: well, if there are no more references to the message object anywhere, it'll get garbage collected [08:36] seivan: yeah [08:36] jesusabdullah: get rid of that business right now. [08:36] seivan: jesusabdullah: what? [08:36] seivan: Ezku\_: I know that, but I feel like I'm losing controll [08:37] jesusabdullah: too much enterprise [08:37] seivan: I _KNOW_ that nothign references it. And I _KNOW_ that I don't need it [08:37] seivan: I should be able to get rid of it myself. [08:37] jesusabdullah: What's a com, anyway? [08:37] chapel: seivan: v8's gc is pretty proactive [08:37] stride: jesusabdullah: that's including jquery, like a boss [08:37] jesusabdullah: like a JBOSS maybe [08:37] Ezku\_: seivan: if that's your perspective, I guess you just have to get used to it [08:37] jesusabdullah: Not a jsboss [08:37] jesusabdullah: HARUMPH [08:37] seivan: Hmm [08:37] seivan: Scala! [08:38] jesusabdullah: ctrl-c, ctrl-v [08:38] jesusabdullah: LIKE A BOSS [08:38] joelklabo: I am making a simple proxy server, is there a way to redirect the request built into node? [08:38] stride: jesusabdullah: nah, my jboss would need at least 3 xml config files and a failed redeployment for that line [08:38] jesusabdullah: lol [08:38] jesusabdullah: I don't even remember what jboss is/does [08:38] Druid_ has joined the channel [08:39] Ond: Isn't JBOSS more of a community of projects [08:39] Ond: An incubator if you will [08:39] jesusabdullah: YOU're an incubator [08:39] jesusabdullah: I mean [08:39] jesusabdullah: I'm sure you're a very nice person [08:39] SubStack: ACTION incubates jesusabdullah  [08:40] jesusabdullah: ACTION evolves into jesusablastoice?! [08:40] SubStack: ACTION releases jesusabdullah into the general population at key transporation hubs [08:40] jesusabdullah: oshit [08:41] rayie has joined the channel [08:41] jesusabdullah: I'm gonna get pretty ran-over [08:42] stride: Ond: yeah, I meant the application server [08:42] Ond: 10-4 [08:45] NuckingFuts: seivan: Great thing about JS is that you really don't need to worry about garbage collection: basically everything is handled by V8. [08:46] NuckingFuts: Just let it do it's thing, while you focus on writing great code :P [08:46] seivan: Yeah I know that, but if I am aware that a certain object is not necessary nor referenced, I want to let it go manually or it bothers me. [08:46] mr_daniel has joined the channel [08:46] NuckingFuts: seivan: Chances are, if there are no references, it's already gone anyways :P [08:47] NuckingFuts: As chapel said, V8's garbage collector is rather proactive ;-) [08:47] seivan: Yeah but isn't it in the same process as node? [08:47] seivan: main process that is, I think I read that somewhere. [08:47] NuckingFuts: seivan: Node is one process, but many threads. [08:47] NuckingFuts: All the threads are managed by V8 & Node [08:48] seivan: I thought v8 didn't supported threads? [08:48] chapel: seivan: you are pulling the cart before the horse [08:48] seivan: Which makes sense given it's intended to be used in browsers. [08:48] seivan: chapel: waaah? [08:48] NuckingFuts: seivan: How do you think we manage the asynchronous stuff? [08:48] seivan: Then I must have read wrong [08:48] chapel: quit worrying about small optimizations like that, in most cases they really dont help [08:48] NuckingFuts: seivan: And no, it's always had threading. It's just that it makes its own stuff :P [08:48] seivan: "While you're right that Node.js doesn't supports threads by default, there is note on http://nodejs.org/ that it will: "In future versions, Node will be able to fork new processes (using the Web Workers API ) which fits well into the current design."" [08:48] chapel: and end up wasting your time [08:48] seivan: chapel: Yeah [08:49] seivan: I was just curious man [08:49] sveimac has joined the channel [08:49] seivan: That's all. I mean if i could do the memory stuff myself. [08:49] seivan: I am used to self.prop = nil from obj-c [08:49] chapel: the whole point of node as it is, is to not have to deal with memory stuff [08:49] seivan: or prop release] [08:49] SubStack: v8 already does tons of optimizations itself [08:49] seivan: But.. I love dealing with memory :D [08:49] NuckingFuts: seivan: Don't worry, whatever code you write, chances are V8 will rewrite it all :P [08:49] seivan: haa [08:49] chapel: and multiple threads as people have been doing it [08:49] SubStack: hah yeah [08:49] seivan: damn v8 [08:49] NuckingFuts: What with the crazy-ass optimizations with Crankshaft and such [08:50] chapel: thats why I use coffee script [08:50] chapel: :P [08:50] NuckingFuts: So complex, Cygwin fucks it lol [08:50] NuckingFuts: chapel: I hate the syntax of Coffeescript. It makes me wanna just puke. [08:51] NuckingFuts: I'll keep my curly braces, TYVM. [08:51] chapel: its nice not having to do that [08:51] chapel: I mean, writing js isn't hard by any means [08:51] chapel: but cs is just easier to read imo [08:51] chapel: and even easier to write [08:51] russell_h: anyone ever run into trouble deleting files with unicode names? [08:51] dgathright has joined the channel [08:51] stride: ahaha :D p2: So, now you have a problem with my coding style AND my hat?? FUCK YOU. [08:51] NuckingFuts: chapel: I've gotten so used to JS, it's not a problem for me :D [08:52] chapel: Im used to js as well [08:53] NuckingFuts: I can read some of the most insane JS nowadays. I'm actually able to comprehend the concepts behind (and understand the code for) dean edward's packer now [08:53] mikeal has joined the channel [08:53] NuckingFuts: I want to relearn BASIC though [08:53] NuckingFuts: Those were the days :P [08:53] NuckingFuts: 7 years old, on a fruity mac 8D [08:54] NuckingFuts: And the language was just so absolutely simple :P [08:54] stride: GOSUB! [08:55] NuckingFuts: oh god I remember gosub and shit [08:55] NuckingFuts: I learned to program BASIC from an old Interplay game lol [08:55] mjr_: Hey, gosub yourself. [08:55] NuckingFuts: I still have the CD, I wonder if it'd run on Win7 >_> [08:56] NuckingFuts: stride: goline [08:56] seivan: Wow JS is ugly. https://gist.github.com/9a0d20601cbee325a1c2 [08:56] Jourkey: is there any way to monitor node memory use? [08:56] Jourkey: preferably simple + easy :) [08:56] NuckingFuts: seivan ewwwwwwwww [08:56] seivan: activity monitor on os x :D [08:56] NuckingFuts: seivan: Nasty code noes [08:57] NuckingFuts: Jourkey: process.memoryUsage() [08:57] SubStack: generated code is ugly? no way [08:57] seivan: .. [08:57] seivan: You are looking at the wrong thing [08:57] NuckingFuts: SubStack: Ugh, this is why CoffeeScript = bad [08:57] seivan: I am reffering to the way to do classes [08:57] NuckingFuts: seivan: Js doesn't have classes :| [08:57] NuckingFuts: seivan: We have prototypes, but not classes. [08:57] SubStack: classes suck [08:58] seivan: Sorry, prototype. [08:58] NuckingFuts: prototypes forever! [08:58] seivan: I guess I need to get that "good" parts book [08:58] SubStack: inheritence is usually the wrong tool if you've got lambdas [08:58] NuckingFuts: SubStack: lambdas? [08:58] SubStack: λ [08:58] NuckingFuts: I always forget what that means >_> [08:59] SubStack: first-class functions [08:59] NuckingFuts: SubStack: ... what? [08:59] sveimac: http://en.wikipedia.org/wiki/Lambda_function [09:00] russell_h: var foo = function() {}; [09:00] sveimac: boyaaa [09:00] NuckingFuts: I lack a professional education sorry [09:00] NuckingFuts: russell_h: Anonymous functions? [09:00] SubStack: wrong type [09:00] russell_h: yeah [09:00] SubStack: http://en.wikipedia.org/wiki/Lambda_calculus [09:00] seivan: brb [09:00] russell_h: thats my understanding anyway :) [09:00] SubStack: not necessarily anonymous [09:00] sveimac: ouch, was abit quick :P [09:00] NuckingFuts: Or wait, that's not really the case with var foo = function(){} [09:00] SubStack: but functions that can close over some context [09:01] SubStack: and can be passed around as arguments [09:01] NuckingFuts: since in JS we have variables for lotsa things :P [09:01] NuckingFuts: SubStack: I still don't follow you. [09:01] SubStack: http://en.wikipedia.org/wiki/First-class_function [09:01] ROBOd has joined the channel [09:01] cloudhead: ACTION facepalm [09:01] DTrejo has joined the channel [09:02] NuckingFuts: SubStack: Oh, so the ability to declare functions on-the-fly? [09:02] SubStack: actually strictly speaking it's not necessary to be able to close over some state [09:02] NuckingFuts: That makes sense XD [09:02] sveimac: no cloudhead, facebalm is much nicer [09:02] SubStack: NuckingFuts: not necessarily, just the ability to store functions in standard data structures [09:02] SubStack: ANYWAY [09:03] DTrejo: micheil: sorry for being afk with regards to docs for the last couple weeks (hackathon+birthday party got in the way of my friday nights) [09:03] NuckingFuts: SubStack: So just the consideration of functions as objects? [09:03] NuckingFuts: I take a lot of JS stuff for granted :P [09:03] cloudhead: sveimac: indeed it might be [09:04] maibus has joined the channel [09:04] chapel: damnit DTrejo [09:04] chapel: you let us down [09:04] DTrejo: SubStack: I love how you guys over at stackvm are contributing so many node modules :) [09:05] DTrejo: chapel: next friday! [09:05] SubStack: DTrejo: still not as many as learnboost, but we're gaining on them [09:05] SubStack: tj is a code machine [09:06] DTrejo: SubStack: they have more people so keep that in mind ;) [09:06] chapel: heh [09:06] micheil: DTrejo: well, I now have the new doc tool written [09:06] micheil: although, I'm busy at work at the moment [09:06] micheil: DTrejo: I'm actually in the bay area at the moment, fwiw. [09:06] DTrejo: SubStack: I'd be really interested in an article about OSS contributions in conjunction with doing a startup. Some startups don't contribute, but then there's ones like learnboost and stackvm which just ROAR. [09:07] DTrejo: micheil: I wish I was :| [09:07] DTrejo: (in the bay) [09:07] DTrejo: someone needs to invent teleportation already [09:07] SubStack: DTrejo: I think it's a great way to be productive internally [09:07] NuckingFuts: ACTION lives in Modesto [09:07] SubStack: it prevents the codebase from becoming too complicated by spinning off submodules [09:08] NuckingFuts: Any other poor bastards who live here? [09:08] SubStack: DTrejo: also it helps with visibility and I suspect it will help with hiring too [09:08] SubStack: although we haven't gotten to that stage yet [09:09] DTrejo: SubStack: by the time you guys want to hire you'll have it made hah [09:09] doppler: DTrejo: teleportation hasn't been invented? how did i end up naked in bed last night?!? [09:09] jesusabdullah: This is the part where I see if Modesto is on my road trip map [09:09] NuckingFuts: lol central california [09:10] DTrejo: have it made aka no trouble finding someone you know contributes+codes well [09:10] steffkes has joined the channel [09:10] NuckingFuts: jesusabdullah: We're the birthplace of George Lucas, and the home of Scott Peterson :P [09:10] jesusabdullah: Oh lucky you NuckingFuts, I'm drivnig through there most likely, in a bunch of months [09:10] NuckingFuts: lol [09:10] jesusabdullah: this summer [09:10] DTrejo: trade contact info! [09:10] NuckingFuts: I'm stuck here until I have money :P [09:10] erwe has joined the channel [09:10] erwe: hi [09:10] jesusabdullah: hah! [09:11] DTrejo: have a node party [09:11] NuckingFuts: lol [09:11] jesusabdullah: I'll have a node party in Oakland [09:11] DTrejo: or bbq [09:11] jesusabdullah: where I stop [09:11] jesusabdullah: jsbbw! [09:11] jesusabdullah: er [09:11] DTrejo: q [09:11] jesusabdullah: jsbbq! [09:11] NuckingFuts: BBW [09:11] jesusabdullah: javascript big beautiful women! [09:11] jesusabdullah: YEAH [09:11] DTrejo: oh, dang, the domain is taken, you can't do it now! [09:11] DTrejo: hi erwe [09:11] jesusabdullah: erwe: sup dawg [09:12] SubStack: oh wow, actually LearnBoost is only beating us by 2 modules [09:13] DTrejo: SubStack: my friend's startup is using node, probably b/c of me, I need to encourage them to open source more of their stuff, once they launch of course [09:13] SubStack: jesusabdullah: if I count you then stackvm is tied with learnboost [09:13] SubStack: at 41 each [09:13] DTrejo: DANG I didn't know it was that many [09:13] SubStack: DTrejo: it can be a distraction too if you're not careful [09:13] NuckingFuts: I'm working to program a full message network in NodeJS [09:13] SubStack: well 39 right now between pkrumins and I [09:13] SubStack: DTrejo: npm install npmtop [09:14] NuckingFuts: Based off the wonderfully awful protocols developed at deviantART [09:14] SubStack: (which I wrote) [09:14] beawesomeinstead has joined the channel [09:14] NuckingFuts: SubStack: I loled at your graph of dependencies in NPM [09:14] pkrumins: 39! [09:14] SubStack: yep [09:15] SubStack: need to finish node-ssh-server [09:15] pkrumins: 40! [09:15] SubStack: so we can do tunneling the awesome way [09:15] SubStack: then I'll hop back into UI dev mode and spruce up the interface [09:15] SubStack: and also switch dnode over to using dnode-protocol and browserify [09:16] SubStack: that might make it easier to find the connection drop issue on browserling [09:17] jesusabdullah: I totally made at least one module [09:17] jesusabdullah: :D [09:18] chapel: Ive made 1 yay [09:18] DTrejo: ooh I hadn't seen browserify before [09:18] chapel: I feel special [09:18] NuckingFuts: I haven't released anything of mine :P [09:18] NuckingFuts: My modules are teh sekretz [09:18] jesusabdullah: I want to rewrite the module I released, but I've not had the time [09:18] DTrejo: I just need to publish my random things on npm [09:18] jesusabdullah: I want to rewrite mine to use chainsaw [09:18] NuckingFuts: partly because I reinvent the wheel 90% of the time :P [09:18] chapel: SubStack: switch dnode to use dnode-protocol and browserify, how so? [09:19] jesusabdullah: it works okay though last I checked [09:19] SubStack: chapel: so that the browser-side code can require traverse and dnode-protocol [09:19] SubStack: so I only need to maintain one protocol decoder [09:19] d0k has joined the channel [09:19] jesusabdullah: interestingly enough, I don't think node-prompt is something people have had much of a need for [09:19] SubStack: right now it's a terrible hack where I do some regex transforms on the source files and it's very icky [09:19] SubStack: and it throws some crap up in the global namespace like EventEmitter [09:19] chapel: whats dnode-protocol? are you not going to use socket.io anymore? [09:20] SubStack: chapel: dnode will still use socket.io and net.Stream, but dnode-protocol will do the json transformations and function bookkeeping [09:20] chapel: ah [09:20] chapel: cool [09:20] NuckingFuts: jesusabdullah: prompt? What about it? [09:20] chapel: so to the end user, its not gonna be much of a change [09:20] erwe: installing 0.4.1 :3 [09:21] seivan: hmm [09:21] seivan: time spent doing Node, I could learn erlang.. damnit I want coffeescript for erlang [09:21] SubStack: jesusabdullah: I have plenty of modules like that [09:21] NuckingFuts: jesusabdullah: OH! That thing! I use that for my bot's initial config :D [09:21] SubStack: that only I ever use [09:21] jesusabdullah: NuckingFuts: I wrote an npm module named node-rompt [09:21] SubStack: hah see neat [09:21] jesusabdullah: node-prompt* [09:21] jesusabdullah: Or rather [09:21] jesusabdullah: I wrote a first version, and pkrumins wrote a bunch of it [09:21] SubStack: I don't know why so many people use seq, I just wrote that for me :/ [09:22] jesusabdullah: and I kept it in my repo [09:22] SubStack: well I did blog about it... [09:22] jesusabdullah: because to pkrumins it was almost trivial [09:22] SubStack: mostly because I was trying to write a lot of articles that week [09:22] NuckingFuts: lol it is pretty simple :P [09:22] jesusabdullah: mmhmm ^__^ [09:22] NuckingFuts: I'm probably gonna remove dependency once I write my own in-house lib [09:22] NuckingFuts: I already made my own console wrapers [09:22] dgathright has joined the channel [09:23] jesusabdullah: gg [09:23] jesusabdullah: tbh I stole a lot from npm [09:23] NuckingFuts: They allow for colors, parsing, etc. [09:23] jesusabdullah: idk if I noted that or not [09:23] jesusabdullah: Feel free to share ;) [09:23] NuckingFuts: jesusabdullah: I think I saw that in the comments :P [09:23] jesusabdullah: I love it when people write software for me :2~P [09:23] jesusabdullah: ah, gg [09:23] NuckingFuts: Anyways, I intend to add nonblocking input handling too :D [09:23] MikhX has joined the channel [09:24] jesusabdullah: Def. share, then :D [09:24] jesusabdullah: I haven't had time to do anything with it since I npm-ed it [09:24] jesusabdullah: fucking thesis [09:24] tanepiper: jesusabdullah: 07:18 #Node.js: < jesusabdullah> indeed. Ask tanepiper about it ? [09:24] jesusabdullah: i don't remember anymore tane! [09:24] stride: jesusabdullah: enjoy it. doesn't get better after the thesis.. [09:24] jesusabdullah: ow8 now I do [09:25] NuckingFuts: jesusabdullah: lol it's not so hard, really. Especially since there's now the TTY class :P [09:25] jesusabdullah: tanepiper: about coffee and seq [09:25] jesusabdullah: tty class? [09:25] NuckingFuts: err module [09:25] NuckingFuts: jesusabdullah: You haven't seen the docs for 0.4.0? [09:25] DTrejo: jesusabdullah: just add a callback into .end( function() {console.log('this is my callback?'); }); ?? [09:25] jesusabdullah: Last time I was paying close attention to node apis, I was catching up with the 0.3.x branch [09:25] jesusabdullah: :C [09:25] jesusabdullah: Like I said, busy busy [09:25] DTrejo: yep [09:25] NuckingFuts: Actually, TTY isn't really documented, I think [09:25] NuckingFuts: I had to read code as I recall [09:26] tanepiper: jesusabdullah: i haven't figured it out yet [09:26] DTrejo: jesusabdullah: write dat thesis like a G [09:26] jesusabdullah: like a G? XD [09:26] adambeynon has joined the channel [09:26] jesusabdullah: I'm working on it! Really! [09:26] NuckingFuts: Like a G-string :B [09:26] tanepiper: still haven;t really figured a good flow control for coffee [09:26] jesusabdullah: I got like 80% of the code I need to handle the output of the experimental apparatus [09:27] tmzt: anyone know why gapps won't forward email to a groups name to group members? [09:27] lukegalea has joined the channel [09:27] SubStack: tanepiper: you could just take something like step and have it add an explicit callback instead of `this` [09:28] NuckingFuts: I really ought to start using flow control lol [09:29] confoocious has joined the channel [09:29] confoocious has joined the channel [09:29] NuckingFuts: I'm sure it could make my life really easy :P [09:29] tmzt: SubStack: I asked people earlier, but any idea how to make one vhost on cluster check out a git repo before launching? [09:29] tmzt: without taking the others down [09:29] mies has joined the channel [09:30] tmzt: or that's tj's right? [09:30] mraleph has joined the channel [09:30] SubStack: yeah, a learnboost creation [09:30] NuckingFuts: What flow control do you suggest? [09:30] SubStack: ACTION <-- biased [09:31] SubStack: actually step is a good one to start with [09:31] SubStack: simple [09:32] DTrejo: NuckingFuts: I've use caolan's async, and liked it : https://github.com/caolan/async [09:32] tanepiper: yea, i was thinking some like a dropdown callback that falls through the app [09:32] Wizek has joined the channel [09:33] NuckingFuts: DTrejo: Ooooh, I likey that one. [09:34] NuckingFuts: The parallel and such could really come in handy :B [09:34] DTrejo: :) yes I have made a convert hehe [09:34] DTrejo: the docs are great [09:34] DTrejo: and covers a lot of common cases [09:34] DTrejo: also, async.apply makes your life easier [09:35] NuckingFuts: And I assume that each function (like parellel, etc.) only returns when all the tasks are done? [09:36] DTrejo: if by return you mean calls the callback, yes [09:36] aabt has joined the channel [09:37] NuckingFuts: DTrejo: So for complex flow control, where I'd step through a process with certain tasks running in parallel, it'd be pretty complex, though, right? [09:37] lukegalea has joined the channel [09:38] DTrejo: NuckingFuts: it depends on how complex you need it to be and how much parallelism you're trying to squeeze out [09:39] NuckingFuts: DTrejo: Well, I have a bot I want to make for deviantART chat, which logs on to a good 200 accounts, something I want to do in parallel, but I need to step it so it logs in, connects to the server, then joins a chat. With 200 accounts, I need any parellelism I can get :P [09:40] DTrejo: OMG I JUST DISCOVERED "this is a string".substr(-6) !! [09:40] DTrejo: so convenient! [09:41] DTrejo: NuckingFuts: try mocking it up with stub methods that don't actually do any work using async or some other lib, and then fill in the real code? might make it easier to see whats going on [09:41] micheil: DTrejo: so. anyway, the new doctool is almost ready. [09:41] DTrejo: ooh :) [09:41] micheil: I have it parsing, just need to write the renderers [09:42] DTrejo: render into html I'm guessing you mean [09:42] samcday_ has joined the channel [09:42] dve has joined the channel [09:43] micheil: and to json, and to nodedoc [09:43] franck34: http://servicestack.net/RedisAdminUI/AjaxClient/default.htm [09:43] micheil: yes, this new doctool can output json. [09:43] micheil: and nodedoc is the new format for documentation [09:44] jesusabdullah: What is this nodedoc? [09:44] jesusabdullah: link? [09:44] DTrejo: ACTION searches github for nodedoc [09:44] micheil: (it's a combination of markdown + custom) [09:44] jesusabdullah: I like markdizzle [09:44] micheil: you won't find it. It's a private repo at the moment [09:44] jesusabdullah: micheillllllll [09:45] micheil: DTrejo: example: https://gist.github.com/8b21f58347b26e7301d6 [09:45] micheil: DTrejo: a single > means Class [09:46] micheil: a double >> means property [09:46] micheil: a property when followed by parenthesis is a method [09:46] dve has joined the channel [09:46] micheil: a >> followed by " Event: " is an event [09:46] jesusabdullah: like [09:47] micheil: (but the event one may change) [09:47] DTrejo: interesting [09:47] jesusabdullah: >>?>? is now an event. [09:47] jesusabdullah: Gnight y'all [09:47] DTrejo: gnight jesusabdullah [09:48] mnot has joined the channel [09:48] micheil: DTrejo: the other option is to go with something where it's explicit: [09:48] micheil: @class File System (fs) [09:48] lukegalea has joined the channel [09:48] micheil: @method rename(path1, path2, [callback]) [09:49] DTrejo: I kinda like that, self-documenting and whatnot [09:49] DTrejo: though it doesn't fit with the markdown style as much [09:49] micheil: @event open [09:49] micheil: as the >'s aren't that specific [09:50] micheil: or, I go with Class: File System (fs) [09:50] micheil: Method: rename(path1,path2,[callback]) [09:50] micheil: etc [09:50] DTrejo: what were your findings with regards to other large projects and how they did their docs? [09:50] micheil: well, generally a lot of projects were using in code documentation [09:51] micheil: others did specific sites [09:51] micheil: and others did documentation using roff/ronn style things [09:51] Ratty_: Anyone used node.js with AMF? [09:51] micheil: AMF? [09:51] Zhulin has joined the channel [09:52] Ratty_: Action Message Format. ActionScript object serialization. [09:52] DTrejo: it would be interesting to hear what someone who wrote one of those sites / their own doctool has to say, and if they have any tips on how to do it better than they did [09:52] Wizek has joined the channel [09:52] micheil: DTrejo: probably not [09:52] micheil: for instance prototype has protodoc [09:52] micheil: an in-code documentation format [09:53] MikhX has joined the channel [09:54] mikedeboer has joined the channel [09:55] Wizek has joined the channel [09:56] Lorentz has joined the channel [09:58] gasbakid has joined the channel [09:58] Zhulin: Hey guys, I got some problem in installing node.js [09:58] gasbakid_ has joined the channel [09:58] DTrejo: gnight everyone! [09:59] DTrejo: micheil: looking forward to seeing what you come up with :) [09:59] Zhulin: gnight DTrejo [09:59] NuckingFuts: What's this about documentation? [09:59] NuckingFuts: I just use JsDoc right now, got a better tool? [09:59] micheil: NuckingFuts: yes, but for out-of-code documentation [10:02] MikhX has joined the channel [10:05] Wizek has joined the channel [10:06] tahu has joined the channel [10:06] Mapex has joined the channel [10:06] altamic has joined the channel [10:07] lukegalea has joined the channel [10:07] Throlkim has joined the channel [10:09] Guest5188 has joined the channel [10:09] msch has joined the channel [10:09] Jourkey: how heavy is jsdom? [10:10] aurynn has joined the channel [10:13] Country has joined the channel [10:17] lukegalea has joined the channel [10:21] Zhulin_ has joined the channel [10:21] NuckingFuts: Jourkey: 5 gallons [10:25] Kingdutch has joined the channel [10:25] NuckingFuts: I'm gonna go to sleep and ask my question in the morning lol [10:28] seivan: Man Coffee just stood in my way [10:28] seivan: for channel, subscription of message.channels is correct [10:28] seivan: in message.channels is not [10:28] lukegalea has joined the channel [10:28] balaa has joined the channel [10:29] seivan: Socket is not writable [10:29] seivan: Anyone got that before? [10:31] sveimac has joined the channel [10:31] chapel: seivan [10:31] chapel: what are you trying to do? [10:32] chapel: of = in (js) [10:32] seivan: I got it now :) except now it says second argument should be a buffer [10:32] seivan: https://gist.github.com/0ec0dd5a4918d48ede3d [10:33] dousmell has joined the channel [10:35] TomY has joined the channel [10:35] SamuraiJack has joined the channel [10:36] seivan: chapel: did you get that? [10:37] chapel: yeah [10:37] chapel: seems to be okay [10:37] seivan: TypeError: Second argument should be a buffer [10:37] seivan: the socket.write(message.stringify); [10:37] nook has joined the channel [10:39] chapel: hmm, not sure, haven't used net much [10:39] seivan: ah [10:40] seivan: nvm I got it. [10:40] seivan: I'm sending back a function :) [10:40] Wizek has joined the channel [10:42] NuckingFuts: away sleeping [10:42] NuckingFuts: fuck [10:43] dominictarr has joined the channel [10:44] dve has joined the channel [10:46] jashkenas has joined the channel [10:49] lukegalea has joined the channel [10:54] Wizek has joined the channel [10:57] micxer has joined the channel [10:57] m64253 has joined the channel [10:59] kwik101 has joined the channel [10:59] lukegalea has joined the channel [11:03] aho has joined the channel [11:06] jetienne: ubuntu deb for 0.4.1 buildign [11:06] jetienne: building even [11:07] killfill has joined the channel [11:09] revoof has joined the channel [11:09] revoof: hello [11:10] revoof: i am confused by some articles on the web - is it, in node.js, safe to use typeof x == 'function' to see if x is a function? [11:11] jetienne: revoof: yes [11:12] jetienne: revoof: nodejs is using normal js [11:12] revoof: jetienne: thank you jetienne, so it's only about some browsers? [11:12] jetienne: revoof: i dont think so, this would be a significant bug [11:12] mnot has joined the channel [11:13] jetienne: revoof: and i think i would know about it as it would be big enougth [11:13] jetienne: http://bonsaiden.github.com/JavaScript-Garden/#typeof for details on typeof instanceof [11:14] revoof: ok [11:14] lukegalea has joined the channel [11:17] SubStack: hey lookit I implemented prime number generation for DSS: https://gist.github.com/835900 [11:17] SubStack: next stop, node-ssh-server! [11:18] nornagon: hey, is it possible to check if there are any remaining ticks? [11:18] jetienne: nornagon: remaining ticks ? what do you mean [11:19] nornagon: like, 'will node exit at the end of this code unless i set some sort of callback'? [11:19] nornagon: basically i want a test framework that checks if there are any callbacks remaining to be called [11:19] jetienne: nornagon: not that i know of [11:19] nornagon: that's a shame :( [11:21] SubStack: process.on('exit', fn) I think [11:21] nornagon: hm [11:21] SubStack: yep [11:21] nornagon: will that give me a chance to, er, 'un-exit'? [11:21] jetienne: nice idea. in SubStack fn will be called when the script is supposed to exit [11:21] SubStack: doesn't seem so [11:21] SubStack: "The main event loop will no longer be run after the 'exit' callback finishes, so timers may not be scheduled." [11:21] daveyjoe has joined the channel [11:22] nornagon: i can see in src/node.js what needs to be checked -- [11:22] nornagon: nextTickQueue.length [11:23] CrazyGoogle has joined the channel [11:24] Wizek has joined the channel [11:27] FireFly has joined the channel [11:27] jetienne: sudo add-apt-repository ppa:jerome-etienne/neoip && sudo apt-get update && sudo apt-get install nodejs <- to install node.js 0.4.1 on ubuntu [11:32] Wizek has joined the channel [11:33] jetienne: http://networkimprov.github.com/node-doc-api/all.html node docs... nicer :). [11:34] mscdex: toc needs to be on the left ;-) [11:34] zomgbie has joined the channel [11:34] lukegalea has joined the channel [11:35] mike5w3c has joined the channel [11:35] Wizek has joined the channel [11:35] jetienne: :) [11:36] CrazyGoogle: graz for 0.4.1 everybody ! :D [11:42] zthor has joined the channel [11:43] LarsSmit has joined the channel [11:45] lukegalea has joined the channel [11:46] Wizek_ has joined the channel [11:46] floby has joined the channel [11:46] floby has left the channel [11:52] tc77 has joined the channel [11:52] daveluke has joined the channel [11:53] pastak has joined the channel [11:58] lukegalea has joined the channel [11:59] CrazyGoogle: cant wait for gentoo nodejs-0.4.1 ebuild update [12:00] wink_ has joined the channel [12:00] Kingdutch: ACTION needs to figure out how to upgrade from 0.3 to 0.4 [12:00] Kingdutch: =/ [12:01] stride: configure make make install node vim node vim node vim node profit [12:01] stride: :> [12:02] liar has joined the channel [12:06] kjeldahl_ has joined the channel [12:07] CrazyGoogle: oh, looks like i just started to be nodejs comaintainer for gentoo :D [12:08] Evet has joined the channel [12:08] lukegalea has joined the channel [12:08] enr^ has joined the channel [12:13] nmtmason has joined the channel [12:17] fly-away has joined the channel [12:19] lukegalea has joined the channel [12:20] gasbakid has joined the channel [12:20] gasbakid_ has joined the channel [12:22] SamuraiJack_ has joined the channel [12:23] gasbakid_ has joined the channel [12:23] adambeynon has joined the channel [12:24] gasbakid has joined the channel [12:25] Sebmaster has joined the channel [12:25] aabt has joined the channel [12:28] daveyjoe_ has joined the channel [12:30] gasbakid_ has joined the channel [12:31] svenlito has joined the channel [12:34] francescop has joined the channel [12:34] lukegalea has joined the channel [12:34] francescop has left the channel [12:34] tacheshun has joined the channel [12:36] squeeks: well volunteered. [12:37] stride: hm. where's the 4.1 tarball.. meh [12:37] stride: oh, nvm. browser cache [12:44] luke`_ has joined the channel [12:44] lukegalea has joined the channel [12:49] m64253 has joined the channel [12:55] Juan77 has joined the channel [12:58] Gruni has joined the channel [12:59] __tosh has joined the channel [12:59] daveluke has joined the channel [13:02] davidc_ has joined the channel [13:04] davidc_ has joined the channel [13:05] lukegalea has joined the channel [13:16] lukegalea has joined the channel [13:16] kwik101: hey guys! how i can $pullAll some Objects by ObjectId in mongoosejs from embedded document? [13:16] real_ate has joined the channel [13:17] real_ate: hi guys! i'm having a bit of trouble submitting data to my node.js program [13:17] real_ate: and i can't figure it out [13:17] chapel: what are you trying to do real_ate [13:17] real_ate: ACTION is pastebin ing [13:18] real_ate: http://pastebin.com/JRUPC3V4 [13:18] Wizek has joined the channel [13:19] real_ate: i also tried req.addListener( but it would never post anything out to console [13:19] real_ate: and that one isn't posting anything out to console [13:19] unomi has joined the channel [13:19] unomi has joined the channel [13:19] real_ate: i don't know what I am doing wrong :( [13:19] chapel: you are using the connect module? [13:20] real_ate: yea... i was going to make use of some of the middleware features soon [13:20] real_ate: but i havnen't implemented that yet [13:20] wdperson_ has joined the channel [13:21] real_ate: I just want a test server that will print to the console whenever it receives anything [13:22] sveimac has joined the channel [13:22] chapel: not sure how accurate that is now, but this should help http://howtonode.org/connect-it [13:23] daveluke: anyone made anything cool? :) [13:25] chapel: what do you deem cool? [13:27] daveluke: well this is what i made http://socialscorer.com/playlobsterdog.html [13:27] daveluke: i think thats kinda cool [13:33] CrazyGoogle: simple/test-http-agent2 test doesnt work for 0.4.1 [13:33] CrazyGoogle: test-net-pingpong [13:34] CrazyGoogle: simple/test-http-dns-fail [13:36] hecticjeff has joined the channel [13:37] CrazyGoogle: is there any nodejs irc web interface like qwebirc in github ? [13:39] real_ate: chapel: i'm trying that now thank you [13:39] stride: don't think so, but there are irc libraries and socket.io examples CrazyGoogle [13:41] CrazyGoogle: no, please no socket.o [13:41] CrazyGoogle: i would like to have irc web interface based on long poling [13:43] zthor has joined the channel [13:44] wdperson has joined the channel [13:44] chapel: the problem with that is that you would be connecting through the server, not directly [13:45] CrazyGoogle: yeah, thats not a problem for me [13:53] mlncn has joined the channel [13:59] real_ate: what is the best way to test a request "data" callback [13:59] real_ate: ? [14:00] revoof has joined the channel [14:00] revoof: hi [14:00] revoof: is there something like net.Server.isListening() or so? [14:01] chapel: real_ate: is there a reason you aren't using express? [14:02] mattijs has joined the channel [14:02] real_ate: chapel: no [14:02] real_ate: should i be? [14:02] lukegalea has joined the channel [14:03] liquidproof: does node have something similar to ruby's $0 ? [14:03] chapel: well it sounds like you are somewhat new [14:03] real_ate: i thought connect is just a slightly higher layer than express and includes everything that express has [14:03] chapel: well I say learn things using express [14:03] chapel: if you want to get more barebones, go to connect [14:03] real_ate: ... eh.. its higher layer [14:03] real_ate: not lower layer [14:04] real_ate: or at least thats what the blurb says ;) [14:04] chapel: well connect is under express [14:04] chapel: being that express is built on connect [14:04] hij1nx has joined the channel [14:05] real_ate: ACTION just noticed "built on connect" [14:05] real_ate: i must have misunderstood the connect blurb when it was talking about express [14:05] vyvea has joined the channel [14:06] jbpros has joined the channel [14:09] TomY has joined the channel [14:11] mauritslamers has joined the channel [14:12] Throlkim has joined the channel [14:12] kal-EL_ has joined the channel [14:13] daveluke has joined the channel [14:19] lukegalea has joined the channel [14:19] real_ate: chapel: thanks for all the help! I have it working now ;) [14:20] Wizek has joined the channel [14:20] revoof has left the channel [14:20] CrazyGoogle has joined the channel [14:22] Alex3000 has joined the channel [14:24] tc771 has joined the channel [14:28] iszak has joined the channel [14:28] iszak has joined the channel [14:28] SamuraiJack__ has joined the channel [14:28] alexandere has joined the channel [14:29] svenlito has joined the channel [14:32] lukegalea has joined the channel [14:32] franck34: how is it possible to code without 'step' module in node ?? [14:36] mlncn has joined the channel [14:36] dnolen has joined the channel [14:36] kawaz_work has joined the channel [14:37] aklt has joined the channel [14:37] tc771 has left the channel [14:38] tc77 has joined the channel [14:39] m64253 has joined the channel [14:41] CrazyGoogle: can someone review patch for 0.4.1 node simple test ? [14:41] CrazyGoogle: https://gist.github.com/836015 [14:42] lukegalea has joined the channel [14:43] Wizek has joined the channel [14:47] m64253 has joined the channel [14:49] bluegene has joined the channel [14:51] heavysixer has joined the channel [14:53] lukegalea has joined the channel [14:54] CrazyGoogle: thats wired [14:54] CrazyGoogle: PING not-a-real-domain-name.nobody-would-register-this-as-a-tld (80.156.86.78) 56(84) bytes of data. [14:55] xandrews has joined the channel [14:55] amccollum has joined the channel [14:55] sveimac has joined the channel [15:00] alexandere has joined the channel [15:01] __tosh has joined the channel [15:02] maushu has joined the channel [15:03] alexandere has joined the channel [15:04] alexandere has joined the channel [15:07] m64253 has joined the channel [15:08] alexandere_ has joined the channel [15:13] CrazyGoogle: pingPongTest(20997, '::1'); - Error: EAFNOSUPPORT, Address family not supported by protocol [15:13] geoffeg has joined the channel [15:13] MattJ has joined the channel [15:14] alexandere has joined the channel [15:14] lukegalea has joined the channel [15:14] wilmoore has joined the channel [15:14] |sWORDs| has joined the channel [15:16] |sWORDs|: Does any one know what is needed to build with v8 snapshotting? (And if it would really be a downside to not have it?) I'm building on a NAS with a very very limited Linux build. [15:17] CrazyGoogle: so you can pass this test, if ipv6 is not enabled ? [15:22] iszak: How would I go about setting up node.js in a shared environment for all users to use it? [15:22] iszak: could I not just run node as a user? [15:22] iszak: or is more required? [15:22] xandrews has joined the channel [15:28] yhahn has joined the channel [15:28] kodisha has joined the channel [15:30] bubbafat has joined the channel [15:30] pHcF has joined the channel [15:38] dthompson has joined the channel [15:39] spetrea-home has joined the channel [15:41] cainus has joined the channel [15:42] lukegalea has joined the channel [15:45] zachsmith has joined the channel [15:45] nonnikcam has joined the channel [15:46] markstory has joined the channel [15:47] beawesomeinstead has joined the channel [15:48] ceej has joined the channel [15:53] lukegalea has joined the channel [15:54] sveimac has joined the channel [15:58] tc771 has joined the channel [16:01] zzak: micheil: damn looks like we're playing irc tag lol, i was gonna ask you about helping out with docs. ping me next time you've got a sec :) [16:01] micheil: maybe [16:02] zzak: zomg [16:02] micheil: hell yes. [16:02] micheil: zzak: I'm actually working on the parser at the moment [16:02] micheil: it had a bunch of weird edge cases... [16:02] zzak: nice [16:02] micheil: like the tree it was building wasn't being traversed properly [16:03] jtsnow has joined the channel [16:03] xandrews has joined the channel [16:04] zzak: micheil: i saw the thread on nodejs-dev, just wanted to confirm: fork from votizen and send you back pull requests? [16:04] ryanfitz has joined the channel [16:07] m64253 has joined the channel [16:08] sveimac has joined the channel [16:10] |sWORDs|: Does any one know what is needed to build with v8 snapshotting? (And if it would really be a downside to not have it?) I'm building on a NAS with a very very limited Linux build. [16:10] Sebmaster has joined the channel [16:11] mynyml has joined the channel [16:16] Sebmaster_ has joined the channel [16:16] Djui has joined the channel [16:18] Djui: Hej. From google groups it sounds like building node for arm-apple-darwin does not work/fails and would not run. Did anybody here try it at all? Successful or unsuccessful? [16:19] MikhX has joined the channel [16:20] smarmy has joined the channel [16:20] altamic has joined the channel [16:20] micheil: zzak: yes [16:21] micheil: zzak: just wait a few days though [16:21] micheil: new doc format in progress. [16:21] micheil: also, I need to meet with sh1mmer from Joyent to further discuss things [16:22] lukegalea has joined the channel [16:22] micheil: zzak: sh1mmer is the person at joyent who liaises with ryah and also contributes to the documentation [16:22] bingomanatee: Hey Substack [16:23] temp01 has joined the channel [16:25] micheil: zzak: I'll be back in a bit. coffee. [16:29] temp01 has joined the channel [16:31] zzak: micheil: sounds good :) [16:32] losing has joined the channel [16:33] temp01 has joined the channel [16:34] marienz_ has joined the channel [16:36] xandrews has joined the channel [16:36] dve has joined the channel [16:36] lukegalea has joined the channel [16:36] narph: anyone got node-glob 2.x up and running on debian/ubuntu? [16:37] narph: looks like strlcpy() does not ship with libc but with libbsd which is not configured by the waf-script [16:37] kodisha: thinking on loud over here.. is there any point in creating OODB for JS via node? [16:38] kodisha: there is bunch of KV stores that gives you JSON response [16:40] tc77 has joined the channel [16:45] markwubben has joined the channel [16:46] hornairs has joined the channel [16:46] m64253 has joined the channel [16:50] fairwinds: ryah: am doing host+path.join(...) for urls. So forget what I was talking about yesterday. ie a join similar to py's os.path.join. I guess am too used to py but I will get over it :-) [16:50] cronopio has joined the channel [16:51] lukegalea has joined the channel [16:51] fairwinds: join is handy enough as is [16:51] WarriorSl has joined the channel [16:52] bingomanatee_ has joined the channel [16:52] dc` has joined the channel [16:53] bentruyman has joined the channel [17:01] andrewhodel has joined the channel [17:02] dc` has left the channel [17:02] ph^ has joined the channel [17:03] tanepiper: has something in fs changed between 0.4 and 0.4.1 ? [17:03] tanepiper: gahh yes, fs.open [17:03] mraleph: |sWORDs|: you need snapshoting only if you create many contextes and care about context creation time. [17:04] andrewhodel: can anyone help with this: http://paste.ly/5Vsy (mongoose + mongodb) [17:05] mraleph: Djui: what is arm-apple-darwin? is it iOS target? [17:05] sveimac has joined the channel [17:05] mraleph: Djui: v8 will not work on iOS and so node will not work on iOS either. [17:08] andrewhodel has left the channel [17:08] jakehow has joined the channel [17:08] quinnirill has joined the channel [17:09] quinnirill: Hello! [17:09] andrewhodel has joined the channel [17:09] Djui: mraleph: yes, it is iOS [17:10] Djui: mraleph: Can you elaborate why v8 is not working on iOS? [17:10] davidascher has joined the channel [17:10] spaceinvader: it compiles to native code, but i thought the v8 targets were arm, x86 and x86_64 [17:10] spaceinvader: because before I tried to compile on sparc64 and noticed it didn't work [17:10] quinnirill: Can someone tell me how can I do the following in C++/V8? [17:10] quinnirill: function(callback){ callback.call(this); }; [17:11] beta_ has joined the channel [17:13] quinnirill: or more preferrably, is there some way to revert v8::Value to v8::Function, as args[0] is of type v8::Value, and I need it to be function to do args[0]->Call() [17:15] Sebmaster has joined the channel [17:15] seivan has joined the channel [17:16] quinnirill: anyone? [17:16] Me1000 has joined the channel [17:16] andrewhodel: can anyone help with mongoose? http://paste.ly/5Vsy [17:16] SamuraiJack has joined the channel [17:16] seivan: Is there a way to get the node docs locally? I am on a shoddy connection now [17:19] dve: seivan: why not just download http://nodejs.org/docs/v0.4.0/api/all.html [17:20] Throlkim has joined the channel [17:21] bingomanatee: andrewhodel: while I am not familiar with Mongoos this doesn't look like a "Mongoose" problem as such - it looks like the mongoose library can't be loaded - check your paths to ensure that it is where you need it relative to your paste'd document [17:22] lukegalea has joined the channel [17:23] andrewhodel: bingomanatee: wouldn't it fail on the require if that was the case? [17:23] omenking has joined the channel [17:23] andrewhodel: or on line 3, mongoose.connect [17:23] |sWORDs|: mraleph: Tnx! So if I get it right, then in my case (I only start a few .js files on startup of my program (that should only start after powerdown) it doesn't really matter? [17:23] seivan: Hmm is there I way I can add methods on top of sockets ? [17:24] omenking: passing variables, objects to other files, how do you do it? [17:24] seivan: or whatever that is a part of the net.createServer calback [17:24] omenking: I thought this but Im wrong: http://pastie.org/1586243 [17:24] seivan: omenking: good question [17:25] Ezku\ has joined the channel [17:26] Yuffster has joined the channel [17:26] m64253 has joined the channel [17:26] |sWORDs|: omenking: I use a contructor and pass the object when creating a new object [17:27] micheil: back. [17:28] mraleph: |sWORDs|: yes, that should not matter. [17:28] omenking: |sWORDs|: no idea what sWORDs is talking bout [17:29] omenking: Im just trying to seperate some files in my express js app, but no idea how to pass a variable to another file [17:29] |sWORDs|: TCPClient= require("./TCPClient.js"); TCPClient1 = new TCPClient(Net, GatewayClients, device, GatewayHosts); [17:30] bingomanatee: you are right I was misreading the error [17:30] omenking: |sWORDs|: Im not trying to make a new object, Im modifying an existing one in a different class [17:31] |sWORDs|: omenking: Yeah, but you'll need to pass it first. [17:31] muk_mb has joined the channel [17:32] bingomanatee: omenking - I would return a value from the function rather than depend on the ability of a change of a variable inside the function reflecting outwards. [17:32] bingomanatee: This is a classic pass by reference/ pass by value issue. [17:32] NuckingFuts has joined the channel [17:32] augustl: are there any libs out there to append-write to files, i.e. logging? [17:33] bingomanatee: Core filesystem will append if passed 'a+' as a parameter. or 'a'. one of the two. [17:33] papyromancer has joined the channel [17:33] bingomanatee: so the answer to your question is probably not as its in core. [17:34] augustl: bingomanatee: will look that up, thanks [17:34] mraleph: Djui: because iOS kernel does not allow to map pages that are both writable and executable. [17:34] shazmoh_ has joined the channel [17:35] mraleph: Djui: which is crucial for any JIT to work. [17:35] omenking: Figured it out, my javascript code I provided works pefect, but I was making a mistake in my coffeescript [17:35] omenking: I was writing require 'translate' hello, instead of require('translate')(hello) [17:36] Djui: mraleph: Hm, yes, read exactly that on the google groups. But neither do I find a source that iOS kernel has this policy, neither do I know that v8 needs this. (I though to have read about newer techniques for JIT compilers that work around this) [17:36] shazmoh_: how to persist environment variables in mac osx? [17:36] dc` has joined the channel [17:36] hoodoos has joined the channel [17:36] augustl: shazmoh_: export [17:36] omenking: @|sWORDs| @bingomanatee neither was the case, its safe to do what Im doing [17:36] augustl: as with any other *NIX ;) [17:36] shazmoh_: august1: will it span across sessions -- after restart? [17:37] sixtus42 has joined the channel [17:37] Djui: shazmoh_: No, but you can export them in your ~/.profile file [17:37] seivan has joined the channel [17:38] NuckingFuts: Ugh... Good morning peopls. [17:39] franck34: what modules are you using to handle mysql ? is there a popular one between node-poormansmysql node-mysql node-mysql-native node-mysql-libmysqlclient ? [17:40] shazmoh_: When I "vi ~/.profile" it opens up empty file. Though I have Java and Maven in my system and their env. variables are persistes. I'm wondering it there someother place to out the export command. FYI, someone else helped me to setup JAVA and Maven [17:42] mraleph: Djui: V8 needs this, believe me. V8 sources allocates writable and executable pages for the code objects, and V8 likes to patch generated code during execution. I can point you to the places in the source if you want. [17:44] mraleph: Djui: there is no workaround. afaik even apple's own javascript vm runs as a pure interpreter on ios and does not perform jit compilation. [17:45] seivan has joined the channel [17:45] |sWORDs|: Franck34: I'm using node-mysql and didn't try another because it works great [17:46] franck34: ok thx [17:46] franck34: hesitating with node-mysql-libmysqlclient [17:46] m64253 has joined the channel [17:46] Dreamer3 has joined the channel [17:47] andrewhodel: anyone familiar with mongoose? [17:47] xandrews has joined the channel [17:47] jeromegn: andrewhodel: yes [17:47] sabayonuser has joined the channel [17:47] andrewhodel: jeromegn: any idea whats what? the docs seem to represent different versions of mongoose [17:47] andrewhodel: and specifically, noSchema seems to no longer exist? [17:48] lukegalea has joined the channel [17:48] dc` has joined the channel [17:48] jeromegn: andrewhodel: http://mongoosejs.com - noSchema? Yea you can't have a whole document without a schema, according to them this is not the philosophy of a ORM. However you can have keys without schema like so: key: {} [17:49] andrewhodel: I guess this is an early fork [17:49] andrewhodel: https://github.com/ciaranj/mongoose [17:49] andrewhodel: that still had noSchema? [17:49] mikedeboer has joined the channel [17:50] vnguyen has joined the channel [17:50] augustl: is there a way for me, as a user of the tls module, to access this event? https://github.com/ry/node/blob/7dad30afe9b823b2edc/lib/tls.js#L699 [17:50] daveyjoe_ has joined the channel [17:50] |sWORDs|: franck34: I like the way to create a new connection DatabaseTest=require('./mysql/client.js')({host:"localhost",user:"root",password:"root",database:"test"}); [17:50] jeromegn: andrewhodel: yea that's mongoose pre 1.0 [17:50] andrewhodel: hmm, I can't get either to work [17:50] augustl: I would like to log unauthorized connections. Seems like it's all in variables I don't have access to though [17:50] jeromegn: andrewhodel: what do you get? [17:50] dnyy has joined the channel [17:50] andrewhodel: jeromegn: are there any other wrappers which don't require a schema? [17:51] andrewhodel: jeromegn: http://paste.ly/5Vsy on 1.0 [17:52] jeromegn: andrewhodel: here are a few other wrappers, but I haven't checked them out extensively... leaf and noid on github... mongolia... hmm! from a discussion I remember with one of the mongoose guys: if you want to store data without a schema, you don't need a ORM/ODM like mongoose, you can jsut use the native mongodb drivers :) [17:52] andrewhodel: yea, if you don't mind 40 recursive functions [17:52] jeromegn: hehe true [17:53] pauls has joined the channel [17:53] pauls: any mongodb experts on? [17:54] augustl: you sure you need an expert? ;) [17:54] pauls: heh well i'd hope not but this one's really boggling my noggin [17:54] pauls: it seems simple though... so either i need an expert or just another pair of eyes [17:55] jeromegn: andrewhodel: I think that's the issue here (last comment) https://github.com/learnboost/mongoose/issuesearch?state=closed&q=CALL_NON_FUNCTION_AS_CONSTRUCTOR#issue/233 [17:57] NuckingFuts: lol the buildbot hates Mac OS X [17:57] aabt has joined the channel [17:57] NuckingFuts: They've been offline for like a week now, at least. ~37 backed up each [17:58] linnk has joined the channel [18:00] daveluke: does a user disconnect if they x out the application? [18:00] pauls: anyone familiar with mongodb? (augustl, how's that? :]) [18:02] pauls: :'( [18:05] lukegalea has joined the channel [18:06] SamuraiJack_ has joined the channel [18:08] c4milo has joined the channel [18:08] glen_ has joined the channel [18:09] glen_: hello [18:10] patcito has joined the channel [18:10] blueadept has joined the channel [18:14] dgathright has joined the channel [18:15] mynyml has joined the channel [18:17] augustl: pauls: I'm sort of familiar with it [18:18] augustl: pauls: only used it in a pet project that I only just started, though [18:20] pauls: augustl: i've been using it for 3-4 months... this is a weird case tho, not sure anyone but a more experienced person than me has come across it. if you'd like to take a crack at it though i'd be happy to describe the issue [18:20] ajnasz has joined the channel [18:24] stonecobra has joined the channel [18:24] arpegius has joined the channel [18:27] SamuraiJack has joined the channel [18:29] sonnym has joined the channel [18:29] Dulak has joined the channel [18:29] SamuraiJack has joined the channel [18:31] sixtus42 has left the channel [18:31] jasong_at_apache has joined the channel [18:31] jeromegn: pauls: Fire away, maybe someone will answer.. [18:34] augustl: how do you get the IP of the client in HTTP request? [18:34] augustl: I found socket.remoteAddress in the docs, but can't find any remoteAddress in the http req. [18:35] Alex3000 has joined the channel [18:36] gasbakid has joined the channel [18:36] vnguyen has joined the channel [18:38] stride: .address().address [18:38] lukegalea has joined the channel [18:38] JimBastard has joined the channel [18:38] JimBastard: yeaaaaah 34 dollars, https://www.kickstarter.com/projects/1141308765/jsonloops-open-source-real-time-multiuser-audio-se?ref=live [18:38] void_ has joined the channel [18:38] pauls: jeromegn: kk, here goes... just a disclaimer, i'm using mongoose. maybe the bug is in mongoose but it seems unlikely. i have a collection of documents with fields like _id and addedByUserWithId. If I do a query like { "_id" : { $in : arrayOfIdsWithAMatch } } by itself, it will return the matching doc. If I do another query like { "addedByUserWithId" : { $in : arrayOfUserIdsWithAMatch } } then it will return the matching doc, too. The results [18:38] pauls: these two queries are different documents. So I need to do an "or" on them, like this { $or : [ { "_id" : { $in : arrayOfIdsWithAMatch } }, { "addedByUserWithID" : { $in : arrayOfUserIdsWithAMatch } } ] }, but the problem is that it returns nothing. What's up with that? [18:38] JimBastard: if we hit the donation target for JSONloops, we'll be hiring some nodejs devs [18:39] isaacs has joined the channel [18:39] JimBastard: :-D [18:39] m64253 has joined the channel [18:40] phpnode: JimBastard: are you going to support VSTs? [18:40] JimBastard: phpnode: support is a pretty generic word [18:41] phpnode: well, i mean, would i be able to plug an virtual instrument into it [18:41] JimBastard: im not sure of the exact way people will extend JSONloops yet [18:41] gasbakid has joined the channel [18:41] JimBastard: a JSONloops server emits JSON and can receive JSON on every step of the sequence [18:42] JimBastard: it might make sense to have another node running a VST bridge [18:42] JimBastard: i really just dont know yet [18:42] phpnode: where does the audio finally get rendered, on the server? [18:42] JimBastard: i'd like to add VST support, but i dont know where it would go [18:43] JimBastard: phpnode: right now, on the server, but we'll be adding browser side [18:43] JimBastard: and a way to upload assets from the browser [18:43] JimBastard: and have the wavs get sent to each client [18:43] JimBastard: i think for earlier versions, its only going to be a sequencer + sampler [18:43] tbranyen: I'm using ObjectWrap to Unwrap an object passed as an argument and it works fine for two of my classes, but not for a third which is nearly identical. [18:43] tbranyen: This is driving me nuts [18:43] JimBastard: so there will be a lot of sample banks and kits to choose from [18:44] tbranyen: no matching function for call to ‘node::ObjectWrap::Unwrap(v8::Local)’ [18:44] Chainfire has joined the channel [18:46] mies has joined the channel [18:47] phpnode: JimBastard: i like the idea, but i think you have some hurdles ahead, i too grew up making music in fruityloops, but one of the first things i remember getting sick of are the internal samples and instruments, and if you do have to support vstis you're going to burn a lot of cpu server side [18:47] m64253 has joined the channel [18:47] JimBastard: phpnode: im thinking sample integration with like soundcloud [18:47] JimBastard: there are cloud sample providers now [18:48] stagas: JimBastard: there's also this http://www.freesound.org/ [18:48] gasbakid has joined the channel [18:48] JimBastard: phpnode: but yeah, you will be stuck with samples for a while i think [18:48] JimBastard: if you want "real" audio production, dont use "fruityloops" [18:48] JimBastard: aka, JSONloops [18:48] JimBastard: :-D [18:49] JimBastard: there is, https://github.com/egonelbre/jsfx [18:50] mmso has joined the channel [18:51] stagas: JimBastard: sound synthesis on browser is so cool. if you could create a standard format for integrating such stuff it would encourage people to do lots of crazy things [18:52] Dulak: I need seperate node processes to access mulitple cpus, right? there is nothing built into node for this yet? [18:52] Sami_ZzZ has joined the channel [18:53] langworthy has joined the channel [18:54] cainus: hey all... anyone know why a call to fs.unlink() would give me permission denied when the owner is the same user running the node script? [18:54] rcol has joined the channel [18:55] c4milo has joined the channel [18:57] JimBastard: Dulak: there are [18:57] sonnym has joined the channel [18:59] Dulak: JimBastard: any pointers? [18:59] TomY has joined the channel [18:59] JimBastard: Dulak: TJ just launched a new one, Cluster. there is also fugue, and spark, and spark2 [18:59] throughnothing has joined the channel [18:59] Dulak: Thanks, I'll google on those [19:00] dthompson has joined the channel [19:01] vonkow has joined the channel [19:01] nmtmason has joined the channel [19:03] seivan has joined the channel [19:08] dthompson1 has joined the channel [19:08] daveluke has joined the channel [19:09] arpegius has joined the channel [19:12] patcito has joined the channel [19:13] jan____ has joined the channel [19:14] mmso has joined the channel [19:15] mape: Are there any efforts on streaming video with node? [19:16] dans has joined the channel [19:16] real_ate: hmm... i think i have a conscept wrong here somewhere... but how do I "flush" what i have written to a response? [19:16] sonnym has joined the channel [19:17] dans: is it possible to listen to incoming keystrokes and output them as soon as one is detected? [19:17] real_ate: i'm using jquery $.ajax() and if i just do a response.end("blah") the jquery won't make another request... [19:17] JimBastard: mape: i dont think so [19:17] JimBastard: mape: i think i saw someone play with rtmp a little [19:17] mape: Only I can find is https://github.com/pkrumins/node-video but not sure it still work [19:17] mape: *s [19:17] real_ate: so i figured... just write to the response and then flush when i'm done [19:17] JimBastard: pkrumins: [19:17] mape: But that only does ogg [19:18] real_ate: but i only get stuff send to the client when i call end() and i can't get it to work with anything after that... [19:19] real_ate: any chance someone could tell me what i'm doing wrong? ;) [19:19] tk has joined the channel [19:20] stagas: made a simple raw text pasting service for cross domain hackery: http://raw.stagas.com and http://github.com/stagas/raw [19:20] tk has joined the channel [19:20] seivan has joined the channel [19:21] ironfroggy has joined the channel [19:21] ironfroggy has joined the channel [19:21] dans: how can i listen for keystrokes in node? [19:21] augustl: dans: read from stdin you mean? [19:22] dans: yeah but 1 character as a time [19:22] dans: at a * [19:22] stagas: the idea was I wanted to inject subtitles into online videos that use jwplayer and the only way to do it is to host the subtitle file and have a crossdomain.xml in your host [19:22] dans: as in, it detects as soon as a key is pressed and can console.log the output [19:22] ph^ has joined the channel [19:22] stagas: now I just paste it, and then with a simple js command I reload the player with the captions file enabled [19:23] Coal has joined the channel [19:24] augustl: dans: generic answer is generic.. But I take it you're aware of http://nodejs.org/docs/v0.4.1/api/process.html#process.stdin ? [19:24] dans: yes augustl [19:25] dans: but take that example, it will wait until the user presses enter to write the stout [19:25] dans: stdout* [19:25] mikeal has joined the channel [19:25] mikeal: seriously [19:26] mikeal: http://nodejs.org/api.html [19:26] mikeal: that needs to redirect to /api [19:26] JimBastard: yo mikeal , i'll be in SF next week [19:26] mikeal: for good? [19:26] JimBastard: ALLLLRIIIIGHT [19:26] JimBastard: :-D [19:26] mikeal: awesome [19:26] JimBastard: im thinking party at my new place [19:26] mikeal: hopefully the weather clears and we can get our jsBBQ on [19:26] JimBastard: im down [19:30] gravyrobber has joined the channel [19:31] sonnym has joined the channel [19:32] pauls: any mongo guys on? [19:32] pauls: (or gals) [19:34] pr2012 has joined the channel [19:35] Kingdutch has joined the channel [19:36] dans: http://pastie.org/1586694 this doesn't work, it says no resume method available [19:36] dans: process.stdin is undefined.. [19:38] sonnym has joined the channel [19:38] altamic has joined the channel [19:38] altamic has joined the channel [19:39] creativeembassy has joined the channel [19:40] dans: someone? :( [19:41] creativeembassy: can someone help me get nodemon running? [19:41] mape: dans: process.stdin.resume(); process.stdin.on('data', function(stdin) {console.log(stdin.toString());}); [19:41] creativeembassy: I think my computer is attempting to run it as a bash script [19:41] mape: that won't work? [19:42] creativeembassy: I just get this: [19:42] maushu has joined the channel [19:42] creativeembassy has left the channel [19:43] creativeembassy has joined the channel [19:43] warz has joined the channel [19:43] hij1nx has joined the channel [19:43] dans: mape, it throws the same error (can't call resume on undefined) [19:43] mape: dans: Hmm yeah, seems that was changed [19:43] tbranyen: node-waf install should install my package to /usr/local/lib/node right? [19:43] tbranyen: and then i should be able to require('mypackage') ? [19:44] creativeembassy: is anyone seeing my paste here? [19:44] tbranyen: i think i'm missing a step to making this work [19:44] russell_h: creativeembassy: I'm not [19:44] creativeembassy: drat colloquy [19:44] mape: dans: might want to report that [19:44] creativeembassy: /usr/local/bin/nodemon: line 1: syntax error near unexpected token `(' [19:44] creativeembassy: oh, duh. starting line with '/' [19:45] creativeembassy: does that look like a bash syntax error? [19:45] creativeembassy: and should I suck it up and restart my server by hand like a real man? [19:45] creativeembassy: :-) [19:46] Yuffster has joined the channel [19:47] sh1mmer has joined the channel [19:48] tomaw has joined the channel [19:49] papandreou has joined the channel [19:51] killfill has joined the channel [19:51] m64253 has joined the channel [19:53] franck34: mpf [19:53] franck34: i'm using https://github.com/felixge/node-mysql [19:54] franck34: i've checked 10 times all parameters and got a connection refused when connect() [19:56] m2matson has joined the channel [19:56] papandreou: isaacs: I'm having some troubles building the new version of node-glob under Ubuntu 10.10: https://gist.github.com/f5d382cc3c6a0070ac28 [19:56] NuckingFuts|Away: I wonder if it'd be feasible to use an EventEmitter on my chat server as a medium for the broadcasting of messages to everyone in a room. [19:57] Crshman_ has joined the channel [19:57] Crshman_: are there any security implications on sending a password via a post or get request? [19:57] Crshman_: is one better than the other? [19:58] papandreou: Crshman_: http://stackoverflow.com/questions/198462/get-versus-post-in-terms-of-security [19:58] Crshman_: i believe HTTPS encodes query strings for a get request, does it do something similar for a post? [19:58] Crshman_: ah ok, let me see that [19:59] Crshman_: thanks papandreou [19:59] papandreou: Crshman_: np :) [19:59] spaceinvader: are there any bindings for node.js GUIs [19:59] spaceinvader: e.g. for Cocoa or GTK or whatever [20:00] sonnym has joined the channel [20:01] ziro` has joined the channel [20:02] sonnym has joined the channel [20:04] sonnym has joined the channel [20:07] sonnym has joined the channel [20:08] langworthy has joined the channel [20:08] wadey has joined the channel [20:09] andrewhodel has joined the channel [20:09] fr0stbyt3: is there an command-line --watch parameter (that auto-compiles .less to .css keeping directory structure) for less.js? using one for coffeescript, works a treat [20:09] ioxer has joined the channel [20:09] andrewhodel: can anyone help with http://paste.ly/5VyO working on line 28 but not on line 58 [20:10] ioxer_ has joined the channel [20:10] andrewhodel: all vars are properly defined at line 58, which is why I don't understand the problem [20:10] sonnym has joined the channel [20:10] davidascher has joined the channel [20:10] andrewhodel: and the cursor var is properly defined and associated to the correct collection [20:12] timemachine3030 has joined the channel [20:13] stonecobra: spaceinvader, I haven't seen any, but that would be very interesting [20:13] sonnym has joined the channel [20:14] BillyBreen has joined the channel [20:14] BillyBreen has left the channel [20:17] spaceinvader: stonecobra: i think there is a ncurses one but thats about it [20:17] spaceinvader: https://github.com/mscdex/node-ncurses [20:19] isaacs: papandreou: can you try again? I just pushed 2.0.1, which should fix the issues [20:23] doubletap has joined the channel [20:24] papandreou: isaacs: Absolutely :). New error this time: https://gist.github.com/488a73f4402026e05b8f [20:24] papandreou: isaacs: Tried both bleeding edge node and 0.2.6 [20:25] isaacs: interesting [20:25] isaacs: papandreou: no, it's not an issue with node. [20:25] isaacs: it's an issue with certain consts not be defined already. [20:25] isaacs: just a sec... [20:27] adam- has joined the channel [20:27] bubbafat has joined the channel [20:27] isaacs: papandreou: that's odd. it's like fnmatch.h isn't being loaded. [20:27] isaacs: that's where all that stuff is [20:28] isaacs: oh, wait, nvm [20:28] isaacs: i see it [20:29] isaacs: papandreou: can you check out the latest from git://github.com/isaacs/node-glob.git and do `node-waf configure build`? [20:29] blueadept has joined the channel [20:29] papandreou: isaacs: Looks like it works this time :) [20:29] isaacs: sweet. [20:29] isaacs: ok, gonna bump version and publish [20:30] mauritslamers has left the channel [20:30] isaacs: thanks! [20:30] papandreou: isaacs: Well, thank you, I was awaiting the ** support eagerly :) [20:30] admc has joined the channel [20:30] isaacs: pushed [20:31] isaacs: papandreou: yeah, the netbsd source code is really handy [20:31] isaacs: it's very easy to pilfer from, and the license is very free and amenable. it's like what open source *should* be like. [20:31] sonnym has joined the channel [20:32] isaacs: if you look through the code, you'll see i had to do almost nothing to make it work with node. [20:32] isaacs: i was expecting this big huge hullabaloo [20:33] sechrist has joined the channel [20:33] emattias has joined the channel [20:35] emattias: I want to add to an existing file, how to I do that? [20:35] emattias: *do [20:35] sonnym has joined the channel [20:35] emattias: fs.writefile just overwrites the file.. [20:36] c4milo1 has joined the channel [20:36] papandreou: isaacs: Nice :). Hmm... It segfaults on me when I try glob and globSync :/. https://gist.github.com/7600ddf5b0b3e5beddf9 [20:36] isaacs: papandreou: that's not good :) [20:37] sonnym has joined the channel [20:37] isaacs: papandreou: i'm building node 0.4.1 on my linux box [20:37] isaacs: i'll dig in there [20:37] dnolen has joined the channel [20:37] isaacs: papandreou: maybe the strlcpy port is not good [20:38] papandreou: isaacs: It happened with 0.2.6 if that's of significance [20:38] isaacs: papandreou: hm. i've only tested with node 0.4 [20:38] isaacs: papandreou: any chance you could try updating? or run it in a nave subshell, see if ti's still an issue there? [20:39] daveluke has joined the channel [20:39] papandreou: isaacs: Sure, allow me a few minutes to compile :) [20:39] boaz has joined the channel [20:39] zzak: isaacs: is npm working with 0.2.5? [20:39] ioxer has joined the channel [20:39] sonnym has joined the channel [20:39] isaacs: zzak: 0.2.x is dead to me. [20:39] isaacs: zzak: :) [20:40] sveimac has joined the channel [20:40] zzak: i was going to deploy this app to duostack, but they've only got 0.2.5 and 0.4.0 stacks :( [20:40] isaacs: weird [20:40] isaacs: well, 0.4.0 is o [20:40] isaacs: ok [20:40] zzak: for express? [20:40] isaacs: better than 0.2.5 [20:40] isaacs: oh, no, not for expres. [20:40] isaacs: honestly, though, node-glob doesn't do much that's specific to a given node version. [20:40] zzak: guess ill have to use my no.de [20:40] papandreou: isaacs: Express is what I'm waiting for, too [20:41] dspree: hey zzak, I'm one of the founders of Duostack [20:41] dspree: which version of node do you need? [20:41] zzak: latest express uses 0.3.7 right? [20:41] isaacs: holy moly, it is NOT working on solaris... [20:41] zzak: or is confirmed anyways [20:41] isaacs: ACTION 0.4.1 ? [22:05] ryah: marcello3d: no [22:05] marcello3d: hmm, maybe I need to rebuild node inspector [22:05] ryah: marcello3d: maybe you have a node running already on 5858? [22:05] ryah: if you ps aux | grep node ? [22:05] marcello3d: good question, let me sanity check (although when I startup, it says "debugger listening on port 5858") [22:06] |sWORDs|: ryah: do you know that dgram isn't working on cygwin? (Yeah I know windows is not supported, just a heads up). [22:06] marcello3d: is that not a guarantee that it setup the debugging port correctly? [22:06] marcello3d: ye, node is totally still running [22:07] marcello3d: running and hung, killall node doesn't get rid of them [22:08] marcello3d: that worked. [22:08] marcello3d: should I file an issue on the "debugger listening on port 5858" thing being a lie? :) [22:09] dgathright has joined the channel [22:11] ryah: marcello3d: hm, im not sure what happened... [22:11] cronopio has joined the channel [22:11] |sWORDs|: @ryah: Heads up 2, I'm creating a QNAP qpgk with node and will try to maintain it. Want a link when it's done? [22:11] ryah: marcello3d: it seems that measage wouldn't be a lie... [22:11] marcello3d: well, if I try running two node --debug instances [22:11] ryah: |sWORDs|: hm - didn't know but also not surprised. [22:11] marcello3d: they both say that [22:11] marcello3d: when clearly they can't both be listening on the same port [22:12] marcello3d: |sWORDs|: that sounds like gibberish :) [22:13] sh1mmer has joined the channel [22:14] |sWORDs|: marcello3d: Qnap is one of the better NAS devices you can get. They run a very trimmed own linux build where you've only got limited rights. Very popular devices. [22:14] marcello3d: aha [22:14] marcello3d: and qpkg? [22:15] |sWORDs|: I've got node running with everything except snapshot. Just need to package it in to gpkg which is the easy to install package way for QNAP. (a bit like ipkg or apt-get but then graphical) [22:17] |sWORDs|: Maybe I should have explained that first. Now that I think of it it's not really common knowledge. It's just that I feel like a noob here which probably makes me think every I know is common. ;) [22:17] Dulak has joined the channel [22:18] marcello3d: ryah: https://github.com/ry/node/issues/705 [22:18] xandrews has joined the channel [22:19] jakehow has joined the channel [22:20] ryah: piscisaureus: you have named pipes in windows? [22:20] piscisaureus: ryah: yeah [22:21] ryah: piscisaureus: the name is a file system path? [22:21] piscisaureus: umm [22:21] piscisaureus: it's a path in the device namespace [22:21] ryah: i mean does it exist in the file system? [22:21] piscisaureus: should be somethink like \\.\PIPE\my\pipe\name [22:21] stonecobra: aye [22:21] ryah: (in unix you'd have /tmp/blah.socket) [22:22] piscisaureus: ryah: It's not located on a disk drive [22:22] ryah: hm [22:22] gravyrobber has joined the channel [22:22] razvandimescu has joined the channel [22:22] piscisaureus: ryah: what do you need it for? [22:22] ryah: piscisaureus: i'd like to modify the V8 debugger stuff to work over named pipes instead of TCP [22:22] piscisaureus: ah that should work [22:22] marcello3d: anyone here use jade with custom tags/filters? is it possible to generate code (as opposed to static tags)? [22:23] ryah: but i need a cross platform way of doing it. [22:23] piscisaureus: ryah: you need to pick an appropriate pipe name for windows [22:23] marcello3d: is a socket file just a file with a port in it? [22:23] marcello3d: or more magickal? [22:23] piscisaureus: won't conveniently fit in without iocp though, but iocp it would work almost just like socket I think [22:23] ryah: piscisaureus: here is the current interface https://github.com/ry/node/blob/cbdcc1d5f321cfff3d4d3f416e48733089de7e00/deps/v8/include/v8-debug.h#L320-329 [22:24] ryah: piscisaureus: they use blocking i/o [22:24] piscisaureus: ok, easy too [22:25] srid has joined the channel [22:25] srid has joined the channel [22:25] ryah: marcello3d: more magical [22:25] insin has joined the channel [22:25] piscisaureus: ryah: http://msdn.microsoft.com/en-us/library/aa365783%28v=vs.85%29.aspx [22:26] ryah: piscisaureus: thanks [22:27] |sWORDs|: I'm going to bed. Ryah, would you like a notice when the qpkg is up so you could point others to it? [22:28] hassox has joined the channel [22:28] ryah: |sWORDs|: yeah [22:28] ryah: we should probably have a wiki page for stuff like that [22:28] ryah: :/ [22:28] hassox has joined the channel [22:28] |sWORDs|: k, will do. [22:28] sonnym has joined the channel [22:28] davidc_ has joined the channel [22:31] jesusabdullah: Saber! [22:31] seivan has joined the channel [22:32] dioms has joined the channel [22:36] floby has joined the channel [22:36] piscisaureus: ryah: looks like this pipe thing isn't difficult to do. You should do it, it will make you windows smart :-) [22:36] Nevtus has joined the channel [22:38] dgathright has joined the channel [22:38] DTrejo has joined the channel [22:40] DTrejo: is there a way to npm uninstall --force? [22:41] floby has left the channel [22:42] gattuso has joined the channel [22:42] possibil_ has joined the channel [22:44] emattias has joined the channel [22:44] DTrejo: is there a way to npm uninstall --force? [22:46] also has joined the channel [22:48] daveluke has joined the channel [22:48] aabt has joined the channel [22:49] daveluke has left the channel [22:51] felixge has joined the channel [22:51] felixge has joined the channel [22:52] felixge: ryah: ping [22:53] ntr0py has joined the channel [22:54] seivan: Ehm [22:54] seivan: does anyone know how to benchmark sockets? [22:55] floby has joined the channel [22:56] tanepiper: felixge: hey, have you used formidable at all with chunked uploads (i.e. what plupload does) ? [22:57] eb4890 has joined the channel [22:57] felixge: tanepiper: you mean splitting a single upload into multiple smaller ones? [22:57] tanepiper: yea [22:58] tanepiper: i've turned it off in plupload just now, but was wondering if there was a way to do it with formidable. For example I noticed that it sends fields of chunk and chunks, but each chunk itself is a diffent file every time [22:59] papandreou: Hmm, does anyone know how to require a file that's stashed away in the lib folder of an npm-installed module in node 0.2.6? I specifically need jsdom's lib/jsdom/browser/domtohtml.js [22:59] tanepiper: require('jsdom/lib/jsdom/browser/domtohtml') ? [23:00] papandreou: tanepiper: Doesn't seem to work, although as far as I can tell from the mailing list, it will work in 0.4.0+ [23:00] felixge: tanepiper: no formidable does not support this yet. I will add some form of support for it in the future so [23:00] felixge: tanepiper: the plan is to allow resumable uploads in the future [23:01] tanepiper: felixge: cool, i'll keep an eye out for it then. tbh plupload + formidable, even without chunk upload is pretty sweet :) [23:01] bwinton has joined the channel [23:02] felixge: tanepiper: what kind of uploads do you handle / why not use transloadit? :) [23:02] papandreou: felixge: Oh, that reminds me, I noticed that the 'part' object provided by IncomingForm's onPart isn't really a well-behaved stream. It cannot be paused, for instance. [23:03] tanepiper: felixge: media uploads, i'm just doing a contract job :D we looked at transloadit but decided to build a custom app [23:03] Vertice has joined the channel [23:03] tanepiper: although the app handles more than just uploads, also handles urls (downloads + oEmbed) and s3 storage [23:03] felixge: papandreou: pausing a part is not possible, semantically speaking. I might make Part a real stream at some point so [23:03] tanepiper: but doesn't do transcoding (yet) [23:04] papandreou: felixge: Would be nice :) [23:04] felixge: tanepiper: what kind of processing are you doing with the files? [23:04] zthor has joined the channel [23:04] felixge: papandreou: yeah. For now you'll have to pause the IncomingForm object, that should work [23:05] tanepiper: at the moment, just getting file metadata (width/height or length) + exif data if a jpeg, and storage on s3. And a JSON object stored with all the data [23:05] tanepiper: or if a oembed supported url, just storing the oembed data and storing the thumbnail for caching [23:06] felixge: tanepiper: so the oembed stuff is why you decided to not go with transloadit? [23:06] papandreou: felixge: I seem to remember that I tried that, but it didn't work. Ended up wrapping the stream in something that would buffer if the part emitted data faster than the HTTP req (Couch) I was piping it into could consume it. [23:06] tanepiper: yes, and not having a 3rd party solution but having something more closely tied to the webapp + api [23:06] felixge: papandreou: it should work, if it doesn't open an issue [23:07] papandreou: felixge: Ok, better test it again, then. Thanks :) [23:07] ossareh has joined the channel [23:07] felixge: tanepiper: ok, we'll make transloadit better until you have no more excuse :) [23:07] tanepiper: the code itself is pretty easy, but what isn't is organising it well into a clean app :) so many cases to handle [23:07] tanepiper: felixge: well as i say not my choice, it's a contract job :) i did suggest it [23:07] tanepiper: but hey means money for me :p [23:08] piscisaureus: felixge: I have a transloadit question too [23:09] felixge: tanepiper: you could have used transloadit and charged the client a higher price for the feature. More money, less work :) [23:09] felixge: piscisaureus: shoot [23:09] piscisaureus: is it possible to parse a pdf and get the number of pages and page format(s) out of it? [23:09] felixge: tanepiper: we'll also release a free plan soon [23:09] tanepiper: it's fixed price, it's a just a job to fill in the month waiting for ExtJS4 being released [23:10] tanepiper: holding my own startup development up [23:10] felixge: piscisaureus: yes and no. We can get that info for you, but it's not exposed in the API yet. Would be easy to release so. PM me if you'd like us to add it [23:10] felixge: tanepiper: your startup depends on the release cycle of ExtJS4, yikes [23:11] mnot has joined the channel [23:12] aabt has joined the channel [23:12] tanepiper: well yes and no, we could have gone to a small beta - but we decided to hold off because the new model stuff and the new draw package [23:12] tanepiper: allows for tighter integration and better record handling in the client side [23:14] tanepiper: tbh the stuff being released in 4 is a big step from 3, so the wait till be worth it [23:14] rcol has joined the channel [23:15] tanepiper: and for my startup, it's a very data-heavy app and the interface needs to be tbh pretty shithot [23:15] DTrejo has left the channel [23:16] DTrejo has joined the channel [23:17] ioxer has joined the channel [23:21] papandreou: tanepiper: You did see the developer preview, right? [23:23] sivy has joined the channel [23:23] tanepiper: papandreou: yes, but haven't had time to sit down with it yet, but we've planned it around the end of the month anyway [23:23] tanepiper: the other two partners have a bunch of stuff to work on the media and consultancy side anyway [23:23] papandreou: tanepiper: Cool, just making sure :) [23:24] Jaye_ has joined the channel [23:24] papandreou: tanepiper: I almost missed it myself [23:24] eaton has joined the channel [23:24] TomY has joined the channel [23:26] nonnikcam has joined the channel [23:26] jetienne has joined the channel [23:29] samcday has joined the channel [23:29] Bonuspunkt: anyone has a favorite way to debug nodejs yet? [23:29] samcday: SubStack: ping! [23:29] simb has joined the channel [23:30] Me1000 has joined the channel [23:31] g0bl1n has joined the channel [23:31] felixge: Bonuspunkt: unit testing [23:32] zthor has left the channel [23:34] Bonuspunkt: isnt that a bit of overkill for "exploring" nodejs libs? [23:36] [[zz]] has joined the channel [23:36] raidfive has joined the channel [23:37] felixge: Bonuspunkt: yes [23:37] felixge: Bonuspunkt: your question was kind of generic [23:37] felixge: Bonuspunkt: I use console.log for exploring [23:37] felixge: :) [23:38] chapel: I use console.log as well [23:39] Bonuspunkt: i miss my visual studio :( [23:39] chapel: I really should work on a faster way of using it [23:40] gravyrobber has joined the channel [23:41] Throlkim has joined the channel [23:46] bingomanatee: question - can you run mongoose on more than one database? [23:48] dthompson has joined the channel [23:48] nonnikcam has joined the channel [23:49] ioxer has joined the channel [23:50] mies has joined the channel [23:50] SubStack: samcday: pong [23:51] Ond has joined the channel [23:51] pieterv has joined the channel [23:52] sechrist has joined the channel [23:53] sechrist_ has joined the channel [23:53] nornagon: hrm, is there a way to hook into libev and find out how many watchers there are? [23:54] bwinton has joined the channel [23:55] felixge: nornagon: no [23:56] nornagon: bummer. I want to be able to 'keep going' after process.on('exit') [23:56] nornagon: so my test suite doesn't halt halfway through if the test doesn't call test.finish() :) [23:57] sonnym1 has joined the channel [23:57] tim_smart has joined the channel [23:58] felixge: nornagon: if your test suite halts, it's because all JS that can be executed has [23:58] felixge: so if node wasn't exiting, it would just idle [23:58] nornagon: felixge: yes, i want to catch that case [23:58] felixge: with no way of it starting up again [23:58] gcr has joined the channel [23:58] nornagon: and say 'if node is about to exit due to no more code to run, instead don't do that and keep going with the test suite (if there are more tests to run)' [23:58] TomY has joined the channel [23:59] ioxer has left the channel [23:59] gcr: Hey guys! Seems like http ServerResponse.writeHead() doesn't actually write the headers until I send data through. What can I do if I just want to send the headers and nothing else? write("") doesn't seem to work; is there a way to "flush" the response? [23:59] nornagon: end()