[00:08] ryanmcgrath has joined the channel [00:08] sixtus42 has joined the channel [00:08] sixtus42_ has joined the channel [00:15] isaacs: hey, it seems like v8 doesn't let you set Object.prototype. that's freakin wonderful. [00:16] hassox: :) [00:17] isaacs: kinda obviates the need for this little gem, though, which I always thought was pretty clever: var objProto = (function f (p) { return (p.__proto__) ? f(p.__proto__) : p })(Object.prototype) [00:18] isaacs: to guarantee you get the "real" object.prototype, and not some hijacked thing with a fake hasOwnProperty method that steals your stuf. [00:18] inimino: heh [00:18] isaacs: ofcourse, that never worked in ie, anyway [00:18] isaacs: since you don't get __proto__ [00:23] binary42 has joined the channel [00:27] inimino: isaacs: that is an ES5 feature [00:32] hassox_ has joined the channel [01:08] shfx has joined the channel [02:00] chakrit has left the channel [02:12] kriskowal has joined the channel [02:28] ryanmcgrath has joined the channel [02:33] chakrit has joined the channel [02:34] tlrobinson_ has joined the channel [02:52] mcarter has joined the channel [02:54] hassox: isaacs: still here? [02:55] isaacs: hassox: yep [02:55] hassox: do you have a blog or anything? [02:55] isaacs: dinner is getting more and more compelling by the minute, though [02:55] isaacs: kinda [02:55] hassox: or know of anywhere where I can read up on the module stuff you were talking about? [02:55] isaacs: i used to blog pretty regularly at http://foohack.com/ [02:56] isaacs: oh, sure, start here: http://wiki.commonjs.org/wiki/CommonJS [02:56] hassox: kk [02:56] hassox: I'll get cracking on that [02:56] hassox: does it go inot the how? [02:56] isaacs: especially: http://wiki.commonjs.org/wiki/Modules/SecurableModules [02:56] isaacs: well, it's a spec for commonjs behavior. [02:56] isaacs: (lurking in #commonjs is prolly a good idea, too ;) [02:57] hassox: and nodes modeuls work that way? [02:57] isaacs: hassox: yeah [02:57] hassox: :) [02:57] hassox: sweet :D [02:57] hassox: thanx :) [02:57] isaacs: but of course, it's not 100% identical across platforms. [02:57] hassox: sure [02:57] isaacs: differnet platforms do things differently [02:57] isaacs: oh, seems it's superceded by http://wiki.commonjs.org/wiki/Modules/1.1 [02:57] hassox: ACTION has no real idea of how namespacing should be done in js [02:58] hassox: I thought I had minimised the namespacing I was gobbling up [03:13] sudoer has joined the channel [03:22] isaacs: hassox: typically, you use objects for that. [03:22] isaacs: MyApp.Module.ThingAMajig = "foo" [03:22] isaacs: there are various strong opinions about how to do that best. [03:23] hassox: are they availble to read? [03:23] hassox: or do you just have to be about when they're being voiced ;) [03:23] isaacs: when you say "namespacing", do you mean "scoping"? [03:23] isaacs: if i have a ref to MyApp, then I'd be able to see all its children [03:23] isaacs: yeah [03:25] isaacs: ok, dinner urges are overwhelming javascript urges. [03:27] hassox: I'd like to know how to do both [03:27] hassox: one thing that I'd like to be able to do with chain is scope the Chain ref in all sub-modules and apps to one instnace, and then have another simply by creating a new instnace [03:49] jed has joined the channel [03:55] micheil has joined the channel [04:19] hassox has joined the channel [04:20] chakrit: how many django clones in node are out there right now? [04:20] cloudhead has joined the channel [04:22] micheil: chakrit: umm.. 1 or 2 [04:22] micheil: djangode by simon wilson and there's another one I think [04:22] chakrit: I think I've seen 3 [04:23] chakrit: is it just me or is everyone seems to be coming from Python [04:23] erikg: is it familiarity that makes it popular to clone django? or is there something about node that matches it well? [04:25] jed: seems to me there are even more clones of sinatra. [04:25] chakrit: Well there are similar features in JavaScript and Python... I think [04:25] chakrit: but I feel like they are totally different on some levels. [04:26] erikg: quite [04:26] erikg: i don't think they are any more similar than they are to other dynamic languages [04:28] chakrit: IMO, You work much more at the function level in javascript... other languages you tend to be doing classes and methods. [04:29] micheil: I really want something that can reliably interface with databases first [04:29] micheil: then I'll be writing a caching mechanism, after smtp, and nodule [04:32] micheil: for node on mac os x, should I have sendfile and sync_file_range(2) ? [04:32] micheil: same with port.h [04:33] micheil: and lib rt? [04:43] ryanmcgrath has joined the channel [05:21] elliottcable: hm [05:21] micheil: hermmm [05:21] micheil: what's up elliottcable? [05:21] elliottcable: lots of activity in this channel [05:21] elliottcable: too much to keep up with [05:21] micheil: yeah [05:21] elliottcable: ACTION sequesters himself away to ##u and ignores this channel henceforth [05:22] micheil: it's about the same as the number of customers that came into the electronic's store I work in.. [05:42] elliottcable: ACTION yawns [05:44] ryanmcgrath has joined the channel [05:53] ryanmcgrath has joined the channel [05:55] kriskowal: so, node's Promise type is actually a Deferred. The distinction is that a promise is not self-resolvable. With promises, the ability to observe the fulfillment of a promise is separated from the ability to fulfill the promise. With ref_send, you call "defer()", which gives you a {resolver, promise} object (let's call it a Deferred). you keep and hide the resolver and return the promise. [05:56] kriskowal: in any case, i'm writing a "bridge" module that consolidates node, ref_send, and dojo's API's in so far as that's possible. [05:57] kriskowal: isaacs, ryah_away ^ [06:00] kriskowal: i'm writing it so that the Dojo API works, where a Deferred can both fulfill and observe fulfillment on the same object. internally it uses an object-oriented variation on Tyler Close's Waterken ref_send API, and deep under the hood, a Node-like Emitter type. [06:04] micheil: kriskowal: hmm.. [06:06] kriskowal: but the important fact is that the deferred will contain a promise and a resolver. when you call promise-related functions on the deferred, it's just going to call into the promise. so you can do it the old busted way or the new and securable way, doesn't matter. [06:14] sveimac has joined the channel [06:36] sudoer has joined the channel [06:53] ryanmcgrath: Anybody got decent examples of writing to a file with Node? It might just be me, but I feel like I'm missing something in the docs [06:54] Biscuits has joined the channel [07:05] mikeal has joined the channel [07:15] isaacs: kriskowal: interesting. [07:15] isaacs: node was actually my first experience working with (so-called?) promises [07:15] isaacs: except in the most abstract sense, as a pattern [07:17] kriskowal: promises come out of the security world. [07:21] isaacs: kriskowal: so... you're writing something on top of node's EventEmitter that implements both promises and deffereds? [07:21] kriskowal: sortof. [07:22] kriskowal: it'll take some massage to get it running on node. [07:22] kriskowal: i need to read the .cc side of EventEmitter, but the basic concept is fulfilled by this module's Emitter type, in pure-js [07:22] kriskowal: and the module only depends on an "enqueue" function being provided at a lower level. [07:23] kriskowal: which i presume is what the EventEmitter is doing on the c++ side of things. [07:31] ryanmcgrath: Hmmm, is there no posix.cp or anything? [07:55] micheil has joined the channel [08:08] jspiros has joined the channel [08:19] chakrit has joined the channel [08:22] hassox has joined the channel [08:23] hassox: hey guys [08:24] hassox: is it just me or is the repo broken ? [08:25] halorgium: fine here [08:25] hassox: oh hey halorgium :) [08:25] hassox: how are you dude? [08:25] halorgium: pretty good [08:26] halorgium: yourself? [08:26] hassox: you in nz for christmas or in sf? [08:26] hassox: yeah pretty good [08:26] halorgium: nZ [08:26] hassox: keeping busy n stuff [08:26] halorgium: flying in 20 hours [08:26] hassox: we just got bought by a nz company [08:26] hassox: oh [08:26] hassox: ur not staying there [08:26] hassox: oh [08:26] hassox: n [08:26] hassox: nm [08:26] hassox: I got you [08:26] halorgium: who bought you? [08:26] hassox: nzx [08:26] hassox: the stock exchange [08:27] halorgium: haha [08:27] hassox: why is that haha [08:27] hassox: ? [08:27] halorgium: i guess i didn't think the NZX would buy things [08:28] hassox: lol [08:28] hassox: yeah me either [08:28] hassox: but they seem nice enouhg [08:28] hassox: damnit [08:28] hassox: node is not doing anything for me [08:28] hassox: not even a simple puts [08:29] halorgium: oh, you mean the code in the repo is broken ;) [08:29] hassox: yeah [08:29] hassox: lol [08:29] hassox: what did you think? [08:29] halorgium: that the repo was corrupt [08:29] hassox: ah right [08:29] hassox: nah... it's not erroring or anything [08:29] hassox: just not doing anything [08:29] hassox: and now it makes a liar out of me [08:30] hassox: :| [08:31] mono__ has joined the channel [08:33] elliottcable: hassox: o7 [08:33] hassox: hrm it is still broken for me :( [08:33] hassox: 16423 requests and it stops dead [08:34] elliottcable: hahaha [08:34] hassox: 16439 [08:34] elliottcable: hassox: Your callstack is blowing up. [08:34] hassox: grrr [08:34] hassox: I don't know how it can [08:34] hassox: lemme gist what I'm running [08:34] elliottcable: hassox: because that’s the *exact* maximum size of V8’s maximum callstack, as it’s built under Node. [08:35] hassox: http://gist.github.com/260853 [08:35] hassox: how does that work though [08:35] hassox: it's a very simple setup [08:36] elliottcable: hassox: try (function(n){p(n);arguments.callee(n + 1)})(1) [08:36] elliottcable: hrm now it shits out for me at 14379 [08:36] hassox: I'm doing what? [08:36] elliottcable: but yesterday it was ~16.5 [08:38] hassox: just goes around and around to 847 [08:38] hassox: then dies with [08:38] hassox: Error: (no message) [08:38] elliottcable: hassox: try an even simpler one: http://gist.github.com/260855 [08:39] hassox: same thing [08:39] hassox: ends up hanging [08:40] elliottcable: hm [08:40] elliottcable: definitely bug. [08:40] elliottcable: /issues it? [08:40] scudco has joined the channel [08:42] jspiros has joined the channel [08:53] Pilate: you sure youre not capping time_wait connections? [08:57] isaacs: anyone got a good reasonably complete list of mime types by file extension? [08:59] simoncpu has joined the channel [08:59] elliottcable: isaacs: Pull one out of NginX? [08:59] simoncpu: a rabbit? [08:59] elliottcable: isaacs: http://github.com/elliottcable/server-configuration/blob/master/nginx/mime.types [08:59] isaacs: elliottcable: i pulled it out of lighttpd, but for some reason, it seems some basic ones are missing [08:59] simoncpu: ACTION butts in without knowing the context [08:59] elliottcable: isaacs: there’s one with XHTML [08:59] isaacs: neat, thanks [08:59] elliottcable: isaacs: I had to modify it slightly [09:00] isaacs: ok, now to merge it with what i've already got... [09:01] jamiew has joined the channel [09:17] olivvv has joined the channel [09:23] isaacs: anyone feel like playing with Yet Another Node Based Web Server? [09:23] elliottcable: no. [09:23] elliottcable: lol [09:23] isaacs: [09:23] isaacs: http://nodejs.org/jsconf.pdf [19:30] alfredwesterveld: when I use siege on it to benchmark it keeps using more and more memory?? [19:32] alfredwesterveld: @biscuits natuurlijk blijf ik binnen met zulk klote weer [19:37] hassox has joined the channel [19:42] gwoo has joined the channel [19:57] jed has joined the channel [19:59] alfredwesterveld: Okay maybe I spoke a little bit too soon and I should do some more benchmarking ;). [19:59] sixtus42 has joined the channel [19:59] alfredwesterveld: memory usage climbs up, but at 50 MB it seems to stop consuming more memory [20:07] aurynn has joined the channel [20:10] erichocean has joined the channel [20:20] kriskowal has joined the channel [20:27] aurynn has joined the channel [20:30] orlandov: hey, i've got a proof of concept implementation of a single mongodb query (find) [20:30] orlandov: http://github.com/orlandov/node-mongodb [20:31] orlandov: i'd be interested if someone who knew node/libev/v8 a little better than me would have a look and see if/what i'm doing stupidly [20:31] erichocean: orlandov: I can take a look [20:32] orlandov: a lot of stuff is hardcoded at the moment, but the network code and the state machine would be the stuff to get right i think [20:32] orlandov: as it is, it can take query mongodb and with OP_QUERY and OP_GET_MORE [20:33] orlandov: lunch time! bbl [20:35] alfredwesterveld: Okay this node stuff is really sweet :-) [20:37] JimBastard: yaaaa [20:37] JimBastard: the mystery of the mem leak solved [20:38] erichocean: orlandov: I'd recommend adding printfs to all ev_io_stop/ev_io_start calls, along with the watcher being started/stopped [20:38] erichocean: I see quite a few paths where duplicate calls are happenning [20:39] hassox: argh... I need more js powa [20:39] hassox: lads, is it possible to setup a var in a module, that will be available in all sub modules? [20:39] erichocean: orlandov: you should also probably be using the same macros node.js does for the loops themselves, rather than hardcoding the ev type [20:40] erichocean: finally, I recommend adding a dot file for your state machine :-) [20:40] inimino: hassox: define 'module' and 'sub-module' [20:41] hassox: all the ones I "require" [20:41] hassox: I haven't been able to do such scoping other than putting something into a global scope [20:41] JimBastard has joined the channel [20:41] hassox: so I'm in a file where i'm exports.stuff [20:42] hassox: and inside that file I require('./bar') [20:42] hassox: sorrry lemme start that again [20:42] hassox: I have a file 'foo' where I setup a Foo object [20:42] hassox: and inside "foo.js" I require('./bar') [20:42] hassox: I want the Foo object to be available in "bar.js" [20:42] JimBastard: is anyone running any production apps / websites on node right now? if so what are you using for monitoring? [20:43] erichocean: JimBastard: SMF (on Solaris) [20:44] hassox: the only way I've been able to do that is put Foo into a global variable :( [20:44] JimBastard: so erichocean im not too familiar with that tool, what are you doing with it exactly? do you have configured to restart node if it fails? log the error? [20:44] inimino: hassox: you can pass it in as an argument to some function [20:44] inimino: hassox: or you can create an additional module that is required by both of the modules you have now [20:45] hassox: so you can't setup a scope of namespaces? [20:45] inimino: hassox: right now you have foo depending on bar and bar (since it needs the Foo object) requiring foo [20:45] erichocean: JimBastard: http://hub.opensolaris.org/bin/view/Community+Group+smf/ (it's Solaris-only AFAIK) [20:45] JimBastard: so its just a service manager [20:45] JimBastard: that makes sense [20:46] hassox: one that works across files [20:46] erichocean: I store all state in Redis, and have another process watch Redis [20:46] erichocean: so if node.js is still running, but the Redis data isn't moving around as expected, I restart node.js [20:46] JimBastard: okay [20:46] hassox: inimino: so if I require('./common') will it be the same instance? [20:46] JimBastard: how has node been performing for you? [20:47] JimBastard: in production? [20:47] inimino: hassox: I don't know what you mean by a scope of namespaces, but I think it's a better practice to not have cycles in your dependencies [20:47] inimino: hassox: yes [20:47] erichocean: JimBastard: good [20:47] JimBastard: whats your average uptime? [20:47] erichocean: I was already using the C libraries node.js uses [20:47] JimBastard: like will it run for days? [20:47] erichocean: JimBastard: yes [20:47] erichocean: memory usage is stable too [20:47] hassox: k [20:47] erichocean: although there's a bug in gnutls if you accept HTTPS connections [20:47] JimBastard: any issues you've run into? im trying to plan a head, about to start a client project in node [20:47] erichocean: that will cause memory usage to grow [20:48] Yuffster has joined the channel [20:48] JimBastard: gnutls? [20:48] hassox: inimino: what I mean is that if I have "top.js" and "foo.js", "bar.js" [20:48] erichocean: yeah, for secure HTTP and TCP connections [20:48] hassox: where top requires foo.js and then bar.js [20:48] hassox: the Foo object is not going to be available in bar is it? [20:48] JimBastard: ill require SSL for sure [20:48] JimBastard: should i use another web server for that? [20:49] erichocean: JimBastard: I personally think node.js is pretty good [20:49] erichocean: JimBastard: I would, I'd proxy it [20:49] erichocean: that's what I do on Solaris [20:49] JimBastard: i really WANT to use node, im just a bit scared ill get stuck [20:49] erichocean: using their in-kernel SSL proxy [20:49] hassox: I'd have to require the bar object direclty [20:49] erichocean: JimBastard: I doubt you'll get stuck, and regardless, you shouldn't have to write much code [20:50] JimBastard: im gonna have to build a webservice [20:50] JimBastard: a web api [20:50] erichocean: if you can, you should put nginx in front [20:50] erichocean: it'll prevent a bunch of nasty stuff people can do to your server [20:51] JimBastard: well the other thing is i am going to require a shit ton of concurrent connections [20:51] JimBastard: so i guess nginx + node [20:51] erichocean: that's pretty much the kind of server I wrote [20:51] JimBastard: i could always go with ColdFusion i guess ;-) [20:51] erichocean: node.js requires about 4KB per connection [20:51] JimBastard: would only take a few days mwahahahaha [20:51] orlandov: erichocean: great feedback! i'll put those on my todo list [20:51] JimBastard: yeah [20:52] erichocean: and about 24Kb if they're secure [20:52] JimBastard: thats not too bad [20:52] JimBastard: i can push a lot of my concurrent stuff to regular polling too [20:52] hassox: inimino: sorry to be thick mate... [20:52] JimBastard: not everything will have to be push [20:52] hassox: is it possible to setup an object as a prototype and have it trigger something on the object when it's constructed? [20:52] JimBastard: thanks for the advice [20:52] erichocean: re-using the push connection is really efficient [20:52] hassox: trigger some function calls on the new object [20:53] erichocean: in my web clients, we have 2 bytes of overhead per message instead of 8KB [20:53] inimino: hassox: right, if bar requires Foo, then it needs to actually require('./foo') [20:53] JimBastard: you could pass parameters to the contructor to do stuff? [20:53] JimBastard: thats pretty good [20:53] erichocean: not to mention the reduced round trips to set up the TCP connection itself (even worse when they're secure) [20:53] JimBastard: erichocean [20:53] JimBastard: you are keeping the request open? [20:53] JimBastard: is that how you re-use? [20:54] erichocean: I'm using sockets only [20:54] JimBastard: errrr [20:54] JimBastard: how u doing that over http [20:54] erichocean: not "long-polling" or any of the other HTTP hacks [20:54] erichocean: WebSocket [20:54] hassox: inimino: so is that prototype thing possilbe? [20:54] JimBastard: :-( [20:54] JimBastard: lol [20:54] erichocean: and Flash when I need to fake it [20:54] JimBastard: cheater [20:54] erichocean: not at all [20:54] JimBastard: embed a flash swf to make socket connection? [20:54] hassox: I'm tring to stay away from the "class" setups [20:54] JimBastard: if websockets not available [20:55] erichocean: yep [20:55] inimino: hassox: I don't really follow what you're asking [20:55] JimBastard: is there a blog about this somewhere you know of? thats a really solid techinique [20:55] JimBastard: sample codes? [20:55] hassox: inimino: do you know class based setups? [20:56] inimino: ACTION is confused [20:56] JimBastard: i think i could build all that from scratch, but it would be a bit of a time sink [20:56] hassox: if I were doing this in ruby for example [20:56] hassox: I'd setup a class with an initialize method [20:56] JimBastard: ruby!=javascript [20:56] erichocean: JimBastard: http://github.com/gimite/web-socket-js [20:56] hassox: then I'd inherit the class, write a new initialize method and call super [20:56] hassox: JimBastard: yes thankyou.. [20:56] hassox: JimBastard: I'm trying to explain what I'd like to achive [20:57] hassox: but I want to stay away from the "class" idea [20:57] JimBastard: you know about depency injection? [20:57] hassox: I'm wondering if I can use a prototype to actaully do stuff when an objects constructor is called [20:57] JimBastard: property based dependecy injection [20:57] erichocean: JimBastard: http://armstrongonsoftware.blogspot.com/2009/12/comet-is-dead-long-live-websockets.html [20:57] hassox: is that where I setup a function on a property to do stuff in the prototype? [20:58] hassox: and call it inside the constructor of the object [20:58] erichocean: JimBastard: and finally: http://github.com/Guille/node.websocket.js [20:58] JimBastard: i think i can piece all that together [20:59] JimBastard: i might create a simple git project that wraps up node.js and jquery with all this [20:59] inimino: hassox: the prototype doesn't really "do stuff", so... [20:59] inimino: hassox: is what you want to do just call some functions in the constructor? [20:59] hassox: sorry if I'm not explaining it better :( [20:59] hassox: yes [20:59] JimBastard: hassox , you can just do it [20:59] inimino: ok, well you can just ... yeah [20:59] hassox: but I may be in a prototype rather than the constructor itself [20:59] JimBastard: send the contructor a options hash [20:59] JimBastard: make an if statment [20:59] JimBastard: you got code? [21:00] inimino: maybe some code would better show what you're unsure how to do [21:00] JimBastard: btw thanks again erichocean [21:00] JimBastard: i think doing the websocket hack will be much faster then comet [21:00] hassox: well basically what I want to do is setup a listener in the constructor [21:00] hassox: but I would like to put that into the prototype so I don't have to worry about it in the constructor itself [21:01] hassox: so I can make many "foo" type of objects [21:01] JimBastard: so put it there [21:01] hassox: I know.. I'm thinking of classes [21:01] JimBastard: i failed all my classes, thats why i use javascript [21:01] hassox: JimBastard: but how to trigger it in the constructor of the foo object? [21:01] hassox: le sigh [21:01] JimBastard: i dunno man, paste some code [21:02] JimBastard: im taking a LoL break [21:02] inimino: that "Comet is dead" headline bothered me ... Comet is just an approach, not limited to any specific transport technique [21:03] mediacoder: which browsers do have websockets currently? [21:04] Connorhd: do any in their stable release? [21:04] inimino: Firefox trunk has them [21:04] mediacoder: yea, thats what i mean actually :-) [21:04] erichocean: Chrome is the only one in stable I believe [21:04] inimino: maybe Chrome? [21:04] erichocean: WebKit and FF in nighties [21:04] erichocean: not on Mobile Safari [21:05] erichocean: also, no Flash fallback there :-( [21:05] mediacoder: erichocean: how you do it on mobile safari then? :-) [21:05] mediacoder: yea [21:05] erichocean: I don't [21:05] hassox: https://gist.github.com/436a2656a40e04f51e97 inimino << [21:10] inimino: hassox: well, ok... [21:10] inimino: hassox: if you want to do something like that, you will need to ensure Foo is called for each new object you create [21:10] inimino: I kind of suggest not trying to do it that way, though [21:11] inimino: hassox: anyway, the prototype is just the prototype, it's not some kind of constructor chain [21:11] inimino: hassox: if you want something done in the constructor... just do it [21:12] inimino: maybe you want a Foo.prototype.init() method [21:12] hassox: inimino: what about something like this [21:12] hassox: https://gist.github.com/436a2656a40e04f51e97 [21:12] hassox: ;) [21:12] hassox: can I have the queue setup like that? [21:12] hassox: or will that again be the same _init_queue instance for all Bar objects [21:14] inimino: there only is one instance of Foo [21:14] inimino: new Foo returns an object [21:15] inimino: Bar.prototype is that object [21:15] inimino: so yes, there's only going to be one of everything you have there [21:15] hassox: hrm [21:15] siong1987 has joined the channel [21:16] hassox: so there is no where to have common setup for instances :| [21:16] hassox: that makes things a little difficult [21:21] shiftb1 has joined the channel [21:26] mikeal has joined the channel [21:44] sudoer has joined the channel [21:55] jed has joined the channel [22:04] n8o_ has joined the channel [22:05] rbranson__ has joined the channel [22:06] n8o_ has joined the channel [22:13] JimBastard has joined the channel [22:16] hassox has joined the channel [22:17] hassox has joined the channel [22:20] eviltwin has joined the channel [22:22] mjard has joined the channel [22:36] stephenlb has joined the channel [22:40] felixge has joined the channel [22:58] JimBastard: anyone here know anything about JSSS [22:59] n8o has joined the channel [23:03] eddanger has joined the channel [23:05] JimBastard: hey binary42 - http://maraksquires.com/json_stylesheets/ [23:06] binary42: Heheh. JSSS was already used as a name? Or are you trying to raise zombies? [23:06] JimBastard: raise zombies [23:06] JimBastard: if you look at JSSS its selector based snytax [23:06] JimBastard: like jquery [23:06] JimBastard: i could rename it i guess, jsss works [23:07] JimBastard: its silly looking [23:07] binary42: Random question: Does anyone know how I can create a AS3 Vector from within JavaScript on AIR? [23:07] JimBastard: well [23:07] JimBastard: last time i did bridging from JS to AS i just setup methods and called them remotely [23:07] JimBastard: so id create the object in AS [23:07] JimBastard: normally? [23:07] binary42: I don't want a single line of AS3 in this. [23:08] JimBastard: so how you gonna create a AS3 vector [23:08] binary42: I don't know yet, that's why I'm asking. [23:08] JimBastard: lolwut [23:08] binary42: I have managed to do everything else w/o one. [23:08] JimBastard: im a bit lost sorry [23:08] binary42: I need to find an API call that gives me one that I can use w/o the constructor. [23:09] JimBastard: why does it have to be a as3 vector [23:09] binary42: AS3 is what java developers would have done if they did JavaScript and it's shit. [23:09] binary42: Cause the API I need to call requires one. [23:09] JimBastard: the AVM is terrible [23:09] binary42: And won't coerce an array. [23:09] JimBastard: ohh i see [23:09] JimBastard: you are using a AS3 lib? [23:09] JimBastard: or a swf or something? [23:09] binary42: Nope. The native AIR API. [23:09] JimBastard: you try #flex? [23:09] binary42: There are API's in AIR only available to AS3. [23:10] binary42: flex is shit too. [23:10] JimBastard: the #flex room has some good developers [23:10] JimBastard: they know AIR [23:10] binary42: Ah. Right. [23:10] binary42: I'll hit the room but try not to flame AS3 or flex. [23:13] kriszyp has joined the channel [23:16] isaacs has joined the channel [23:23] JimBastard: http://news.ycombinator.com/item?id=1008799 [23:25] RayMorgan_ has joined the channel [23:30] isaacs: JimBastard: i kinda agree with some of the commenters on hn [23:30] isaacs: gimme a server-side parser for jsss, and i'm interested. [23:31] isaacs: maybe something like http://lesscss.org/, but with js/node rather than ruby. [23:32] isaacs: "some of the commenters", i guess, actually just === tptacek [23:34] JimBastard: isaacs ive been responding to those [23:35] JimBastard: a server-side parser would be pretty easy imho, just port one of the existing ones to JS and node [23:35] JimBastard: im not advocating not using a server-side css engine.....im saying use that + JSSS [23:35] isaacs: JimBastard: sure. if you think it's easy, you should do it ;P [23:35] isaacs: "easy" is easier said than done. [23:36] JimBastard: well its a lot of code generation, im decent at that [23:36] JimBastard: and you gotta know the idiosyncrases of browser render engines [23:36] JimBastard: im okay at that [23:36] isaacs: but yeah, in general, that's kinda the approach i'd take. [23:36] isaacs: lessc is powerful, but not terribly bright. [23:36] JimBastard: i could build one that was dumb stupid [23:36] isaacs: it generates some very verbose css. [23:36] isaacs: no optimization cleverness at all. [23:36] JimBastard: hrmmm [23:37] JimBastard: i would just keep it really simple, classes and properties [23:37] JimBastard: right? [23:37] isaacs: well, also, order matters [23:37] isaacs: .foo { color:red; color: green } [23:37] isaacs: that's valid css [23:39] felixge: I'm sooo close to get require.hot working :) [23:40] felixge: I mean it works for all the test cases I can come up with, only my real world app is giving me troubles :) [23:49] jed has joined the channel [23:49] sudoer has joined the channel [23:53] JimBastard: im almost bored enough to troll the jquery room.......join and say, hey im building a javascript library called mQuery, its just like jQuery except i made it and its awesome. i was having some problems with AJAX, does anyone know how to create a XMLHTTPobject and then have it send to the server? [23:54] Pilate: you really need another source of attention [23:54] JimBastard: yeah im gonna code some more [23:55] JimBastard: my just upset that my game LoL won't load now [23:55] JimBastard: and my fucking xbox red ringed [23:55] JimBastard: im gonna go troll jquery real quick