[00:00] mscdex: mde: ping [00:01] langworthy has joined the channel [00:01] bruce_ has joined the channel [00:02] alirezam has joined the channel [00:03] masahiroh has joined the channel [00:05] chrischris has joined the channel [00:05] alireza has joined the channel [00:06] eboyjr has joined the channel [00:06] eboyjr: Where is the documentation for util.inherits()? [00:07] eboyjr: What does it do exactly? [00:07] tprice: object inherits object proto and such [00:07] eboyjr: No constructors are called? [00:08] creationix has left the channel [00:09] landlessness has joined the channel [00:10] landlessness has left the channel [00:10] mscdex: yay i wrote my first chrome extension [00:11] eboyjr: what does it do? [00:11] mscdex: an ftp directory listing sorter [00:11] mscdex: ! [00:11] mscdex: :D [00:11] mscdex: i'm surprised chrome doesn't already have it [00:12] eboyjr: so when you go to ftp://blah/ ? [00:12] mscdex: yeah [00:12] eboyjr: ah, cool [00:12] mscdex: makes tracking down newest files so much easier ;-) [00:15] JusticeFries_ has joined the channel [00:15] bruse: maybe there's not that many people who use ftp servers any more [00:16] bruse: especially from the web browser [00:16] mscdex: well, they went through the trouble of adding basic ftp access [00:16] mscdex: adding sorting is not that much more :) [00:16] Sembiance: eboyjr: by the way, I'm doing it in node :) [00:18] davidwalsh has joined the channel [00:19] bartmax has joined the channel [00:19] bartmax has joined the channel [00:23] dgathright has joined the channel [00:23] UHMA has joined the channel [00:24] UHMA: anyone is sf and want to drink beer and do soem coding tonight? lol ... that's my idea of a rainy friday [00:24] UHMA: *in [00:25] eboyjr: It's rainy here in my neck of the woods too [00:25] UHMA: in canada it's snowing, so it's not so bad [00:26] UHMA: pretty shitty for walking around town tho [00:27] mscdex: several inches of snow here [00:27] mscdex: :S [00:28] eboyjr: Be happy, snow is awesome [00:28] eboyjr: When you drive slow :) [00:28] sh1mmer has joined the channel [00:31] jacobolus has joined the channel [00:32] tilgovi has joined the channel [00:33] creationix has joined the channel [00:35] twoism has joined the channel [00:35] JuicyJuuce has joined the channel [00:36] friendlystranger has joined the channel [00:36] cardona507 has joined the channel [00:36] tprice: error: Unable to find 41c1563584bfb018a444e92f01f8cff87ccda30b under https://github.com/ry/node.git [00:36] tprice: Cannot obtain needed object 41c1563584bfb018a444e92f01f8cff87ccda30b [00:36] tprice: while processing commit 24aded078fd6838d2f21934e57c7cc8dfd7303d1. [00:36] tprice: fatal: Fetch failed. [00:37] tprice: whats is this? [00:37] sprout has joined the channel [00:37] tprice: trying to build 3.0 [00:37] sonnym has joined the channel [00:38] creationix has left the channel [00:39] eboyjr has left the channel [00:40] torvalamo: you mean 0.3 [00:40] Alex3000 has joined the channel [00:42] tprice: yeah 0.3 [00:42] aconbere has joined the channel [00:43] torvalamo: you should get the tarball [00:43] torvalamo: instead of cloning [00:43] tprice: it should just work [00:43] torvalamo: the repo can have changes made after the version [00:43] tprice: lucky i downloaded it last week [00:43] tprice: so im good [00:44] torvalamo: also it could be that the version doesn't exist in the master repo [00:44] torvalamo: since it was branced earlier [00:44] torvalamo: not saying that's the case here, just saying it could happen [00:45] EyePulp has joined the channel [00:45] tprice: when did theu add the enw v8 to node? [00:45] UHMA: i walked to the store and now i'm drenched.. [00:45] tprice: i think its v8 3.0.0 [00:46] torvalamo: http://nodejs.org/changelog.html [00:46] torvalamo: v8 3.0.3 [00:46] torvalamo: node 0.3.2 [00:46] torvalamo: unstable [00:47] tprice: so it has to be 0.3.2 [00:47] Gruni has joined the channel [00:47] tprice: im running v0.3.2-pre [00:53] dgathright has joined the channel [01:04] tprice: whats a good XMLRPC cleint for node? [01:04] tprice: i want to talk to rtorrent [01:04] tprice: anyone know? [01:05] slaskis has joined the channel [01:11] mraleph has joined the channel [01:13] jvolkman_ has joined the channel [01:16] ivan has joined the channel [01:19] SubStack: tprice: `npm ls rpc` says yanx does xmlrpc [01:19] ivan has joined the channel [01:22] eee_c has joined the channel [01:22] SubStack: cmake sucks [01:23] SubStack: That is all. [01:23] dguttman has joined the channel [01:23] markwubben has joined the channel [01:27] cjm has joined the channel [01:27] bruse: i've never heard of a build system that doesnt [01:28] boaz has joined the channel [01:34] mraleph has joined the channel [01:40] micheil has joined the channel [01:46] aconbere has joined the channel [01:46] sprout has joined the channel [01:48] Wizek has joined the channel [01:48] TheEmpath: introducing [01:49] pHcF: can someone help me optimizing my express script? [01:49] TheEmpath: Imhotep, my Node.js socket server for realtime applications. It comes with its own build in minigame to demonstrate how it works https://github.com/cainiac/imhotep [01:49] pHcF: (please) [01:50] pHcF: http://github.com/pedrofranceschi/blogode [01:50] pHcF: it is currently using too much memory for multiple requests [01:50] pHcF: there should be a memory leak somewhere [01:52] bingomanatee_: in (or even out) of express, if you send raw body data to a node server, how do you extract it from request object? [01:52] TheEmpath: depends on what you are using to be the socket handler [01:52] Spion_: any node library to deal more easily with the combination of callbacks and exceptions in your own (JS) code? [01:53] TheEmpath: socket.io allows you to pass anything [01:53] TheEmpath: you'd access it as you would on the client [01:53] aguynamedben has joined the channel [01:53] dguttman has joined the channel [01:53] TheEmpath: as per multiple requests, node.js is designed to handle connections to come in and out as fast as possible to establish hte socket connection [01:53] TheEmpath: once the socket connection is setup, then its just a matter of passing packets back and forth [01:54] ysynopsis has joined the channel [01:54] TheEmpath: for the socket request handling, i'd recommend some various types of queue systems. [01:54] TheEmpath: i use 3 different kinds. one to handle async requests, one to handle stream requests, and another to handle subscriptions [01:56] TheEmpath: make sure your clients don't pass needless data [01:56] TheEmpath: otherwise your server will just be handling bogus data that it doesn't need [01:57] TheEmpath: i get to around 200 requests per second before my main application queue backs up. im trying to find the issue [01:58] pHcF: can someone help me optimizing the memory usage of my application? http://github.com/pedrofranceschi/blogode [01:58] Gruni has joined the channel [02:01] sprout1 has joined the channel [02:01] baddogai has joined the channel [02:02] stagas has joined the channel [02:06] AAA_awright_ has joined the channel [02:10] pHcF: ok, i got my express app using 412mb. of ram after 200 requests [02:10] pHcF: this is weird right? [02:23] bingomanatee_: oh hey looks like rawBody is a parameter of request, so great. [02:23] aklt has joined the channel [02:31] alek_br has joined the channel [02:31] bingomanatee_: BTW both pHcF and TheEmpath: might consider using something like rabbitMQ to help with load balancing. [02:31] temp02 has joined the channel [02:32] jesusabdullah: Hey webdudes, question time! semantic web: The future, or misguided? [02:32] bingomanatee_: Why can't it be both? [02:33] bingomanatee_: Keep in mind that you can't really rationally evaluate a solution without a specific problem. [02:34] jesusabdullah: Point [02:34] TheEmpath: bigomanatee_: Yeah, I've been looking to message queue systems. i know i'll need it when I start roping in other things [02:34] bingomanatee_: Because computers are the imperfect work of imperfect people, then they are best suited towards problems with a relatively narrow set of possible solutions and resolutions. [02:34] jesusabdullah: A few ideas I'm tossing around: [02:34] hdxsfbr has joined the channel [02:34] DoNaLd` has joined the channel [02:34] jesusabdullah: First, it seems that some people would like everything on the web to have computer-understandable semantics [02:34] TheEmpath: i want to see a system that uses AI to analyze every strings to predict where the code will fire next [02:34] TheEmpath: event* [02:35] jesusabdullah: That is, everything conforming to this idea of a semantic web [02:35] wilmoore has joined the channel [02:35] jesusabdullah: I'm skeptical of this---it feels to ME that more modest goals of *some* data being semantically labelled is more reasonable [02:35] bingomanatee_: That implies that computers understand. They don't. People understand. Computers process, sort, and execute instructions on data. [02:36] TheEmpath: you also have to factor in that the touchy, feely art students who spent their lives as either serial college students or on a trust fund are starting to wade into the computer science field now that video games are the new Hollywood. [02:36] bingomanatee_: Now, ask me if nested data structures like noSQL are more appropriate to a wide variety of problems and I'll say, mostly yes. But semantic encoding doesn't make computers "understand" any more than porn files make them grow tits. [02:36] TheEmpath: and with it, they will bring forth all kinds of brutal misconceptions of how things should work [02:36] jesusabdullah: Well, you know what I mean---"labeled" data that's organized semantically and not presentationally [02:36] bingomanatee_: There is no ghost in the machine. [02:37] bingomanatee_: If a data format makes it easier for you to program a given solution, then by golly, its the one to use to encode a particular data. [02:37] bingomanatee_: If a lot of people find it easier to program using semantic data, then its awesome. [02:38] bingomanatee_: But because sematic encoding by definition is not optimized towards a specific type of processing and analysis, it will never be the most efficient form of encoding for any particular application. [02:39] bingomanatee_: Any mutually understood form of encoding is fine. CSV is fine, if you know what the columns mean. XML is fine if you know how to parse XML. [02:39] TheEmpath: "creatives" who come up with these ideas are totally dependent on Moore's law always being true and rarely know it. [02:39] jesusabdullah: But that's not quite what I'm talking about---I'm talking about semantic labelling for the sake of others, not for yourself---that is, "tagging" all your webpages so that computer programs expecting said tags can do something with them. It seems to me that this is the goal of the w3c semantic web people, irrespective of how much merit a particular method of 'tagging' data has [02:39] bingomanatee_: But no matter how sophisticated your data storage, data just sits there. The only thing that really matters is what your code can do. [02:39] jesusabdullah: Sure [02:40] jesusabdullah: and if you don't expect someone to want to do something with your data other than read it, then... [02:40] jesusabdullah: ...too lazy to finish that idea. [02:40] bingomanatee_: My feeling is this - if you are expecting a "web page" to be digested by a computer than you are not creating a web page by my definition. You are creating a data feed. [02:40] TheEmpath: lol [02:40] TheEmpath: zing [02:40] TheEmpath: we have a winrar [02:40] jesusabdullah: I think I feel that way too [02:41] jesusabdullah: not everybody will want to make a data feed, even if it's easy to do [02:41] jesusabdullah: The other thing, I think, is just a matter of format and tools [02:41] TheEmpath: in order to create a human/machine data hybrid, you either have to expand the lingustic processing capabilities of machines [02:41] TheEmpath: or dumb down the human species to be serial-thinking processors [02:41] TheEmpath: i think the latter is far easier [02:42] jesusabdullah: Hah [02:42] TheEmpath: ACTION waves at Twitter. [02:42] bingomanatee_: "You don't understand. The terminator doesn't sleep, or feel pain; all it does is serve porn for other terminators to digest and classify. THAT'S ALL IT DOES." [02:43] jesusabdullah: I've seen a lot of posters here at this conference about using semantic web ideas to wrangle data [02:43] TheEmpath: dead @ bingomanatee_ [02:43] jesusabdullah: Lots of xml and "ontologies" [02:44] SubStack: the new hotness is schemaless json document stores [02:44] SubStack: silly academics, always behind the times [02:44] SubStack: however understandably [02:44] bingomanatee_: Any time someone uses hot and XML in the same sentence I refer them to Tufte's "signal to noise" paradigm. [02:45] TheEmpath: but i like having a noise floor (request header) of 200k :( [02:46] bingomanatee_: well as long as you are using node, or assembly, then that shouldn't be an issue. [02:46] bingomanatee_: to quote Bill Cosby's skit about Noah, "How long can you tread binary? HA HA HA!" [02:46] temp01 has joined the channel [02:49] TheEmpath: so about this dang-fangled rabbit mq [02:49] TheEmpath: would i put socket requests into rabbit and then pop those requests back over to my application queue? [02:49] bingomanatee_: disclaimer - just starting this myself. [02:49] TheEmpath: doh [02:50] bingomanatee_: But rabbit and queues in general are activity buffers. [02:50] TheEmpath: i had a boss that swore by it [02:50] TheEmpath: tried to use it [02:50] tilgovi has joined the channel [02:50] TheEmpath: damn thing was always down [02:50] bingomanatee_: You insert binary data into a queue with one process [02:50] bingomanatee_: then pull binary data out of it with another. [02:50] TheEmpath: right [02:50] bingomanatee_: Meaning, your processing rate is not dicatated by your input rate. [02:50] TheEmpath: nor do i want it to [02:50] stagas has joined the channel [02:51] bingomanatee_: well thats why you might consider queues. [02:51] TheEmpath: there are some high priority things that need near real time [02:51] bingomanatee_: Also of course, if your input is consistently too fast for any one processor, you can have multiple client machines digest the queue commands. [02:51] TheEmpath: but when trying to send, say, mapreduce requests to mongo [02:51] TheEmpath: i'd use el rabbit [02:51] [[zz]] has joined the channel [02:51] bingomanatee_: Then you can have multiple queues - a high priority queue and a low priority one. [02:51] TheEmpath: i have a bunch of different queues to be honest :( [02:52] bingomanatee_: yes - I'm simplifying for the sake of argument. [02:52] TheEmpath: ah [02:52] bingomanatee_: I'm saying: one of the purposes of queues is as a load balancer. Another possible use is as a triage engine. [02:53] TheEmpath: say i got a client that moves crap aroudn a screen and other clients looking at that screen expect updates in real time [02:53] TheEmpath: whats a good interval to update? [02:53] TheEmpath: im at 100ms [02:53] bingomanatee_: That is too specific for an intelligent answer. [02:53] TheEmpath: doh [02:53] bingomanatee_: That comes down to testing and experience. [02:53] TheEmpath: yeah :( [02:54] bingomanatee_: I mean in my experience most people don't notice delays of a few seconds unless they are currency traders or psychotic. [02:54] TheEmpath: i tween motion between visual elements in 100ms intervals so it looks like they are getting it in near real time [02:54] mjr_ has joined the channel [02:54] TheEmpath: when in reality they are only getting ten updates per second [02:54] hdxsfbr: I'm trying to get the blog example from nodejs camp but I'm getting this http://pastebin.com/0FwLpENV can someone help? [02:54] bingomanatee_: So unless you are writing a RTS game, you can lean on sockets and keep pulsing updates every second or so. [02:55] hdxsfbr: when I click on admin [02:55] bingomanatee_: yes one second [02:55] TheEmpath: yeah im going the RTS route :( i gotta make my code optimized. i get to around 18 connections, dumping 200+ socket requests per second, then hte main application queue starts backing up and spazzing out [02:55] TheEmpath: before you know it, my main app queue is at 10k events and then everything just grinds to a halt [02:56] mjr_: node can do about 2,000 socket writes a second in my testing [02:56] TheEmpath: how big? [02:56] bingomanatee_: what kind of event detail are we talking about? [02:57] TheEmpath: events contain a command, timestamp, source (client data from socket.io) [02:57] TheEmpath: argument array [02:57] bingomanatee_: htxfbr: you have to put "localvariable" into the render code of a given action. [02:57] TheEmpath: refresh_interval [02:57] bingomanatee_: or assign it to a global variable, as in "globals.localVariable = 'foo'"; [02:58] softdrink has joined the channel [02:58] bingomanatee_: mind if I ask what kind of system this is? [02:58] TheEmpath: bingomanatee_: here's the request data: https://github.com/cainiac/Imhotep/blob/master/public/js/client.js#L63-77 [02:59] hdxsfbr: bingomanatee_: thx man, I suppose those I should start me research with how Jade works correct? [02:59] TheEmpath: which gets paired with socket.io data and put in the main event queue: https://github.com/cainiac/Imhotep/blob/master/core/application.js#L79 [02:59] bingomanatee_: IMHO jade is not worth that sort of effort - ejs is more humane. [03:00] hdxsfbr_ has joined the channel [03:01] mjr_: My events are about 40 bytes each [03:01] TheEmpath: D: [03:01] TheEmpath: mine are considerably larger :( [03:01] mjr_: But most of the time is spent shuffling data up and down between node, JS, and kernel. Do larger reads make it go much slower? [03:02] TheEmpath: i dunno if its a speed issue [03:02] jesusabdullah: SubStack: I agree. The sheer amount of xml is a bummer [03:02] jesusabdullah: Though better than the weird opendap metadata protocol [03:02] bingomanatee_: Empath - here is a thought - can you buffer output locally and send out fewer requests to the sockets? [03:02] TheEmpath: i think the issue, mjr_, is when shifting off the array, a new variable is "deep copied", and that might slow things down? [03:03] stagas has joined the channel [03:03] TheEmpath: bingomanatee_: I've gradually shifted in that direction [03:03] mjr_: I don't really know what you are doing with your events, so who knows. [03:03] mjr_: But node can really do a lot of socket ops / sec. [03:03] jacobolus has joined the channel [03:04] TheEmpath: i mean when shifting off the queue, thats equal to a new call, right? [03:04] bingomanatee_: The only thing to make sure is that when you should have a second asynchronous timeout to make sure that your socket buffer is sent at least once a second or so regardless of how many items are in it. [03:04] mjr_: Are you using Arrays as queues and calling arr.shift() on them? Because that's really slow. [03:04] TheEmpath: shift doesn't pass a reference, i believe [03:04] TheEmpath: i use fastQueue [03:05] TheEmpath: creationix's fastQueue [03:05] mjr_: oh, cool [03:05] mjr_: That wins compared to Array. [03:05] TheEmpath: highly [03:05] mjr_: ryah recently checked in oprofile options to the build. [03:05] mjr_: So if you really want to know what is slow, you should be able to use oprofile on linux [03:05] jesusabdullah: This guy I talked to made a plugin for drupal and mediawiki which will take information from a sparql database, apply some xsl action onto it and insert it [03:06] TheEmpath: freaking nifty [03:06] mjr_: And get CPU samples and stack traces from JS all the way down into the kernel. [03:06] TheEmpath: that is damned good to know [03:06] mjr_: I recommend trying that if you want to know where you time is going. [03:06] jesusabdullah: Seemed like a cool guy, but I'm not sure I'm convinced that sparql and xsl are the way to go [03:06] TheEmpath: bingomanatee_: i have a master RequestQueue on the client, and i send out data on it whenever data goes in it. [03:08] jesusabdullah: SubStack: I think the geophysicists actually want nosql action, but don't know it [03:08] SubStack: lots of types of databases [03:08] jesusabdullah: SubStack: It doesn't help that they have to deal with legacy types [03:08] jesusabdullah: er, legacy filetypes [03:09] jesusabdullah: i think opendap is actually a step in the right direcdtion [03:09] jesusabdullah: I think that rss pubsub thing isn't terrible either, except for the xml bit maybe ;) [03:11] Yuffster has joined the channel [03:13] bingomanatee_: Empath: if your requests are simply too fast for your featherweight node app, you need more than one node app and a load balancer. [03:14] TheEmpath: ya [03:15] TheEmpath: then i'll need a way to map data between each of them and... blamo... rabbitmq! [03:15] TheEmpath: or a persistant memory storage like redis [03:15] bingomanatee_: Not trying to sell you on a product but it does seem appropriate. [03:15] TheEmpath: yeah, im trying to scale [03:16] TheEmpath: i'll spend a week reading through this oprofile data [03:16] TheEmpath: see if that helps me optomize a few things [03:16] TheEmpath: i'd hate to just default to SCALE IT OUT TO OTHER MACHIENS LOL SCREW IT as my opening salvo [03:16] bingomanatee_: well set up multiple node servers on different ports and route commands between them. [03:17] bingomanatee_: Just have a single node process that does nothing but bouce to other local processes and if you can't load balance locally and solve the problem, then you are back on the familiar multi-machine territory. [03:18] TheEmpath: right [03:18] TheEmpath: i'd have to centralize some of that persistent data, such as logged in users, and those users X, Y coords [03:18] bingomanatee_: You just might be being taken down by the single threaded nature of node. [03:18] TheEmpath: or have a data map to fetch them efficiently [03:18] TheEmpath: i've considered that as well [03:18] TheEmpath: python scares me [03:19] TheEmpath: if im going multithreaded, im going java or, worst case, C [03:19] TheEmpath: i dont need a pretty looking language to multithread [03:19] bingomanatee_: I've heard good things about Erlang. :D [03:19] iFire: ACTION hides jaskell [03:19] iFire: haskell [03:19] jesusabdullah: SubStack: You're still on GINA's web page [03:19] jesusabdullah: jaskell? Now we're talkin'! [03:20] TheEmpath: java + haskell? [03:20] bingomanatee_: the java implementation of haskell? :D [03:20] TheEmpath: or [03:20] TheEmpath: or [03:20] TheEmpath: jaskelly rabbit [03:20] iFire: that was a typo :) [03:20] TheEmpath: java + haskell + rabbitMQ [03:20] bingomanatee_: jaskelope [03:20] bingomanatee_: I'm trademarking that. You can't use it. [03:21] TheEmpath: damn it [03:21] jesusabdullah: hah [03:21] TheEmpath: call it the Fudd Stack [03:21] iFire: ooh http://jaskelope.com/ [03:22] TheEmpath: that profiler is sweet [03:22] TheEmpath: and thanks for the tips bingo [03:22] TheEmpath: i'll mostly like consider and experiment with all of them in the near future [03:22] alek_br has joined the channel [03:22] TheEmpath: have a fine weekend, gentlemen [03:22] bingomanatee_: U2 [03:23] jesusabdullah: http://datacasting.jpl.nasa.gov/ I want to see if I can use this for, like, data mash-ups or something [03:31] mikew3c has joined the channel [03:31] DoNaLd` has joined the channel [03:33] robotarmy has joined the channel [03:37] hdxsfbr_: ok still trying to get the blog example going, now getting this: 500 Error: /Users/andre.batista/Downloads/joyent-node-camp-245abe1/blog/views/archive.jade:21 19. ' h3' 20. ' a(href: \'/post/' + post.id)= post.title' 21. '' Cannot find module 'markdown', I tried to do "npm install markdown" but that also gave me an error... any suggestions? [03:38] hdx has joined the channel [03:38] hdx: ok still trying to get the blog example going, now getting this: 500 Error: /Users/andre.batista/Downloads/joyent-node-camp-245abe1/blog/views/archive.jade:21 19. ' h3' 20. ' a(href: \'/post/' + post.id)= post.title' 21. '' Cannot find module 'markdown', I tried to do "npm install markdown" but that also gave me an error... any suggestions? [03:40] hdx: no TGIF hackers right now hun? :P [03:46] SubStack: hdx: well that isn't terribly helpful [03:47] SubStack: "that also gave me an error" [03:47] SubStack: well there you go [03:48] bingomanatee_ has joined the channel [03:51] Floxxx: that must be the problem eh SubStack? ;) [03:57] dgathright has joined the channel [04:00] alexfner has joined the channel [04:04] cjm has joined the channel [04:07] iszak has joined the channel [04:11] ajpi has joined the channel [04:11] sivy has joined the channel [04:15] m32311 has joined the channel [04:20] brianleroux has joined the channel [04:21] googol has joined the channel [04:22] gf3 has joined the channel [04:25] devinus: lol i've never actually read a line from stdin in node, anybody know how to do that? [04:26] masahiroh has joined the channel [04:27] jacobolus has joined the channel [04:28] sechrist: How do I add something to do -I for gcc in the wscript? [04:28] sechrist: include path :\ [04:29] Aria has joined the channel [04:31] aheckmann has joined the channel [04:35] UHMA has joined the channel [04:36] mscdex: devinus: open stdin, listen for the 'data' event, and keep appending the data to a local variable until you see a '\n' in the data [04:36] devinus: mscdex: hrm...i wonder if people would appreciate a blocking versin of that in sys.... [04:37] devinus: for debugging [04:37] devinus: or simple scripts [04:37] mscdex: it's not that bad. just have whatever you want to do after you get a line, in a function [04:38] mscdex: then call it after you get one [04:38] SubStack: devinus: process.openStdin().on('data', function (line) {}) [04:39] Aikar: unless your piping data from a process, typing into stdin im sure your data is not going to be buffered, so data will trigger on enter [04:39] mscdex: true [04:40] dgathright has joined the channel [04:40] SubStack: require('lazy')(process.openStdin()).lines.map(String).forEach(function (line) {}) [04:42] cardona507 has joined the channel [04:42] alek_br has joined the channel [04:43] cardona507 has joined the channel [04:43] hdx has joined the channel [04:44] hdx: ok still trying to get the blog example going, now getting this: 500 Error: /Users/andre.batista/Downloads/joyent-node-camp-245abe1/blog/views/archive.jade:21 19. ' h3' 20. ' a(href: \'/post/' + post.id)= post.title' 21. '' Cannot find module 'markdown', I tried to do "npm install markdown" but that also gave me an error... any suggestions? [04:44] softdrink has joined the channel [04:45] whyme has joined the channel [04:47] zentoooo has joined the channel [04:47] hdx: ya'll bots? [04:48] DoNaLd` has joined the channel [04:49] kriszyp has joined the channel [04:49] SubStack: hdx: quit posting the same message [04:49] halfhalo: ACTION is a bot [04:50] SubStack: "but that also gave me an error" is not enough information to go on [04:50] halfhalo: hey, its more descriptive than what I normally say. which is "SHIT BE BROKE" [04:51] halfhalo: and thats why i'm not allowed within 2 miles of any school [04:51] jesusabdullah: hdx: Dump fucking EVERYTHING in a pastie of some kind, link the pastie, and THEN we may try to help you [04:51] hdx: halfhalo: I'm sorry bud, I was on http://webchat.freenode.net/ and it kept freezing on me so I could not see an answer or be certain that my questio had been posted [04:52] eboyjr has joined the channel [04:52] mjr_: hdx: the best way to get help is to put up a gist of the full steps to run it and the full stack trace, along with the versions of node and your OS. [04:52] eboyjr: For EventListeners, can I pass extra arguments to listener.on() so that I can recieve them as arguments in the callback? [04:53] eboyjr: listener.on('data', hollaback, this, 'something', 'else', 'here'); [04:53] SubStack: eboyjr: yep! [04:53] hdx: here's what I get when doing npm install markdown http://pastebin.com/F7Agrkek [04:53] eboyjr: SubStack: Just like that? [04:53] SubStack: affirmative [04:53] eboyjr: Sweet :) thanks [04:54] SubStack: hdx: install libmarkdown [04:55] siong1987 has joined the channel [04:55] SubStack: or there's markdown-js [04:55] SubStack: hdx: https://github.com/visionmedia/node-discount [04:56] SubStack: oh whoops [04:56] SubStack: ah nevermind that one has name : "markdown" in the package.json [04:57] hobodave has joined the channel [04:58] hdx: SubStack, I could not do "npm install libmarkdown"... but thx for try'n to hep [04:59] jesusabdullah: sh failed? [05:00] jesusabdullah: hdx: Do you have the Checking for library markdown : not found [05:00] jesusabdullah: line? [05:00] hdx: I was able to install markdown js but still getting this on the /archive action for the blog example http://pastebin.com/pz1bKsZt [05:00] jesusabdullah: You didn't paste half the output of npm, but that's what I get [05:01] jesusabdullah: markdown-js and "markdown" are different. [05:01] mjr_: SubStack: are you sure on takes extra args like that? I just looked at the source, and it looks like it only takes two args, type and listener. [05:01] hdx: jesusabdullah: no... the line is like htis : ":markdown [05:01] hdx: | ## Hello [05:01] hdx: " [05:01] jesusabdullah: w8 wat [05:02] jesusabdullah: I'll be back later---Starbucks is kicking me out [05:02] SubStack: mjr_: oh crap you're right [05:02] SubStack: I was totally thinking of emit() [05:02] mjr_: ah, yes [05:02] SubStack: eboyjr: disregard that, but you can pass multiple args to emit() [05:02] mjr_: eboyjr: to preserve that state, you need to wrap it up in a function somehow. [05:03] SubStack: em.on('foo', function (bar, baz, quux) { /* ... */ }) [05:03] SubStack: then later: em.emit('foo', 7, 8, 9) or whatever [05:04] eboyjr: Awh okay :`( [05:05] hobodave_ has joined the channel [05:05] SubStack: hdx: no install the c libmarkdown like it says on that link [05:05] SubStack: the markdown on npm is just bindings for that other lib [05:08] hdx: SubStack: which link? this one https://github.com/visionmedia/node-discount? [05:09] DoNaLd` has joined the channel [05:09] sechrist: starbucks kicks people out? [05:09] sechrist: buy more coffee [05:11] ajpiano has joined the channel [05:15] richcollins has joined the channel [05:17] amerine has joined the channel [05:20] mscdex: people need their wifis! [05:21] unlink: no but they close [05:22] namelessnotion has joined the channel [05:38] mikeal has joined the channel [05:39] Spion_ has joined the channel [05:40] amerine has joined the channel [05:42] stagas has joined the channel [05:44] jchris1 has joined the channel [05:45] mbrochh has joined the channel [05:50] alek_br has joined the channel [06:00] alek_br has joined the channel [06:01] dgathright has joined the channel [06:02] mjr_: wise laptop owners find solace in their mifi cards. [06:02] mjr_: or liquor, or some kind of relationship [06:02] mjr_: I guess. [06:07] Aria: Or sit outside in the cold. [06:12] sechrist: Is there a way to build preprocessed js into a binary or something? [06:12] sechrist: kind of how the node stdlib works [06:13] ryah: sechrist: the node js code isn't very special [06:13] ryah: it's just compiled into the executable [06:13] ryah: as strings [06:13] ryah: they still get compiled by v8 on start [06:13] alek_br has joined the channel [06:13] sechrist: oh.. hmm [06:13] ryah: sechrist: is your startup time slow? [06:14] sechrist: nah that's not it. I'd like to ship a binary to machines in my clusters with it already built in [06:14] sechrist: I thought it precompiled it [06:14] sechrist: if not then.. eh [06:15] ryah: there is sometime but it requires substancial work to expose and it's questionable if there is much to gain [06:16] ryah: substantial work, even. [06:16] sechrist: I'm not really looking to obfuscate anything [06:17] sechrist: so yeah [06:17] richcollins has joined the channel [06:18] sechrist: ryah: so if v8 has to recompile it every time it runs, couldn't you shave off time by doing this before hand? [06:18] sechrist: or is that the part you said is hard [06:19] sechrist: at least get it lexed down into bytecode maybe [06:19] ryah: ryan@ryan-laptop:~/projects/node% ./node benchmark/startup.js [06:19] ryah: Started node 100 times in 2409 ms. 24.09 ms / start. [06:19] ryah: ^-- atm im not feeling any startup pains [06:19] robotarmy has joined the channel [06:20] ryah: other things more important :) [06:21] ryah: yes, might be able to get faster with some work [06:21] sechrist: how is startup time on the palm devices? [06:21] ryah: not good :) [06:22] ryah: 1 second or something [06:22] sechrist: yikes [06:22] sechrist: 24ms -> 1000ms lmao [06:23] alek_br has joined the channel [06:25] hobodave has joined the channel [06:25] aaronblohowiak has joined the channel [06:27] arrty has joined the channel [06:33] mikew3c has joined the channel [06:39] tmpvar has joined the channel [06:42] brianmario has joined the channel [06:45] joel__ has joined the channel [06:46] dgathright has joined the channel [06:48] mscdex: hmm... i wonder if info from the os module would feel better if they were (read-only) properties instead of get* functions [06:49] mscdex: any thoughts? [06:50] DoNaLd` has joined the channel [06:51] eboyjr: They can be getters/setters [06:52] JusticeFries has joined the channel [07:00] shinmei has joined the channel [07:01] eboyjr: Do I need to call stream.end(); then stream.destroy() ? [07:03] mjr_: destroy is only for unexpected abort type situations. [07:03] mjr_: end is what you do normally [07:03] GasbaKid has joined the channel [07:04] eboyjr: mjr_: Ah, thank you [07:09] siong1987 has joined the channel [07:10] JimBastard has joined the channel [07:12] isaacs has joined the channel [07:17] isaacs: mape: i removed ctime and mtime completely, finally. use time.created/time.modified [07:18] Ob1kn00b has joined the channel [07:27] langworthy has joined the channel [07:28] ossareh has joined the channel [07:28] murz has joined the channel [07:31] fangel has joined the channel [07:39] wilken_ has joined the channel [07:41] Dreamer3_ has joined the channel [07:52] aaronblohowiak: happy friday night everyone [07:55] mscdex: yes! [07:56] aaronblohowiak: :-) [07:56] aaronblohowiak: how are you spending it? [07:57] UHMA: adding features to my app :) [07:57] aaronblohowiak: UHMA: link? [07:57] UHMA: after 2 weeks of boring bug fixes and stability shit [07:58] UHMA: http://slashjoin.com/ [07:59] UHMA: try my channel: http://slashjoin.com/gavinuhma/ [07:59] brianler_ has joined the channel [08:00] cloudhead has joined the channel [08:00] hdx has joined the channel [08:03] UHMA: aaronblohowiak: is that you drawing the ascii art ? [08:04] aaronblohowiak: UHMA: nope. i got self absorbed in fb for a minute [08:05] aaronblohowiak: UHMA: this is fantastic [08:05] aaronblohowiak: why does it keep bouncing us back to google? [08:06] stagas: I typed in google.com :P [08:06] UHMA: yeh it's like completely open [08:06] SubStack: I maked a turtle [08:06] UHMA: everyone can control the page [08:06] UHMA: haha nice one SubStack [08:07] stagas: it should have some growl or something saying: 'user x just went to y. Follow him?' [08:07] UHMA: yeh totally good idea [08:07] aaronblohowiak: is there a shortcut for adding text? [08:07] UHMA: aaronblohowiak: thakns! [08:07] UHMA: yep, a backslash, \ [08:07] stagas: very cool [08:08] stagas: what if it jumps to a site I'm logged in? [08:08] UHMA: there's some cool url shortcuts too... like slashjoin.com/aaron/way cool ... that would create a channel called aaron and search google for 'way cool' [08:08] UHMA: only static pages are supported for the most part so far [08:08] aaronblohowiak: ahhh everything went white [08:09] UHMA: youtube tends to be a bitch, login sites like fb and whatever complain.. and some ajax heavy sites are messed [08:09] UHMA: but for the most part it's pretty supportive [08:09] UHMA: the web is a complicated thing to support haha [08:09] stagas: they have x-frame-options deny [08:10] UHMA: SubStack: that ascii is great [08:10] stagas: facebook, yahoo etc [08:10] UHMA: i have some ideas to make them work [08:10] UHMA: static pages are the easiest pins to knock down [08:11] AAA_awright has joined the channel [08:11] eboyjr has left the channel [08:13] aaronblohowiak: UHMA: how do you do the highlight? [08:14] stagas: totally hates my page [08:14] stagas: :P [08:14] UHMA: stagas: that ur soccer game ? [08:14] stagas: yep [08:14] UHMA: just highlight with your mouse [08:15] UHMA: aaronblohowiak: if that's not working, what's your browser/os and I'll get it fixed [08:15] aaronblohowiak: UHMA: i mean, how do YOU do the highlighting ? [08:15] aaronblohowiak: :-) [08:15] stagas: how about commenting out that window.scroll [08:16] stagas: it's annoying while you're reading something for the other to move you out of view [08:16] aaronblohowiak: also, if the site being viewed has iframes, it is another limitation. i am the only web developer ever to use iframes, though. [08:16] UHMA: oh, just embed a span with a yellow bg [08:16] UHMA: ahah at iframes [08:16] aaronblohowiak: http://slashjoin.com/home/http://aaronblohowiak.github.com/Propagate-JS/demo/shopping_cart.html [08:17] UHMA: yeh there's so much more work to keep supporting things [08:17] UHMA: we just got our first funding for servers though :) [08:17] aaronblohowiak: niiiice [08:18] stagas: very good idea you just need to fine tweak a few usability things and it'll be awesome [08:18] UHMA: stagas: totally agree re scrolling. I think it's more of a pain than a feature haha [08:18] aaronblohowiak: i like it [08:19] aaronblohowiak: if you are on a conference call [08:19] stagas: yeah some times things are obvious when actually implemented :) [08:19] stagas: a switch about that would be nice though [08:19] stagas: I don't mind watching a channel like a tv, have the others scroll me up and down and whatever [08:19] UHMA: yep, i've totally ignored front end.. it needs a lot of work but that's not my specialty.. we'll find a good ui designer i hope [08:20] sechrist: woah [08:20] UHMA: stagas: yeh spot on. it's really fun just sitting back and watching other browse around [08:20] stagas: UHMA: sit back mode! :) [08:21] L_star has joined the channel [08:21] UHMA: i set up a google bot channel a few weeks ago... and was just watching google hit random pages.. it was really cool [08:21] UHMA: ahah [08:21] aaronblohowiak: hmm, i wonder why it keeps popping back [08:21] aaronblohowiak: or is this just me fighting with someone for control =) [08:21] mbrochh has joined the channel [08:21] UHMA: could be [08:22] UHMA: that "follow me" method would work good [08:22] sechrist: omg [08:22] UHMA: maybe just do an irc style op / voice system for each channel [08:23] stagas: it could be a growl that piles up depending on which user went where, or show you that x number of users went there, follow them [08:24] UHMA: yeh that would be really cool [08:24] UHMA: i like ur thinking [08:25] UHMA: i've added chat to the dev server, that makes a big difference [08:25] stagas has joined the channel [08:26] UHMA: people tend to get confused about how to create / share channels... but some nice ui will clear that up [08:29] stagas: login w/ twitter and auto create own channel, and have a small avatar follow mouse pointer [08:29] stagas: :) [08:30] Blink7 has joined the channel [08:32] JimBastard has joined the channel [08:32] UHMA: auto create channel after they login ? [08:33] stephank has joined the channel [08:34] chapel: what are you guys talking about? [08:34] stagas: yeah and a button saying: Share your channel with your friends on Twitter, and have a text area with the link in [08:34] cardona507 has joined the channel [08:35] UHMA: yeh, something really obvious to say you've created a channel now share it on fb/tw/email/im etc [08:35] UHMA: i find people just create channels and then they don't know to share them [08:35] UHMA: it's a completely pointless app if you're by urself [08:35] chapel: can I get a link? [08:35] stagas: the message saying: 'Hey, I'm browsing real time, come join me slashjoin.com/stagas' [08:36] UHMA: chapel: http://slashjoin.com [08:39] wilken_ has joined the channel [08:39] chapel: hmm tried using it, getting a 504 gateway timeout [08:39] UHMA: which browser/os ? [08:40] UHMA: it's working for me [08:40] chapel: chrome osx [08:40] UHMA: that should def work [08:40] stagas: chapel: http://slashjoin.com/home [08:41] chapel: could it be that I am on my 3g phone connection? [08:43] UHMA: possibly [08:43] UHMA: let me try mine [08:43] UHMA: it usually works [08:43] psychon has joined the channel [08:44] chapel: it says connected at first [08:44] UHMA: working for me on 3g [08:44] chapel: but then says disconnected after a few seconds [08:44] femtoo has joined the channel [08:45] UHMA: aw, yeh maybe the connection is just too slow [08:45] UHMA: it really should work tho [08:46] chapel: well who knows [08:46] chapel: not a big deal, sorry I cant test it :( [08:48] UHMA: next time [08:48] dgathright_ has joined the channel [08:49] Gruni has joined the channel [08:53] UHMA has joined the channel [08:54] derren13 has joined the channel [09:00] sixtus42 has joined the channel [09:00] hdx has joined the channel [09:02] adambeynon has joined the channel [09:02] Wizek has joined the channel [09:03] mattcodes has joined the channel [09:03] mikeal has joined the channel [09:08] tprice: whats the best irc client? [09:09] psychon has left the channel [09:09] Wizek has left the channel [09:09] stagas: chatzilla on xulrunner :P [09:10] UHMA: so this means I don't have to use mirc lol [09:11] mattcodes: i like limechat [09:11] tprice: i mean for node [09:11] tprice: a lib [09:12] mattcodes: ah sorry [09:12] chapel: irc-js [09:13] tprice: does it support comm like /msg? [09:14] jesusabdullah: tprice: node-irc [09:14] jesusabdullah: tprice: I've used both, and I recommend node-irc [09:14] chapel: tbh idk [09:14] jesusabdullah: github.com/martynsmith/node-irc iirc [09:14] chapel: use whatever other people use [09:14] chapel: :P [09:15] jesusabdullah: the other is github.com/gf3/irc-js [09:15] jesusabdullah: Both work, though I find that node-irc has less bugs [09:15] jesusabdullah: I also like the interface better, but your mileage may definitely vary on that one [09:16] tprice: i get errors like throw new Error("Uncaught, unspecified 'error' event."); with nodeirc [09:16] MikeW: Have any of you guys ever used Thrift (or protocol buffers or some other RPC) with node.js? [09:18] jesusabdullah: Really? That's weird @ tprice [09:18] jesusabdullah: MikeW: I've used dnode [09:19] jesusabdullah: MikeW: It's nice if you're making both ends and aren't too worried about interop [09:19] tprice: maybe i need to play with ti more [09:19] jesusabdullah: tprice: If you want to share a pastie or something, I can take a peek [09:19] alek_br has joined the channel [09:20] mattcodes: anyone familiar with connect-auth? [09:20] jesusabdullah: SubStack: Did you use connect-auth? I'm really tired but I know you needed auth for browserling and that you use connect in some places [09:21] SubStack: not connect-auth no [09:21] SubStack: connect-compatible sessions though [09:22] matjas has joined the channel [09:22] stagas has joined the channel [09:22] amerine has joined the channel [09:22] mattcodes: nevermind was reading the code couldnt figure out where it delete the auth when sessions enable, its passed by reference so delete req.getAuthDetails().user will delete the authenicated session [09:23] masahiroh has joined the channel [09:23] jesusabdullah: SubStack: Ah [09:23] jesusabdullah: Man I am le tired [09:27] jesusabdullah: Looking at jsdap. Half of the code is for browser compat issues ;_; [09:27] jesusabdullah: I think I want to rewrite it to use node for its proxy [09:28] chapel: whats jsdap? [09:28] jesusabdullah: http://code.google.com/p/jsdap/ [09:29] sechrist has joined the channel [09:29] jesusabdullah: js client for opendap, which is kinda like a RESTish database for geophysics data [09:29] UHMA: does this video play for you guys: http://slashjoin.com/youtube/ ? [09:29] saschagehlich has joined the channel [09:30] jesusabdullah: Yeah, why? [09:30] UHMA: weird... if you load a youtube video on slashjoin it won't work... but if you go back 10 minutes later it will [09:31] jesusabdullah: Jesus, fuckin' AK Air has had me on hold for a long time [09:31] jesusabdullah: I'm impatient :C [09:32] bingomanatee_ has joined the channel [09:33] linac has joined the channel [09:35] chapel: jesusabdullah: you live in ak dont you? [09:37] jesusabdullah: I do! [09:37] jesusabdullah: Why do you ask? [09:37] chapel: :) [09:37] jesusabdullah: What led you to that conclusion [09:37] chapel: I think I talked to you about it before [09:37] jesusabdullah: WHY ARE YOU STALKING ME [09:37] jesusabdullah: Ah [09:37] jesusabdullah: Yeah, entirely possible3 [09:37] chapel: that and the ak air part [09:37] saschagehlich has joined the channel [09:38] chapel: being that I lived in ak, you mentioning it reminded me [09:38] jesusabdullah: Hmm! Which part? [09:38] chapel: willow [09:38] jesusabdullah: Ah [09:38] chapel: north of big lake [09:38] jesusabdullah: This *does* sound familiar [09:38] chapel: :) [09:38] chapel: yeah, not many people have lived in willow [09:38] jesusabdullah: Willow: At Least It's Not Trapper Creek [09:39] chapel: hah [09:39] vineyard has joined the channel [09:39] jesusabdullah: Talkeetna: No, Main Street Is Not A Gigantic Sidewalk [09:39] jesusabdullah: Talkeetna's my hometown, so [09:40] jesusabdullah: When did you live in Willow? [09:40] jesusabdullah: Oh, wait, you were on the Houston side of Willow right? I seem to remember you saying that [09:41] chapel: well, I went to houston [09:42] jesusabdullah: Right [09:42] jesusabdullah: OUR RIVALS [09:42] chapel: but I was on the north side of willow [09:42] jesusabdullah: huh [09:42] jesusabdullah: Now THAT's interesting [09:42] chapel: not far from talkeetna [09:42] jesusabdullah: Family working @ Houston? Or what? [09:42] chapel: uhh I dont remember [09:42] chapel: tbh [09:42] jesusabdullah: *shrug* [09:42] jesusabdullah: Was a youngun? [09:43] chapel: what mile post is talkeetna at? [09:43] chapel: in HS [09:43] chapel: I just didnt pay attention to why I went there over talkeetna [09:43] chapel: seems like I was closer to houston [09:44] jesusabdullah: ah [09:44] jesusabdullah: SVH was at mi. 99 or so [09:44] jesusabdullah: When was this? Like, year-wise? [09:45] jesusabdullah: Sorry to grill you [09:45] jesusabdullah: ACTION tries to ticket again [09:46] jesusabdullah: Yessch, moar time [09:47] chapel: I graduated and moved 2001 [09:47] jesusabdullah: Okay [09:47] jesusabdullah: I was in 8th grade then [09:47] chapel: oh wow a youngin [09:47] chapel: :P [09:47] jesusabdullah: That was right around when Talkeetna Alaska Lodge was being built, right? [09:47] jesusabdullah: or maybe Talkeetna Elementary? [09:47] chapel: it was right before houston upgraded their highschool [09:47] jesusabdullah: hmm [09:48] lifecoder has joined the channel [09:48] jesusabdullah: Dad worked on the TkE and TAL projects [09:48] jesusabdullah: but not Houston afaik [09:48] jesusabdullah: Dad also supplied cabinets and such to the new SVH after the old one burned down [09:49] sechrist has joined the channel [09:50] Wizek has joined the channel [09:52] augustl has joined the channel [09:53] chapel: we lived at like mile post 74 I think [09:53] chapel: iirc [09:54] jesusabdullah: ah [09:54] jesusabdullah: Sounds fairly close to the cut-off I think, actually [09:54] jesusabdullah: *yawn* [09:54] chapel: yeah [09:54] chapel: I haven't been to ak since 2001 [09:55] chapel: I do have a 10 year reunion this next year though [09:55] SubStack: I haven't been there since september when I left :p [09:55] chapel: you lived in ak SubStack ? [09:55] SubStack: yep [09:55] SubStack: for 6 years [09:55] chapel: damn [09:55] SubStack: Kenai for 2, Fairbanks for 4 [09:55] chapel: thats the higest concentration of ak people Ive had on irc [09:56] SubStack: elliottcable might still live there too [09:56] fly-away has joined the channel [09:56] jesusabdullah: Yeah, at the least I think he hasn't changed his githubs yet [09:57] Wizek: What is a good way to keep track of user session in Node? [09:57] SubStack: Wizek: https://github.com/creationix/nstore-session [09:58] SubStack: also https://github.com/pkrumins/supermarket-cart [09:59] SamuraiJack has joined the channel [10:01] liar has joined the channel [10:09] femtooo has joined the channel [10:16] unomi has joined the channel [10:16] femtoo has joined the channel [10:18] stbuehler: hrmpf. tried building nodejs 0.2.2 against v8 2.5.9.4, now i get segfaults in node::ObjectWrap::Wrap -> v8::Object::InternalFieldCount [10:24] Wizek: How SIDs (Session IDs) are usually generated? [10:28] ph^ has joined the channel [10:30] beawesomeinstead has joined the channel [10:30] beawesomeinstead has joined the channel [10:30] pdelgallego has joined the channel [10:33] hellp has joined the channel [10:39] sudoer has joined the channel [10:41] zorzar has joined the channel [10:46] d0k has joined the channel [10:52] torvalamo has joined the channel [10:55] teemow has joined the channel [11:02] mr_daniel has joined the channel [11:02] vandenoever has joined the channel [11:03] vandenoever: is there a proxy server written in node.js? [11:05] ewdafa has joined the channel [11:09] aaronblohowiak: vandenoever: the google knows [11:09] aaronblohowiak: google! proxy server node [11:10] aaronblohowiak: err, what is the bot command? [11:11] vandenoever: ah indeed, found a nice tutorial [11:11] vandenoever: pretty amazing! [11:11] vandenoever: ACTION would like to write a caching http proxy using git for storage [11:11] sechrist: Is there some kind of list of what node_addon does for me in waf? [11:11] stride: why would you need a versioned cache? [11:12] vandenoever: that way i get a history of the pages (how they change in time) and avoid doing gzip because git objects are gzipped already [11:12] aaronblohowiak: vandenoever: https://github.com/pkrumins/nodejs-proxy [11:12] vandenoever: stride: i'd like to have history of web pages i visit [11:12] aaronblohowiak: might be a good start [11:12] vandenoever: ACTION is reading http://www.catonmat.net/http-proxy-in-nodejs [11:13] stride: hmkay [11:13] vandenoever: stride: i'd like to have in index in it too so i depend less on web search [11:13] vandenoever: i can just search in my browsing history independent of browser [11:13] unomi has joined the channel [11:13] vandenoever: and using strigi i will also search in e.g. a tar i download over http [11:14] vandenoever: but that is a tentative feature [11:14] wilken_ has joined the channel [11:15] vandenoever: oh wow, this 20 line proxy works fine [11:18] aakour has joined the channel [11:20] sechrist: okay so if waf is using NODE as a library [11:20] sechrist: where is "libnode"? [11:20] wdperson has joined the channel [11:28] sechrist: undefined symbol: ev_default_loop_ptr [11:28] sechrist: hm [11:28] Spion_ has joined the channel [11:28] Spion_ has joined the channel [11:28] sechrist: vandenoever: due to newer improvements, that proxy can be made like 10 lines [11:28] sechrist: and have higher performance [11:30] vandenoever: sechrist: sounds great, got an example? will it work with the stable version? [11:31] sechrist: sys.pump primary [11:32] sixtus42 has joined the channel [11:33] vandenoever: sechrist: ah, but i want to add header modification so i cannot use pump [11:33] twoism has joined the channel [11:34] sechrist: how the heck do I link ev withou waf? [11:34] stbuehler: -lev [11:34] sechrist: doesn't exist [11:34] sechrist: yet node-waf can build with it [11:35] stbuehler: hm [11:35] sechrist: there is no file called libev a or so on my box [11:35] stbuehler: it doesn't link against any libs at all [11:36] sechrist: then what am I getting wrong here? I'm getting undefined symbol ev_default_loop_ptr when I run with that addon [11:36] stbuehler: so just try that too :) don't link against anything which is provided by node [11:36] stbuehler: and without the addon it works? [11:36] sechrist: yea [11:38] sechrist: the way my make system is spitting out g++ looks like this [11:38] sechrist: g++ -shared -o obj/bjncanvas.node obj/Canvas.o obj/CanvasGradient.o obj/CanvasRenderingContext2d.o obj/color.o obj/Image.o obj/ImageData.o obj/init.o obj/PixelArray.o -L/home/chase/bjn/master-canvas/denim/lib -Wl,-rpath=../lib -Wl,-rpath-link=/home/chase/bjn/master-canvas/denim/lib -rdynamic -lstdc++ -ldl [11:38] stbuehler: hm, perhaps your nodejs doesn't export ev_default_loop_ptr [11:39] sechrist: 0000000000a709d0 b ev_default_loop_ptr [11:40] stbuehler: what is the rpath for? [11:40] stbuehler: stdc++? dl? [11:42] stbuehler: very strange [11:44] stbuehler: ah [11:44] stbuehler: lower case means "local" symbol, it is not exported [11:44] stbuehler: and it shouldn't be exported, as it isn't part of the api [11:45] sechrist: then what the heck is my app complaining about [11:45] stbuehler: is your app using ev_default_loop_ptr ? [11:45] sechrist: it's using eio [11:45] sechrist: eio_custom [11:47] stbuehler: add -DEV_MULTIPLICITY=0 to your compile flags [11:49] naseviska has left the channel [11:49] sechrist: :) [11:53] stbuehler: btw: i have debian packages now: https://build.opensuse.org/project/show?project=home%3Astbuehler%3Anodejs - v8 2.5.9.4, nodejs 0.2.5, ares 1.7.3, ev 4.1 [11:58] sriley has joined the channel [12:00] sechrist: wow my mbp is burning me [12:01] MikeW: clearly there is a flash ad running somewhere in the background ;) [12:01] sechrist: yeah [12:02] sechrist: that is exactly what it was [12:06] femtoo has joined the channel [12:08] cjm has joined the channel [12:08] lin_ has joined the channel [12:11] chapel: I use chromes built in way to block flash [12:13] qFox has joined the channel [12:18] cjm has joined the channel [12:20] mscdex: heh... desktop users are trying to block flash and android users are desperately trying to get it loaded on their devices :P [12:20] Wyverald has joined the channel [12:20] sixtus42: it can't die soon enough [12:22] lin__ has joined the channel [12:22] mies has joined the channel [12:26] arpegius has joined the channel [12:27] kirkt has joined the channel [12:27] kirkt: i'm looking for an inheritence system to use in node.js. any recommendations? [12:27] chapel: well android users have flash, not trying [12:27] chapel: but I have it on demand on my phone as well [12:27] sixtus42: kirkt: what do you mean? [12:28] sixtus42: kirkt: oo? [12:28] kirkt: sixtus42: yes [12:28] jesusabdullah: Umm [12:28] sixtus42: kirkt: js alrady has one ;-) [12:28] jesusabdullah: javascript is object oriented! [12:29] kirkt: yea i know, but i don't really like the prototypical approach [12:29] jesusabdullah: Just tack new methods onto your object, and you're g2g I'd say [12:29] jesusabdullah: Well, there are ways around it--for example, joose--but I think embracing js objects as-they-are is much more idiomatic [12:29] jesusabdullah: But yeah---look into joose [12:29] mraleph has joined the channel [12:30] kirkt: yes, joose is one thing i've been reviewing. mootools' core was another [12:32] jesusabdullah: well, either way [12:32] jesusabdullah: You can also program js in a more functional style [12:32] sixtus42: kirkt: I started toying with coffee script, see http://jashkenas.github.com/coffee-script/#classes [12:32] jesusabdullah: it works fairly well for that too [12:32] jesusabdullah: osnap, forgot about coffee class action [12:33] kirkt: well i'm just starting out in node.js, i really want to progress from my limited knowledge about DOM and jquery to serverside javascript [12:33] jesusabdullah: You'll feel right at home [12:33] kirkt: i figure a first way to do that is find a way to write more modular code [12:33] jesusabdullah: Ah [12:33] jesusabdullah: You want modules! [12:33] jesusabdullah: in your js file, populate the module.exports object [12:33] kirkt: well i already think objects for the last 15 years of my life :) [12:34] jesusabdullah: and then use it with [12:34] jesusabdullah: var module = require('module') [12:34] jesusabdullah: and then each of your modules are separate [12:34] kirkt: yep i've looked also at commonjs [12:35] jesusabdullah: commonjs :/ [12:35] jesusabdullah: the module system is borrowed from them [12:35] jesusabdullah: but there's also other commonjs-ish stuff that's not-so-great [12:35] jesusabdullah: node and its ecosystem took The Good Parts in a lot of ways [12:35] jesusabdullah: anyways [12:36] sixtus42: kirkt: js is more object-oriented than most languages [12:36] sixtus42: kirkt: you just have to get used to objects and classes being the same in the language [12:36] jesusabdullah: hah [12:36] sixtus42: kirkt: the syntax is not the nicest, I admit that [12:37] jesusabdullah: Yeah, that took me a bit ;) [12:37] kirkt: yea, i do want inheritence and mixins [12:37] jesusabdullah: Maybe I don't "get" inheritance, etc. [12:37] jesusabdullah: but can't you just tack on new methods to old objects? [12:38] jesusabdullah: object.newMethod = function(x) { return x+1 }; //done? [12:38] kirkt: i'm also aware that its easy implement in the prototypical approach, but i'm also aware that i don't know javascript enough to cover all of the usecases that i might bump into in the future [12:38] jesusabdullah: Well, only one way to learn <_< [12:38] sixtus42: jesusabdullah: you can, but you have a memory penalty. inheritance is a fancy way of saying "prototype chain" (or vise versa) [12:38] jesusabdullah: Pffsht, "memory penalty" [12:38] sixtus42: kirkt: what language are you coming from? [12:39] kirkt: right now ruby at night, C#/.net at day :) [12:39] jesusabdullah: I gotta be honest, I feel like if you're sacrificing readability and idiomatic niceties in the name of speed, then somewhere you're doing it wrong [12:39] jesusabdullah: ah, ruby [12:39] jesusabdullah: I learned python instead, but I've heard good things about ruby [12:39] sixtus42: I came from ruby as well. js is very easy to master, if you already know ruby [12:39] jesusabdullah: Oh man, 20 minutes and I can get my abortion of a reservation sorted out [12:40] dgathright has joined the channel [12:41] kirkt: i think i'll go with mootools since i've seen it starting on node.js [12:41] jesusabdullah: What are you looking to do, kirkt? Just ooc [12:41] kirkt: http://davidwalsh.name/mootools-nodejs [12:41] jesusabdullah: When I start messing with something I usually have a project in mind [12:42] Blink7_ has joined the channel [12:42] jesusabdullah: for example, my first foray into js was to try to make a Game Of Life sim [12:42] jesusabdullah: that failed miserably, btw [12:42] jesusabdullah: but that's beside the point [12:42] kirkt: some requirements at work are coming up and i'm looking to find the fastest way to learn node.js so that i can introduce it when time needed. [12:43] jesusabdullah: secret requirements? [12:43] kirkt: not secret but very erlangish. [12:43] jesusabdullah: Well [12:43] jesusabdullah: just because it's in erlang doesn't mean I won't understand the gist of it right? [12:44] jesusabdullah: My job is Grad Student, so my work mostly requires I write numerical BS [12:44] jesusabdullah: but nothing too intensive---think MATLAB [12:44] kirkt: i understand [12:44] jesusabdullah: Man [12:45] jesusabdullah: I think I really do need "Java for functional programmers" [12:45] jesusabdullah: Because I don't even really know where to begin with that shit [12:45] jesusabdullah: >_< [12:45] jesusabdullah: Then again, I don't have a *need* yet either [12:46] jesusabdullah: well, except for matlab interop [12:46] almaisan-away has joined the channel [12:46] unomi has joined the channel [12:52] mlu: jesusabdullah: it doesn't hurt to think functionally when writing Java :) [12:53] jesusabdullah: orly? [12:53] stbuehler: ryah: c-ares has a nasty bug: https://github.com/ry/node/blob/master/deps/c-ares/ares_expand_name.c#LC89 - it assumes the empty label is always encoded as \0 byte, but it can also be encoded as reference to another \0 byte, which is 2 bytes long [12:54] mlu: jesusabdullah: right -- somet things may be a bit more difficult, but you can still take advantage of the functional stuff [12:54] stbuehler: i just noticed as it cannot read the response for ". NS" from my resolver [12:54] mlu: I first had like 3yr of Java, and then took a Scheme course [12:55] mlu: there are some things that I could easily do in Java that are very difficult in functional languages [12:55] mlu: but the other way around: I found that functional programming stuff mainly allows me to write faster-performing things [12:55] mlu: and take advantage of things such as dynamic programming and memoization [12:55] jesusabdullah: I see [12:55] jesusabdullah: Cool [12:56] jesusabdullah: Good to know one isn't totally hosed [12:56] jesusabdullah: Alright, ticket counter should open at any moment [12:56] mlu: main thing is: you'll miss lambda [12:56] jesusabdullah: *wince* [12:56] jesusabdullah: that's why I'm moving away from python tbh [12:56] mlu: since it kinda exists in Java, but it's horrendously difficult to use [12:56] jesusabdullah: kinda exists? ;) [12:56] mlu: ACTION shakes head at java.lang.reflect [12:56] dgathright has joined the channel [12:57] MattJ has joined the channel [12:57] jesusabdullah: That doesn't sound good [12:57] jesusabdullah: too many dots [12:57] mlu: it gets a lot worse [12:57] mlu: maybe you should just go and learn Ruby instead [12:57] mlu: there are reasons why I don't really do much Java, and this is one of them [12:57] mlu: functional-side of things is much nicer :) [12:57] jesusabdullah: Well [12:57] jesusabdullah: I don't actually *want* to learn java [12:58] jesusabdullah: but if I do things for the scientific world [12:58] jesusabdullah: java is surprisingly big in science [12:58] mlu: get a scheme compiler for Java? [12:58] jesusabdullah: hah [12:58] mlu: * JVM [12:58] jesusabdullah: One of my plans is to learn clojure [12:58] mlu: I'm 100% serious -- lots of those scientific computations would be so much better with functional languages [12:58] jesusabdullah: Yeah they would [12:58] mlu: main advantage to using Java is the ability to easily do multiple iterations cleanly [12:59] mlu: instead of having to think in terms of tail-end recursion, etc. [12:59] jesusabdullah: Sure [12:59] jesusabdullah: After seeing the state of computing in geophysics, I kinda wanna dive in and do posters on using cool things like nosql and clojure for geophysics informatics problems [13:00] mlu: but heh, Ruby and Javascript are still my favorites -- all the advantages of functional languages but still have all the features of your regular stateful languages [13:00] jesusabdullah: *nod* [13:00] jesusabdullah: There's one killer feature of haskell, though [13:00] mlu: 100% functional -- I need to get on that [13:00] vandenoever: is there a way to avoid crashing on 'Error: ENOTFOUND, Domain name not found' at IOWatcher.callback (dns:52:15) [13:00] jesusabdullah: Being able to switch between prefix and infix on the fly [13:01] jesusabdullah: alright tix thyme [13:01] derren13 has joined the channel [13:02] stbuehler: vandenoever: don't throw errors as exceptions in callbacks [13:04] stride: stbuehler: that's a callback in node itself [13:04] stride: vandenoever: what node version are you on and what's your code doing (using the http client class or something?)? [13:05] lin_ has joined the channel [13:05] stbuehler: stride: dns doesn't throw the errors, it passes them to a callback [13:06] stbuehler: so someone starts throwing them as exceptions, otherwise there wouldn't be a problem [13:07] stbuehler: and i think it fails at the end of the IOWatcher.callback, as no one handles the exception there and it goes up to c++ code which doesn't like that [13:08] vandenoever: stbuehler: 0.2.5 and it is calling http.createClient [13:08] stbuehler: stride: here: https://github.com/ry/node/blob/master/src/node_io_watcher.cc#LC57 [13:09] stride: vandenoever: have you tried handling .on('error', function(err)) on the created client? [13:10] vandenoever: stride: i'll try [13:10] stride: stbuehler: yeah, sorry. my point was just that the stack isn't really helpful as it's just node internals there :) [13:11] vandenoever: is addListener same as on ? [13:11] stride: yep [13:11] wilken_ has joined the channel [13:11] jvolkman_ has joined the channel [13:13] vandenoever: stride: that works, thanks [13:13] stbuehler: stride: kk :) and yes, the .on handler should stop .emit('error', ...) from throwing :) [13:16] dgathright has joined the channel [13:20] jashkenas has joined the channel [13:30] aklt has joined the channel [13:30] kriszyp has joined the channel [13:31] tprice: anyone used node-irc? [13:32] stride: a while back I think, what's up? [13:32] jesusabdullah: I have [13:32] jesusabdullah: :v [13:32] masahiroh has joined the channel [13:32] tprice: how do i send /msg? [13:33] jesusabdullah: github.com/jesusabullah/lulzbot [13:33] jesusabdullah: bot.say(channel, phrase) [13:33] jesusabdullah: real easy [13:33] jesusabdullah: irc-js: bot.privmsg(chan, phrase) iirc [13:34] tprice: bot.privmsg is for node-irc? [13:34] stride: nah, that's bot.say [13:40] mbrochh has joined the channel [13:40] mbrochh has joined the channel [13:43] tprice: i dont understadn how i am to do things like /msg NickServ IDENTIFY [13:44] jesusabdullah: bot.say('Nickserv', 'identify hunter2') probably [13:44] wilken_ has joined the channel [13:45] jesusabdullah: I just got the TSA opt-out patdown [13:45] mape: Hmm npm json is borked :( NaN is no good [13:46] Nevtus has joined the channel [13:46] Nevtus has joined the channel [13:46] mape: Duh, nm >_< [13:47] jesusabdullah: herp [13:47] tprice: ERROR: err_notregistered: PRIVMSG You have not registered [13:47] stagas has joined the channel [13:50] jesusabdullah: I have to be honest, I never did privmsg type stuff [13:50] jesusabdullah: I'd try to help you more but it's way too early and I haven't slept yet [13:51] Siedrix has joined the channel [13:54] jvolkman_ has joined the channel [13:56] ysynopsis has joined the channel [13:58] hellp has joined the channel [14:02] vandenoever: hmm, an https proxy is harder than simple http [14:04] Hello71 has joined the channel [14:04] Hello71 has joined the channel [14:08] jesusabdullah: Not surprising :/ [14:10] mlu: technically, on the IRC protocol, private messages to a nick are the same as messages to a channel [14:11] mlu: PRIVMSG #channel :the stuff you want to say (vs. PRIVMSG NickServ :IDENTIFY hunter2) [14:14] mscdex: node.js rules! [14:14] Yuffster has joined the channel [14:17] mlu: mscdex: what's your favorite usage of node.js? [14:17] mscdex: anything really [14:18] mscdex: although i don't use it for writing sites like a lot of people do [14:18] mscdex: with connect and express, etc [14:18] mscdex: i do all the other stuff that nobody does [14:18] mscdex: :P [14:18] mlu: awesome tool to just run some calculations, etc? [14:18] mlu: or maybe a cool dispatching utility? [14:19] oal has joined the channel [14:19] mlu: maybe even get a geeky gf? (hey, I'm one of the geek top dogs, I can use node.js, he only knows Java) [14:19] tmzt: is there anything like an embedded javascript template engine for node/express? I mean to include some conditionals in an html page, not replace with a new reprsentation with something like jade [14:19] mscdex: nothing in particular really, it just makes it ridiculously easy to do stuff that i'd rather not do in c/c++ [14:19] Twyndyllyngs has joined the channel [14:19] Twyndyllyngs has joined the channel [14:19] mlu: mscdex: like a new wireless driver? :P [14:20] mscdex: like networking [14:20] mlu: oh yeah, being able to dispatch a response easily instead of having this stupid event loop [14:20] mscdex: especially the async part [14:20] mscdex: and javascript is really flexible [14:21] lifecoder has joined the channel [14:21] mlu: it's basically just industrial-level scheme :) [14:21] mscdex: oh geez, scheme.... [14:22] mlu: I had a professor that was a huge fanatic about it [14:22] mlu: but the parentheses just turned me off [14:22] mscdex: yeah, it got pretty bad for me when i had to write out huge amounts of scheme code by hand [14:23] mscdex: matching up parentheses and whatnot [14:23] mscdex: i detested it [14:23] stbuehler: i think reading scheme is harder than writing :D [14:23] mscdex: heh [14:23] mscdex: i have nightmares about car and cdr [14:23] mscdex: :p [14:23] jesusabdullah: I still want a text editor that makes outer parens bigger [14:23] jesusabdullah: I'm kinda learning CL on the side [14:24] jesusabdullah: I think sized parens would be pretty boss [14:24] jesusabdullah: I'd probably write it that way if doing it by hand [14:24] mscdex: it's bad enough having to write any code by hand [14:25] mlu: mscdex: they took off points for not matching the parentheses perfectly? [14:25] mlu: but car and cdr are great :) [14:25] mlu: but I don't drive a car nor do I cdr a bear [14:26] heavysixer has joined the channel [14:26] mscdex: no, he wouldn't take off points, but it could trip you up when you were deeply nested [14:26] mscdex: we were taught ruby in that same class [14:27] jesusabdullah: I'd also be interested in a dsl that would replace parens with the whitespace thing [14:27] mlu: ruby = pure awesomeness :) [14:27] jesusabdullah: just to see how well it works [14:27] mscdex: i didn't continue using ruby after that [14:27] mlu: wonder if there is a node.ruby (instead of just eventmachine) [14:27] mscdex: heh [14:27] mlu: there's this software dev process class at my university, and that was taught in ruby on rails [14:28] mscdex: we more or less had to use java for all of our software design courses [14:28] mscdex: and it sucked [14:28] mlu: hmm, java seems to be phasing out at my college [14:29] mlu: only OS development and compilers are still being taught in Java [14:29] mlu: for most things, it's basically -- pick your own language, but if you do it in MIPS assembly, good luck :) [14:29] mlu: imagine writing a raytracer in ASM [14:29] mscdex: well, the projects we had they did let you choose a language, but the restrictions they gave forced you to pretty much choose java [14:30] mlu: hmm, how about C++? [14:31] mscdex: maybe, i can't recall what all the restrictions were exactly. but it was things like it had to be cross-platform and "just work" on any machine [14:32] liar has joined the channel [14:32] mscdex: and not many people in those classes were proficient in qt or any cross-platform c++ libs like that [14:33] jesusabdullah: I don't have a CS degree, so my in-class experience is all with MATLAB [14:33] jesusabdullah: well, and I started coding things in other languages and it was usually fine [14:33] tmzt: mlu: os development in java? [14:33] mscdex: the c++ that was taught there consisted of pure academic exercises, so students never got to neat/useful stuff [14:33] jesusabdullah: except the professors didn't really understand it very well [14:34] mscdex: so that pretty much left java [14:34] mlu: tmzt: it's kinda weird -- it's not a real OS, but comes close to one in the sense that the OS runs on the JVM platform instead of hardware [14:34] mscdex: :/ [14:34] mlu: tmzt: it's a platform called NachOS [14:34] tmzt: nice [14:34] jesusabdullah: lol [14:34] tmzt: posix? [14:35] mscdex: wasn't there a java os some time back? [14:35] mscdex: by sun? [14:35] mlu: tmzt: depending on how you extend it, sure [14:35] tmzt: there was a good third party one for a while [14:35] mlu: tmzt: the class project was to start with a plain MIPS interperter and turn it into a multi-process OS [14:35] tmzt: the real problem is Sun never took linux seriously for java until other stuff was too far established [14:35] mlu: tmzt: and in the process, we implemented swap files, shells, etc. [14:36] mscdex: hmm i can't recall the name of it off the top of my head [14:36] mscdex: it didn't last long though [14:36] mlu: but yeah, it could grow in several directions: could have either been DOS, Linux, AmigaOS, iOS, or even Haiku depending on how you extended it [14:36] tmzt: so what do you guys recommend if I want simple conditionals in html? [14:36] mlu: tmzt: handle conditionals server-side, HTML content should be static [14:37] mscdex: and cached! [14:37] mlu: or, use some sort of templating and substitute [14:37] mscdex: :p [14:37] tmzt: what do you mean? that's what I'm trying to do [14:37] tmzt: just to switch out the logged in status [14:37] tmzt: and leave the rest of the page alone, since it's all dojo client side [14:37] mlu: tmzt: string replacement :) [14:38] tmzt: okay, how? I'm using pump for the few static files actaully served from node, it's all behind nginx so I use that for static [14:38] tmzt: or just split the page up and pump different parts? [14:39] mlu: split the page up and pump in different parts [14:39] mlu: you won't be able to serve it directly from nginx [14:39] tmzt: right [14:39] mlu: however, since node.js is a very efficient event engine anyways, you should be fine in just combining together the parts [14:40] jesusabdullah: tmzt: maybe its the tired talking, but that sounds like a xss/jquery kinda thing to me [14:40] jesusabdullah: when this happens, baleet this div, tack on this div instead [14:41] tmzt: well it's dojo, must content will be fetched but I want to serve a slightly different / based on logged in status [14:42] jesusabdullah: You could still use jquery on login [14:43] herbySk has joined the channel [14:43] jesusabdullah: I've never used dojo actually [14:43] jesusabdullah: I'm not really familiar with it [14:43] matjas has joined the channel [14:45] jesusabdullah: Ah [14:45] jesusabdullah: Yeah, has xhr toys [14:46] jesusabdullah: so when you login successfully, put in your callback some $('div').baleet and $('