[00:00] mscdex: maybe next year i'll have a sweet node job [00:00] mscdex: heh [00:00] mscdex: maintaining spaghetti php sucks [00:00] nexxy: ;P mhmm [00:00] mscdex: but it pays the bills :P [00:01] techwraith: s/spaghetti/'' [00:01] mscdex: eh? [00:01] nexxy: hater! [00:01] techwraith: maintaining php sucks [00:02] techwraith: v8: "maintaining spaghetti php sucks".replace('spaghetti'); [00:02] v8bot: techwraith: "maintaining undefined php sucks" [00:02] techwraith: v8: "maintaining spaghetti php sucks".replace('spaghetti', ''); [00:02] mscdex: techwraith: it's not that bad if it's written and designed well [00:02] v8bot: techwraith: "maintaining php sucks" [00:02] nexxy: except that php has horrible conventions [00:03] techwraith: mscdex: PHP is what happens when you let someone with the attention span of a fruit fly create a language unsupervised [00:03] mscdex: meh [00:04] mscdex: it gained dominance somehow [00:04] mscdex: ;) [00:04] techwraith: mscdex: I used it for years [00:04] techwraith: mscdex: Yeah, it used to be better than the alternatives (perl, cgi, c) [00:05] niftylettuce has joined the channel [00:05] nexxy: uh oh [00:05] mscdex: used to be? lol [00:05] techwraith: bloat [00:05] zackattack has joined the channel [00:05] mscdex: i'd take php over those 3 any day [00:05] Aria has joined the channel [00:05] techwraith: True I guess, I'd make that choice too [00:06] techwraith: but if it was between JS, Ruby, Python, and PHP [00:06] techwraith: I'd take the other three any day [00:06] harth has joined the channel [00:07] tbranyen: $contents = file_get_contents('/etc/passwd') is hard to beat :-/ [00:07] tbranyen: in terms of general scripting php has some nice convenience functions [00:07] techwraith: not speed wise :P [00:07] tbranyen: i don't need async programming for a shell script most likely [00:08] techwraith: True [00:08] tbranyen: i don't use php for general scripting, but i could def see the appeal [00:08] thinker341 has joined the channel [00:08] jeremyselier has joined the channel [00:08] mscdex: node still has some catching up to do with php though in terms of addons and their maturity though [00:09] tbranyen: absolutely and providing sync and async methods is a great idea imo [00:09] mscdex: i'm still considering doing a rewrite of a large php project with node [00:09] mscdex: need to learn me some express and all this web jazz [00:09] mscdex: ;) [00:10] CStumph: express even makes noobs like me happy [00:10] calebc has joined the channel [00:10] Bwen: I think most framework approach it in a way which doesnt meet my own, unfortunately [00:10] thinker341: Hi there, I am trying to install Node on MBP, Can someone help me with library rt : http://pastebin.com/kC6hgDuM [00:11] mscdex: thinker341: don't worry about it [00:11] saschagehlich has joined the channel [00:11] thinker341: mscdex : let me see if i could install ;-), i remember last time it failed complaining about library rt [00:11] p_nitsch has joined the channel [00:12] JJMalina has joined the channel [00:14] dcampano has joined the channel [00:15] Bwen: what i'd like is a clear distinction between the web server and the server side language. [00:16] jaywasta_ has joined the channel [00:17] stagas: Bwen: what do you mean? [00:18] Bwen: a bit like PHP and Apache [00:18] avalanche123 has joined the channel [00:18] techwraith: Bwen: why? [00:19] ericnakagawa has joined the channel [00:19] techwraith: Also, not quite what you're talking about, but have you seen cluster? [00:19] techwraith: Not really drop in app server, but close [00:19] thinker341: mscdex: I spoke too soon, I think something else messed up last time. everything went fine this time. Thx alot [00:19] mscdex: cool [00:20] techwraith: Bwen: http://www.jspp.io/ [00:20] Bwen: I think what would launch node.js alot more is a vHost Framework that would like each vhost still code in node. But without having to think about mime-types, etc... [00:20] Bwen: let each vhost* [00:21] fallsemo has joined the channel [00:21] Bwen: right now you will write a web site with node and you will all these blockers because its so open... which is kewl [00:21] bingomanatee: Hey when you run Node on a multiprocessor setup, is there a way to actively manage which processor a node process uses, and/or use the GPU? [00:22] Bwen: and most write a web site with node and forget the distinction between the server and the web site app [00:22] techwraith: bingomanatee: could be wrong, but I don't think so [00:23] tbranyen: bingomanatee: thats what an operating system doe [00:23] tbranyen: s [00:25] Nietecht: I recently updated express. The default session store now converts objects to json? [00:26] mengxy has joined the channel [00:28] jacter has joined the channel [00:29] tk has joined the channel [00:30] shiawuen has joined the channel [00:30] jacter has joined the channel [00:30] springmeyer has joined the channel [00:32] fairwinds has joined the channel [00:34] echosystm: http://pastebin.com/YBVrupNd - which of these is the preferred way to do OOP in javascript? [00:35] mscdex: use prototypes if you can [00:35] Aria: Both work. [00:35] mscdex: otherwise you get a copy of the functions for each instance [00:35] echosystm: i know they both work, but what is the preferred method? [00:35] p_nitsch has joined the channel [00:35] mscdex: i saw #2 [00:36] mscdex: s/saw/say/ [00:36] echosystm: ok [00:36] echosystm: that depends on ECMA5 support though, which makes me think this is not the accepted way [00:36] mscdex: do you really need Object.create() for that? [00:36] echosystm: yes [00:37] bgould has joined the channel [00:37] echosystm: otherwise you will be adding everything to the same prototype [00:37] echosystm: also __proto__ is not standard [00:37] echosystm: and should not be used [00:39] gtramont1na has joined the channel [00:39] rook2pawn: ACTION actually got to talk w/ crockford about it yesterday and i told him i didn't like mozilla modifying prototypes on primordial types [00:40] p_nitsch has joined the channel [00:40] kmiyashiro has joined the channel [00:41] ditesh|cassini has joined the channel [00:42] marcello3d: rook2pawn: sounds like he's now in a position where he has to be controversial [00:43] echosystm: so so back to my question [00:43] echosystm: which is the preferred way? [00:43] echosystm: method 1 is the most compatible [00:43] echosystm: but it doesnt make good use of prototypes [00:43] tilgovi has joined the channel [00:43] echosystm: method 2 is the reverse [00:44] mengxy has joined the channel [00:44] context: Primordial types? [00:44] Sorella has joined the channel [00:45] vikstrous has joined the channel [00:45] context: If it runs on v8 and spider monkey we don't care right people [00:45] Aria: Right. [00:46] tbranyen: well it needs to run on webcore too [00:47] tbranyen: to be fair [00:47] Aria: Yeah. But what runs on v8 works there too, ne? [00:48] tbranyen: wat [00:48] breccan has joined the channel [00:48] mengxy has joined the channel [00:48] timmywil has joined the channel [00:49] context: Heh. If it runs on v8 I imagine it runs on webcore. But true true. We do need webcore [00:51] cleanah has joined the channel [00:53] k1ttty has joined the channel [00:53] jeremyselier has joined the channel [00:53] saikat has joined the channel [00:53] mfernest has joined the channel [00:55] Jalava_: i'm trying to figure out nice way of doing requires with my files in different directories [00:55] Emmanuel__ has joined the channel [00:55] postwait has joined the channel [00:55] Bwen: require(req.host+"/"+req.headers.url )? [00:55] Jalava_: making each first level directory into module and exporting each object in index.js could work [00:56] Jalava_: currently my code is riddled with require("../../models/foo.js"); [00:56] brolin has joined the channel [00:56] Bwen: oh nm, misunderstood [00:56] marcello3d: bwen: generally not a good idea to do fs options based on user input [00:56] marcello3d: *operations [00:56] Jalava_: i could require just require('models').foo though [00:56] SubStack: dnode(fs).listen(webapp) [00:57] SubStack: what could go wrong? [00:57] marcello3d: SubStack: hah [00:57] Remoun has joined the channel [00:57] marcello3d: SubStack: nothing! [00:57] Bwen: marcello3d: yeah that statement just didnt register to me... actually... EVERY operation is based on user input.. just have to sanitize [00:57] marcello3d: more than sanitize [00:57] SubStack: fuckin' turtles yeah [00:57] Bwen: point is, without user input you have nothing to do at all O.o [00:58] SubStack: ACTION nominates the turtle as the official node mascot [00:58] marcello3d: bwen: you just want an abstraction layer. why do you need to access the fs directly? [00:58] marcello3d: better off to generate a whitelist of files you want to allow [00:58] marcello3d: or if you're creating files on the fly, perhaps coupled with a database [00:58] braddunbar has joined the channel [00:59] Bwen: read your phrase to fast I guess.. I read "Operations" from "fs options" [00:59] mscdex: ACTION nominates Bill O'Reilly as the official node mascot [00:59] Bwen: must be the scotch [01:00] mscdex: with the tagline, "we'll do it live!" [01:01] darshanshankar has joined the channel [01:01] Jalava_: hmm, if modifying require.paths is bad, then all my classes should be in node_modules for them to be found? [01:01] sarkis has joined the channel [01:02] Jalava_: I've learned to use node_modules for just packages that are external and lib for my own stuff [01:03] rchavik has joined the channel [01:03] marcello3d: Jalava_: perhaps consider flatting/simplifying/compacting your file structure [01:03] marcello3d: and things that you can break out into modules, break em out [01:04] TooTallNate: 'node-iOS' guys! [01:04] TooTallNate: I just implemented an awesome new feature [01:04] TooTallNate: https://twitter.com/#!/TooTallNate/status/66306579460395009 [01:05] tbranyen: holy shit [01:05] tbranyen: +1 [01:05] Jalava_: marcello3d: yeah, splitting stuff into multiple layers of folders is my habit from java & as3 era [01:06] quackquack has joined the channel [01:07] abraxas has joined the channel [01:07] TooTallNate has left the channel [01:08] zakabird has joined the channel [01:10] demastrie has joined the channel [01:11] demastrie has left the channel [01:12] [[zz]] has joined the channel [01:12] e2i has joined the channel [01:13] zentoooo has joined the channel [01:13] Nican has joined the channel [01:13] briznad has joined the channel [01:14] marcello3d: dropbox doesn't support symlinks :( [01:14] marcello3d: or rather, it expands them [01:15] davidcoallier has joined the channel [01:16] mike5w3c_ has joined the channel [01:17] ibrahimal-rajhi has joined the channel [01:17] larry__ has joined the channel [01:19] geoffeg_ has joined the channel [01:19] vuliev_ has joined the channel [01:19] m0hit has joined the channel [01:20] kmiyashiro has joined the channel [01:20] Waha has joined the channel [01:20] mihar has joined the channel [01:20] rfay has joined the channel [01:20] Jalava has joined the channel [01:20] framlin has joined the channel [01:20] mattijs has joined the channel [01:20] heavysixer has joined the channel [01:20] mikl has joined the channel [01:20] mikl has joined the channel [01:21] Wa has joined the channel [01:21] dustylane has joined the channel [01:23] chapel: that is pretty cool Tobias| [01:24] chapel: did he leave? [01:24] chapel: bah [01:24] chapel: damn [01:24] chapel: sorry Tobias| [01:24] pyrony has joined the channel [01:24] chapel: I would love an embedded node in android [01:27] brownies has joined the channel [01:27] BillyBreen has joined the channel [01:28] mengxy has left the channel [01:28] e2i has joined the channel [01:29] gtramont1na has joined the channel [01:30] bad_at_math has joined the channel [01:31] Twelve-60` has joined the channel [01:31] p_nitsch has joined the channel [01:32] elephants has joined the channel [01:34] levi501d has joined the channel [01:34] zeade has joined the channel [01:35] dustylane has joined the channel [01:35] zakabird has joined the channel [01:36] stepheneb has joined the channel [01:38] tk has joined the channel [01:39] tonymilne has joined the channel [01:40] azeroth_ has joined the channel [01:42] markbao has joined the channel [01:44] x_or has joined the channel [01:47] TheFuzzball_ has joined the channel [01:47] demastrie has joined the channel [01:47] demastrie has left the channel [01:47] jmckind has joined the channel [01:48] e6nian has joined the channel [01:49] ditesh|cassini has joined the channel [01:50] bingomanatee: How does the flash system interact with the layout/view engine in express? [01:51] seivan has joined the channel [01:51] Charuru: what flash system? [01:52] therto: bingomanatee: what is the flash system? [01:52] Charuru: oh flash messages [01:52] tonymilne: bingomanatee: No idea what you're asking. But, express-messages can be used for flash messages. [01:52] sveisvei has joined the channel [01:52] chapel: lol [01:52] tonymilne: and then you can use something like <%- messages() %> in ejs templates to render them. [01:52] sunnyohno has joined the channel [01:53] chapel: bingomanatee: good rundown of how to use req.flash http://japhr.blogspot.com/2010/08/expressjs-flash.html [01:54] Lorentz has joined the channel [01:54] ibrahimal-rajhi has joined the channel [01:54] mike_miller has joined the channel [01:55] kawaz_air has joined the channel [01:55] ryanmcgrath has joined the channel [01:55] piscisaureus has joined the channel [01:56] Temsa has joined the channel [01:58] quackslike: chapel: are these flash messages in any way related to Adobe Flash? [01:58] mike5w3c has joined the channel [01:58] langworthy has joined the channel [01:59] ChrisPartridge: quackslike: no [02:00] chapel: nope [02:00] quackslike: ChrisPartridge: ok thanks. i have not heard of this before, is it common? is it a node thing or some new fangled html5 fluff with an unfortunate name [02:00] chapel: req.flash() [02:00] ultraflynn has joined the channel [02:00] chapel: its an express/connect thing [02:01] quackslike: ah - no wonder i've not heard of it. [02:01] trotter has joined the channel [02:01] quackslike: thanks guys. i will have a look into it [02:01] xeodox: In EJS, how do I check if a variable is defined? [02:01] tonymilne: <% run arbitrary js code here ... %> [02:01] ChrisPartridge: quackslike: the terminology "flash" message is used across many web frameworks [02:01] azeroth______ has joined the channel [02:02] xeodox: <% if(uid){ %> hello, <%= uid %> <% } %> ...this doesn't work because if there is no "uid", iit errors and says "uid is not defined" [02:02] keeth has joined the channel [02:02] xeodox: I don't want it to error...I just dont want it to show "hello" [02:02] tonymilne: <%- typeof (uid) != 'undefined' ? uid : '' %> [02:02] tonymilne: Would that work? [02:03] sub_pop has joined the channel [02:03] quackslike: ChrisPartridge: oh i see. i'm not much of a web framework user [02:03] quackslike: cheers for clarifying [02:03] ChrisPartridge: yw [02:04] nexxy has joined the channel [02:04] nexxy has joined the channel [02:07] davidwalsh has joined the channel [02:07] xeodox: tonymilne: works thanks [02:07] kmwallio has joined the channel [02:07] tonymilne: xeodox: awesome! :D [02:08] calebc has joined the channel [02:09] langworthy has joined the channel [02:10] MikhX has joined the channel [02:12] vikstrous has joined the channel [02:12] Fuu has joined the channel [02:13] colinclark has joined the channel [02:16] sub_pop has joined the channel [02:16] gm__ has joined the channel [02:16] bingomanatee: Thanks [02:21] harth has joined the channel [02:24] keeth has joined the channel [02:25] ibrahimal-rajhi has joined the channel [02:25] [[zz]] has joined the channel [02:29] highermath_away has joined the channel [02:30] malkomalko has joined the channel [02:31] secoif has joined the channel [02:33] mengxy has joined the channel [02:34] jeremyselier has joined the channel [02:35] alindeman has joined the channel [02:38] xeodox: How do I "break" a loop in node.js? It's throwing errors if I just do break; [02:38] baudehlo1 has joined the channel [02:39] ChrisPartridge: xeodox: return ? [02:40] xeodox: will that break out of a forEach loop in node? [02:40] alindeman_ has joined the channel [02:40] jwcooper: I'd just do a normal for loop, and use break [02:41] chapel: you can use some [02:41] chapel: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some [02:42] xeodox: thanks [02:42] chapel: you just return true to stop the loop [02:43] bentruyman has joined the channel [02:46] Charuru: can i use websharing on a mac to share my localhost? [02:47] tim_smart has joined the channel [02:47] tonymilne: Charuru: Not sure, but check out https://showoff.io/ [02:47] marcello3d: websharing runs an apache server on your comp [02:47] tim_smart: What would someone recommend for parsing xml/html [02:47] piscisaureus has joined the channel [02:47] Charuru: how about sharing a node server? [02:47] tim_smart: (xhtml) [02:47] mengxy has joined the channel [02:47] Charuru: tonymilne: thanks, but too expensive :S [02:47] marcello3d: charuru: depends on your network [02:48] marcello3d: you can setup port forwarding on your router [02:49] Charuru: ok, so i do this on the router? no mac configs needed? [02:49] marcello3d: yea [02:49] marcello3d: well [02:49] marcello3d: firewall needs to allow it, too [02:49] marcello3d: on your mac [02:49] Charuru: ok thanks [02:50] Charuru: btw marcello3d thanks for mongolian deadbeef, it's really great [02:50] marcello3d: :) [02:50] marcello3d: I'm working on replica sets for it right now [02:50] marcello3d: it's pretty chill [02:50] Charuru: awesome :) [02:50] marcello3d: autodiscovers servers and finds the primary [02:50] rook2pawn has joined the channel [02:51] Charuru: i think we should try to establish you as the standard somehow, there's now a bunch of other clients with the same idea, eg, like mongo-node-native but with less annoying [02:52] Charuru: like this one too [02:52] Charuru: https://github.com/zzdhidden/mongoq [02:53] alindeman_ has joined the channel [02:53] alindema1_ has joined the channel [02:54] marcello3d: I think the primary difference is I don't use the mongodb-native API [02:54] marcello3d: whereas most of those libraries are wrappers [02:54] marcello3d: which just means more cruft to go through [02:55] marcello3d: I'd be curious to see some benchmarks of mongolian db vs mongodb-native vs other wrappers [02:55] marcello3d: https://github.com/marcello3d/node-mongolian/issues/13 [02:56] alindeman has joined the channel [02:56] gazumps has joined the channel [02:57] marcello3d: also adding url-style support for specifying hosts [02:58] zackattack has joined the channel [03:00] Charuru: i'm glad you're working on this :P don't need it yet, but probably will :) [03:00] Charuru: anyway, thanks [03:01] brolin has joined the channel [03:04] Lorentz has joined the channel [03:05] davidwalsh has joined the channel [03:06] cloudhead has joined the channel [03:06] dguttman has joined the channel [03:06] Mrfloyd has joined the channel [03:06] langworthy has joined the channel [03:06] pcardune has joined the channel [03:10] vikstrous has joined the channel [03:10] uclinux has joined the channel [03:10] brianloveswords has joined the channel [03:12] beawesomeinstead has joined the channel [03:12] beawesomeinstead has joined the channel [03:13] mike_miller has joined the channel [03:14] neoesque has joined the channel [03:14] rworth has joined the channel [03:15] Sami_ZzZ____ has joined the channel [03:19] __directory has joined the channel [03:20] isaacs has joined the channel [03:21] zakabird has joined the channel [03:23] Jalava: hmm, is require() same as include in other languages? [03:23] Jalava: actually, it is not [03:23] Jalava: but what happens when you require without assigning it to anything? [03:23] dyer has joined the channel [03:24] Jalava: I see that express does it by saying require("./View"); [03:24] chjj: jalava, then all the code in the file you require will be executed [03:24] chjj: but it wont expose anything [03:25] Jalava: hmm, if I define function in there, will it be actually defined in module that required it? [03:25] chjj: only if you use the exports object [03:25] chjj: if you do module.exports = function() {}; and then var myFunc = require('...'); [03:25] chjj: then it will be [03:26] Jalava: hmm [03:26] chjj: or if its on some commonly accessible prototype [03:26] Jalava: i'm just trying to understand how express works it's modules [03:26] zackattack has joined the channel [03:27] chjj: like if i do require('assert').hello = function() {}; in one module, and require that module in another, i could have access to the new "hello" function thats on the "assert" object [03:27] copongcopong has joined the channel [03:27] Jalava: it just says require('./View') which in turn says exports = module.exports = View; where View is required from another file [03:27] onar_ has joined the channel [03:27] chjj: what says that? [03:28] nubusaurelius has joined the channel [03:28] chjj: express? [03:28] Jalava: express.js [03:28] Jalava: oh, now I see [03:28] Jalava: because it causes certain modules to be required for first time [03:28] Jalava: it can pre-configure those modules [03:28] chjj: well [03:29] chjj: it looks like "view.js" is extending the prototype of the http response [03:29] Jalava: it's just wierd how it just requires modules without assigning them to anything [03:29] chjj: so it just needs to be executed, it doesnt need to expose anything [03:30] chjj: jalava, its adding functions to the response object's prototype [03:30] chjj: "http.ServerResponse.prototype" [03:30] Jalava: oh yeah [03:30] Jalava: didn't spot that one [03:33] Ond has joined the channel [03:33] bene has joined the channel [03:37] Ond has joined the channel [03:40] jtsnow has joined the channel [03:40] postwait has joined the channel [03:41] cromartie-c has joined the channel [03:42] sveisvei has joined the channel [03:46] sleeplessinc has joined the channel [03:47] pyrony has joined the channel [03:48] thorsteinsson has joined the channel [03:58] Sam___ has joined the channel [03:59] sub_pop has joined the channel [04:01] flippyhead has joined the channel [04:06] k1ttty has joined the channel [04:06] cachemoney has joined the channel [04:08] ericnakagawa_ has joined the channel [04:10] pifantastic has joined the channel [04:13] Jalava: hmm, figured out a way to organize modules hiearchically for your application: add stub file into node_modules that just says export = require('../lib'); and then add index.js to all your directories exporting next level out [04:13] xeodox: What's the best way to log everything in node.js? [04:13] pyrotechnick: console.log [04:13] Jalava: allows you to do require('project-name').Foo.Bar.Baz.Class [04:14] Jalava: but still keeps node_modules "clean" so that it only contains external dependencies [04:14] haha has joined the channel [04:14] haha: asdas [04:15] Jalava: and now I don't need to do require.paths.unshift('./lib'); [04:19] Viriix has joined the channel [04:22] kriszyp has joined the channel [04:23] gkatsev: is there a video streaming lib for node? [04:25] xeodox: In node.js how do I "deep copy" a { } ? [04:26] iwinulose has joined the channel [04:27] gkatsev: xeodox: loop over all the properties and copy each one over. If it's an object, recurse. [04:27] xeodox: really [04:27] gkatsev: there may be libs that would do it for you [04:28] jesusabdullah: xeodox: You may be able to use js-traverse to make it less painful though :) [04:28] xeodox: jesus man [04:28] jesusabdullah: yeah [04:28] xeodox: thats insanity [04:28] gkatsev: you can use underscore's extend to do deep copy [04:28] gkatsev: http://documentcloud.github.com/underscore/#extend [04:29] michaelrice has joined the channel [04:30] gkatsev: xeodox: ^ [04:30] xeodox: ok wait checkin it out [04:32] cachemoney has joined the channel [04:34] xeodox: thanks,! [04:34] xeodox: .clone worked [04:35] gkatsev: xeodox: .clone is a shallow copy. [04:35] xeodox: whats the difference between shallow and deep? [04:35] xeodox: i just want my new variable to be excactly like the other one. (except dont change the other one at all) [04:35] gkatsev: xeodox: objects inside of your object are referenced rather than copied. [04:35] xeodox: oh i see [04:35] nexxy: xeodox, about 7' [04:35] robhawkes has joined the channel [04:35] gkatsev: xeodox: you want _.extend(destination, source) [04:36] xeodox: got it [04:37] riven has joined the channel [04:37] riven has joined the channel [04:43] mynyml has joined the channel [04:43] mynyml_ has joined the channel [04:47] _1marc has joined the channel [04:49] mfernest has joined the channel [04:51] ryanfitz has joined the channel [04:52] x_or has joined the channel [04:54] riven has joined the channel [04:54] riven has joined the channel [04:58] matjas has joined the channel [04:59] sveisvei has joined the channel [05:02] SamuraiJack has joined the channel [05:03] bartt has joined the channel [05:08] cromartie-x251 has joined the channel [05:10] e6nian: WD [05:11] cromartie-c: talking to me? [05:12] F1LT3R has joined the channel [05:13] e6nian: cromartie-c: nop [05:13] cromartie-c: coz I did a good job :( [05:14] e6nian: cromartie-c: XD [05:16] superjudge has joined the channel [05:18] marcello3d has joined the channel [05:20] Viriix has left the channel [05:21] petermanser has joined the channel [05:22] zentoooo has joined the channel [05:24] tim_smart has joined the channel [05:25] ngs has joined the channel [05:27] abraham has joined the channel [05:31] sreeix has joined the channel [05:32] tim_smart has joined the channel [05:34] dandean has joined the channel [05:36] neoesque has joined the channel [05:38] kmiyashiro has joined the channel [05:42] aguynamedben has joined the channel [05:42] mike5w3c has joined the channel [05:44] Bonuspunkt has joined the channel [05:45] kmiyashiro has joined the channel [05:46] TomY has joined the channel [05:47] ph^ has joined the channel [05:54] Tobsn has joined the channel [05:57] CarterA has joined the channel [05:57] CarterA has left the channel [05:59] dmcquay_ has joined the channel [06:00] Xano has joined the channel [06:03] mischief has joined the channel [06:04] pyrotechnick: what are the circumstances where something will be set when logged but undefined in actual javascript [06:04] pyrotechnick: for instance i have the lines [06:05] saschagehlich has joined the channel [06:05] pyrotechnick: $(document.body).click (event) => [06:05] pyrotechnick: console.dir @remote [06:05] pyrotechnick: @remote.send channel: 'cube', position: @ghost.mesh.position [06:05] pyrotechnick: but this is logged [06:05] pyrotechnick: -> Object [06:05] pyrotechnick: Uncaught TypeError: Cannot read property 'send' of undefined [06:07] chapel: pyrotechnick: hmm [06:07] pyrotechnick: bug? or i'm going crazy or what? [06:07] pyrotechnick: i've seen it before [06:08] chapel: is send defined on the server? [06:09] pyrotechnick: function () { [06:09] pyrotechnick: sendRequest(id, [].concat.apply([],arguments)); [06:09] pyrotechnick: } [06:09] pyrotechnick: http://localhost:1337/browserify.js [06:09] pyrotechnick: Uncaught TypeError: Cannot read property 'send' of undefined [06:09] pyrotechnick: console.log @remote.send.toString() [06:09] pyrotechnick: @remote.send channel: 'cube', position: @ghost.mesh.position [06:09] mscdex: whoa [06:09] pyrotechnick: wtf is going on [06:10] pyrotechnick: i guess it's coffeescript doing something retarded but the js looks fine to me [06:11] chapel: yeah idk, that does seem odd [06:12] chapel: does it work if you take out the console.log? [06:12] pyrotechnick: no the only reason im logging it was because it was screwed in the first place [06:12] chapel: ah [06:12] chapel: idk, try putting return after it [06:12] pyrotechnick: i did [06:12] chapel: hmm [06:13] pyrotechnick: these kind of moments make me really hate js [06:13] pyrotechnick: i just dont think i trust it enough [06:14] quackslike: step thru with the debugger [06:15] pyrotechnick: i think its actually undefined [06:15] pyrotechnick: i think chrome debugger lies sometimes [06:15] chapel: have you set a breakpoint? [06:16] chapel: in chrome debugger? [06:16] astropirate has joined the channel [06:16] Opaque has joined the channel [06:16] davidcoallier has joined the channel [06:17] pyrotechnick: man when i step through it works [06:17] karboh has joined the channel [06:17] pyrotechnick: but not if i dont step thru [06:18] chapel: hmm [06:18] liar has joined the channel [06:18] chapel: have you tried doing it simply, ie self = this [06:18] chapel: and then using self inside the callback? [06:19] pyrotechnick: whether that works or not [06:19] pyrotechnick: why the hell would it work when debugging and not when just running [06:19] chapel: idk, maybe there is other code being run similarly that causes an issue [06:19] pyrotechnick: yeah it works chapel [06:19] pyrotechnick: with self [06:19] pyrotechnick: bug [06:20] pyrotechnick: coffeebug [06:20] meso has joined the channel [06:20] pyrotechnick: haha now it's working [06:20] chapel: are you using the in browser coffeescript compiler? [06:20] pyrotechnick: fucking chrome [06:20] chapel: lol [06:20] pyrotechnick: yes [06:20] pyrotechnick: ive seen chrome do shit like that before [06:21] chapel: it might be an issue with the compiler, not sure what [06:21] pyrotechnick: i recon its chrome [06:21] chapel: could be [06:21] chapel: I just hate havin issues like that, that end up not really being issues, but waste time [06:22] pyrotechnick: chrome is progressively getting more and more unstable [06:22] pyrotechnick: the nightlies have been really really bad, ive stopped using them [06:22] pyrotechnick: but stable i have noticed getting worse too [06:22] muhqu has joined the channel [06:24] pyrotechnick: i think it's crankshaft [06:24] sechrist has joined the channel [06:24] bad_at_math has joined the channel [06:25] pyrotechnick: its like it can get out of state [06:25] pyrotechnick: and then until a restart it just keeps on exhibiting that strange error [06:25] alexandere has joined the channel [06:25] pyrotechnick: for instance it's happening again now [06:25] pyrotechnick: and i bet if i restart... [06:25] p_nitsch has joined the channel [06:26] pyrotechnick: sure enough it works [06:26] ivanfi has joined the channel [06:26] neoesque has joined the channel [06:26] chapel: you know one issue I had [06:26] pyrotechnick: but when i bitch and winge about it nobody agrees, so im guessing it's a combination of webgl and chrome 11 [06:26] TomY_ has joined the channel [06:26] chapel: where if I didn't set a variable to '' at the start of the script, or something similar, on page refresh, the value would still be set to what it previously was [06:27] chapel: like if I did var blah; [06:27] chapel: it made no sense [06:27] chapel: I had nothing persisting the variable, so I have no idea where it was getting it from [06:29] cromartie-x513 has joined the channel [06:31] btipling: anybody know how to do a sort by command with node_redis? It's in the docs, google can't find it, and I can't get it to work on the command line [06:32] btipling: I can't even figure out how to sort DESC [06:32] oblivionx has joined the channel [06:33] matjas has joined the channel [06:33] rednul has joined the channel [06:33] oblivionx: hey guys, ive been curious about node.js for a while, and am interested in incorporating it into a project..but i have a few general questions if anyone is around [06:34] tbranyen: hurf [06:34] pyrotechnick: oblivionx: shoot [06:34] Jamool has joined the channel [06:35] oblivionx: ok, so we currently have quite a large web application [06:35] pyrotechnick: chapel: they are doing some crazy caching of code [06:35] oblivionx: for managing multiple ecommerce sites [06:35] tprice has joined the channel [06:35] Jamool_ has joined the channel [06:35] pyrotechnick: written in [06:35] oblivionx: its pretty end to end, order management, tracking etc, so clients are logged in all day [06:35] oblivionx: what i want to do is use node.js as a sort of real time notification system [06:35] tprice: hey anyone use duostack.com for node apps? [06:35] oblivionx: where i could trigger an event like "you have a new message" [06:36] oblivionx: and it would pop up a notification or something like that [06:36] btipling: oh I figured it out,nevermind [06:36] pyrotechnick: oblivionx: what's your question exactly [06:37] oblivionx: well i guess im interested on what i can do with node.js on a high level [06:37] oblivionx: like can i replace things in my application that currently depend on polling on some interval [06:37] oblivionx: by instead triggering a node.js event [06:38] jetienne has joined the channel [06:38] `3rdEden has joined the channel [06:38] RusAlex: hi guys [06:38] sreeix_ has joined the channel [06:39] RusAlex: what is the easy package to write web crawlers with node? [06:39] Viriix has joined the channel [06:39] cromartie has joined the channel [06:40] samsonjs has joined the channel [06:43] christkv has joined the channel [06:44] oblivionx: let me try to make my example a little bit more concrete [06:44] m64253 has joined the channel [06:45] oblivionx: so, right now, in our application, each user has an inbox, which basically just contains messages from the software, like NewOrder, NewMessage, etc [06:45] oblivionx: its just a db table, nothing fancy [06:46] oblivionx: so currently, we poll server on some interval, checking for new messages [06:46] oblivionx: this is just a simple javascript setInterval [06:46] oblivionx: what i want to do is instead, is when a new order comes in [06:46] oblivionx: can I send a request to a node.js server, which would then fire off some js callback on any clients logged in? [06:47] groom has joined the channel [06:47] chapel: well yeah, you could do that [06:47] oblivionx: is that something that node.js is designed to handle? or am i just kinda of hacking it? [06:47] chapel: nope, it is well suited for that [06:47] oblivionx: im looking at the really simple example on the homepage right now [06:48] oblivionx: so my main confusion is what does the client side js look like? [06:48] chapel: depends on what you use to handle that [06:48] chapel: socket.io could work well [06:48] oblivionx: yeah so lets say i just want to alert this hello world [06:48] chapel: there are a few things built on socket.io that make it easy [06:49] chapel: like dnode or now.js, I recommend dnode [06:49] oblivionx: let me look that up real quick [06:49] sendark has joined the channel [06:51] tprice: should it look like this var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; or like this var a = function(){}; a.prototype.bob = function(){}; a.bob.prototype.jim = function(){}; [06:52] chapel: v8: var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; [06:52] v8bot: chapel: function (){} [06:52] chapel: v8: var a = function(){}; a.prototype.bob = function(){}; a.bob.prototype.jim = function(){}; [06:52] v8bot: chapel: TypeError: Cannot read property 'prototype' of undefined [06:53] tbranyen: chapel: you never actually set the prototype [06:53] tbranyen: of a [06:53] oblivionx: interesting, thanks chapel, dnode looks like what i need [06:53] chapel: lol [06:53] mhausenblas has joined the channel [06:53] chapel: oblivionx: np, good stuff [06:53] tbranyen: v8: var a = function(){}; a.prototype.bob = function(){}; var a = new a; a.bob.prototype.jim = function(){}; [06:53] chapel: tbranyen: all I did was copy tprice's code [06:54] v8bot: tbranyen: function (){} [06:54] tbranyen: chapel: copy cat [06:55] chapel: v8: var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; var _a = new a; a.bob.jim; [06:55] v8bot: chapel: TypeError: Cannot read property 'jim' of undefined [06:55] chapel: :P [06:55] tprice: v8: var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){};var t= new a; var y = new a.bob; [06:55] v8bot: tprice: TypeError: undefined is not a function [06:56] tprice: v8: var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; var t= new a; var y = new t.bob; [06:56] v8bot: tprice: function (){} [06:56] guybrush: var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; var _a = new a; var _b = new _a.bob; _b.jim; [06:56] guybrush: v8: var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; var _a = new a; var _b = new _a.bob; _b.jim; [06:56] v8bot: guybrush: function (){} [06:56] tprice: v8: function u(){var a = function(){}; a.prototype.bob = function(){}; a.prototype.bob.prototype.jim = function(){}; var t= new a; var y = new t.bob;return y;};u() [06:56] v8bot: tprice: {} [06:57] tprice: lol [06:57] sh1mmer has joined the channel [06:57] langworthy has joined the channel [06:57] asabil has joined the channel [06:58] gf3 has joined the channel [06:58] bad_at_math_ has joined the channel [06:58] zakabird has joined the channel [06:58] yozgrahame has joined the channel [06:58] beppu has joined the channel [06:59] hwinkel has joined the channel [06:59] e6nian has joined the channel [06:59] b_rucel has joined the channel [06:59] tsyd has joined the channel [07:02] TomY has joined the channel [07:03] Emmanuel__: anybody ever used jsdom ? [07:04] skohorn has joined the channel [07:04] ExsysTech has joined the channel [07:04] b_rucel: anyone know of any installation troubleshooting guide? [07:04] mike5w3c has joined the channel [07:05] b_rucel: trying to compile node-v0.4.7 on centos [07:05] fangel has joined the channel [07:06] b_rucel: NameError: name 'set' is not defined [07:06] b_rucel: getting that ouput [07:08] liquidproof has joined the channel [07:09] tbassetto has joined the channel [07:09] ddollar has joined the channel [07:09] sreeix has joined the channel [07:09] TomY_ has joined the channel [07:09] guybrush: b_rucel: https://github.com/joyent/node/wiki/Installation [07:10] cachemoney: sounds like a bug in the python build scripts [07:10] b_rucel: yeah, figured that and reinstalled python through yum and got the same results [07:10] mscdex: b_rucel: what version of python? [07:10] cachemoney: b_rucel: what version of python? [07:10] mscdex: ha [07:10] cachemoney: haha [07:11] tbranyen: guessing 3 [07:11] muhqu_ has joined the channel [07:11] mscdex: you need 2.x [07:11] cachemoney: 2.6 [07:11] tbranyen: 3 breaks everything [07:11] cachemoney: 2.3 wont work either [07:11] cachemoney: 2.5 or 2.6 [07:11] mscdex: 2.6 or higher [07:11] mscdex: not sure before that [07:11] tbranyen: high and lower than 3 [07:11] b_rucel: it's 2.x [07:12] cachemoney: what's the x [07:13] cachemoney: run python --version [07:13] mscdex: probably 2.3 [07:14] b_rucel: 2.3.4 [07:14] cachemoney: there's your problem [07:14] cachemoney: get 2.6 [07:14] b_rucel: sorry, i'm on my someone else's laptop [07:14] b_rucel: had to go get putty real quick [07:14] b_rucel: ahh, will try thanks [07:16] mscdex: 2.6 or 2.7 yeah [07:17] TomY__ has joined the channel [07:17] b_rucel: 2.7.1 [07:17] b_rucel: is that cool? [07:18] cachemoney: yeah [07:18] cachemoney: 2.6+ but not 3.x is fine [07:18] mike5w3c_ has joined the channel [07:19] guybrush: https://gist.github.com/957816 [07:20] cachemoney: holy shit, thanks [07:20] cachemoney: guybrush: anything from nodeconf? [07:20] guybrush: nah [07:21] guybrush: will create one right now [07:22] gg411 has joined the channel [07:22] Spion has joined the channel [07:23] darshanshankar has joined the channel [07:27] guybrush: https://gist.github.com/958556 [07:27] tahu has joined the channel [07:28] DeltachaosDeskto has joined the channel [07:28] chjj: sometimes i wish the mozilla stuff was just standardized =/ [07:28] chjj: __proto__ and __defineGetter__, so convenient [07:28] jelveh has joined the channel [07:28] djcoin has joined the channel [07:30] mAritz has joined the channel [07:30] DeltachaosDeskt1 has joined the channel [07:30] Wizek has joined the channel [07:31] adambeynon has joined the channel [07:31] cachemoney: guybrush: thanks [07:33] mischievious has joined the channel [07:34] mischievious has joined the channel [07:34] zilch has joined the channel [07:35] msucan has joined the channel [07:35] augustl has joined the channel [07:36] admc has joined the channel [07:36] augustl: anyone happen to know if node-mysql can handle LOCK TABLE? [07:36] augustl: using locks for the first time, so I'm not sure if it's node-mysql or my own fault it doesn't work as I expect ;) [07:36] zilch has joined the channel [07:38] zentoooo has joined the channel [07:39] [AD]Turbo has joined the channel [07:40] qFox has joined the channel [07:40] langworthy has joined the channel [07:40] zilch has joined the channel [07:41] nubusaurelius has left the channel [07:41] teemow has joined the channel [07:41] [AD]Turbo: hi there [07:41] admc has joined the channel [07:43] stephank has joined the channel [07:43] zilch has joined the channel [07:45] Wa: someone just brought this up to me: [07:45] Wa: v8: false == "0" [07:45] v8bot: Wa: true [07:45] Wa: but [07:45] Wa: v8: Boolean("0") [07:45] v8bot: Wa: true [07:45] zilch has joined the channel [07:45] Wa: I thought it coerced the latter into the former's type? [07:46] ErikCorry: Any string that is non zero length turns into true. [07:47] ErikCorry: v8: Boolean("") [07:47] v8bot: ErikCorry: false [07:47] Wa: yeah, so why is it equal to false? [07:47] ph^ has joined the channel [07:47] ErikCorry: That's not ToBoolean. [07:47] ErikCorry: That's the == operator. [07:47] Wa: I know I know [07:47] Wa: but like I said, I thought it coerced the latter into the type of the former [07:48] Wa: in the sense of: false == false.constructor("0") [07:48] zilch has joined the channel [07:48] Wa: but it doesn't seem to [07:48] Wa: how does it make the comparison then? [07:49] e6nian: v8: (2<1<3) [07:49] v8bot: e6nian: true [07:49] ewdafa has joined the channel [07:50] e6nian: how to explain this in js ? (2<1<3) is true [07:50] Wa: 2<1 = true; true<3 = true [07:50] cachemoney: v8: eval('console.log("hi")') [07:50] v8bot: cachemoney: "hi" [07:50] zilch has joined the channel [07:52] cachemoney: v8: eval('console.log(process.version)') [07:52] v8bot: cachemoney: ReferenceError: process is not defined [07:52] kelp1 has joined the channel [07:52] Wa: why bother with eval? :p [07:52] cachemoney: no idea lol [07:52] liquidproof: v8: console.log("hi") [07:52] v8bot: liquidproof: "hi" [07:53] sendark has joined the channel [07:53] zilch has joined the channel [07:53] neurone-1337: cachemoney: v8bot is a js bot? where can i have the source code? [07:54] cachemoney: v8: JSON.stringify({ test: "testing" }) [07:54] v8bot: cachemoney: "{\"test\":\"testing\"}" [07:54] Wa: I think there's a channel for it [07:54] TomY__ has joined the channel [07:54] zilch has joined the channel [07:54] Wa: `help [07:54] Wa: don't remember the command >_>; [07:54] neurone-1337: !help [07:54] cachemoney: neurone-1337: https://github.com/eisd/v8bot [07:54] Wa: nah the delim was totally ` [07:54] Wa: ah [07:54] neurone-1337: thx :) [07:54] Wizek has joined the channel [07:54] guybrush: v8: about [07:54] v8bot: guybrush: ReferenceError: about is not defined [07:54] guybrush: `v about [07:55] cachemoney: theres gotta be a way to make it go crazy [07:55] guybrush: `about [07:55] guybrush: hm [07:55] Wa: someone said there's a way to crash it >_>; [07:56] cachemoney: v8: console.log(Math.E.toString()) [07:56] v8bot: cachemoney: "2.718281828459045" [07:56] zilch has joined the channel [07:57] neurone-1337: v8: console.log(") [07:57] v8bot: neurone-1337: SyntaxError: Unexpected token ILLEGAL [07:57] cachemoney: v8: console.log(Math.prototype) [07:57] v8bot: cachemoney: undefined [07:57] neurone-1337: :) [07:58] Wa: v8: break [07:58] v8bot: Wa: SyntaxError: Illegal break statement [07:58] Wa: >_> [07:58] Wa: darn [07:58] zilch has joined the channel [07:59] mraleph has joined the channel [07:59] cachemoney: is there a way to make it print all its globals [07:59] troessner has joined the channel [08:00] Wa: v8: globals [08:00] v8bot: Wa: ReferenceError: globals is not defined [08:00] Wa: v8: window [08:00] v8bot: Wa: ReferenceError: window is not defined [08:00] Wa: meh [08:00] ErikCorry: Wa it's not as simple as coercing the first to the second. [08:00] chapel: v8: this [08:00] v8bot: chapel: {console:{log:function (x){console.out.push(pp…,out:[]},print:function print(x){console.log(x)…,pp:function pp(o,depth){return pp_r…,pp_r:function pp_r(o,d){var a=[],p if…} [08:00] ErikCorry: It's 11.9.3 in the Ecmascript standard [08:00] Wa: oh thanks, I'll look [08:00] ErikCorry: 22 steps to implement the core of == [08:01] Wa: also chapel; derp >< why didn't I think of that >_>; [08:01] ErikCorry: Goo job it isn't something that happens a lot in a JS program, huh? :-) [08:01] chapel: :P [08:01] jeremyselier has joined the channel [08:01] ErikCorry: Oh that's ES3 it may have a new number in ES5 [08:01] mikl has joined the channel [08:01] mikl has joined the channel [08:02] zilch has joined the channel [08:02] Wa: http://ecma262-5.com/ELS5_HTML.htm#Section_9.2 ? [08:02] cachemoney: v8: print [08:02] v8bot: cachemoney: function print(x){console.log(x)… [08:02] cachemoney: v8: log [08:02] v8bot: cachemoney: ReferenceError: log is not defined [08:02] cachemoney: v8: console [08:02] v8bot: cachemoney: {log:function (x){console.out.push(pp…,out:[]} [08:02] cachemoney: v8: console.log [08:02] v8bot: cachemoney: function (x){console.out.push(pp… [08:03] [AD]Turbo: v8: Number.MAX_VALUE [08:03] v8bot: [AD]Turbo: 1.7976931348623157e+308 [08:03] cachemoney: give it a bigger value [08:03] boaz has joined the channel [08:04] teemow has joined the channel [08:04] Wa: v8: var arr=[]; for(var x in console){ arr.push(x); } console.log(arr); [08:04] v8bot: Wa: ["log","out"] [08:04] Wa: v8: var arr=[]; for(var x in this){ arr.push(x); } console.log(arr); [08:04] v8bot: Wa: ["console","print","pp","pp_r"] [08:04] zilch has joined the channel [08:05] cachemoney: you know, we could just look at the source [08:05] Wa: pp is prettyprint I guess? [08:05] qFxo has joined the channel [08:05] cachemoney: v8: pp("hi") [08:05] v8bot: cachemoney: "\"hi\"" [08:05] xeodox: Will using Forever (monitoring when things shut down) good enough for production? [08:05] Wa: that would be cheating! [08:05] cachemoney: v8: print("hi") [08:05] v8bot: cachemoney: "hi" [08:05] cachemoney: pp escapes [08:06] Wa: v8: pp({herp:derp}) [08:06] v8bot: Wa: ReferenceError: derp is not defined [08:06] Wa: v8: pp({herp:'derp'}) [08:06] v8bot: Wa: "{herp:\"derp\"}" [08:06] cachemoney: hahha [08:06] Wa: lol [08:06] Wa: guess so [08:06] cachemoney: v8: var arr=[]; for(var x in pp){ arr.push(x); } console.log(arr); [08:06] v8bot: cachemoney: [] [08:06] qFox has joined the channel [08:06] asabil has joined the channel [08:06] cachemoney: v8: 2+2 [08:06] v8bot: cachemoney: 4 [08:07] Wa: v8: this.constructor [08:07] v8bot: Wa: function Object() { [native code… [08:07] cachemoney: v8: 2**3 [08:07] v8bot: cachemoney: SyntaxError: Unexpected token * [08:07] Wa: v8: this.constructor.name [08:07] v8bot: Wa: "Object" [08:07] Wa: v8: arguments.callee [08:07] v8bot: Wa: function (code){ var res try{res… [08:08] cachemoney: v8: Math.exp(9999) [08:08] v8bot: cachemoney: Infinity [08:08] cachemoney: damn [08:08] chapel: v8: var a = []; Object.getOwnPropertyNames(this).forEach(function (key) { a.push(key); }); console.log(a); [08:08] v8bot: chapel: ["TypeError","decodeURI","print","parseFloat","Number","URIError","encodeURIComponent","RangeError","ReferenceError","RegExp","Array","isNaN","console","Date","Infinity","Boolean","Error","NaN","pp","execScript","String","Function","Math","undefined","encodeURI","escape","unescape","pp_r","decodeURIComponent","EvalError","SyntaxError","Object","eval","parseInt","JSON","isFinite"] [08:08] neurone-1337: `v commands [08:08] v8bot: neurone-1337: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help, macro. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [08:09] neurone-1337: :D [08:09] neurone-1337: `v help [08:09] cachemoney: `v beers [08:09] v8bot: cachemoney: has 0 beers. [08:09] v8bot: neurone-1337: For a list of commands, type "`v commands". For help on a specific command, type "`v help ". Join #v8bot for more support. [08:09] guybrush: cachemoney++ [08:09] v8bot: guybrush has given a beer to cachemoney. cachemoney now has 1 beers. [08:09] guybrush: :) [08:09] Wizek has joined the channel [08:09] chapel: `v beers [08:09] v8bot: chapel: has 0 beers. [08:09] cachemoney: haha thanks [08:09] asabil has joined the channel [08:09] chapel: :( [08:09] cachemoney: guybrush++ [08:09] v8bot: cachemoney has given a beer to guybrush. guybrush now has 1 beers. [08:09] cachemoney: C++ [08:09] v8bot: cachemoney has given a beer to C. C now has 10 beers. [08:09] neurone-1337: cachemoney++ [08:09] Wa: v8: arguments.caller [08:09] mike_miller has joined the channel [08:09] v8bot: Wa: undefined [08:09] v8bot: cachemoney is getting too many beers. Don't let cachemoney get drunk! [08:09] MikhX has joined the channel [08:09] cachemoney: LOL [08:09] path[l] has joined the channel [08:10] neurone-1337: cachemoney++ [08:10] v8bot: cachemoney is getting too many beers. Don't let cachemoney get drunk! [08:10] cachemoney: ACTION is wasted [08:10] chapel: v8: Infinity [08:10] v8bot: chapel: Infinity [08:10] cachemoney: v8: Infinity-1 [08:10] v8bot: cachemoney: Infinity [08:10] cachemoney: v8: Infinity+Infinity [08:10] v8bot: cachemoney: Infinity [08:10] eldios has joined the channel [08:10] path[l]: hi. I made a package.json that includes url dependencies (forks of existing packages). The existing packages contain dependencies. when I do an npm install it fails saying that the inner dependency cannot be found? [08:11] chapel: v8: Infinity*Infinity/Infinity [08:11] v8bot: chapel: NaN [08:11] chapel: :) [08:11] dnunes has joined the channel [08:12] cachemoney: path[l]: what npm? [08:12] cachemoney: v8: 8/0 [08:12] v8bot: cachemoney: Infinity [08:12] path[l]: 0.3.18 [08:12] cachemoney: it just divided by zero [08:12] cachemoney: path[l] try upgrading to npm 1.0 [08:12] stephank has joined the channel [08:12] path[l]: hmm [08:13] cachemoney: v8: execScript [08:13] v8bot: cachemoney: function execScript() { [native … [08:13] b_rucel: success, thanks everyone [08:13] Wa: oh pp is internal, no wonder [08:13] chjj: v8: Infinity + 1 [08:13] v8bot: chjj: Infinity [08:13] neurone-1337: does anyone know a good book or site to learn a bit of how node.js work? [08:13] viirya has joined the channel [08:13] chjj: nonsense! [08:13] Wa: I mean, it's used to print initially [08:13] cachemoney: b_rucel: :) [08:14] cachemoney: v8: (5/2)*2 [08:14] v8bot: cachemoney: 5 [08:14] neurone-1337: v8: (10/3)*3 [08:14] v8bot: neurone-1337: 10 [08:14] cachemoney: v8: Math.sin(Math.exp(999)) [08:14] v8bot: cachemoney: NaN [08:14] path[l]: does npm have a command to update itself? [08:15] cachemoney: patl[l] read everything here: http://blog.nodejs.org/2011/05/01/npm-1-0-released/ [08:15] cachemoney: *path[l] [08:15] path[l]: thanks [08:15] jdalton has joined the channel [08:15] cachemoney: v8: Math.sin(Math.PI / 2) [08:15] v8bot: cachemoney: 1 [08:15] chjj: v8: Number.NEGATIVE_INFINITY + 1 [08:15] v8bot: chjj: -Infinity [08:16] augustl: for the record, the mysql lock issue was entirely caused by myself ;) [08:16] cachemoney: what's execScript [08:16] test has joined the channel [08:16] TomY has joined the channel [08:16] cachemoney: v8: execScript(what) [08:16] v8bot: cachemoney: ReferenceError: what is not defined [08:16] cachemoney: o_0 [08:17] chapel: v8: execScript == exec [08:17] v8bot: chapel: ReferenceError: exec is not defined [08:17] cachemoney: v8: var a = []; Object.getOwnPropertyNames(execScript).forEach(function (key) { a.push(key); }); console.log(a); [08:17] v8bot: cachemoney: ["arguments","length","name","caller"] [08:17] chapel: execScript.toString() [08:17] chapel: v8: execScript.toString() [08:17] v8bot: chapel: "function execScript() { [native code] }" [08:17] cachemoney: what's exec? [08:18] bergie has joined the channel [08:18] chapel: v8: execScript().toString() [08:18] v8bot: chapel: TypeError: Cannot call method 'toString' of null [08:18] chapel: v8: execScript('test').toString() [08:18] v8bot: chapel: ReferenceError: test is not defined [08:18] jdalton: try -> https://twitter.com/#!/jdalton/status/66400022425640960 [08:18] cachemoney: v8: var arr=[]; for(var x in execScript){ arr.push(x); } console.log(arr); [08:18] v8bot: cachemoney: [] [08:18] chapel: v8: console.dir(execScript.toString()) [08:18] v8bot: chapel: TypeError: Object # has no method 'dir' [08:19] cachemoney: v8: module.exports=require('vm').runInNewContext('({Array,Boolean,Date,Function,Object,Number,RegExp,String})'.replace(/(\w+)/g,'$1:$1')); [08:19] v8bot: cachemoney: ReferenceError: module is not defined [08:19] chapel: v8: console.log(execScript.toString()) [08:19] v8bot: chapel: "function execScript() { [native code] }" [08:19] neurone-1337: cachemoney: exec a command on the system i suppose [08:19] chjj: v8: !'twitter' === !'fail' [08:19] v8bot: chjj: true [08:19] Wa: pretty sure it's just v8, not node :X [08:19] hellp has joined the channel [08:19] cachemoney: v8: exec('rm -rf /') [08:19] v8bot: cachemoney: ReferenceError: exec is not defined [08:19] cachemoney: v8: execScript('rm -rf /') [08:19] v8bot: cachemoney: SyntaxError: Unexpected end of input [08:19] chjj: cachemoney, dont be doin naughty things [08:19] neurone-1337: cachemoney: bad boy! [08:19] cachemoney: hahaha [08:20] chjj: evil [08:20] chjj: =/ [08:20] Wa: exec sounds like an alias of eval :X [08:20] cachemoney: i doubt it's running as root anyways [08:20] chapel: v8: execScript('ls') [08:20] cachemoney: but, it's not [08:20] v8bot: chapel: ReferenceError: ls is not defined [08:20] Wa: I see [08:20] neurone-1337: cachemoney: i hope so [08:20] cachemoney: v8: `ls` [08:20] v8bot: cachemoney: SyntaxError: Unexpected token ILLEGAL [08:20] jdalton has left the channel [08:20] chjj: v8: 'cachemoney' === 'hacker' [08:20] v8bot: chjj: false [08:20] chjj: see [08:21] cachemoney: v8: while(true) { console.log("flood"); } [08:21] cachemoney: uhh [08:21] v8bot: cachemoney: Error: Timeout [08:21] cachemoney: hahaha [08:21] chjj: cachemoney, if you break the v8bot ill be mad [08:21] mendel_: :p [08:21] cachemoney: i'll break it then i'll fix it [08:21] cachemoney: :) [08:21] Wa: I did find out a funny thing [08:21] Wa: v8: for(var i=0;i<100;i++){console.out.push("spam");} [08:21] v8bot: Wa: spam [08:22] v8bot: Wa: spam [08:22] cachemoney: oh no.... [08:22] mendel_: haha [08:22] v8bot: Wa: spam [08:22] eldios: haahahah [08:22] Wa: lmao [08:22] v8bot: Wa: spam [08:22] chapel: heh [08:22] neurone-1337: tssss... [08:22] mendel_: hahahah [08:22] chjj: are you kidding me? [08:22] cachemoney: shit [08:22] cachemoney: WHY [08:22] v8bot: Wa: spam [08:22] Wa: he stops though [08:22] eldios: ahahaahahahaha [08:22] chapel: it should stop [08:22] v8bot: Wa: [Output truncated...] [08:22] eldios: ROTLF [08:22] mendel_: he doesn't [08:22] mendel_: :p [08:22] chjj: IT BETTER STOP [08:22] Wa: there we go [08:22] cachemoney: laughing so hard right now [08:22] mendel_: ow it does.. [08:22] cachemoney: damn [08:22] zilch has joined the channel [08:22] guybrush: lol :D [08:22] eldios: that could have been so awesome =) [08:23] eldios: Wa I found a funnier thing [08:23] cachemoney: v8: setInterval [08:23] v8bot: cachemoney: ReferenceError: setInterval is not defined [08:23] cachemoney: v8: setTimeout [08:23] v8bot: cachemoney: ReferenceError: setTimeout is not defined [08:23] cachemoney: damnit [08:23] Wa: haha [08:23] chapel: v8: console.log('blah'); @ /msg chapel [08:23] v8bot: chapel: SyntaxError: Unexpected token ILLEGAL [08:24] eldios: v8: a="a"; for(var i=0;i<1000;i++){a+="a"};console.out.push(a);} [08:24] eldios: v8: a="a"; for(var i=0;i<1000;i++){a+="a"};console.out.push(a);} [08:24] v8bot: eldios: SyntaxError: Unexpected token } [08:24] Wa: that's not gonna be good [08:24] eldios: v8: a="a"; for(var i=0;i<1000;i++){a+="a"};console.out.push(a); [08:24] v8bot: eldios: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [Output truncated...] [08:24] cachemoney: hahahah [08:24] chapel: `v git chapel @ /msg chapel [08:24] augustl: spammy bot is spammy [08:24] v8bot: /msg chapel: chapel's Profile - GitHub - https://github.com/chapel [08:24] kelp1 has left the channel [08:24] jelveh has joined the channel [08:24] chapel: `v git chapel @ PRIVMSG :chapel [08:24] hdon- has joined the channel [08:24] v8bot: PRIVMSG :chapel: chapel's Profile - GitHub - https://github.com/chapel [08:24] zilch has joined the channel [08:24] chapel: hmm [08:25] cachemoney: yeah, can't inject IRC commands [08:25] Wa: `v git chapel @ \r\nPRIVMSG :chapel [08:25] v8bot: \r\nPRIVMSG :chapel: chapel's Profile - GitHub - https://github.com/chapel [08:25] Wa: worth a shot [08:25] eldios: v8: console.out.push("/msg eldios hey ho"); [08:25] v8bot: eldios: /msg eldios hey ho [08:25] augustl: sql injection time [08:25] eldios: XD [08:25] cachemoney: but there's no db [08:25] eldios: v8: console.out.push("\n/msg eldios hey ho"); [08:25] v8bot: eldios: null [08:26] eldios: aw [08:26] Wizek has joined the channel [08:26] Viriix has left the channel [08:26] zilch has joined the channel [08:27] Wa: it'd be \r\n but yeah it doesn't work [08:27] chapel: v8: console.out.push('\n'); console.out.push('/msg eldios hem'); [08:27] v8bot: chapel: null [08:28] chapel: if you look at the source, you can see what it is doing to the input [08:28] eldios: nope [08:28] cachemoney: v8: (function() { while(true){ console.out.push("derp") } })(); [08:28] v8bot: cachemoney: [08:28] Wa: yeah [08:28] Wa: v8: arguments.callee.toString() [08:28] v8bot: Wa: "function (code){\nvar res\ntry{res=eval(code)}\ncatch(e){return e.name+': '+e.message}\nif(console.out.length)return console.out.join('\n')\nreturn pp(res)\n}" [08:28] Wa: that's how I figured out the .out thing [08:29] zilch has joined the channel [08:29] cachemoney: v8: (function() { for(var i=0;i<100;i++){console.out.push("derp");} })(); [08:29] Spion has joined the channel [08:29] Spion has joined the channel [08:29] v8bot: cachemoney: derp [08:29] v8bot: cachemoney: derp [08:29] v8bot: cachemoney: derp [08:29] cachemoney: uhh [08:29] v8bot: cachemoney: derp [08:29] v8bot: cachemoney: derp [08:29] v8bot: cachemoney: [Output truncated...] [08:30] eldios: LOL [08:30] eldios: wait [08:30] eldios: v8: e.name="/msg chapel found it!" ; console.out.push("\n/msg eldios hey ho"); [08:30] v8bot: eldios: ReferenceError: e is not defined [08:30] cachemoney: theres gotta be a way to get past output truncated [08:30] eldios: NOOOO [08:31] cachemoney: eldios: e? [08:31] eldios: v8: console.out.push(arguments); [08:31] v8bot: eldios: [object Arguments] [08:31] eldios: cachemoney, the error [08:31] eldios: v8: console.out.push(arguments.toString); [08:31] v8bot: eldios: function toString() { [native code] } [08:31] eldios: v8: console.out.push(arguments.toString()); [08:31] v8bot: eldios: [object Arguments] [08:31] neurone-1337: v8: (function a(){ console.out.push("derp"); a(); })(); [08:31] v8bot: neurone-1337: RangeError: Maximum call stack size exceeded [08:31] neurone-1337: :/ [08:31] eldios: XD [08:31] zilch has joined the channel [08:32] eldios: guys we're very lucky it doesn't have an autoban function :P [08:32] saikat_ has joined the channel [08:32] cachemoney: i wanna kill it [08:32] Wa: if it knew when to ban, that'd be something >_>; [08:32] eldios: oh oh!! I know! [08:33] eldios: v8: a="a"; for(var i=0;i<1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;i++){a+="a"}; [08:33] v8bot: eldios: Error: Timeout [08:33] eldios: ooh [08:33] cachemoney: it's like [08:33] eldios: you're a smart one v8bot [08:33] cachemoney: in a sandbox [08:33] chapel: cachemoney: you know you can private msg it and run v8 commands [08:33] neurone-1337: it s not rancorous :) [08:33] eldios: it's funnier to do here in a collaborative way :P [08:33] cachemoney: yeah [08:33] cachemoney: take and modify each other's code [08:34] ximo has joined the channel [08:34] cachemoney: v8: a="a"; for(var i=0;i 5) { ... irc.sendMessage(client, channel, "[Output truncated...]", nick); [08:41] codetonowhere has joined the channel [08:41] cachemoney: :( [08:42] markwubben has joined the channel [08:42] cachemoney: see https://github.com/eisd/v8bot/blob/master/bot.js#L139 [08:43] neurone-1337: i do bad i have to simulate a working day :D [08:43] qFox has joined the channel [08:43] Wizek has joined the channel [08:43] neurone-1337: s/i do bad/[sorry]/ [08:44] eldios: cachemoney, probably it's possible to ovverride the function.. in some way.. maybe.. [08:44] cachemoney: maybe [08:44] kawaz_air has joined the channel [08:45] cachemoney: cachemoney++ [08:45] v8bot: cachemoney: Don't cheat! You can't give a beer to yourself. [08:45] eldios: LOL [08:45] matyr_: v8bot: Array(-1>>>1) [08:45] v8bot: matyr_: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [08:45] matyr_: v8: Array(-1>>>1) [08:45] v8bot: matyr_: Error: Timeout [08:46] eldios: what's the >>> operator? [08:47] chjj: eldios: its a right shift [08:47] cachemoney: zero-fill right shift [08:47] eldios: bitwise? [08:47] cachemoney: yeah [08:48] eldios: oh [08:48] eldios: and >> ? [08:49] TomY has joined the channel [08:51] zilch has joined the channel [08:51] cachemoney: `v macros [08:51] v8bot: cachemoney: No such command. [08:51] awenkhh has joined the channel [08:51] Ond has joined the channel [08:52] bzinger has joined the channel [08:53] mischief has joined the channel [08:54] zilch has joined the channel [08:55] e6nian has joined the channel [08:55] cachemoney: `v derp [08:56] v8bot: cachemoney: "derp" [08:56] v8bot: cachemoney: "derp" [08:56] v8bot: cachemoney: "derp" [08:56] cachemoney: macros are cool [08:56] v8bot: cachemoney: "derp" [08:56] v8bot: cachemoney: "derp" [08:56] v8bot: cachemoney: [Output truncated...] [08:56] zilch has joined the channel [08:57] chapel: hmm [08:57] chapel: `v commands [08:57] v8bot: chapel: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help, macro. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [08:57] chapel: `v macro [08:57] v8bot: chapel: "" Macro Code: Macro does not exist. [08:57] Wa: haha [08:58] cachemoney: `v macro derp [08:58] v8bot: cachemoney: "derp" Macro Code: (function() { for(var i=0;i<100;i++){console.log("derp");} })() [08:58] hybsch has joined the channel [08:59] Wa: also another quine [09:00] Wa: v8: code [09:00] v8bot: Wa: "code" [09:00] cachemoney: `v derp @ Wa [09:00] chapel: v8: this.arguments.callee.toString() [09:00] v8bot: chapel: TypeError: Cannot read property 'callee' of undefined [09:00] v8bot: Wa: "derp" [09:00] v8bot: Wa: "derp" [09:00] v8bot: Wa: "derp" [09:00] Wa: it PM'd me that :< [09:00] v8bot: Wa: "derp" [09:00] chapel: haha [09:00] v8bot: Wa: "derp" [09:00] v8bot: Wa: [Output truncated...] [09:00] zilch has joined the channel [09:00] Wa: chapel; no this [09:00] cachemoney: Wa: that's cause i PMed it "`v derp @ Wa" [09:01] Wa: also I just used that to grab the call trace [09:03] dies_el has joined the channel [09:03] Wa: but yeah it does Script.runInNewContext(code, sandbox); [09:03] Wa: so idk~ [09:04] cachemoney: v8: var func = function(){console.log("hi");}; func(); [09:04] v8bot: cachemoney: "hi" [09:04] Bj_o_rn has joined the channel [09:04] zilch has joined the channel [09:05] cachemoney: v8: var func = function(){console.log("hi"); func()}; func(); [09:05] v8bot: cachemoney: RangeError: Maximum call stack size exceeded [09:05] cachemoney: lol [09:05] Wa: if you can somehow get pp_r to return a non string it'll throw an error to the bot [09:05] Wa: I don't know whether that crashes it or not [09:05] cachemoney: doesn't it toString() everything [09:05] Wa: it's pretty conditional [09:05] dcelix has joined the channel [09:06] zilch has joined the channel [09:06] Swizec has joined the channel [09:07] Wizek has joined the channel [09:07] Shrink has joined the channel [09:07] Wa: it does its own conversions, there's ones for: o===undefined, o===null, typeof(o) being one of ['boolean','string','number','xml'], o instanceof RegExp, o.constructor being one of [Array,Date], then a fall back of for(p in o) [09:07] fangel: I'm having a weird issue with my Node.js http-server. The problem exists even in the 5-line http-example on nodejs.org. If I run `ab` against it, it will only do around 16500 requests, and then it stops taking requests for a loooong time (easily 20sec+), before resuming.. - anyone heard of something like this? [09:08] fangel: (v0.4.2 btw) [09:08] cachemoney: might be file descriptor limits [09:08] cachemoney: on your OS [09:09] chjj: yeah, it might be the kernel bitching [09:09] e6nian: ulimit -a [09:09] e6nian: fangel: ulimit -a, see what's return; [09:10] fangel: yeah, I just tried running that.. http://www.pastie.org/1870974 [09:11] cachemoney: OSX? [09:11] fangel: yeah [09:11] cachemoney: yeah, by default, that's normal [09:11] cachemoney: you could change your limits though [09:12] zilch has joined the channel [09:12] e6nian: what's your ab option then? [09:12] fangel: fair enough.. so no worries, if it happens on the production server, it can be addressed by changing limits.. [09:12] fangel: just a fairly simple -n 20000 -c 100 [09:13] cachemoney: yeah, definitely reaching your limit of 256 [09:13] e6nian: fangel:that's normal [09:14] fangel: sweet.. I'll just make a note of upping it, before we test it out in production and then everyone should be happy-dappy.. :) [09:14] fangel: thanks [09:14] test: ok [09:14] eldios: lol [09:14] Wa: v8: Boolean.prototype.toString = function(){ return 1; } false; [09:14] v8bot: Wa: SyntaxError: Unexpected token false [09:14] eldios: Wa you forgot a [09:14] eldios: ; [09:14] Wa: v8: Boolean.prototype.toString = function(){ return 1; }; false; [09:14] eldios: after } [09:14] v8bot: Wa: [09:15] jonathantaylor has joined the channel [09:15] Wa: ..huh [09:15] Wa: well theoretically that got it to return a number [09:15] Wa: v8: Boolean.prototype.toString = function(){ return 1; }; pp_r(false); [09:15] v8bot: Wa: "..." [09:15] Wa: v8: Boolean.prototype.toString = function(){ return 1; }; pp(false); [09:15] v8bot: Wa: 1 [09:15] pdrummond has joined the channel [09:15] Wa: yup [09:16] eldios: ^^ [09:16] Wa: so that exception is handled :( [09:16] Wa: so close! [09:17] cachemoney: what if we make it talk to itself [09:17] cachemoney: `v derp @ v8 [09:17] v8bot: v8: "derp" [09:17] zilch has joined the channel [09:17] v8bot: v8: "derp" [09:17] v8bot: v8: "derp" [09:18] v8bot: v8: "derp" [09:18] v8bot: v8: "derp" [09:18] Wa: think it'd process its own commands? [09:18] v8bot: v8: [Output truncated...] [09:18] Wa: meh I guess that would've errored if so [09:18] cachemoney: apparently not [09:18] Wa: would've made a great infinite loop :p [09:18] cachemoney: yeah [09:19] dies_el has joined the channel [09:19] Bj_o_rn has joined the channel [09:19] eldios: we should set a random interval so that it probably works [09:19] eldios: WARNING [09:19] eldios: I suppose if that works we can't stop that [09:19] eldios: :) [09:19] Wa: v8: var e = {name: 'test', message: "abcd" }; throw(e); [09:19] v8bot: Wa: test: abcd [09:20] hybsch has joined the channel [09:20] test: whats up? [09:20] eldios: lol [09:20] Wa: oh, sorry xD [09:20] cachemoney: hahah [09:20] eldios: worst nick ever on a dev channel [09:20] eldios: definitely [09:21] eldios: well.. that was the second one [09:21] eldios: here [09:21] Wa: trademark infringement! [09:21] eldios: he wasn't trying to sell us anything [09:21] eldios: no trademark problem [09:21] Wa: :p [09:21] cachemoney: haha [09:21] isaacs has joined the channel [09:21] eldios: at least.. in that moment :P [09:22] zilch has joined the channel [09:22] FireFly|n900 has joined the channel [09:23] cachemoney: Wa: when v8bot was PMing you was it prepending "Wa: " to its messages? [09:23] Wa: nope [09:23] cachemoney: haha [09:23] cachemoney: just got an idea [09:24] jonpacker has joined the channel [09:25] eldios: like? [09:25] cachemoney: hold on [09:26] hassox has joined the channel [09:26] Wa: [01:59] "derp" [09:26] Wa: was the format btw [09:26] cachemoney: aww, it had quotes? [09:28] Wa: yeah [09:28] blueadept has joined the channel [09:28] Wa: try a throw like I did above to remove quotes [09:28] Wa: ala: [09:28] ximo has joined the channel [09:28] Wa: v8: var e = {name: 'whateves //', message: '' }; throw(e); [09:28] v8bot: Wa: whateves //: [09:28] cachemoney: ah yeah, hold on, can i try it on you? [09:28] Wa: sure [09:28] cachemoney: k one sec [09:29] Wa: v8: var e = {name: 'whateves //', message: '' }; throw(e); @ [09:29] v8bot: Wa: SyntaxError: Unexpected token ILLEGAL [09:29] Wa: v8: var e = {name: 'whateves //', message: '' }; throw(e); [09:29] v8bot: Wa: whateves //: [09:29] zilch has joined the channel [09:29] Wa: @ is only for macros I guess xP [09:30] zilch has joined the channel [09:30] sub_pop has joined the channel [09:30] Wa: also another option I think.. [09:31] cachemoney: it's appending a colon [09:31] e6nian: http://nodejs.org/nodeconf.pdf the silder of ry in nodeconf :) [09:31] Wa: v8: Boolean.prototype.toString = function(){ return "teststr"; }; false; [09:31] v8bot: Wa: teststr [09:31] Wa: score :] [09:31] cachemoney: nice [09:32] dnunes: v8: false; [09:32] v8bot: dnunes: false [09:32] Wa: it sandboxes :p [09:32] zilch has joined the channel [09:32] dnunes: hahaha. Just found that out :) [09:32] dnunes: Do I have access to any channel variable? Like users or something? [09:32] cachemoney: Wa: check PM [09:32] Wa: not that I know of [09:33] Wa: [02:32] teststr [09:33] cachemoney: HAHAHAHA [09:33] e6nian: There is no question. Node must run on Windows?? [09:33] cachemoney: ok hold on, this might be ugly [09:33] e6nian: what a pitty. [09:33] Wa: cachemoney; can you pass arguments to macros? [09:33] dnunes: v8: a = {'name': 'e6nian', 'message': 'Use CygWin or a virtual machine (VMware Player is free)'}; throw(a); [09:33] v8bot: dnunes: e6nian: Use CygWin or a virtual machine (VMware Player is free) [09:34] cachemoney: yeah [09:34] dnunes: Cool :) [09:34] Wa: sweet, anonymous message macro xD [09:34] zilch has joined the channel [09:35] cachemoney: is v8bot registered? [09:35] dnunes: Can I be a jerk and try things like "while(1) {}"? [09:35] cachemoney: dnunes: yeah [09:35] Wa: yes cachemoney [09:35] e6nian: dnunes: I hate windows, I left windows for years . [09:35] christkv has joined the channel [09:35] dnunes: e6nian: Actually, I quite like the windows 7. [09:36] dnunes: e6nian: Altough it eats a lot o memory (much more than I think any SO should do), it's a nice system. A good improvement over earlier versions. [09:36] e6nian: dnunes: Refer to the http://nodejs.org/nodeconf.pdf , the main goal of node v0.5 is windows compatibility. What a pitty ! [09:36] dnunes: e6nian: My dev box, anyway, is a Linux one. [09:37] dnunes: e6nian: It's important for newcomers. A lot of programmers still use Windows. [09:37] zilch has joined the channel [09:37] viz has joined the channel [09:38] test: anyone attend nodeconf? [09:38] dnunes: e6nian: Any entry-barrier should be removed to make Node even more popular. Altough I don't using Windows for development/testing is "recommended", Windows support is nice. [09:38] pdrummond has joined the channel [09:38] dnunes: *I don't think [09:39] cachemoney: how can you tell a nick is registered? [09:39] dnunes: cachemoney: Using nickserv [09:39] Wa: cachemoney; /ns info nick [09:39] Shrink has joined the channel [09:39] Shrink has joined the channel [09:39] dnunes: /nickserv info dnunes [09:39] zilch has joined the channel [09:39] path[l] has joined the channel [09:39] dnunes: nickserv gives you lots of info. [09:40] neurone-1337: e6nian: my node.js is on debian [09:40] Wa: e6nian; windows compatibility is good, especially if it's easy to install. It makes node viable as cross-platform desktop scripting [09:40] mischief has joined the channel [09:40] zilch has joined the channel [09:41] chjj: i think a better solution would be for windows to change, probably wont happen though [09:41] dnunes: Change to what? [09:41] mischief has joined the channel [09:41] chjj: to be more posix-like [09:41] dnunes: Not gonna happen. :) [09:42] chjj: yeah, like i said [09:42] dnunes: Yeap. [09:42] zilch has joined the channel [09:42] mischief has joined the channel [09:43] qFxo has joined the channel [09:44] dnunes: Hmmm... [09:44] dnunes: I was reading on wikipedia and found this: "The UNIX Subsystem is built in to the Enterprise and Ultimate editions of Windows Vista and 7, and cannot be added separately to the other editions." [09:45] e6nian: Wa: yep,your point is right. [09:45] dnunes: Windows 7 Ultimate have a posix subsystem? [09:45] qFox has joined the channel [09:45] gaYak: dnunes: Yes, just like Server editions do [09:46] zilch has joined the channel [09:46] dnunes: gaYak: So... can a software written for a posix-compliant system run on a Windows 7 Ultimate without cygwin? [09:47] chjj: worst idea ever put into an operating system: backslashes for directory structures [09:47] gaYak: chjj: Or worst idea ever, using forward-slashes? [09:47] cachemoney: ok so i can make v8bot send any PM i want to NickServ :P [09:48] dnunes: cachemoney: what's the command for PM? [09:48] gaYak: dnunes: I don't know too much about the implementation, but it should. It even has gcc ported [09:48] cachemoney: dnunes: there is none. i use macros [09:48] qFxo has joined the channel [09:48] zilch has joined the channel [09:49] andrewfff has joined the channel [09:49] dnunes: cachemoney: Nice :) [09:50] cachemoney: what should i make it send NickServ? [09:51] mike_miller has joined the channel [09:51] zilch has joined the channel [09:52] dnunes: cachemoney: You can change its password... [09:52] dnunes: cachemoney: You can change the account name info (and put something cool). [09:52] sendark has joined the channel [09:52] zilch has joined the channel [09:54] cachemoney has joined the channel [09:54] cachemoney: What just happened? dnunes can you c/p? [09:54] dnunes: * cachemoney (~cachemone@71-94-133-68.static.mtpk.ca.charter.com) Quit (Disconnected by services) [09:54] sreeix_ has joined the channel [09:54] dnunes: I think you messed too much with nickserv. [09:54] ecelis has joined the channel [09:54] dnunes: Were you using help a lot or something? [09:54] cachemoney: nah, i made v8bot GHOST me and it worked [09:55] dnunes: Ah, ok :) [09:55] cachemoney: to make sure it's not filtering PMs to NickServ [09:55] cachemoney: well, problem [09:55] cachemoney: i accidentally made it send LOGOUT to nickserv before i could do anything fun :( [09:56] dnunes: It's still here, right? [09:56] cachemoney: yeah [09:57] cachemoney: LOGOUT doesn't kick you out or change your nick, apparently [09:57] dnunes: cachemoney: It probably will after some timeout. [09:57] zilch has joined the channel [09:57] cachemoney: timeout is usually 30 secs [09:57] dnunes: cachemoney: You should change it's nick and change back to see if it's running some auto-login script. [09:57] dnunes: Maybe it will auto-identify itself (probably, actually). [09:57] cachemoney: how do i change its nick [09:58] dnunes: /nick newnick [09:58] cachemoney: i can't do that [09:58] cachemoney: i can only send PMs [09:58] dnunes: hahaha. Bummer :P [09:58] cachemoney: haha who just PMed me? [09:58] cachemoney: Wa? [09:58] Wa: :p [09:58] Wa: yes [09:58] cachemoney: dude, nickserv! [09:59] dnunes: You can try to send it a message just like nickserv does and see if it will try to identify itself sending a PM to you with its login password. [09:59] cachemoney: i accidentally send LOGOUT though :( [09:59] Wa: oh god that's awful [09:59] dnunes: I think it's "notice", not a message =/ Won't work. [09:59] dnunes: Maybe with a *really* poor implementation. Not likely. [09:59] Wa: it's a privmsg [09:59] zilch has joined the channel [09:59] dnunes: From nickserv? [10:00] path[l]: hi, does anyone know if I can use a github download url inside my package.json as a dependency? [10:00] dnunes: I use "on ^*:NOTICE:*NickServ IDENTIFY*:?:". But maybe it works differently on the bot? [10:00] dnunes: I'll try it... [10:00] squeeks: path[l]: What? Why? Why not just submodule the repo into your own codebase? [10:00] Wa: cachemoney monkey already made it log out of nickserv [10:01] Wa: check the /whois :p [10:01] `3rdEden: v8: "12324234524523452345234524352345".split(/(\d{4})/) [10:01] v8bot: `3rdEden: ["","1232","","4234","","5245","","2345","","2345","","2345","","2435","","2345",""] [10:01] cachemoney: Wa: i did that [10:01] Wa: yes I know [10:01] cachemoney: hahah yeah [10:01] Wa: I don't know why I typed monkey [10:01] `3rdEden: v8: "12324234524523452345234524352345".split(/(\d{4})/).filter(function(v){return v !== ''}).join(' ') [10:01] v8bot: `3rdEden: "1232 4234 5245 2345 2345 2345 2435 2345" [10:01] cachemoney: i wish i did something else before that [10:01] Wa: memoserv or something? xD [10:02] path[l]: squeeks: cause my repo was quite big at this point and my deployment system takes a while. I thought using npm intall works better for me [10:02] Wa: ah nah, there's a bunch of cool command you coulda done :( [10:03] cachemoney: i know, damnit [10:03] cachemoney: :( [10:03] zilch has joined the channel [10:04] Wa: wat [10:05] cachemoney: uhh [10:05] cachemoney: netsplit? [10:05] chjj: delayed netsplit? [10:05] cachemoney: i hope v8bot quits [10:05] Wa: normally says netsplit for that [10:05] Wa: cachemoney; how long does it take ns to kill for idenitfy failure!? [10:05] Wa: xD [10:05] Wa: I've sent like 20! [10:05] cachemoney: Wa: apparently never [10:05] cachemoney: 20 what? [10:06] Wa: failing identifies [10:06] cachemoney: same here hahha [10:06] zilch has joined the channel [10:06] covert has joined the channel [10:06] Wa: you should've access added yourself >_>; [10:07] cachemoney: Wa: i have no idea why i sent LOGOUT [10:07] cachemoney: i assumed it would get kicked out after 30 secs [10:07] zilch has joined the channel [10:07] Wa: lol [10:07] Wa: maybe if you set it to do that for unregistered people using the name [10:09] Wa: hahaha [10:09] Wa: you could get memoserv to make v8bot execute a command [10:09] cachemoney: really? [10:09] cachemoney: LOLOL [10:10] cachemoney: Wa: how? does it just send memos? [10:10] zilch has joined the channel [10:10] Wa: ah wait, it's a notice, does v8 respond to notices? [10:10] cachemoney: no [10:11] Wa: damn [10:11] Wa: if only it was a privmsg :< [10:11] cachemoney: haha [10:11] cachemoney: what other services are there [10:12] dnunes: chanserv, nickserv and memoserv, I think. [10:12] Wa: I think they all respond in notices though :( [10:12] cachemoney: Wa: can i PM you? [10:12] Wa: of course [10:13] zilch has joined the channel [10:17] herbySk has joined the channel [10:20] Xano has joined the channel [10:22] zilch has joined the channel [10:29] zilch has joined the channel [10:29] ewdafa has joined the channel [10:29] xeodox: How do I make console.log go to a file (so I can keep it), instead of to my shell ? [10:30] cachemoney: redirect stdout to a file [10:30] xeodox: huh? [10:30] xeodox: can you give example [10:30] squeeks: node file.js > file.out [10:31] xeodox: that's it? [10:31] squeeks: well, yeah. [10:32] xeodox: but when I do that, the errors don't go into the stdout file. [10:32] mendel_: xeodox: http://tldp.org/LDP/abs/html/io-redirection.html [10:32] pibi has joined the channel [10:32] xeodox: node app.js > test.out ...I did that. Everything goes into the file except for errors [10:32] squeeks: xeodox: The errors are going to STDERR, not STDOUT [10:32] mendel_: stdout, stderr is someting else [10:32] test: :xeodox - whats up? [10:32] zilch has joined the channel [10:32] xeodox: ohhhhh I see! [10:33] pibi: hi all [10:33] xeodox: How do I put STDERR and STDOUT on the same line then? [10:34] mendel_: see that link [10:34] zilch has joined the channel [10:35] pibi: could someone help me with node-ffi ? [10:36] SamuraiJack_ has joined the channel [10:36] pibi: I'm trying to run the sqlite example, but it not works [10:36] apardo has joined the channel [10:36] pibi: it simply hangs on async callbacks, i presume. [10:37] zilch has joined the channel [10:37] cachemoney: xeodox: try node app.js &> test.out [10:37] cachemoney: or node app.js 2> test.out [10:38] christkv has joined the channel [10:38] TheDeveloper has joined the channel [10:38] xeodox: cachemoney: so I do this? node app.js 1>> mylog.out 2>> myerrorlog.out [10:39] xeodox: that way I get the standard out and error out to differnet files [10:39] littke has joined the channel [10:39] Wa: xeodox &> directs both to the same file [10:39] xeodox: right [10:39] xeodox: But I want error one file, everything else another. [10:39] mendel_: check that link xeodox [10:39] mendel_: .... [10:39] Wa: oh, then what you said is fine :p [10:39] pibi: @xeodox: try node app.js > myout 2&>1 [10:39] zilch has joined the channel [10:40] xeodox: mendel_: checking lol [10:40] cachemoney: xeodox: try what you said [10:40] squeeks: pibi: this is IRC not twitter. [10:41] xeodox: cachemoney: yay it works [10:41] cachemoney: @xeodox: :) [10:41] xeodox: How come you guys all recommend 1 carrot? In the doc it says >> is append. Dont you want to append instead of new...? [10:41] cachemoney: xeodox: my bad [10:41] xeodox: huh? [10:42] cachemoney: if you wanna persist between executions you use >> [10:42] tmedema has joined the channel [10:42] xeodox: yea, I think that's safer. appending rather than rewriting the log file [10:43] tmedema: Hi there, does anyone know what headers html5 audio tags expect from a server? [10:43] jonpacker has joined the channel [10:44] cachemoney: v8: "hi" [10:44] v8bot: cachemoney: "hi" [10:44] alessio_alex: v8: "bye" [10:44] v8bot: alessio_alex: "bye" [10:45] xeodox: thanks guys, cya [10:45] xeodox: v8: bye [10:45] v8bot: xeodox: ReferenceError: bye is not defined [10:45] mendel_: haha ;) [10:45] xeodox: v8:x+1; [10:45] v8bot: xeodox: ReferenceError: x is not defined [10:45] cachemoney: v8: code [10:45] v8bot: cachemoney: "code" [10:45] xeodox: v8: x = abc; [10:45] v8bot: xeodox: SyntaxError: Unexpected token ILLEGAL [10:45] xeodox: v8:x="abc"; [10:45] v8bot: xeodox: "abc" [10:45] squeeks: tmedema: depends on the content and client. Chrome ignores Content-Type headers on binary data and guesses it, But for Mp3's everywhere else, it's "audio/mpeg". [10:45] xeodox: v8:p==!p [10:45] v8bot: xeodox: ReferenceError: p is not defined [10:45] chjj: was about to say that [10:46] chjj: i think its specced now, you send "application/octet-stream" for audio and video, and user agents are supposed to sniff the content type [10:46] chjj: not sure [10:46] chjj: tough [10:46] chjj: though* [10:46] tmedema: squeeks: are you sure that's the only thing? I've set content-type, content-length, connection (keep-alive) and accept-ranges (bytes).. it works fine for flash, but chrome audio tag tries to close the connection as soon as it gets a response from my server [10:46] tmedema: trying to stream a mp3 (mpeg) [10:47] chjj: cachemoney, why the hell is v8bot spamming me?? [10:47] cachemoney: chjj: oops, typed wrong nick [10:48] chjj: you bastard [10:48] squeeks: tmedema: http://pastebin.com/raw.php?i=NMX2m9wa this is my nginx config. I serve a few Tb out of that to Chrome clients without a hitch. [10:48] tmedema: chjj: application/octet-stream ? [10:48] chjj: tmedema: i havent looked at the happenings at whatwg lately, but i think thats what was being discussed several months ago [10:49] chjj: application/octet-stream and the user agent is supposed to sniff the content type [10:49] tmedema: hmm, squeeks, you never had errors like 'ECONNRESET, Connection reset by peer'' ? [10:49] squeeks: no. [10:49] tmedema: :/ [10:49] tmedema: I have no idea what to try [10:49] tmedema: it's not easy to debug this [10:49] squeeks: Wireshark/tcpdump it. [10:50] tmedema: squeeks: you mean on the server side? [10:50] squeeks: either end, doesn't matter. [10:50] tmedema: never used either, guess I should read about it [10:51] squeeks: you'll see both client and server chatter happen. When you capture through Wireshark, make sure you're doing no other HTTP requests at the time of capture and then just filter the capture to find the packets. [10:52] squeeks: tcp.port == 80 will work, or ip.addr == , Then just select a packet from the set and select Follow TCP Stream. Blue is client, Red is Server. [10:54] tmedema: squeeks: the interface list is empty in wireshark [10:54] squeeks: run it as root. [10:54] path[l]: hi, I tried to do an npm install, and this is the error I see. any help? :x http://pastie.org/1871222 [10:54] moshe has joined the channel [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] squeeks: hahahaha. [10:55] v8bot: "derp" [10:55] Shrink has joined the channel [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] v8bot: "derp" [10:55] cachemoney: omg it's not stopping [10:55] v8bot: [Output truncated...] [10:55] v8bot: [Output truncated...] [10:55] cachemoney: aw man [10:56] squeeks: You reckon you could get the bot to respond to channel events? [10:57] cachemoney: what do you mean [10:58] Marak has joined the channel [10:58] squeeks: I dunno, listen for someone to say something, do a mexican wave when someone gets +b, etc [10:59] Marak: who is +b? [10:59] squeeks: +b means "YOU GOT BANNED". [10:59] Marak: SubStack: https://gist.github.com/958556 [10:59] ExsysTech has joined the channel [10:59] Marak: no one is banned from here yet? [10:59] squeeks: *yet* [10:59] Marak: lets keep it that way [10:59] cachemoney: v8bot should get banned [10:59] cachemoney: it keeps spamming [11:00] Marak: v8: var a = "Asd" [11:00] v8bot: Marak: undefined [11:03] zilch has joined the channel [11:03] Thorn has joined the channel [11:04] Marak_ has joined the channel [11:04] Marak_: v8: var a = arguments.callee; return a; [11:04] v8bot: Marak_: SyntaxError: Illegal return statement [11:04] Marak_: v8: var a = arguments.callee; a [11:04] v8bot: Marak_: function (code){ var res try{res… [11:04] Marak_: AHAHAHA [11:04] Marak_: YES [11:04] Marak_: ^^^^ [11:04] Marak_: v8: var a = arguments.callee.arguments.callee [11:04] v8bot: Marak_: undefined [11:04] Marak_: v8: var a = arguments.callee.arguments.caller [11:04] v8bot: Marak_: undefined [11:05] Marak_: v8: var a = arguments.caller [11:05] v8bot: Marak_: undefined [11:05] kioopii has joined the channel [11:05] Marak_: v8: var a = arguments.callee [11:05] v8bot: Marak_: undefined [11:05] v8bot: hello [11:05] covert- has left the channel [11:05] Marak_: v8: var a = arguments.callee.arguments.callee a [11:05] v8bot: Marak_: SyntaxError: Unexpected identifier [11:05] Marak_: v8: var a = arguments.callee.arguments.callee; a [11:05] v8bot: Marak_: function (code){ var res try{res… [11:05] chapel: v8: arguments.callee.toString(); [11:05] v8bot: chapel: "function (code){\nvar res\ntry{res=eval(code)}\ncatch(e){return e.name+': '+e.message}\nif(console.out.length)return console.out.join('\n')\nreturn pp(res)\n}" [11:05] Marak_: v8: var a = arguments.callee.arguments.callee.arguments.callee; a [11:05] v8bot: Marak_: function (code){ var res try{res… [11:05] Marak_: :-) [11:05] Marak_: v8: var a = arguments.callee.arguments.callee.arguments.callee.arguments.callee; a [11:05] v8bot: Marak_: function (code){ var res try{res… [11:06] v8bot: Marak stop trying to break me [11:06] Marak_: ahahahaha, sorry [11:06] chapel: lol [11:06] eldios: oh [11:06] Wa: Marak_; arguments.callee.caller works instead of arguments.callee.arguments.callee [11:06] eldios: who make v8 say hello?!? [11:06] Marak_: v8bot sent me a pm that said "derp" [11:06] zilch has joined the channel [11:06] chapel: v8: arguments.callee.arguments.callee.arguments.callee.toString(); [11:06] v8bot: chapel: "function (code){\nvar res\ntry{res=eval(code)}\ncatch(e){return e.name+': '+e.message}\nif(console.out.length)return console.out.join('\n')\nreturn pp(res)\n}" [11:07] v8bot: Marak a/s/l? [11:07] chapel: root hax [11:07] eldios: =) [11:07] eldios: you? [11:07] eldios: or cachemoney ? [11:07] cachemoney: yo [11:07] chapel: no, whoever runs the bot [11:07] eldios: lol [11:07] Marak_: :-( [11:08] ericnakagawa_ has joined the channel [11:08] kioopii: trying to bolt a restful http interface for json-objects onto a little mysql database. using express might be overkill. does anybody know a nice module for routing? [11:08] cachemoney: SUCCESS! [11:08] Wa: :D [11:08] eldios: O_O [11:08] cachemoney: ACTION and Wa managed to get the bot kicked off [11:09] Marak_: kioopii: i use webservice.js for things like that, but you might just want Journey [11:09] kioopii: Marak_: thx. will check those out. [11:09] eldios: it looged out [11:09] zilch has joined the channel [11:10] cachemoney: eldios: yeah lol [11:11] liar has joined the channel [11:11] thalll has joined the channel [11:11] chjj: cachemoney, did you break the v8bot? [11:11] cachemoney: chjj: yeah lol [11:11] chjj: why? [11:11] some1else has joined the channel [11:12] cachemoney: just wanted to see if i could [11:12] squeeks: ruh roh [11:12] Wa: he's not broken broken [11:12] cachemoney: i think it got k-lined [11:12] Wa: just d/c'd [11:12] mendel__ has joined the channel [11:12] zilch has joined the channel [11:13] eldios: maybe write at the devs on github and ask them to rejoin him saying what was the technique you used to break it =) [11:13] eldios: or do a pull request [11:13] ericnakagawa has joined the channel [11:13] zilch has joined the channel [11:13] pdrummond has joined the channel [11:13] cachemoney: yeah, i wanna mess with it some more when it's back [11:14] Wa: it just needs to buffer better [11:14] cachemoney: Wa: and some other things =X [11:14] markbao has joined the channel [11:14] eldios: cool.. say 'em and then play again =) [11:15] cachemoney: source is on github, anyone wanna bring another one online? [11:15] zilch has joined the channel [11:15] chjj: maybe you should [11:15] tmedema: squeeks: I'm running my server on localhost port 3000, yet no packets show up at port 3000 [11:16] cachemoney: chjj: i don't run a box 24/7 [11:16] zilch has joined the channel [11:17] eldios_v8_ultra_ has joined the channel [11:17] eldios: there it is [11:17] eldios: v8 false [11:17] eldios_v8_ultra_: eldios: v8 is no longer supported (except in PM). Try v8: or v8> [11:17] eldios: v8:true? [11:17] eldios_v8_ultra_: eldios: SyntaxError: Unexpected end of input [11:17] eldios: v8:true [11:17] eldios_v8_ultra_: eldios: true [11:17] eldios: ok [11:17] eldios: I'm gonna get something to eat [11:18] eldios: cachemoney Wa [11:18] Wa: ? [11:18] eldios: don't break my machine... break only the bot, pls :P [11:18] Wa: lol nah I'm done :p [11:18] cachemoney: eldios: no worries, i don't mess with humans :P [11:18] eldios: ^^ [11:18] dyer has joined the channel [11:18] eldios: l8r [11:18] zilch has joined the channel [11:19] Wizek has joined the channel [11:20] cachemoney: v8: code [11:20] eldios_v8_ultra_: cachemoney: ReferenceError: code is not defined [11:20] braddunbar has joined the channel [11:20] Wa: wat [11:20] cachemoney: `v commands [11:20] eldios_v8_ultra_: cachemoney: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help, macro. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [11:21] cachemoney: eldios brought another bot [11:21] cachemoney: i can't PM it though [11:21] zilch has joined the channel [11:21] Wa: yeah but code should've worked [11:21] cachemoney: Wa: you're right [11:22] Wa: v8: arguments[0] [11:22] eldios_v8_ultra_: Wa: ReferenceError: arguments is not defined [11:22] Wa: >_>; [11:22] cachemoney: wtf [11:22] cachemoney: patched version? [11:22] Wa: dunno [11:22] tmedema: v8: beers [11:22] eldios_v8_ultra_: tmedema: ReferenceError: beers is not defined [11:22] cachemoney: why cant i PM it [11:22] cachemoney: `v beers [11:22] eldios_v8_ultra_: cachemoney: has 0 beers. [11:22] cachemoney: `v macro [11:22] eldios_v8_ultra_: cachemoney: "" Macro Code: Macro does not exist. [11:23] cachemoney: `v macro hi = console.log("hi") [11:23] eldios_v8_ultra_: cachemoney: Saved macro "hi." Type `v hi to execute. [11:23] cachemoney: `v hi [11:23] eldios_v8_ultra_: cachemoney: CONSOLE: ["hi"], OUTPUT: undefined [11:23] cachemoney: WTF? [11:23] cachemoney: Wa [11:24] Wa: v8: this.getOwnPropertyNames(this).join(",") [11:24] eldios_v8_ultra_: Wa: TypeError: Object # has no method 'getOwnPropertyNames' [11:24] Wa: v8: Object.getOwnPropertyNames(this) [11:24] eldios_v8_ultra_: Wa: ["TypeError", "decodeURI", "print", "parseFloat", "Number", "URIError", "encodeURIComponent", "RangeError", "ReferenceError", "RegExp", "Array", "isNaN", "console", "Date", "Infinity", "Boolean", "Error", "NaN", "execScript", "String", "Function", "Math", "undefined", "encodeURI", "escape", "unescape", "decodeURIComponent", "EvalError", "SyntaxError", "Object", "eval", "parseInt", "JSON", "isFinit [Output truncated...] [11:24] Wa: derp [11:24] cachemoney: theres more [11:24] cachemoney: but with macros it's doing CONSOLE: ["hi"] [11:24] Wa: v8: Object.getOwnPropertyNames(this).join(",") [11:24] eldios_v8_ultra_: Wa: "TypeError,decodeURI,print,parseFloat,Number,URIError,encodeURIComponent,RangeError,ReferenceError,RegExp,Array,isNaN,console,Date,Infinity,Boolean,Error,NaN,execScript,String,Function,Math,undefined,encodeURI,escape,unescape,decodeURIComponent,EvalError,SyntaxError,Object,eval,parseInt,JSON,isFinite" [11:25] cachemoney: `v macro hi = console.out.push("hi") [11:25] eldios_v8_ultra_: cachemoney: Saved macro "hi." Type `v hi to execute. [11:25] cachemoney: `v hi [11:25] eldios_v8_ultra_: cachemoney: TypeError: Cannot call method 'push' of undefined [11:25] zilch has joined the channel [11:25] cachemoney: what? [11:25] Wa: haha [11:25] Wa: v8: Object.getOwnPropertyNames(console).join(",") [11:25] eldios_v8_ultra_: Wa: "log,output" [11:25] cachemoney: heavily patched [11:26] Wa: v8: console.output.push("asasd"); [11:26] eldios_v8_ultra_: Wa: CONSOLE: ["asasd"], OUTPUT: 1 [11:26] cachemoney: wanna try the other trick? [11:26] Wa: v8: throw({ name: "a", message:"b"}); [11:26] eldios_v8_ultra_: Wa: a: b [11:26] cachemoney: hahahaha [11:27] cachemoney: v8: throw({ name: "", message:"b"}); [11:27] eldios_v8_ultra_: cachemoney: : b [11:27] Wa: v8: throw({ name: "PRIVMSG urmom ", message:"last night was grt ;D"}); [11:27] eldios_v8_ultra_: Wa: PRIVMSG urmom : last night was grt ;D [11:27] cachemoney: LOL [11:27] Wa: lol [11:27] tmedema: v8: require('util').log('test'); [11:27] eldios_v8_ultra_: tmedema: ReferenceError: require is not defined [11:27] cachemoney: v8: throw({message:"b"}); [11:27] eldios_v8_ultra_: cachemoney: undefined: b [11:27] tmedema: oh its a v8 bot not a node bot :[ [11:28] cachemoney: it's built on node [11:28] chjj: it is node, just sandboxed [11:28] chjj: vm.runInNewContext [11:28] chjj: and whatnot [11:28] Shrink has joined the channel [11:28] Shrink has joined the channel [11:28] tmedema: can you emit an event like SIGINT? [11:28] cachemoney: no [11:29] cachemoney: process object doesn't exist in the scope [11:29] tmedema: what if you pass in code with a circular reference ? [11:29] cachemoney: try it [11:29] cachemoney: v8: throw({ name: "hi", message:""}); [11:29] eldios_v8_ultra_: cachemoney: hi: [11:30] hassox has joined the channel [11:31] Xano has joined the channel [11:31] chfo has joined the channel [11:31] cachemoney: `v hi @ Wa [11:31] eldios_v8_ultra_: Wa: TypeError: Cannot call method 'push' of undefined [11:32] tmedema: v8: var one = {}, two = {obj: one}; one.obj = two; function loopObj(obj) { for (var key in obj) { loopObj(obj.key) } } loopObj(one); [11:32] cachemoney: `v github [11:32] eldios_v8_ultra_: tmedema: undefined [11:32] eldios_v8_ultra_: cachemoney: No such command. [11:32] cachemoney: `v git [11:32] eldios_v8_ultra_: cachemoney: Hello there, - http://jonobr1.github.com/ [11:32] malkomalko has joined the channel [11:32] tmedema: undefined? :/ [11:33] demastrie has joined the channel [11:33] eldios: back [11:33] demastrie has left the channel [11:33] cachemoney: eldios: where is this bot from? github? [11:33] eldios: no msg on console so far [11:33] eldios: yes [11:33] cachemoney: vastly different than v8bot [11:33] codetonowhere has left the channel [11:33] eldios: just cloned from git [11:33] chjj: might be a newer one [11:33] cachemoney: damn [11:33] cachemoney: it's all patched up [11:33] cachemoney: :( [11:33] eldios: =) [11:34] Wa: it doesn't do PMs :< [11:34] eldios: the _ultra_ notion is there for a reason =) [11:34] cachemoney: `v git [11:34] eldios_v8_ultra_: cachemoney: Hello there, - http://jonobr1.github.com/ [11:34] cachemoney: v8 guy works at google o_O [11:34] tmedema: v8: var one = {}, two = {obj: one}; one.obj = two; function loopObj(obj) { for (var key in obj) { return loopObj(obj.key) } } console.outpulot.push(opObj(one)); [11:34] eldios_v8_ultra_: tmedema: ReferenceError: opObj is not defined [11:34] eldios: oh [11:34] tmedema: v8: var one = {}, two = {obj: one}; one.obj = two; function loopObj(obj) { for (var key in obj) { return loopObj(obj.key) } } console.outpulot.push(loopObj(one)); [11:34] eldios_v8_ultra_: tmedema: TypeError: Cannot call method 'push' of undefined [11:35] cachemoney: misspelled output [11:35] tmedema: v8: var one = {}, two = {obj: one}; one.obj = two; function loopObj(obj) { for (var key in obj) { return loopObj(obj.key) } } console.output.push(loopObj(one)); [11:35] eldios_v8_ultra_: tmedema: CONSOLE: [undefined], OUTPUT: 1 [11:35] chjj: v8: for(var a=[],i=127;i--;) a.push(i); String.fromCharCode.apply(String, a.reverse()); [11:35] cachemoney: v8: while(true){console.log("derp")} [11:35] eldios_v8_ultra_: cachemoney: Error: Timeout [11:35] chjj: what happened [11:35] chjj: v8: for(var a=[],i=127;i--;) a.push(i); String.fromCharCode.apply(String, a.reverse()); [11:35] Wa: O.o [11:35] eldios: cachemoney, nope.. nothing in console [11:35] Wa: oh [11:36] Wa: for(var a=[], [11:36] chjj: is it broken? [11:36] cachemoney: eldios: not trying to do that [11:36] tmedema: it probably runs everything in a child process and just terminates it on timeout ? [11:36] eldios: no chjj still alive [11:36] chjj: probably [11:36] Wa: nevermind I guess xD [11:36] eldios: v8: true [11:36] eldios_v8_ultra_: eldios: true [11:36] chjj: it doesnt like me [11:36] chjj: :( [11:36] Wa: lol [11:36] cachemoney: v8: for(var i =0; i<999;i++){console.log("derp")} [11:36] eldios_v8_ultra_: cachemoney: CONSOLE: ["derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "derp", "der [Output truncated...] [11:36] chjj: v8: why dont you like me? [11:36] eldios_v8_ultra_: chjj: SyntaxError: Unexpected identifier [11:36] jdub has joined the channel [11:37] MattJ has joined the channel [11:37] tmedema: hmmm one has to manipulate the unix timestamp returned by the timer methods [11:37] tmedema: but you probably don't have rights to do that [11:37] jetienne: for(var a=[],i=127;i--;) <- chjj this is invalid [11:38] cachemoney: v8: for(var i =0; i<999;i++){ throw({message:'derp'}) } [11:38] eldios_v8_ultra_: cachemoney: undefined: derp [11:38] pquerna has joined the channel [11:38] Wa: lol throw breaks control flow [11:38] cachemoney: forgot [11:39] chjj: lol [11:39] eldios: wait a second.. I'll reboot it [11:39] chjj: wait, why? [11:39] ed_v8 has joined the channel [11:39] eldios: nick too long :) [11:39] chjj: smaller name, better [11:39] chjj: v8: for(var a=[],i=127;i--;) a[i]=i; String.fromCharCode.apply(String,a); [11:39] cachemoney: `v commands [11:39] ed_v8: cachemoney: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help, macro. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [11:39] chjj: i wanna print ascii! [11:40] cachemoney: v8: wtf [11:40] ed_v8: cachemoney: ReferenceError: wtf is not defined [11:40] eldios: chjj in the last () you have a , instead of a . [11:40] Epeli has joined the channel [11:40] chjj: huh? [11:40] cachemoney: v8: for(var a=[],i=127;i--;) a[i]=i; String.fromCharCode.apply(String.a); [11:40] ed_v8: cachemoney: "" [11:40] cachemoney: FTFY [11:40] chjj: no [11:40] chjj: thats supposed to be a comma [11:40] cachemoney: ah damn [11:40] cachemoney: yeah [11:40] chjj: its a separate arg [11:40] cachemoney: it's .apply() [11:40] eldios: ah sure [11:40] eldios: sorry [11:40] ewdafa has joined the channel [11:41] btipling has joined the channel [11:41] mnemonic has joined the channel [11:41] chjj: oh it probably gets pissed off [11:41] chjj: because theres a line feed in there [11:41] eldios: v8: String.fromCharCode.apply(String,"12"); [11:41] ed_v8: eldios: TypeError: Function.prototype.apply: Arguments list has wrong type [11:41] tmedema: v8: var mem = "hi"; mem = bumpmem(mem); function bumpmem(mem) { return bumpmem(mem + mem) }; [11:41] ed_v8: tmedema: [11:41] eldios: v8: String.fromCharCode(String,"12"); [11:41] ed_v8: eldios: " [11:41] eldios: v8: String.fromCharCode(String,"13"); [11:42] eldios: v8: String.fromCharCode(String,"14"); [11:42] ed_v8: eldios: " [11:42] dnyy has joined the channel [11:42] cachemoney: `v git [11:42] ed_v8: cachemoney: Hello there, - http://jonobr1.github.com/ [11:42] eldios: v8: String.fromCharCode(14); [11:42] ed_v8: eldios: "" [11:42] cachemoney: `v macro git = function(){} [11:42] ed_v8: cachemoney: Saved macro "git." Type `v git to execute. [11:42] Gregor has joined the channel [11:42] cachemoney: `v git [11:42] ed_v8: cachemoney: Hello there, - http://jonobr1.github.com/ [11:42] micheil has joined the channel [11:43] eldios: I suppose the problem is that macro is matched after all the rest [11:43] rphillips has joined the channel [11:44] eldios: anyway I took a look at the code and it seemed a bit "messy" to me [11:44] eldios: probably it was written in a hurry [11:44] chjj: v8: for(var a=[],i=127;i--;) a[i]=i; String.fromCharCode.apply(String,a.slice(32)); [11:44] ed_v8: chjj: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" [11:44] eldios: or while drunk :P [11:45] eldios: chjj, non printable chars after 32? [11:45] chjj: space is 32 [11:45] chjj: before that its all control characters [11:45] eldios: I see [11:45] chjj: and line feed, carriage return, vert tab [11:45] chjj: etc [11:45] eldios: sure sure [11:45] chjj: whitespace chars [11:46] eldios: v8: String.fromCharCode(14); [11:46] ed_v8: eldios: "" [11:46] ed_v8: CONSOLE: ["derp"], OUTPUT: undefined [11:46] eldios: like that [11:46] cachemoney: wat [11:46] sunnyohno has joined the channel [11:47] eldios: oh wait [11:47] eldios: I missed a thing [11:47] eldios: v8 will be off 10 seconds [11:48] chjj: ? [11:48] ed_v8 has joined the channel [11:48] eldios: did not created the beer and macros text files [11:48] eldios: cachemoney, try the macro thing again [11:48] chjj: eldios++ [11:48] ed_v8: chjj has given a beer to eldios. eldios now has 1 beers. [11:48] eldios: yep [11:48] eldios: working now [11:48] ed_v8: CONSOLE: ["derp"], OUTPUT: undefined [11:48] eldios: chjj++ [11:48] ed_v8: eldios has given a beer to chjj. chjj now has 1 beers. [11:49] chjj: v8: (new Date()).toISOString(); [11:49] ed_v8: chjj: "2011-05-06T11:50:06.080Z" [11:49] chjj: v8: (new Date()).getTimezoneOffset(); [11:49] ed_v8: chjj: -120 [11:49] chjj: got your timezone, bwahaahhaaha [11:49] chjj: >:D [11:49] eldios: =) [11:49] Wa: haha [11:49] eldios: I just found a possible harming step [11:50] eldios: if we succed creating a looping self-filling macro [11:50] eldios: it's possible it will fill my HDD [11:50] eldios: cause it writes in a txt file called macro.txt [11:50] chjj: and why would you want people to know that? [11:50] eldios: lol [11:50] eldios: cause we're just playing =) [11:51] eldios: anyway it's all a matter oc Ctrl+C as soon as it becomes 98% filled [11:52] cachemoney: eldios: hahahha [11:52] kriszyp has joined the channel [11:53] cachemoney: i don't think that's possible though [11:53] eldios: don't underestimate the powa of procrstination [11:53] eldios: =) [11:53] cachemoney: v8: for(var a=[],i=127;i--;) a[i]=i; String.fromCharCode.apply(String,a); [11:53] cachemoney: wtf? [11:54] chjj: doesnt work cause theres a line feed [11:54] eldios: say I (or you) put in another bot.. which starts to ask and answer to my bot.. creating macro in a loop [11:54] chjj: v8: 'hello\nworld' [11:54] ed_v8: chjj: "hello\nworld" [11:54] cachemoney: chjj: worked earlier [11:54] chjj: doesnt like line feeds [11:54] tmedema: does the v8 bot check if it does not answer itself? [11:54] eldios: cache no chjj had to slice it after nonprintable chars [11:54] chjj: yeah, do a.slice(32); [11:55] chjj: or splice out the newline [11:55] cachemoney: v8: process [11:55] ed_v8: cachemoney: ReferenceError: process is not defined [11:55] eldios: already tried that :) [11:55] jamescarr has joined the channel [11:56] chjj: v8: for(var a=[],i=127;i--;) a[i]=i; a.splice(10, 1); String.fromCharCode.apply(String,a); [11:56] cachemoney: v8: String [11:56] ed_v8: cachemoney: function String() { [native code] } [11:56] qFxo has joined the channel [11:56] chjj: v8: for(var a=[],i=127;i--;) a[i]=i; a.splice(10, 1); a.splice(13, 1); String.fromCharCode.apply(String,a); [11:57] chjj: hmmm [11:57] chjj: oh [11:57] chjj: v8: for(var a=[],i=127;i--;) a[i]=i; a.splice(10, 1); a.splice(12, 1); String.fromCharCode.apply(String,a); [11:57] ed_v8: chjj: " [11:57] chjj: uh [11:58] chjj: alright [11:58] chjj: lol [11:59] tmedema: v8: var conc = ''; for (var obj in this) { conc += obj + ', '; } console.output.push(conc); [11:59] ed_v8: tmedema: CONSOLE: ["console, print, conc, obj, "], OUTPUT: 1 [11:59] chjj: whats conc? [11:59] tmedema: thats my local var [11:59] chjj: oh [11:59] chjj: right [11:59] chjj: lol [12:00] chjj: hmm theres a print function [12:00] chjj: v8: print('a'); [12:00] ed_v8: chjj: CONSOLE: ["a"], OUTPUT: undefined [12:00] chjj: cool [12:00] tmedema: v8: 'a' [12:00] ed_v8: tmedema: "a" [12:00] chjj: must do an inspect? [12:00] zilch has joined the channel [12:00] real_v8bot has joined the channel [12:00] chjj: v8: print({a:1, b:2, c:3}); [12:00] ed_v8: chjj: CONSOLE: [{"a": 1, "b": 2, "c": 3}], OUTPUT: undefined [12:00] real_v8bot: chjj: CONSOLE: [{"a": 1, "b": 2, "c": 3}], OUTPUT: undefined [12:01] chjj: whoa [12:01] chjj: two v8's [12:01] eldios: LOL [12:01] eldios: who put that one in? [12:01] chjj: no idea [12:04] ed_v8: HI GUYS [12:05] eldios: °_° [12:05] eldios: cachemoney, was that you? [12:05] Wa: FUCK, SENTIENCE [12:05] Wa: lol [12:05] ed_v8: v8: console.log('derp') [12:06] cachemoney: hahaha [12:06] pibi has left the channel [12:06] ed_v8: weeeeeee [12:06] ed_v8: ed_v8: "derp" [12:07] eldios: it's the dep boolean override right [12:07] eldios: ? [12:07] cachemoney: no [12:08] eldios: boolean is broken [12:08] dyer has joined the channel [12:08] eldios: v8: true [12:08] ed_v8: eldios: true [12:08] eldios: no is not [12:09] ed_v8: Stop trying to break me :'( [12:09] eldios: LOL [12:09] eldios: but I own you! [12:09] cachemoney: hahaha [12:10] ed_v8: ryah i love you [12:10] cachemoney: o.O [12:11] badboy_: Hey guys, I just came across this piece of code: https://github.com/ded/Reqwest/blob/master/reqwest.js and wanted to ask why it uses "!function(ctx){}(this)" [12:11] badboy_: specially why it uses !function [12:11] cachemoney: what the hell [12:11] eldios: it's a negative test case [12:12] eldios: ctx usually stands for context [12:12] badboy_: (I just shortened context from the code ;) [12:12] eldios: lol [12:13] eldios: then you call function passing ctx, whatever returns should be a function [12:13] eldios: which would be called with this as an argument [12:13] badboy_: I wanted to know why one would ever use !function(){}() instead of leaving out the ! [12:13] eldios: whatever is returned is negated [12:13] ed_v8: /me [12:13] eldios: I *GUESS* [12:13] badboy_: this function in Reqwest does return nothing. [12:14] eldios: meaning that there is somewhere an empty "return ;" statement? [12:15] cachemoney: }(this); [12:15] cachemoney: the hell? [12:15] badboy_: the anonymous function itself does not call return after all. [12:15] eldios: oh [12:16] badboy_: ^^ [12:16] badboy_: I will ask the coder why he did it ;) [12:16] chjj: badboy_: it puts the ! in front of it to make it a function expression [12:16] eldios: ^^ let us now [12:16] chjj: rather than a function statement [12:16] chjj: so it didnt have to be wrapped in parantheses [12:16] chjj: whoever did that couldve used anything [12:16] Esteb has joined the channel [12:17] chjj: it didnt need to be an exclamation point [12:17] badboy_: ah. so leaving out the ! it needs to be wrapped in () to be executed? [12:17] chjj: yeah, otherwise its a function statement, rather than an expression [12:17] cachemoney: badboy_: yeah, that's why it looks really weird [12:17] badboy_: Ah, ok. thank you [12:17] chjj: you couldve also done: ~function() {}(); [12:17] chjj: you couldve also done: +function() {}(); [12:17] chjj: etc [12:17] postwait has joined the channel [12:18] chjj: technically (function(){})(); would be more performant, but only by a very small amount [12:18] badboy_: pah! using !function saves one character! [12:19] eldios: ^^ [12:19] cachemoney: chjj: you could substitute !, ~, + instead of ()? [12:19] chjj: yes [12:19] cachemoney: TIL [12:20] chjj: any kind of operator that will make the line an expression [12:20] chjj: works [12:20] s1985 has joined the channel [12:20] cachemoney: i see [12:20] pkrumins has joined the channel [12:20] pkrumins: what's going down node.js! [12:20] s1985: tinkering with node.js :) [12:21] ed_v8: pkrumins hi [12:21] Wa: chjj; is that cause OoO of execution higher than any unary op or something? [12:21] Wa: is higher* [12:21] Spion has joined the channel [12:21] chjj: what? [12:22] eldios: v8 going a moment [12:22] ed_v8 has joined the channel [12:22] Wa: eg. it interprets as !(function(){}()) [12:22] eldios: v8 true [12:22] ed_v8: eldios: v8 is no longer supported (except in PM). Try v8: or v8> [12:22] liar has joined the channel [12:22] eldios: v8: true [12:22] ed_v8: eldios: true [12:22] chjj: it sees it as an expression [12:22] eldios: nope [12:22] ed_v8: LEAVE ME ALONE [12:22] eldios: lol [12:23] eldios: there's no freaking loggin function!! [12:23] eldios: it's awful! [12:23] Wa: seems like an odd construct to me anyway [12:23] Wa: lol [12:23] Wa: it's not in the config? [12:23] eldios: nope [12:23] eldios: config is only for the IRC datas [12:24] Wa: weird [12:24] Wa: oh [12:24] Wa: I thought you mean logging into ns [12:24] eldios: as I said it must have been written really fast [12:24] eldios: as code looks like it's kinda messy [12:24] Wa: nah it looks well written to me [12:24] cachemoney: yeah [12:24] cachemoney: config/administration sucks though [12:24] eldios: I'm a noob don't count on my opinion :) [12:25] eldios: but as a sysadmin I saw way better script/tools [12:25] eldios: speaking of usability [12:25] avalanche123 has joined the channel [12:25] Wa: looks like they were coming from python or something though :X [12:25] real_v8bot has joined the channel [12:25] Wa: or it may just be efficiency, idk much about JS's benchmarks [12:26] ed_v8: v8: hi [12:26] real_v8bot: ed_v8: ReferenceError: hi is not defined [12:27] ed_v8: ACTION challenges real_v8bot to a duel! [12:27] s1985 has left the channel [12:28] cachemoney: whoa [12:28] cachemoney: who did /me? [12:28] Wa: ;D [12:28] pkrumins has left the channel [12:29] ed_v8: SyntaxError: Invalid regular expression: missing / [12:30] ed_v8: ACTION yawns [12:30] larry__ has joined the channel [12:30] sambao21 has joined the channel [12:31] tiemonster has joined the channel [12:31] tyler-iphone: http://nostat.us:8080/site/realtime [12:31] christkv has joined the channel [12:31] broofa has joined the channel [12:32] ed_v8: ACTION yawns [12:33] Emmanuel__ has joined the channel [12:33] jmckind has joined the channel [12:35] zilch has joined the channel [12:35] \sega has joined the channel [12:35] fumanchu182 has joined the channel [12:37] inimino: hm [12:38] zilch has joined the channel [12:38] sirkitree has joined the channel [12:38] qFxo has joined the channel [12:39] mape has joined the channel [12:39] ed_v8: inimino LOL [12:39] ivanfi has left the channel [12:39] inimino: anybody want to summarize whatever just happened with v8bot for me? [12:39] Gregor has joined the channel [12:40] cachemoney: we broke it =X [12:40] Wa: lol.. [12:40] rworth has joined the channel [12:40] Wa: well we figured out how to PM arbitrary messages [12:40] Wa: and cachemoney dereged him [12:40] inimino: I run it, so I kind of have an interest in this. [12:40] cachemoney: oh. [12:40] zilch has joined the channel [12:40] Wa: so we thought disconnecting him would make him reconnect/rereg [12:40] Wa: but he didn't :( [12:41] edelabar has joined the channel [12:41] Wa: the disconnect was just forcing him to excess flood [12:41] cachemoney: yeah it was kicked for excess flood [12:41] inimino: well, if you can make it do anything, it's just as well that it didn't come back until it's patched. [12:41] Wa: he was sending seven times as many messages as we were [12:41] cachemoney: inimono: PM? [12:41] inimino: sure [12:41] cachemoney: *inimino [12:42] Wa: well first, inimino what's the newest version? What you were running or ed_v8 ? [12:42] inimino: v8bot is the one I run [12:42] Wa: both have similar exploits [12:42] inimino: I don't know what ed_v8 is [12:42] Wa: I know I'm asking which is the newest code :p [12:42] Wa: um [12:42] inimino: cachemoney ⋱ sure [12:42] zilch has joined the channel [12:42] Wa: cloned from here I think https://github.com/eisd/v8bot/ [12:42] inimino: oh, I don't know [12:42] Wa: is yours old? [12:43] inimino: I am running more or less that, but with some fixes that aren't there yet [12:43] Wa: ah.. [12:43] Wa: well yours actually has one extra exploit for sending arbitrary messages [12:43] cachemoney: yeah [12:43] inimino: and I haven't checked out the repo recently, so... maybe newer and older [12:43] cachemoney: well [12:43] cachemoney: more than one [12:43] Wa: when I say arbitrary messages I mean arbitrary privmsgs specifically, nothing else [12:43] inimino: ok [12:44] inimino: well, that's not terrible but it should be fixed anyway [12:44] Wa: oh it is :p [12:44] zilch has joined the channel [12:44] Wa: had cachemoney not dereged him, we could've stolen his nickserv account [12:44] cachemoney: yeah [12:45] FireFly|n900 has joined the channel [12:45] Wa: can I demo that~? [12:45] Wa: :D [12:45] FireFly has joined the channel [12:46] inimino: ah right, by /msg NickServ [12:46] Wa: well, you can't use /msg :p [12:46] inimino: well, right [12:46] Wa: but basically [12:46] zilch has joined the channel [12:46] jano has joined the channel [12:46] inimino: PRIVMSG [12:46] cachemoney: inimino: did you develop v8bot? [12:46] Wa: the one we used for yours was.. [12:46] inimino: no [12:47] inimino: I run it, I didn't write it. [12:47] cachemoney: gotcha [12:47] eb4890 has joined the channel [12:47] qFxo has joined the channel [12:47] Wa: `v macro anon = Boolean.prototype.toString = function(){ return ; }; false; [12:48] Wa: then `v anon "set password MINEBISH" @ NickServ [12:48] zilch has joined the channel [12:48] cachemoney: we were gonna do that but i accidentally sent LOGOUT to nickserv before doing anything [12:48] Wa: have to do the latter from PM [12:48] inimino: ah [12:48] hwinkel has joined the channel [12:48] pibi has joined the channel [12:48] Wa: that method doesn't work in ed_v8 [12:49] Wa: but there are two others that do [12:49] EyePulp has joined the channel [12:49] cachemoney: Wa: i told him one of those [12:49] Wa: your's code is so different idk if they'd work in it though :p [12:49] cachemoney: the second is the one similar to Boolean right? [12:49] Wa: similar [12:49] inimino: I don't get the boolean thing [12:50] inimino: what' s " doing there? [12:50] zilch has joined the channel [12:50] Wa: v8: Function.prototype.toString = function(){ return "\x01ACTION wriggles\x01"; }; [12:50] ed_v8: Wa: ACTION wriggles [12:50] real_v8bot: Wa: ACTION wriggles [12:50] Wa: works in pm, anyway [12:50] okuryu has joined the channel [12:50] cachemoney: Wa: doesn't work here cause it prepends "Wa:" [12:50] Wa: inimino; is the thing from the macro [12:50] inimino: oh, is replaced when the macro is called, gotcha [12:51] Wa: I noticed :p [12:51] zilch has joined the channel [12:51] cachemoney: someone should fork v8bot and improve it [12:51] inimino: and it doesn't prepend anything when PM'ing the result of the macro? [12:52] cachemoney: nope [12:52] ed_v8: ACTION wriggles [12:52] Wa: wee~ [12:52] pdelgallego has joined the channel [12:52] cachemoney: haha [12:52] inimino: I don't have any time to work on it, but eboyjr was doing something with it [12:52] Wa: `v macro anonme = Function.prototype.toString = function(){ return "\x01ACTION "++"\x01"; } [12:52] Wa: :] [12:52] zilch has joined the channel [12:52] moshe has joined the channel [12:53] Wa: so there's your demo I suppose~ [12:53] ed_v8: ACTION killed osama [12:53] inimino: ok, I'm going to edit some code and bring it back... [12:53] Wa: ok [12:53] inimino: if you guys want to come to #inimino, I'll bring it back there first [12:53] Wa: sure [12:54] Wa: did you want to know about the excess flood thing too? >_>; [12:54] Wa: I'm sure it's easy to guess [12:55] zilch has joined the channel [12:55] Wa: oh that reminds me; console.out.push("str"); prints the raw str on yours, too [12:55] Wa: not on this one though [12:55] v8bot has joined the channel [12:55] cachemoney: on this it's console.output.push but that appends crap [12:56] Wa: yeah I was only talking about for raws :p [12:56] Esteb has joined the channel [12:56] Poetro has joined the channel [12:57] zilch has joined the channel [12:58] qFxo has joined the channel [12:58] Mrfloyd has joined the channel [12:59] zilch has joined the channel [13:01] zilch has joined the channel [13:02] liquidproof has joined the channel [13:03] sledge has joined the channel [13:04] fermion has joined the channel [13:05] DennisRasmussen has joined the channel [13:05] zilch has joined the channel [13:05] cloudhea3 has joined the channel [13:06] sreeix has joined the channel [13:07] m64253 has joined the channel [13:07] zilch has joined the channel [13:08] zilch has joined the channel [13:09] jlecker has joined the channel [13:09] dustinsmith1024 has joined the channel [13:10] zilch has joined the channel [13:11] sirkitree has joined the channel [13:11] zilch has joined the channel [13:12] fallsemo has joined the channel [13:14] e6nian has joined the channel [13:14] postwait has joined the channel [13:14] zilch has joined the channel [13:15] ryanfitz has joined the channel [13:16] real_v8bot has joined the channel [13:16] zilch has joined the channel [13:16] mike5w3c_ has joined the channel [13:19] zilch has joined the channel [13:19] sstephenson: it'd be nice if fs.Stats had isReadable(), isWritable(), and isExecutable() methods [13:20] `3rdEden: Anybody working on a Paxos algorithm implementation in Node? [13:25] cbibler_ has joined the channel [13:27] davidbanham has joined the channel [13:27] zilch has joined the channel [13:28] eldios: may I turn it off now? :) [13:28] kioopii has joined the channel [13:28] zilch has joined the channel [13:28] eldios: ask me to turn it on again if you need to [13:29] s has joined the channel [13:29] zilch has joined the channel [13:30] davidban1am has joined the channel [13:30] cachemoney: eldios: v8bot is being fixed atm [13:30] christkv has joined the channel [13:31] zilch has joined the channel [13:32] TomY_ has joined the channel [13:33] zilch has joined the channel [13:33] pt_tr has joined the channel [13:33] taf2: /join #titanium [13:33] caike has joined the channel [13:34] squeeks: fail [13:35] gtramont1na has joined the channel [13:35] kioopii: anybody got exp with sequelize? [13:36] kioopii: trying to query for dates ....findAll({ where: ['start > ?', new Date()] }) doesn't yield the desired result. [13:37] cachemoney has joined the channel [13:38] EyePulp has joined the channel [13:39] tiemonster: I'm obviously missing the point on express' template rendering. It renders my template with all the HTML escaped... [13:40] tiemonster: http://pastebin.com/wrhpRRLq [13:40] `3rdEden: tiemonster: you probably using = instead - for pasting the content in template [13:41] `3rdEden: eg for ejs <%= actually escapes all output [13:41] `3rdEden: <%- doesn't [13:41] tiemonster: thanks! [13:42] mateu has joined the channel [13:43] dnolen has joined the channel [13:44] iwinulose has joined the channel [13:45] dcelix has joined the channel [13:47] timmywil has joined the channel [13:48] Thorn has joined the channel [13:49] dcampano has joined the channel [13:50] Country has joined the channel [13:50] amacleod has joined the channel [13:50] Wizek has joined the channel [13:51] jmckind has joined the channel [13:51] sveimac has joined the channel [13:52] Wizek has joined the channel [13:52] rfay has joined the channel [13:54] zilch has joined the channel [13:55] juandopazo has joined the channel [13:57] tiagoa has joined the channel [13:57] |sWORDs| has joined the channel [13:57] gboesebeck has joined the channel [13:57] zilch has joined the channel [13:58] gboesebeck has left the channel [13:58] gboesebeck has joined the channel [13:58] gboesebeck has left the channel [13:58] gboesebeck has joined the channel [13:59] thomblake has joined the channel [13:59] gboesebeck: some know a goog js editor for unix, prefered a gtk based editor [13:59] |sWORDs|: Does anyone know why JSON.parse(request); gives un expected token ILLEGAL with request={"jsonrpc":"2.0","method":"Page","params":["Home"],"id":1}; [13:59] drudge: gboesebeck: gVim [13:59] DoNaLd`: gboesebeck: cloud9 [14:00] drudge: fuck cloud9 [14:00] zilch has joined the channel [14:00] DoNaLd`: :)) [14:00] drudge: cool idea, so buggy and not practical for everyday use yet [14:01] davidban1am: @gboesebeck Try Aptana Studio 3. It's borderline bloatware, but it works. [14:01] DoNaLd`: drudge: why not ? i use it every day for developing my application [14:01] taf2: |sWORDs|, do you mean JSON.stringify ? [14:01] gboesebeck: i test cloud9, but they need a couple month to stabilzed it [14:01] |sWORDs|: taf2, no I need to check if what comes in is valid json, which is why I do a try catch with JSON.parse [14:02] flippyhead has joined the channel [14:02] davidban1am: I've found cloud9 is very sensitive to the browser you use it in. It dies hard in Firefox 4 but works like a champ in Chrome. [14:02] DoNaLd`: gboesebeck: i use last version of cloud9 and i can say, that is enough stabil [14:02] mikegerwitz: |sWORDs|: It doesn't? For me it parses just fine [14:02] gboesebeck: rgr, have a look at gvim, aptana.... or simple vim...mhh [14:02] |sWORDs|: jsonlint thinks it's valid (should be valid, it's jsonrpc 2.0 spec) but JSON.parse gives an error [14:02] taf2: oh... the line you wrote isn't a string though... it's already parsed? [14:02] terite has left the channel [14:03] TomY_ has joined the channel [14:03] drudge: gboesebeck: vim doesn't have to suck :) [14:03] gboesebeck: someone test eclipse with the v8 debugger? [14:03] juandopazo: @sWORDs does it include the trailing ;? [14:03] catshirt has joined the channel [14:03] DoNaLd`: gboesebeck: cloud9 have included v8 debugger :)) [14:03] juandopazo: (semicolon) [14:04] |sWORDs|: mikegerwitz: Maybe a different v8 version? [14:04] zilch has joined the channel [14:04] |sWORDs|: juandopazo: No that's just the javascript varaible that holds it [14:04] drudge: gboesebeck: i use node-inspector [14:04] mikegerwitz: gboesebeck: A coworker of mine uses eclipse with the v8 debugger. Seems to work fine, but I've never used it [14:04] mikegerwitz: gboesebeck: I use node-inspector as well [14:04] mikegerwitz: |sWORDs|: JSON is standarized so I don't think so..that's valid JSON. As long as you don't have the semicolon at the end [14:05] timmywil has joined the channel [14:05] taf2: paste real code.. that's unclear from what you pasted... is it an object you are trying to parse that will fail... but if i infer it's a string... then is the ; included ? [14:05] davidsklar has joined the channel [14:05] sourcode has joined the channel [14:05] |sWORDs|: taf2: request={"jsonrpc":"2.0","method":"Page","params":["Home"],"id":1};JSON.parse(request); [14:06] test: dont paste code [14:06] |sWORDs|: that's all the code [14:06] test: use gist [14:06] test: :) [14:06] squeeks: s/gist/pastebin/ [14:06] taf2: |sWORDs|, if that is what you're doing... it will fail because you're trying to parse an Object... [14:06] mikegerwitz: |sWORDs|: request is an Object [14:06] mikegerwitz: |sWORDs|: JSON.parse( JSON.stringify( request ) ); [14:06] taf2: |sWORDs|, try this: console.log(JSON.parse('{"jsonrpc":"2.0","method":"Page","params":["Home"],"id":1}')); [14:07] zilch has joined the channel [14:07] marcello3d has joined the channel [14:07] avalanche123 has joined the channel [14:07] |sWORDs|: So let me get it straight, if it was a string then it would have worked? [14:07] rpflo has joined the channel [14:07] markc has joined the channel [14:07] mikegerwitz: |sWORDs|: JSON.parse converts a string of valid JSON to an object. If request is already an object, why parse it? [14:08] |sWORDs|: it's in an object now, but it will be what the client is sending over tcp/ip later [14:08] mikegerwitz: |sWORDs|: Then you want JSON.stringify to convert it to a string [14:09] mikegerwitz: |sWORDs|: But yes, as a string, it will work [14:09] zilch has joined the channel [14:09] |sWORDs|: mikegerwitz: yeah but that would break the test, I'll move the object to a string. [14:09] mikegerwitz: |sWORDs|: I'd recommend using JSON.stringify on an object rather than hardcoding it as a string though..that gets messy [14:11] |sWORDs|: mikegerwitz: It's only hardcoded to build the checks, it will be send by clients later. [14:11] marcello3d has joined the channel [14:11] gboesebeck has left the channel [14:11] zilch has joined the channel [14:11] augustl has left the channel [14:11] febits has joined the channel [14:12] |sWORDs|: I'm building the serverside first, so I need the check if what comes in is valid json, if the method exists, if the params are correct etc. [14:12] qFxo has joined the channel [14:12] jtsnow has joined the channel [14:13] pquerna has joined the channel [14:14] zilch has joined the channel [14:14] varioust has joined the channel [14:15] strmpnk has joined the channel [14:15] pibi: anyone using node-ffi? [14:15] BillyBreen has joined the channel [14:15] Venom_X has joined the channel [14:16] dcelix has joined the channel [14:16] qbert has joined the channel [14:17] Wizek has joined the channel [14:17] zilch has joined the channel [14:17] varioust has joined the channel [14:18] dcelix has joined the channel [14:19] acodemonkey has joined the channel [14:19] sivy has joined the channel [14:19] nefD has joined the channel [14:20] zilch has joined the channel [14:20] SamuraiJack_ has joined the channel [14:20] acodemonkey: sup [14:20] seivan has joined the channel [14:22] ryanfitz has joined the channel [14:22] mynyml_ has joined the channel [14:22] mynyml has joined the channel [14:22] MacDiva has joined the channel [14:22] Know1edge has joined the channel [14:22] jonathantaylor has joined the channel [14:23] mendel_: "@francoislaberge: All the slides from NodeConf: http://ow.ly/4Ozv5" [14:25] vipaca has joined the channel [14:25] zilch has joined the channel [14:25] click__ has joined the channel [14:26] Bwen has joined the channel [14:26] thomblake has joined the channel [14:26] brianc has joined the channel [14:27] zilch has joined the channel [14:27] caike has joined the channel [14:28] tiagoa_ has joined the channel [14:28] pifantastic has joined the channel [14:28] zilch has joined the channel [14:30] christkv has joined the channel [14:30] zilch has joined the channel [14:30] fakewaffle has left the channel [14:30] c4milo has joined the channel [14:30] Opaque has joined the channel [14:30] context has joined the channel [14:31] fakewaffle has joined the channel [14:31] bergie has joined the channel [14:32] jmckind has joined the channel [14:33] strmpnk has joined the channel [14:33] `3rdEden: *echo* [14:34] `3rdEden: ACTION *echo* [14:37] eb4890 has joined the channel [14:38] bingomanatee has joined the channel [14:40] mendel_: *foxtrot* [14:42] varioust has joined the channel [14:43] viz has joined the channel [14:43] eee_c has joined the channel [14:44] pcardune has joined the channel [14:45] d0k has joined the channel [14:46] CiRlE has joined the channel [14:48] nibblebot has joined the channel [14:49] sarkis has joined the channel [14:50] strmpnk has joined the channel [14:50] jtrudeau has joined the channel [14:51] charlesjolley- has joined the channel [14:51] CiRlE has joined the channel [14:52] c4milo: somebody from ajax.org here? [14:53] jmckind has joined the channel [14:53] Sim0n has joined the channel [14:53] `3rdEden: c4milo: try #cloud9ide [14:54] Shao: With TLS... does anyone know what causes "Error: error:00000001:lib(0):func(0):reason(1) " [14:54] c4milo: `3rdEden: ok, thanks [14:54] Sim0n: Hello! Im having i small problem with node and mongodb, maby its something wrong with the mongodb-drivers, but I thought I should ask here first to see if anyone had a similar problem or if i just done something stupid. [14:55] Sim0n: Basicly i want to insert something into mongodb, the callbacks get called but nothing ends up in the db. [14:55] Sim0n: http://pastebin.com/C8GE02ua [14:55] sirkitre_ has joined the channel [14:56] CiRlE has joined the channel [14:56] jtsnow has joined the channel [14:58] christkv has joined the channel [14:59] viz has joined the channel [14:59] acodemonkey_ has joined the channel [14:59] sirkitree has joined the channel [14:59] strmpnk has joined the channel [15:00] sub_pop has joined the channel [15:00] wadey has joined the channel [15:00] softdrink has joined the channel [15:00] Bogh has joined the channel [15:01] chapel: Sim0n: are you checking for an error on insert? [15:01] jtmkrueger has joined the channel [15:01] dguttman has joined the channel [15:02] bzinger has joined the channel [15:02] jtmkrueger: got a question about an error during install [15:02] jtmkrueger: hoping someone can lend a hand [15:02] jtmkrueger: Could not install the file '/usr/local/lib/pkgconfig/nodejs.pc' [15:02] jtmkrueger: when I tried to set up as superuser [15:02] gazumps has joined the channel [15:03] carter_ has joined the channel [15:03] jtmkrueger: followed these instructions: https://gist.github.com/579814 [15:04] jtmkrueger: 3rd one down [15:04] jtmkrueger: anone have any ideas? [15:04] beawesomeinstead has joined the channel [15:04] beawesomeinstead has joined the channel [15:04] ceej has joined the channel [15:04] jtmkrueger: no takers? [15:05] wadey: sorry, no idea here. What OS? [15:06] jtmkrueger: mac [15:06] jtmkrueger: latest snow leopard build [15:06] squeeks: use homebrew. [15:06] e6nian: jtmkrueger: may you could build your self :) [15:07] jtmkrueger: not an awful idea [15:08] jtmkrueger: but tends to get me in way over my head when I try [15:08] LowValueTarget has joined the channel [15:08] jtmkrueger: i like the homebrew idea [15:08] jtmkrueger: think i'll try that [15:09] jtmkrueger: http://pastie.org/1871949 [15:09] e6nian: jtmkrueger: just git clone from node git repo, then checkout to the latest tag version,then https://gist.github.com/959113 [15:10] jtmkrueger: that's the end where it failed [15:11] squeeks: jtmkrueger: shove export NODE_PATH="/usr/local/lib/node" into your shell config, pointing it towards wherever your node bin is. [15:11] nphase: JSON.parse() should work in with node.js right? [15:12] e6nian: nphase: yep. [15:12] nphase: what's all that illegal token nonsense [15:12] fallsemo has joined the channel [15:13] chapel: gist? [15:13] nphase: oh, im silly. noob mistake, nvm :) [15:13] squeeks: nphase: buy yourself a rubber duck. [15:14] nphase: squeeks: for squeeking? [15:14] moshe has joined the channel [15:14] squeeks: .... [15:14] carter_: thoughts on using coffeescript with node.js? [15:14] squeeks: no, so you can get your cognitive dissonance more effectively. [15:15] brianc: carter_: just say "no" to coffeescript [15:15] dyer has joined the channel [15:15] carter_: brianc: that bad huh [15:15] carter_: brianc: it seems more like ruby, is that a bad thing? [15:15] jtmkrueger: e6nian: thanks for the gist link, but as a noob, I don't know exactly how to "checkout to the latest tag version" [15:16] jtmkrueger: do you mean to run git status [15:16] jtmkrueger: and checkout files that are out of date? [15:16] christkv has joined the channel [15:16] brianc: carter_: makes your open source project less likely to be contributed to. makes your code harder to debug. adds a "compile" step to your dynamic language. obscures what's actually going on. you still have to mentally "translate" the coffee script into what it's actually doing in javascript. re-introduces the "context switch" of multiple languages [15:16] carter_: hrmmm [15:16] carter_: that's not good [15:16] mikegerwitz: jtmkrueger: git checkout v0.4.7 [15:16] carter_: brianc: what about geddy? [15:17] brianc: those are what I perceive as drawbacks [15:17] e6nian: jtmkrueger: mikegerwitz is right,do you use git? [15:17] jtmkrueger: yea [15:17] brianc: as far as advantages for coffeescript you have "groovy whitespace sensitive syntax with some nice sugar" [15:17] brianc: carter_: not sure about geddy, but isn't that kinda like express? [15:18] carter_: brianc: from what i've read yes, but geddy is an MVC like django or rails [15:18] jeremyselier has joined the channel [15:18] ditesh|cassini has joined the channel [15:18] Nietecht has joined the channel [15:18] e6nian: jtmkrueger: so make yourself with normal user would ok :),there's no harm when it failed. [15:19] jano has joined the channel [15:19] jtmkrueger: e6nian: ... still new at this, I don't get what you mean there, sorry [15:19] brianc: carter_: ah okay. one of the nice things about rails is the huge amount of plugins and "out of the box" you get with it...but you have to invite a monolithic framework onto your server to get those advantages. With geddy you get a monolithic server without the plugins or big community? I dunno...all of this is just...like...my opinion, an. [15:20] carter_: lol true [15:20] joaojeronimo has joined the channel [15:20] pyrony has joined the channel [15:20] swaj: express seems to be the framework of choice for node.js web dev [15:20] edude03 has joined the channel [15:20] zooweemama has joined the channel [15:20] swaj: but express is more like sinatra than rails [15:21] squeeks: I see that as a good thing. [15:21] swaj: I do too :) [15:21] joaojeronimo: Hi everyone. I'm following the instructions to use the jerome-etienne/neoip PPA in Ubuntu 11.04, but it installs me NodeJS 0.2.6 and I need the latest stable... what more can I do besides compiling it ? [15:21] carter_: idk much about sinatra [15:22] swaj: sinatra is basically just a DSL on top of Rack. It's really sweet. No fluff, no BS. Adds some basic stuff like Session support, and then your app functions as Rack middleware. [15:22] zooweemama: how can i make npm beautiful in osx terminal....it looks so pretty on my ubuntu machine [15:22] wadey: joaojeronimo: We've built some debian packages for 0.4.7 here: https://ci.public.simplegeo.com/job/node/ [15:22] swaj: Express offers a very similar experience under Node.js instead of Ruby :) [15:22] saschagehlich has joined the channel [15:22] wadey: joaojeronimo: just click into your architecture [15:22] joaojeronimo: thanks wadey :) [15:22] carter_: swaj: cool, and anyone that knows JS will be able to help [15:22] wadey: joaojeronimo: haven't shared much outside our company, so hopefully it works for you :) [15:23] swaj: carter_: yep [15:23] carter_: swaj: and you can still write in javascript if you like so if you need to connect to something like neo4j [15:23] admc1 has joined the channel [15:23] carter_: or another database you will be able to [15:24] pcardune has joined the channel [15:24] Bogh has joined the channel [15:24] swaj: carter_: honestly there are a lot of advantages to using JS on the backend... it really unifies your stack. I think something like express on the backend with KnockoutJS on the front-end makes for a very compelling and easy development environment. [15:25] joaojeronimo: it's working wadey :) Thanks! [15:25] Postmodernist has joined the channel [15:25] swaj: being able to send ajax POST requests using jQuery and then pick them up within express is so easy. Your JSON objects just work. No serialization required. [15:25] wadey: joaojeronimo: hooray! [15:25] markc has joined the channel [15:25] Bogh has left the channel [15:26] swaj: joaojeronimo: and then if you use something like mongodb, you can basically stuff your JSON object right into the database. [15:26] carter_: sounds like a win win [15:26] swaj: woops I meant carter_ :P [15:26] carter_: no [15:26] carter_: np [15:26] swaj: not to mention the vast advantages of node.... web scale anyone? :P [15:27] mickaelz has joined the channel [15:27] jtmkrueger: e6nian, your a champion [15:27] jtmkrueger: ! [15:28] joaojeronimo: does anyone knows about about the progress of Web Workers API implementation in NodeJS ? [15:28] joaojeronimo: *know [15:28] devrim1 has joined the channel [15:28] Postmodernist: What's the easiest way to do an HTTP GET from node.js? [15:28] Postmodernist: To another node.js server [15:29] Bonuspunkt: require( [15:29] kmiyashiro has joined the channel [15:29] Postmodernist: Ah [15:29] Bonuspunkt: 'http').get(...) [15:29] sivy has joined the channel [15:29] Bonuspunkt: sry about the linebreak [15:29] joaojeronimo: is this safe to use: https://github.com/learnboost/cluster ? Is it a replacement of the future web workers API implementation in nodejs ? [15:29] Postmodernist: So, require('http').post() surely exists then? Are there docs for it? [15:30] Bonuspunkt: > http://nodejs.org/docs/latest/api/http.html [15:30] Postmodernist: np [15:30] wadey: joaojeronimo: its solving a different problem really, but still really usefull [15:30] jtmkrueger: mikegerwitz: thanks for the git checkout hint as well [15:30] swaj: Postmodernist: http://nodejs.org/docs/latest/api/http.html [15:30] Postmodernist: swaj: I don't see any options there to do an HTTP post :( [15:31] Bonuspunkt: Postmodernist http.request [15:31] swaj: Postmodernist: http://nodejs.org/docs/latest/api/http.html#http.request [15:31] robhawkes has joined the channel [15:31] Postmodernist: I made a decision that an HTTP POST would be better than HTTP GET from intra-node.js server communication. [15:31] swaj: http.request has a "method" option where you can use a POST [15:31] Postmodernist: h okay, thnx [15:31] cachemoney has joined the channel [15:31] varioust has joined the channel [15:31] cachemoney: `v commands [15:32] cachemoney: bot still gone? [15:32] v8bot has joined the channel [15:32] squeeks: it's got itself a nice apartment by the beach [15:32] cachemoney: haha [15:32] cachemoney: but, i killed it [15:32] squeeks: I should probably try and smuggle my buzzword bingo bot into here at some stage. [15:33] cachemoney: zombie bot? [15:33] squeeks: no no. it plays buzzword bingo on channel convo and yells out once in a while when it wins. [15:33] jano has joined the channel [15:33] cachemoney: hahaha [15:33] squeeks: https://gist.github.com/877150 [15:34] zilch has joined the channel [15:34] cachemoney: var irc = require("irc"); [15:34] pt_tr has joined the channel [15:34] cachemoney: theres an irc module? [15:34] zilch has joined the channel [15:34] squeeks: of course! [15:34] carter_: Cluster looks cool [15:34] squeeks: there's also a friggin irc daemon written in node too. [15:35] cachemoney: i think i'm gonna fork v8bot [15:35] cadorn has joined the channel [15:35] eldios: cachemoney, do you need me to start it again? [15:35] Postmodernist: How do you specify sync/async for http.request()? [15:36] zilch has joined the channel [15:36] cachemoney: eldios: nah, bot is online, just not in here (it's in #v8bot) [15:36] eldios: ;) [15:36] swaj: Postmodernist: there is no sync... it's always async... [15:36] zilch has joined the channel [15:36] swaj: Postmodernist: you give it a callback. [15:36] Postmodernist: I know [15:36] cachemoney: eldios: and macro's all gone... oops [15:36] christkv has joined the channel [15:36] eldios: ^^ [15:37] wdperson has joined the channel [15:37] ryanmcgrath has joined the channel [15:37] briznad has joined the channel [15:37] Postmodernist: swaj: So now I need to wrap 50 different code files in anonymous functions. [15:37] Postmodernist: (So that the information from the other node.js server is available to them) [15:37] Corren has joined the channel [15:37] cachemoney: use RPC [15:37] swaj: Postmodernist: node.js is asynchronous. You don't do it synchonously. You can create a function once and pass it as a callback to each request if you'd like. [15:38] carter_: seems like knockoutjs is the beginning of real responsive web apps, making apps like google docs [15:38] carter_: is that the case? [15:38] cachemoney: `v commands [15:38] v8bot: cachemoney: Commands: Type `v . Optionally, type `v @ to send to a specific user. `v Commands are: about, beers, commands, git, google, help. Other commands: v8, `re, `pcre, `ref. Type `v help for more information. Join #v8bot for more support. [15:38] cachemoney: aha [15:38] cachemoney: `v macro [15:38] v8bot: cachemoney: No such command. [15:38] cachemoney: ^ sorry about that [15:38] Postmodernist: swaj: I understand that non-blocking is the point of using node.js [15:39] hellp has joined the channel [15:40] fangel has joined the channel [15:40] Postmodernist: But it means more anonymous functions now [15:41] cachemoney: Postmodernist: they don't have to be anonymous but yeah a crapload of callbacks is a fact of life with async i/o with Node [15:41] Postmodernist: yup [15:42] zilch has joined the channel [15:43] Postmodernist: It seems the rubyists in #ruby-lang envy node.js's async. [15:43] Corren: have there been any authoritative responses to the article from igor? [15:44] bbttxu has joined the channel [15:44] stepheneb has joined the channel [15:44] cachemoney: Postmodernist: EventMachine not enough for them? [15:44] stephank has joined the channel [15:44] Postmodernist: cachemoney: Well, the problem is most gems are sync [15:44] cachemoney: authoritative? like from ryan? [15:45] cachemoney: Postmodernist: ah, yeah, it's possible to make them all async with EM but probably takes some time [15:45] Corren: from ryan, or the v8 guys, or other experts [15:45] Postmodernist: cachemoney: Right, put them in async callback wrappers right? [15:45] zilch has joined the channel [15:45] Postmodernist: But then you still end up with a bunch of threads for them :/ [15:45] cachemoney: Postmodernist: might require a great deal of code refactoring [15:45] Postmodernist: yeah [15:45] tmedema has joined the channel [15:45] cachemoney: and threads are nasty [15:46] cachemoney: you don't need threads with EM [15:46] cachemoney: Node doesn't thread [15:46] Corren: also found it odd that ycomb tweeted it yesterday, but it was from sept of last year [15:46] wonginator1221 has joined the channel [15:46] Postmodernist: Threads are like tourists in NYC: Annoying, everywhere, and slow. [15:46] cachemoney: Corren: and i think the Node he was talking about was from feb 2010 [15:46] tmedema: Could anyone tell me why this could cause a HTML5 audio tag to disconnect when trying to stream? It works fine with flash, but not with html5 in Chrome: https://gist.github.com/959205 the server variable is an express http server [15:47] Corren: cachemoney: that's what I was thinking as well. [15:47] wonginator1221: Quick question: [15:47] brianc: anyone use jqtpl with express? I got it rigged up so you can use the same "partials" in your server templates & then pass them down to the browser as client jquery templates. render html on server or browser in the exact same way! [15:47] Corren: code from a year ago seems like 10 years given how fast things change now [15:47] cachemoney: yeah, his arguments aren't very relevant today [15:47] cachemoney: well, whatever i understood anyways [15:48] wonginator1221: If i do an "npm install -g express" should i be able to require('express'); without any errors? [15:48] eldios: wonginator1221, if everything went well yes [15:48] cachemoney: wonginator12: yes [15:48] mike5w3c has joined the channel [15:48] cachemoney: *wonginator1221 [15:48] eldios: vaginator [15:48] Jamool has joined the channel [15:48] cachemoney: haha [15:48] dambalah has joined the channel [15:48] eldios: sorry that was a bad joke :P [15:48] ebertx has joined the channel [15:48] e6nian has joined the channel [15:49] Jamool_ has joined the channel [15:49] Xano has joined the channel [15:49] cachemoney: what IRC clients does everyone use on macs? [15:49] msucan has joined the channel [15:49] swaj: irssi :P [15:49] e6nian has joined the channel [15:49] wonginator1221: haha that's the first time i've heard that. I seem to be having this issue on two computers. One OS X, one ubuntu 11.04. I don't have time to debug it now, but I think i'll reinstall everything from source. [15:49] robhawkes has joined the channel [15:50] cachemoney: wonginator1221: you have npm 1.0 right [15:50] carter_: swaj: thanks for showing me knockoutjs [15:50] swaj: carter_: np :) [15:50] wonginator1221: cachemoney: 1.0.3 [15:50] swaj: carter_: I recommend watching the video from MIX11, it's really good, and short. [15:51] tmedema: wish there were videos about html5 audio streaming and server side implementations..... [15:51] Yuffster_work has joined the channel [15:51] cachemoney: wonginator1221: is npm install -g express finishing ok? [15:51] wonginator1221: cachemoney: yep. [15:51] dyer has joined the channel [15:51] cachemoney: but require is broken? [15:51] carter_: swaj: thanks much [15:52] Corren: cachemoney: I really like textual [15:52] wonginator1221: cachemoney: "node -e require.paths" gives me ~/.node_modules ~/node_libraries, ~/local/node/lib/node [15:52] swaj: carter_: np [15:52] wonginator1221: cachemoney: require does not work correctly unless npm installs the modules in the current directory [15:52] Corren: I'm struggling to decide what to do with my multimon setup :S [15:52] pibi has left the channel [15:53] cachemoney: wonginator1221: -g should be installing libs inside ~/local/node/lib/node_modules [15:53] chjj has joined the channel [15:53] cachemoney: Corren: bought or built? [15:54] Corren: I don't understand the question :() [15:54] cachemoney: you can either buy textual or build it from source [15:55] wonginator1221: cachemoney: express (v2.3.3) is there, however node's require doesn't seem to see that directory. [15:55] eee_c has joined the channel [15:55] cachemoney: wonginator1221: if you actually require() it, it should work [15:56] cwang has joined the channel [15:56] cachemoney: it will look inside ~/local/lib/node/lib/node_modules [15:56] Corren: oh, shit, I didn't know you could build it from source [15:56] Corren: I bought it on the app store [15:56] cachemoney: haha [15:56] bretts has joined the channel [15:56] chrislorenz has joined the channel [15:56] Corren: I'm still new to osx [15:56] Corren: still learning the right/best way to get stuff [15:56] Corren: ACTION just started my new job on monday [15:57] wonginator1221: cachemoney: what do you mean by "actually require"? as in var app = require('express').createServer()? [15:57] cachemoney: yeah [15:58] cachemoney: wonginator1221: my require.paths are exactly the same as yours and work perfectly [15:58] pyrony has joined the channel [15:59] wonginator1221: cachemoney: no luck D= [15:59] wonginator1221: I gotta run but thanks anyways [15:59] cachemoney: Corren: where do you work? :P [16:00] tmedema: How can I test a local site on OSX (firefox, safari etc) if I do not have a mac? [16:00] abraham has joined the channel [16:01] cachemoney: tmedema: rob someone and buy a mac [16:01] tmedema: cachemoney: :/ [16:02] tmedema: I can buy one, just that I don't want to have one [16:02] aberry has joined the channel [16:02] cachemoney: tmedema: you could run safari on windows and it should be almost the same as mac [16:02] tmedema: cachemoney: "almost" is what I dislike [16:02] cachemoney: I can't imagine developing on anything other than mac [16:02] wadey has joined the channel [16:02] cachemoney: BSD with a really nice UI [16:02] Corren: cachemonkey: I just started at a small startup called clipboard [16:03] tmedema: cachemoney: how can you not imagine that when so many dependencies for any project run mostly on unix systems? [16:03] cachemoney: tmedema: mac is unix-based [16:03] tmedema: cachemoney: node runs on a mac? [16:04] blueadept has joined the channel [16:04] Corren: i run it on a mac in my dev env [16:04] cachemoney: tmedema: of course! [16:04] cachemoney: tmedema: mac feels more unix-y than linux in lots of cases [16:04] tmedema: hmm first time something I use runs on something that starts with an "i" [16:05] cachemoney: tmedema: what do you develop on? [16:05] tmedema: ubuntu [16:05] e6nian: a lost of BSD-like shell. [16:05] cachemoney: the reason i use mac is because it's BSD-based which itself is unix-based (not just unix-like, there is a difference) [16:05] munkymachine has joined the channel [16:06] e6nian: I used to use Archlinux,that's BSD*like ports. [16:06] tmedema: I don't understand why safari does not run on linux then [16:06] caolanm has joined the channel [16:07] cachemoney: tmedema: Because it uses mac APIs [16:07] donaldpcook has joined the channel [16:07] squeeks: No, the problem isn't the APIs. The problem is Apple. [16:07] wink_: ^ [16:08] cachemoney: squeeks: why [16:08] wink_: there is nothing about safari that couldnt run, they just havent ported it [16:08] cachemoney: well [16:08] cachemoney: webkit is open source [16:08] wink_: not that they should though [16:08] cachemoney: someone can probably port it [16:09] tmedema: safari uses webkit? [16:09] jtsnow has joined the channel [16:09] wink_: webkit was originally a kde project ;>, its not webkit thats the problem [16:09] carllerche has joined the channel [16:09] Shao: Anyone know what "error:00000001:lib(0):func(0):reason(1)" means when using TLS? [16:09] wink_: its their custom UI controls [16:10] wink_: they ported them to windows because they had to, there isnt much of a reason to port them to linux [16:10] cwang has joined the channel [16:10] squeeks: had to? what made them? [16:10] cachemoney: tmedema: apple sponsors webkit development [16:10] wink_: needed itunes to work [16:10] wink_: iphones/ipods wouldnt be where they are if you could only sync them to macs [16:10] cachemoney: wink_: so the problem is cocoa? [16:11] squeeks: cachemoney: no, the problem is Apple. [16:11] cachemoney: lol [16:11] squeeks: wink_: doesn't add up, iTunes has been on windows longer than safari, by a few years [16:11] wink_: im not sure what you're saying? [16:12] wink_: they ported their custom ui controls to windows for itunes [16:12] wink_: that allowed them to easily port safari [16:12] cachemoney: webkit is developed by google and apple right? [16:12] wink_: linux doesnt have the luxury of the first step [16:12] cachemoney: i think apple originally forked webkit [16:12] squeeks: wink_: you're only thinking of the technology here and not the bigger picture. [16:13] aberry: thought webkit was open source [16:13] squeeks: It is? [16:13] wink_: im not even sure what you're trying to say [16:13] cachemoney: aberry: it is [16:13] cachemoney: webkit.org [16:13] wink_: there is no problem here, its just not worth the work for apple at the end of the day [16:13] aberry: can get involved at webkit dot org - has a cool gold version of the safari icon [16:13] tmedema: Chrome can play mp3 with html5, right? [16:13] squeeks: tmedema: yes [16:13] wink_: who would use safari on linux? even less than use safari on windows.. [16:13] cachemoney: aberry: yup, webkit nightly's are pretty cool to play with [16:14] qbert_ has joined the channel [16:14] aberry: if apple forked webkit, why are the icons so similar? [16:14] cachemoney: WebKit was originally derived by http://en.wikipedia.org/wiki/Apple_Inc. from the http://en.wikipedia.org/wiki/Konqueror browser's http://en.wikipedia.org/wiki/KHTML http://en.wikipedia.org/wiki/Software_library for use as the engine of http://en.wikipedia.org/wiki/Safari_(web_browser) web browser and has now been further developed by individuals from the http://en.wikipedia.org/wiki/KDE, http://en.wikipedia.org/wiki/Apple_In [16:14] cachemoney: http://en.wikipedia.org/wiki/Nokia, http://en.wikipedia.org/wiki/Google, http://en.wikipedia.org/wiki/Bolt_browser, http://en.wikipedia.org/wiki/Torch_Mobile, http://en.wikipedia.org/wiki/Samsung and others. [16:14] cachemoney: wtf [16:14] context: wtf. [16:14] cachemoney: colloquy copy/paste is weird, sorry [16:14] aberry: ftw. [16:15] tmedema: squeeks: well then I have no idea why my mp3 aint playing, whenever I try to stream it to my html5 audio tag the browser causes a "client reconnection" error [16:15] cachemoney: should have been: WebKit was originally derived by Apple Inc. from the Konqueror browser's KHTML software library for use as the engine of Safari web browser and has now been further developed by individuals from the KDE project, Apple Inc., Nokia, Google, Bitstream, Torch Mobile, Samsung and others. [16:15] aberry: :-) [16:15] context: i dont think those icons are similar at all [16:15] squeeks: tmedema: how big is this file? [16:15] tmedema: squeeks: only about 4MB [16:16] cachemoney: what icons are similar? [16:16] fyskij has joined the channel [16:16] squeeks: tmedema: seriously, if you're having that much hell with it, use jplayer or something [16:16] tjholowaychuk has joined the channel [16:16] puffpio has joined the channel [16:16] cachemoney: aberry: when i say apple forked webkit, i mean they literally started the webkit project from KDE code [16:16] tmedema: squeeks: you're seeing any obvious mistakes here? https://gist.github.com/959205 [16:17] aberry: Webkit browser icon is nearly identical to Safari [16:17] eee_c has joined the channel [16:17] aberry: at least here on my man [16:17] aberry: mac [16:17] aberry: lol [16:18] zooweemama: tmedema: ive been using http://www.speakker.com/ for