[00:03] kodisha has joined the channel
[00:08] maushu has joined the channel
[00:10] maushu: I need to make a pull
[00:10] sechrist: mjr_: this damn tool is giving me library hell now
[00:11] mjr_: sechrist: yeah, it sucked for me too. OSX or Linux?
[00:11] sechrist: nix
[00:11] sechrist: x64 / i386 problems
[00:11] sechrist: debian
[00:12] mjr_: This is what I used to build d8
[00:12] mjr_: ../../tools/scons/scons.py -C . -Y .. d8
[00:13] mjr_: The auto-build thing in the tick-processor command wasn't happy at all
[00:13] mjr_: Oh, but this was on OSX
[00:13] mjr_: So who knows.
[00:16] tmpvar has joined the channel
[00:16] tmpvar: yo
[00:16] sechrist: tmpvar fix jsdom
[00:17] sechrist: plzz
[00:17] sechrist: if (name.match(/[^\w\d_\-&;]+/) || !name || !name.length) {
[00:17] sechrist: ^^ bleh
[00:17] tmpvar: lol
[00:17] tmpvar: to what?
[00:17] tmpvar: html5?
[00:17] sechrist: ^
[00:19] tmpvar: hrm, I'd be happy to when I know what your problem is
[00:20] sechrist: eh when I get done trying to build d8 i'll make it show the exceptions
[00:21] sechrist: I had to comment it out to parse a lot of stuff with htmlparser
[00:21] tmpvar: interesting, what do your attributes look like?
[00:22] daveyjoe has joined the channel
[00:22] maushu: Ok, how do I pull a fork?
[00:22] kodisha: anyone experiencing github problems ?
[00:23] kodisha: error: Unable to get pack file http://github.com/voidsearch/voidbase.git/objects/pack/pack-480c420d167c4fd4e61284584673d78597194418.pack
[00:23] kodisha: transfer closed with 14978590 bytes remaining to read
[00:23] tmpvar: maushu, add a remote, fetch from the remote, merge into your master, push
[00:23] kodisha: and on other server in us, it wont start
[00:23] maushu: tmpvar, that would be my remote?
[00:23] technoweenie: kodisha: file a ticket for that please. http://support.github.com
[00:24] tmpvar: maushu, http://github.com/guides/pull-requests
[00:24] maushu: tmpvar, thanks.
[00:24] cadorn has joined the channel
[00:25] sechrist: tmpvar: it was more than that -- utf8 vs iso8859 problems too I think
[00:25] sechrist: not sure if that was in attribs tho
[00:26] tmpvar: sechrist, ah, I can imagine utf8 being an issue
[00:26] technoweenie: kodisha: arey ou getting my pm's
[00:26] tmpvar: Aria has been on my case to fix this as well
[00:26] Aria: hehe. Yep.
[00:26] tmpvar: haven't settled on where to put it though, as from what I understand the dom spec doesn't really provide a mechanism for this
[00:27] sechrist: you put it where it works!
[00:27] tmpvar: well, not in level 1 lol
[00:28] sechrist: level 1 is where my exceptions are
[00:28] sechrist: hehe, do note though that for my use case
[00:29] sechrist: it's fine without the exceptions
[00:29] tmpvar: im peeking into this
[00:29] softdrink has joined the channel
[00:32] sechrist: DEBUG: metaname="hdr_img"
[00:32] sechrist: throw new core.DOMException(INVALID_CHARACTER_ERR);
[00:32] sechrist: there's one
[00:32] tmpvar: wha?
[00:32] sechrist: /var/www/.node_libraries/level1/core.js:1040
[00:32] mattly has joined the channel
[00:33] Tim_Smart has joined the channel
[00:33] sechrist: I see _ in that regex, so nfi
[00:33] tmpvar: that is for the attribute name though lol
[00:33] sechrist: tagName
[00:34] tmpvar: 1040, looks
[00:34] sechrist: may be a parsing error on htmlparser's end
[00:34] sechrist: but lol
[00:34] maushu: tmpvar, thanks, that linked helped alot. Someday I'm going to read all these guides.
[00:34] maushu: Seriously.
[00:34] tmpvar: yeah, good stuff :)
[00:35] maushu: On another news I found this: http://phonons.wordpress.com/2010/06/01/cells-a-massively-multi-agent-python-programming-game/
[00:35] maushu: How about a server version in node.js? ^_^
[00:35] tmpvar: sechrist, can you hook me up with a testcase ?
[00:35] sechrist: http://www.nytimes.com/2010/06/03/world/middleeast/03flotilla.html
[00:36] tmpvar: ah, i should have guessed
[00:36] tmpvar: :P
[00:36] tmpvar: nytimes is pretty bad.
[00:36] sechrist: harrrrrr
[00:36] sechrist: I see the markup issue
[00:36] tmpvar: ok, so how about a minimal test case ;)
[00:36] sechrist: more than one whitespace car after meta
[00:36] sechrist: rofl
[00:36] sechrist: - http://bit.ly/9uHkGi
[07:29] rnewson has joined the channel
[07:29] rnewson has joined the channel
[07:29] alexpercsi has joined the channel
[07:32] derbumi has joined the channel
[07:34] ec: mjr_: that looks pretty neat
[07:34] alexpercsi has left the channel
[07:34] ec: mjr_: (seen via ryah’s tweet)
[07:35] adulteratedjedi has joined the channel
[07:43] dridge has joined the channel
[07:46] sh1mmer has joined the channel
[07:46] sh1mmer: ryah: why use pcap natively why not just use wireshark?
[07:50] hellp has joined the channel
[07:51] TomY has joined the channel
[07:52] herbySk has joined the channel
[07:53] micheil: I think there was an issue with wireshark or something
[07:53] micheil: too much latency, not 100% sure though
[07:58] jsilver has joined the channel
[07:58] jsilver: has anyone plugged node into screen scraping stuff?
[07:58] jsilver: also, has anyone plugged node into ruby
[07:58] ryah: sh1mmer: there isn't a node interface to wireshark?
[07:58] jsilver: i want to do nokogiri-style stuff
[07:58] sh1mmer: ryah: no, but I'm trying to understand the pcap usecase
[07:58] ryah: jsilver: there's a html5 parser
[07:59] jsilver: hmm
[07:59] sh1mmer: ryah: why not just use tshark and then connect to wireshark over ssh
[07:59] ryah: sh1mmer: examining raw packets
[07:59] sh1mmer: that's what wireshark is good for
[07:59] jsilver: would it make sense to use ruby stuff from inside node, if it was done in a truly asynchronous fashion wouldnt it be acceptable?
[07:59] ryah: that's what pcap is for :)
[07:59] sh1mmer: sure, ok
[08:00] jsilver: i dont know C that well
[08:00] jsilver: is there scraping libraries as good as nokogiri for C that could possible be used by node?
[08:01] sh1mmer: so it's using node as a scripting environment to interrogate a pcap dump programmatically?
[08:02] ryah: sh1mmer: http://db.ranney.com/
[08:02] ryah: using the pcap binding
[08:03] ryah: yeah
[08:03] sh1mmer: ryah: That's cool. But wireshark already does that, as well as sequence diagrams and some other stuff
[08:03] ryah: the point is that it's integrated into a larger environment
[08:03] sh1mmer: Sorry, not trying to be objectionable I'm was just trying to figure out the use case
[08:03] sh1mmer: ryah: right
[08:04] ryah: real-time network analysis dashboards over websockets, etc
[08:04] ryah: "this is our latency on a tcp level right now: 5"
[08:04] ryah: i think mjr is going to do http introspection too
[08:04] ryah: using node's http parser
[08:05] ryah: so you could have a node daemon sitting there checking out all your http traffic reporting it
[08:05] sh1mmer: ooh
[08:05] sh1mmer: that's sexy
[08:05] sh1mmer: ok you've convinced me :)
[08:05] ryah: without actually being in the hot path
[08:06] ryah: yeah, should be super cool for dashboards
[08:07] ryah: open one browser which opens 10 websocket connections to each webhead
[08:07] ryah: aggregate all the data coming in and report it in realtime
[08:07] ryah: all without modifying the stack
[08:08] ryah: not 10 to each, but one to each. possibly 10 in total.
[08:14] SamuraiJack has joined the channel
[08:20] mape: jsilver: Jup I am doing some heavy scraping with jQuery
[08:24] saimon has joined the channel
[08:25] bmizerany has joined the channel
[08:33] ly- has joined the channel
[08:33] N` has joined the channel
[08:33] xla has joined the channel
[08:37] jsilver: mape, tyvm
[08:37] jsilver: more infos?
[08:37] jsilver: i.e. HOW?
[08:37] jsilver: lol
[08:37] morganallen has joined the channel
[08:42] xla has joined the channel
[08:46] jsilver: http://www.jaanuskase.com/en/2008/11/jquery_hammers_and_nails_and_s.html ?
[08:51] steadicat has joined the channel
[08:54] herbySk: ryah: in the case I accept many connections in a server doing non-blocking things "in parallel" and in one of the callbacks, I get a throw, do I have a machanism to know in which context in happened? Probaably not, it got only caught outside any structure by error listener, isn't it?
[09:02] halorgium: herbySk: you should catch it within the scope of the connection
[09:03] jsilver: ryah = the new DHH
[09:03] SteveDekorte has joined the channel
[09:05] ditesh|cassini has joined the channel
[09:06] jsilver: does joyent even do ruby any more
[09:08] mape: jsilver: It is very dirty, uses jsDom and jQuer
[09:09] mape: *y
[09:09] mape: but the html parser won't handle it so I have to pipe it through curl/tidy hyml
[09:09] mikeal has joined the channel
[09:09] jsilver: tyty
[09:09] jsilver: oo
[09:09] jsilver: ty
[09:09] mape: but I think Aria has a better parser working
[09:09] jsilver: kk
[09:09] jsilver: gj
[09:10] creationix has joined the channel
[09:12] jsilver: whats smartplatform
[09:12] jsilver: is it any good
[09:12] jsilver: joyent doesnt even talk about ruby on their site anymore
[09:13] voxpelli-laptop has joined the channel
[09:22] bmizerany has joined the channel
[09:24] MattJ has joined the channel
[09:28] rnewson has joined the channel
[09:28] rnewson has joined the channel
[09:28] fdmanana has joined the channel
[09:35] ph^ has joined the channel
[09:40] herbySk: halorgium: it is impossible to catch it unless every callback (in every callback there _can_ be a throw) will be enclosed in try/catch. Am I wrong?
[09:41] ewdafa has joined the channel
[09:43] Nohryb has joined the channel
[09:46] joshbuddy has joined the channel
[09:49] admc has joined the channel
[10:02] niklasfi has joined the channel
[10:02] Ori_P has joined the channel
[10:11] rnewson has joined the channel
[10:25] SvenDowideit_ has joined the channel
[10:30] SvenDowideit_ has joined the channel
[10:30] rolfb has joined the channel
[10:36] SvenDowideit has joined the channel
[10:39] creationix has joined the channel
[10:39] hellp has joined the channel
[10:42] dkastner has joined the channel
[10:43] SvenDowideit_ has joined the channel
[11:07] sveimac has joined the channel
[11:09] tisba has joined the channel
[11:22] robinduckett has joined the channel
[11:23] kodisha has joined the channel
[11:29] fermion has joined the channel
[11:31] phiggins has joined the channel
[11:34] spoob has joined the channel
[11:42] andrewhampton has joined the channel
[11:50] Nohryb has joined the channel
[11:52] spoob_ has joined the channel
[11:55] kodisha has joined the channel
[12:05] kriszyp has joined the channel
[12:06] johanhil has left the channel
[12:09] dji has joined the channel
[12:11] voxpelli-laptop has joined the channel
[12:13] bradleymeck has joined the channel
[12:17] rictic has joined the channel
[12:22] dji has joined the channel
[12:27] technoweenie has joined the channel
[12:30] mAritz has joined the channel
[12:30] rnewson has joined the channel
[12:30] rnewson has joined the channel
[12:34] Psytherium has joined the channel
[12:36] Ori_P_ has joined the channel
[12:44] BBBB has joined the channel
[12:44] derbumi_ has joined the channel
[12:47] derbumi__ has joined the channel
[12:51] derbumi_ has joined the channel
[12:52] derbumi__ has joined the channel
[13:02] gene_ has joined the channel
[13:02] gene_: hey!
[13:03] gene_: anyone around?
[13:03] kodisha has joined the channel
[13:03] gene_: ?
[13:03] adulteratedjedi: ish, in and out
[13:04] gene_: i got a quick node q
[13:04] bradleymeck: mmmm /flop
[13:04] drudge: what up adulteratedjedi
[13:04] gene_: how difficult is it to create multiple chat rooms that work on one node server
[13:05] adulteratedjedi: now then drudge, not alot. Still waiting for you to push that node code at me to look at LOL
[13:05] bradleymeck: depends on how you make the chatrooms? no more than any number of chatrooms if done right
[13:06] drudge: damn it i forgot again ha, remind me tonight when i'm home
[13:06] gene_: the chat rooms would not be dynamically created
[13:06] adulteratedjedi: lol
[13:06] gene_: i am not sure how to go about doing it yet i was just wondering if it were possible
[13:06] bradleymeck: yes, its possible
[13:07] davidsklar has joined the channel
[13:13] kodisha has joined the channel
[13:15] bigwavejake has joined the channel
[13:16] maushu has joined the channel
[13:17] bigwavejake: i'm trying to download a large rss feed using httpClient. I can get the page, but it calls the response event multiple times. I'm just doing a page_str += chunk to get it all, but how do I know when it's safe to use the page_str?
[13:19] maushu: end?
[13:20] bigwavejake: ah
[13:20] maushu: You receive data multiple times and then end when the response ends.
[13:21] rauchg has joined the channel
[13:22] jherdman has joined the channel
[13:27] kodisha has joined the channel
[13:28] bigwavejake: maushu, i'm sorry, but i still don't get it. i open a request, add an event for response where i append data, then add an event to end to return that data?
[13:28] maushu: No, no no.
[13:29] maushu: Create a request, then add a listener to that request for 'response' then inside that event add a listener to 'data' and 'end'.
[13:29] bigwavejake: could you show me a small example? (there's an example of getting google's homepage in the node.js docs if you just want to modify that)
[13:31] maushu: http://nodejs.org/api.html#http-clientrequest-182
[13:31] maushu: Wait, that doesn't show everything.
[13:32] bigwavejake: maushu, it's ok... i think i get it now
[13:32] pjb3 has joined the channel
[13:32] bigwavejake: but let's say i'm doing all that within a function. how would i return the completed data?
[13:33] maushu: bigwavejake, http://gist.github.com/423887
[13:34] maushu: You need to use a callback.
[13:34] maushu: Wait a sec.
[13:36] maushu: bigwavejake, http://gist.github.com/423887
[13:37] maushu: You would also need to add a callback to the error event and so on.
[13:38] texodus has joined the channel
[13:38] bigwavejake: that's much clearer!
[13:38] bigwavejake: thanks!
[13:38] bigwavejake: and if i wanted to put all the returned data into an array? just pass a reference all the way down to the callback and append it there?
[13:41] maushu: ...wat?
[13:41] bigwavejake: ha
[13:41] maushu: "all the returned data"?
[13:41] bigwavejake: let's say i'm trying to get many different web pages, like a web crawler, and wanted all the data in an array
[13:43] maushu: Oh.
[13:43] skampler: bigwavejake: you don't return data with callbacks
[13:43] skampler: bigwavejake: you just modify it
[13:44] rauchg: node-google?
[13:44] bigwavejake: skampler, how would i do it then? i still need to call a callback at end to make sure i get all the data
[13:46] bigwavejake: sorry for all the naive questions. i'm new to javascript and evented i/o.
[13:52] Ori_P has joined the channel
[13:52] skampler: ok, you don't need to pass a reference if you're using the function()-as-argument construct
[13:52] skampler: which is common with node
[13:53] BBBB has joined the channel
[13:53] knarfd has joined the channel
[13:53] bigwavejake: skampler, how would i do it?
[13:54] skampler: experiment and you shall know :P
[13:55] skampler: there's a lot of examples on github
[13:55] bigwavejake: one last question, if i wanted to download a lot of web pages at the same time, how would i do it in parallel?
[13:56] knarfd: hi guy. Ilooking for a way to have my node.js app running with a REPL and call methods through it. I loaded node-repl and started it on stdin but I can't call a method like "node via stdin> test(); ". How can I do s.th. like that?
[13:56] BBBB has joined the channel
[13:58] dji: Hi. Does anyone know how I change the listenport in expressjs?
[13:58] skampler: bigwavejake: by creating many http.Client's
[13:58] bigwavejake: skampler, ok, thanks!
[13:59] K`` has joined the channel
[13:59] derbumi has joined the channel
[14:00] bigwavejake: thanks skampler and maushu for all your help!
[14:01] kodisha has joined the channel
[14:02] sprsquish has joined the channel
[14:04] gf3 has joined the channel
[14:04] skampler: oh np
[14:06] Psytherium has joined the channel
[14:09] TomY has joined the channel
[14:14] Aikar: hmm, node.js is really interesting me. trying to get my boss to let me rewrite what im working on in node.js from php lol
[14:14] knarfd: found out: it's repl.start("node> ").scope.m = m; => m.test(); in repl
[14:15] knarfd has left the channel
[14:22] kriszyp_ has joined the channel
[14:23] maushu: Aikar, node.js might not be "production ready" enough.
[14:23] rsterner has joined the channel
[14:24] Ori_P has joined the channel
[14:26] bradleymeck_ has joined the channel
[14:28] Aikar: maushu: thankfully were not strict about that kind of stuff in my group. are you saying its still got its problems or were you meaning he may not want to due to that?
[14:28] maushu: I mean a stable api.
[14:28] maushu: It might break your code in the next versions.
[14:28] rauchg: Aikar: i'd wait for 0.2 to start anything semi-serious
[14:29] rauchg: which is around the corner
[14:29] Aikar: nic
[14:29] Aikar: e
[14:29] maushu: Nah, after ryah reaches 0.1.99 he will jump to 0.1.100
[14:29] rauchg: hahahah
[14:30] rauchg: 0.1.∞
[14:30] gf3: NO U
[14:30] maushu: ACTION pokes gf3 in the eye.
[14:33] rauchg: later guys
[14:33] rauchg has left the channel
[14:33] Ori_P has joined the channel
[14:38] Dennus has joined the channel
[14:40] micheil: hmm.. I love replying extremely late to a thread >_>
[14:40] stagas has joined the channel
[14:42] Ori_P has joined the channel
[14:43] Nohryb has joined the channel
[14:45] maushu: micheil, you... you... necromancer!
[14:45] mape: micheil: new specs for websockets? :)
[14:45] micheil: first question: wtf is a necromancer?
[14:45] micheil: mape: eh?
[14:45] micheil: no, the thread from may on the node mailing list on package managers
[14:45] maushu: "Necromancy (pronounced /ˈnɛkrɵmænsi/; Greek νεκρομαντεία nekromantía, via Latin necromantia) is a form of magic in which the practitioner seeks to summon the spirit of a deceased person, either as an apparition or ghost, or to raise them bodily, for the purpose of divination."
[14:46] rolfb: a raiser of the deaaad
[14:46] Aikar: i just saw that too mape
[14:46] mape: micheil: http://blog.chromium.org/2010/06/websocket-protocol-updated.html ?
[14:46] Aikar: however im confused
[14:46] micheil: I actually took notes on it during the activity of the thread, but forgot to send them
[14:46] kriszyp_ has joined the channel
[14:46] Aikar: i downloaded chromium and webkit nightly about a week ago and the new security handshake stuff was in it
[14:46] micheil: this, kiddies, is where websockets becomes non-simple to implement.
[14:46] Aikar: then i see that post and it says "relaxed the handshake"
[14:46] maushu: micheil, raising dead threads! You evil desnaturated bastard!
[14:46] Aikar: but the new stuff is def not relaxed lol
[14:46] TomY_ has joined the channel
[14:46] msassak has joined the channel
[14:47] Aikar: i still cant figure it out and get it working 100% in PHP, i have it work SOMETIMES
[14:47] Aikar: spam refresh to connect!
[14:48] micheil: mape: tbh, I knew chromium had support already, I stumbled across it in the code.. :D
[14:48] mape: hehe k
[14:48] Aikar: http://codepad.org/gLEFpKk5 i dunno what im doing wrong, im following the spec exactly as it says
[14:48] micheil: mape: however, it's good to know it's now official
[14:49] micheil: Aikar: ARHG!
[14:49] Aikar: lol
[14:49] micheil: Aikar: dude.. that's php.. here I was looking forward to some lovely javascript
[14:49] Aikar: i know, but you brought up the new websocket handshake so i mentioned it :P
[14:50] micheil: no.. announcer?
[14:51] Aikar: announcer?
[14:51] micheil: Aikar: why would you even think of websockets in.. php, it's hardly suited to it.
[14:52] micheil: Aikar: it streamed twitter messages into the channel, based on a node hashtag
[14:52] Aikar: im just deving server in php for now, quick and easy since PHP is my main language. when its fine and done ill rewrite it in C++ most likely
[14:53] mape: PHP is just a pain for pretty much anything that isn't general serve data thingy
[14:53] Aikar: heh not if you already have the utilities written and knowledge on how to do more things than web with it
[14:54] ph^ has joined the channel
[14:54] micheil: Aikar: I'm beginning to consider php an ugly hack, something that was good for basic dynamic stuff, but is now hardly a language to move forward with
[14:54] Aikar: sure the time ive spent writing the libraries i use coulda been quicker in other langs, but it was fun and its done now
[14:54] Aikar: i wouldnt really say that, PHP has gotten some nice improvements lately to its syntax
[14:54] mape: Aikar: so how do you scale comet with php?
[14:55] mape: Or say fetch stuff in parallel from APIs
[14:55] Aikar: curl
[14:55] Aikar: supports parelled requests
[14:55] Aikar: paralleled*
[14:56] javajunky has joined the channel
[14:56] micheil: Aikar: to put fair, when I started web development, php was the first platform I learnt, but was turned off it about the same time I began hating wordpress.
[14:56] Aikar: well i dont blame you for hating PHP if you started with wordpress.... lol
[14:56] Aikar: i hate wordpress
[14:57] micheil: I can't see what's good about it. It blocked me from writing content.. admittedly, I now use jekyll, and publish via static files
[14:57] Aikar: to be honest, a majority of PHP devs/PHP code is horrible. but that doesnt mean the language itself is bad. send all the crappy devs from PHP to another lang and then that lang would look bad
[14:57] javajunky: oooo node.js protocol buffers ..nice.
[14:57] Aikar: cant really blame the language for what people do with it
[14:58] Aikar: wordpresses code is horrible btw
[14:58] micheil: Aikar: it's a very bloated language.. I think there was one count of something like 3000 builtin functions
[14:58] javajunky: Aikar: oh you *can* blame a language, definitely ;) it may not be reasonable or fair, but you can definitely do it :)
[14:58] mape: micheil: And they all are named correctly...
[14:59] Aikar: function count under proper implementation shouldnt slow down a language, so really if done right more is better.
[14:59] Aikar: its better to have built in functions that are coded in C for speed than interpreted implementations
[14:59] micheil: Aikar: although, really, half the stuff should be optional modules (this is what draws me to node & ruby)
[15:00] tjholowaychuk has joined the channel
[15:00] Aikar: heh alot are on by default, but you can turn alot off
[15:02] micheil: I hate it when you see a job, that's right up there with the stuff you love learning about & doing, but you can't apply for it, due to other commitments
[15:02] ly- has joined the channel
[15:03] bpot has joined the channel
[15:04] pgriess has joined the channel
[15:04] mape: God damit textmate, stop clipping my files in half just because they are mounted through a network :(
[15:05] nefD: so php sucks because it has 3000 built in functions?
[15:05] micheil: nefD: of course.
[15:05] nefD: i guess its a shame theres so many jobs for php developers then, eh? ;)
[15:06] micheil: nefD: actually, no, that wasn't my main reason.
[15:06] mape: nefD: So I guess IE is better then as well? :D
[15:06] micheil: nefD: I just don't think it's suited for the web today, yes, a lot of people use it, but I'm not a lot of people.
[15:06] nefD: well, apples to oranges.. IE isnt a programming language
[15:06] maushu: It's EVIL.
[15:06] mape: So what does the amount of jobs for a langauge have to do with how good the language is?
[15:07] nefD: c++ is kind of a shitty language (talk about poor design..) but it persists
[15:07] nefD: let the flaming commence!
[15:08] Aikar: i really do not understand why people think C++ is bad but C is good, please explain
[15:08] nefD: c is just as bad
[15:08] nefD: so I guess i'd like an explanation as well! :D
[15:08] mape: Its fast?
[15:08] javajunky: same reasons as why some people think that god A is bad and god B is good s'all a matter of personal taste.
[15:08] tjholowaychuk: C is so much easier to learn, c++ is a huge clustefuck (I love some of the design though)
[15:09] mape: tjholowaychuk: http://npm.mape.me/ less of a mess?
[15:09] tjholowaychuk: mape: ah :) much better!
[15:09] nefD: if a better solution than php comes along, it will become popular and php will be replaced
[15:09] Aikar: i tried to work in C once before, (note: I've done some decent work in C++ and a main dev on a fairly large app), and it really just seemed harder, more strict.
[15:09] nefD: but it hasnt happened yet..
[15:09] javajunky: C++ is fine, but I wouldn't choose to use it over something that managed memory nicely or supported just in time compilation unless I had to ;) .. C is also fine, horses for courses ;) … multiple inheritance was never gonna be a good idea though
[15:10] MattJ has joined the channel
[15:10] dji: and then there is obj-c
[15:10] K``: RAMIREZ, START THE DEAD HORSE BEATING!
[15:10] tjholowaychuk: ew php lol
[15:10] tjholowaychuk: hopefully never have to touch it again
[15:11] javajunky: …and the circle is complete ...
[15:11] Aikar: heh i guess im just too much of an elitist, pointers are simple as pie to understand to me and memory isnt hard to control either. sure you can forget to clear up memory and cause leaks but its not the languages fault you did :3. and can always use boost::shared_ptr everywhere in your code then you dont have to worry about it
[15:11] pjb3_ has joined the channel
[15:11] jbrantly has joined the channel
[15:11] Aikar: if you use boost::shared_ptr then you wont leak :)
[15:11] K``: or use Cyclone.
[15:11] K``: (for C)
[15:12] javajunky: Aikar: uhhuh i'm sure thats fine until you're working in a large team on a distributed application using CORBA, trust me a language which *cannot* leak will always have my vote against one that could when the junior on the team mistakes what the reference he's been handed is to.
[15:13] pjb3_ has joined the channel
[15:14] jherdman has joined the channel
[15:14] Aikar: heh i guess i can see your point there for choice of language, but i wouldnt use that to condemn a language
[15:15] mape: Aikar: Isn't it more a matter of my dad being stronger then your dad?
[15:15] richcollins has joined the channel
[15:17] bradleymeck_: choice of language should always result in P′′....
[15:18] maushu: Pi�
[15:19] bradleymeck_: oi no unicode you hippy, lol ... im just jealous
[15:19] Nohryb has joined the channel
[15:22] maushu: ヾ(´・ω・`)
[15:22] derbumi has joined the channel
[15:23] steadicat has joined the channel
[15:24] polotek has joined the channel
[15:32] mattly has joined the channel
[15:35] bradleymeck_: anyone have a clue how to implement Object.seal/freeze ? either addon or module
[15:36] polotek: bradleymeck: freeze just means you can't add new properties right?
[15:36] sanderjd has joined the channel
[15:36] polotek: so you could just have an interceptor that throws an exception on new property names
[15:37] bradleymeck_: kinda, but i cant add interceptors after the instance is made
[15:38] polotek: ah
[15:38] polotek: "Freezing an object is nearly identical to sealing it but with the addition of making the properties un-editable."
[15:38] polotek: so seal means no new properties
[15:38] polotek: freeze means no changing existing either
[15:39] polotek: bradleymeck: did you see the video I added to the node-overload thread?
[15:39] polotek: it has lots of good info about how they are implemented
[15:39] polotek: essentially to do something like freeze/seal you would pass the object into a function that wraps it in a proxy
[15:39] bradleymeck_: mmm, nope. I can remake them easy js side but they wont affect anything that isnt a specific kind of v8::Object
[15:39] polotek: the proxy would be frozen sealed and all of it's properties would just delegate to the original internal object
[15:40] bradleymeck_: although in the spec the freeze/seal doesnt form a proxy :/
[15:40] polotek: you would lose === comparison
[15:40] polotek: not sure what other side effects there are
[15:40] behmann has joined the channel
[15:40] bradleymeck_: nah, we can fake the === comparison from c++ side i found
[15:40] polotek: yeah, it would be one of the trade-offs for a non-native implementation
[15:41] polotek: ah, nice
[15:44] polotek: well node supports changing property descriptors, it's an es5 feature so it wouldn't go into the browser, but that takes you part of the way.
[15:44] polotek: you would still need to wrap it to prevent new properties
[15:45] polotek: http://ejohn.org/blog/ecmascript-5-objects-and-properties/#js-13
[15:46] andrewhampton has joined the channel
[15:49] JimBastard has joined the channel
[15:49] stalled has joined the channel
[15:52] nsm has joined the channel
[15:55] technoweenie has joined the channel
[15:56] softdrink has joined the channel
[15:57] bpot has joined the channel
[15:58] ajpiano has joined the channel
[15:58] andrewhampton1 has joined the channel
[15:58] polotek has left the channel
[15:59] pjb3_ has joined the channel
[15:59] pjb3 has joined the channel
[16:08] kevwil has joined the channel
[16:17] morganallen has joined the channel
[16:18] Determinist has joined the channel
[16:19] Determinist: you guys probably hear this a lot, but what's the status on node.js <-> mysql/pgsql?
[16:20] mape: ok?
[16:20] Determinist: hm?
[16:20] mjr_: mape: that npm site looks awesome
[16:20] mape: It is ok I guess
[16:20] mjr_: well, compared to a JSON dump, it is the best thing ever.
[16:20] mape: What would you think should be the issue?
[16:20] mape: mjr_: hehe
[16:21] mjr_: I do like it though. It looks really pro.
[16:21] mape: Lucky me I'm competing with text
[16:21] o_o has joined the channel
[16:23] mattly has joined the channel
[16:29] riq has joined the channel
[16:31] softdrink: *sigh* there has to be a better way to do cross-browser testing in linux.
[16:32] mape: softdrink: Use Windows and live like a real king? ;)
[16:32] softdrink: lol
[16:32] softdrink: i'd rather set myself on fire :)
[16:32] tjholowaychuk: softdrink: ditto
[16:37] tjholowaychuk: ah snap! childProcess already has timeout, dope
[16:38] gwoo: mape that looks awesome
[16:38] Dennus has joined the channel
[16:39] mape: :)
[16:39] siculars has joined the channel
[16:39] Yuffster has joined the channel
[16:39] mape: Now we just need more modules in npm :)
[16:40] liucougar has joined the channel
[16:41] tjholowaychuk: i would push some if it worked :(
[16:43] tjholowaychuk: does childProcess.exec's timeout option actually work? seems like it does not .. :(
[16:43] tjholowaychuk: wait wtf..
[16:44] ly- has joined the channel
[16:44] ly- has joined the channel
[16:45] tjholowaychuk: seems like it works when it's set really low :S
[16:46] pjb3 has joined the channel
[16:47] hammerdr has joined the channel
[16:51] qFox has joined the channel
[16:58] mjr__ has joined the channel
[16:58] mattly has joined the channel
[16:59] cadorn has joined the channel
[17:01] ryah: mjr_: are you going to OS your http introspection pcap thing?
[17:01] ryah: because that's going to be awesome.
[17:03] mjr_: yeah
[17:04] mjr_: I had it working in older versions of node using python + pcap
[17:04] mjr_: I'll wire that back up soon.
[17:04] mape: ryah: Did you get into a fight last night or did he buy you a beer?
[17:05] ryah: a little from column A, a little from column B :)
[17:05] mjr_: strikes and gutters
[17:06] softdrink: "First a-one, then the other." -- Futurama
[17:06] CIA-77: node: 03Felix Geisendörfer 07master * r55e964e 10/ lib/fs.js :
[17:06] CIA-77: node: Fix: fs.readFile would execute callbacks twice
[17:06] CIA-77: node: fs.readFile was executing a callback in a try..catch context, which is
[17:06] CIA-77: node: a problem in itself. To make matters worse, it would re-execute the
[17:06] CIA-77: node: same callback if there was an execution.
[17:06] CIA-77: node: This patch fixes both of these problems. - http://bit.ly/btTqIG
[17:06] mjr_: ryah: did you look at the code for the server running on db.ranney.com?
[17:06] CIA-77: node: 03Felix Geisendörfer 07master * r987cbe3 10/ lib/module.js : (log message trimmed)
[17:06] CIA-77: node: Fix: require.async module exception delegation
[17:06] CIA-77: node: The fs.readFile bug was hiding another bug that was causing this test
[17:06] CIA-77: node: to pass, even so it was broken:
[17:06] CIA-77: node: require.async("../fixtures/throws_error1") in test-module-loading.js
[17:06] CIA-77: node: This patch fixes the original test by running _compile within a
[17:06] CIA-77: node: try..catch block for _loadScript.
[17:06] mape: there we go
[17:06] mape: ryah: So anything changing or just good times? ;)
[17:06] mjr_: It's really neat how you can both be an http server at the high level and decode the low level implementation of that, all in the same event loop.
[17:07] stephenlb has joined the channel
[17:09] brainproxy: hey stephenlb, I'm the crazy dude you're talking to on github :)
[17:09] JimBastard has joined the channel
[17:09] stephenlb: micheil: hey
[17:10] stephenlb: brainproxy: hey
[17:10] micheil: howdy'
[17:10] micheil: (not that I recognise your name.. am I meant to?)
[17:10] micheil: ACTION is bad with names
[17:11] stephenlb: micheil: np
[17:11] derbumi_ has joined the channel
[17:11] stephenlb: brainproxy: building with 0.1.97 and making some updates.
[17:11] brainproxy: stephenlb: I agree it seems like something else should be causing this problem, as my environment i my VM on my local xenserver is the same as on my VPSs
[17:11] brainproxy: *on my VM
[17:12] brainproxy: but there could be some slight difference I'm not cathing or that's not obvious
[17:12] stephenlb: brainproxy: possibly
[17:12] brainproxy: certainly the app code is the same as I'm just git cloning it
[17:12] brainproxy: nvm is the same, etc.
[17:13] micheil: let's see.. will this version build on mac os x..
[17:13] gwoo: ...
[17:13] micheil: one of the previous heads in ~>0.1.97 didn't.
[17:14] micheil: and I'm going to be absolutely screwed in the morning when I have to get up by 7 or 8am.. and it's 3am now.
[17:14] mindeavor has joined the channel
[17:14] stephenlb: brainproxy: one of the things to be careful of is 'Content-Encoding: gzip' which tends to not work with nodejuice. that may be a cause.
[17:14] sechrist__ has joined the channel
[17:15] brainproxy: well I've just got sidekick running beside anoter node.js instance that's acting as the webserver; maybe that's dumb, but it was an easy way for me to get the push refreshes for my app development
[17:15] b_erb has joined the channel
[17:16] shajith has joined the channel
[17:16] dabreaka has joined the channel
[17:16] ryah: mjr_: i did not look at the code
[17:16] ryah: mjr_: did you send it to me
[17:16] stephenlb: brainproxy: cool. that will work okay.
[17:16] stephenlb: brainproxy: or should :-/
[17:17] dabreaka: hey, i'm trying to implement delayed responses (setTimeout callback after 5 minutes for example), but it looks like the connection is closed after 2:00 minutes
[17:17] brainproxy: I could live without it working out in the cloud; but I'm at a point where I need to demo to folks outside the local net, and it's oh so nice to be able to push adjustments out w/o them having to refresh manually
[17:17] tjholowaychuk: dabreaka: AFAIK browsers implement their own timeout
[17:18] hammerdr has joined the channel
[17:18] ryah: mape: i think steve understands my position now. and i have a new understanding of coroutines - which i won't try to explain yet
[17:18] micheil: wooo it built!
[17:18] tjholowaychuk: maybe not all, i found that with FF at least
[17:18] micheil: ryah: seems the issue with a HEAD version of node building on os x has been fixed.
[17:18] dabreaka: tjholowaychuk, i tried using CURL too.. it works fine with apache+php (sleep(150) + echo)
[17:18] stephenlb: brainproxy: for sure! i do this all the time at work with my team.
[17:18] ryah: mape: but in a sentance: coroutines are okay if you don't have callbacks
[17:18] ryah: maybe
[17:18] dabreaka: here's what happens after 2 minutes of waiting: "curl: (52) Empty reply from server"
[17:18] drudge: tjholowaychuk: using javascript you should be able to prevent browser timeout, the webserver has a timeout tho
[17:19] brainproxy: okay grabbing lunch, bbl and ill try the updates you push out later today stephenlb
[17:19] ryah: micheil: the build was broken yesterday, yes
[17:19] micheil: ryah: if you're not on a half-way commit.. you may want to push a new release, as a patch to 0.1.97, which doesn't compile properly on os x..
[17:19] dabreaka: it's some sort of idle timeout.. if i setup a timer to push something to the client from time to time, the request can survive more than 2 minutes
[17:19] micheil: (I think I traced back to 0.1.97)
[17:20] JimBastard: hrmm
[17:20] ryah: 0.1.97 compiles on osx
[17:20] micheil: dabreaka: use keepalive and setTimeout on the request
[17:20] mape: ryah: learning new things are always a good thing, especially over beer
[17:20] micheil: ryah: testing.. I'm sure it broke yesterday
[17:20] mape: is or are, are proble wrong
[17:20] dabreaka: micheil, i tried with: "request.connection.setKeepAlive(true, 180000);"
[17:20] dabreaka: but it still lasted only 120 seconds
[17:20] micheil: (rather, it broke yesterday when I was building 0.1.97)
[17:21] micheil: server.setTimeout(0) // never timeout
[17:21] ryah: micheil: okay - but use the tarbal- just to be sure
[17:21] micheil: yeah.. just checking from git checkout v0.1.97
[17:22] micheil: both myself and the person who initially reported the issue were using from git clone
[17:22] ryah: dabreaka: req.connection.setTimeout(0); will disable it
[17:22] ryah: dabreaka: setKeepAlive is tcp-level timeouts
[17:22] micheil: ryah: okay, 0.1.97 does build okay
[17:22] drudge: ryah: i had issues with 0.1.97 compiling with ssl, was looking at the ssl static libs in /opt which weren't 64-bit
[17:22] micheil: we must of had the issue due to the errors yesterday
[17:22] dabreaka: thanks ryah.. testing now
[17:22] ryah: drudge: yeah - that seems to be a problem for many people
[17:23] ryah: drudge: reinstalling openssl helps
[17:23] drudge: yeah i fixed it, wasn't sure if that is what he was getting at
[17:24] __sebs has joined the channel
[17:24] ryah: 200 users!
[17:24] drudge: nice
[17:25] mape: ryah: how many releases/API changes do you think it will be untill 0.2.0 is out?
[17:25] ryah: maushu: what happened to announcer?
[17:25] maushu: Wat?!
[17:25] ryah: maushu: it's close - a few weeks
[17:25] maushu: NOOOOOOOOOOOOOOOOOOOOOOOOooooooooooooooooooooooooo
[17:25] ryah: er
[17:25] ryah: mape: it's close - a few weeks
[17:26] ryah: API changes - none if i can help it
[17:26] mape: ACTION pushes maushu of the ledge to regain the m-tab position
[17:26] mape: neat
[17:26] micheil: ryah: I think I'll contribute node_os.cc after 0.2.00
[17:26] micheil: as it introduces api.
[17:26] maushu: TypeError: Cannot read property '0' of undefined
[17:26] jackyyll: 200. nice.
[17:26] DennusB has joined the channel
[17:27] drudge: does anyone know if the mongoose dev hangs out here?
[17:27] micheil: ryah: also, 200 here, ~2000 watchers on github, and 191 forks on github.
[17:27] ph^: anyone experienced that nginx is giving a 502 bad gateway when proxying to node after exactly 2 minutes?
[17:28] dabreaka: ryah, weird.. it's still closing the connection after 2 minutes
[17:28] richcollins has joined the channel
[17:28] mape: ph^: timeout?
[17:28] ryah: micheil: and 1500 pmailing list people
[17:28] micheil: nice stats.
[17:28] ph^: mape: I thought so too first, but I've set timeout to 1 hour with the same results
[17:28] mape: Hmm k
[17:29] mape: ph^: Assume you reloaded the conf? :D
[17:29] micheil: ryah: any ideas about code balance?
[17:29] ph^: yes
[17:29] micheil: actually, GH graphs
[17:29] ph^: mape: 2010/06/03 19:25:45 [error] 67588#0: *217 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1
[17:29] maushu: Stack Overflow: My name is Inigo Maushu. You killed my bot. Prepare to die!
[17:29] ph^: make it sound like node is doing something
[17:29] ph^: makes*
[17:30] JAAulde has joined the channel
[17:30] _announcer has joined the channel
[17:30] maushu: !so-last
[17:30] _announcer: Last Question: "Is there a Thrift or Cassandra client for Node.js/JavaScript" by Toby Hede. http://stackoverflow.com/questions/2947470
[17:31] mape: ph^: I suck at nginx but made sure there aren't more then 1 type of timeouts to config?
[17:31] stagas: maushu: why did it crash
[17:32] ryah: dabreaka: hmm strange
[17:33] technowe_ has joined the channel
[17:33] maushu: stagas, stack overflow returned something weird.
[17:33] maushu: I really need to log everything.
[17:33] robrighter has joined the channel
[17:34] pgriess has joined the channel
[17:35] JAAulde: $( 'input[name="direction"]' ).cookify()
[17:35] JAAulde: errrm
[17:35] JAAulde: sorry
[17:36] JAAulde: ACTION failz at using a windowed interface
[17:37] __sebs: is it just me beeing blind++ or is tehre no way to deploy a own kiwi repo?
[17:37] dabreaka: ryah, here's some code to reproduce it: http://pastie.org/private/uvkiomfj4kpoo5n87llqra
[17:38] tjholowaychuk: __sebs: you can if you really want to
[17:38] tjholowaychuk: __sebs: the server is packaged with kiwi
[17:38] __sebs: ah ;)
[17:38] __sebs: very good
[17:39] liucougar has joined the channel
[17:41] bradleymeck_: !help
[17:41] bradleymeck_: awww
[17:43] Sembiance: :)
[17:43] _announcer: Twitter: "@ciaran_j oohh.. bad call. And no, I definitely didn't consider php. It was either node.js or rails3."-- Micheil Smith. http://twitter.com/miksago/status/15341057756
[17:44] pjb3_ has joined the channel
[17:47] pjb3 has joined the channel
[17:48] _announcer: Twitter: "@ Kurokikaze about data warehousing - and why on transport for mysql # nodejs not write?" [ru]-- ramainen. http://twitter.com/ramainen/status/15341384395
[17:49] blowery_zzz has joined the channel
[17:50] ryah: dabreaka: thanks
[17:50] dabreaka: ryah, can you reproduce it?
[17:50] ryah: yes
[17:50] dabreaka: any idea what might be wrong?
[17:51] admc has joined the channel
[17:52] brainproxy: stephenlb: updates applied; works great luckily, still not out on any of my VPSs; the "bomb" seems to happen as the refresh/download of the script files indicated in the page's head start to get pulled down; I have five or six different .js files I'm pulling down
[17:52] brainproxy: as part of the page
[17:52] brainproxy: work great *locally
[17:52] brainproxy: spell check ;)
[17:53] brainproxy: I'll try commenting those out, see if it makes a difference
[17:54] stephenlb: brainproxy: sounds good.
[17:54] gbot2 has joined the channel
[17:55] brainproxy: nope
[17:56] stephenlb: brainproxy: : /
[17:56] JimBastard: http://i.imgur.com/3JOJo.jpg
[17:57] Aikar: does require reload said file every time its called? ie if i was to create a daemon that supports reloadable modules, is it doable?
[17:57] Aikar: ie var x = require('foo'); // change code of foo, x = require('foo');
[17:57] stephenlb: brainproxy: try throwing a try/catch around line 45 on line 45 in ./nodejuice/servers/sidekick.js
[17:59] stephenlb: brainproxy: or add this somewhere: process.addListener( "unhandledException", function(msg) { inform(msg) } );
[17:59] indiefan has joined the channel
[17:59] brainproxy: inside sidekick.js?
[18:00] stephenlb: actually that'd be a good adittion. i'll add that. (yes inside sidekick.js)
[18:01] kevwil has joined the channel
[18:02] stephenlb: brainproxy: i pushed the global exception handeler update to github just now. hopefully it'll give more insight!
[18:02] CIA-77: node: 03Ryan Dahl 07master * r62d9bff 10/ lib/net.js : Fix ability to disable TCP timeouts with setTimeout(0) - http://bit.ly/clVFNw
[18:02] ryah: dabreaka: --^
[18:03] dabreaka: ryah, great ;) i'll try it
[18:03] stephenlb: ryah: sweet! this means TCP sockets won't close after x seconds when i use .setTimeout(0) ?
[18:03] brainproxy: stephenlb: still getting "throw new Error("This type of response MUST NOT have a body.");"
[18:05] stephenlb: brainproxy: maybe these are HEAD requests and they are causing wonkiness. i'll test with wget
[18:05] stevendavie has joined the channel
[18:05] JimBastard: test with http-console! ;-0
[18:08] pdelgallego has joined the channel
[18:08] dridge has joined the channel
[18:08] stephenlb: brainproxy: can't reproduce :(
[18:10] vnguyen has joined the channel
[18:10] blowery_zzz has joined the channel
[18:11] rictic has joined the channel
[18:11] brainproxy: stephenlb: alright, perhaps it's not nodejuice's fault; maybe it's the way express is serving up the http
[18:11] stephenlb: brainproxy: what's express?
[18:11] ryah: stephenlb: yes
[18:11] brainproxy: but it's strange that it works flawlessly locally and not on a remote vm
[18:11] brainproxy: http://github.com/visionmedia/express
[18:12] brainproxy: it's a sinatra like router
[18:12] brainproxy: for node.js
[18:12] stephenlb: JimBastard: http-console++
[18:12] JimBastard: hee hee
[18:13] JimBastard: cloudhead write's solid stuff
[18:13] JimBastard: we were just joking how much attention its getting
[18:13] JimBastard: considering how much work he puts into his other projects lol
[18:13] sechrist: Is there a nodejs oauth solution yet?
[18:13] tjholowaychuk: im perfectly happy with curl :s
[18:13] sechrist: considering twitter is cutting off basic auth this month
[18:13] JimBastard: seriously though, cloudhead's github has some of the best node projects out right now, IMO
[18:13] stephenlb: brainproxy: i'll look into express, sounds neat.
[18:13] JimBastard: http://github.com/cloudhead
[18:13] pdelgallego has joined the channel
[18:14] sechrist: "a high-level, caching, CouchDB library for Node.js"
[18:14] sechrist: I already like this guy
[18:14] JimBastard: hes usually in the IRC room too
[18:14] JimBastard: we've been collaborating a bit on some stuff, really sharp dude
[18:14] JimBastard: :-)
[18:15] brainproxy: is anyone else here a joose user/fan ?
[18:15] brainproxy: I've really been enjoying joose and some of the stuff samuraijack is putting out
[18:15] brainproxy: like the cps for joose/node and the templating system
[18:16] sechrist: i'm really torn between couchdb and mongo though
[18:16] sztanphet has joined the channel
[18:17] dabreaka has joined the channel
[18:17] sechrist: 1995: netsplit
[18:17] sechrist: 2010: netsplits still happen
[18:17] sechrist: 2050: irc finally gets redundancy!
[18:18] _announcer: Twitter: "seobeogudongman trying node.js http ... That's pretty good .... so singiha You go to sleep ... ㅋ" [ko]-- Outsider. http://twitter.com/Outsider__/status/15342999472
[18:18] elbart has joined the channel
[18:18] lucas- has joined the channel
[18:20] Tekerson has joined the channel
[18:20] Aikar has joined the channel
[18:20] cataska has joined the channel
[18:20] indiefan has joined the channel
[18:21] Connorhd has joined the channel
[18:23] rudebwoy has joined the channel
[18:24] mikemike86 has joined the channel
[18:24] adulteratedjedi has joined the channel
[18:24] ph^ has joined the channel
[18:24] mikeal: cradle is nice
[18:25] cloudhead has joined the channel
[18:25] mikeal: when i read "high level caching" i thought for a second it was a caching proxy
[18:25] mikeal: which is something i started working on a while a go
[18:27] kriszyp_ has joined the channel
[18:29] sechrist: I'm a little confused about oauth. Is there a centralized oauth key provider thing? or do I use something twitter provides for getting the tokens?
[18:29] sechrist: I have node-oauth but it needs service providers
[18:29] technoweenie_: there is no centralized provider thing
[18:29] TobiasFar has joined the channel
[18:29] sechrist: technoweenie_: i'm using your lib
[18:30] technoweenie_: oauth is a common protocol to request an api token for a service. twitter's just the first and most well known provider
[18:30] sechrist: well about to add oauth to it anyway
[18:30] sechrist: ah okay
[18:30] technoweenie_: sechrist: which?
[18:30] sechrist: twitternode
[18:30] technoweenie_: right on
[18:30] mAritz has joined the channel
[18:30] sechrist: however
[18:30] sechrist: your method for tokenizing the buffer as it comes in
[18:30] sechrist: wasn't scalable
[18:30] sechrist: cpu usage exponentially went up
[18:30] mape: technoweenie_: google?
[18:31] technoweenie_: really? i tried it on trending twitter topics w/o seeing anything crazy
[18:31] technoweenie_: well apparently you can just split streaming json requests on \r\n
[18:31] stevendavie has joined the channel
[18:31] rnewson has joined the channel
[18:31] rnewson has joined the channel
[18:33] sechrist: technoweenie_: ended up using a library for buffered tokenization provided by somebody in here. streaming_json_parser was killing us yeah
[18:33] mikeal: oauth is confusing
[18:33] sechrist: trying to remember who's it was
[18:33] mikeal: i'm pretty sure they are going for security through obscurity
[18:33] technoweenie_: sechrist: cool. i had a feeling that code was shit. thats why i tried to put a clean api on it and put it in a separate file
[18:33] technoweenie_: mikeal: oauth2 is awesome. much simpler
[18:34] sechrist: halorgium made the replacement, that's right
[18:34] mikeal: that's what I keep hearing
[18:34] mikeal: but facebook wrote it and is really pushing it
[18:34] mikeal: which is kind of like when the goverment tells you which encryption scheme to use
[18:34] sechrist: okay so I have twitter-oauth
[18:34] sechrist: do I need to give it twitter urls for the 'service provider'?
[18:35] behmann has joined the channel
[18:35] sechrist: I would assume each service would want to generate it's own access keys
[18:35] mikeal: i need to get support in to tweestream
[18:35] mikeal: but it's too damn confusing
[18:35] sechrist: the oauth lib i have uses term.ie
[18:35] sechrist: but I have no idea what the twitter urls are
[18:35] technoweenie_: sechrist: you'll have to register an app w/ twitter. they'll give you a client id and secret to use, as well as some login urls
[18:36] technoweenie_: mikeal: github is using oauth2. its pretty cool
[18:36] sechrist: when I went to go do taht -- they were like "BROWSER OR DESKTOP?"
[18:36] mape: sechrist: what are you doing?
[18:36] sechrist: neither -- server
[18:36] technoweenie_: sechrist: probably means browser then
[18:36] sechrist: mape: I want to hit the rest api and streaming api
[18:36] sechrist: with oauth
[18:36] sechrist: since basic auth gets axed this month
[18:37] mape: Ah k, I just use the rest API but use node-oauth and it works fine
[18:37] sechrist: I have no idea how to use it
[18:37] sechrist: that's my problem
[18:37] sechrist: rofl
[18:37] technoweenie_: even on the stream? i thought the stream only used basic auth
[18:37] sechrist: new OAuth(???)
[18:37] sechrist: I guess I register an app
[18:37] sechrist: and it gives me that crap
[18:37] technoweenie_: yea i have no idea how oauth works either. you send the provider a bunch of tokens, it sends you a bunch. they mate and you get some access token
[18:38] sechrist: freakin oauth, how does it work?!
[18:39] technoweenie_: there's some security token and nonce exchanges. all that is removed from oauth2 (which just relies on ssl)
[18:39] niklasfi1 has joined the channel
[18:39] mape: sechrist: http://gist.github.com/424281
[18:40] mape: not sure if that helps
[18:40] sechrist: boom
[18:40] sechrist: exactly
[18:40] sechrist: but the damn registration page is like
[18:40] sechrist: CALLBACK OR REDIRECT?
[18:40] sechrist: I don't want either
[18:40] steven_t has left the channel
[18:40] mape: sechrist: be happy you don't get the fail whale http page
[18:41] pdelgallego has joined the channel
[18:41] sechrist: I just got a failwhale when I tried to register
[18:41] sechrist: damn you
[18:41] gf3 has joined the channel
[18:41] mape: He is really a friendly creature
[18:42] mape: Just really annoying
[18:43] derferman has joined the channel
[18:46] sechrist: mape: https://gist.github.com/4a1e02acea0ef7539c5b
[18:46] sechrist: everything comes back undefined
[18:46] sechrist: hmm
[18:47] mape: sechrist: what with the null?
[18:47] sechrist: I just changed the term.ie example
[18:47] sechrist: *shrug*
[18:48] sechrist: http://github.com/ciaranj/node-oauth/blob/master/examples/term.ie.oauth-HMAC-SHA1.js
[18:49] mape: hmm k
[18:49] mape: mine works
[18:49] mape: not really sure why though
[18:49] mape: I enjoy magic though
[18:49] sechrist: that's an authorize callback
[18:49] sechrist: hmm
[18:50] keyvan has joined the channel
[18:50] sechrist: https://gist.github.com/ec7f938716432db84fed
[18:54] K`` has joined the channel
[18:56] technoweenie has joined the channel
[18:58] rictic has joined the channel
[18:59] mape: sechrist: but with the streaming stuff, isn't there a klick and play example to get it running?
[19:00] sechrist: well i'm not using streaming atm
[19:00] sechrist: I need rest
[19:00] mape: and the undefined stuff, isn't there an error thrown?
[19:00] sechrist: no
[19:03] sechrist: argh
[19:03] sechrist: your example doesn't work either
[19:03] mape: well it does, if you have oath info
[19:03] sechrist: he changed the interface
[19:03] marktlang has joined the channel
[19:03] sechrist: nop
[19:03] sechrist: you have no callback in there
[19:03] sechrist: the latest oauth needs a callback or something
[19:04] sechrist: your 'token'
[19:04] sechrist: that's key right?
[19:04] sechrist: access key?
[19:05] mape: sechrist: works fine here after a git pull
[19:05] mape: fetching stuff, profiles, lists, updates and the other stuff
[19:06] mape: Jup, fetched data just fine
[19:06] sechrist: you on commit 09d613cd46ca0e4dbfe88674c28f0b765f3e6152?
[19:06] sechrist: version 0.7.2?
[19:06] mape: yeah, 09d613cd46ca0e4dbfe88674c28f0b765f3e6152
[19:06] sechrist: wtf then
[19:06] mape: Bumping to 0.7.3 oauth 2 now sending a Content-Length header of 0 to Bumping to 0.7.3 oauth 2 now sending a Content-Length header of 0 to
[19:07] sechrist: http://gist.github.com/424281 that throws an exception
[19:07] sechrist: Error: Un-supported signature method: undefined at new (/var/www/.node_libraries/oauth.js:21:11)
[19:07] sechrist: due to the callback thing
[19:08] mape: seems strange
[19:08] brainproxy: stephenlb: definitely the stuff in head that's causing probs; if i take everything out (forgot to take out the css file links before), I can pound nodejuice with rapid client-side and push-refreshes
[19:09] brainproxy: but if links in head don't cause you probs
[19:09] sechrist: mape: what are the oauth secret and token
[19:09] brainproxy: then it must be express that's making the difference
[19:09] sechrist: if you already have strings in teh oauth declaration
[19:09] brainproxy: but I don't know how
[19:09] sechrist: they're different?
[19:09] mape: sechrist: you get those when asking for stuff from twitter
[19:09] sechrist: yes I know
[19:09] sechrist: but what is in the ****'s?
[19:10] sechrist: the same thing?
[19:10] mape: no the are the token and secret
[19:10] mape: *they
[19:10] mape: and well the ones in oauth...
[19:10] sechrist: twitter didn't give a token
[19:10] sechrist: just a key and a secret
[19:11] mape: exports.OAuth= function(requestUrl, accessUrl, consumerKey, consumerSecret, version, authorize_callback, signatureMethod, nonceSize) {
[19:11] sechrist: that's what I thought
[19:11] sechrist: fail
[19:11] mape: It is just javascript
[19:11] mape: Source is always there :)
[19:11] sechrist: I looked at it
[19:12] sechrist: you're defining oauthtoken to something
[19:12] sechrist: that I don't have
[19:12] sechrist: I have the consumerkey and the consumersecret
[19:13] mape: then enter the other stuff? it is in the app page on twitter
[19:13] sechrist: wrong
[19:13] sechrist: consumer key, consumer secret, request token URL, access token URL, and authorize URL
[19:13] sechrist: that's all that's there
[19:15] sechrist: I would assume the token is generated after authentication
[19:15] mape: Yup
[19:15] hellp has joined the channel
[19:15] sechrist: oh..
[19:15] sechrist: your gist didn't have the request token
[19:15] sechrist: >.<
[19:16] mape: http://twitter.com/oauth/request_token?
[19:16] sechrist: oa.getOAuthRequestToken
[19:16] sechrist: yes
[19:17] sechrist: your gist didn't have that
[19:17] mape: Yeah I already have that
[19:17] sechrist: you generated one and you're just using it
[19:17] sechrist: that's what confused the hell out of me
[19:17] mape: Yup
[19:17] mape: Oh
[19:17] mape: Sorry
[19:17] sechrist: lol np
[19:20] paul_irish has joined the channel
[19:22] ajpiano has joined the channel
[19:24] _announcer: Twitter: "Node.js support is apparently coming to Heroku http://bit.ly/9QViad"-- Chris Powers. http://twitter.com/chrisjpowers/status/15346457471
[19:26] sechrist: -sigh- I get a token and a token secret
[19:26] sechrist: but getting the access token and access token secret is failing
[19:27] sechrist: this is overly retarded
[19:27] technoweenie: just dont let that opinion poison your thoughts of oauth2 :)
[19:28] sechrist: yeah I get a 401 on getOauthAccessToken
[19:28] sechrist: after I get valid oauthtoken and oauthtokensecrets
[19:30] rnewson has joined the channel
[19:30] rnewson has joined the channel
[19:31] pgriess: hey, has anyone ever gotten any of the v8 options to work with the node executable? i can't seem to convince node to pass --prof to V8::SetFlagsFromCommandLine()
[19:31] sechrist: node --prof
[19:31] sechrist: I had the same question yesterday -- I think
[19:31] sechrist: you want a v8.log?
[19:32] pgriess: yeah
[19:32] pgriess: --prof seems to be a noop
[19:32] pgriess: (or, node is not passing it correctly to v8)
[19:33] gerad2 has joined the channel
[19:33] mjr_: you also need --log
[19:33] mjr_: node --prof --logfile=%t.log ./test.js
[19:33] sechrist: hoorah
[19:34] sechrist: pgriess: did you already get linux-tick-processor working? lol
[19:34] mjr_: And once you have that, then you'll need the tick processor, which needs d8.
[19:34] mjr_: beat me to it.
[19:34] sechrist: I still haven't gotten that to build
[19:34] admc has joined the channel
[19:34] mjr_: I should just set up a tick processor server
[19:34] pgriess: i've got d8 building
[19:34] sechrist: since it's just text processing -- can't there be a node version of it?
[19:34] pgriess: the linux-tick-processor script sucks the shit out of my ass
[19:34] sechrist: node-v8log
[19:34] mjr_: I'm sure there could be a node way to do it.
[19:34] pgriess: i rewrote a different version of it that doesn't horribly break my installation environment
[19:34] sechrist: pgriess: do tell
[19:34] pgriess: linux-tick-processor is just javascript
[19:35] sechrist: oh hmm
[19:35] pgriess: erm, it just runs a bunch of javascript thru d8
[19:35] sechrist: well I had all sorts of building problems
[19:35] pgriess: presumably we could do the same with node
[19:35] sechrist: libstdc++ pissing me off and stuff
[19:35] pgriess: i got it to work by changing the SConstruct file
[19:35] pgriess: 1s
[19:35] pgriess: let me get a diff
[19:35] sechrist: bam
[19:35] sechrist: mjr_: a log processor would be sweet for those of us having hell with it
[19:36] pgriess: cmd_R = 'python "%s" -j %d -C "%s" -Y "%s" visibility=default mode=%s %s library=static snapshot=on library d8'
[19:36] sechrist: it wouldn't be too intensive would it?
[19:36] pgriess: that line used to not have "library d8" appended to the end of it
[19:36] sechrist: hmm
[19:36] pgriess: this is deps/v8/SConstruct
[19:36] pgriess: built just fine for me w/ that
[19:36] pgriess: dumps d8 in build/default
[19:37] pgriess: yeah there's an off-by-one in node::ProcessArgs() that is preventing the --prof option from getting through
[19:37] pgriess: (er node::ParserArgs())
[19:37] javajunky has joined the channel
[19:37] mjr_: that's hilarious. Does the --log end up getting ignored then, but make --prof go through?
[19:38] pgriess: heh, so if you run this
[19:38] pgriess: --prof --logfile foobar foo.js
[19:38] pgriess: node complains that it cannot execute foobar
[19:38] _announcer: Twitter: "awesome. my twitter crawler works as planned. #nodejs #twitter #notdoingopenauthjustyetthanks #iamgoingtoownyourlifemate"-- ray brooks. http://twitter.com/rayui/status/15347194709
[19:39] mjr_: Well, let me just say, thanks in advance for fixing that.
[19:39] pgriess: haha
[19:39] pgriess: i'd say your welcome in advance, but i'm scratching my head a bit over how to fix this
[19:39] sechrist: pgriess: was cmd_R in v8/SConstruct?
[19:39] sechrist: I don't see it
[19:39] mjr_: No, you figured it out. Your patch looked great.
[19:41] sechrist: wait that cmd_R is a path?
[19:41] sechrist: patch*
[19:41] phiggins has joined the channel
[19:42] pgriess: just a sec, let me post the full patch in a gist
[19:43] sechrist: sorry I have no idea how sconstruct works -- I live back in the configure era
[19:43] sechrist: and makefiles
[19:43] pgriess: oh, sorry the diff was to wscript, not deps/v8/Sconstruct ;) that probably made it difficult to apply
[19:43] mjr_: The difference is, it CONSTRUCTS software.
[19:43] sechrist: instead of BUILD?
[19:43] mjr_: Instead of configure.
[19:43] pgriess: http://gist.github.com/424364
[19:44] mjr_: and then "make". So you can see how they are very different.
[19:44] pgriess: waf and scons are both pretty new-fangled for my taste
[19:44] pgriess: i've been mostly fighting through them by trial and error; its kind of the dark ages
[19:44] mjr_: Yeah, I have no idea about either of them.
[19:44] b_erb has joined the channel
[19:45] pgriess: heh
[19:45] pgriess: so this works
[19:45] pgriess: node --perf --perf foo.js
[19:45] pgriess: the first --perf gets ignored, but fixes the off-by-one
[19:48] mostlygeek has joined the channel
[19:48] behmann has joined the channel
[19:49] kodisha has joined the channel
[19:50] pgriess: sechrist: does that patch work for you? you should be able to make && make install and get the d8 binary in bin/
[19:50] sechrist: oh wait a second
[19:51] sechrist: I was under the impression I just read linux-tick-processor
[19:51] sechrist: it was compiling something
[19:51] sechrist: I need to download d8?
[19:51] sechrist: facepalm
[19:51] mjr_: d8 builds as part of v8
[19:51] mjr_: remove palm from face
[19:52] pgriess: linux-tick-processor will look for d8 and, if it doesn't find it, compile it for you
[19:52] pgriess: by default, node does not build d8 alongside v8
[19:53] sechrist: I don't see the line it's replacing anywhere
[19:54] sechrist: it's not in deps/v8/SConstruct
[19:54] sechrist: there's no instance of "python" in that file
[19:54] sechrist: at all
[19:54] pgriess: yeah, i misspoke. the patch is against wscript
[19:54] pgriess: in the top level directory
[19:57] sechrist: wait so I apply taht
[19:57] sechrist: and rebuild node
[19:57] sechrist: ?
[19:57] sechrist: since you're editing the root level wscript
[19:57] pgriess: yeah, apply that then type 'make' in the top level directory
[19:57] sechrist: ah gotcha
[19:57] pgriess: after that, a 'make install' will install d8 alongside node in $(PREFIX)/bin
[19:58] sechrist: this may actually work *crosses fingerS*
[19:58] sechrist: I was having architecture issues -- if they build together that should correct it
[19:59] _announcer: Twitter: "oauth (v1) sucks nodejs # # oauth" [lv]-- Chase Sechrist. http://twitter.com/chasesechrist/status/15348259820
[20:00] sechrist: O.o the announcer spit that out wrong
[20:00] mjr_: You mean oauth doesn't suck nodejs?
[20:01] sechrist: announcer would like to think so
[20:01] sechrist: maushu: looks like it's breaking the tweet up by hashtag and failing miserably
[20:02] _announcer: Twitter: "# Nodejs fail # # nodejs failwhale" [lv]-- Chase Sechrist. http://twitter.com/chasesechrist/status/15348417418
[20:02] sechrist: oh weird
[20:04] Nohryb has joined the channel
[20:04] maushu: sechrist, blame google translate.
[20:05] sechrist: you're translating tweets?
[20:05] sechrist: rofl
[20:05] Ori_P_ has joined the channel
[20:05] mape: sechrist: google api :)
[20:05] sechrist: I know but
[20:05] sechrist: ah whatever
[20:06] sechrist: in other news
[20:06] sechrist: d8 is running!
[20:06] K``: wtf is that
[20:06] pgriess: sechrist: sweet
[20:06] sechrist: the lack of people interested in profiling node code disturbs me
[20:06] mape: as in performance?
[20:06] sechrist: yes
[20:07] mjr_: maybe because generally CPU is not what most people are out of.
[20:07] mape: Where did you get that from?
[20:07] mjr_: Instead of memory, network connections, or bandwidth.
[20:07] sechrist: sorry I see forloops with getElementByTagName in the for(.*)
[20:07] sechrist: and I facepalm
[20:07] sechrist: there's terribly broken javascript going around
[20:08] mape: sechrist: Eh.. talking about javascript as in the DOM api or node?
[20:08] sechrist: well in general
[20:08] mape: Ie the DOM api?
[20:08] sechrist: there's a lot of developers publishing node code
[20:08] sechrist: that isn't best practice
[20:08] mjr_: This is JavaScript's legacy. A language that you can start using without learning how to use.
[20:08] sechrist: but it's critical with node
[20:09] mape: I don't see a lot of node code using the DOM api?
[20:09] sechrist: mape: I didn't mean the dom api specifically
[20:09] mattly has joined the channel
[20:09] sechrist: that was an example of dumbassery
[20:09] sechrist: but yeah that was in readability -- which apparently works fine in a browser because I guess getElementsByTagName() is mapped directly to an array in memory
[20:09] sechrist: in jsdom it's not
[20:10] sechrist: fixed that for() and runtime dropped by 8 seconds in processing time
[20:10] softdrink: what, like: for (var i = 0; i < document.getElementById('foo').childNodes.length; i++) ....
[20:10] sechrist: yeah that's fail
[20:10] softdrink: hehe
[20:10] mape: sechrist: Can't say I've seen that a lot in the node community
[20:10] sechrist: if you remove/add children, regenerate the elems object there
[20:10] sechrist: but don't use it in the for
[20:10] sechrist: :(
[20:11] halorgium: sechrist: did it really perform?
[20:11] sechrist: what do you mean?
[20:11] sechrist: your buffered tokenizer?
[20:11] sechrist: yeah it does
[20:11] sechrist: it's working at nearly 3000 tweets per second
[20:11] sechrist: on our firehose account
[20:11] halorgium: yer, i just wanted to not think about chunks
[20:11] halorgium: hmm, nice
[20:12] behmann has joined the channel
[20:13] mape: sechrist: what does the twitter api have to do with the DOM api?
[20:13] sechrist: mape: you're confused
[20:13] sechrist: lol
[20:13] mape: for sure
[20:14] sechrist: he was referencing an earlier piece of conversation
[20:14] sechrist: with technoweenie
[20:14] sechrist: basically mape my concern is that a lot of people will write shitty libraries
[20:14] sechrist: a la php
[20:15] mape: sechrist: Well that is always an issue with popular things? :)
[20:15] sechrist: sort of
[20:15] sechrist: in node it's more critical that individual pieces of code don't block
[20:15] sechrist: otherwise the world state just stalls
[20:16] mape: Yeah, dont' see people adopting blocking modules though
[20:16] sechrist: hehe
[20:16] sanderjd: But how do you verify (besides reading the code) that a module is completely non-blocking
[20:17] mape: Github watches and community know how? I guess that works in the beginning
[20:17] sechrist: hopefully node will just attract a crowd more concerned about performance and asynchronous design rather than UI developers trying to hack stuff up that don't understand even procedural programming
[20:18] sanderjd: Would be nice if it worked for people like that eventually without them needing to worry about the nitty gritty
[20:18] technoweenie: only if it doesnt get that popular
[20:18] sechrist: sanderjd: you solve the halting problem
[20:18] sanderjd: ha
[20:18] gerad has joined the channel
[20:18] sanderjd: didn't even think of that, good idea
[20:18] mjr_: What's neat about doing all of this in JavaScript is that UI developers already know how to write non-blocking, evented code.
[20:18] sechrist: and concurrently win $1m
[20:18] mjr_: Because that's the only kind you can write.
[20:18] sechrist: I guess that is true
[20:19] mjr_: It's the server programmers you have to retrain.
[20:19] sechrist: you stall the entire browser otherwise
[20:19] sechrist: good point
[20:19] sanderjd: Ok, you solve the halting problem, I'll take the $1M
[20:19] mjr_: Server guys LOVE their threads.
[20:19] sechrist: sorry I hate threads
[20:19] technoweenie: not necessarily
[20:19] sechrist: haproxy + lighttpd in da houz
[20:19] technoweenie: its just all i've ever known
[20:19] technoweenie: i picked up on node specifically because i didnt like threads
[20:19] sechrist: however I think it's funny that asynchronous programming is becoming more popular even though we're getting more cores
[20:19] sechrist: 50 core intel processor coming out
[20:19] sechrist: useless for node
[20:20] sechrist: unless you delegate to threads
[20:20] technoweenie: useless for ruby to hah
[20:20] sechrist: maybe next decade we'll have another ghz race
[20:20] technoweenie: what do you do in that case? 1 node proc per core
[20:20] sechrist: then you still have to intelligently distribute work
[20:20] technoweenie: ok
[20:20] sechrist: one really really fast core would be better
[20:21] mjr_: node's real purpose is to just handle the IO, which is really hard to spread across cores.
[20:21] mjr_: If you want to write multi-threaded JavaScript programs, that is thing someone will probably do.
[20:21] sechrist: node's a full general purpose programming paradigm -- you hush
[20:22] sanderjd: Is there some sort of send-off type library that could be used to run arbitrary chunks of code in a separate thread/process?
[20:22] gerad: don't forget web workers
[20:22] sechrist: I need to look at the web workers implementation
[20:22] sanderjd: I'm thinking for things like computationally intensive work, rather than IO
[20:22] mjr_: I think ryah will need to implement Workers, as processes, and then people will stop worrying about utilizing all of their cores.
[20:22] sechrist: it already does the message handling
[20:23] mjr_: But the big reason that profiling in node isn't so smooth right now is that CPU time generally isn't the critical resource for node programs.
[20:23] mjr_: At least, it isn't yet.
[20:23] JimBastard has joined the channel
[20:23] sechrist: yeah I have no idea what is going wrong with my oauth
[20:23] sechrist: the request token request looks perfect
[20:24] sechrist: and it's 401ing
[20:25] mape: sechrist: well doesn't it say why?
[20:25] sechrist: I get my oauthToken and oAuthTokenSecret but getting the AccessToken and AccessTokenSecret is just failing
[20:25] sechrist: no
[20:25] sechrist: 401 with 0 content-length reply
[20:25] mape: sexy
[20:25] sechrist: irritating as hell
[20:26] olegp has joined the channel
[20:26] KungFuHamster_ has joined the channel
[20:26] maushu: mjr_, what is the critical resource?
[20:27] sechrist: mjr_: I'm doing all sorts of processing in node
[20:27] sechrist: performance matters now, for my use case
[20:27] sechrist: lol
[20:29] maushu: http://mashable.com/2010/06/03/youtube-i-am-sitting/
[20:29] _announcer: Twitter: "@mikeal thanks for the follow. Couldn't make it to osb this year. Definitely would have checked out your node.js talk if I'd come."-- Greg Davidson. http://twitter.com/syncopated/status/15349773154
[20:30] Aria has joined the channel
[20:34] niklasfi2 has joined the channel
[20:35] niklasfi2: hi anyone here?
[20:35] JimBastard: no
[20:35] JimBastard: sup niklasfi2
[20:36] JimBastard: i hope you have an express question caus TJ is actually here today
[20:36] niklasfi2: im struggling a bit with the asynchronous programming concepts:
[20:36] niklasfi2: http://pastebin.com/H4XB9g6Z
[20:36] JimBastard: lol damn
[20:36] JimBastard: checking
[20:37] JimBastard: i see niklasfi2
[20:37] niklasfi2: good
[20:37] JimBastard: x=deliverFile(file);
[20:37] JimBastard: # function deliverFile(file)
[20:37] JimBastard: no call back
[20:37] tjholowaychuk: JimBastard: haha :p
[20:37] niklasfi2: well that was just for debung that "x="
[20:38] JimBastard: niklasfi2: i think you would benefit from reading some of the control flow articles on howtonode
[20:38] JimBastard: you are pretty close
[20:38] JimBastard: Step would probaly help you a bit
[20:38] niklasfi2: thanks for that ressource
[20:39] JimBastard: http://github.com/creationix/step
[20:39] niklasfi2: i was looking for stuff on the web but most of it is about dom manipulation which is not what i was looking for
[20:39] JimBastard: niklasfi2: Step should make your life easier
[20:39] razorsage has joined the channel
[20:39] JimBastard: but the basic idea is that with the async calls, you have to provide a callback
[20:39] niklasfi2: i know
[20:40] JimBastard: so like x=deliverFile(file);
[20:40] niklasfi2: ahh
[20:40] mikeal has joined the channel
[20:40] JimBastard: you are trying to call it sync
[20:40] JimBastard: that line runs immediately and then the lines below it do
[20:40] JimBastard: i could be wrong
[20:40] JimBastard: i usually am
[20:40] niklasfi2: i think that part works
[20:40] niklasfi2: what does not work is the latter part
[20:41] niklasfi2: i want to return the return value of that function called in fs.stat
[20:41] richcollins has joined the channel
[20:41] niklasfi2: so do i have to call fs.stat(err,fnc)
[20:41] niklasfi2: so do i have to RETURN fs.stat(err,fnc)
[20:41] niklasfi2: ?
[20:41] niklasfi2: because that delivers an undefined object
[20:41] JimBastard: fs.stat takes a callback
[20:42] JimBastard: so you pass it the callback
[20:42] niklasfi2: look at line 42
[20:42] niklasfi2: i want to return the array
[20:42] niklasfi2: well deliverFile is supposed to return the array
[20:42] niklasfi2: how do i do that?
[20:43] JimBastard: i think instead of returning that variable you have to pass in the callback and execute it
[20:43] niklasfi2: could you give me some code?
[20:43] JimBastard: i dunno
[20:43] JimBastard: use step
[20:43] JimBastard: thats the best way imho
[20:44] JimBastard: either that or read all the control flow articles
[20:44] JimBastard: sorry i cant explain it better
[20:44] JimBastard: i cant really fork and update your code right now, at work
[20:44] niklasfi2: ok i will stick with the articles then
[20:44] niklasfi2: ok
[20:44] JimBastard: you are really close
[20:44] niklasfi2: thanks
[20:45] tjholowaychuk has left the channel
[20:45] bmizerany has joined the channel
[20:45] tjholowaychuk has joined the channel
[20:45] __sebs: JimBastard: Control Flow?
[20:45] __sebs: like in finite state machines ?
[20:46] __sebs: JimBastard http://github.com/sebs/nodegamr/tree/master/fsm/
[20:47] mde: Flying Spaghetti Monster, awesome.
[20:48] __sebs: ;)
[20:48] JimBastard: hey __sebs i see you've read the mailing list
[20:48] JimBastard: welcome
[20:48] __sebs: i ahve?
[20:48] __sebs: did i post?
[20:48] __sebs: ;)
[20:49] __sebs: ...... (compute)
[20:50] JimBastard: ;-)
[20:50] JimBastard: __sebs: you should follow http://github.com/marak and http://github.com/cloudhead
[20:50] JimBastard: you already got creationix, good start
[20:50] mape: javajunky: hey you broke my code :(
[20:51] tjholowaychuk: JimBastard: who are you on github?
[20:51] JimBastard: marak
[20:51] JimBastard: :p
[20:51] __sebs: ;)
[20:51] tjholowaychuk: JimBastard: ah :p
[20:51] mape: tjholowaychuk: He pretends to be pretty and sporting adidas pants
[20:51] mape: Which just isn't true
[20:52] JimBastard: mape: are you talking about me? i dont do well at pretending
[20:52] JimBastard: ACTION is too real for yall
[20:52] JimBastard: :p
[20:53] mape: JimBastard: Yeah, the adidas pants stuff just turned out to be embarrassing
[20:53] mape: really should stick to being an ass ;)
[20:53] saikat has joined the channel
[20:53] mape: And not in those pants
[20:53] JimBastard: im more of a jeans and sports coat guy http://www.jimbastard.com/
[20:53] JimBastard: back to work, gotta finish some stuff before i go home
[20:54] _announcer: Twitter: "Binary Stream Parsing in Node.js - http://su.pr/8XkGoF"-- eBot. http://twitter.com/kicauan/status/15351013648
[20:54] niklasfi2: i still dont really get it... what does a function with a callback return? e.g.? what does fs.stat('file',function{return x}); return?
[20:54] mape: niklasfi2: the variable x
[20:54] Nohryb has joined the channel
[20:55] niklasfi2: does it really?
[20:55] mape: jup
[20:55] mape: which is either unassigned, upp in the scope or global
[20:55] niklasfi2: then why does http://pastebin.com/Nzx69vPB return "undefined"?
[20:55] ivan`` has joined the channel
[20:56] jbrantly has joined the channel
[20:56] mape: well
[20:56] __sebs: because the method stat of the fs object is not returning anyting
[20:56] mape: node is async
[20:56] mape: so it doesn't return anything when running
[20:57] mape: just does later, when the callbeck runs
[20:57] mape: like a rude waitor, doesn't say anything when taking the orders but still brings the food
[20:57] niklasfi2: :( anychnonous programming is not the easiest conept
[20:57] niklasfi2: yeah i know
[20:57] niklasfi2: i just dont know how to fix that problem
[20:58] niklasfi2: the whole code is here: http://pastebin.com/H4XB9g6Z
[20:58] mape: niklasfi2: whatevers uses the return fs.stat, call that is the callback
[20:59] niklasfi2: so i have to fix something with lines 18-25?
[21:00] mape: niklasfi2: deliverFile needs a callback
[21:01] mape: niklasfi2: pretty much any function in node needs a callback
[21:01] mape: Think of it as functions being workers, and instead of micromanaging them, just give them something to do, and somthing to do when they are done
[21:02] niklasfi2: like in functional programming?
[21:02] mape: That isn't always a case, but if you are having a hard time with non blocking code it might be a good way to start
[21:02] __sebs: http://pastebin.com/PMvbZsAy
[21:02] __sebs: didnt try
[21:02] __sebs: but maybe this explains a little more
[21:02] sechrist: so, mape, with that being said, is there a working oauth solution?
[21:02] sechrist: i'm going back through the history
[21:02] sechrist: and I don't see the fatal change
[21:03] mape: sechrist: well, I still blame javajunky, he created it so he is in the direction where stones should be throw ;)
[21:03] sechrist: javajunky: fix it plz
[21:03] sechrist: i'm trying to figure out the bug
[21:03] sechrist: so I can fix it
[21:03] maushu: I so need a deconstructor.
[21:04] mape: niklasfi2: I'm not really sure what functional programming is, but well. If you write your code using functions with data to input, and a callback to handle the output you should be fine
[21:05] mape: I'm sure there are peeps in here that are more adept at answering that question in relations to node
[21:05] maushu: ryah, is there any kind of deconstructor in node.js?
[21:06] __sebs: yeah, there was something that kill anything ;)
[21:06] __sebs: with a callback
[21:06] __sebs: but if youre coming from scripting languages, you might not need what you thing you need ;)
[21:06] niklasfi2: ok i get what you guys are saying now thanks a lot
[21:07] __sebs: ;)
[21:07] __sebs: fine
[21:07] __sebs: crack your head on it niklasfi2
[21:07] __sebs: worth the time, i promise
[21:07] niklasfi2: yeah i like the concept of non-blocking i/o
[21:07] __sebs: you might check on javascript "scope"
[21:07] niklasfi2: though i will never need the burtal speed
[21:08] __sebs: simply put: you see stuff from inside to outside
[21:08] mape: niklasfi2: node is extra worth it, if you get shitty answers on IRC you can just hang the responce forever, won't destroy performance ;)
[21:08] niklasfi2: :D
[21:09] mape: And it is still response, why won't I learn..
[21:09] mape: And niklasfi2 are you finish?=
[21:09] niklasfi2: nope not really ...
[21:09] mape: Just have a strange name?
[21:09] niklasfi2: i am still digesting
[21:10] mape: The nordic part or js?
[21:10] jlertle has joined the channel
[21:11] __sebs: oh my god
[21:11] __sebs: http://github.com/Guille/node.dbslayer.js
[21:11] niklasfi2: digesting, that i have to go through the mess of creating another variable
[21:11] __sebs: o'reilly ? yah really!
[21:11] niklasfi2: that gives me a hard time sometimes
[21:12] niklasfi2: anyway my girlfriend is waiting for me... have a nice evening, day, whatever... wherever you are
[21:12] mape: nn
[21:15] rnewson has joined the channel
[21:17] kodisha has joined the channel
[21:17] admc has joined the channel
[21:18] _announcer: Twitter: "Wow, node.js sure changes a lot in a month. That was a big git pull."-- Stephen Wyatt Bush. http://twitter.com/wyattdanger/status/15352216639
[21:18] __sebs: anyone here able to explain me the promise function ?
[21:18] _announcer: Twitter: "Edaehan Node.js interest to test at home but are beholden to the company, all night ㅠ ㅠ ㅡ period was steady after you collect the information you have to install getdang" [ko]-- Kim Sang Youl. http://twitter.com/r2fresh/status/15352228472
[21:20] inimino: __sebs: there isn't one in node.js anymore
[21:20] __sebs: ah ok
[21:21] __sebs: i wasn't aware of the concept
[21:21] mape: It was depricated quite a while a go?
[21:22] __sebs: http://github.com/Guille/node.dbslayer.js/blob/master/dbslayer.js
[21:22] __sebs: tested with v0.1.21)
[21:22] __sebs: ;)
[21:22] mape: guess a modular system doesn't work all to well with a moving target and lazy shooters
[21:23] Nohryb has joined the channel
[21:23] mattly has joined the channel
[21:24] TommyM has joined the channel
[21:25] rictic has joined the channel
[21:31] phiggins has joined the channel
[21:31] rudebwoy has joined the channel
[21:36] camilo_ has joined the channel
[21:36] creationix has joined the channel
[21:36] camilo_: omg that's a lot of people hahaha
[21:40] creationix: yay, internet again
[21:41] tjholowaychuk: whoop!
[21:42] mitkok has joined the channel
[21:42] mjr_: mikeal: how did your osbridge talk go? Convert the open source world to making servers in node?
[21:43] mikeal: people are excited
[21:43] creationix: mikeal: awesome
[21:43] mikeal: a lot of people said that the talk got them really excited and that they are going to mess around with it this weekend
[21:43] creationix: I introduced a bunch of swedes to node programming just now
[21:43] mikeal: awesome!
[21:44] creationix: mikeal: are you as ready for another conference as I am? (I'm exausted)
[21:44] mikeal: if another mountain explodes in iceland and you can't get out I can give my node talk at txjs in your slot :)
[21:44] mikeal: oh man
[21:44] creationix: :)
[21:44] mikeal: i'm actually really glad I don't have to speak at txjs
[21:44] mikeal: my liver wants to punch me in the face already
[21:45] mikeal: really fun tho
[21:45] mikeal: this is one of my favorite conferences
[21:45] mikeal: Portland is a great city
[21:47] mikeal: and this conference is really community driven
[21:48] creationix: that's great
[21:48] mikeal: you should come next year
[21:48] creationix: yeah, now that I live so much closer I might
[21:49] creationix: texas was too far from anything, but then came txjs and I moved to ca
[21:49] creationix: how ironic
[21:49] mikeal: haha
[21:49] robrighter has joined the channel
[21:49] drudge: portland, everyone keeps telling me that's the place to be
[21:49] mikeal: but you're in europe anyway :
[21:49] mikeal: portland is absurdly clean
[21:49] mikeal: it's like they forgot to tell them this is an american city
[21:49] mikeal: and there are a million food carts with fantastic food for 6 dollars
[21:50] mikeal: a critical mass of cyclists
[21:50] ewdafa: get me an apartment and a job tehre please
[21:50] drudge: i wonder what cost of living is like compared to here
[21:50] mikeal: there are a lot of great things about it
[21:50] mikeal: where is "here"
[21:50] drudge: NY
[21:50] mikeal: it's even cheaper than Seattle, and moving from Seattle to Oakland was a sizable increase if cost of living
[21:50] creationix: Sweden is pretty nice
[21:50] mjr_: Does Portland pass the mikeal Minimum Cocktail Competency threshold?
[21:51] creationix: the air is clean and everyone seems happy
[21:51] mikeal: fantastic cocktails
[21:51] technoweenie: are you here mikeal
[21:51] technoweenie: in portland i mean
[21:51] mikeal: yes
[21:51] technoweenie: for osbridge?
[21:51] mikeal: i'm at open source bridge
[21:51] mikeal: yup
[21:52] technoweenie: oh wtf why have i not bought you a beer yet
[21:52] technoweenie: wait, i might have my twitter users crossed
[21:52] technoweenie: i met you briefly at the palo alto node thing a few weeks ago?
[21:52] ryah: mjr_: you should put your pcap thing on the modules page
[21:53] mikeal: technoweenie: yup
[21:53] mikeal: :)
[21:53] mikeal: i saw you at the speakers dinner but me and jchris had to run back for a NoSQL BOF
[21:53] mjr_: ryah: I need to fix up the documentation a bit. It is almost ready, but a bit confusing right now.
[21:53] mjr_: ryah: to answer your question from earlier, the source code to the speed server is here: http://github.com/mranney/node_pcap/blob/master/examples/speed_server.js
[21:53] technoweenie: mikeal: yea yea
[21:53] mikeal: mjr_: yes! i'm really excited about the pcap bindings
[21:53] technoweenie: i think i'll be at the startup pub crawl somewhere
[21:53] drudge: mjr_: woot, awesome pcap stuff
[21:53] mikeal: i was thinking about that
[21:54] mjr_: mikeal: you can see pcap do something here: http://db.ranney.com/
[21:54] mikeal: i wouldn't mind doing something tonight that wasn't solely focused on drinking
[21:54] mjr_: It downloads a 1MB file via XHR, then computes the ACK timings and retransmissions.
[21:55] ryah: mjr_: is the http://db.ranney.com/ just one process?
[21:55] mjr_: ryah: yeah, that's the amazing thing
[21:55] technoweenie: cool
[21:55] mjr_: it both serves a file via HTTP and pcaps the same session
[21:55] mjr_: all in the same event loop
[21:55] mjr_: woah, kicking out some errors now on somebody
[21:55] tjholowaychuk: haha
[21:56] tjholowaychuk: sorry
[21:56] tjholowaychuk: was just checking it out
[21:56] mjr_: Anyway, the whole reason I want this is to understand the effects of packet loss on end to end latency in TCP connections.
[21:56] mjr_: For doing live website stuff
[21:56] ewdafa: i think we broke it
[21:56] _announcer: Twitter: "Slides to my talk at # # nodejs swdc http://static.creationix.com/swdc.pdf" [fil]-- Tim Caswell. http://twitter.com/creationix/status/15354109667
[21:56] mjr_: and voice over HTTP
[21:56] ewdafa: ACTION high fives tjholowaychuk
[21:56] mjr_: But my graph is broken in the exact part of the graph that I'm interested in. Whoops.
[21:57] sechrist: wait a second here
[21:57] sechrist: am I not supposed to use oauth with my application key to hit the api?
[21:57] sechrist: I'm thoroughly confused
[21:57] mjr_: And mikeal I'm using flot per your regular recommendation, and it is a huge win.
[21:58] mikeal: awesome
[21:58] mikeal: flot is great and super easy
[21:58] mikeal: for super advanced visualizations there is some other really hard thing
[21:58] javajunky: protovis
[21:58] mikeal: but i've seen really cool visualizations with it
[21:58] mjr_: Yeah, I was using protovis before, and it was way too complicated and clever.
[21:58] mikeal: that's it, protovis
[21:59] mjr_: Very clever though.
[21:59] javajunky: once you get into it protovis is ace, been using it all day as it happens :)
[21:59] javajunky: flot does produce nice looking graphs, but only a limited set of graphs, protovis is largely un-restricted
[21:59] javajunky: (I'm using a git fork that provides IE support in case thats an issue)
[21:59] sechrist: javajunky: what is wrong with node-oauth :(
[22:00] mikeal: but you can't do this with flot http://vis.stanford.edu/protovis/ex/sunburst.html
[22:00] ewdafa: amagad
[22:00] mjr_: I don't like that you need to mess around with inline script tags either. flot works the way I want it to. Make this graph be in this DOM element. Go.
[22:01] javajunky: sechrist: um I dunno, I'll need more clues
[22:01] javajunky: mjr_: you can do that ?
[22:01] sechrist: javajunky: https://gist.github.com/c0a21bfbf4dabb0ef343 401's every single time
[22:01] sechrist: with every application I try it with
[22:01] sechrist: on different accounts
[22:02] javajunky: mjr_ new pv.Panel().canvas()
[22:02] ewdafa: http://raphaeljs.com/scape/
[22:03] mjr_: javajunky: maybe I got confused and it is actually possible. I had a really hard time getting it to work, so I gave up.
[22:03] mjr_: Even though it is obviously capable of amazing things.
[22:03] mjr_: And, for real, man is it clever.
[22:03] sechrist: javajunky: it gets the token and token secret, but getting the accesstoken fails
[22:04] mikeal: oh
[22:04] mikeal: almost forgot
[22:04] mikeal: i was talking to the libdrizzle guy
[22:04] drudge: nice counterstrike weapon
[22:04] mikeal: and he said the whole library is non-blocking
[22:04] mikeal: and it supports MySQL
[22:04] mikeal: he's going to write some node bindings
[22:04] javajunky: sechrist: weird, what server with ?
[22:04] mikeal: also
[22:04] mikeal: ryah:
[22:04] sechrist: ?
[22:04] javajunky: what oauth provider
[22:04] mikeal: he had some really interesting thoughts on multi-core
[22:04] sechrist: uh twitter, no?
[22:05] sechrist: I'm giving it twitter urls
[22:05] mikeal: he was working on a similar non-blocking system and was writing IPC stuff
[22:05] javajunky: hmm it definitely works with twitter
[22:05] sechrist: then what am I doing wrong
[22:05] javajunky: if you take a look at my express-auth stuff there's some working examples in there, might be a good starting point
[22:05] mikeal: and he said he ended up scoping an nthread to each core and giving it it's own event machine
[22:05] mikeal: because then you can pass messages and file handlers to it without crossing process boundaries
[22:06] javajunky: sechrist: http://github.com/ciaranj/express-auth/blob/master/lib/express/plugins/auth.strategies/twitter.js
[22:06] sechrist: hm
[22:07] javajunky: sechrist: that code *definitely* works I've just tested it
[22:08] sechrist: I don't have express-auth, just node-oauth
[22:08] javajunky: yes thats all you need for oauth support ;), if you're using express then that other package will give you out of the box support for twitter SSO as well
[22:08] sechrist: SSO?
[22:09] javajunky: single sign on
[22:09] sechrist: ohhh
[22:09] sechrist: ok
[22:10] sechrist: do you see any problem with the gist I pasted?
[22:10] sechrist: I don't understand the problem
[22:10] javajunky: sechrist: so if you're not using express, that code might be a good starting point to reverse engineer how you might implement the SSO workflow yourself. .. the resulting code will likely be extremely similar (unless I've buggerred it up)
[22:10] sechrist: I don't want sso, I want to use the api with an application key
[22:10] sechrist: nothing browser releated
[22:11] sechrist: since twitter is killing basic auth
[22:12] javajunky: um, I'm not sure I follow, are you not using a browser because you *can't*..or not using a browser because 'twitter is killing basic auth' ?
[22:12] mikeal: why is oauth so fucking impossible
[22:13] sechrist: uh
[22:13] sechrist: it's not a browser webapp
[22:13] javajunky: mikeal: it isn't particularly, the hardest part is the signing, which they pulled out of OAuth2 ;)
[22:13] sechrist: I just want to hit the damn api
[22:13] sechrist: and store stuff in a database
[22:13] sechrist: the api calls require authentication
[22:13] mikeal: conceptually it's kind of insane
[22:13] sechrist: which requires oauth
[22:13] mikeal: you can just get a token
[22:13] sechrist: I have a token
[22:13] mikeal: you have to auth to a thing to get a token
[22:13] sechrist: I can't get an "access token"
[22:14] technoweenie: oauth is about control
[22:14] technoweenie: users can revoke tokens to apps they dont want to use anymore, and sites can revoke access to misbehaving apps
[22:14] sechrist: http://github.com/ciaranj/node-oauth/blob/master/examples/term.ie.oauth-HMAC-SHA1.js
[22:15] sechrist: that
[22:15] javajunky: sechrist: right, you've got a request token, you need to conver that to an access token.. … I don't believe that you can achieve what you want without some form of a browser (at least with twitter)
[22:15] sechrist: oa.getOauthAccessTOken() is failing with everything i've tried
[22:15] sechrist: ...w
[22:15] sechrist: what
[22:15] sechrist: you have a function called getOauthAccessToken
[22:15] javajunky: what you're talking about is 'out of band'
[22:15] javajunky: yes
[22:16] sechrist: that doesn't give me an access token?
[22:16] sechrist: kind of misleading imo
[22:16] ryah: mikeal: but you have to lock to pass messages
[22:16] ryah: i very much doubt that IPC is going to be a bottleneck
[22:17] ryah: one event loop per process + a few threads for blocking sys calls
[22:17] ryah: i'm pretty convinced of this model
[22:17] ryah: not that one process + n threads each with an event loop is wrong
[22:18] mjr_: ryah: I think when you go and implement Workers as a process in node that this whole discussion will change.
[22:18] sechrist: javajunky: so I have to use a browser to generate a key?
[22:18] ryah: it's just i think it's unfounded speculation that it's a better model
[22:18] javajunky: sechrist: I don't understand, this is just how OAuth works as I understand it ? Are you saying that you've used OAuth differently in the past and I should be able to figure out a way of supporting that ? .. I'm a bit lost ?
[22:18] sechrist: i've never used oauth
[22:18] sechrist: ever
[22:18] sechrist: not even to log in
[22:18] sechrist: to anything
[22:18] ryah: (the nthreads per process)
[22:18] sechrist: I want to access the twitter API
[22:18] sechrist: why is this so retarded
[22:18] ryah: mjr_: probably - i mean i'm also being speculative
[22:18] ryah: but in general it wont be a bottleneck either way
[22:18] ryah: :)
[22:19] ryah: i do like that you can permission processes
[22:19] mikeal: he's gonna be popping in here pretty soon
[22:19] javajunky: sechrist: the browser has to be used to 'prove' that the user can log in to twitter.. I can't remember but I *think* the access tokens are fairly long lived so might be persistable/refreshable
[22:19] ryah: and more importantly ipc traslates well to tcp
[22:19] mikeal: he needs your HTTP parser for some stuff
[22:19] msassak has left the channel
[22:19] ryah: so those processes can be moved off machine if needed
[22:19] mjr_: ryah: yeah, who knows what the right answer is, but at least if there's an option to easily utilize multiple process, then it will be obvious what workloads need another process, and what is just people worrying that their multicores aren't hot enough.
[22:19] mikeal: and he's going to write node bindings for libdrizzle
[22:19] sechrist: javajunky: wait what, I thought I registered an application so that IT can authenticate? you mean I have to use my twitter login to authenticate with my app to authenticate with twitter?
[22:19] sechrist: that's retarded
[22:20] javajunky: sechrist: dunno, feel free to take this up with the authors of the relevant specifications, I just provided some methods to implement the workflows… OAuth2 is fairly dumbed down and might be simpler for your needs ?
[22:20] sechrist: does twitter support oauth2?
[22:20] mikeal: sechrist: oauth is retarded :)
[22:20] mikeal: they probably will eventually
[22:20] dji_ has joined the channel
[22:20] javajunky: sechrist: yes, thats what OAuth provides a mechanism for you to write software that delegates the *authentication* of users to a 'nominally trusted' 3rd party (in this case Twitter)
[22:20] mde: I'm so not looking forward to doing OAuth. I'm about to have to dive into that this weekend.
[22:20] javajunky: sechrist: no, not yet .. facebook do
[22:21] technoweenie: and github :)
[22:21] sechrist: god
[22:21] mde: Maybe have six or seven beers first.
[22:21] ryah: libdrizzle bindings would be welcome
[22:21] sechrist: so now I have to write something to provide a web interface to authenticate
[22:21] sechrist: for like 2 seconds
[22:21] creationix: ryah: Malte is tall!
[22:21] mikeal: ryah: totally, i didn't realize they also work with MySQL
[22:21] technoweenie: (github likely wont ever drop basic auth support though)
[22:21] mikeal: in fact, it's the only async MySQL bindings that i know of
[22:21] technoweenie: if you dont mind your password being stored somewhere
[22:21] mikeal: once you have support, why remove it?
[22:22] sechrist: javajunky: does your express-auth handle the web-crap for me?
[22:22] sechrist: so I can just plug a key into my app
[22:22] javajunky: the consumer key + secret stuff, is primarily just to provide 'proof' to the person signing in that this application is *also* trusted by by the oauth producer (twitteR) …i.e. is a registered app (its also obviously used for the effectively signing to avoid modification of messages on the wire)
[22:22] mikeal: oauth2 will mostly effect new implementers
[22:22] mde: Would sure be nice to have actual MySQL support. So many people like it.
[22:22] mikeal: so many people don't know better :)
[22:22] javajunky: sechrist: not in a way thats useful for you I'm afraid mate, express is a web application framework , but yes it does handle all the redirects etc. ..
[22:22] mde: Yeah, if you're going relational at least use Postgres.
[22:22] sechrist: so
[22:22] sechrist: what the hell
[22:22] mikeal: the more i find out about drizzle the more i'm convinced it's going to dominate the SQL space in a few years
[22:23] sechrist: you're saying it's impossible to use the twitter API now without having some sort of web interface to log into?
[22:23] mikeal: that have a really nice plugin model
[22:23] mde: If they can keep the MySQL mindshare, seems likely.
[22:23] javajunky: that is my current understanding of the situation yes… I could be wrong..
[22:23] mjr_: Telling people not to use mysql or even sql is like telling people not to use Windows. Sure, there are "better" options out there, but the switching costs for many people are way too high.
[22:24] mikeal: that's why i think drizzle will do so well
[22:24] sechrist: javajunky: well if your thing handles the redirects
[22:24] sechrist: that should give me a key, right?
[22:24] mikeal: it's a trivial migration from mysql, and then you get all these plugins and other support
[22:24] mikeal: people are writing badass replicators that replicate with Cassandra and Redis
[22:24] mjr_: All that plus non-blocking == win
[22:24] javajunky: sechrist: reading over the twitter docs, if you're setting up as a 'client' application the user will only ever been shown the 'authorise' page once .. you can store the secret and the access token for ever then
[22:25] sechrist: that's fine but how do I get that access token
[22:25] sechrist: I have no web-facing portion of my aggregator
[22:25] ryah: mjr_: i just went to visit meraki - do you know them. man - they've got awesome stuff going on.
[22:25] mjr_: ryah: I do not know them
[22:25] mjr_: oh wait, yes I do
[22:25] mde: Jesus titty-fucking Christ, 25% of our users are on IE6.
[22:26] mikeal: yammer is for enterprise
[22:26] javajunky: sechrist: First of all you get yourself a request token
[22:26] probablyCorey: sechrist: You could use xauth maybe?
[22:26] javajunky: ( getOAuthRequestToken )
[22:26] mikeal: enterprise hates updating their desktop software :)
[22:27] sechrist: javajunky: I'm doing that
[22:27] javajunky: probablyCorey: not sure xauth would help him here, in fact that might even be worse ! ;)
[22:27] sechrist: did you see my code?
[22:27] javajunky: yes.
[22:27] probablyCorey: javajunky: But you don't need to authenticate view the web
[22:27] sechrist: https://gist.github.com/74b057178bb7f5778878
[22:27] sechrist: 401 on getOauthAccessToken
[22:28] mde: Fortunately enterprise also means people who will pay actual money for a service.
[22:28] javajunky: uhhuh, once you have the oauth_token construct a url like:
[22:28] sechrist: ah I see
[22:28] javajunky: http://twitter.com/oauth/authenticate?oauth_token=
[22:28] javajunky: http://twitter.com/oauth/authenticate?oauth_token= < oauth_token> sorry
[22:28] sechrist: hum
[22:28] javajunky: go there manually .. I *Think* that will ask for a pin-code or somethign, if twitter is setup correctly for your app
[22:29] sechrist: oh my god
[22:29] sechrist: on dev.twitter.com
[22:29] sechrist: there's a section called My Access Token
[22:30] sechrist: it generates one for the owner's account
[22:30] sechrist: automatically
[22:30] sechrist: rofl
[22:30] javajunky: chortle.
[22:30] creationix: It's public!! http://github.com/extjs/connect
[22:31] mape: creationix: how did sweden treat you? :)
[22:31] creationix: awesome
[22:32] mde: Nice.
[22:32] creationix: ecept my flight leaves in a few hours and I still haven't gone to bed yet
[22:32] javajunky: sechrist: that whole section seems new since when I last logged on there, but handy to know.. its really a shortcut to where we were manually heading :) .. but hopefully now you can just plug that in ?
[22:32] charlesjolley- has joined the channel
[22:33] sechrist: okay
[22:33] sechrist: oauth finally makes sense now
[22:33] sechrist: but it's still retarded
[22:34] javajunky: sechrist: well perhaps, but its a fairly clever solution to the problem of delegated authentication, I"m in no place to come up with a better strategy ;)
[22:34] technoweenie: its less retarded than storing users passwords to other services in your app
[22:35] mape: creationix: To bad you have a girlfriend? ;)
[22:35] javajunky: sechrist: right I'm offski .. hopefully 'getProtectedResource' will do what you need.
[22:35] ph^ has joined the channel
[22:35] sechrist: yeah it works now
[22:35] javajunky: cool
[22:35] sechrist: ACTION punches wall
[22:35] javajunky: any issues, feel free to fork, fix and pull request .. even if you want to add your example to the wiki to help others ;)
[22:35] javajunky: cu
[22:37] admc has joined the channel
[22:37] creationix: mape, I think a wife is the best kind of girlfriend. ;) I get to see my family again tomorrow night.
[22:39] nicolaerusan has joined the channel
[22:39] _announcer: Twitter: "Connect, the #nodejs library I showed off at #swdc is live. Here is the demo I showed: http://bit.ly/c9fPyL"-- Tim Caswell. http://twitter.com/creationix/status/15356378974
[22:39] nicolaerusan: hey
[22:40] mattly has joined the channel
[22:40] nicolaerusan: I am trying to get setup with node.js on OS X and I have no clue as to why its not running
[22:40] nicolaerusan: in the command line, I get the message that the server is running on the port I would like it to be running
[22:40] nicolaerusan: but then I try to hit it in a browser
[22:40] nicolaerusan: and nada
[22:40] nicolaerusan: (i am using the example code provided on the node.js site)
[22:40] nicolaerusan: does node.js provide logging currently?
[22:41] technoweenie: no but frameworks that build on node.js likely have their own logging
[22:41] nicolaerusan: right
[22:41] nicolaerusan: I saw there were some recommended
[22:41] nicolaerusan: frameworks
[22:41] technoweenie: http://github.com/extjs/connect is new
[22:41] nicolaerusan: Djangode
[22:41] javajunky: creationix: hmm connect looks interesting, may port express-auth to plug into that (since express is allegedly getting a rewrite to sit on top anyway) .. does that make sense ?
[22:42] gerad has joined the channel
[22:42] mde: nicolaerusan: Kick the tires on Geddy: http://github.com/mde/geddy
[22:42] nicolaerusan: will try that certainly
[22:42] nicolaerusan: but first, i need to get the actual server up and running
[22:42] nicolaerusan: any ideas as to why it wouldn't be going?
[22:42] mde: Shit, or actually: http://geddyjs.org/
[22:43] javajunky: ;) might as well mention http://expressjs.com/ as well .. just to be fair
[22:43] nicolaerusan: haha
[22:43] technoweenie: and node-router
[22:43] nicolaerusan: everyone is trying to build frameworks on top of this now
[22:43] nicolaerusan: so it seems :)
[22:43] nicolaerusan: i love the framework races
[22:43] nicolaerusan: you guys contributing?
[22:43] mde: It's just finally time for full-stack JS.
[22:44] nicolaerusan: yah
[22:44] nicolaerusan: node.js looks very nice
[22:44] mde: Yeah, Geddy is my deal.
[22:44] javajunky: interseting times :)
[22:44] nicolaerusan: i am looking to implement comet
[22:44] nicolaerusan: why are you building frameworks
[22:44] nicolaerusan: i am curious
[22:44] nicolaerusan: just personally what your motivations are
[22:44] mde: I've been waiting a long time for credible SSJS.
[22:44] nicolaerusan: I c
[22:44] nicolaerusan: i read the node.js source a bit
[22:44] nicolaerusan: looks interesting, nothing revolutionary, when you see things like this you always wonder how people went so long without it
[22:45] nicolaerusan: I mean, how have more sites not needed to implement push for example
[22:45] mde: Just nice being able to write model, form validation, templating one time for both sides.
[22:45] javajunky: I like the idea of being able to render my content on server or client depending on whats available, no context switching etc…
[22:45] nicolaerusan: long polling is so primitive
[22:45] creationix: javajunky: go for it (the port), just ask tjholowaychuk first to make sure he's not already on it
[22:45] javajunky: mde: jinx ;)
[22:45] nicolaerusan: yah definitely
[22:45] mde: Haha
[22:45] nicolaerusan: agreed there
[22:45] mde: "Poke you owm me a Coke."
[22:45] nicolaerusan: no content switching is huge
[22:45] nicolaerusan: some things are shitty though
[22:45] nicolaerusan: that come to mind
[22:45] nicolaerusan: like JS sucks at date functions for example
[22:45] nicolaerusan: and I would question performance capabilities
[22:45] nicolaerusan: of js vs other languages
[22:45] mde: The new Geddy scaffold uses the same model and validation code in the browser as it does in the server.
[22:45] nicolaerusan: currently
[22:45] creationix: technoweenie: actually node-router got absorbed into connect as a middleware module
[22:46] mde: It's pretty sick.
[22:46] nicolaerusan: that sounds interesting
[22:46] mde: creationix: So you can use you own routing if you want, right?
[22:46] mde: khug just rewrote our entire router to do optional captures, url-generation. It's really nice work.
[22:46] javajunky: creationix: I doubt it, I'm not sure he's even convinced by my current approach, tjholowaychuk certainly hasn't fed back on it ;) .. since it was a 'port' of warden which sits in rack in ruby world, I can see it fitting in to connect sensibly.. the only bit I can't see and I'd need to look into connect in more detail is how to throw exceptions up the middleware .. (when everythting's async)
[22:47] nicolaerusan: so anyone have any idea why this wouldn't work?
[22:47] nicolaerusan: http://pastebin.com/bScEjmaW
[22:47] tjholowaychuk: javajunky: sorry man, been so busy no time to review stuff
[22:47] tjholowaychuk: just about to open source ANOTHER project
[22:47] tjholowaychuk: two in one day
[22:47] creationix: mde: yep, connect has very minimal routing
[22:48] technoweenie: nicolaerusan: works fine
[22:48] javajunky: tjholowaychuk: not a criticism, just a statement of fact, its unlikely you're porting express-auth as I don't think you've looked at it ;)
[22:48] creationix: the "route" middleware is pretty much node-router as a layer
[22:48] nicolaerusan: hmm... i guess its my install
[22:48] nicolaerusan: but I just did exactly what the instructions online said
[22:48] nicolaerusan: and there were no error msgs given
[22:48] javajunky: nicolaerusan: seems ok, would guess it is binding to the wrong interface ?
[22:48] nicolaerusan: during the make and make install
[22:48] mde: creationix: If it's analagous to Rack, then I'll definitely look at making Geddy play nicely with it.
[22:48] nicolaerusan: also make test seemed fine
[22:48] morganallen has joined the channel
[22:48] nicolaerusan: what do you mean its binding to the wrong interface?
[22:48] nicolaerusan: interface in what sense
[22:48] tjholowaychuk: mde: it more or less is async rack
[22:48] _announcer: Twitter: "My slides from #swdc http://bit.ly/b30cEo . Thanks to @psvensson and all for a great conf. Now sleep or install #nodejs ???"-- Tom Blackmore. http://twitter.com/tablackmore/status/15356869405
[22:49] creationix: mde: that would be awesome, geddy looks nice
[22:49] mde: I'm always leery of more deps, but I can see how important it is to have everyone talking the same language.
[22:49] creationix: connect is still alpha, but the only way we'll stabilize it is to use it
[22:49] creationix: that's the node way after all
[22:49] mde: Yeah, we're busting ass on it. It finally starting to look like something.
[22:49] javajunky: nicolaerusan: ignore that, the default host to bind to is null so 'any' interface.
[22:49] javajunky: try sudo running it, perhaps a permissions thing
[22:49] nicolaerusan: ahh interesting
[22:49] nicolaerusan: could well be!
[22:50] Nohryb has joined the channel
[22:50] mde: Right on, start using and breaking it.
[22:51] sechrist: technoweenie: do you plan to integrate oauth once they turn that on for the streaming api?
[22:51] sechrist: they do that this month
[22:51] technoweenie: into twitter-node? not unless i see a patch for it. i wrote it as an experiment and dont use it anywhere
[22:52] nicolaerusan: sadly nada
[22:52] nicolaerusan: was not a permissions problem it seems
[22:52] sechrist: technoweenie: oh, ahahaha
[22:52] sechrist: I don't know if there's anything that replaces it
[22:52] technoweenie: other people use it
[22:52] sechrist: beware what you release -- people use it
[22:53] technoweenie: they can use what they want
[22:53] technoweenie: just dont expect me to fix their bugs
[22:53] technoweenie: they can expect that too if they want, *shrug*
[22:53] sechrist: it's fixing your bugs
[22:53] sechrist: lol
[22:53] nicolaerusan: haha technowwenie, i just realized i've used a fair share of your code in the past :)
[22:54] nicolaerusan: i was trying to rememeber where i new the name from
[22:54] nicolaerusan: hmm any ideas how I can get to the root problem of what's going on with node.js not running on mac osx
[22:54] nicolaerusan: the script seems to execute
[22:54] nicolaerusan: its outputting the msg
[22:54] sechrist: if you release something on github that has no competition -- it automatically becomes your social responsibility to support it
[22:54] sechrist: ^_^
[22:55] technoweenie: i want to add more of the twitter api to it eventually
[22:55] nicolaerusan: but nothing is happening when i try to hit the browser
[22:55] technoweenie: sechrist: no it doesnt
[22:55] technoweenie: sechrist: more likely someone else will just write their own anyway
[22:55] sechrist: does too
[22:55] technoweenie: its already happened, there are at least 2 other twitter stream libs in node
[22:55] sechrist: they suck for the streaming api
[22:55] sechrist: iirc
[22:56] technoweenie: ok
[22:56] technoweenie: the personal project i wrote twitter-node for didnt work out
[22:57] technoweenie: http://www.youtube.com/watch?v=e_0ZP6Hf1Q8
[22:57] technoweenie: piping twitter results from the stream to the mac `say` command
[22:57] nicolaerusan: that is a terrifying video
[22:57] nicolaerusan: haha
[22:57] nicolaerusan: but hilarious
[22:59] mde: "The voices, the voices!!"
[22:59] nicolaerusan: .. this will be a stupid question... do i need git installed for some reason to properly build node.js
[22:59] nicolaerusan: ?
[23:00] nicolaerusan: (the answer is no I presume)
[23:00] _announcer: Twitter: "Connect from @creationix, @tjholowaychuk, and ExtJS folks looks to be a fairly interesting framework for Node.js: http://is.gd/cBBfw"-- Micheil Smith. http://twitter.com/miksago/status/15357481665
[23:00] freshtonic has joined the channel
[23:01] micheil: nicolaerusan: no. However, if you want to live on the edge with node, then yes, and if you want to contribute patches, then yes
[23:01] micheil: technoweenie: see that thing about LHC using Mongodb? How awesome's that?
[23:02] ly- has joined the channel
[23:02] technoweenie: pretty awesome, i hope they find the higgs boson particle with mongo
[23:02] nicolaerusan: haha
[23:03] micheil: technoweenie: drop an o there.. boson -> bson
[23:03] nicolaerusan: they must have some ridiculously beefy hardware
[23:03] nicolaerusan: running over there
[23:03] sechrist: but mongo writes to a btree in place without any locks
[23:03] SteveDekorte has joined the channel
[23:03] sechrist: why would the LHC use that
[23:03] micheil: technoweenie: it'd be interesting to know why mongo and not, say, riak
[23:03] Determinist has joined the channel
[23:03] micheil: or bigtable, cassandra, etc.
[23:04] sechrist: cassandra yeah
[23:04] technoweenie: sechrist: its a cache for aggregated data. it doesnt sound like they put anything *important* in there
[23:04] micheil: supposedly they wrote a doctorial on it or something.
[23:04] nicolaerusan: is riak b-tree also?
[23:04] sechrist: mongo's misleading benchmarks
[23:04] micheil: no idea.
[23:04] sechrist: b-tree is find with locks
[23:04] sechrist: like mysql
[23:04] sechrist: fine*
[23:05] nicolaerusan: i mean, b-trees are the standard for dbs
[23:05] nicolaerusan: cassandra uses memtable and then a sstable
[23:05] micheil: sechrist: let me ignorantly think I'm using an awesome db. :P
[23:05] sechrist: I, too, was a mongo fan
[23:05] nicolaerusan: also, you can't add servers live with mongo
[23:05] sechrist: until somebody pointed out it's retarded and that I should use couchdb
[23:05] nicolaerusan: haha
[23:05] nicolaerusan: sechrist: there are successful companies using mongo though
[23:06] sechrist: nicolaerusan: I know lol
[23:06] sechrist: i'm just trolling
[23:06] nicolaerusan: haha u work for couch db
[23:06] sechrist: no but the person that convinced me otherwise does
[23:06] Tim_Smart has joined the channel
[23:06] nicolaerusan: they pay you to spend time on irc channels and bad mouth mongo
[23:06] micheil: sechrist: yeah.. um.. I personally think couch is retarded for things that don't embed it.
[23:07] sechrist: micheil you mean having couchdb on 80 so that web apps can directly hit it?
[23:07] sechrist: the http interface isn't a performance problem O.o
[23:07] micheil: that, and the idea of having to explicitly define models and things like that..
[23:07] sechrist: the views concept is pretty sweet
[23:07] sechrist: depends on your use case
[23:07] micheil: plus, I like the idea of binary encoded json
[23:08] sechrist: mongodb on a single server though
[23:08] sechrist: I swear you'll lose your shit
[23:08] sechrist: with repl and stuff it's fine
[23:09] micheil: sechrist: the recommended setup is 1 master, 1 slave
[23:09] technoweenie: we have mongo on a single server, havent lost shit
[23:09] sechrist: kill -9 during operations shouldn't have the possibility of corrupting your data
[23:09] sechrist: imo
[23:09] micheil: technoweenie: what's mongofied?
[23:09] micheil: *what's been
[23:09] technoweenie: exception tracker, its not at all critical
[23:09] sechrist: iirc I can kill -9 couch
[23:09] sechrist: and not corrupt anything
[23:09] micheil: sechrist: even mid insert?
[23:10] nicolaerusan: hmm.. I honestly have no idea what is wrong with the node.js install
[23:10] nicolaerusan: sadness
[23:10] sechrist: micheil you may lose the insert
[23:10] micheil: nicolaerusan: make a gist of the errors you're getting, what you get from ./configure and link them
[23:10] sechrist: but no corruption
[23:10] SteveDekorte has joined the channel
[23:10] nicolaerusan: no errors from configure
[23:10] micheil: I think that's the same with mongo
[23:10] sechrist: wrong
[23:10] sechrist: you have to run repair
[23:10] sechrist: and hope you don't lose shit
[23:10] SteveDekorte_ has joined the channel
[23:10] micheil: nicolaerusan: yeah, having both just helps
[23:10] nicolaerusan: here i do it from scratch
[23:10] nicolaerusan: one sec
[23:11] sechrist: also mongo has another problem
[23:11] sechrist: when you write any data, it only writes it on the master, then replicates it later
[23:11] sechrist: what if the master goes down
[23:11] micheil: you can do 2 masters + slave
[23:11] technoweenie: when's later
[23:12] sechrist: technoweenie: later is any time not before the server returns "OK" status from the operat... oh wait. mongo has no verification that the query succeeded
[23:12] sechrist: my third problem with it
[23:12] sechrist: spray and pray the operation completed
[23:13] sechrist: sanity checks are too slow for mongo apparently
[23:13] nicolaerusan: so what still needs to be done for node.js
[23:13] nicolaerusan: maybe i'll get my hands a bit dirty and dive in
[23:13] sechrist: udp
[23:14] sechrist: I want a node-dns server
[23:14] nicolaerusan: that's an interesting idea
[23:14] micheil: nicolaerusan: not really a heap in many senses, it's usable now.
[23:14] sechrist: specifically a node dns cache
[23:14] micheil: for instance, someone's requested chown, so I've added an early version of that in, and now I'm writing getuser and getgroup methods
[23:15] Aria: Hm. Why a cache, sechrist? (something unbound doesn't do for you?)
[23:15] nicolaerusan: is the primary use for UDP multicasting these days?
[23:15] nicolaerusan: i've never worked with it really
[23:15] nicolaerusan: dns
[23:15] nicolaerusan: i know
[23:15] nicolaerusan: is one use
[23:16] micheil: nicolaerusan: just write and hack on things that interest you, be it node modules, node core, etc.
[23:16] micheil: documentation, tutorials, etc.
[23:16] nicolaerusan: mitcheil: will do
[23:16] sechrist: well a dns cache for like my local network
[23:17] sechrist: they exist in other paradigms already, that's not really the point
[23:17] sechrist: udp should be supported in node
[23:17] sechrist: it's event driven -- it's perfect for gameservers
[23:17] sechrist: however gameserver need UDP
[23:17] sechrist: because tcp is retarded for that
[23:17] micheil: although, iirc, udp can drop messages easily
[23:18] sechrist: that's the point
[23:18] micheil: a protocol / ip level structure where you do not care about whether the message reaches the end point
[23:18] sechrist: that's why you use udp
[23:18] sechrist: have you ever written a game server?
[23:18] sechrist: I mean like FPS gameserver
[23:18] sechrist: where current state is everything
[23:18] micheil: no, but I would've thought you'd want all messages getting to the server
[23:18] sechrist: hell no
[23:19] sechrist: you have a sanity mechanism for important messages so that they resend
[23:19] sechrist: but if you have like 60 ticks per second
[23:19] sechrist: in tcp
[23:19] sechrist: and one drops
[23:19] sechrist: you literally have to wait for the nth one to resend
[23:19] sechrist: before the subsequent ones are parsed
[23:19] sechrist: that kills the state
[23:19] Ori_P has joined the channel
[23:20] sechrist: basically the way to implement a lot of FPS gameservers is to add tcp-like sanity only for important messages
[23:20] sechrist: quake 3 pretty much standardized it
[23:20] gerad1 has joined the channel
[23:20] sechrist: but still there's a lot of other usecases for udp in node than gameservers and dns
[23:21] hemulen has joined the channel
[23:21] nicolaerusan: mitcheil: http://pastebin.com/Lxz8xW5n
[23:21] micheil: nicolaerusan: minus the t thar.
[23:22] micheil: nicolaerusan: that should work.
[23:22] micheil: make test
[23:22] technoweenie: make install
[23:22] micheil: that too.
[23:25] creationix: Looking forward to the hack night after #txjs. I'm always in a hacking mood after a day of conference.
[23:25] nicolaerusan: mitcheil: minus the t where?
[23:25] nicolaerusan: micheil: sorry for repeatedly misspelling
[23:25] creationix: oops, wrong window
[23:26] nicolaerusan: what do u mean make install
[23:26] nicolaerusan: i called make install
[23:26] micheil: creationix: there's another window? I'm intrigued.
[23:26] micheil: you called make
[23:26] creationix: micheil: that was a tweet, I'm using adium beta, it supports twitter and irc
[23:26] micheil: nice
[23:27] creationix: it's not as nice as twitterrific and colloquy, but it is nicly integrated
[23:27] nicolaerusan: yes i did call make
[23:27] nicolaerusan: but i son't follow
[23:28] micheil: nicolaerusan: you didn't install it
[23:28] micheil: nicolaerusan: you just made it
[23:28] micheil: so, currently it'll be in ./build/default/node/ or something
[23:31] sanderjd has left the channel
[23:34] nicolaerusan: hey guys
[23:34] nicolaerusan: so.. i installed properly as far as i can tell
[23:34] nicolaerusan: (i did call make install, make test seems to have run fine too
[23:34] nicolaerusan: http://pastebin.com/nZiawp2n
[23:34] nicolaerusan: still... no luck when i try to hit the example code
[23:35] mostlygeek has left the channel
[23:35] mostlygeek has joined the channel
[23:37] [[zz]] has joined the channel
[23:37] kodisha has joined the channel
[23:40] brianmario has joined the channel
[23:41] admc has joined the channel
[23:48] ajpiano has joined the channel
[23:49] gerad has joined the channel
[23:52] mjr_: nicolaerusan: can you verify that the server is running with netstat?
[23:53] mjr_: and also try curl -v localhost
[23:53] ajpi has joined the channel
[23:54] morganallen has joined the channel
[23:54] nicolaerusan: doing both
[23:54] nicolaerusan: sec
[23:55] nicolaerusan: i already tried curl before
[23:55] nicolaerusan: and nada
[23:55] nicolaerusan: but trying again
[23:55] nicolaerusan: looks like its not working...
[23:55] nicolaerusan: port scan is running now (i am on osx)
[23:56] elliotcm has joined the channel
[23:56] nicolaerusan: hmm interestingly it says something is running on port 800
[23:56] mjr_: just do netstat -an and make sure that there's something in LISTEN state on port 8000
[23:56] nicolaerusan: 8000 but i dont think its nodejs
[23:56] nicolaerusan: Open TCP Port: 8000 irdmi
[23:56] mjr_: OK, so this is probably that stupid tcp46 tcp4 thing
[23:57] nicolaerusan: ?
[23:57] mjr_: Can you change the port number to 8080 and see if ti works?
[23:57] nicolaerusan: can you elaborate?
[23:57] mjr_: ryah: remember how I told you about this tcp46 thing before?
[23:58] nicolaerusan: wow man... so sad... such a silly thing for me to not have checked the ports
[23:58] nicolaerusan: my apologies for wasting time
[23:58] nicolaerusan: thanks a lot for all your help
[23:58] mjr_: there is actually a node bug here
[23:59] mjr_: It should have thrown an exception, but it didn't.
[23:59] mjr_: Sorry about that.
[23:59] ako has joined the channel