[00:01] broofa has joined the channel [00:01] tk has joined the channel [00:02] tmpvar has joined the channel [00:02] Corren has joined the channel [00:03] jmoyers: thank the effin eff thats its 5pm on friday [00:03] hack has joined the channel [00:04] FredFred_ has joined the channel [00:06] tmpvar: [00:06] v0idless- has joined the channel [00:07] niftylettuce: tjholowaychuk++ [00:07] v8bot: niftylettuce has given a beer to tjholowaychuk. tjholowaychuk now has 30 beers. [00:08] niftylettuce: thats for building in error() :) [00:08] tjholowaychuk: haha [00:08] tbranyen: http://www.youtube.com/watch?v=hxleH60hDJY [00:08] tbranyen: one of my favorite songs [00:09] wasabista has joined the channel [00:09] febits has joined the channel [00:09] Corren has joined the channel [00:10] EyePulp has joined the channel [00:10] systemfault: Compared to the original, it's a masterpiece. [00:11] Swimming_bird has joined the channel [00:12] Zarathust has joined the channel [00:15] strmpnk has joined the channel [00:15] mcluskydodallas has joined the channel [00:16] ericnakagawa has joined the channel [00:17] astropirate has joined the channel [00:20] admc has joined the channel [00:20] jslatts has joined the channel [00:20] anoop has joined the channel [00:22] OneBraveHog has joined the channel [00:22] akshatj has joined the channel [00:23] yogurt_truck has joined the channel [00:24] mcluskyd_ has joined the channel [00:26] jmoyers: poor girl [00:26] jmoyers: rebecca black [00:26] jmoyers: i feel so sorry for her [00:27] jmoyers: her whole life has either got to be a meme, or people trying to protect her from the wrath of the internetz [00:27] jmoyers: or she's so rich she doesn't give a shit [00:27] jmoyers: probably the latter ;-) [00:27] gmci has joined the channel [00:27] Jalava: i heard she's pregnant [00:27] tuhoojabotti: lol [00:28] ghostshell has joined the channel [00:28] Jalava: seems to be hoax though [00:28] jmoyers: i would fucking hope so [00:28] jmoyers: isn't she like fucking 14 [00:29] Viriix has joined the channel [00:32] Viriix has left the channel [00:34] Zarathust has joined the channel [00:34] darshanshankar: Jalava: i heard she's pregnant --- jmoyers: i would fucking hope so [00:34] darshanshankar: XD [00:34] darshanshankar: really now [00:35] jmoyers: omg totally out of context~ [00:35] darshanshankar: hehe [00:35] jmoyers: ACTION pings context with every other sentence [00:38] tim_smart: tjholowaychuk: Yo - jade question. Can you compile template to functions? [00:38] tim_smart: *templates [00:38] tjholowaychuk: yup [00:38] tjholowaychuk: .compile(str, options) => Function [00:39] tim_smart: OK [00:39] tjholowaychuk: .compile(str, options)(locals) [00:39] tim_smart: Does express do that by default or? [00:39] tjholowaychuk: yeah express just requires that the engine has .compile(str) and that the function it returns accepts an object of locals [00:40] baudehlo_ has joined the channel [00:40] italic has joined the channel [00:40] rputikar has joined the channel [00:40] OneBraveHog has joined the channel [00:40] newy has joined the channel [00:40] tuhoojabotti: templates :O [00:40] tuhoojabotti: What engine? [00:41] dgathright_ has joined the channel [00:41] paul_k has joined the channel [00:42] sugardave has joined the channel [00:46] kersny has joined the channel [00:48] johnm1234 has joined the channel [00:49] bpierre has joined the channel [00:54] jakehow has joined the channel [00:55] lakin has left the channel [00:57] avalanche123 has joined the channel [00:59] zackattack has joined the channel [01:00] harth has joined the channel [01:02] bingomanatee has joined the channel [01:02] langworthy has joined the channel [01:04] tmpvar has joined the channel [01:06] davidbanham has joined the channel [01:07] gavin_huang has joined the channel [01:08] davidcoallier has joined the channel [01:08] christophsturm has joined the channel [01:10] Corren has joined the channel [01:11] mandric has joined the channel [01:11] harth has joined the channel [01:12] mundanity has joined the channel [01:15] tbranyen: tjholowaychuk: baremetal looks neat [01:15] tjholowaychuk: really tiny [01:15] tjholowaychuk: 16KiB [01:15] thalll has joined the channel [01:15] tbranyen: you gonna try getting it running? [01:16] tbranyen: i have an ibm xt sitting around would be fun to try and run it on that [01:16] tjholowaychuk: there's a little vm thinger [01:16] tjholowaychuk: was playing with the shell [01:17] zackattack has joined the channel [01:20] wookiehangover has joined the channel [01:21] lbdremy has joined the channel [01:21] ghostshell has left the channel [01:22] JackeyChan has joined the channel [01:25] eyesUnclouded has joined the channel [01:30] Tobsn has joined the channel [01:33] captain_morgan has joined the channel [01:35] webster has joined the channel [01:35] webster has joined the channel [01:36] AvianFlu has joined the channel [01:36] newy has joined the channel [01:41] Viriix has joined the channel [01:42] ParadoxQuine has joined the channel [01:42] eguest309 has left the channel [01:42] nexxy has joined the channel [01:43] olalonde: echo [01:44] DelvarWorld: pong [01:45] F1LT3R has joined the channel [01:45] DelvarWorld: I have a question about require - I am building a function from a string, as in new Function('require("moo")'); - but when I run that function it says "require is not defined" [01:45] AvianFlu has joined the channel [01:46] DelvarWorld: I see a possible workaround as passing in the library I am requiring into that function when I call it, but I'm not sure why it can't find require [01:46] DelvarWorld: I thought that was a global-y thing in node [01:47] adrianmg has joined the channel [01:47] chjj: DelvarWorld: require is not a global, each module gets its own require function [01:47] chjj: its passed in, modules are just functions that are executed with some parameters passed in [01:48] DelvarWorld: so because it's an anonymous function and not a module, it wouldn't have require [01:49] chjj: what do you mean [01:49] temp01 has joined the channel [01:49] MooGoo: no....because it is a function built with new Function [01:49] MooGoo: new Function inherits nothing besides global scope [01:49] chjj: just think of a module as a function, it looks like this: function(require, module, exports, __dirname, __filename) {} [01:49] chjj: theres a wrapper around each module [01:50] olalonde: i don't work today [01:50] olalonde: maybe I just wanna stay [01:50] olalonde: just take it easy cause there�s no stress. [01:51] akshatj: morning folks [01:51] Aria: Morning! [01:51] DelvarWorld: chjj: ooooooOOOOOHHHHHH FUCK, that makes sense, thanks [01:51] olalonde: australia? [01:52] gtramont1na has joined the channel [01:52] gtramont1na_ has joined the channel [01:52] sherod has joined the channel [01:52] akshatj: olalonde, India :) [01:52] stkim1 has joined the channel [01:52] olalonde: ah! :) [01:55] tim_smart has joined the channel [01:55] lbdremy: hey [01:55] lbdremy: Someone use stylus ? I have some trouble with @import [01:57] jmoyers: heh i just overheard my girlfriend talking to one of the kids she nannies -- "what do you mean the printers not on? hit the on button. its not turning on? what do you mean? is it plugged into the wall? no. PLUG IT INTO THE WALL" [01:57] jmoyers: kid is.. in highschool [01:58] jasonmcleod has joined the channel [01:59] TooTallNate: kids in highschool need nannies? [01:59] jmoyers: rich family [01:59] jmoyers: like, uber rich [01:59] jmoyers: washington street mansion rich, in sf [02:06] tim_smart has joined the channel [02:06] neoesque has joined the channel [02:08] perezd has joined the channel [02:10] cafesofie has joined the channel [02:10] kmiyashiro: hmmm [02:11] kmiyashiro: I wonder how you create links in Jade with spaces after them [02:11] Swimming_bird has joined the channel [02:11] __jgr has joined the channel [02:11] DelvarWorld: that's why I prefer not to use jade - when you want to do specific things jade gets in the way of your html [02:11] dgathright has joined the channel [02:11] kmiyashiro: DelvarWorld: I feel the same way [02:12] kmiyashiro: never used ejs though [02:12] DelvarWorld: kmiyashiro: I know you can put spaces before the text of your next element [02:13] chjj: jade is well made, but i just dont like using highly abstracted templating languages in general, nothing wrong with jade in particular [02:13] kmiyashiro: my problem is that I have auto-whitespace stripping [02:13] kmiyashiro: so trailing whitespace is always deleted [02:13] kmiyashiro: and I want to create a few links in a paragraph [02:14] kmiyashiro: maybe I'll resort to the markdown filter [02:14] igl has joined the channel [02:15] AvianFlu has joined the channel [02:19] tauren has joined the channel [02:20] Swimming_bird has joined the channel [02:25] Corren has joined the channel [02:26] webster has joined the channel [02:26] webster has joined the channel [02:29] tikva has joined the channel [02:29] maushu_ has joined the channel [02:30] lbdremy: Someone use stylus ? I have some trouble with @import [02:31] gtramont1na_: I'm currently using stylus, but didn't use the @import functionality.. [02:31] gtramont1na_: Lets see if I can help you though, whats going wrong? [02:39] ngs has joined the channel [02:43] criswell has joined the channel [02:45] tjholowaychuk has joined the channel [02:45] Bradleymeck has joined the channel [02:46] Corren has joined the channel [02:47] bartt has joined the channel [02:49] cryptix has joined the channel [02:51] isaacs has joined the channel [02:54] Grimmenstein has joined the channel [03:02] Bradleymeck: oi anyone have a good means of booting up the default browser to a page from node? [03:03] boaz has joined the channel [03:03] Dinosaurus has joined the channel [03:07] Aria: Bradleymeck: That's going to be OS-dependent. What OSes? [03:07] chris6F has joined the channel [03:08] tikva has joined the channel [03:08] Bradleymeck: linux / mac os [03:10] dipser has joined the channel [03:16] rick_h_: Bradleymeck: http://portland.freedesktop.org/xdg-utils-1.0/xdg-open.html [03:16] rick_h_: should work on linux, not sure on osx [03:17] tbranyen: pretty sure os x doesn't use xdg to open files :-/ [03:17] rick_h_: no, but looks like it has an 'open' command that acts like it [03:17] rick_h_: http://stackoverflow.com/questions/264395/linux-equivalent-of-the-mac-os-x-open-command [03:18] rick_h_: so you'd have to match to os [03:18] pifantastic has joined the channel [03:19] Bradleymeck: heh, might just have to make something for this [03:21] Bradleymeck: then, does anyone know how to do a blocking `which` at startup? I could do it in c++ but that would be a bit hectic for me i think [03:22] Aria: Blocking ... `which`? [03:22] Aria: Blocking for which? [03:22] MooGoo: he meant witch [03:23] Bradleymeck: like, `which xdg-open` in terminal [03:23] Bradleymeck: just make sure an executable is in the path [03:23] Aria: Yeah, but blocking on what condition? Why not just do it in a callback? [03:24] Bradleymeck: i want to pick up the proper one and cache it at runtime, i guess i could queue things till its done... [03:25] Corren has joined the channel [03:25] johnm1234 has joined the channel [03:26] mykul has joined the channel [03:28] akshatj has joined the channel [03:30] yozgrahame has joined the channel [03:30] rick_h_: Bradleymeck: why not just use: http://nodejs.org/docs/v0.4.8/api/os.html#os.type [03:30] rick_h_: ? [03:31] Bradleymeck: xdg-open is not guaranteed on linux, im just going around picking up a ton of these *-open commands and going to run through em trying to find the right one [03:31] ParadoxQuine has joined the channel [03:32] rick_h_: ah, I thought most Linux's were xdg compliant these days [03:34] Aria: Some, not all, and most you can pick those pieces out, and people do. [03:36] _jgr has joined the channel [03:39] sherod has joined the channel [03:40] Bradleymeck: x-www-browser seems to hold a path to the default browser on my distros... not sure i care much other places if they arent xfce / gnome / kde / mac [03:41] kcbanner has joined the channel [03:44] kcbanner: Having a strange problem, when I require() a local js file in one file, it works, but in another file in the same directory, require()ing the file returns {} [03:45] Bradleymeck: do you have a circular dependency? [03:46] kcbanner: Hm. app.js requires util.js, and then models.js which in turn requires util.js (and in models.js, util is {}, while in app.js it is OK) [03:46] kcbanner: so it seems that on the second require() of util.js, it does not work [03:47] tmpvar: hey there Bradleymeck, you ever peek my patch for sfml? [03:47] Bradleymeck: tmpvar ya, but it breaks my linux build [03:47] Bradleymeck: idk, sfml is not on my top priorities, but i can merge it in [03:47] tmpvar: nah [03:48] tmpvar: ill boot up linux at some point and throw my patch at it [03:48] Bradleymeck: ok, if i can get a good week to just run through it, i can prolly get it working again, pixel buffers were nice, but i still need to merge the 2 event loops [03:49] kcbanner: Bradleymeck, oh, crap I do have a circular dep [03:49] kcbanner: so how do I get around that? [03:50] Bradleymeck: you can hold off on referencing the value's properties until it is done loading, or you can resolve the loop [03:51] Bradleymeck: ACTION kinda wishes modules would fire a 'loaded' event that would propagate to process... but the need is rare if at all really [03:51] tmpvar: kcbanner, is this in node? [03:52] razvandimescu has joined the channel [03:53] razvandimescu: hello, can I use If/else blocks inside an html view engine? [03:53] razvandimescu: or i have to create static helpers [03:54] tjholowaychuk: depends on the engine [03:54] DelvarWorld: what engine? [03:55] razvandimescu: html [03:57] e6nian has joined the channel [03:58] tjholowaychuk: html is not a template engine [03:59] tbranyen: lol [03:59] DelvarWorld: lol [03:59] tbranyen: in the wrong hands it is [03:59] cryptix has joined the channel [03:59] systemfault: :P [03:59] DelvarWorld: raz: are you writing regular html in a file like index.html ? [04:02] chjj: v8: 'javascript is a template engine'.blink() [04:02] v8bot: chjj: "javascript is a template engine" [04:03] __jgr has joined the channel [04:03] chjj: im going to make a page, and all the markup will be rendered with the html methods on the string prototype, and document.write [04:04] zmbmartin: I am messing with express and backbone. My model is saving fine from backbone to express but backbone thinks theres an error? Any thoughts on what I might be missing. [04:04] Aria: Status code? [04:04] e6nian: Any idea on forEachSeries()?,It's easy to stackOverFlow in the async moudle. [04:04] zmbmartin: Aria: status code returned is 200 [04:05] jtsnow has joined the channel [04:05] JianMeng has joined the channel [04:06] zmbmartin: Even when it does fail status code is 200. This same thing is working fine in rails. [04:07] zmbmartin: Do I need to tell express to return json? [04:07] tjholowaychuk: not if you do res.send({ ... }) [04:08] gtramont1na_: Hey all! Just improved the user experience in my experimental app. Would you mind checking it out and giving me some feedbacks? writeboard.nodester.com | github.com/gtramontina/Writeboard Thanks a lot! [04:09] razvandimescu: DelvarWorld: I'm using the html engine using the express module [04:10] tjholowaychuk: razvandimescu html is not a template engine lol [04:10] EyePulp has joined the channel [04:10] tjholowaychuk: html is not dynamic [04:10] razvandimescu: whell then why is <%- body%> replaced the content of a file? [04:11] razvandimescu: when using a layout [04:11] razvandimescu: isn't that interpreted somehow?! [04:11] tjholowaychuk: that's ejs [04:11] DelvarWorld: that's jade, not html [04:11] tjholowaychuk: not html [04:11] DelvarWorld: er, ejs? [04:11] tjholowaychuk: that's not jade [04:11] tjholowaychuk: haha [04:11] tjholowaychuk: razvandimescu https://github.com/visionmedia/ejs [04:11] DelvarWorld: i'm getting pretty sick of you tjholoway [04:11] chjj: jade is anti-angle brackets [04:11] razvandimescu: app.set 'view engine', 'html' [04:11] briznad has joined the channel [04:11] razvandimescu: and that's from the samples [04:12] tjholowaychuk: i have no samples like that [04:12] tjholowaychuk: you can map a template engine to any extension you want [04:12] razvandimescu: http://expressjs.com/guide.html [04:12] tjholowaychuk: app.register('.html', require('ejs')) [04:12] tjholowaychuk: but it's ejs [04:12] tjholowaychuk: not html [04:12] tjholowaychuk: that just tells express that ".html" files are mapped to that module [04:12] tjholowaychuk: instead of ".ejs" [04:12] razvandimescu: app.set 'view engine', 'html' [04:12] razvandimescu: app.register '.html' [04:13] razvandimescu: so it's in fact jade, must have followed the wrong sample [04:13] razvandimescu: *ejs [04:16] razvandimescu: ok, found it: Template Engines: haml, jade ejs, coffeekup, jquery templates (no html) [04:16] razvandimescu: i was tricked by this line app.set 'view engine', 'html' [04:17] tjholowaychuk: :p [04:21] DelvarWorld: anyone good with Seq - specifically I want to add functions to a chain in a for loop and not have them execute until after the loop [04:21] CiRlE has joined the channel [04:21] DelvarWorld: but it looks like Seq().seq(…) executes as soon as it's done [04:21] isaacs has joined the channel [04:21] Aria: nextTick? [04:22] kelp1 has joined the channel [04:26] Mystalia has joined the channel [04:27] kcbanner: tmpvar, yea in node [04:27] kcbanner: but I have resolved the circular dep with better design [04:28] beriberikix has joined the channel [04:29] brimster has joined the channel [04:30] AvianFlu has joined the channel [04:31] gtramont1na_: Hey all! Just improved the user experience in my experimental app. Would you mind checking it out and giving me some feedbacks? http://writeboard.nodester.com | http://github.com/gtramontina/Writeboard Thanks a lot! [04:34] johnm1234: How do we erase? :-) [04:34] DelvarWorld: I don't see anyone else [04:34] DelvarWorld: only myself [04:35] gtramont1na_: No erasing yet. :-) [04:35] johnm1234: Looks like it defaults to creating new rooms if you hit the main url. [04:36] DelvarWorld: http://writeboard.nodester.com/1306557375505 [04:36] DelvarWorld: theeerreee we go [04:36] gtramont1na_: You'd have to share your URL with someone else. johnm1234 Yes, if you hit the root url, it'll generate you a random room name, but you can have your own room, i.e /john [04:37] gtramont1na_: Multiple people drawing at the same time is not being handled yet.. :-P [04:37] charlieistheman has joined the channel [04:40] temp01 has joined the channel [04:42] gtramont1na_: See those crazy lines appearing? Thats because there were +2 ppl drawing together... [04:43] DelvarWorld: sounds like you have work to do mister [04:43] gtramont1na_: Absolutelly... [04:43] DelvarWorld: check out the shared whiteboard of http://collab.nl/ [04:43] DelvarWorld: or drawball.net [04:43] DelvarWorld: er, drawball.com [04:46] stkim1 has joined the channel [04:46] gtramont1na_: Couldn't get collab to work here. Drawball is awesome. I've played a little bit with it a while ago... [04:47] gtramont1na_: But the idea of the writeboard is to be a whiteboard to be shared when having meetings with distributed teams.. And using the Infra-red pen with the Wiimote board app. [04:48] Dinosaurus has joined the channel [04:50] jxck has joined the channel [04:50] Adman65 has joined the channel [04:53] harth has joined the channel [04:55] davidbanham has joined the channel [05:00] harth has joined the channel [05:00] jasonmcleod has joined the channel [05:00] kelp1: How do I store the current date in a Mongoose schema? I tried: "created_at : { type: Number, default: new Date() }" because I saw it in a piece of code at Github, but I get errors. Then, I thought, I can't store Javascript objects in a database, now can I? How would I do this? [05:02] ion_: kelp1: maybe new Date().getTime() [05:02] Opaque has joined the channel [05:02] indexzero has joined the channel [05:02] ion_: which would be an integer [05:02] blkcat: kelp1: there's a date type, isn't there? [05:02] blkcat: https://github.com/LearnBoost/mongoose/blob/master/examples/schema.js#L15 [05:03] kelp1: Wow, I feel foolish. I meant to type Date instead of Number, I really did. [05:03] kelp1: Thanks [05:04] kelp1 has left the channel [05:07] niftylettuce: any stylus folk up? [05:09] caolanm has joined the channel [05:12] gtramont1na_: niftylettuce: I've been using it. Whats up? [05:13] niftylettuce: gtramontla_: if you use Compass/SASS before, you can use &.className inside of another class, so you won't have to do div.class and div.ClassName [05:13] niftylettuce: gtramont1na_: if you use Compass/SASS before, you can use &.className inside of another class, so you won't have to do div.class and div.ClassName [05:14] niftylettuce: gtramont1na_: how can we do this in Stylus? [05:14] niftylettuce: hang on ill whip up a gist [05:14] kmiyashiro: I think it's the same [05:14] niftylettuce: naw doesnt compile bro [05:14] gtramont1na_: If I got it right, you can just indent. [05:14] kmiyashiro: are you using nib? [05:15] Casperin has joined the channel [05:15] niftylettuce: kmiyashiro: yessir [05:15] gtramont1na_: could you gist what you want and expect? [05:15] niftylettuce: e.g. http://pastie.org/private/dlwe5zyvsgdyjpxzstsmga [05:15] niftylettuce: is the HTML (JS outputs it) [05:16] niftylettuce: here is the Styl file http://pastie.org/private/7awc7sokrt1saet8sfhwjw [05:16] niftylettuce: (which doesnt work with indentation) [05:16] niftylettuce: in SASS, you use a special character & ampersand [05:16] niftylettuce: like this: http://pastie.org/private/snkdzsoe5oyglberofcwa [05:17] gtramont1na_: yep, have you tried & ? [05:17] niftylettuce: yeah [05:17] niftylettuce: no worky [05:17] gtramont1na_: I use it here to reference its parent. Like... [05:18] niftylettuce: WOW it just started workig again [05:18] niftylettuce: what the eff [05:18] niftylettuce: gtramont1na_: it started working, ughh [05:18] fairwinds has joined the channel [05:18] gtramont1na_: https://github.com/gtramontina/Writeboard/blob/master/public/stylesheets/writeboard.styl [05:18] niftylettuce: thx 4 help bros, but this was just a weird glitch lol [05:18] gtramont1na_: Take a look at 'sprite' [05:18] gtramont1na_: Cool. :-) [05:19] niftylettuce: gtramont1na_: hmm whiteboard? I may have to check this out... [05:19] niftylettuce: gtramont1na_: your nodester site not loadingz [05:19] ExsysTech has joined the channel [05:19] brownies has joined the channel [05:19] gtramont1na_: I see. I'm always having issues with nodester... [05:19] niftylettuce: gtramont1na_: where ya from? [05:20] gtramont1na_: I'll reach out to ChrisMatthew [05:20] gtramont1na_: Brazil [05:20] niftylettuce: nice, lmk when I can see demo [05:20] brownies has joined the channel [05:20] niftylettuce: gtramont1na_: nice project structure for Whiteboard :) [05:21] kmiyashiro: niftylettuce: I'm pretty sure you can ref the parent in stylus somehow [05:21] gtramont1na_: niftylettuce: Sure! You can always clone it from github and try it locally if you will. :-) [05:21] gtramont1na_: niftylettuce: I'm just lacking of tests. :-( It all started with a Now.js spike. [05:23] niftylettuce: man nice coffee + jade! hipster points!!!!! [05:23] niftylettuce: gtramont1na_++ [05:23] v8bot: niftylettuce has given a beer to gtramont1na_. gtramont1na_ now has 1 beers. [05:23] niftylettuce: kmiyashiro: yeah I got it working, thx bro, not sure, just a weird glitch on compiler [05:23] niftylettuce: kmiyashiro++ [05:23] v8bot: niftylettuce has given a beer to kmiyashiro. kmiyashiro now has 1 beers. [05:23] tauren has joined the channel [05:23] gtramont1na_: wow. thanks for the beer :-) [05:24] admc has joined the channel [05:27] amerine has joined the channel [05:30] vikstrous has joined the channel [05:31] vikstrous: hey guys how do i add stylus to express again? i had this code somewhere before and i just copied it every time and now i can't seem to find the answer online [05:31] vikstrous: what do i .use()? [05:31] Viriix: anybody know library that offers htmlencodin in js? [05:32] gtramont1na_: app.use(stylus.middleware({src: __dirname+'/public', compile: stylusCompiler}) [05:32] Aria: Viriix: Encoding what? [05:32] fairwinds has left the channel [05:32] gtramont1na_: vikstrous: app.use(stylus.middleware({src: __dirname+'/public', compile: stylusCompiler}) [05:33] vikstrous: gtramont1na_: sweet thanks [05:33] Viriix: Aria, html characters int their html entities [05:33] Aria: Like replacing < with <? [05:33] FredFred_ has joined the channel [05:33] Viriix: yeah [05:34] Aria: It's a simple search and replace... [05:34] Viriix: ...... [05:34] Viriix: i want the equivelant of php [05:34] Viriix: s htmlentities func [05:34] Xano has joined the channel [05:35] Aria: Which way around? [05:35] Aria: PHP's functions do a dozen different things depending on flags. [05:35] Viriix: yeah [05:35] Viriix: htmlentities is the encoding method not the decoding method [05:36] Aria: Right... [05:38] tmpvar: lol [05:38] gtramont1na_: vikstrous: np [05:40] jakehow has joined the channel [05:44] ezl has joined the channel [05:51] v0idless- has left the channel [05:52] AvianFlu has joined the channel [05:53] ryah: ACTION waves [05:53] tmpvar: howdy [05:54] TomY has joined the channel [05:57] DelvarWorld: hey big R [05:57] supster has joined the channel [05:58] _jgr has joined the channel [05:59] pandark_: Sometimes, being able to (know how to) run the tests has to be earned ^^ [06:00] niftylettuce: kmiyashiro: yt? [06:00] kmiyashiro: yeah [06:00] niftylettuce: kmiyashiro: ever use vendor() in nib before? [06:01] niftylettuce: kmiyashiro: wanna see proper usage of box-shadow() for example [06:01] niftylettuce: can't get mine to werk [06:01] btipling has joined the channel [06:01] mikeal has joined the channel [06:02] dhasenan_ has joined the channel [06:02] frogswap has joined the channel [06:03] kmiyashiro: nope [06:03] kmiyashiro: I don't actually use stylus/nib [06:03] amerine_ has joined the channel [06:03] kmiyashiro: let me see [06:03] niftylettuce: ah i got it [06:03] niftylettuce: kmiyashiro: no I got it, another crazy syntax error [06:03] truedat101 has joined the channel [06:04] SubStack: heylookit: browser-side jade middleware for browserify https://github.com/substack/node-jadeify [06:04] btipling has joined the channel [06:04] kmiyashiro: yeah [06:05] kmiyashiro: any reason you're using stylus over sass/compass? [06:05] AndyDawson has joined the channel [06:06] tk has joined the channel [06:07] mikey_p: i don't think there's any add on for compass yet is there? [06:07] chulo has joined the channel [06:08] frogswap has joined the channel [06:09] JoshC1 has joined the channel [06:09] saschagehlich has joined the channel [06:12] rauchg has joined the channel [06:16] tmpvar: SubStack, can you serve /browserify.js via nginx? i think that would be really beneficial [06:17] tmpvar: although im still trying to rationalize nginx .. as I intend on using a shit ton of websockets [06:17] __jgr has joined the channel [06:17] tmpvar: but in either case, it might make serving that file faster :) [06:17] rbranson has joined the channel [06:18] sveimac has joined the channel [06:21] seivan has joined the channel [06:23] fr0stbyte has joined the channel [06:24] frogswap has left the channel [06:26] coreb has joined the channel [06:30] openpercept has joined the channel [06:32] insin has joined the channel [06:35] tmpvar: (function(exports) { exports = function() {} })(typeof exports === 'undefined' ? window.motion : exports); -- does anyone have a clean way to get around this? [06:35] madsleejensen has joined the channel [06:36] AvianFlu has joined the channel [06:36] MooGoo: what is that [06:36] jacter has joined the channel [06:37] tmpvar: half baked ;) [06:37] MooGoo: my brains trying to parse it [06:37] fr0stbyte has joined the channel [06:37] tmpvar: MooGoo, the idea is to make it work in the browser as well as on node [06:37] MooGoo: wtf is window.motion [06:37] tmpvar: it's fairly well known, but i wanted exports to be a function [06:38] tmpvar: window.motion is a lib im writing ;) -- sorry heh [06:38] MooGoo: and your function seems to do nothing [06:38] MooGoo: well [06:38] MooGoo: no it makes exports an empty function [06:38] isaacs has joined the channel [06:38] MooGoo: it doesnt use the arg passed to it [06:39] MooGoo: why not just... [06:39] MooGoo: exports = function() {} [06:39] MooGoo: that effectivly does the same thing [06:39] tmpvar: MooGoo: https://github.com/tmpvar/motionjs/blob/master/lib/client.js#L60 [06:39] tmpvar: that is how its supposed to be [06:39] tmpvar: you cant do exports = function() {} [06:40] tmpvar: :/ [06:40] tmpvar: because it doesnt hold its ref to the outer scope [06:40] rbranson has joined the channel [06:40] tmpvar: so you basically set a local var to a function and that is all [06:41] MooGoo: it's a global var [06:41] tmpvar: i'd have to pass module, and set .exports .. but that would break the browser case [06:41] MooGoo: in the function [06:41] tmpvar: it doesnt reference the original exports [06:41] tmpvar: example.. [06:41] MooGoo: yes indeed [06:41] MooGoo: I see it now [06:42] MooGoo: so the function literally does nothing [06:42] tmpvar: yup [06:42] MooGoo: I think I should add that line to some of my code [06:42] tmpvar: javascript is silly ;) [06:43] MooGoo: in random places [06:43] tmpvar: haha [06:45] Ned_ has joined the channel [06:45] madsleejensen: Hi all, do any of you have a few suggestions on some opensource medium size projects that is implemented with nodejs. I would like to see how such project is structured etc. ? [06:46] SubStack: tmpvar: you /could/ with browserify.bundle() but why? [06:46] tk has joined the channel [06:46] tmpvar: madsleejensen, what sort of project? [06:46] tmpvar: SubStack, why not? [06:47] tmpvar: SubStack, another thing that strikes me as odd.. do you have to use connect? [06:47] SubStack: because then you don't get the benefit of when you update the files the browserify.js changes [06:47] SubStack: you can use any web stack that has connect-style .use() [06:47] SubStack: express, stack, whatevs [06:47] tmpvar: SubStack, in production i'd hate to have a file watcher going on [06:47] SubStack: watch : false [06:48] tmpvar: writeToFile : /path/to.file ? [06:48] TomY: having issues with npm install of daemon (daemon-node) compiling for the wrong architecture. Node is compiled for i386 - is this typical (on a mac)? [06:48] tmpvar: :P [06:48] chapel: SubStack: cant you also just bundle and serve up the file however you want, with no web stack? [06:48] TomY: i.e. should i try to make node x86_64, or try to get npm to match node? [06:48] madsleejensen: tmpvar: any kind of project really :) im interrested in seeing how code is split up etc. How they handle all this async, my javascript experience is limited to small web scripts [06:48] SubStack: chapel: yes [06:48] SubStack: browserify.bundle() [06:48] tmpvar: ah [06:48] chapel: you should make a cli tool for it :P [06:49] tmpvar: there we go :) [06:49] SubStack: I don't need one so I haven't written one [06:49] tmpvar: bundle-watcher [06:49] SubStack: scratching my own itches here [06:49] tmpvar: get itchy [06:49] sherod has joined the channel [06:49] chapel: for those that just want the utility of it, without having to use it in their stack [06:49] SubStack: nah too busy building other stuff [06:49] rbranson has joined the channel [06:49] chapel: tmpvar: fork and patch it :) [06:49] AndyDawson has joined the channel [06:49] AvianFlu has joined the channel [06:50] SubStack: the browserify internals are the most horrible abomination ever but I don't even care because it has lots of tests [06:50] SamuraiJack has joined the channel [06:50] tmpvar: madsleejensen, i'd checkout http://howtonode.org [06:50] tmpvar: dive from there [06:51] madsleejensen: tmpvar: actually i read most of the articles there :) i just wanted to see some real projects but thanks! [06:51] TomY: ACTION suspects snowleopard upgrade... [06:52] tmpvar: madsleejensen, so I'd probably take a peek at socket.io, connect, express, jsdom (hehe), node-http-proxy, mongo-native, etc.. [06:53] tmpvar: there is a huge list of modules.. but im guessing that is not what you are going for [06:53] tmpvar: madsleejensen, here's a fun one: https://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs [06:53] SubStack: I wouldn't look at the big popular ones that have been around forever [06:54] SubStack: those tend to be messy and big [06:54] tmpvar: by forever you mean a year? [06:54] tmpvar: ;) [06:54] tmpvar: a year of throwing shit on the pile [06:54] kmiyashiro: tmpvar aren't you supposed to return something? [06:54] madsleejensen: tmpvar: yeah that excaltly the kind of project i was looking for :) [06:54] tmpvar: kmiyashiro, undefined [06:54] madsleejensen: tmpvar: thank you very much! [06:54] tmpvar: np [06:55] kmiyashiro: but why would you want to do that [06:55] tmpvar: because, i just don't give a f... [06:55] tmpvar: v8: tmpvar [06:55] v8bot: tmpvar: ReferenceError: tmpvar is not defined [06:56] skm has joined the channel [06:58] admc has joined the channel [06:58] tmpvar: v8: setTimeout [06:58] v8bot: tmpvar: ReferenceError: setTimeout is not defined [06:59] tmpvar: v8: while(1) P{ [06:59] v8bot: tmpvar: SyntaxError: Unexpected token { [06:59] tmpvar: v8: while(1) {} [06:59] v8bot: tmpvar: Error: Timeout [06:59] AvianFlu: lol [07:00] qrux has joined the channel [07:03] qrux has joined the channel [07:04] tmpvar: heres something i didnt know until yesterday (because im silly) [07:04] tmpvar: v8: var a = [1,2,3], b=[4,5,6]; a.concat(b); [07:04] v8bot: tmpvar: [1,2,3,4,5,6] [07:05] btipling: v8: this [07:05] v8bot: btipling: {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…} [07:05] davidcoallier has joined the channel [07:06] btipling: v8: [].toSource() [07:06] v8bot: btipling: TypeError: Object has no method 'toSource' [07:06] btipling: v8: throw 'moo' [07:06] v8bot: btipling: undefined: undefined [07:06] chapel: v8: [].toString() [07:06] v8bot: chapel: "" [07:06] chapel: v8: ['blah'].toString() [07:06] v8bot: chapel: "blah" [07:06] btipling: v8: try { throw 'moo' } catch (e) { console.log(e) } [07:06] v8bot: btipling: "moo" [07:06] chapel: v8: ['blah'].callee.toString() [07:06] v8bot: chapel: TypeError: Cannot call method 'toString' of undefined [07:07] chapel: v8: ['blah'].assignee.callee.toString() [07:07] v8bot: chapel: TypeError: Cannot read property 'callee' of undefined [07:07] chapel: haha [07:07] btipling: :P [07:07] btipling: v8: this.constructor [07:07] v8bot: btipling: function Object() { [native code… [07:07] btipling: v8: this.constructor.callee [07:07] tmpvar: v8: arguments [07:07] v8bot: btipling: undefined [07:07] v8bot: tmpvar: {0:"arguments"} [07:07] MooGoo: v8: Object.getOwnPropertyNames(this) [07:07] v8bot: MooGoo: ["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"] [07:08] tmpvar: v8: eval('arguments') [07:08] v8bot: tmpvar: {0:"eval('arguments')"} [07:08] tbranyen: welp just got bit in the ass from '' being falsy [07:08] MooGoo: v8: this.pp [07:08] v8bot: MooGoo: function pp(o,depth){return pp_r… [07:08] btipling: tbranyen: use === [07:08] btipling: always use === [07:08] MooGoo: v8: this.pp({a:5,b:4}) [07:08] v8bot: MooGoo: "{a:5,b:4}" [07:08] tbranyen: btipling: btipling wait why? [07:08] tbranyen: that has nothign to do with what i'm doing [07:08] tmpvar: lol [07:09] tbranyen: if i use === that'll make it even harder to test for falsy values [07:09] tbranyen: == null fixed it [07:09] btipling: heh [07:09] tmpvar: tbranyen, if you want to go falsy, use a ! [07:09] btipling: years of javascript [07:09] btipling: yeah [07:09] tmpvar: if (!value) {} [07:09] tbranyen: tmpvar: !'' is true [07:09] btipling: use ! and !! [07:09] btipling: tbranyen: !! [07:10] tbranyen: ... [07:10] tmpvar: v8: !! [07:10] btipling: !!'' [07:10] v8bot: tmpvar: SyntaxError: Unexpected end of input [07:10] MooGoo: .. !!!!!!!!!!!!!{} [07:10] tbranyen: you're failing to see that i want '' to be truthy [07:10] Calvin: 02false [07:10] tbranyen: and not falsy [07:10] tbranyen: which is why == null works in this case [07:10] MooGoo: take bets [07:10] MooGoo: .. !!!!!!!!!!!!!!!!!!!!!!![] [07:10] tmpvar: v8: !!'' [07:10] Calvin: 02false [07:10] v8bot: tmpvar: false [07:10] btipling: I don't know what you're doing tbranyen but it looks like trouble [07:10] tmpvar: v8: ~~'' [07:10] v8bot: tmpvar: 0 [07:10] tbranyen: btipling: its not :) [07:11] tbranyen: v8> '' == null // false [07:11] v8bot: tbranyen: false [07:11] btipling: tbranyen: what ever it is jslint and google linter wouldn't let you do it [07:11] tbranyen: v8> undefined == null // false [07:11] v8bot: tbranyen: true [07:11] tbranyen: er //true heh [07:11] tmpvar: lol [07:11] tmpvar: do you know its going to be a string? [07:11] tbranyen: yeah [07:11] tmpvar: ''.length ? [07:11] tmpvar: or val !== null [07:11] DelvarWorld: v8: var output = '?? ', a = function() { try{ a.bar.foo } catch(e) { output +="exception caught. "; return "DONE"; } finally { output += "Do I get called?! "; return "moo"; }}; var test = a(); output += test; output; [07:11] v8bot: DelvarWorld: "?? exception caught. Do I get called?! moo" [07:11] tmpvar: i dunno [07:12] tbranyen: tmpvar: i lose undefined if i === [07:12] davidbanham has joined the channel [07:12] tbranyen: v8> undefined === null [07:12] v8bot: tbranyen: false [07:12] btipling: you should almost know the expected types for whatever your checking [07:12] tbranyen: correct, i 'almost' know it [07:12] btipling: just because javascritp is loosely typed doesn't mean it's ok to not track that stuff [07:12] tbranyen: but i can't be sure [07:12] DelvarWorld: if you return inside a catch and return inside a finally, both the catch and finally get executed, but the finally return is the one that the function exists with. wtf. [07:12] btipling: sounds like a problem [07:12] tbranyen: DelvarWorld: i love that one [07:13] mjr_ has joined the channel [07:13] btipling: v8: NaN === NaN [07:13] v8bot: btipling: false [07:13] tbranyen: btipling: its only a problem if you think jslint is the only way to code [07:13] shachaf has joined the channel [07:13] btipling: I think it's a good way to stay out of trouble [07:13] tmpvar: v8:'' [07:13] v8bot: tmpvar: "" [07:13] btipling: to avoid hours of debugging because of some stupid type assumption somewhere [07:13] tmpvar: v8: typeof '' [07:13] v8bot: tmpvar: "string" [07:13] btipling: v8: isNan(NaN) [07:13] v8bot: btipling: ReferenceError: isNan is not defined [07:14] btipling: v8: isNaN(NaN) [07:14] v8bot: btipling: true [07:14] btipling: v8: typeof NaN [07:14] v8bot: btipling: "number" [07:14] DelvarWorld: v8: 2.2 + 1.1 [07:14] v8bot: DelvarWorld: 3.3000000000000003 [07:14] btipling: if that doesn't blow your mind [07:14] btipling: I don't know what will [07:14] btipling: v8: typeof NaN [07:14] v8bot: btipling: "number" [07:14] tbranyen: null is an object [07:14] tbranyen: v8: typeof null [07:14] v8bot: tbranyen: "object" [07:14] tbranyen: :) [07:15] btipling: :O [07:15] DelvarWorld: v8: /abc/('abc'); [07:15] v8bot: DelvarWorld: ["abc"] [07:15] tbranyen: which means you can put properties on it [07:15] btipling: v8: typeof undefined [07:15] v8bot: btipling: "undefined" [07:15] tbranyen: oh crap... you can't [07:15] btipling: v8: undefined = 'moo' [07:15] v8bot: btipling: ... [07:15] DelvarWorld: v8: undefined [07:15] v8bot: DelvarWorld: undefined [07:15] btipling: v8: var undefined = 'moo' [07:15] v8bot: btipling: undefined [07:15] giby: v8: null.test = 'pass'; null.test [07:15] v8bot: giby: TypeError: Cannot set property 'test' of null [07:16] btipling: v8: var undefined = 'moo'; console.log(undefined); [07:16] v8bot: btipling: "moo" [07:16] stisti has joined the channel [07:16] DelvarWorld: doesn't save between v8 calls, I figured it wouldn't [07:16] btipling: v8: var undefined = 'moo'; typeof undefined [07:16] v8bot: btipling: "string" [07:16] giby: lol [07:16] tbranyen: giby: one of the main reasons why typeof can't be trusted for objects [07:16] btipling: v8: typeof "string" [07:16] v8bot: btipling: "string" [07:16] btipling: v8: type of new String("string") [07:16] v8bot: btipling: SyntaxError: Unexpected identifier [07:17] DelvarWorld: v8: null instanceof object [07:17] v8bot: DelvarWorld: ReferenceError: object is not defined [07:17] btipling: v8: typeof new String("string") [07:17] v8bot: btipling: "object" [07:17] tbranyen: v8: toString.call( null ) [07:17] v8bot: tbranyen: "[object global]" [07:17] DelvarWorld: v8: null instanceof Object [07:17] v8bot: DelvarWorld: false [07:17] tbranyen: noice [07:17] ion_: v8: Object.getOwnPropertyNames(Object) [07:17] v8bot: ion_: ["getOwnPropertyNames","arguments","seal","length","create","name","isFrozen","keys","prototype","isExtensible","getOwnPropertyDescriptor","caller","preventExtensions","getPrototypeOf","defineProperty","isSealed","defineProperties","freeze"] [07:17] btipling: v8: "string" instance of String [07:17] v8bot: btipling: SyntaxError: Unexpected identifier [07:17] SamuraiJack has joined the channel [07:17] btipling: v8: "string" instanceof String [07:17] v8bot: btipling: false [07:17] tmpvar: so in reality you are working around js [07:17] ryah: uh is this necessary? [07:17] tmpvar: s/around/against [07:17] ryah: ACTION wields his kick-command [07:17] termie has joined the channel [07:17] termie has joined the channel [07:18] chapel: lol [07:18] tmpvar: its not necessary, per se [07:18] DelvarWorld: v8: var fs = require('fs'); [07:18] v8bot: DelvarWorld: ReferenceError: require is not defined [07:18] DelvarWorld: oh right, v8 [07:18] tmpvar: but its friday on a 3 day weekend [07:18] kbni: I don't suppose anyone here has used any sort of proxy and websockets successfuly? [07:18] giby: maybe [07:18] btipling: I use socket.io [07:19] chapel: kbni: node-proxy [07:19] btipling: but no proxy [07:19] giby: i have proxied a websocket into another websocket with socket.io, if that's what you mean [07:19] ion_: should make a v8bot room [07:19] kbni: node-proxy will relay websockets? [07:19] kbni: neat [07:19] DelvarWorld: v8: "lol".bold() [07:19] v8bot: DelvarWorld: "lol" [07:19] ion_: ah there is #v8bot [07:19] btipling: websockets is just http right [07:19] btipling: on tcp [07:20] ParadoxQuine: ryah: thanks for all the great work on node, i gave a talk on it at my school yesterday and people were really excited about it :) [07:20] giby: it's done over http, but it's not widely supported [07:20] btipling: true [07:20] btipling: node has won [07:20] btipling: it's killed the lamp stack [07:20] qFox has joined the channel [07:21] giby: no way [07:21] btipling: I'll never use lamp again [07:21] btipling: at least [07:21] giby: it is still far easier to get up and running with lamp than node [07:21] giby: not saying anything about the quality of each, though [07:21] btipling: node is just missing decent orm [07:21] xSmurf has joined the channel [07:21] btipling: then it's just game over [07:22] tmpvar: wow [07:22] giby: it's missing support by budget webhosts [07:22] tmpvar: all it needs is an orm and thats the end all? [07:22] MooGoo: nodejs is gonna take over? [07:22] MooGoo: no one uses anything else? [07:22] tmpvar: enjoy [07:22] btipling: orm is useful [07:23] temp01 has joined the channel [07:23] vikstrous has joined the channel [07:23] chapel: lol [07:23] chapel: node has everything it needs [07:23] tbranyen: tmpvar: yeah and it needs mysql support in core [07:23] tbranyen: then it'll be done [07:23] chapel: lmao [07:23] giby: i can edit a php file and have the changes take effect without restarting the websever (when running mod_php/php through cgi in apache) [07:23] giby: I can't do that with node can I? [07:23] chapel: ACTION kills whoever recommends mysql support in its core [07:23] tbranyen: chapel: you laugh now, but mysql is making a come back! [07:23] MooGoo: not without a lot of boilet plate [07:23] MooGoo: boiler [07:23] btipling: doubt it [07:23] MooGoo: node is apache tho [07:24] MooGoo: it does double duty [07:24] tmpvar: SocketHandler, ftw [07:24] giby: 'is apache'? [07:24] tbranyen: couchdb and mongo are already being phased out since they can't scale [07:24] tbranyen: mysql has scaled since the dawn of time [07:24] btipling: really? [07:24] MooGoo: it is the webserver [07:24] btipling: I'm using redis [07:24] btipling: redis cluster is coming out soon [07:24] MooGoo: as well as the script runner [07:24] btipling: should scale then [07:24] tbranyen: btipling: can't scale :-/ [07:24] JoshC1 has joined the channel [07:24] btipling: lies [07:24] giby: ah right, but that means you have to restart it all the time! [07:24] chapel: don't listen to tbranyen, he is just fucking with you [07:24] btipling: once redis cluster is out it can [07:24] tbranyen: chapel: he was fucking with me first [07:25] btipling: and there's a thrift interface for node [07:25] btipling: so you can use cassandra [07:25] giby: I think it's incredibly valuable to be able to develop in php and keep the server running the whole time [07:25] btipling: with node [07:25] chapel: giby: there are dev tools that restart your node server on file changes [07:25] tmpvar: giby, that is because php operates in completely different fashion [07:25] AvianFlu has joined the channel [07:25] chapel: like restartr [07:26] chapel: `v git restartr [07:26] v8bot: chapel: aaronblohowiak/restartr - GitHub - https://github.com/aaronblohowiak/restartr [07:26] giby: which is fine, unless your server takes 2 minutes to start up :( [07:26] tbranyen: get a faster computer [07:26] giby: tmpvar: I know, I'm just saying it's a nice advantage [07:26] btipling: at least [07:26] btipling: 256mb server [07:26] tmpvar: giby, in php web land, a request comes into apache, it spawns off a worker.. starts up php, parses your php and emits the results [07:26] chapel: its a disadvantage [07:26] tmpvar: giby, that is slow ;) [07:26] btipling: you can use fastcgi too avoid that can't you [07:26] giby: it is slow for the user, not for the developer [07:26] niftylettuce: you could modify php with connect middlewarez [07:26] giby: woh's side are you on! [07:27] tmpvar: node has the ability to go from 0 to 5k in 0 [07:27] tmpvar: well.. milliseconds [07:27] niftylettuce: 0 to 10 k ** [07:27] niftylettuce: tmpvar++ [07:27] v8bot: niftylettuce has given a beer to tmpvar. tmpvar now has 1 beers. [07:27] saschagehlich: anyone going to euruko tonight? [07:27] tmpvar: so restarting it isnt a problem [07:27] tbranyen: giby: maybe you should rethink what you're doing on start that is making it so slow [07:27] giby: 0-5k? [07:27] tmpvar: its fast enough to restart between requests [07:27] tbranyen: maybe you can defer a lot of that [07:27] tmpvar: i say 5 conservatively [07:28] btipling: that's amazing [07:28] tbranyen: do you believe in magic? [07:28] btipling: I like node.js and I like go because go syntax is fun [07:28] giby: it's not slow for me now, but I don't have a significant node server - I am just expecint it to be slow [07:29] Druide_ has joined the channel [07:29] giby: since I have worked on large server binaries that take foreever to start [07:29] pifantastic has joined the channel [07:29] tmpvar: giby, this is not java + liferay + struts [07:29] tbranyen: giby: well node defers heavily on I/O heavy tasks, if all you have is stuff in memory it'll be fast as shit [07:29] tmpvar: not even apache + php ;) [07:29] btipling: java + apache + tomkat + gwt [07:29] tmpvar: btipling, haha.. another hater.. I love it [07:29] btipling: :D [07:30] chapel: lol [07:30] captain_morgan has joined the channel [07:30] giby: so do you normally find that significant node servers start up in less than a second? [07:30] tmpvar: giby, yes [07:30] giby: cool [07:30] chapel: giby: node servers are super fast, unless it is dependent on an external service that is slow [07:30] tmpvar: normally < 100ms [07:30] btipling: you can lazy load stuff too can't you [07:31] madzak: what would people recommend when needing multiple callbacks to fire in parallel and have a return when all callbacks have finished? right now i'm using a counter but wondered if one of the libraries out there are better [07:31] tmpvar: right, depends on how much you do on startup [07:31] gozala has joined the channel [07:31] tbranyen: i used to do a lot of asp.net dev [07:31] tbranyen: restarting those servers [07:31] tbranyen: god damn [07:31] madzak: tbranyen: i feel sorry for you [07:31] tbranyen: take a coffee break like 20 times a day [07:31] btipling: madzak: asynchronous callbacks? [07:31] madzak: btipling: yes [07:31] giby: what if I make a change in some core dependency that causes it to recompile everything [07:31] tmpvar: madzak, depends on how many times you are going to do that.. [07:31] btipling: a counter works [07:32] tmpvar: yep [07:32] btipling: track it with an array etc [07:32] giby: does it recompile js on startup? afaik v8 does compile the js to bytecode when it first reads it right? [07:32] chapel: giby: recompile what? [07:32] chapel: lol [07:32] madzak: tmpvar, btipling: cool i'll keep the counter thanks [07:32] chapel: you aren't gonna notice [07:32] tmpvar: giby, thats basically un-noticable [07:32] newy has joined the channel [07:32] giby: the time it would take to compile ~100k lines of js is unnoticable? [07:32] tmpvar: chapel, lol.. you've got it.. im over here making up words [07:33] chapel: tmpvar: :) [07:33] jetienne has joined the channel [07:33] chapel: giby: are you going to do 100k lines of js? [07:33] tmpvar: giby, i suggest you just try it ;) [07:33] chapel: how many loc is socket.io? [07:33] tmpvar: socket.io isnt that big [07:33] chapel: hmm [07:33] chapel: yeah, node makes that nice [07:33] giby: chapel: it seems reasonable that I would [07:34] btipling: half my lines are jsdoc comments [07:34] giby: tmpvar: I would like to know before writing so much code :) [07:34] btipling: do those count? [07:34] tmpvar: giby, restarts are fast [07:34] chapel: uhh, giby if you have a noticeable startup time, then you are doing something wrong [07:34] tmpvar: much faster than you'd expect elsewhere [07:34] tmpvar: but, it depends on what you are doing on startup [07:34] btipling: maybe he's doing some network i/o [07:34] tmpvar: if you decide to go to the moon, its going to take a while [07:34] supster: madzak: if you're doing it a lot you might want to look at something like https://github.com/caolan/async [07:34] chapel: if you are just loading js and thats it [07:34] jetienne: what is the good way to do controller in express.js [07:34] chapel: then it should be near instant [07:34] giby: assume I'm not blocking on any network I/O on startup [07:35] chapel: v8 is fast [07:35] giby: how fast though [07:35] tmpvar: giby, try it [07:35] tbranyen: giby: you trolling? [07:35] chapel: faster than apache [07:35] btipling: ebs on ec2 can get slow too [07:35] MooGoo: warp 9 [07:35] chapel: seems like he is [07:35] tbranyen: how the hell do we know how fast something takes to load up on your hardware [07:35] MooGoo: you need to write in C if you want warp 10 [07:35] tmpvar: lol [07:36] tmpvar: asm [07:36] btipling: are warp levels exponential? [07:36] madzak: supster: what would you a lot is? i would say average will spin up about 8 async callbacks [07:36] MooGoo: nah [07:36] MooGoo: warp 10 is Infinite speed [07:36] giby: I can't just 'try' compiling tens of thousands of lines of javascript [07:36] MooGoo: so it's.... [07:37] tmpvar: you wont need tens of thousands of lines [07:37] tmpvar: ^)^ [07:37] chapel: giby: you aren't compiling anything [07:37] MooGoo: is it logrithmic? [07:37] jetienne: you are looping guys [07:37] chapel: madzak: check out http://caolan.github.com/nimble/ [07:38] supster: madzak: i'd say if you get annoyed of writing your counting code or need to make use of the other use cases the library provides (e.g., performing in series) [07:38] giby: chapel: why not? [07:38] chapel: giby: ... why not not? [07:38] jetienne: giby: what do you wanna know. can you reask the original question [07:39] giby: jetienne: I am curious what a realistic startup time is for projects with tens of thousands of line of javascript. afaik v8 compiles js into bytecode before it runs, so it seems like it would take some time to recompile all the js during startup [07:39] snearch has joined the channel [07:40] giby: but I don't if that time is 10ms, 10 seconds, or 5 minutes [07:40] tmpvar: < 10 seconds [07:40] jetienne: giby: it is compiler to asm directly there are no bytecode [07:40] tmpvar: let me prove it [07:40] jetienne: giby: you should bench it [07:40] giby: i would but I don't have the js codebase to do so yet [07:40] jetienne: giby: find a large app and launch it [07:41] jetienne: giby: so try to find it [07:41] jetienne: what is the largest app runnable in npm ? [07:41] jetienne: something with a lots of dependancy [07:41] giby: no idea, and not sure how to find it [07:41] febits has joined the channel [07:41] jetienne: giby: maybe somebody here got suggestion [07:42] jetienne: something which depends on express and more [07:42] jetienne: giby: you need a bench, not a guess from people on irc [07:43] tmpvar: giby, i have two links for ya [07:43] giby: what are they? :) [07:43] tmpvar: 1) the test suite for jsdom level2/html : https://github.com/tmpvar/jsdom/blob/master/test/level2/html.js (19k lines) [07:43] tmpvar: 2) the time it takes to process the file: https://gist.github.com/996698 [07:44] tmpvar: its ~300ms if I dont echo it out [07:44] jetienne: yep echo got a big cost [07:44] giby: awesome, thanks [07:44] jetienne: if you relaunch several time with out echo, what is the last timing [07:45] giby: does it cache the previous compilations? does it do incremental compiles with that cache? [07:45] jetienne: giby: you come from php no ? :) [07:45] tmpvar: jetienne, https://gist.github.com/996698#file_gistfile2.txt [07:46] giby: well I have done php but I come from python and java servers more [07:46] jetienne: giby: no idea if js is cached. this is likely happening like it happens in chrome [07:46] tmpvar: so ~ 250ms? [07:46] tmpvar: rough count.. which is not bad [07:46] jetienne: giby: node server are not relaunch at each request. parsing it is negigibal [07:46] jetienne: negligable [07:46] tmpvar: happens once [07:46] qrux: This is an interesting question y'all are trying to find the answer to…But what was the original question? Whether node starts faster (given a bunch of JS deps) than a2 + php…? [07:46] cjm_ has joined the channel [07:47] tmpvar: qrux, a2 is slow to start, and slow to serve [07:47] jetienne: qrux: start on boot ? [07:47] chapel: well, not faster that apache [07:47] giby: my interest is in the debug/edit cycle, not so much the serve performance [07:47] chapel: more just about large projects [07:47] msucan has joined the channel [07:47] giby: i know nodejs is very fast in serveing performance :) [07:47] chapel: giby: is fast :) [07:47] jetienne: giby: negligable [07:48] qrux: Okay. The dev cycle. Thank you. [07:48] jetienne: giby: man test, you are asking the same question over an dover [07:48] chapel: and jetienne dont think its v8 caching, probably the os caching the files in memory or something [07:48] tbranyen: jetienne: yeah but we haven't gotten any closer to figure out if its fast or not [07:48] giby: jetienne: I am just repeating the question when someone asks! [07:49] level09 has joined the channel [07:52] floating has left the channel [07:55] LowValueTarget has joined the channel [07:56] amaudy has joined the channel [07:56] atiti has joined the channel [07:56] tikva has joined the channel [07:57] jgr__ has joined the channel [08:03] charlieistheman has joined the channel [08:04] adambeynon has joined the channel [08:08] tikva has joined the channel [08:10] aliem has joined the channel [08:11] abraham has joined the channel [08:11] OneBraveHog has joined the channel [08:12] simenbrekken has joined the channel [08:13] jacter has joined the channel [08:14] OSInet has joined the channel [08:17] ExsysTech has joined the channel [08:18] tikva has joined the channel [08:18] bingomanatee has joined the channel [08:20] level09 has left the channel [08:27] skm has joined the channel [08:28] AvianFlu has joined the channel [08:29] fly-away has joined the channel [08:30] sveimac has joined the channel [08:34] CiRlE has joined the channel [08:35] pdelgallego has joined the channel [08:36] quijote has joined the channel [08:37] admc has joined the channel [08:41] nivoc has joined the channel [08:43] admc1 has joined the channel [08:45] jbpros has joined the channel [08:47] piscisaureus has joined the channel [08:47] mhausenblas has joined the channel [08:51] captain_morgan has joined the channel [08:51] jbpros has joined the channel [08:54] saschagehlich has joined the channel [08:54] Ned_ has joined the channel [08:56] jetienne: q. is there a orm which fit well with express ? suggestion ? [08:57] uchuff has joined the channel [08:57] adambeynon has joined the channel [08:58] spyzero has joined the channel [09:00] jetienne: well i guess mongoose should work well.. lets try [09:01] [AD]Turbo has joined the channel [09:01] [AD]Turbo: hi there [09:03] quijote has joined the channel [09:10] herbySk has joined the channel [09:12] H4ns has joined the channel [09:13] Country has joined the channel [09:13] _aron has joined the channel [09:19] Dreamer3 has joined the channel [09:19] kawaz_home has joined the channel [09:20] skm has joined the channel [09:22] ewdafa has joined the channel [09:23] H4ns has joined the channel [09:24] matjas has joined the channel [09:30] fyskij has joined the channel [09:31] temp01 has joined the channel [09:32] tdegrunt has joined the channel [09:39] d0k has joined the channel [09:41] adrianmg has joined the channel [09:43] _aron has joined the channel [09:46] [[zz]] has joined the channel [09:46] piscisaureus has joined the channel [09:46] cystbear has joined the channel [09:47] adambeynon has joined the channel [09:48] Smith_ has joined the channel [09:48] Smith_: Привет, компана! [09:50] Charuru has joined the channel [09:53] ngs has joined the channel [09:53] viz has joined the channel [09:59] H4ns has joined the channel [09:59] jaket has joined the channel [10:00] AvianFlu has joined the channel [10:03] sveimac has joined the channel [10:04] jetienne: still trying to takeoff my first mongoose db [10:05] H4ns has joined the channel [10:10] troessner has joined the channel [10:11] ExsysTech has joined the channel [10:12] hybsch has joined the channel [10:12] omni5cience__ has joined the channel [10:14] viz has joined the channel [10:15] omni5cience_ has joined the channel [10:15] adambeynon has joined the channel [10:16] Katibe has joined the channel [10:17] christophsturm has joined the channel [10:17] liquidproof has joined the channel [10:18] markwubben has joined the channel [10:19] paul_k has joined the channel [10:22] jacobolus has joined the channel [10:24] [[zz]] has joined the channel [10:25] FireFly has joined the channel [10:26] jbpros has joined the channel [10:27] rictic has left the channel [10:31] criswell has joined the channel [10:32] iksik has joined the channel [10:32] iksik: hello [10:32] iksik: # Fatal error in CALL_AND_RETRY_0 [10:32] iksik: # Allocation failed - process out of memory [10:32] eldar has joined the channel [10:32] iksik: while 'make'... how can i deal with that? [10:35] saschagehlich has joined the channel [10:35] insin: ACTION undergoes Module Weirdness [10:36] NetRoY has joined the channel [10:37] eldar_ has joined the channel [10:40] doomhz has joined the channel [10:41] Renegade001 has joined the channel [10:41] insin: Right, can't replace one exported variable with another, only modify it - a mark against me for exporting a namespace object [10:42] doomhz: did someone have this issue as me: installing nodejs and npm on mac os, working fine then after restart nodes and npm is not available anymore so I have to reinstall it each time I start the pc? [10:43] jxck has joined the channel [10:46] Opaque has joined the channel [10:46] mscdex: doomhz: are you sure it's just not in your path? [10:47] doomhz: I think it could be the problem [10:47] doomhz: can you please tell me how can I add it? [10:47] H4ns has joined the channel [10:47] mscdex: insin: wait, what? [10:47] mscdex: doomhz: check and make sure /usr/local/bin/node exists [10:48] doomhz: no, it doesn't [10:49] doomhz: sorry, I'm new on Mac :) [10:49] doomhz: on ubuntu works like a charm [10:49] doomhz: but on Mac I keep having this problem [10:50] mscdex: doomhz: hmm... are you installing with sudo? [10:51] mscdex: or are you using a prefix? [10:51] doomhz: without sudo, following this guide [10:51] doomhz: https://github.com/joyent/node/wiki/Installation [10:52] doomhz: should I do it with sudo? [10:52] [[zz]] has joined the channel [10:52] mscdex: ah ok, then check ~/local/node/bin/node [10:54] doomhz: it's there [10:54] mscdex: ok [10:54] doomhz: let me see if I close the console [10:54] doomhz: yes, still there [10:55] doomhz: but node is not working anymore :) [10:55] x4rMa has joined the channel [10:55] mscdex: i'd edit your ~/.bashrc and add that directory (/home/doomhz/local/node/bin) to your $PATH [10:55] doomhz: so if I do a fresh install in a console - it's working - after closing the console - not anymore [10:55] doomhz: ok [10:55] doomhz: let me try [10:55] mscdex: like: export PATH=$HOME/local/node/bin:$PATH [10:55] [[zz]] has joined the channel [10:56] mscdex: then every time you start up bash, it should be there [10:56] temp01 has joined the channel [10:56] coreb has joined the channel [10:58] kawaz_air has joined the channel [11:01] Wizek has joined the channel [11:01] doomhz: mscdex: thanks, added it in .bash_profile and it works ;) [11:02] doomhz: doesn't work if I add it in .profile or .bashrc [11:03] fangel has joined the channel [11:03] mscdex: ah ok, cool [11:04] doomhz: everything seems to be different on mac than on Ubunutu :) [11:05] davidbanham has joined the channel [11:06] mscdex: yeah, there can be some gotchas [11:08] kawaz_air has joined the channel [11:09] ngs has joined the channel [11:10] davidbanham has joined the channel [11:14] sonnym has joined the channel [11:15] tuhoojabotti: What's the best mysql module? [11:15] kawaz_air has joined the channel [11:16] mscdex: tuhoojabotti: i'd give node-mysql a try [11:17] tuhoojabotti: okay. :3 [11:17] doomhz: btw, is https://github.com/robrighter/node-boilerplate great? [11:17] doomhz: do you recommend it for starting a new project? [11:17] tuhoojabotti: I recommend notepad [11:18] tuhoojabotti: vim/nano is also cool. [11:19] Bonuspunkt: nobody recomment cloud9 [11:19] Bonuspunkt: ? [11:19] doomhz: hm, node-boilerplate is like an Expree+Socket.IO+HTML boilerplate in it [11:19] mscdex: i've never used boilerplate [11:20] doomhz: mscdex: do you use Express? [11:23] cystbear: guys how to install nodejs at ubuntu, what I should do after installation? [11:24] torgeir has joined the channel [11:25] cystbear: looks like, nodejs is installed, but I can not understand what I should to do next [11:25] aliem: cystbear: you could install npm and begin to peke around with node ... [11:25] aliem: *poke [11:25] cystbear: npm installed too, but I can not understand how RUN something [11:25] cystbear: for example express [11:26] tuhoojabotti: Wohoo [11:26] tuhoojabotti: it works [11:26] tuhoojabotti: my first mysql production :P [11:27] cystbear: AND main question is, should express be located at native node directory? or not ? [11:27] aliem: the latest npm installs it's libs inside the cwd in node-modules unless you use the -g flag (it will install the modules inside the global namespace) [11:28] aliem: once you install express you can use it's generators to create a new app [11:28] AntelopeSalad: if you use the -g flag can you still require modules in their node-native way? (ex. require('foo'))? [11:28] mscdex: doomhz: i haven't had a chance to use it yet [11:28] Bradleymeck has joined the channel [11:28] mscdex: doomhz: i've been doing mostly non-web stuff [11:29] doomhz: ah, ok, thanks [11:29] mscdex: i think npm's -g is only for modules that install command-line utilities [11:30] fangel_ has joined the channel [11:31] AntelopeSalad: i ask because i just setup a dev env. with ubuntu and it seems like i can longer require('some_npm_installed_module') [11:31] AntelopeSalad: *no longer [11:32] x4rMa: is it oke if node_modules installed outside node directory ? [11:32] slaskis: AntelopeSalad: yep, that's the idea [11:33] Wa has joined the channel [11:33] AntelopeSalad: slaskis: it's really strange though [11:34] AntelopeSalad: example: my friend and i both have npm 1.0.6 and node 0.4.8 , both of us npm installed our modules globally , he can require them normally but i cannot [11:34] slaskis: AntelopeSalad: maybe your NODE_PATH is set to something else? [11:35] slaskis: try writing `require.paths` in the node repl [11:36] AntelopeSalad: ./home/nick/.node_modules|node_libraries , /usr/local/lib/node [11:36] Renegade001 has joined the channel [11:36] slaskis: is there a . in the beginning? [11:36] AntelopeSalad: yes [11:36] slaskis: ./home ? [11:36] slaskis: that might be it [11:36] AntelopeSalad: no, i just did that because you can't send a / as the first char over irc [11:36] slaskis: oh, ok [11:37] AntelopeSalad: i do not have a .node_modules directory in my home dir though, instead it's .npm [11:37] jacter has joined the channel [11:37] slaskis: i think npm 1.0 installs it in the /usr/local/lib/node folder by default... [11:38] slaskis: is your modules in there? [11:38] asabil has joined the channel [11:38] AntelopeSalad: that directory is empty except for a wafadmin folder [11:39] slaskis: try a `npm list -g` [11:39] tmpvar has joined the channel [11:39] slaskis: it should tell you which are installed and where.. [11:39] AntelopeSalad: ok, they are back 1 directory [11:40] AntelopeSalad: they are in /usr/local/lib/node_modules [11:40] slaskis: hmm yeah, mine is installed in /usr/local/lib/node_modules too [11:40] AntelopeSalad: but they are also in ~/.npm [11:41] slaskis: and it can't find global ones either [11:41] slaskis: so that's probably why :P [11:42] TomY has joined the channel [11:42] AntelopeSalad: so we need to add that path to node's paths? [11:42] cystbear: guys should express framework be located at native node directory? or not ? [11:43] slaskis: AntelopeSalad: as a test, start your node with this: NODE_PATH=/usr/local/lib/node_modules node [11:43] slaskis: works for me, i can require("npm") after that [11:44] AntelopeSalad: yep, me too [11:44] Charuru: hi guys [11:45] Charuru: how do you turn off websockets for chrome in socket.io? [11:45] Charuru: i remember eden telling me but i forgot :S [11:45] slaskis: AntelopeSalad: so you can set that in your .bashrc (or whatever you use) and it should work every time [11:45] AntelopeSalad: i wonder if we can do this too http://nodejs.org/docs/v0.3.1/api/path.html [11:46] davidcoallier has joined the channel [11:46] mscdex: old docs :O [11:47] slaskis: AntelopeSalad: this one describes how it finds the modules: http://nodejs.org/docs/v0.4.8/api/modules.html [11:47] AntelopeSalad: oops yeah, first google result heh [11:47] AntelopeSalad: i'm kind of curious, do you have an .npm folder in your home dir too? it contains the modules and an npm folder inside [11:48] slaskis: AntelopeSalad: yep i do [11:48] slaskis: i think that's the cache [11:49] AntelopeSalad: ah [11:50] slaskis: AntelopeSalad: yep: https://github.com/isaacs/npm/blob/master/doc/cache.md [11:51] mscdex: Charuru: i don't think there is a setting or command-line flag for that, but you could do something like "WebSocket = undefined;" before any other js code [11:53] AntelopeSalad: i'm still kind of retarded with linux, adding that to the .bashrc doesn't seem to work [11:53] frodenius has joined the channel [11:53] frodenius has joined the channel [11:54] Charuru: mscdex: thanks that disabled websocket, but chrome makes no attempt to my fallback xhr polling [11:55] tmpvar: Charuru, there is a way to specify allowed transports [11:55] tmpvar: umm.. [11:55] mscdex: Charuru: are you sure it's not trying to use flash sockets? [11:56] Charuru: transports: ['xhr-polling'] [11:56] Charuru: transports look like this [11:56] adambeynon has joined the channel [11:56] Charuru: tmpvar: yeah i remember eden telling me about some config [11:56] tmpvar: should force xhr polling [11:56] Charuru: it's on websockets unless i disable it with undefined [11:57] Charuru: at which point it doesn't try to connect at all [11:57] tmpvar: ok [11:57] chapel: hmm [11:57] tmpvar: so when you do a io.listen() [11:57] Yoric has joined the channel [11:57] chapel: can anyone test installing stylus with npm? [11:57] Yoric has left the channel [11:58] tmpvar: io.listen(server, { transports : ['xhr-polling'] }) [11:58] tmpvar: is that what you are doing? [11:58] tmpvar: Charuru ^^ [11:58] Charuru: nope, but i should i think :P [11:58] Charuru: will do that [11:58] tmpvar: yep [11:58] tmpvar: you should ;) [11:58] tmpvar: let us know [12:00] Charuru: tmpvar: no go chrome doesn't try to connect with xhr-polling [12:00] Charuru: firefox works though [12:02] tmpvar: Charuru, you can also pass a transports config on the client: https://github.com/learnboost/socket.io [12:02] tmpvar: read and weap or some such [12:03] Charuru: yeah i've been doing that [12:03] tmpvar: it might be time to gist [12:03] tmpvar: although, that should work [12:03] Charuru: was only setting the transport in the client, then you told me to do the set the server, so I did [12:03] tmpvar: and just a side conversation, why would you disable websockets? [12:03] Charuru: it's not working for certain countries [12:04] Charuru: I can't understand, but I've been trying to test [12:04] tmpvar: hrm [12:04] tmpvar: it's supposed to fall back [12:04] Charuru: i see in my logs they're trying to connect with websocket [12:04] Charuru: but they never do [12:04] tmpvar: weird [12:04] Charuru: yeah :S [12:06] pt_tr has joined the channel [12:07] felixge has joined the channel [12:07] felixge has joined the channel [12:10] ardcore has joined the channel [12:10] galaxywatcher has joined the channel [12:10] ardcore has left the channel [12:11] thalll has joined the channel [12:12] davidbanham has joined the channel [12:19] saschagehlich_ has joined the channel [12:20] razvandimescu: how can i get the request parameters when using express? [12:21] zeunix: any ideas on cpu core affinity for node child processes? specifically, regardless of why, best practice for keeping the child processes off the core the parent is on? [12:22] brettgoulder has joined the channel [12:22] tmpvar: zeunix, not sure that makes sense as stated [12:22] tmpvar: but i think i know what you are getting at [12:23] zeunix: so for example if you have four cores and 1 parent + 6 child processes, if the 6 children processes share three cores, maybe even maxing them out, but regardless they can never touch the core the parent is on [12:23] tmpvar: and i think the general answer is: it depends on how much work your main process is doing [12:23] zeunix: only the parent process has the ability to max that core out [12:24] mscdex: there can be only one! [12:24] tmpvar: zeunix, you'd have to rig that with your os [12:24] tmpvar: which means you'd need a deep understand of what is going on [12:25] tmpvar: right now, spawning child processes from node are _not_ locked to a core [12:25] zeunix: tmpvar: something like sched_setaffinity in Linux bound in a node addon? [12:25] neoesque has joined the channel [12:25] tmpvar: zeunix, not that I've seen [12:26] tmpvar: but I dont know everything ;) [12:26] zeunix: tmpvar: oh I was referring to: http://linux.die.net/man/2/sched_setaffinity [12:26] tmpvar: oh, i missunderstood.. that would be interesting [12:26] jtsnow has joined the channel [12:27] tmpvar: but i have not seen it done as of yet [12:27] zeunix: tmpvar: the point would be that if the children are misbehaving or on a runway spree the parent can easily shut them down or get stats on them without delay [12:28] zeunix: otherwise, if all 6 children can get access to any cores, the parent is at the mercy of getting it's time in [12:28] zeunix: I realize, not always the most efficient use of resources ;) [12:28] tmpvar: heh [12:28] tmpvar: I wouldn't really worry about the parent "not getting through" unless you are completely saturating the machine [12:29] zeunix: that's the point though, that in this case, it's very likely the machine will be completely maxed out at any given time [12:29] tmpvar: if that is your intention, then yes. core affinities is a good choice lol [12:29] jaket has joined the channel [12:30] tmpvar: zeunix, it is *always* a possibility [12:30] stagas_ has joined the channel [12:30] zeunix: tmpvar: well duh, but I mean a very likely probability. As in, 85% or more chance at any given moment [12:31] synkro has joined the channel [12:31] zeunix: tmpvar: setting the a controller process on a different box all together is the BEST choice, but I'm looking for flexibility in a single box environment [12:31] tmpvar: you'll probably want to write an addon in that case [12:32] tmpvar: i havent seen anything that does this [12:32] zeunix: tmpvar: agreed, just curious if anyone had thought about this prior and had some genius ideas on a cross-platform solution. :) [12:33] zeunix: I'll ask ryan monday on his thoughts. [12:33] tmpvar: cool [12:33] zeunix: he's pretty good at poking holes in most of the bs that spews from my mouth [12:33] tmpvar: heh [12:34] zeunix: I have a tendency to use an air hammer to hang a picture frame if ya know what I mean [12:35] zeunix: mscdex: what did you mean btw? [12:35] temp01 has joined the channel [12:36] zeunix: razvandimescu: they're passed just like using raw node.js as the first argument in your .get() callback [12:36] christophsturm has joined the channel [12:37] zeunix: app.get('/', function(req, res){ // use them }); [12:37] mscdex: zeunix: sorry, highlander reference ;) [12:37] tmpvar: lol [12:37] kriszyp has joined the channel [12:37] zeunix: haha! [12:38] tmpvar: hey there, zyp [12:38] zeunix: mscdex: sorry it's 5:30am I'm so not prepared for highlander references! ;) [12:38] mscdex: it's 8:40am here :) [12:38] zeunix: touché [12:38] mscdex: that means it's time to go to sleep [12:38] tmpvar: mscdex, we roll hard. [12:39] tmpvar: mscdex, thats a bad idea.. [12:39] zeunix: mscdex: totally. I'm thinking about sleep myself. [12:39] mscdex: been working on this pandaboard all night [12:39] tmpvar: 1 more hour (10) and its downhill [12:39] mscdex: yeah inverted sleep schedules suck [12:39] jtsnow has joined the channel [12:39] tmpvar: yes. [12:39] mscdex: i was back on track for awhile... but yeah [12:40] zeunix: glad I'm not the only one. [12:40] tmpvar: well good luck, ill be around :) [12:40] zeunix: I have to go round the horn when I get inverted [12:41] zeunix: mscdex: any thoughts on my affinity predicament? [12:42] tmpvar: exactly. [12:42] mscdex: no, i've never had to really worry about that yet [12:42] trotter has joined the channel [12:42] zeunix: Maybe some how setting priority to the parent process is a better alternative? [12:42] tmpvar: mscdex, what is pandaboard [12:43] mscdex: tmpvar: an open development board [12:43] tmpvar: project managagement such and such? [12:43] zeunix: tmpvar: hahaha come on! use the google machine ;) [12:43] tmpvar: fine. [12:43] saschagehlich_: is there an easy non-evented xml parser for node.js? every module I see here is doing onStartElement and shit like that [12:43] zeunix: tmpvar: I kid, I kid. [12:43] mscdex: tmpvar: no, it's similar to the beagleboard [12:44] tmpvar: oh shit.. [12:44] tmpvar: nice [12:44] mscdex: tmpvar: except it's much better hardware-wise [12:44] mscdex: ;) [12:44] tmpvar: interesting [12:44] tmpvar: got the soldering iron out? [12:44] mscdex: gonna try to get node running on it [12:44] bpierre has joined the channel [12:44] tmpvar: ah [12:44] mscdex: haven't needed one yet heh [12:44] akshatj has joined the channel [12:44] tdegrunt has joined the channel [12:44] JoshC1 has joined the channel [12:44] mscdex: saschagehlich_: why would you want a non-evented one? [12:45] saschagehlich_: mscdex: it's way easier to handle: i saw a ruby one working with css-like selectors [12:45] saschagehlich_: that was quite cool and easy to use [12:45] jetienne: how to bind errors in mongoose ? [12:45] tmpvar: thats really cool, but a bit too much hardware for me. im known for burining out 555's [12:45] mscdex: saschagehlich_: well, libxmljs has a sync parser [12:45] tmpvar: s/burining/burning [12:46] saschagehlich_: kk [12:46] mscdex: tmpvar: i'm not really a low level hardware guy either, but it comes with pretty much every one would need onboard and it runs ubuntu, android, fedora, meego, etc [12:46] mscdex: s/every/everything/ [12:47] tmpvar: oh, weird [12:47] tmpvar: s/weird/nice [12:48] adambeynon has joined the channel [12:48] opennix has joined the channel [12:49] tmpvar: latest community video makes me sad. [12:50] zeunix: i hate perl [12:50] jamescarr: anyone here using mongoose-auth? [12:50] zeunix: s/hate/love [12:50] zeunix: ;) [12:51] jetienne: jamescarr: btw considere everywhere auth [12:51] mscdex: tmpvar: eh? [12:51] jetienne: jamescarr: i will use it super soon [12:52] stride: tmpvar: community video? [12:52] tmpvar: nm me [12:52] xsyn: So, the stylus screencast says there's a tutorial [12:52] tmpvar: well, i thought it was a product vid, which put me off [12:52] xsyn: stylus-tutorial, I can't find it anywhere though [12:52] tmpvar: because the guy was stumbling pretty hard on his words [12:53] tmpvar: but then i realized it was a community video.. and yeah. done. [12:56] zeunix: tmpvar: poke holes in this hack, using exec to renice (http://en.wikipedia.org/wiki/Nice_(Unix)) the parent process to a higher priority than the children? [12:57] tmpvar: smells like bullshit to me.. reads [12:57] tmpvar: anyhow, I think you might be worrying to much ;) [12:58] tmpvar: if you are saturating a machine [12:58] tmpvar: get a nother [12:58] tmpvar: s/a nother/another [12:58] tuhoojabotti: If I have an object {page_title: {index: "Foo"}} how can I get it like .page_title[cur_pos] ? [12:58] zeunix: tmpvar: It isn't exactly something I can control in this case haha [12:58] tuhoojabotti: I can't just .page_title.cur_pos [12:58] mscdex: tuhoojabotti: what is cur_pos? [12:58] tuhoojabotti: string [12:58] tuhoojabotti: of current position [12:58] tuhoojabotti: like index [12:58] tmpvar: zeunix, what are you doing? [12:59] zeunix: ah snap, gotta have root privileges to set the niceness to anything lower so obviously exec isn't gonna work. [12:59] tuhoojabotti: it's like .page_title.index, but I need .page_title."index" [12:59] mscdex: tuhoojabotti: that should work just fine: var cur_pos = 'index'; console.log(obj.page_title[cur_pos]); [12:59] tuhoojabotti: oh [13:00] tuhoojabotti: I must've done something else wrong then, thanks. :P [13:00] zeunix: tmpvar: the project's just something I'm whipping up for a challenge. None of my employers will let me use node in production yet, so I'm forced to tinker. [13:01] mscdex: zeunix: you sneak it in, that's how i roll [13:01] mscdex: i'm half-kidding ;) [13:01] tmpvar: lol [13:01] zeunix: mscdex: "Hey, why is the web server running so much quicker these days?" [13:02] tmpvar: "well kids, its running node, thats why" [13:02] mscdex: "Make it run slower like it used to!" [13:02] zeunix: mscdex: "I'm a great magician" [13:02] mscdex: "Hey, why does the web server seem asynchronous lately?" [13:02] mscdex: :p [13:02] tmpvar: mscdex, "and for my next trick!" -> poof -> a bunny [13:03] tmpvar: heh [13:04] zeunix: Anyone seen Kung Pow? [13:05] zeunix: thaaaaat'd be a NO [13:05] tmpvar: favorite movie? [13:06] tmpvar: mscdex, dont face plant into the open circutry [13:06] zeunix: tmpvar: are you asking for my favorite movie or asking if Kung Pow is mine? haha [13:06] unomi has joined the channel [13:07] tmpvar: the later, lol.. making fun ;) [13:07] tmpvar: latter( [13:07] zeunix: tmpvar: nah, but it is a good movie to watch while sleep deprived [13:07] NetRoY has joined the channel [13:08] SamuraiJack has joined the channel [13:08] tmpvar: cant do it [13:08] tmpvar: not today [13:08] tmpvar: on a mission [13:08] zeunix: btw for anyone who cares, to solve I'm just going to write an addon with bindings to setpriority(PRIO_PROCESS, 0, -20); [13:08] pen has joined the channel [13:09] zeunix: and require the node instance to be started with root privileges [13:09] maushu has joined the channel [13:09] tmpvar: :( [13:09] temp01 has joined the channel [13:09] tmpvar: what are you? some sort of apache? [13:10] zeunix: tmpvar: gotta do whatcha gotta do [13:10] zeunix: maybe I'll then get around to making the children run with lower privileges.. [13:18] zeunix: interesting. using process.setuid() only seems to work at parse time. setting a delay on it fails to register the change, but doesn't throw any errors. [13:20] markwubben has joined the channel [13:21] zeunix: ryah: when you get in, is this ^^ normal? [13:23] temp01 has joined the channel [13:24] jetienne: zeunix: write a small code to test it [13:24] dyer has joined the channel [13:24] dyer has joined the channel [13:26] cystbear: guys, how to fix "command not found: express" [13:27] guybrush: sudo npm install -g express [13:27] cystbear: I have installed node.js and express (via npm install express) [13:27] cystbear: what does mean "-g" [13:27] tmpvar: cystbear, without sudo should work [13:27] guybrush: global [13:27] tmpvar: depending on where you setup node, i suppose [13:28] cystbear: I see, what is I have installed node + npm + express under root user, is it okay ? [13:28] guybrush: well if you have permissions for `npm config get prefix` then you dont need sudo :) [13:28] guybrush: cystbear: everything is ok [13:29] cystbear: so, should I try install express without sudo, under regular user? [13:29] cystbear: or just add "-g" flag? [13:30] opennix has left the channel [13:30] guybrush: the -g tells npm to install the package into the global prefix [13:30] tmpvar: cystbear, try npm install -g express [13:30] opennix has joined the channel [13:30] tmpvar: if it doesnt work, then use sudo [13:30] cystbear: doing... [13:31] TomY has joined the channel [13:31] cystbear: hooreay [13:31] cystbear: *hooray [13:31] cystbear: -> # express --version [13:31] cystbear: 2.3.10 [13:31] tmpvar: yay for winning [13:32] cystbear: could you please hint me a bit closer what does mean "-g" flag, what is global ? [13:32] zeunix: jetienne: weird. In top, it shows the correct user, but in Activity Monitor on a Mac, it does not. I'll have to test to see if it's actually just an Apple AM bug or node. Most likely Apple's bad it seems. I'll file a bug report if it turns up the former. Thanks! [13:32] cystbear: @tmpvar could you please hint me a bit closer what does mean "-g" flag, what is global ? [13:33] broofa has joined the channel [13:33] tmpvar: cystbear, it means it will install the package globally [13:33] zeunix: cystbear: here's a good explanation: http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/ [13:33] tmpvar: in my case, I have node installed in ~/local/bin [13:33] tmpvar: yes, zeunix [13:33] tmpvar: nice [13:34] tmpvar: zeunix, so, i've seen this setgid issue before [13:34] tmpvar: i started looking around then got sidetracked with some nodeunit tests im supposed to be writing [13:34] zeunix: tmpvar: is it really not changing the user or just an Apple bug? [13:35] edude03 has joined the channel [13:35] tmpvar: i dont think its an apple bug [13:35] cystbear: thanks, guys, you are welcome to #symfony-dev channel at freenode IRC server [13:35] zeunix: tmpvar: cause if I just change the user at parse time, apple's Activity Monitor goes from root to 501, but if I delay it in a setTimeout or whatever it doesn't change. BUT I got curious, and in top it DOES register the change [13:35] tmpvar: weird [13:36] tmpvar: cystbear, php? :( [13:36] tmpvar: tears [13:36] zeunix: hahaha I was thinking the same thing [13:36] zeunix: I'm a dayjob php'er [13:36] zeunix: so badly looking for a node full time gig but it's a little early [13:37] tmpvar: if you are awesome, and only if, I'd hit up the nodejitsu guys [13:37] tmpvar: ;) [13:37] temp01 has joined the channel [13:37] maushu has joined the channel [13:37] zeunix: tmpvar: I'm gonna sharpen my chops before considering them ;_ [13:37] zeunix: ;) [13:39] TomY has joined the channel [13:43] cystbear: @tmpvar yup PHP, but it not so ugly as somebody thinks, especially Symfony2, by the way thanks a lot for hinting [13:43] tmpvar: i came from php, never again. [13:44] Bj_o_rn has joined the channel [13:44] cystbear: how can know? I am very young developer only 1,5 years of experience, few days ago was at JS master classes and now want learn node [13:45] zeunix: I actually personally (that's the key) like PHP. I like Javascript better, but prior to node/rhino being around, for me it's either PHP or Java and I ain't jumping through the Java hoops for just any website. [13:45] coreb has joined the channel [13:46] cystbear: @zeunix, I got your position [13:46] zeunix: node is very young and there aren't a ton of jobs open for it (I know, I'm looking) so most of us just do it for a hobby or at a job where our primary gig is in another platform. [13:46] markwubben has joined the channel [13:47] zeunix: cystbear: what I mean is, I wouldn't put all your eggs into the node basket JUST yet. Learn it, hell yes please do. But it shouldn't be your one and only. [13:47] maushu has joined the channel [13:47] zeunix: anyone and everyone gripes about one language or another, but the facts remain that the ability to whip up a mean PHP is in high demand in most development circles. [13:48] cystbear: yes, you are right, just let me repeat old good thing: "if you good, you are good in all sides" [13:48] zeunix: cystbear: not sure what you mean, cause that's sort of what I was implying :p [13:48] tmpvar: java + security clearance [13:48] cystbear: @zeunix we are learn NOT languages, we learn approaches [13:48] tmpvar: if you want money that is [13:49] tmpvar: otherwise, you play the internet lottery [13:49] tmpvar: ;) [13:49] zeunix: tmpvar: second that, if you can get into it, and you're not a complete retard you're golden. [13:49] tmpvar: haha, read your gang of fours [13:49] tmpvar: tarded be gone [13:50] zeunix: I'm constantly surprised at the number of people in our field that just don't like programming. [13:51] zeunix: the 9-5ers [13:52] zeunix: shit it's almost 7 [13:52] zeunix: lame [13:52] tmpvar: you are approaching the point of no return [13:52] tmpvar: 8 minutes until 10 [13:52] tmpvar: going strong :) [13:53] zeunix: are there any node meet ups happening soonish? I'm traveling the Amtrak next week for the next three months, looking for some shit to fill my schedule. [13:55] davidbanham has joined the channel [13:56] tmpvar: hrm [13:57] zeunix: the other day some guys were talking about a midwest one or something [13:57] tmpvar: hrm [13:59] akshatj has joined the channel [13:59] zeunix has left the channel [13:59] zeunix has joined the channel [14:04] temp01 has joined the channel [14:05] augustl: anyone here know of some node.js user groups in San Francisco? [14:06] augustl: looking for something to do in between WWDC sessions :) [14:11] olegp has joined the channel [14:13] broofa has joined the channel [14:15] trotter has joined the channel [14:15] jaw6 has joined the channel [14:15] tuhoojabotti: http://dev.tuhoojabotti.com/index/hello-world first time ever my site works without clientside js :D [14:16] tuhoojabotti: kind of [14:16] broofa has joined the channel [14:16] tuhoojabotti: And it even uses mysql instead of plain text files :D [14:17] zeunix: xD [14:17] tuhoojabotti: hi-tech [14:18] ebryn_ has joined the channel [14:20] zeunix: tuhoojabotti: just a friendly heads up, strange rendering issue with the font of your h2 during the css transition (Safari) [14:20] zeunix: :) [14:20] tuhoojabotti: You what now? [14:20] zeunix: when I go to this page: http://dev.tuhoojabotti.com/best-of/ [14:20] madsleejensen has left the channel [14:21] tuhoojabotti: What transition? [14:21] tuhoojabotti: :o [14:21] tuhoojabotti: screenshot pl0x [14:21] zeunix: in Safari, the h2 "Welcome to the land.." starts from invisible small and scales to large, BUT the font isn't rendered as sans-serif until it's done [14:21] tuhoojabotti: zeunix: also can you test if my main page works with safari, I think it had some problem, if you have error console, please pastebin (I didn't manage to get it) [14:21] rfay has joined the channel [14:22] tuhoojabotti: lol :D [14:22] tuhoojabotti: There should be no transition ;D [14:22] tuhoojabotti: not yet [14:22] zeunix: no errors or warnings [14:22] tuhoojabotti: Does it work? [14:22] tuhoojabotti: cliking the links etc? [14:22] tuhoojabotti: "links" :P [14:22] zeunix: the transition only happens with JS disabled [14:23] tuhoojabotti: huh [14:23] tuhoojabotti: I wonder what that is [14:23] tuhoojabotti: Are you sure you're talking about dev site now? [14:23] tuhoojabotti: There should be no js on the dev site, other than some libs included for later use [14:25] tuhoojabotti: to be honest, I don't understand the problem at all. :P [14:25] Corren has joined the channel [14:25] zeunix: one sec [14:26] jxck has joined the channel [14:26] zeunix: http://postimage.org/image/ez7y7ip0/ [14:26] tuhoojabotti: :o [14:26] zeunix: it transitions from hidden to normal position [14:27] tuhoojabotti: lol [14:27] zeunix: while doing so, isn't rendering the font [14:27] tuhoojabotti: way to go Safari.. [14:27] tuhoojabotti: :P [14:27] zeunix: done via -webkit-transition: all 0.8s ease-in-out; it seems [14:27] zeunix: only does it while JS is off [14:27] gmonnerat has joined the channel [14:27] tuhoojabotti: I call it safari bug [14:27] beriberikix has joined the channel [14:27] gmonnerat has left the channel [14:28] tuhoojabotti: it shouldn't transition from initial css [14:28] markwubben has joined the channel [14:29] tuhoojabotti: But I am planning on adding transitions [14:29] tuhoojabotti: Like on the main site [14:29] zeunix: I think it's probably a modernizer bug [14:29] adambeynon has joined the channel [14:29] zeunix: or excuse me, something modernizer FIXES [14:29] tobiassjosten has joined the channel [14:30] tuhoojabotti: Yeah [14:30] tuhoojabotti: could be [14:30] markwubben has joined the channel [14:30] c4milo1 has joined the channel [14:30] tuhoojabotti: I don't support Safari though, because Safari doesn't support me. :P [14:30] zeunix: are you using sizzle still? [14:30] zeunix: hah [14:30] tuhoojabotti: I use jQuery and Modernizr [14:30] tuhoojabotti: jQ has sizzle I guess [14:30] zmbmartin: What is the proper statuscode for a json response with a validation error? [14:31] tuhoojabotti: New version will work without js and apply eye-candy with it. :P [14:31] zeunix: zmbmartin: 400 [14:32] dmojoryder has joined the channel [14:32] tuhoojabotti: zeunix: But you said the main site works with Safari? [14:32] tuhoojabotti: aka www.tuhoojabotti.com [14:32] zmbmartin: zeunix: cool thanks [14:32] zeunix: oh I don't know, I didn't go there [14:32] tuhoojabotti: :P [14:32] tuhoojabotti: Please, test :P [14:32] zeunix: tuhoojabotti: neat [14:33] tuhoojabotti: Thanks [14:33] zeunix: I bet it looks like dogshit in IE [14:33] tuhoojabotti: works quite well on IE9 ;) [14:34] zeunix: not that you're a bad coder, but that doing cool shit like this in IE is impossible [14:34] tuhoojabotti: (Which doesn't acutally run on this machine, just crashes on load) [14:34] zeunix: well, IE usually means IE6-8 [14:34] tuhoojabotti: :P [14:34] kiyoura has joined the channel [14:34] mynyml has joined the channel [14:34] zeunix: at least in my circles, IE9 doesn't exist quite yet ;_ [14:34] tuhoojabotti: Master plan: do not support IE. [14:34] zeunix: if it doesn't show up in the logs, it doens't exist ;) [14:34] tuhoojabotti: ;-) [14:34] kiyoura: has anyone tried emerging node.js/v8 on gentoo? [14:35] tuhoojabotti: zeunix: I think it works on IE8 but no rounded borders ofc. [14:36] azeroth_ has joined the channel [14:37] zeunix: tuhoojabotti: but yes, seems good to me in Safari. [14:37] tuhoojabotti: Cool [14:37] tuhoojabotti: It didn't used to work [14:38] zeunix: are you a windows user or something> [14:38] jakehow has joined the channel [14:39] kiyoura has left the channel [14:39] tuhoojabotti: ubuntu, win7 ircing via debian shell. [14:39] dipser has joined the channel [14:39] tuhoojabotti: Mostly on Windows now, because of the goddamn unity. :D [14:40] daglees has joined the channel [14:41] zeunix: I think tmpvar finally bit the dust hahah 10am was his limit [14:41] devrim has joined the channel [14:41] tuhoojabotti: hmm? [14:42] tuhoojabotti: ah [14:42] _aron has joined the channel [14:42] zeunix: guy who was on here earlier in our discussions [14:42] AvianFlu has joined the channel [14:42] tuhoojabotti: Yeah [14:42] tuhoojabotti: I have ignored join/part/quit messages [14:42] zeunix: he's in NY and I'm in CA [14:42] m0neyman has joined the channel [14:42] tuhoojabotti: And I'm in FI [14:42] zeunix: nah he's still online, but he's been idle for 45 minutes [14:43] zeunix: we were just talking about how once he reaches 10am he's past the point of no return [14:43] tuhoojabotti: I see [14:43] zeunix: but that's in for me. I'm running on E. time to pop in a movie and pass the fuck out. [14:43] zeunix: later fellas. [14:44] tuhoojabotti: bye [14:44] Corren has joined the channel [14:44] zeunix: AWAY [14:44] zeunix: fuck, wrong client <-- noob [14:44] tuhoojabotti: löl [14:45] jonasen has joined the channel [14:47] kaichenxyz has joined the channel [14:50] temp01 has joined the channel [14:53] tikva has joined the channel [14:53] abraham has joined the channel [14:54] NetRoY has joined the channel [14:55] rpj8 has joined the channel [14:55] wookiehangover has joined the channel [14:55] tikva has joined the channel [14:57] iksik has left the channel [14:57] iksik has joined the channel [14:58] cafesofie has joined the channel [15:01] Aron has joined the channel [15:02] xandrews has joined the channel [15:02] timmywil has joined the channel [15:03] paul_k has joined the channel [15:04] gozala has joined the channel [15:05] derencius has joined the channel [15:09] jacter has joined the channel [15:13] unomi has joined the channel [15:14] tdegrunt has joined the channel [15:17] dyer has joined the channel [15:19] Country has joined the channel [15:20] adambeynon has joined the channel [15:24] ack has joined the channel [15:26] yogurt_truck has joined the channel [15:27] cystbear has joined the channel [15:27] jtrudeau has joined the channel [15:31] blueadept has joined the channel [15:32] yumike has joined the channel [15:32] rfay has joined the channel [15:33] Aria has joined the channel [15:34] Yoric has joined the channel [15:35] febits has joined the channel [15:36] philtor has joined the channel [15:36] Yoric has left the channel [15:37] viz has joined the channel [15:40] markstory has joined the channel [15:40] apejens has joined the channel [15:42] Xano has joined the channel [15:42] apejens: I keep getting a "terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct NULL not valid" and trying to google does not offer much help [15:42] apejens: anyone have any tips for where to start diging? [15:44] dhasenan: apejens, it's either a bug in v8 or a bug in node or (most likely) a bug in some native plugin. [15:45] newy has joined the channel [15:45] dhasenan: * Have you installed anything via npm? [15:45] apejens: yes [15:45] dhasenan: * Try to come up with a minimal test case. [15:45] jkreeftmeijer has joined the channel [15:46] febits has joined the channel [15:46] dhasenan: When you have a minimal test case, you can try it on a clean install -- same node, guarantee no plugins. [15:46] aliem has joined the channel [15:46] apejens: that will be hard, as all I do is use plugins (mainly itteh) [15:46] apejens: err, gitteh [15:47] apejens: and mongoose [15:47] cm: I'm having some generic trouble with modules [15:47] cm: This code is highly minified, but you can see the problem: http://pastebin.com/TftYfv49 [15:47] cm: How do I actually get it to use the updated handler.js? [15:48] dhasenan: apejens, there's a hell of a lot of C++ in node-gitteh. It's probably the source of your troubles -- probably a stray 'exit()' in an exception handler. [15:48] apejens: dhasenan: ok [15:49] apejens: seems you are right, if I don't walk revisions at all, it does not die [15:50] apejens: https://github.com/libgit2/node-gitteh/issues/14 [15:50] apejens: hah [15:50] apejens: dhasenan: thanks for the help :) [15:50] jslatts has joined the channel [15:50] tuhoojabotti: I use for(p in ma_array){} p is index, so how can I test wether the p is the first index, p == 0 works, but jslint hates that. :D [15:51] xandrews has joined the channel [15:52] ebryn has joined the channel [15:53] akshatj has joined the channel [15:53] ebryn has joined the channel [15:54] bartt1 has joined the channel [15:54] dhasenan: tuhoojabotti, you can tell jslint to shove it. [15:54] tuhoojabotti: But I bet there's a neat solution. :3 [15:54] strmpnk has joined the channel [15:55] x4rMa has joined the channel [15:56] boaz has joined the channel [15:56] akshatj has joined the channel [16:01] adnam: how should i calculate the Content-Length of an utf8 string when sending http requests? [16:02] chapel: string.length [16:03] adnam: isn't that the number of characters and not the actual length? [16:03] tuhoojabotti: Yeah [16:03] bartt has joined the channel [16:03] chapel: as far as http is concerned, its what is needed [16:03] chapel: afaik [16:03] tuhoojabotti: Isn't content-lenght in bytes? [16:04] adnam: chapel: seems not, i was using .length but it failed [16:04] adnam: tuhoojabotti: right [16:04] tuhoojabotti: Why are you sending content-lenght? :D [16:04] adnam: should i not send it? [16:04] tuhoojabotti: The easy solution :D [16:05] adnam: nodejs docs say "Do remember to include the Content-Length header if you plan on sending a body." [16:05] tuhoojabotti: http://www.inter-locale.com/demos/countBytes.html perhaps this [16:05] hellp has joined the channel [16:05] tuhoojabotti: dunno [16:05] tuhoojabotti: wtf-8 is bullshit [16:05] rpj8: adnam: res.writeHead(200, {'Content-Type: 'text/plain'}); [16:05] mandric has joined the channel [16:06] tuhoojabotti: That's what I do. :p [16:06] rpj8: adnam: p. sure that's what they mean by that [16:06] alex_b has joined the channel [16:06] tuhoojabotti: Perhaps [16:06] tuhoojabotti: Works for me [16:06] rpj8: tuhoojabotti: seeing as that's how it is in every beginner tutorial, yeah I think that's what it means :p [16:07] tuhoojabotti: http://dev.tuhoojabotti.com/index/ works :P [16:07] adnam: reason i'm wondering is i found a bug in a lib stemming from incorrect content-length [16:08] tuhoojabotti: I found a bug in dust that it doesn't work with the latest node [16:08] tuhoojabotti: Well loadSource doesn't [16:09] rputikar has joined the channel [16:11] adambeynon has joined the channel [16:11] Schmallon has joined the channel [16:13] catshirt has joined the channel [16:13] temp01 has joined the channel [16:13] ximo has joined the channel [16:13] ximo has left the channel [16:14] herbySk has joined the channel [16:17] newy has joined the channel [16:17] x4rMa: tuhoojabotti, do your dev site using mysql ? [16:17] tuhoojabotti: Yeah :3 [16:17] tuhoojabotti: I haven't tested it much yet [16:18] ximo has joined the channel [16:18] tuhoojabotti: x4rMa: Found a hole? [16:18] tuhoojabotti: :3 [16:18] segaway has joined the channel [16:18] x4rMa: nop yet [16:18] x4rMa: :) [16:18] tuhoojabotti: :) [16:19] temp01 has joined the channel [16:19] tdegrunt has joined the channel [16:20] Corren has joined the channel [16:23] tuhoojabotti: "Don't make functions within a loop" [16:23] tuhoojabotti: How should I handle callbacks then :D [16:24] chapel: use a counter, and call the cb when its done :) [16:24] pifantastic has joined the channel [16:25] adnam: who says not to do that? [16:25] thalll has joined the channel [16:25] tuhoojabotti: jslint :D [16:26] adnam: ehm, but why? [16:26] tuhoojabotti: It's jslint [16:26] tuhoojabotti: It'll make you cry. [16:26] tuhoojabotti: ;) [16:26] adnam: i bet :-( [16:26] tuhoojabotti: Only 5 errors now :D [16:26] tuhoojabotti: 2 about eval and some weird stuff [16:26] kriszyp has joined the channel [16:27] adnam: oh, well maybe it does make sense [16:27] tuhoojabotti: Perhaps. [16:27] adnam: the are talking about the statement syntax [16:27] tuhoojabotti: Yeah [16:27] adnam: since f(); function f() {} is valid [16:27] chapel: eh, jslint is a waste of time imo [16:28] tuhoojabotti: chapel: It did help me fix some indentation syntax, which makes the code more readable. [16:28] tuhoojabotti: Now it's so beautiful :) [16:29] adnam: i read through the docs a few years ago and that gave some best practices and that was enough for me [16:30] xsyn has joined the channel [16:30] tuhoojabotti: "I open JSLint and I jizz in my pants." [16:30] chapel: the only thing that would be nice is catch typos [16:31] pdelgallego has joined the channel [16:32] Aria has joined the channel [16:32] slickplaid: I use jslint when I know I have a syntax error but can't find it. Other than that, hardly ever. [16:32] tuhoojabotti: I didn't use to. [16:32] supster has joined the channel [16:32] tuhoojabotti: is it didn't use or used to? [16:32] tuhoojabotti: damn [16:33] saschagehlich has joined the channel [16:33] slickplaid: I'm just glad it has the disclaimer that it'll hurt your feelings. Cause it will. :( [16:33] tuhoojabotti: :P [16:36] jslatts: whats your favorite linter? [16:36] SubStack: linters -_- [16:36] tuhoojabotti: ;D [16:36] jslatts: i am a fan of jshint [16:36] SubStack: ACTION knows what the fuck he's doing [16:36] NetRoY has joined the channel [16:36] SubStack: I don't need a tool to nag at me [16:37] tuhoojabotti: If it makes you feel good. [16:37] dget has joined the channel [16:37] jslatts: SubStack: i have no idea what I am doing :) [16:38] jslatts: i don't even take a shower unless jslint tells me i stink [16:38] jslatts: it runs my life [16:40] tim_smart has joined the channel [16:40] chapel: lol [16:42] Corren has joined the channel [16:42] Mrfloyd has joined the channel [16:43] NetRoY has joined the channel [16:46] rfay has joined the channel [16:48] mjr_ has joined the channel [16:49] gozala has joined the channel [16:50] lukstr: jslatts: any luck? [16:50] cpolis has joined the channel [16:50] jslatts: lukstr: yes and no actually. you were dead on with the threading issue. I implemented the libev notification and got it working.... [16:50] sveimac has joined the channel [16:51] SamuraiJack has joined the channel [16:51] jslatts: lukstr: however, it works in a crappy way. I have to block the executation of the main thread in order to make the external library happy because it uses a Qt event loop [16:51] jslatts: lukstr: so essentially, I can run the external lib as a module, but it blocks node until it finishes its crunching. [16:52] lukstr: jslatts: hmm there _should_ be away to get around that with libev... [16:52] lukstr: what call is blocking? [16:52] jslatts: lukstr: well, the problem is that QtCoreApplication refuses to start outside of main(), so I can't stick it in a pthread [16:52] lukstr: bahah [16:52] jslatts: lukstr: and if I start it up inside of main(), it takes over and block [16:52] jslatts: s [16:52] jslatts: it sucks. I hate qt right now [16:53] lukstr: are you integrating v8 into a Qt app? [16:53] lukstr: how is node involved? [16:53] jslatts: lukstr: so, we have this vendor who gave us this implementation of a multi-threaded algorithm. we want to use it on a server instead of a workstation [16:53] Mrfloyd has joined the channel [16:54] jslatts: lukstr: so I am trying to wrap it as a node module so we can throw it up on an EC2 or similar and let it crunch away [16:54] jslatts: lukstr: but their implementation assumes a full Qt stack and I can't get at their source [16:54] andihit has joined the channel [16:54] johnm1234 has joined the channel [16:55] jslatts: lukstr: I was hoping to shunt it all off to a thread and let it call node back when it was done, but thats not looking so good right now [16:55] lukstr: maybe you should fork [16:55] jslatts: lukstr: i am lurking in the qt channel to see if I can get answers [16:56] jslatts: lukstr: will fork let me have a new main() ? [16:56] ExsysTech has joined the channel [16:57] lukstr: jslatts: hmm could you build an external tool and exec it? [16:57] sgentle has joined the channel [16:57] andihit: I want to start with node.js (and maybe express), but I don't know what I should make which requires high scalability...any ideas? :) [16:58] jslatts: andihit: porn site! [16:58] andihit: oh, come on, there are plenty of that already ;) [16:58] madzak: do they run on node? [16:58] jslatts: lukstr: i guess i could. [16:59] igl: make a multiuser canvas app [16:59] igl: lots to learn [16:59] jslatts: lukstr: maybe forking will work though, i am looking into that [17:00] andihit: igl: yeah, that would be an idea, some sort of multiplayer online game in JS...but I somehow don't like to program games atm...want to create some webapp...but not one 08/15 webchat [17:00] raidfive has joined the channel [17:00] TomY has joined the channel [17:01] thalll has joined the channel [17:01] NetRoY has joined the channel [17:01] Viper-7 has joined the channel [17:02] jslatts: andihit: you don't need to make something that has to scale to learn node. it could be something that simply benefits from asynchronous operation. think any real time application [17:02] adambeynon has joined the channel [17:03] andihit: jslatts: yes, for learning I could make some stuff which nobody uses and doesn't bring any value. but it would be much more fun to make something that actually brings value to users ;) [17:03] captain_morgan has joined the channel [17:03] pt_tr has joined the channel [17:03] andihit: jslatts: could you tell me some real time applications? besides real-time user tracking and chats? [17:03] jslatts: andihit: i didn't say not to bring value. I just said it doesn't have to be something that needs to scale to a bazillion concurrent users [17:04] jslatts: andihit: anything w/ stocks. project management applications, games (which you don't like) [17:05] AvianFlu has joined the channel [17:05] jslatts: andihit: build a web-based point of sale system for retailers and update inventories in real time :) [17:05] jslatts: then sell it and give me half [17:05] coderendezvous has joined the channel [17:06] c4milo has joined the channel [17:07] andihit: would be interesting, but I'm not familiar with that terms..do you mean for example some local shop which tracks the sales in real time? [17:07] jslatts: yes, handles the checkout process, feeds the data back to a central server [17:08] Aria: Actually PoS systems are a real need. Web-and-hardware-based, both. More and more businesses are integrating a web presence, and the software that exists for it is abominable. [17:08] Aria: If there were two of me, one of me would be writing such a beast. [17:08] jasonmcleod has joined the channel [17:08] Aria: Lots of fine points that make it a hard task, though the core code doesn't have to be that complex. [17:08] Aria: Lots of user interface issues. [17:08] jslatts: yep. the "hard" part about that is making it useful across a lot of different business types [17:09] jslatts: maybe pick a niche (pet stores) and optimize to them first [17:09] matjas has joined the channel [17:09] Aria: Well, the other hard part is dealing with locale-specific laws. [17:09] jslatts: ugh [17:09] fmeyer has joined the channel [17:09] Aria: Three or four levels of taxation, and various items are exempt at different levels. [17:09] jslatts: and maybe also not crashing :) [17:09] dgathright has joined the channel [17:09] Aria: Shipping restrictions. [17:09] eventualbuddha has joined the channel [17:10] andihit: but would you program such a large project in JS? [17:10] sechrist has joined the channel [17:10] Aria: And then, for a PoS, there's also an uptime problem: Crashing mid sale -- hardware included -- needs a fallback plan simple enough for only partially-trusted employees to use. [17:10] jslatts: andihit: you _could_ :) [17:10] Aria: andihit: I'd certainly not do it in a less flexible language! [17:10] madzak: ^ agreed [17:10] Aria: And speed is NOT a concern. Unless you totally fuck up algorithms, it'll be fast enough. [17:11] jslatts: maybe a bit large of a problem for a single dev [17:11] Aria: Orders are never 10,000 items. A day's sales, even in a big grocery, aren't even that big. [17:11] andihit: I like python for that stuff. but then it would has nothing to do with node.js, does it? or maybe some core with python (REST webservice) and node.js/express as front-end [17:11] Aria: I could, in a year, probably put together such a package. Working 40 hour weeks. [17:11] madzak: Aria: could be if you setup partners who batch post orders at the end of the month [17:11] Aria: andihit: I'd use node myself, but any language is possible. [17:11] Aria: madzak: Okay, there's that. Though why you'd wait 'til month-end is beyond me. The world of business needs to get AWAY from batching. [17:12] andihit: my problem isn't node, it's the OOP of JS ;) [17:12] madzak: Aria: agree'd ;) [17:12] Aria: This isn't 1972 anymore. [17:12] jslatts: andihit: go watch crockford and be enlightened [17:12] jslatts: its plenty OOP [17:12] Aria: andihit: Turns out that OOP is only one technique, and not always the best one ;-) [17:12] madzak: we need to make realtime a buzzword [17:12] jslatts: RT [17:12] jslatts: oh.. is your software RT 2.0? [17:12] Aria: "RT" is overloaded. Request Tracker and Retweet got there in the popular mindshare first. [17:13] jslatts: lol [17:13] mhausenblas has joined the channel [17:14] catshirt has joined the channel [17:14] mikeal: how do we add dtrace probes to our own code [17:15] mikeal: the calls that are in core/lib don't work [17:15] Aria: It's interesting: I'm ripping the OOP out of some code I wrote right now. It's the wrong technique. Turns out what I wanted was a router for data -- not tying my code to the data structures like classic OOP. [17:15] Aria: So what I end up with now is much more functional, half the size, with a quarter the boilerplate code. [17:15] Aria: And it feels like Javascript. The data objects are serializable as JSON. [17:16] andihit: jslatts: what exactly? JavaScript: The Good Parts? ;) [17:16] Aria: And inheritance is often overrated -- how often do you design a deep heirarchy and put it to good use? [17:16] madzak: Aria: do you find you rip out all the OOP or leave "the good parts" [17:16] jslatts: andihit: the YUI theater videoshttp://javascript.crockford.com/ [17:16] jslatts: http://javascript.crockford.com/ [17:17] andihit: jslatts: thx [17:17] Aria: madzak: Leave some where it's a good technique. Definitely rip out all the classical inheritance, in this case. It's rarely what you want. [17:17] Aria: Lots more wrappers, lots fewer inheritance trees. [17:18] Aria: Decorators. Routers. Proxies. [17:18] madzak: found that to be the case as well [17:18] Aria: So yeah, if you're used to Python or Ruby or C++, you're gonna have to relearn the best shapes for things. [17:19] jslatts: can libev work across processes? [17:20] jslatts: oooh, it can [17:20] jslatts: it is so hard to write multi-threaded C++ code when you don't know C++ [17:21] Aria: Yes indeed. [17:21] bingomanatee has joined the channel [17:22] jslatts: good way to learn i suppose. It took me about 10 hours to figure out why this external library was not cooperating. [17:22] josephboyle has joined the channel [17:23] aho has joined the channel [17:23] jslatts: ACTION is a former c# weenie [17:31] briznad has joined the channel [17:32] tikva has joined the channel [17:32] MattJ has joined the channel [17:33] jbpros has joined the channel [17:33] pdelgallego has joined the channel [17:34] cryptix has joined the channel [17:34] avalanche123 has joined the channel [17:37] Aria: Here's a design pattern thought: Internally, object heirarchies make sense -- it's nice to have the flexibility. However, when you're passing data to loosely coupled systems, that flexibility may be a liability. You want to operate /on/ the data, but you don't want to /be/ the data. [17:40] aliem has joined the channel [17:43] trotter has joined the channel [17:44] Corren has joined the channel [17:46] saschagehlich has joined the channel [17:46] mykul has joined the channel [17:47] ewdafa has joined the channel [17:47] sveimac_ has joined the channel [17:49] dguttman has joined the channel [17:52] adambeynon has joined the channel [17:54] alFReD-NSH has joined the channel [17:55] alFReD-NSH: hi everyone [17:55] alFReD-NSH: when did the new version of node (0.5) came? [17:55] Dinosaurus has joined the channel [17:55] alFReD-NSH: and why is it not in the list? [17:55] alFReD-NSH: does anyone know? [17:55] alFReD-NSH: :D [17:57] alFReD-NSH: am I the only one here? [17:57] jslatts: alFReD-NSH: it is the development branch [17:57] SubStack: yes [17:57] jslatts: unstable [17:57] tuhoojabotti: yay [17:58] tuhoojabotti: passing JSHint :D [17:58] Mrfloyd has joined the channel [17:58] alFReD-NSH: should I install the older version? [17:58] alFReD-NSH: is it that unstable? [17:58] alFReD-NSH: :D [17:58] jslatts: yes, install 0.4.8 [17:59] jslatts: not older, just the stable branch. even releases are stable [17:59] sveimac has joined the channel [17:59] jslatts: .6 will be the next stable [17:59] alFReD-NSH: ok... [17:59] Dinosaurus: passenger or unicorn [17:59] alFReD-NSH: thanks [18:01] harth has joined the channel [18:03] Dinosaurus has left the channel [18:03] pixel13 has joined the channel [18:03] pixel13 has left the channel [18:04] pixel13 has joined the channel [18:04] pixel13 has joined the channel [18:05] pixel13 has joined the channel [18:06] Aria has joined the channel [18:06] cjm_ has joined the channel [18:07] cjm_: hey all, how would i detect the http user-agent on the server with node? [18:08] mikeal has joined the channel [18:08] Aria: Look in the headers. [18:09] DelvarWorld: if I require a module and set a property on it, and then require that module somewhere else, is that property still set? [18:10] adnam: DelvarWorld: depends on what you need by "on it" [18:10] cjm_: @aria, sorry I'm not perfectly clear on how to read the headers, can you provide a little more context? [18:10] cjm_: I'm using express [18:11] adnam: DelvarWorld: in a module you can set properties on the exports object, require() returns that object, such as when doing require("sys").puts("foo") [18:12] DelvarWorld: adnam: like var bob=modules.exports; …. var a = require('bob'); a.foo = 'bar'; … var b = require('bob'); b.foo ? [18:12] Aria: req.headers['user-agent'] [18:12] DelvarWorld: elipsis indicate different files [18:13] Aria: That should work. [18:13] lukegalea has joined the channel [18:13] adnam: DelvarWorld: right [18:13] DelvarWorld: ok good [18:13] cjm_: thanks aria [18:14] adnam: it has to load the same module only once since there might be side effects which means modifications affect all modules using it [18:14] Aria: cjm_: Sure thing. At some point, dump yourself a copy of req and res. You'll learn a lot. [18:14] dguttman has joined the channel [18:14] zivester has joined the channel [18:15] cjm_: yea ill do that right now [18:16] davidcoallier has joined the channel [18:16] vikstrous has joined the channel [18:17] fyskij has joined the channel [18:19] kmiyashiro has joined the channel [18:19] viz has joined the channel [18:19] akshatj has joined the channel [18:20] pixel13 has left the channel [18:23] pixel13 has joined the channel [18:25] niftylettuce has joined the channel [18:26] mhausenblas has joined the channel [18:30] piscisaureus has joined the channel [18:33] ParadoxQuine has joined the channel [18:35] samsonjs has joined the channel [18:36] fmeyer has joined the channel [18:37] gazumps has joined the channel [18:43] jbpros has joined the channel [18:43] adambeynon has joined the channel [18:44] ibrahimal-rajhi has joined the channel [18:46] tauren has joined the channel [18:48] v0idless- has joined the channel [18:52] Mrfloyd has joined the channel [18:54] aliem has joined the channel [18:54] briznad has joined the channel [18:58] Hamms has joined the channel [18:58] webster has joined the channel [18:58] abraham has joined the channel [18:58] webster has joined the channel [19:00] bartt has left the channel [19:01] thalll has joined the channel [19:01] slip has joined the channel [19:01] `3rdEden has joined the channel [19:01] trotter has joined the channel [19:02] eee_c has joined the channel [19:04] pixel13 has left the channel [19:04] rictic has joined the channel [19:05] cloudhea1 has joined the channel [19:05] cloudhead_ has joined the channel [19:07] _jgr has joined the channel [19:08] dannyd has joined the channel [19:09] patcito has joined the channel [19:10] jimmybaker has joined the channel [19:10] jerrysv has joined the channel [19:11] bingomanatee has joined the channel [19:14] jbpros has joined the channel [19:14] fermion has joined the channel [19:15] ryah_ has joined the channel [19:16] eee_c has joined the channel [19:18] Aria has joined the channel [19:20] dannyd has left the channel [19:25] tikva has joined the channel [19:26] atiti_ has joined the channel [19:27] ibrahimal-rajhi has joined the channel [19:28] mykul|Home has joined the channel [19:30] mykul has joined the channel [19:33] kmiyashiro has joined the channel [19:33] brianseeders has joined the channel [19:35] lmatteis has joined the channel [19:35] lmatteis: Hi, is there a search engine library for node? Something like Lucene for Java? [19:35] lmatteis: text search. [19:38] tikva has joined the channel [19:38] AvianFlu: regex or gtfo. [19:38] AvianFlu: lol [19:38] AvianFlu: j/k [19:39] tbranyen: "lots of stext".indexOf(search_term) [19:40] DelvarWorld: https://github.com/gsf/node-solr ? [19:42] Marak has joined the channel [19:42] madsleejensen has joined the channel [19:43] Marak: Hey guys, quick question: If you were going to a JavaScript party what kind of beer would you want in the keg [19:43] Marak: ryah ? [19:43] jerrysv: marak: portland beer [19:43] tbranyen: orange juice kegger [19:43] lmatteis: DelvarWorld: does that depend on java? i would like to avoid having java as a dependency [19:43] Marak: tbranyen: I get loose off orange juice! [19:43] jerrysv: marak: but more seriously, a red ale [19:43] Aria: What jerrysv said. [19:44] MooGoo: jagermeister [19:44] Marak: MooGoo++ [19:44] v8bot: Marak has given a beer to MooGoo. MooGoo now has 3 beers. [19:44] Aria: Red ale, maybe a good IPA [19:44] MooGoo: but I want jager [19:44] jerrysv: aria: indeed, a good ipa - just thinking more toward summer [19:44] eboyjr has joined the channel [19:44] Aria: Yeah. [19:44] Marak: tasty [19:44] jerrysv: ACTION is drinking an industrial ipa right now, overlooking the ocean [19:44] `3rdEden: lmatteis https://github.com/kurokikaze/limestone sphinx search :)? [19:45] lmatteis: sphinx? whats that [19:45] eboyjr: I want to make a persistent connection library in Node.js (so my irc bot can be hot-loaded), is there a good way to spawn a daemon (that holds the connection)? [19:45] Marak: im more of a fan of wheat beers [19:45] Marak: eboyjr: we are working on that right now for kohai, you should use dnode [19:45] MooGoo: what do you mean hotloaded [19:45] Marak: eboyjr: if you havent seen: http://github.com/nodejitsu/kohai [19:45] jerrysv: marak: the only "decent" wheat up here is widmer, and it's nothing like it used to be :/ [19:46] `3rdEden: You are searching for searching engines and you don't know what sphinx is? O M F G? [19:46] `3rdEden: lmatteis http://sphinxsearch.com/ [19:46] Aria: Mmm, yeah, a wheat would be nice, too. Though finding a nice light one can be a bit tough. [19:46] AvianFlu: widmer sold out [19:46] `3rdEden: And you also have elasticsearch [19:46] DelvarWorld: lmatteis: well, it does require solr… so yes [19:46] `3rdEden: https://github.com/ncb000gt/node-elasticsearch [19:46] lmatteis: hrm ok [19:46] Marak: eboyjr: use dnode connect / disconnect events to spawn up plugins as seperate processes [19:46] jerrysv: avianflu: indeed [19:46] `3rdEden: sphinx > solr [19:46] lmatteis: `3rdEden: where are you finding all these? [19:46] `3rdEden: lmatteis through extensive usage [19:46] MooGoo: just use my super special node irc bot [19:46] `3rdEden: we use sphinx in production [19:46] MooGoo: you can hot load modules all day [19:47] eboyjr: Marak: Okay cool what's kohai? [19:47] lmatteis: i'm just looking for a text search engine that i can use to index some documents i have, lots of them [19:47] Marak: eboyjr: http://github.com/nodejitsu/kohai [19:47] lmatteis: so in a way, i dont need a relational database at all [19:47] jerrysv: i heard mention of fast buffers vs slow buffers, what's the difference? [19:47] Marak: kohai - pluggable irc bot for managing real-time data events [19:47] `3rdEden: lmatteis but we are also starting to use elastic search allot more for our production search engines [19:47] Marak has left the channel [19:47] `3rdEden: because it can be updated much faster than solr & sphinx [19:47] `3rdEden: it's more `real time` [19:47] MooGoo: what is a real-time data event [19:48] DelvarWorld has left the channel [19:48] jhurliman has joined the channel [19:48] DelvarWorld has joined the channel [19:48] chrislorenz has joined the channel [19:48] eboyjr: kohai is a bot [19:48] eboyjr: darn it didn't work :p [19:49] lmatteis: hrm all these solutions points to Lucene and therefore Java [19:49] `3rdEden: kohai is not bot, hes a semi-useful communications-facilitating pseudointelligence! [19:49] rauchg has joined the channel [19:49] lmatteis: is there a entirely node.js solution? [19:49] eboyjr: So he's an SUCFP [19:50] `3rdEden: lmatteis node isn't even optimized for such as task... [19:51] Aria: Is Java? [19:51] `3rdEden: there is no way a node server is going to out perform a sphix or elastic search engine [19:51] lmatteis: why not? [19:51] `3rdEden: Node is not a database [19:51] lmatteis: v8 is very powerful [19:51] DelvarWorld: lmatteis: node.js is not a golden hammer, there is nothing wrong with using the right tool for the job. why rewrite the mysql engine in node? mysql exists [19:51] lmatteis: what? not even java [19:52] tbranyen: ... [19:52] lmatteis: DelvarWorld: what? i'm talking of a search library. not a database [19:52] `3rdEden: lmatteis a search library is build on top of database [19:52] `3rdEden: how else would want to search your data? [19:52] jerrysv: really big arrays [19:52] tbranyen: lmatteis: node is single threaded, i can't imagine that will do well for parallelizing search jobs [19:52] jerrysv: really really big arrays [19:53] lmatteis: so? database can be straight static files. [19:53] `3rdEden: jerrysv limited to 1.7gb in memory? [19:53] `3rdEden: ;D [19:53] tbranyen: `3rdEden: not in 64bit [19:53] lmatteis: tbranyen: ok that's a better explanation :) [19:53] jerrysv: `3rdEden: i define really really big arrays as about 1.5gb :) [19:53] jerrysv: once you get above that, why bother? [19:54] eboyjr: Dnode doesn't suit my needs. How can I spawn a node daemon from node? [19:54] tbranyen: lmatteis: node is meant for many quick and dirty operations [19:54] tbranyen: long running and data crunching intensive is meant for something else [19:54] lmatteis: tbranyen: but what about all node libs that need to do intensive cpu operations? [19:55] Tony_ has joined the channel [19:55] tbranyen: lmatteis: if you find a node lib that does that lemme know [19:55] ardcore has joined the channel [19:55] ardcore has left the channel [19:55] lmatteis: tbranyen: you're telling me they dont? : [19:55] lmatteis: :| [19:56] ibrahimal-rajhi has joined the channel [19:56] eboyjr: tbranyen is known for doing things in javascript you shouldn't be doing ;) [19:56] tbranyen: haha what [19:56] eboyjr: like that encryption thing [19:56] tbranyen: i have never done anything with encryption [19:57] tbranyen: you're thinking of someone else :-p [19:57] lmatteis: how's that even possible... i understand all the I/O is done asynchronosly.. by the operatying system while the node loop continuous it's javascript exectuion... but some sort of intensive operations need to be done at the js level i would imagine [19:57] eboyjr: liar! haha [19:57] tbranyen: eboyjr: check out my github, lemme know when you find anything that has to do with encryption [19:57] `3rdEden: tbranyen: they just scale across multiple processes.. [19:57] ryah: lmatteis: turns out - people don't really do intensive cpu operations [19:57] MooGoo: everything that runs in nodejs blocks [19:58] eboyjr: tbranyen: Well you weren't making a library for github.. you were porting some as3 [19:58] MooGoo: I think any script that is worried about extensive blocking just spawns a child process [19:58] tbranyen: eboyjr: now i def know you are thinking of someone else... i have never written as3 [19:58] tbranyen: take care not to confuse me again please [19:59] ryah: lmatteis: CPUs are really fast - it's very rare that computation latency compares to I/O latency [19:59] `3rdEden: The only CPU operation that I'm doing is sending messages to 100k connected sockets.. This does make your CPU sweat a bit :) [19:59] lmatteis: ryah: well, we were talking of text search libraries for node [19:59] ryah: lmatteis: and even if you do have a case like that - say image resizing -it can be dealt with by kicking it out of process [19:59] MooGoo: queries on large databases can still be slow [20:00] eboyjr: tbranyen: I can pull up some logs ;) [20:00] tbranyen: eboyjr: pleae do [20:00] tim_smart: ryah: Redis job queues <3 [20:00] eboyjr: kk [20:00] tbranyen: i'm curious as to when i ever talked about something i have never used [20:00] tim_smart: image_queue.write({ resize: xxx }) [20:00] lmatteis: ryah: and it seems like all the search operations are outsourced to other process in other environments (java), which is kind of ugly if i want to keep dependencies low. [20:01] jasonmcleod has joined the channel [20:01] ryah: lmatteis: out source it to another node processes [20:01] lmatteis: ok then, this was my idea [20:01] ryah: it'll block - but that doesn't matter - as long as its not in your server loop [20:01] lmatteis: but people in here started saying that node wasn't meant for searching because it's single threaded... so i got confused [20:01] Aria: Heh. People used to thinking in threads and not processes say that a lot. [20:01] lmatteis: ryah: exactly. [20:01] Aria: Ignore them. [20:02] MooGoo: in node you just have to handle it manually [20:02] ryah: the OS spent a lot of time perfecting preemptive threading. we should use that. [20:02] lmatteis: ryah: so are there any search libs you know about? [20:02] ryah: lmatteis: not that i know of [20:02] tbranyen: Aria: ignore them? great advice [20:02] MooGoo: what text are you searching [20:02] lmatteis: what's preemtptive threading? [20:02] MooGoo: how is the text stored [20:02] `3rdEden: sphix isn't build in java.. it's build in c++ lmatteis [20:02] MooGoo: preemptive multitasking? [20:03] ryah: lmatteis: the ability of the system to interupt your job and schedule something else [20:03] MooGoo: that's at a process level [20:03] MooGoo: in the os [20:03] MooGoo: and you can use exactly that kinda of multitasking in node [20:03] ryah: e.g. "this image resizing is taking too long - let's run the server process now" [20:04] MooGoo: but far as I know OS's can't prempt code within a single process [20:04] tim_smart: I just checked it a initial revision of a web app, around 200k loc of dependencies. Yay for module authors. [20:05] lmatteis: so, heap allocation (the server loop getting more requests) is lighter (less resources) than creating a new process itself for each request? [20:05] Yoric has joined the channel [20:05] Yoric has left the channel [20:05] jerrysv: tim_smart: and how many loc in the app, in comparison? [20:06] dyer has joined the channel [20:06] dyer has joined the channel [20:06] tim_smart: jerrysv: I just started it a couple hours ago, so like 500 or something [20:07] ryah: lmatteis: an http connection in node is very cheap [20:07] ryah: ~2kb [20:07] ryah: and costs about 4 non-blocking syscalls to setup [20:08] dmojoryder has joined the channel [20:08] cha0s has joined the channel [20:08] cha0s has joined the channel [20:09] `3rdEden: ryah I actually measured 4.025kb per request/response [20:09] DelvarWorld: A parser that takes a syntax tree and turns it into executable javascript, except that some of the executions are async and you need to track what order they execute in … possible? specifically, churning a tree into async js code [20:10] `3rdEden: DelvarWorld there are already countless of libraries who do that :) [20:10] `3rdEden: so yes, its possible [20:10] DelvarWorld: any nodey ones? [20:10] `3rdEden: Yes [20:10] MooGoo: isnt that what node.js does [20:10] eboyjr has left the channel [20:11] SubStack: an ode to node [20:11] langworthy has joined the channel [20:11] SubStack: ring around the nosesy [20:12] DelvarWorld: `3rdEden: do you have any examples [20:12] `3rdEden: DelvarWorld did you check out https://github.com/joyent/node/wiki/modules#async-flow ? [20:12] DelvarWorld: I was looking at jade's parser but I don't think it does async stuf [20:12] SubStack: process full composey [20:12] tayy has joined the channel [20:12] SubStack: an issue, an issue (on github) [20:13] jmckind has joined the channel [20:13] perezd has joined the channel [20:13] SubStack: ECONNREFUSED, Connection refused [20:14] Opaque has joined the channel [20:15] cognominal: I am note sure if it is a predefined function or one by node. Example of a call : whatevertype::cast(obj) [20:16] cognominal: can someone enlight me? [20:16] ryah: `3rdEden: hm - how did you measure? [20:16] ryah: that sounds too high [20:16] cognominal: s/node/node and v8/ [20:17] `3rdEden: ryah I took the start RSS, loaded up 1k connections had the connection GC kick in, take note down RSS and it again for 4k and 6k connections [20:17] `3rdEden: I got an average of 4.025k for that [20:17] langworthy has joined the channel [20:17] jslatts: has anyone had experience triggering events from a child process in libev? I have it working on the process exit, but I would like to fire events in the parent process before then [20:18] jslatts: even better, does it happen anywhere in node core? [20:20] MooGoo: need to implament some sort of message queue [20:20] `3rdEden: ryah but I did store the request and response objects in a object and pushed that to an array, but I doubt that would cause 2k difference [20:21] CIA-104: node: 03Ryan Dahl 07master * r4d22405 10/ (3 files in 2 dirs): TimerWrap: mimic libev ref count semantics - http://bit.ly/jaw3D1 [20:22] lmatteis: ryah: fyi found a text search engine :) https://github.com/talltyler/node-search [20:22] ryah: lmatteis: hot [20:23] dmaincrash_ has joined the channel [20:23] ryah: <3ing the new binding layer [20:23] ryah: super simple [20:23] ryah: no weak references [20:24] Ned_ has joined the channel [20:24] jtsnow has joined the channel [20:25] Aria: Oooh. [20:26] brownies has joined the channel [20:28] sirdancealot has joined the channel [20:30] jerrysv: haha! finally correctly storing and retrieving buffers (binary data) into judy arrays. that took way too much effort. [20:30] jbpros has joined the channel [20:30] Hexmare has joined the channel [20:30] `3rdEden: lmatteis you do know that node-search stores all your data in memory right? When your node process restarts your indexes will be lost and have to be rebuild on start. And you should also take care with the amount of data that you are indexing.. As there are hard memory limits in Node.js [20:31] Hexmare has left the channel [20:31] jerrysv: `3rdEden: 1.7gb or so i hear [20:32] saschagehlich has joined the channel [20:32] stephank has joined the channel [20:32] `3rdEden: 1gb soft limit, 1.7 hard limit on 64bit [20:32] jerrysv: ACTION hit that limit many times with jsdom [20:32] `3rdEden: Yup, it's quite low :p [20:33] avalanche123 has joined the channel [20:33] indexzero has joined the channel [20:35] dhasenan: Encourages you to use multiple processes, I guess [20:36] MooGoo: is jsdom still slow as balls [20:36] jerrysv: moogoo: unfortunately. i have a pull request to help a tiny bit of it, but it extends the obj that gets passed into env() so it's still being noodled on [20:36] ezl has joined the channel [20:37] neocoder has joined the channel [20:37] MooGoo: I tried using it for web scraping but it was far too slow [20:37] langworthy has joined the channel [20:37] lmatteis: really? [20:37] MooGoo: last time I tried [20:37] MooGoo: at least [20:37] jerrysv: moogoo: what did you use instead? i am about to embark on a web scraping script [20:37] lmatteis: i'm actually considering using node simply because of web scraping (jquery and all) [20:37] jerrysv: ACTION needs to know what is in stock at his local liquor stores [20:37] MooGoo: there's a node libxslt module [20:37] MooGoo: I used that and xpath [20:38] MooGoo: and a html parser [20:38] lmatteis: so not jsdom? [20:38] MooGoo: not jsdom [20:38] lmatteis: hrm ok [20:38] MooGoo: try libxmljs [20:39] lmatteis: `3rdEden: i think it stores the indexes on disk. sure to read them they go in memory [20:39] MooGoo: actually libxmljs does the html parsing too [20:39] MooGoo: !w xslt [20:39] lmatteis: `3rdEden: maybe i should use something like mongodb for searching? [20:39] MooGoo: meh it's usualy fast [20:39] MooGoo: wiki is just slow [20:39] MooGoo: oh wait [20:40] ximo has joined the channel [20:40] Calvin has joined the channel [20:40] MooGoo: !w xslt [20:40] Calvin: XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into w [20:40] Calvin: eb pages or PDF documents. [20:40] MooGoo: hrm [20:41] dget has joined the channel [20:42] `3rdEden: lmatteis in the example that is posted on the readme it reads the dataset from `nStore` and streams all results in memory so it can add a index for each of them. It doesn't write back any data so it's cept in memory [20:42] dgathright has joined the channel [20:42] `3rdEden: lmatteis depends on what you want to use your searching for and howmuch items you have to be searched [20:42] `3rdEden: In memory isn't that bad if you have a small set of results [20:42] lmatteis: millions of items [20:44] `3rdEden: lmatteis than you need something that is backed by a proper database and there arent' any `pure` nodejs solutions for that [20:44] CIA-104: node: 03Ryan Dahl 07master * r650a308 10/ (src/node.cc src/node.h src/timer_wrap.cc): Move MakeCallback and SetErrno to node.cc - http://bit.ly/kVTyzk [20:45] tikva has joined the channel [20:45] `3rdEden: lmatteis I would really advice you to try out the solutions that are designed for this. Like solr, sphinx or elastic search [20:45] jerrysv: wow, either returning a buffer from c++ is the slowest thing since molasses, or i'm doing something really wrong [20:45] lmatteis: damn ok, but they all require java [20:45] `3rdEden: lmatteis sphinx is written in c++ [20:45] `3rdEden: it doesn't require java.. [20:45] lmatteis: ok [20:46] `3rdEden: Our sphinx index is about 50gb and its able to spit out results within 6ms [20:46] `3rdEden: it's compiled out of a 200gb dataset [20:47] dhasenan: My sphinx index contains about 2 cats and is able to spit out hairballs within 1 hour. [20:47] `3rdEden: dhasenan ;D [20:47] wadey has joined the channel [20:48] lmatteis: `3rdEden: are you able to scale it across multiple machines? [20:48] cm: How do I write to a file? I really don't understand the fs documentation [20:48] `3rdEden: lmatteis you can build sphinx clusters if you need [20:48] cm: It says "see open(2)" a lot, but I can't find that [20:49] MooGoo: its talking about the man page [20:49] AvianFlu: cm: fs.writeFileSync('filename.txt', buffer); is the really simple way [20:49] `3rdEden: fs.readFile(file, callback)? [20:49] AvianFlu: you can also leave the sync off [20:49] AvianFlu: and use a cb [20:49] flasomm has joined the channel [20:49] lmatteis: `3rdEden: and you use node.js to interface with it? [20:50] MooGoo: all fs functions are just thin wrappers around c IO cunfctions [20:50] cm: writeFileSync isn't in the docs :/ [20:50] `3rdEden: lmatteis we use both PHP and nodejs to talk with it [20:51] flasomm: hi, I've got a problem with callback on a function [20:51] flasomm: here is the code : http://pastie.textmate.org/1986314 [20:51] AvianFlu: cm: http://nodejs.org/docs/v0.3.1/api/fs.html#fs.readFileSync [20:51] AvianFlu: that's read, but write's under [20:51] AvianFlu: whoa wait [20:51] dhasenan: 0.3.1?! [20:51] AvianFlu: did google give me the NODE v0.3.1 docs!? [20:51] AvianFlu: hold up [20:52] MooGoo: google is slow [20:52] cm: google always gives me old docs :( [20:52] `3rdEden: lmgtfy [20:52] flasomm: the problem is that the userForm does is created before the Role.find is execute. How can I get the form construct with role select ? [20:52] MooGoo: !g nodejs fs writeFileSync [20:52] Calvin: fs - Node.js Manual & Documentation (http://nodejs.org/docs/v0.3.1/api/fs.html), File System - fs - Node.js Manual & Documentation (http://nodejs.org/docs/v0.3.2/api/fs.html), Cronjob? - node.js server side javascript () (http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/12726) [20:52] tikva has joined the channel [20:52] AvianFlu: cm: http://nodejs.org/docs/v0.4.8/api/fs.html#fs.writeFileSync [20:52] AvianFlu: there [20:52] AvianFlu: it's just not top google [20:52] `3rdEden: !g nodejs fs writeFile 0.4.8 [20:52] lmatteis: `3rdEden: i'm scraping millions of web pages and mapping the data into a search engine which i then can search upon... just search no relational queries... would you say sphinx is good for this? [20:52] Calvin: Playing with Node.js (http://anwajler.com/node.html), node blog (http://blog.nodejs.org/), Downloads for TooTallNate's node - GitHub (https://github.com/TooTallNate/node/downloads) [20:52] cm: ...why was I in 0.4.1 docs? [20:53] `3rdEden: doh :9 [20:53] cm: thanks [20:53] `3rdEden: lmatteis: yes [20:53] `3rdEden: Just read the site: http://sphinxsearch.com/about/sphinx/ [20:53] cm: Yep, that worked [20:54] mscdex: !g !g [20:54] Calvin: Gmail: Email from Google (http://mail.google.com/mail/), G - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/G), Greg Leding (g) on Twitter (http://twitter.com/g) [20:55] mscdex: heh [20:55] ximo has joined the channel [20:55] mscdex: !g nodejs rules [20:55] Calvin: Talking to Strange Computers with Node.js and Jison - Jed Parsons (http://jedp.posterous.com/talking-to-strange-computers-with-nodejs-and), Naming of NodeJS modules: maybe we will introduce some rules ... (http://groups.google.com/group/nodejs/browse_thread/thread/637598fe1a8dc599), Get more discussion results (/search?q=nodejs+rules&hl=en&prmd=ivns&tbm=dsc&tbo=u&sa=X&ei=MmHhTYn1F8uUtweaxpWZBw&ved=0CCEQmAcwAQ) [20:55] cm: What does readFileSync return if the file is empty? [20:55] cm: Or does it just error and die slowly? [20:55] mscdex: cm: if it's empty, probably an empty buffer/string [20:55] cm: okay [20:55] mscdex: cm: if it can't open the file, it throws [20:56] tbranyen: "die slowly"? wat [20:56] dhasenan: Cut into a thousand pieces. [20:56] tbranyen: lol [20:57] Viriix has joined the channel [20:57] cm: Error: EBADF, Bad file descriptor [20:57] cm: ooooh [20:57] Poetro has joined the channel [20:57] cm: painful [20:58] mscdex: if anything it will die quickly, because node is not slow! [20:58] mscdex: :-D [21:00] tuhoojabotti: Now I can browse my site with lynx! *Achievement unlocked!* [21:00] tuhoojabotti: :) [21:00] mscdex: all the cool kids use links [21:00] tuhoojabotti: No! [21:00] tuhoojabotti: :( [21:01] MooGoo: I use wget and stdout [21:01] adambeynon has joined the channel [21:01] MooGoo: sometimes less if im lazy [21:01] mscdex: links + v8 would be awesome! [21:01] tim_smart has joined the channel [21:02] tikva has joined the channel [21:03] wbw72 has joined the channel [21:03] mscdex: MooGoo: sometimes less? so occasionally you'll just use wget, skip stdout, and just guess what the page looks like? [21:03] mscdex: ;-) [21:04] MooGoo: stdout | less [21:04] dmojoryder has joined the channel [21:04] MooGoo: you know sometimes my eyes are too tired to parse a rapid stream of crap html [21:04] MooGoo: I guess I should be a man and use more [21:04] CiRlE has joined the channel [21:09] newy has joined the channel [21:10] tuhoojabotti: be a man -> be a geek [21:11] caolanm has joined the channel [21:11] ximo has joined the channel [21:11] sveimac has joined the channel [21:14] newy has joined the channel [21:15] italic has joined the channel [21:15] TomY has joined the channel [21:17] jslatts: libev is starting to make sense. its pretty awesome [21:17] wbw72 has joined the channel [21:19] arpegius has joined the channel [21:20] galaxywatcher has joined the channel [21:20] zeade has joined the channel [21:20] razvandimescu has left the channel [21:22] cha0s has joined the channel [21:23] ryah: http://antirobotrobot.tumblr.com/post/5890908029/unrat-missmossblog-i-kjosinni-by-sverrir can you believe this is a photo? [21:23] ryah: so awesome [21:23] gkatsev: that is awesome [21:24] madzak: yeah that's sweet [21:24] MooGoo: id like to live there [21:24] MooGoo: privacy [21:24] MooGoo: probably dial up tho [21:24] Poetro1 has joined the channel [21:24] tuhoojabotti: It's nice [21:24] Opaque has joined the channel [21:25] tuhoojabotti: ryah: I herd you liek pics: http://www.tuhoojabotti.com/#/bestof/best-of-nature :P [21:26] strmpnk_ has joined the channel [21:26] devrim has joined the channel [21:28] tuhoojabotti: But I'm just a noob. [21:28] newy has joined the channel [21:28] AvianFlu has joined the channel [21:30] newy has joined the channel [21:35] newy has joined the channel [21:35] MooGoo: is npm output a bit plain looking [21:35] MooGoo: or is it just me [21:35] MooGoo: one fucking line [21:36] Aria: ryah: That photo is, in fact, awesome. [21:37] ezmobius has joined the channel [21:38] arpegius has joined the channel [21:39] newy has joined the channel [21:40] meatmanek: I'm trying to decide if that photo was HDRd or not [21:40] tuhoojabotti: MooGoo: It's all you need! :D [21:40] galaxywatcher has joined the channel [21:41] MooGoo: feels so unfinished [21:41] MooGoo: I want colors and something confirming success [21:41] meatmanek: the grass on the sides of the road seems way too dark [21:41] Marak has joined the channel [21:41] galaxywatcher has joined the channel [21:42] Marak: http://i.imgur.com/NfKT3.png , influential about magic... !!! ahaha [21:43] Aria: Heh. [21:43] akshatj has joined the channel [21:44] jbpros has joined the channel [21:45] materialdesigner has joined the channel [21:46] AvianFlu has joined the channel [21:46] kriszyp has joined the channel [21:51] akshatj: ACTION is building node on his new EC2 instance [21:53] junkee[] has joined the channel [21:53] Poetro1 has left the channel [21:53] highermath_away has joined the channel [21:55] ibrahimal-rajhi has joined the channel [21:56] atiti has joined the channel [21:57] Poetro1 has joined the channel [21:58] nivoc has joined the channel [21:59] dget has joined the channel [22:00] AvianFlu has joined the channel [22:00] viz has joined the channel [22:02] unomi has joined the channel [22:02] Yuffster has joined the channel [22:03] ezl has joined the channel [22:07] nivoc has joined the channel [22:07] jerrysv has joined the channel [22:10] niles|iPod has joined the channel [22:11] kmiyashiro has joined the channel [22:11] v0idless- has joined the channel [22:11] pplante has joined the channel [22:12] niles|iPod: this may be the only room on this server that has a topic rhat matches what people are talking about, not just a string to read. [22:12] niles|iPod: that* [22:13] galaxywatcher has joined the channel [22:14] bingomanatee has joined the channel [22:14] kkaefer: with node buffers, can I safely use the pointer obtained with Buffer::Data in a threadpool thread? [22:15] wadey has joined the channel [22:17] DelvarWorld: if I have a module that you are supposed to instantiate, like new thing(), would I do module.exports = thing; funciton thing() { return this }; thing.prototype.foo = function() {} ? [22:17] TomY has joined the channel [22:17] kkaefer: DelvarWorld: yes [22:17] kkaefer: (you don't need to return this, it's implied when using new) [22:19] DelvarWorld: thanks [22:20] Marak has joined the channel [22:20] Marak: DAS BOOT [22:22] fairwinds has joined the channel [22:23] sveimac has joined the channel [22:23] niles|iPod has joined the channel [22:24] sveimac has joined the channel [22:29] jtsnow has joined the channel [22:30] andihit_ has joined the channel [22:30] Mrfloyd has joined the channel [22:33] kriszyp has joined the channel [22:36] pplante: all of those quits reminds me of the irc netsplit days [22:37] cha0s has joined the channel [22:37] cha0s has joined the channel [22:39] kkaefer: pplante: netsplits still happen [22:39] jtsnow has joined the channel [22:39] pplante: kkaefer: well i meant the days when it happened nearly hourly (90s) [22:40] mynyml has joined the channel [22:40] pplante: though i haven't used irc much in the last few years [22:40] MooGoo: this why they make join/part filters [22:40] kkaefer: heh [22:41] pplante: i haven't found a client on osx i lik [22:41] pplante: sadly i miss mirc [22:41] MooGoo: weechat [22:41] pplante: mostly because i had a lot of custom scripts i wrote for it [22:41] drudge: pplante: we make Linkinus [22:41] pplante: linkinus has its issues [22:41] pplante: i just dont like the ui [22:42] MooGoo: why would anyone use GUI irc clients [22:42] pplante: native tabs with shift+cmd+[ or ] to switch channels is one of my gripes with linkinus [22:42] pplante: MooGoo: not sure why since i live in the terminal about 60% of my life as it is [22:42] ibrahimal-rajhi has joined the channel [22:42] MooGoo: indeed [22:42] drudge: pplante: http://cloud.penree.com/79Cg [22:42] MooGoo: I can idle for years on end with weechat/irssi + scree/tmux [22:43] MooGoo: screen [22:43] pplante: drudge: im aware of the shortcuts, they just arent the same :) [22:44] drudge: pplante: that's why mac os x lets you reconfigure any shortcut [22:44] pplante: true [22:44] warz has joined the channel [22:44] pplante: so my real complaint is i am lazy [22:44] pplante: ;) [22:44] MooGoo: weechat [22:44] MooGoo: srsly [22:45] pplante: MooGoo: i am installing it right now [22:45] MooGoo: I admit it is a fairly stupid name [22:45] orvus has joined the channel [22:45] pplante: all of them have terrible names though [22:46] __jgr has joined the channel [22:46] galaxywatcher has joined the channel [22:46] MooGoo: BitchX [22:46] jslatts: i loved bitchx [22:46] pplante: i think ill just install weechat on a server and ssh into it [22:47] MooGoo: that's the only way to do it [22:47] jslatts: pplante: i bought textual for $5 because i hated all the other mac clients [22:48] pplante: jslatts: i bought linkinus once upon a time in one of those mac software bundles at macheist [22:48] jslatts: pplante: don't like? [22:48] pplante: its alright [22:49] pplante: im going to give weechat a spin [22:49] drudge: ACTION sulks [22:49] MooGoo: just make sure to use it with screen/tmux [22:50] MooGoo: fairly obvious [22:50] pplante: drudge: its not you, its me ;) [22:50] jslatts: hehe [22:51] pplante: oh hell yeah weechat has python scripting support [22:51] pplante: im sold [22:51] kkaefer: LimeChat for macosx++ [22:51] GasbaKid has joined the channel [22:51] Aria: textual [22:52] _jgr has joined the channel [22:52] ibrahimal-rajhi has joined the channel [22:52] jslatts: that textual feeling [22:53] jslatts: i can't believe my addon actually works. [22:53] jslatts: child process -> qt event queue -> boost IPC -> back to javascript [22:53] jslatts: gross [22:54] pplante: jslatts: you should add an extra layer in there for good measure [22:54] pplante: never can have enough layers [22:54] jslatts: pplante: yes... maybe i can through a web service in [22:55] pplante: jslatts: now you can work on making it webscale [22:55] tim_smart: Basic controllers for express https://github.com/Tim-Smart/express-aid [22:56] jslatts: pplante: i'm passed webscale. I'm going to make it social. somehow [22:56] jslatts: and real time [22:57] GasbaKid has joined the channel [22:57] pplante: jslatts: you should be profitable by next week [22:57] sechrist has joined the channel [22:58] pplante: MooGoo: oh my god there are so many options, thanks for the recommendation [22:58] MooGoo: im sure im not even close to taking advantage of all the crap there is [22:59] MooGoo: you might want to get buffer.pl and beep.pl if you care about notifications [22:59] MooGoo: and be sure to use it for IM with bitlbee [22:59] MooGoo: BE SURE [23:01] pplante: only issue with running it on a remote machine is lack of growl notifications [23:02] Aria: .oO(Growl network notifications) [23:02] MooGoo: im sure there's some crazy convoluted way [23:02] MooGoo: yea [23:03] pplante: yeah the network notifications would be possible [23:03] pplante: but wiring that up with a dynamic local ip would be a pain [23:04] davidbanham has joined the channel [23:04] Aria: Hehe. dyndns + a port forward. [23:04] pplante: hm true [23:04] pplante: its tempting [23:05] MooGoo: in windows I just have putty blink the taskbar icon whenever it gets a "beep" [23:05] MooGoo: that works pretty well for me [23:07] GasbaKid has joined the channel [23:08] radicality has joined the channel [23:08] radicality: Hello. Can someone tell me how to effectively put JS into jade templates ? If I use the 'script' tag, many times jade complains of indendation/spaces etc. How can I put the JS somewhere else, and then include it in the template, but so that jade won't care about it's indendation ? [23:11] AvianFlu: you can use a script tag to include a js file, can't you? [23:11] AvianFlu: just be like