[00:01] eddanger has joined the channel [00:01] onar has joined the channel [00:01] taf2 has joined the channel [00:01] keeto has joined the channel [00:12] beppu has joined the channel [00:12] aguynamedben has joined the channel [00:12] kriszyp has joined the channel [00:15] micheil_mbp has joined the channel [00:16] technoweenie has joined the channel [00:19] jacobat has joined the channel [00:21] beppu has joined the channel [00:21] aguynamedben has joined the channel [00:21] kriszyp has joined the channel [00:22] jacobat has joined the channel [00:22] isaacs_ has joined the channel [00:22] isaacs_ has joined the channel [00:24] mattly has joined the channel [00:26] stevestmartin has joined the channel [00:28] gbot2 has joined the channel [00:54] binary42 has joined the channel [01:19] isaacs_mobile has joined the channel [01:22] SubtleGradient has joined the channel [01:22] SubtleGradient: is there anything like env.js that works in node.js? [01:24] inimino: not unless you port it [01:24] SubtleGradient: is there any sort of DOM-like API in anything that will run on node? [01:27] inimino: not that I'm aware of [01:27] SubtleGradient: thx [01:28] inimino: but then I've never understood while people want it, so I haven't looked and might not be the best person to ask [01:28] SubtleGradient: I was just asking the room in general [01:59] mattly has joined the channel [02:00] stephenlb: ACTION likes how fast node is and wants it to stay fast or get faster. and to keep it that way with low memory foot by excluding the unnecessary. [02:01] SubtleGradient: um… thanks for that elmo [02:01] SubtleGradient: :P [02:05] brandon_beacher has joined the channel [02:10] ashb: inimino: the reason to want a DOM is to support client side code easier [02:10] ashb: ACTION hands stephenlb loadable modules [02:17] inimino: ashb: so I've heard [02:17] inimino: ashb: it's not that I doubt people have compelling use cases, it's just that I've never seen or been able to imagine one [02:17] ashb: but yeah, the DOM is a horrible API [02:17] isaacs_mobile has joined the channel [02:18] inimino: yes... [02:21] un0mi has joined the channel [02:28] charlenopires has joined the channel [02:28] aguynamedben has joined the channel [02:29] hassox has joined the channel [02:37] rictic has joined the channel [02:46] isaacs_mobile_ has joined the channel [03:05] SubtleGradient has left the channel [03:20] mattly has joined the channel [03:30] mynyml has joined the channel [03:39] un0mi has joined the channel [03:56] JimBastard has joined the channel [03:57] sstmartin has joined the channel [03:58] JimBastard: sup inimino [03:58] JimBastard: do you think you'd be able to help me track down my session.js issue at some point tonight? if you busy its cool [04:08] binary42 has joined the channel [04:12] allnickstaken has joined the channel [04:13] micheil: JimBastard: hm.. what's the issue? [04:13] micheil: ACTION also authored a http session library [04:33] technowe_ has joined the channel [04:35] unom1 has joined the channel [04:43] JimBastard: is freenode being attacked? [04:54] unomi has joined the channel [04:57] lifo has joined the channel [04:58] steadicat has joined the channel [05:16] cloudhead has joined the channel [05:17] JimBastard: well micheil i can't figure out why http://github.com/Marak/session.js/blob/master/session.js is working on one node instance and not on another [05:17] JimBastard: its probaly something stupid on my end [05:21] JimBastard: how goes the smtp [05:21] JimBastard: im pretty excited about being able to spam people with node, i mean send blast emails [05:21] JimBastard: ^_^ [05:30] micheil: it's almost ready. [05:31] micheil: there's a bit still to do (I haven't begun implementing the auth segments yet) [05:31] micheil: what are the two node versions? [05:31] JimBastard: then all we need to do is coherse someone into building the .server [05:32] JimBastard: v0.1.22-15-g8fd46a3 and v0.1.22-7-g3d24e11 [05:32] micheil: I've got meta code so that the server can be built [05:32] JimBastard: but i think it might be because its on an IP and not a domain? [05:32] micheil: try bringing them both up to HEAD [05:32] micheil: maybe [05:32] JimBastard: yaa you think [05:32] micheil: try running "localhost" [05:32] micheil: / 127.0.0.1 [05:33] JimBastard: what you mean [05:33] cdorn has joined the channel [05:33] micheil: if one server is running on an IP and the other is on a domain, maybe there's an issue there [05:33] JimBastard: thats what im thinking [05:34] JimBastard: but where in the code [05:34] micheil: ryah: did you see that Node is the github featured project? [05:34] inimino: JimBastard: ah, I'll look [05:34] JimBastard: woooooot [05:34] JimBastard: sup inimino [05:34] JimBastard: i can send you the site where its running at if that helps [05:34] JimBastard: its probaly a stupid mistake, but it shouldnt be failing silently [05:36] inimino: JimBastard: got a public URL? [05:36] JimBastard: yeah [05:36] JimBastard: ill pm [05:41] micheil: JimBastard: aww.. not going to show me? :( [05:42] micheil: hmm.. what testing frameworks do people use? [05:43] micheil: (something that isn't the assert module.) [05:50] erichocean has joined the channel [05:52] JimBastard: micheil we figured it out, i wasnt calling the setcookie method in the header [05:52] JimBastard: i assumed it was magic but its not [05:55] inimino: I think someone's fork has the magic, but I was a purist and didn't want to mess with node's internals to make it work [05:55] inimino: the Right Thing is some kind of middleware... [05:56] JimBastard: middleware for http requests? [05:56] inimino: Coming Soon™ [05:56] JimBastard: id would have to be baked into node to make sense [05:58] inimino: JimBastard: maybe, or something layered on top that has some kind of ... layer, and abstracts away the request/response objects [05:58] inimino: ACTION is off [05:58] inimino: bbl [06:02] erichocean has joined the channel [06:12] keeto has joined the channel [06:13] keeto has joined the channel [06:13] keeto has joined the channel [06:14] unom1 has joined the channel [06:31] spoob has joined the channel [06:36] scudco has joined the channel [06:57] scudco has joined the channel [07:06] piranha has joined the channel [07:24] qFox has joined the channel [07:51] mikeal has joined the channel [08:07] jamiew has joined the channel [08:23] mikeal has joined the channel [08:31] tlrobinson has joined the channel [08:33] tlrobinson has joined the channel [08:37] jamiew_ has joined the channel [08:38] tlrobinson_ has joined the channel [08:39] tlrobinson1 has joined the channel [08:59] jamiew has joined the channel [09:39] teemow has joined the channel [10:07] markwubben has joined the channel [10:28] piranha has joined the channel [10:36] micheil has joined the channel [10:39] tlrobinson1 has left the channel [10:53] steadicat has joined the channel [10:56] webben has joined the channel [11:00] micheil: hmm.. what was vendor stuff in the various frameworks and libraries about? [11:00] micheil: eg, http://github.com/danwrong/restler/tree/master/lib/vendor/ [11:04] elliottcable has joined the channel [11:32] kennethk_ has joined the channel [11:54] felixge has joined the channel [11:58] hassox has joined the channel [12:16] rtomayko has joined the channel [12:19] rtomayko has joined the channel [12:25] piranha: micheil: that's dependecies (if you still need an answer :)) [12:25] piranha: *dependencies [12:25] micheil: yeah, okay cool [12:25] micheil: ACTION is moving some of the stuff that isn't directly interacting with node-smtp out of it's core sections [12:31] kennethk_: micheil: i've started hacking away at a smtp server implementation [12:35] micheil: kennethkalmer: why don't you fork http://github.com/miksago/node-smtp [12:36] micheil: it has hooks for an SMTP Server [12:36] micheil: (then I'll pull back in and add as contributor.) [12:37] kennethkalmer: great idea [12:37] kennethkalmer: although I have one concern [12:37] micheil: have a look at /lib/smtp/server.js [12:37] micheil: yeah? [12:37] kennethkalmer: wouldn't it bloat the library too much ? bundling a client and server in one lib... [12:37] micheil: not really [12:37] kennethkalmer: thing is, the server needs the client (to relay) [12:37] micheil: because it's a protocol implementation [12:38] kennethkalmer: gotcha [12:38] kennethkalmer: expecting all eyes on http://github.com/kennethkalmer/node-smtp :) [12:38] micheil: and the way that I've structured lib/smtp.js is so that the server or client stuff is only included when you create either [12:38] kennethkalmer: +1 [12:39] kennethkalmer: just one request: have patience with me as I get my non-DOM javascript-fu going [12:39] micheil: I'm currently adding in the queue libs as a submodule, so it's a bit rough [12:40] kennethkalmer: watching [12:41] kennethkalmer: i'm curious, what is your plans for the smtp server component ? [12:43] felixge_ has joined the channel [12:55] micheil: kennethkalmer: I'm not sure yet [12:55] micheil: I'm working on getting the client working first, although, it makes sense just to have one smtp module [12:56] micheil: kennethkalmer: there's an upstream version as well, just made a few changes to the structure [12:57] kennethkalmer: upstream ? [12:58] hassox: hey kennethkalmer :D [12:58] kennethkalmer: hey hassox :) [12:58] kennethkalmer: off the train I hope ? [12:58] hassox: yeah mate :D [12:58] hassox: finally got to read your email ;) [12:58] kennethkalmer: awesome [12:59] kennethkalmer: hassox: summer killing you guys as well ? exceptionally hot over here :/ [12:59] hassox: yeah [12:59] hassox: very hot [13:00] micheil: where abouts are you two? [13:00] hassox: 37ºC the other night [13:00] hassox: Melbourne Australia [13:00] micheil: ah [13:00] micheil: I'm a bit north of that [13:00] kennethkalmer: Johannesburg, South Africa [13:00] kennethkalmer: 37, dammit [13:00] mediacoder: Darmstadt, Germany :-) ..allright..your cities are better known ;-) [13:01] hassox: mediacoder: I'd love to spend a bit of time over there [13:01] kennethkalmer: we're around 32C, but humidity is 70+ [13:01] hassox: ouch [13:01] hassox: that's horrible [13:01] mediacoder: here its like -7°C [13:01] kennethkalmer: ouch [13:01] hassox: mediacoder: it's dry when it's that cold right? [13:02] mediacoder: hassox: yea, at the moment its pretty dry [13:02] mediacoder: (humidity) ..much snow tho [13:03] micheil: mediacoder: hmm, yeah, I'm not sure what the weather is at the moment in Dusseldorf where my colleagues are based [13:04] micheil: probably something near -7ªC [13:06] mediacoder: micheil: im a bit more south, but there was much snow this year allover germany, i guess (not as much as UK tho) [13:07] micheil: hmm.. anyone know all the commands to working with git forks? [13:07] kennethkalmer: which are you looking for ? [13:08] micheil: the stuff for pull and pushing and managing the forks [13:08] micheil: kennethkalmer: did you get your repo up to date? [13:08] kennethkalmer: yep [13:08] kennethkalmer: submodules et all [13:09] kennethkalmer: first thing is to add the forks as remotes [13:09] kennethkalmer: git remote add kennethkalmer git://github.com/kennethkalmer/node-smtp.git [13:09] kennethkalmer: after adding remotes, let git update itself : git remote update [13:09] kennethkalmer: then you can create 'tracking branches' [13:10] kennethkalmer: git branch --track kennethkalmer-master kennethkalmer/master [13:10] kennethkalmer: where kk-master is a local branch by you, tracking kennethkalmer (remote) / master (branch) [13:10] kennethkalmer: then from there you just checkout and pull and merge as usual [13:10] kennethkalmer: does that help ? [13:11] micheil: yeah [13:12] kennethkalmer: or you can try these tools ( i haven't yet ) [13:12] kennethkalmer: http://github.com/nowells/git-goggles [13:12] kennethkalmer: http://github.com/defunkt/hub [13:12] micheil: so, git branch --track [branch name] [remote repo] [13:12] micheil: yeah? [13:13] kennethkalmer: git branch --track [branch name] [refspec] [13:13] micheil: yeah' [13:13] rolfb has joined the channel [13:13] kennethkalmer: yip [13:13] inimino has joined the channel [13:13] micheil: okay.. [13:13] micheil: have you made any changes? [13:13] kennethkalmer: not yet, studying your code [13:14] kennethkalmer: will send you pull requests [13:14] micheil: okay [13:14] kennethkalmer: let me gist what I had [13:14] grantmichaels has joined the channel [13:14] micheil: hopefully the filesystem's easy enough to understand [13:14] micheil: (the only one which might be confusing is the ../vendor/Queue/lib/Queue) [13:15] kennethkalmer: but that is submodules, it's fine [13:15] micheil: yeah [13:15] micheil: I might redo Queue to be system independent later, but I'm not sure for now [13:15] micheil: also, for testing I've been working on /mock/Server [13:17] joshthecoder has joined the channel [13:17] kennethkalmer: http://gist.github.com/278814 [13:17] kennethkalmer: that was my last working copy before refactoring [13:18] micheil: hey, you know, I never thought of using regex.. [13:18] kennethkalmer: got that from EventMachine's smtpd implementation [13:19] kennethkalmer: combined it with jan____'s awesome-style callbacks [13:19] micheil: I've been working off ruby's net::smtp for now [13:20] kennethkalmer: i saw [13:20] micheil: it seemed a bit sane, although, I'm only using it as a guide [13:21] kennethkalmer: i'm going to lug my existing refactor into lib/smtp/server.js and finish that up [13:21] micheil: okay [13:23] micheil: I'm yet to read through the various RFC's for smtp servers, hopefully there'll be uses for things like the queue manager and stuff like that [13:23] kennethkalmer: definitely [13:23] kennethkalmer: smtp server will need a spool [13:24] kennethkalmer: it will need the client when relaying mesages [13:24] micheil: hmm.. [13:25] micheil: haha, I'm reading through your code, and normally I'll write things in the order of which they'll happen, eg, connect -> commands -> quit [13:25] micheil: So I miss took the quit callback as a connect on :P [13:25] kennethkalmer: :) [13:26] kennethkalmer: i tackle low hanging fruit first, usually :) [13:27] micheil: btw, with the EHLO reply, maybe it'd work if we had a set of options, to control what the server should implement [13:27] micheil: or do you think it'd be better to implement everything we have? [13:28] kennethkalmer: i think we should offer the bare minimum and allow implementers to easily extend [13:28] kennethkalmer: bare minimum is still a lot though [13:28] micheil: hmm.. [13:29] micheil: http://tools.ietf.org/html/rfc5248 [13:29] markwubben has joined the channel [13:30] kennethkalmer: sigh, I'm only busy with rfc2821 atm [13:31] kennethkalmer: i'm already seeing an overlap in my refactored code [13:31] kennethkalmer: i've got a SMTPSession object going [13:33] micheil: so what's SMTPSession do? [13:34] kennethkalmer: beefed up PacketHandler it seems [13:34] kennethkalmer: actually, it handles everything [13:35] micheil: okay [13:35] micheil: I'd be interested to see that part of the code [13:35] micheil: because I'm not sure on the packetHandler just yet [13:36] micheil: it's one of my newer pieces of code [13:36] kennethkalmer: ah [13:36] kennethkalmer: great, let me just get it working properly [13:36] kennethkalmer: i'm very new to prototypical js [13:36] kennethkalmer: so this quite messy atm [13:37] micheil: yeah, we can clean it up and all that later.. [13:37] micheil: We just need to make sure we tag it before making clean ups [13:37] kennethkalmer: +1 [13:37] kennethkalmer: or keep a history file [13:38] micheil: hmm.. yeah [13:38] micheil: I tagged v0.5, which was before my latest refactor [13:38] micheil: the difference between the code now and then is fairly large [13:40] micheil: Once I have the client protocol working, I'm going to work on adding in a wrapper library (which is mailer.js) [13:40] kennethkalmer: aaah [13:40] kennethkalmer: that makes sense [13:40] kennethkalmer: thought it was very low level [13:41] micheil: yeah, still trying to work out the best way to handle things.. [13:42] micheil: I'm not too keen on using events for absolutely everything, I'm thinking callbacks might be the way to go [13:44] kennethkalmer: i hate that node just quits without any output to the console :/ [13:44] micheil: heh, I actually used extra timers with empty functions just to hold node open [13:45] micheil: (just for debugging, of course ;P) [13:48] emilis_info has joined the channel [13:49] piranha has joined the channel [13:50] micheil: kennethkalmer: I don't suppose you have any preference as to testing frameworks? [13:50] kennethkalmer: not for node (or js in general) yet [13:50] micheil: okay [13:50] kennethkalmer: but I do like rspec-style testing [13:51] micheil: hmm.. [13:53] micheil: How about using: http://github.com/ecavazos/speks [13:55] kennethkalmer: looks good [13:55] micheil: okay, I'll work on setting that up in the repo [13:57] kennethkalmer: great [13:59] micheil: although, it does seem to have a few issues, I'm looking at the source to try and resolve them [14:01] kennethkalmer: hassox: what testing library do you recommend ? [14:01] hassox: spectacular :) [14:02] hassox: http://github.com/jcrosby/spectacular [14:02] hassox: the async testing support is really simple :) [14:02] kennethkalmer: showoff ;) [14:02] hassox: http://github.com/jcrosby/spectacular/blob/master/spec_example.js [14:02] hassox: ;) [14:06] micheil: hassox: I looked at it, but it looked maybe too thin? [14:06] hassox: micheil: how so? [14:06] hassox: not enough assertion types? [14:06] micheil: well, because it's just three files [14:06] hassox: it's really only 1 ;) [14:06] micheil: I look at others and there's a lot more [14:06] hassox: the other is an example, and a .gitignore ;) [14:06] micheil: that's what I mean [14:07] hassox: micheil: does that make the others more useful? [14:07] micheil: not so, but the others do have tests and a consistent file structure [14:07] micheil: eg the /lib, /tests, doc [14:08] hassox: micheil: dunno mate... [14:08] hassox: it's simple, and it does async [14:08] hassox: that's 2 big ticks from me ;0 [14:08] hassox: ;) [14:09] hassox: micheil: which do you recommend? [14:09] micheil: okay, wins my vote..what's the command line usage like? [14:09] hassox: node tacular.js [14:09] micheil: hassox: I always use a specific directory structure [14:09] hassox: micheil: it's not perfect [14:10] hassox: micheil: do you have a preferred test runner / setup? [14:10] micheil: umm.. not really, recently I've done a little testing on dojo's DOH [14:10] micheil: but it's an odd test suite [14:11] technoweenie_: http://github.com/technoweenie/ntest [14:11] technoweenie_: is my testing lib [14:11] hassox: initially I looked at jquerys test suite, but it's pretty DOM centric [14:11] hassox: ohh [14:11] hassox: looking [14:11] hassox: technoweenie: how does it do async? [14:11] technoweenie_: i really liked rtomayko's test suite for his bert lib, which was just a test(..., func) method [14:11] micheil: technoweenie: checkin' it out, also, if it's a node project, add it to http://github.com/ry/node/wiki/modules [14:12] hassox: technoweenie: it looks pretty nice [14:12] technoweenie_: i use promise.wait() a lot [14:12] technoweenie_: http://github.com/technoweenie/wheres-waldo/blob/master/test/api_test.js [14:12] hassox: technoweenie: can it do nested describes with before / after [14:12] hassox: ? [14:12] micheil: hmm.. would it be wise to start defining a bit of a module structure? [14:12] technoweenie_: no nesting [14:13] technoweenie_: i like the syntax in jcrosby's [14:13] technoweenie_: i wanted to get away from something like [14:14] technoweenie_: describe('foo', function() { this.test(..., function() ... [14:14] hassox: i like assert.equal [14:14] technoweenie_: thats part of node.js [14:14] technoweenie_: ntest has no assertions [14:14] hassox: oh you're using nodes assertions :D [14:14] hassox: sweet [14:14] micheil: I don't like assert because it kills the thread [14:14] hassox: micheil: ? [14:14] hassox: what do you mean? [14:14] micheil: it throws errors, which, unless caught explicitly will end the test suite [14:15] hassox: technoweenie: what about the case where in the test you need to fire off somethign async, and then callback for the assertion? [14:15] technoweenie_: so, catch them :) [14:15] technoweenie_: hassox: i just call wait() on the promises [14:15] hassox: technoweenie_: that assumes a promise is available though [14:16] technoweenie_: what am i, a peasant? [14:16] technoweenie_: no, i'm a coder damnit [14:16] technoweenie_: http://github.com/technoweenie/wheres-waldo/blob/master/test/test_client.js [14:16] technoweenie_: http client wrapper that returns a promise [14:17] hassox: heh [14:17] technoweenie_: micheil: caught exception: http://img.skitch.com/20100116-nx53gfpqn8fxii5ns26fj4gti9.png [14:18] technoweenie_: well, the tests run immediately as they're defined [14:18] micheil: will it continue to test though? [14:18] technoweenie_: yea [14:18] micheil: If I have an error, I want to know about it, but I want to know that the rest of the tests still run [14:19] technoweenie_: http://img.skitch.com/20100116-1ybqbtr25ihmegbbr49e7p6n8i.png [14:19] hassox: nice [14:20] hassox: can you add a promise thing like in jcrosby's one? [14:20] technoweenie_: yea... [14:20] technoweenie_: i want to toy with the idea of having your tests run async too [14:20] hassox: hawt [14:21] hassox: technoweenie_: that could play havoc with the state of what you're testing though yeah? [14:21] technoweenie_: yea perhaps [14:21] technoweenie_: it's easy to wrap stuff in a promise though [14:22] technoweenie_: did you see my blog post that explored async coding [14:22] hassox: no [14:22] technoweenie_: i'm pretty new to it [14:22] hassox: please to be pointing [14:22] hassox: me too [14:22] technoweenie_: http://techno-weenie.net/2010/1/15/node-js-for-my-tiny-ruby-brain [14:22] technoweenie_: basically my original lib code used wait() everywhere, until i got passing tests [14:22] technoweenie_: then i added async and essentially moved the wait() calls to the tests [14:23] hassox: async is a blast [14:23] hassox: have you seen my twitter streamer? [14:23] technoweenie_: no [14:23] technoweenie_: nested describes might be cool, i just hate all the js syntax that it adds [14:24] micheil: oh man.. dailup internet is so painful... [14:24] hassox: http://github.com/hassox/my_node_playground/tree/master/tweet_node/ [14:24] technoweenie_: my tests have this pseudo indentation [14:24] micheil: technoweenie: I thought I knew your name from somewhere, ENTP [14:24] technoweenie_: micheil: yep [14:24] hassox: technoweenie_: it reads from the twitter stream API and for each tweet it recieevs it emits a "newTweet" event [14:24] technoweenie_: hassox: thats cool [14:24] technoweenie_: we're probably going to do something like that, but have it emit webhooks [14:25] hassox: each request has a listener setup on the streamer such that when it recieves the event, it pushes it out to the client [14:25] hassox: technoweenie_: exactly :D [14:25] hassox: technoweenie_: somethign that I've been thinking of that kennethkalmer is working on that you might like [14:25] hassox: kennethkalmer: is looking at making something like the EM smtp server (a relay) [14:26] kennethkalmer: not looking, is busy :) [14:26] micheil: hassox: we've merged it into node-smtp [14:26] hassox: so you could setup postfix to relay email to a smtp server (relay) inside the node instance on port 25 [14:26] hassox: micheil: awesome [14:26] hassox: so [14:26] un0mi has joined the channel [14:26] hassox: have it emit an event "mailReceived" [14:26] hassox: then the app can add a listeenr to it, and process the email as it arrives [14:27] micheil: hassox: We're welcome to suggestions [14:27] hassox: micheil: that's my use case ^^ [14:27] hassox: that's what I'd love to see [14:28] micheil: hassox: I've been experimenting with different api's between both client smtp and server smtp [14:28] micheil: although, last I knew, the stuff that did the receiving of emails was imap / pop [14:28] hassox: micheil: have you seen the Event machien one? [14:28] technoweenie_: i'd rather have the email just dumped to a queue somewhere than rely on an active service that has to be running to receive events [14:28] micheil: sort of [14:28] hassox: micheil: think of it as a relay instead of a mailbox [14:29] technoweenie_: we process tons of emails a day, exim just dumps them to a maildir on the server, and a ruby script churns through them [14:29] michaelk^ has joined the channel [14:29] micheil: technoweenie: in that case, my Queue runner might interest you, it uses an evented queue / array to process data [14:30] technoweenie_: i currently use a db table for a queue actually [14:30] technoweenie_: well, the email server uses teh filesystem as a queue for new emails [14:30] technoweenie_: ive been wanting to move to redis, just havent had an urgent need yet [14:31] technoweenie_: hey hassox can i pick your brain about the twitter stream api real quick [14:31] hassox: technoweenie_: has ezra made his distributed ring thing for redis yet? [14:31] hassox: yaeh.. [14:31] hassox: I don't know heaps about it [14:31] technoweenie_: "The default access level allows up to 200 track keywords and 400 follow userids" [14:31] hassox: but hit me [14:31] technoweenie_: does that mean you can have 1 connection that tracks 200 keywords and follows 400 users? [14:31] hassox: yeah I believe so [14:32] technoweenie_: hmm ok thats uh pretty sweet :) [14:32] hassox: each user id can only have 1 active connection to the api [14:32] technoweenie_: well, we're kicking around the idea of integrating twitter into Tender Support [14:32] technoweenie_: and i was imagining having a tweet stream connection for each company acct [14:32] hassox: my idea of usage was that one node could be connected, and my "app" cluster could hold open a connection to it to receive [14:32] hassox: oh nice :) [14:33] technoweenie_: well, do keep thsi node tweet streamer oss :) [14:33] technoweenie_: i may just run a simple one that fires off webhooks and do the processing in the rubies [14:34] hassox: yeah [14:34] hassox: that app is just an exp btw [14:34] technoweenie_: sure [14:35] hassox: soz [14:35] hassox: baby just woke up [14:35] hassox: brb [14:35] technoweenie_: the only issue is it only returns public tweets [14:35] technoweenie_: which makes sense i guess, but if i'm connecting w/ my acct is hould see private tweets of my friends? hm [14:37] michaelk^: question about the http server / client and this snippet: http://gist.github.com/278836 - if i have a client coming in with "Connection: close", why is the connection closed before i ever call res.finish? [14:38] bry has joined the channel [14:39] hassox: bak [14:39] hassox: technoweenie_: I think that's the case yeah [14:39] hassox: but not sure... I just played with the public stuff [14:40] hassox: was more an experiment to have 1 stream going to n client connections from a single node [14:40] hassox: concurrent connections and all that stuff [14:40] kriszyp has joined the channel [14:40] technoweenie_: yea cool [14:40] technoweenie_: how do you find your twitter user id [14:41] hassox: I have a json configuration object example there [14:41] hassox: is that what you mean? [14:42] technoweenie_: the follower param needs a numerical twitter id [14:42] hassox: oh right [14:42] technoweenie_: maybe i need to make an api call to see it [14:43] piranha has joined the channel [14:43] technoweenie_: oh its on the rss feed link i think [14:43] hornbeck has joined the channel [14:44] hassox: yeah tehre it is [14:45] hassox: k guys [14:45] hassox: I'm off for the night [14:45] technoweenie_: later [14:45] hassox: technoweenie_: I'd be interested to hear how you go :) [14:45] hassox: cyas [14:47] micheil: bye hassox [14:48] micheil: kennethkalmer: do you intend on implementing smtp-auth extension? [14:48] kennethkalmer: ciao hassox ! [14:48] kennethkalmer: micheil: yep [14:49] micheil: okay, I've got a base64 lib in vendor, just checking out jsdigest for md5 and the others [14:50] micheil_mbp has joined the channel [14:53] micheil_mbp: sorry about that, net maintainence [14:54] micheil_mbp has joined the channel [14:54] un0mi has joined the channel [14:55] micheil_mbp: mm.. [14:55] micheil: that's better. [14:57] micheil: kennethkalmer: it looks like smtp-auth will only work on server for now, until we have ssl connections on the clients in tcp [14:58] kennethkalmer: is that on ryah's todo list ? [14:58] micheil: node-origin/net2 [14:58] micheil: hopefully [14:58] kennethkalmer: cool [14:59] micheil: also.. [14:59] micheil: Note: A server implementation MUST implement a configuration in which it does NOT permit any plaintext password mechanisms, unless either the STARTTLS [SMTP-TLS] command has been negotiated or some other mechanism that protects the session from password snooping has been provided. Server sites SHOULD NOT use any configuration which permits a plaintext password mechanism without such a protection mechanism against password snooping. [14:59] micheil: from RFC4954 [15:02] micheil: hmm.. [15:03] micheil: I think I'll keep the idle callback in smtp-client, although, I'll change client.mail(to_addr), to client.mail(to_addr, callback) [15:03] micheil: or something [15:04] micheil: client.mail returns promise? [15:05] kennethkalmer: think so [15:05] kennethkalmer: then the promise can fail or succeed [15:05] kennethkalmer: i still have plenty to learn around promises [15:05] kennethkalmer: one last smoke then I have to call it a day [15:06] kennethkalmer: almost done with the prototypical refactoring [15:06] kennethkalmer: haven't cursed at js-scoping issues quite like this before [15:07] micheil: prototypical refactoring? [15:07] micheil: gotta love long words.. :P [15:08] kennethkalmer: hehe [15:08] micheil: brb [15:08] JoePeck has joined the channel [15:15] micheil has joined the channel [15:15] d3w has joined the channel [15:15] r11t has joined the channel [15:15] micheil: righteo.. [15:15] stevestmartin has joined the channel [15:15] alex-desktop has joined the channel [15:17] micheil: kennethkalmer: do you think it'd be beneficial to write a packet formatter? [15:17] kennethkalmer: explain a bit more please [15:18] un0mi has joined the channel [15:18] micheil: well, something to create the packets, rather then just using strings [15:19] kennethkalmer: ah [15:19] micheil: this.get("MAIL FROM:<"+from_addr+">", function(packet){ => something more readable [15:19] kennethkalmer: maybe [15:19] kennethkalmer: but i don't think just yet [15:20] micheil: this.get(packet("MAIL FROM:<%1>", "email@test.com" [15:20] micheil: or something [15:20] micheil: not really a packet formatter but sprintf [15:22] kennethkalmer: maybe it is my inner rubyist that resists the formatter :) [15:23] micheil: hmm.. [15:23] micheil: because the current style isn't the nicest [15:25] micheil: hmm.. with the promise for all client commands, if I go with passing errback the packet, that should be fine.. [15:26] micheil: it'd probably also mean we could use .wait() in tests [15:27] micheil: (yeah, reading technoweenie's article on node now..) [15:28] mies has joined the channel [15:28] kennethkalmer: still have to read that article [15:29] micheil: kennethkalmer: the most useful part in the whole smtp docs has to be section 4.3.2 [15:29] micheil: with the chart to display the flow of status codes [15:30] kennethkalmer: thanks, will digest that a bit later [15:31] kennethkalmer: i've just pushed an smtp-server branch to github [15:31] micheil: okay [15:31] micheil: I'm just working on a promise pattern: [15:31] kennethkalmer: still needs a lot of work, but will pick it up later [15:31] kennethkalmer: http://github.com/kennethkalmer/node-smtp/commit/4ffb29bf9762d314c881e71da06022053d628c3f [15:32] micheil: http://gist.github.com/278856 [15:32] micheil: oh, yeah, what os / editor are you using? [15:33] kennethkalmer: osx/gvim [15:33] kennethkalmer: erm, macvim [15:34] micheil: http://gist.github.com/278858 [15:34] micheil: are the two snippets I'm using in textmate, that's for the headers [15:34] kennethkalmer: i'll have to see how I can tweak vim to match [15:34] micheil: I'm not sure if it's possible to port those to vim, but yeah [15:35] micheil: (of course, change the file_info one to default to your name) [15:35] micheil: I've really gotta figure out the tabstops in textmate.. [15:38] micheil: kennethkalmer: are you using 4 spaces = 1 tab? [15:40] micheil: kennethkalmer: we should add modelines into the files [15:40] micheil: (I've just added modeline support to my copy of textmate.. so, yeah) [15:41] inimino: tabs are evil, just use spaces [15:43] kennethkalmer: i default to 2 spaces per tab (ruby) [15:43] kennethkalmer: micheil: I have to run [15:43] micheil: okay [15:43] kennethkalmer: thanks for the assistance and eagerness :) [15:43] kennethkalmer: will catch you later again [15:44] micheil: okay, and thanks for the contribution and work on the server [15:49] un0mi has joined the channel [15:51] technoweenie_: is there a node.js debugger? [15:52] micheil: a few [15:52] micheil: node_debug I think is the favoured [15:54] micheil: kennethkalmer: #2eec492 [16:18] technoweenie_: damnit, node changed enough in the last week to break my shit [16:19] un0mi: yeah, a few things broke [16:20] technoweenie_: dang i should've kept track of what commit i was on [16:21] technoweenie_: running "./configure ; make ; make install" every time i update the node.js repo should install it properly, right? [16:21] un0mi: 1.23 still had most working [16:21] un0mi: probably uninstall first is a fine idea [16:21] un0mi: make uninstall [16:22] technoweenie_: ah ok [16:22] un0mi: preferably *before* you update :) [16:22] un0mi: although I guess the worst that can happen is some dangling unused files [16:22] micheil: yeah [16:22] micheil: no need to uninstall generally [16:23] technoweenie_: yea it seems to know what it needs to compile [16:23] micheil: I mean, I haven't noticed any side affects, but that's just me. [16:23] technoweenie_: yea but how would you know??? [16:23] micheil: make test ftw [16:23] technoweenie_: oh right [16:23] micheil: I run the test suites compulsively [16:24] un0mi: make test only checks the files that in the build dir afaik [16:24] un0mi: not the ones which are actually installed in your sys [16:24] micheil: oh, yeah, true [16:24] technoweenie_: crap, i think i left my redis server off, thats why tests failed [16:24] technoweenie_: jeez [16:24] micheil: but either way, if I file isn't used, it's not used [16:24] micheil: no harm done [16:24] micheil: anything that is used gets overwritten [16:28] technoweenie_: ok well its fine, i should have something that fails early if redis is down :) [16:28] technoweenie_: though my test is hanging, hmm [16:43] micheil: ACTION is implementing promises into node-smtp client [16:46] ibolmo has joined the channel [16:47] JoePeck has joined the channel [16:48] ibolmo: getting an error for the `make` [16:48] ibolmo: http://paste.mootools.net/d746dd702 [16:49] ibolmo: this is a PPC mac [16:49] ibolmo: maybe that'd be problem [16:49] dew: in deps/v8/SConstruct, find this: "ARCH_GUESS = utils.GuessArchitecture()" (line 574 on my copy) [16:50] dew: and replace it with: ARCH_GUESS = utils.GuessArchitecture() or '' [16:50] dew: then try ;) [16:52] ibolmo: [ 8/22] libv8.a: deps/v8/SConstruct -> build/default/libv8.a [16:52] ibolmo: scons: Reading SConscript files ... [16:52] ibolmo: A value for option arch must be specified (arm, ia32, x64). [16:52] ibolmo: so i guess the ARCH_GUESS should be returning ppc (or similar) [16:52] dew: ah, *that*'ll be your ppc chip scuppering you ;) [16:55] ibolmo: any ideas? [16:55] ibolmo: looks like i could pass arch=ppc directly [16:55] dew: i don't have much to offer i'm afraid mate, the above hack was from the mailing list [16:56] Yuffster has joined the channel [17:00] ibolmo: yeah looks like i'm sol [17:00] ibolmo: if i remember, v8 does not support ppc [17:02] micheil: kennethkalmer: hmm.. the packetHandler seemed to have a massive error in it, it's emptying the data array ever loop [17:19] cloudhead has joined the channel [17:20] cloudhead has joined the channel [17:29] steadicat has joined the channel [17:34] steadicat has joined the channel [17:46] ibolmo has left the channel [17:47] micheil: hmm.. hopefully I'll have mail... [17:52] DamZ has joined the channel [17:57] rictic has joined the channel [17:59] micheil: JimBastard: Okay, the current HEAD of node-smtp can functionally send emails. (I'll confirm 100% when I receive the email I just sent with it, the server said okay, so now it's just a waiting game.) [18:00] micheil: hash: f69d18e [18:00] micheil: G'night chaps. [18:14] aho has joined the channel [18:24] jamiew has joined the channel [18:24] cloudhead_ has joined the channel [18:43] joshthecoder_ has joined the channel [18:49] DamZ has joined the channel [18:49] alex-desktop has joined the channel [18:49] technoweenie_ has joined the channel [18:49] JimBastard has joined the channel [18:49] mattly has joined the channel [18:49] technoweenie has joined the channel [18:49] onar has joined the channel [18:49] taf2 has joined the channel [18:51] mattly has joined the channel [18:51] taf2 has joined the channel [18:51] technoweenie has joined the channel [18:51] technowe_ has joined the channel [18:52] steadicat has joined the channel [18:52] DamZ has joined the channel [18:54] technoweenie: is there a way to tell if a promise has fired other than if(!promise.hasFired && promise._blocking) [18:55] technoweenie: or maybe just have wait() not blow up if its already been fired [18:56] grantmichaels has joined the channel [19:01] Booster has joined the channel [19:03] Booster has joined the channel [19:09] davidsklar has joined the channel [19:13] technoweenie: async twitter stream lib: http://github.com/technoweenie/twitter-node [19:20] cadorn has joined the channel [19:22] binary42 has joined the channel [19:27] piranha has joined the channel [19:29] ako has joined the channel [20:02] eviltwin has joined the channel [20:03] micheil has joined the channel [20:10] mies_ has joined the channel [20:14] mies_ has joined the channel [20:24] erichocean has joined the channel [20:30] isaacs has joined the channel [20:50] binary42 has joined the channel [20:57] charlenopires has joined the channel [21:01] inkubus08 has joined the channel [21:02] inkubus08 has left the channel [21:02] bry has joined the channel [21:25] teemow has joined the channel [21:39] DamZ has joined the channel [21:50] technowe_: hey has anyone tried jack with node.js [21:55] JimBastard has joined the channel [21:58] felixge has joined the channel [22:08] charlenopires has joined the channel [22:18] un0mi has joined the channel [22:25] felixge: ryah: does node only check or eio callbacks on ev_idle? [22:28] steadicat has joined the channel [22:32] piranha has joined the channel [22:50] pdelgallego has joined the channel [23:01] un0mi has joined the channel [23:18] JimBastard: does anyone know what channels are being spammed? [23:23] felixge: ryah: you around? [23:23] felixge: JimBastard: why spammed? [23:33] micheil: moins all [23:35] DamZ has joined the channel [23:38] JimBastard: felixge did you see the global notice? [23:39] felixge: JimBastard: nope [23:39] JimBastard: o [23:39] un0mi has joined the channel [23:43] micheil has joined the channel [23:44] rektide has joined the channel [23:45] aho: JimBastard, i heard that ##opengl was spammed quite a lot [23:46] aho: probably happend to all rather big channels [23:46] JimBastard: must have been those directx guys again