[00:00] Vertice: yeah, sadly we seem to have settled on underscore templates [00:00] gmonnerat has joined the channel [00:00] Vertice: i suppose i should be thankful it's not handlebars [00:00] jerrysv: vertice: not mustache or handlebars? [00:00] Vertice: i hate them [00:00] Vertice: =) [00:01] aaronblohowiak has joined the channel [00:01] context: wizek: ahh. so is he saying manually calling a request and expresso calling a request gives different output [00:01] context: wizek: id imagine there has to be something different in the request [00:01] Vertice: give me a proper for loop without having to massage your builtins, ffs. =) [00:01] aaronblohowiak: isaacs: i have gathered a several MB dump of _changes feed data over a few days to help me do some testing on npm alerts [00:01] isaacs: oh, nice!! [00:01] Vertice: also, the project i was on had weird issues with hbs installed via ndistro [00:01] gmonnerat has left the channel [00:02] Vertice: it would lose parts of the handlebars api [00:02] aaronblohowiak: isaacs: i have not found any password or account data, but i want to verify that it should be "safe" to share that with the world [00:02] isaacs: aaronblohowiak: if you got it off the _changes feed, it's already public :) [00:02] Vertice: if and for are different things, yet have the same syntax [00:02] Vertice: wtf [00:02] aaronblohowiak: isaacs: right, so it *should* be good, just wanted to be a good netizen and double-check [00:02] Vertice: basically, handlebars == do not want. [00:02] isaacs: thanks :) [00:04] spasquali has left the channel [00:05] dgathright has joined the channel [00:05] aaronblohowiak: isaacs: to make npm alerts more generally useful, I am thinking about conceptualizing each package as an EventEmitter that can emit semver-approved major/minor/point/patch events... this should let us add "build_failed" [00:05] aaronblohowiak: then, users can subscribe via HTTP postback, email, or email_digest to these events [00:05] dguttman_ has joined the channel [00:06] aaronblohowiak: does that sound like a sane/useful design? [00:07] Tobsn has joined the channel [00:08] willwhite has joined the channel [00:09] wasabista has joined the channel [00:10] isaacs: yeah, that sounds really nice [00:10] davidbanham has joined the channel [00:12] benmonty has joined the channel [00:12] ryanfitz has joined the channel [00:14] tbranyen: Vertice: whats your beef with handlebars? [00:14] tbranyen: been using mustache for a long time [00:14] tbranyen: was thinking of switching to handlebars [00:14] Vertice: my beef is with moustache too [00:14] Vertice: it required too much pre-processing of data. [00:15] tbranyen: well some would argue thats how it should be [00:15] tbranyen: templates should be as simplistic as possible [00:15] piscisaureus has joined the channel [00:15] tbranyen: little to no logic [00:15] Vertice: not buying it [00:15] Vertice: but it also pissed me off that it didnt know the difference between if and for [00:16] Vertice: i couldnt easily do 'if (array not empty) {' 'foreach (items) { '
  • blah
  • '}
    ' } ' [00:17] Vertice: because the {{{#var}}} isnt smart enough to realize the difference [00:17] Vertice: handlebars DID add the if and each [00:17] Vertice: block helpers [00:17] Vertice: but on the project i was on they mysteriously stopped working [00:18] Vertice: and the fact that it doesnt put the index of what you are iterating through into the scope [00:18] JoshC1 has joined the channel [00:18] Vertice: and the fact that it has byzantine requirements for calling functions (or helpers as it calls them) [00:19] Vertice: so it doesnt like iterating through hashes, and i have to reconfigure everything from { key: value } to [ {key: key, value: value} ] [00:19] Vertice: you know what, those arrays i generate, they are from iterating over hashes in the first place [00:19] andi5 has left the channel [00:20] andi5 has joined the channel [00:20] Vertice: so it really just caused endless additional wasted iterations over the data to make it get to a point where it might be able to render things how i want to [00:20] Vertice: i spent more time working around it than i spent writing templates [00:20] neoesque has joined the channel [00:20] raynos has left the channel [00:21] aaronblohowiak: Vertice++ this is why i use haml-js [00:21] jerrysv: wow, left for a meeting and still talking about handlebars/mustache [00:21] aaronblohowiak: lol [00:21] Vertice: yeah. i ended up taking 2 days to rewrite the bulk of the site in jade [00:21] tmpvar: lol [00:21] Vertice: i have plenty of hate [00:21] Vertice: =) [00:21] tbranyen: Vertice: i'd love to see a template engine that is fast, extendable, but out of the box basic as shit [00:21] jerrysv: so do i :) i like weld [00:21] Vertice: anyway. i removed about 1000 lines of code [00:22] tbranyen: jerrysv: weld is that? [00:22] Vertice: because we had attempted to write a generic 'table theme function' [00:22] Bonuspunkt has joined the channel [00:22] Vertice: which involved massaging data to work with our crazy straw contraption meant to massage data into what handlebars wanted [00:22] jerrysv: tbranyen: https://github.com/hij1nx/weld [00:22] tmpvar: weld! [00:22] tmpvar: example page coming tomorrow [00:22] jerrysv: just not as performant as i'd like [00:22] brownies has joined the channel [00:22] Vertice: i'm still hesitant bout weld [00:23] tbranyen: jerrysv: i'd rather not have a jsdom dependancy [00:23] tbranyen: also i don't like tying content to selectors [00:23] tbranyen: /dom elements [00:23] tbranyen: especially if i want to use the template engine for code generation [00:24] Vertice: they may be cheap and dirty, but hell underscore's templates have helped me out of a pinch a few times [00:24] tbranyen: yeah with a dependancy on underscore [00:24] Vertice: i already have it anyway [00:24] tbranyen: hard to find solid stand alone template engines [00:24] tmpvar: use resigs microtemplating thing [00:24] Vertice: it's already built in [00:24] jerrysv: tbranyen: write one? [00:25] jerrysv: ACTION is actually being serious this time [00:25] tbranyen: jerrysv: was thinking about writing one that matches mustache syntax but is extendable [00:25] tbranyen: i hate <%= %> syntax [00:25] tbranyen: reminds me of php too much [00:25] jerrysv: or jsp [00:25] tmpvar: asp [00:25] jerrysv: yech [00:25] Vertice: yeah [00:25] tbranyen: django templates are cool, but not resuable at all, i want something written in JS that is portable [00:25] Vertice: it's kind of like the work horse of templating [00:26] duncanbeevers: module.exports = function(s, d){ return s.replace(/\$\{([^\}]+)./g, function(_, v) { return d[v]; }); }; [00:26] willwhit_ has joined the channel [00:27] Vertice: i did enjoy jade, and i still find it really easy to maintain those [00:27] Vertice: but i'm doing more client side work these days [00:28] Vertice: so the need for a universal solution is there [00:28] tbranyen: yeah mustache is the most portable solution i know of [00:29] tbranyen: also i'm liking the idea of {={something}=} to differeniate between a legit {{ and the start of an actual template tag [00:29] Vertice: i've also used underscore with mustache style identifiers [00:32] paul_k has joined the channel [00:33] puffpio has joined the channel [00:34] mikey_p: Vertice: you don't want to use jade on the client? [00:34] Vertice: it's not readily available, and feels hackish [00:34] Vertice: plus, the rest of the team arent fond of it [00:35] Vertice: they are threatening to go with dust - http://akdubya.github.com/dustjs/ [00:36] mikey_p: they're all still handlebars? [00:36] mikey_p: I wish I had time to talk to them about stuff at nodeconf [00:36] tbranyen: handlebars are great [00:36] tbranyen: any brackets are good at denoting [00:36] tbranyen: handlebars just seem to be more ubiquitous and relatable [00:36] Vertice: we're using underscore.js these days [00:37] Vertice: i just feel like we're doomed to re-invent smarty [00:37] tbranyen: Vertice: wish you could define functions to be called for dynamic properties [00:37] tbranyen: doesn't seem possible in dust [00:37] mikey_p: i really want to play with bones more but i'm not really into couch or handlebars, and it seems hard to use without those [00:38] Vertice: i really fail to see how {{#blah}} is supposed to be more understandable than {{ if (blah) : }} [00:38] Vertice: especially to the supposed 'non programmer designers' who are going to edit your scripts [00:38] 15SAAOA5B has joined the channel [00:38] 64MAAKD6B has joined the channel [00:38] tbranyen: {%if blah%} ... {%endif%} [00:38] tbranyen: i think django has it right [00:38] tbranyen: in that regard [00:38] Vertice: one is almost english, the other is rapidly expanding magic syntax [00:39] SubStack: I would rather not have a special language embedded inside of templates [00:39] tbranyen: Vertice: https://gist.github.com/994418 [00:39] Vertice: yeah, i also recommended people use in their phptemplate templates for drupal [00:39] tbranyen: slowly fleshing out my wishlist [00:39] SubStack: just use javascript, everybody already knows it and it's powerful and fully featured [00:39] SubStack: fuck these mythical "designers" [00:39] SubStack: they can learn javascript too [00:39] tbranyen: I don't believe in mythical designers, i believe in the separation of concerns [00:40] rick_h_: exactly, why I <3 mako in python land [00:40] SubStack: probably easier to teach them javascript than to teach them an entirely new custom language [00:40] tbranyen: and it concerns me that someone would pick javascript syntax which is incredibly non portable to languages like python or ruby and breaks the conventions [00:40] adnam: SubStack: rather, they should not be editing code [00:40] SubStack: yeah that too [00:40] jaw6 has joined the channel [00:40] Vertice: i liked json-template from google [00:40] Vertice: http://json-template.googlecode.com/svn/trunk/doc/Introducing-JSON-Template.html [00:41] adnam: and if you have a front end dev that does mostly html/css then you should expect him to grasp at least conditionals and loops in any language [00:41] Vertice: yeah [00:42] Vertice: apparently they figured out what the novice drupal themers were having trouble with was data structures, not conditionals [00:42] adnam: and that's helpful even if the programmer writes both app code and view code, what's exposed in the view should be dead simple to use [00:42] jmoyers: endlessly reinventing template languages [00:42] Vertice: they didnt understand arrays and objects [00:42] mikey_p: one of the big feedbacks that i've been hearing from designers lately is that data structures in templates is waay more confusing that logic [00:42] yukihr has joined the channel [00:42] Vertice: yah [00:42] Vertice: that [00:42] mikey_p: yeah that [00:42] mikey_p: ;)( [00:42] adnam: hmm [00:43] Vertice: but really. i find myself in a situation where the only people who will be editing these templates are other developers in our company [00:43] tbranyen: jmoyers: well if i could find one that works outside of html, has simplistic semantics, is portable outside of JS, is incredibly basic out of the box, and has the ability to extend with what i need programmatically [00:43] tbranyen: ^^ if that could be found, i wouldn't even consider writing something that does all that [00:43] Vertice: why the hell should we need to limit our tools to the lowest common denominator [00:44] tbranyen: because its not a programming language, its a template [00:44] tbranyen: it represents data, it doesn't create it [00:44] reid has joined the channel [00:44] jerrysv: out of here for now, nice to see the templating discussion still going :) [00:44] tbranyen: :D [00:44] jmoyers: tbranyen: whats wrong with mustache for instance? [00:44] tbranyen: jmoyers: well the issue i had with that was its not extendable [00:44] jmoyers: its got an implementation in every language anyone cares about [00:44] adnam: Vertice: sure, but you still have all the expressive power you need in the app, it's just simplified before being shown in the view [00:44] tbranyen: i can't create filters [00:44] tbranyen: to add to its limitations [00:44] adnam: if you're doing complicated stuff in the view you haven't separated correctly [00:44] Vertice: i didnt want to spend my life bowing to it's whims [00:45] jmoyers: the point IS that its limited [00:45] tbranyen: adnam: exactly, but sometimes you absolutely could use a filter in the template [00:45] tbranyen: jmoyers: correct [00:45] adnam: tbranyen: "filter"? [00:45] jmoyers: meaning [00:45] tbranyen: adnam: check out django templates and any other implementations that have filters [00:45] jmoyers: :sass (some sass goes here) [00:45] JustCute has joined the channel [00:45] tbranyen: its a common templating term [00:45] boogyman has joined the channel [00:45] adnam: like a HOF? [00:45] jmoyers: like a filter [00:45] jmoyers: see jade [00:45] tbranyen: jmoyers: there are times when i need to iterate an object and have access to keys and values [00:45] jmoyers: same concept [00:45] adnam: :_( [00:45] Vertice: yeah [00:46] Vertice: i was using json-schema [00:46] Vertice: so i'd have the objects, and the schema [00:46] jmoyers: i dont know man [00:46] jmoyers: loops are one things [00:46] jmoyers: iterating over an 'object' [00:46] tbranyen: jmoyers: i agree with you thats why i want one that *is* barebones like mustache [00:46] Vertice: which would require me to iterate over all of them to generate fucking classes. [00:46] tbranyen: i just want the extendability [00:46] Vertice: and odd / even for rows [00:46] tbranyen: and not having ridiculous syntax like Vertice was saying [00:46] tbranyen: {#means nothing} [00:46] tbranyen: to anyone [00:47] jmoyers: thats ruby string interpolation [00:47] Vertice: i added a very simple 'filter' helper, that i could pass the field type in from the schema on printing [00:47] jmoyers: its familiar to those cats [00:47] adnam: okay, yeah, i see the use of filters [00:47] jmoyers: you know [00:47] jmoyers: _.template [00:47] jmoyers: you define the interpolation syntax [00:47] jmoyers: i like that feature [00:47] Vertice: so filter (fieldvalue, schema.properties[fieldname]) [00:48] jmoyers: _.templateSettings = { [00:48] jmoyers: interpolate : /\{(.+?)\}/g [00:48] jmoyers: }; [00:48] Vertice: instead of having to do that hundreds of times before you even print the field once, just to massage the data [00:48] jmoyers: or whatnot [00:48] Vertice: yeah [00:48] tbranyen: jmoyers: that could be really awesome, the ability to extend the templating engine is awesome [00:48] Vertice: i used that to make it look like handlebars [00:48] jmoyers: beyond that [00:48] Vertice: so the simple templates were portable [00:48] jmoyers: if you get into heavy data structures [00:48] jmoyers: i think it starts sucking huge ass [00:48] tbranyen: well thats when filters come to play [00:48] jmoyers: and just use the language, like php's short forms, if you like that [00:49] quackslike has joined the channel [00:49] jmoyers: for me, i dont use deeply nested data structures. in fact, i make a point of keeping it flat and using functional style to map data structures *onto* the templates [00:49] jmoyers: that way its dirt simple [00:50] adnam: dto's baby [00:50] jmoyers: i dont think it helps designers though [00:50] jmoyers: one way or another [00:50] tbranyen: harder to think about, especially if you're using JSON from a 3rd party source [00:50] Vertice: this wasnt deeply nested. it was record.field = {2004: 123, 2005: 234} [00:50] dust-- has joined the channel [00:51] jmoyers: i dont think so personally [00:51] jmoyers: take twitter for instance [00:51] brianc has joined the channel [00:51] Vertice: turning that into the {key: key, value: value} pairs how many levels down [00:51] c4milo1 has joined the channel [00:51] tbranyen: twitter is an example i was going to bring up until i remembered the api is mostly flat key, vals [00:52] tbranyen: not much nesting iirc [00:52] tbranyen: at least not for getting the message, link and author [00:52] Vertice: hell. even with something like backbone's model.attributes, you get a hash back. [00:52] jmoyers: or get sat, whats easier, {author} or posts[0].author.name [00:52] jmoyers: anyway, this is small stuff i guess [00:52] yhahn has joined the channel [00:52] tbranyen: well ideally it'd be {%using post%}{%author.name%} or something [00:53] jmoyers: doesn't really matter that much. the reason mustache seemed interesting is because of all the client libraries [00:53] tbranyen: yeah thats why i have a hardon for it atm [00:53] Vertice: you know what the great thing about jade or things other than mustache is though, you dont have the choose betwenen the 2 [00:53] tbranyen: just hate its shortcomings [00:53] jmoyers: you do though imo [00:53] jmoyers: you build a bunch of views up in some transformative template language [00:54] jmoyers: and then you are like HMMM, to migrate i have to write some script that compiles it back to html or whatever, and then transfer it to some other template language [00:54] jmoyers: just seems hokie. [00:54] jmoyers: keep it as close to the source language as possible [00:54] tbranyen: right which is why portability and markup agnostic templating is what is so great [00:54] brianloveswords has joined the channel [00:55] tbranyen: only working in DOM/HTML stuff is lame [00:55] jmoyers: its not lame -- its specific [00:55] jmoyers: and if you control the company, more power to you [00:55] tbranyen: lame for my needs [00:55] azeroth__ has joined the channel [00:56] tbranyen: i don't want to learn a templating language every time i want to do templating ideally [00:56] brianloveswords has joined the channel [00:56] tbranyen: if one only works for html, and then i want to use templating to create plaintext emails so i need to bring in another templating engine [00:56] tbranyen: seems lame in my book [00:57] Vertice: yup [00:57] avalanche123 has joined the channel [00:57] jmoyers: shrug [00:57] jmoyers: jade doesn't stop you from using plain text [00:57] jmoyers: i understand your point, mind you [00:57] jmoyers: it just doesn't matter for a lot of use cases [00:57] tbranyen: pretty much yeah [00:57] jmoyers: sometimes its okay to use a very specific tool for a very specific job [00:58] Vertice: it does also feel frustrating to limit yourself because you might need to use somethng else at some point [00:58] tbranyen: right, glad there is competition to help narrow down the most specific tool [00:58] Vertice: yup [00:58] jmoyers: limiting yourself is a principle of good design [00:58] forzan has joined the channel [00:59] Vertice: sure, but when all you have is a hammer.. [00:59] tbranyen: make lemonade [00:59] Vertice: using the right tool for a job shouldnt be such a painful decision [01:00] jmoyers: templating languages aren't painful! :-) [01:00] jmoyers: pick and go [01:01] jmoyers: ACTION nom nom nom, 6pm hungry time [01:01] Vertice: yeah. 3am, me too [01:01] Vertice: cheers guys =) [01:01] forzan has joined the channel [01:01] jvduf has joined the channel [01:03] abraxas has joined the channel [01:04] olalonde has left the channel [01:04] jamescarr has joined the channel [01:05] tonymilne has joined the channel [01:05] wookiehangover has joined the channel [01:06] jamescarr: tjgillies, [01:06] darshanshankar has joined the channel [01:10] jvduf has joined the channel [01:11] mundanity has joined the channel [01:11] timmywil has joined the channel [01:13] donaldpcook has joined the channel [01:16] piscisaureus has joined the channel [01:19] eee_c has joined the channel [01:19] Wizek: What does EPIPE and ECONNABORTED mean? [01:20] rbranson: google knoz [01:24] ChrisPartridge: isaacs: any idea how big the current npm couchdb is? [01:24] piscisaureus has joined the channel [01:25] isaacs: ChrisPartridge: about 2978222186 bytes [01:25] isaacs: ChrisBuchholz: http://isaacs.ic.ht/registry [01:25] ChrisPartridge: Thanks [01:25] isaacs: 2.8 GB [01:26] isaacs: np [01:26] isaacs: http://isaacs.ic.ht/_utils/ [01:26] isaacs: also handy [01:26] ChrisPartridge: Thought it would be bigger [01:26] alek_br__ has joined the channel [01:26] isaacs: you can log in with your npm username and password [01:26] tauren: I'm getting a build failed on ubuntu 9.10: {task: libv8.a SConstruct -> libv8.a}. looks like obj/release/mksnapshot isn't created. lots of these errors: /bin/bash: o: command not found [01:26] tauren: what is the "o" command, and how would I install it? [01:26] sechrist_ has joined the channel [01:26] rictic has joined the channel [01:29] jvduf has joined the channel [01:30] brianc1 has joined the channel [01:31] bingomanatee has joined the channel [01:32] brettgoulder has joined the channel [01:33] jacter has joined the channel [01:33] pt_tr has joined the channel [01:35] caseywstark_ has joined the channel [01:36] Sidnicious has joined the channel [01:36] Sidnicious: Greetz. I'm just starting to play with mongoose and trying to understand what's going on here: #000400 [01:36] mscdex: tauren: gist the entire build output [01:36] Sidnicious: Er, here: https://gist.github.com/42489a40fe1c32424ec5 [01:37] brweber2 has joined the channel [01:37] Sidnicious: (It seems that embedded documents “contain” the parent document — methods and keys can be accessed just the same on the someThing.embedded as someThing itself) [01:38] azeroth__ has joined the channel [01:39] captain_morgan has joined the channel [01:39] morganallen_ has joined the channel [01:39] forzan has joined the channel [01:40] kriskowal has joined the channel [01:41] tauren: mscdex: I just posted some of the output to the nodejs list [01:41] benmonty_ has joined the channel [01:42] tauren: my ssh buffer is too small to grab the whole output of make [01:42] tbranyen: sounds like a personal problem [01:42] tbranyen: i remember being a kid and having small buffers, was easier to flush [01:42] tauren: and make 2>&1 out.txt doesn't seem to work. i'm sure i'm not doing it right. [01:43] bbttxu has joined the channel [01:43] tauren: tbranyen: i've got plenty of personal problems! ;) [01:43] ezl has joined the channel [01:44] k1ttty has joined the channel [01:46] philhawksworth1 has joined the channel [01:47] truedat101 has joined the channel [01:48] mynyml has joined the channel [01:48] hij1nx has joined the channel [01:48] brettgoulder has joined the channel [01:49] v0idless-_ has joined the channel [01:50] materialdesigner has joined the channel [01:51] jerrysv has joined the channel [01:53] btipling has joined the channel [01:54] jerrysv: i guess the templating discussion has ended? [01:54] tbranyen: rekindle it [01:54] jerrysv: no thanks :) [01:54] tbranyen: https://gist.github.com/994418 [01:54] tbranyen: is where i ended [01:55] Sidnicious has joined the channel [01:55] wano: jerrysv: blue dot: the universe's apology for having to stare at shitty code all week [01:55] jerrysv: wano: glad to hear it [01:55] jerrysv: wano: did you go to tbranyen's gist? sounds right up your alley [01:56] pandeiro has joined the channel [01:56] jerrysv: wano: lagunitas undercover shutdown ale for me [01:57] wano: picked up 2 blue dots and a hop stoopid on my way out [01:57] jerrysv: i still have some blue dot and pliny in the fridge [01:57] tauren: mscdex: https://gist.github.com/994504 [01:57] rputikar has joined the channel [01:57] wano: thats very similar to will's functional templates system actually [01:57] wano: i wonder if he's still using that [01:57] pluginbaby has joined the channel [01:58] jerrysv: the filters is what made me think of you [01:58] jerrysv: is = are, wow, my brain is already on vacation [01:58] tauren: mscdex: see the bottom for the error and notice the "o" command not found all over the output. any ideas? [01:58] wano: haha [01:59] jerrysv: tauren: were you at the js admirers group? [01:59] tauren: nope, didn't make it. [02:00] tauren: daughter had soccer practice from 5:30 to 7 and her mom couldn't take her... [02:00] tauren: did you go? [02:00] ckknight: tbranyen: I think one thing that'd be handy is having a safe output of a variable and an unsafe output, so that if you're doing an HTML template, you can define the safe function, which would be different if you were outputting to a different format [02:00] miccolis has joined the channel [02:00] jerrysv: yeah, it was pretty good [02:00] tauren: what topics? [02:00] tbranyen: ckknight: wouldn't that be a filter in this case? [02:00] tbranyen: {%filter output|safe%} [02:01] tbranyen: and then you can define your own definition of safe [02:01] ckknight: tbranyen: I wouldn't use that system unless it was safe by default. [02:01] caseywstark has joined the channel [02:01] jerrysv: jsconf and nodeconf, specifically we covered the future of js, transcompilers, node addons, and a lot of theoretical discussion that was fun [02:01] tmpvar has joined the channel [02:01] tbranyen: ckknight: the idea is not to assume this is going to be used for any specific purpose [02:01] tbranyen: especially not html [02:01] jerrysv: and some other stuff that i forget :) [02:01] tbranyen: it is very well suited for html [02:01] yozgrahame has joined the channel [02:02] tauren: jerrysv: sounds good. i was going to check out the webex, assuming they made it public [02:02] ckknight: tbranyen: and other formats have different definitions of safe, and some might have safe be the same as unsafe. I'd still want a way to define the safe filter and have it auto-apply [02:02] jerrysv: tauren: it was last night [02:02] jerrysv: duncanbeevers: you around? [02:02] tbranyen: ckknight: definitely can accomodate that, the idea would be to make the template engine extensible, not black box [02:02] tauren: jerrysv: i mean, i think they recorded it with webex. [02:03] tbranyen: so maybe hooks [02:03] davidcoallier has joined the channel [02:03] jerrysv: tauren: that was the plan, but not sure how much was picked up on the computer mic [02:03] ckknight: tbranyen: oh yeah, no doubt about that [02:03] jerrysv: wano: still on the fb app, or moving back to node tonight? [02:04] tauren: jerrysv: yeah, maybe it woudn't be worth it. i'll try to make it next month. what was the turnout? [02:04] jerrysv: tauren: if memory serves, about 20-22? [02:05] tauren: nice, more than i thought there would be then [02:05] wano: jerrysv: my hope is a little of both [02:06] jerrysv: i'm planning on moving on to my judy arrays, end up staying up late maybe [02:07] tmpvar: judy arrays/ [02:07] tmpvar: ? [02:08] tmpvar: ah, google [02:08] jerrysv: tmpvar: yeah, i built an add-on with judy arrays [02:08] tauren: http://en.wikipedia.org/wiki/Judy_array [02:08] jerrysv: https://github.com/JerrySievert/node-judy [02:08] jerrysv: and some benchmarks here: http://legitimatesounding.com/blog/Faster_sometimes_Associative_Arrays_with_Node_js.html [02:08] jerrysv: my c++ is a tiny bit rusty though [02:09] wano: i might swerve into something more browser-sidey though.. it'd be hella refreshing [02:09] jerrysv: have you cracked open that js from that app yet? [02:09] wano: kinda wanna see how far i can push Hype [02:09] jerrysv: because i didn't in my code review [02:10] wano: bits of it, not enough to analyze though i was just fixing the asset path stuff that was on the js side [02:11] jerrysv: hype looks fun [02:11] pluginbaby: what's hype [02:11] wano: just browsed through a few of them though and they honestly dont seem nearly as bad as the php side [02:11] igl1 has joined the channel [02:11] wano: pluginbaby: http://tumultco.com/ [02:11] pluginbaby: oh dang [02:12] wano: yeah most of the js in this is fairly standard beginner-level jQ stuff, i doubt i'll need to clean that out too much [02:12] davidbanham has joined the channel [02:13] wano: the word "celebrant" in this keeps cracking me up [02:14] wano: thats pretty much the last thing i would have picked to call it, even though it fits pretty well [02:16] davidcoa1lier has joined the channel [02:18] brettgoulder has joined the channel [02:18] Sidnicious has joined the channel [02:19] bingomanatee: is there a good node library that can read gs/color data from images? [02:19] tbranyen: ckknight: https://gist.github.com/994418 [02:19] tbranyen: added teh concept of hooks [02:20] pluginbaby: quick query. any easy to use image manipulation software I can use to resize images on the fly in node? [02:20] benmonty has joined the channel [02:21] kuhrt has joined the channel [02:21] jvduf has joined the channel [02:21] benmonty has left the channel [02:22] jacter has joined the channel [02:23] dget has joined the channel [02:24] mscdex: pluginbaby: https://github.com/joyent/node/wiki/modules#graphics [02:25] yozgrahame has joined the channel [02:25] pluginbaby: lol, thanks mscdex [02:25] pluginbaby: i was actually browsing the node when u posted it [02:25] febits has joined the channel [02:26] italic has joined the channel [02:26] vikstrous has joined the channel [02:26] gavin_huang has joined the channel [02:26] mscdex: tauren: don't use master branch, use 0.4.8 [02:26] jslatts has joined the channel [02:27] tauren: mscdex: ok, will do. but that probably won't affect the compile problem of the "o" command not being found. [02:28] Aria has joined the channel [02:28] Dreamer3 has joined the channel [02:28] mscdex: tauren: it might, give it a try [02:28] pandeiro has joined the channel [02:28] jackhq has joined the channel [02:30] jtsnow has joined the channel [02:30] italic: mscdex: hey, i've been playing around with your ncurses bindings, thanks! when i get an error my terminal get borked, any ideas? [02:30] vikstrous has joined the channel [02:30] tauren: mscdex: i'll certainly give it a try [02:31] mscdex: italic: what error? [02:31] mscdex: italic: you can always execute `reset` in your terminal [02:31] EyePulp has joined the channel [02:31] italic: mscdex: any error, not with the ncurses lib [02:31] mscdex: hrmm... [02:32] digiwano: hrmf [02:32] digiwano: i still dont know if im doing this nicely [02:32] italic: mscdex: yes, reset works, i didn't know if i was not closing everything down proper [02:33] abraham has joined the channel [02:33] jerrysv: wano: ? [02:34] digiwano: jerrysv: the plugin-y part of my lib [02:34] mscdex: italic: well, if you catch the error, you should be able to reset back to cooked mode with nc.reset() or something [02:34] mscdex: i'd have to look again [02:34] jslatts_ has joined the channel [02:35] plutoniix has joined the channel [02:35] digiwano: i want people to be able to extend my library in a plugin style, so they'd define something and tell me its filename or the dir its in, and i read that plugin and extend my lib to have their functionality defined [02:35] mscdex: i was close, it's nc.cleanup() [02:35] digiwano: i havent been able to find anything else in node-land that does something like that, so im unsure of how it should be done [02:36] mscdex: digiwano: just have each plugin use the same interface and be a regular module [02:36] italic: mscdex: thanks, i'll work with that. is there an option to compile your ncurses with 256 color support? [02:36] digiwano: mscdex: how do you mean 'use the same interface'? [02:37] mscdex: italic: it's automatically compiled in with that support iirc, you just have to set your TERM env var appropriately [02:37] digiwano: right now what im doing is, letting them define module.exports.MyLibName object that has k/v pairs of name/function, and reading those key/values and adding them [02:37] mscdex: digiwano: uses the same function names, parameters, etc [02:37] digiwano: well, myLibNamePlugins [02:38] digiwano: mscdex: well basically any plugin is more or less an async.js-compatible function that just takes a next parameter [02:39] tauren: mscdex: unfortunately, working with v0.4.8 has same compile problems [02:39] matias has joined the channel [02:39] mscdex: digiwano: something like: var Foo = module.exports = function(pluginOpts) { }; Foo.prototype.pluginMethod = function(){}; [02:39] mscdex: digiwano: then: var foo = require('./fooplugin'); foo.pluginMethod(); [02:39] italic: mscdex: hmm, i can see 256 colors when i test outside of node, but inside i'm just seeing 8 [02:41] mscdex: tauren: what does your ./configure output look like? [02:41] jslatts has joined the channel [02:41] mscdex: italic: hmm [02:41] Guest27158 has joined the channel [02:42] jtsnow has joined the channel [02:42] tauren: mscdex: https://gist.github.com/994545 [02:42] ditesh|cassini has joined the channel [02:43] mscdex: italic: what TERM are you using? [02:43] sorens3n: hey guys, can i poll you? [02:43] sorens3n: now.js vs. dnode? [02:43] sorens3n: i have a few people asking me [02:43] mscdex: polling is no good [02:43] mscdex: :p [02:44] darshanshankar: ^ LOL [02:44] sorens3n: well, then just general comments / suggestions [02:44] slicky: at this point I prefer dnode :) [02:44] sorens3n: i already have a bias, but i wont say since i think it will sway the convo [02:44] digiwano: mscdex: hrm, i was trying to be a bit more magic than that, this is basically just a css/js resource compiler, and any given plugin is just a set of functions that does something like 'minify this css file', so i'd like to make it so that any css minifier could define one little function to their api to make their lib itself work as a plugin for my library [02:44] darshanshankar: same, but id love to hear the reasonings for both sides [02:44] mscdex: sorens3n: well, with dnode you get live tech support from SubStack in here :-D [02:45] digiwano: maybe im trying to be too magic [02:45] tbranyen: yeah you never get live node.js help in here [02:45] digiwano: i am quite often guilty of that [02:45] tbranyen: ever [02:45] sorens3n: as a refrence, i used now.js when it was new [02:45] sorens3n: before the 'group' feature shit [02:45] slicky: wait this is node.js channel? shit, i thought I was in #ruby [02:45] italic: mscdex: screen in xfce term, but i've tried others. if set up my term to run that script 256colors2.pl fine, but nc.numColors still returns 8 [02:46] digiwano: but i thought it'd be cool if any random node library that's involved in processing css or js could just build in support for my lib [02:46] keeth has joined the channel [02:46] jerrysv: digiwano: keep it simple [02:46] mscdex: italic: i've only tested with the 256 color xterm TERM value [02:46] darshanshankar: sorens3n: nowjs still needs stuff like addressing individual clients and excluding clients [02:47] sorens3n: ah, good to know [02:47] sorens3n: <-- dnode [02:47] sorens3n: mad love [02:47] sorens3n: i hate now.js for... no particular reason other than it asumming what i want to do with it [02:47] sorens3n: imho [02:47] DelvarWorld has joined the channel [02:47] mscdex: italic: try: export TERM=xterm-256color [02:47] mike5w3c has joined the channel [02:47] mscdex: italic: then try running the color test in the examples/ dir [02:48] darshanshankar: could you expand on that sorens3n ? (im just trying to learn, you wont hurt my feelings lol) [02:48] digiwano: jerrysv: yeah, honestly the thing that keeps tripping me up is that i'd like to have this 100% configurable by just a .json file and not requiring you to make a custom compiler.js that adds your plugins for you... wondering if i should abandon that [02:49] digiwano: it's cute but i feel like trying to implement that is just causing me to have to solve even bigger problems [02:49] jerrysv: digiwano: ever expanding scope, gotta cut your losses somewhere [02:49] jerrysv: go back and refactor later [02:49] digiwano: yeah but i really like the idea and its hard to let go of [02:50] rchavik has joined the channel [02:50] omni5cience_ has joined the channel [02:50] italic: mscdex: yup, that did it. evidently screen was supporting 256, but the term wasn't. 'tput colors' was still returning 8. thanks! [02:51] digiwano: and the only deadline this thing has is that i want to use it both at work and in side projects [02:51] mscdex: cool :) [02:51] DelvarWorld: ;(x || y).doSomething() [02:51] jerrysv: then come up with a simple solution for now, find another reason to get the plugin system built? [02:51] DelvarWorld: isaacs you crazy [02:51] sorens3n: darsh: now.js worked for me when i first staretd using it, but when i tried to expand upon it i found ti very difficult [02:51] isaacs: DelvarWorld: :) [02:51] jmoyers: sorens3n: i spoke to one of the nowjs guys last weekend [02:51] sorens3n: dnode had a higher learning curve imo, but i found it very more versitile and expandable [02:51] jmoyers: they were saying the main thing is clustering/commercial support [02:51] digiwano: jerrysv: yeah im leaning towards that... of course, at this point, that's only more work before i feel like its good enough for other people to look at [02:52] darshanshankar: interesting, i haven't heard that before [02:52] jmoyers: dnode and now do almost identical things -- dnode is cross platform though (the protocol that is), which is great [02:52] pluginbaby has left the channel [02:52] sorens3n: i can roll my own pub/sub in dnode with no limitations, now.js seems to assume that i need them to do it for me [02:52] darshanshankar: ya thats the biggest benefit dnode has, imho [02:52] mykul has joined the channel [02:52] jmoyers: i know substack has been trying to get them to just use the dnode over the wire protocol with no success [02:52] darshanshankar: jmoyers: i think its just too late to rewrite everything with dnode protocol [02:53] jmoyers: im sure they have investment in what they've written, yes [02:53] digiwano: but i think that simplifying it as, "if you want to define a plugin, you need to just call Auton.addPlugin('name', plugin_function)" and just leave it at that [02:54] digiwano: is probably the best plan of action [02:54] digiwano: regardless of how much code i'll have to rip out to do that [02:54] gavin_huang has joined the channel [02:54] digiwano: which honestly is not that much [02:55] ngs has joined the channel [02:55] darshanshankar: sorens3n: but isn't pub/sub just one use case? [02:56] darshanshankar: sorens3n: and i think pub/sub works better now, especially with groups [02:56] jerrysv: why even call Auton.addPlugin() ? [02:56] abraham has joined the channel [02:56] jerrysv: just have a plugins directory [02:56] guybrush: darshanshankar: nowjs based upon dnode-protocol would be sweet :D (i really like the middlware-concept -- dnode.use() ftw) [02:56] sorens3n: hmmm [02:57] _jgr has joined the channel [02:57] jerrysv: each plugin uses something like module.exports.pluginSetup = function (...) [02:57] sorens3n: darsh: yes, it is, but node.js seems to assume what/how i should do it [02:57] jerrysv: and have each plugin register itself -- only plugins in the plugins directory get loaded [02:57] sorens3n: express.js doesnt assume how i should make a blog... [02:57] sorens3n: as a comparison [02:57] jmoyers: rpc != pubsub [02:57] sorens3n: most true [02:57] digiwano: jerrysv: well obviously i'd still have a function for both adding a dir and a file, and automagically adding functions exported from those [02:58] sorens3n: pubsub is just an example use case [02:58] sorens3n: and the reason i bring it up is that its a now.js 'feature' [02:58] jerrysv: set plugin directory paths via an env [02:58] digiwano: but if you're just defining one plugin that's just 4 line function, requiring you to have a plugins dir sounds cruel when its something you could do inline in your script [02:58] darshanshankar: hmm i need to think about this [02:58] darshanshankar: brb! [02:58] sorens3n: as a background, i was looking to do backbone.js integration with CRUD and pub/sub support [02:58] jerrysv: export AUTON_DIR=~/plugins:/usr/local/auton/plugins [02:59] sorens3n: i went from now.js to juggernaut to dnode [02:59] sorens3n: and have had nothing but ease of use with dnode above all [02:59] sorens3n: no limitations other than the current IE problem [02:59] sorens3n: which... besides the 'fuck IE' i'm sure it can be fixed just like it was before [03:00] digiwano: jerrysv: heh ok, i will also do that [03:00] jmoyers: out of curiosity, which use rpc style at all? [03:00] sorens3n: which / why? [03:00] slicky: sorens3n, any of it OSS and viewable? I'm curious to see what you've come up with :) [03:00] jmoyers: its pretty easy to use socket.io and re-emit custom events etc [03:00] guybrush: jmoyers: true [03:00] jmoyers: or 0.7 with builtin custom events/channels [03:00] sorens3n: https://github.com/sorensen/backbone-redis [03:00] tauren: sorens3n: i've been looking for resources on doing backbone.js using dnode. are you sharing any thoughts or code somewhere? [03:00] sorens3n: that was my first integration modeling the juggernaut library [03:01] sorens3n: https://github.com/sorensen/backbone-dnode was the second attempt [03:01] sorens3n: i have an app up at http://sorensen.no.de [03:01] guybrush: jmoyers: i use dnode not because it makes using socketio easier [03:01] sorens3n: which is backbone.js/mongoose/dnode [03:01] jerrysv: digiwano: and have an argument you can pass in with --plugin-directory= or whatever [03:01] sorens3n: but im undecided as to make it OSS or not [03:01] digiwano: oh, yeah good call [03:01] sorens3n: tauren, i would love to [03:01] guybrush: jmoyers: it is just a "standard" way to do things - like passing callbacks through rpc [03:01] sorens3n: i will update my backbone-dnode repo right now [03:02] jmoyers: guybrush: ah [03:02] sorens3n: to the current project [03:02] jmoyers: i prefer state over the wire [03:02] jmoyers: and looser coupling wrt how state changes are handled i guess [03:02] jerrysv: digiwano: i use optimist [03:02] guybrush: jmoyers: with dnode you can implement rpc between server/client (must not be browser) very easy! [03:02] tauren: sorens3n: so backbone-dnode is your latest experiments with this? [03:02] jmoyers: right, i get that -- there are use cases for rpc [03:03] jmoyers: but for a single page app, i don't get the benefits [03:03] guybrush: yes [03:03] digiwano: jerrysv: i'll look into that i havent done that part at all yet [03:03] guybrush: well.. the benefit is, i can write everything against a protocol [03:03] guybrush: so it will stick together fine with other stuff written the same way [03:03] sorens3n: well... the latest is not OSS anymore [03:03] sorens3n: i [03:04] sorens3n: i'm considering making something commercial out of it, so i removed it from public [03:04] jmoyers: json as state over the wire sticks together with things also [03:04] sorens3n: but idk [03:04] jmoyers: and i can stick it directly into a message queue [03:04] jmoyers: like rabbit etc [03:04] sorens3n: if you want to see it i will public it [03:04] tauren: sorens3n: understood, just wanting some examples to look at [03:04] slicky: sorens3n, I'd love to see it :) [03:04] guybrush: i do everything the dnode way -> results in very "stack"able modules (note the wordplay :D) [03:04] sorens3n: yep, i will public it [03:04] slicky: tauren: same :D [03:04] tauren: sorens3n: sweet [03:04] sorens3n: just dont make any money or i'll be jelly [03:04] sorens3n: :D [03:04] DelvarWorld: isaacs: dammit man, tell me where I should put my bundleddepenecy folder, could I put it in node_modules, or is that npm only territory? if not, would "bundledDependencies": ["node-couchdb"] mean that it loads it from ./node-couchdb relative to the root of your project? [03:05] sorens3n: have you looked at http://sorensen.no.de ? [03:05] langworthy has joined the channel [03:05] slicky: sorens3n: Yeah, looks pretty slick [03:05] sorens3n: https://github.com/sorensen/aebleskiver [03:05] sorens3n: take a look [03:06] sorens3n: the lib/protocol-* methods are the serverside dnodes [03:06] sorens3n: and public/rpc/* are the client [03:06] sorens3n: its integrated into backbone.js like woa [03:06] sorens3n: feel free to use any of those [03:06] sorens3n: i'm only worried about the model/views [03:06] sorens3n: which are the actual business logic [03:07] sorens3n: but obviously underdeveloped to the point i'm not severely concerened [03:07] digiwano: jerrysv: ok, looked into and decided on, that lib is cool as heck [03:07] Emmanuel has joined the channel [03:07] sorens3n: i will leave it public for 24 hours [03:07] sorens3n: i'm worried about the marketing type just grabbing the repo that i might turn into a business, which is my own problem really [03:07] sorens3n: for not making something happen with it already [03:07] tauren: sorens3n: aebleskiver is your latest, surpasses backbone-dnode? i see it uses mongo for persistence, great! [03:08] sorens3n: :D i need to update backbone-ddnode [03:08] sorens3n: with everything there [03:08] sorens3n: the protocols and rpc folder will all be OSS [03:08] slicky: sorens3n: cool, thanks... I basically want to see how you implemented the backbone/socketio and datastorage aspects [03:08] sorens3n: i just havn't ripped them again lately [03:08] sorens3n: i develop utilities based on projects [03:08] tauren: sorens3n: same here, i'm with slicky . no plans to rip you off! :) [03:09] sorens3n: no worries, or i wouldn't have showed you [03:09] sorens3n: just felt the need to explain myself to a fellow hacker [03:09] sorens3n: tthat i'm not a douche [03:09] sorens3n: :D [03:10] sorens3n: if i can do anything to help the community, i'm happy [03:10] sorens3n: since i've taken so much from it [03:10] sorens3n: express/mongoose/keys/dnode/connect/socket.io ect... [03:10] slicky: sorens3n: very commendable of you, sir :) [03:11] tauren: sorens3n: been looking into 0mq lately. any thoughts on if it would be useful in your stack? [03:11] guybrush: sorens3n++ :) [03:11] guybrush: sorens3n++ [03:11] v8bot: guybrush has given a beer to sorens3n. sorens3n now has 1 beers. [03:11] guybrush: it doesnt work with smilies :/ [03:11] jmoyers: thats a feature [03:11] sorens3n: not familiar with 0mq [03:12] jerrysv: digiwano: exactly how i felt [03:12] slicky: sorens3n: your project makes me hungry for some reason, not sure why [03:12] sorens3n: hehehe [03:12] sorens3n: im very danish [03:12] sorens3n: i will be eating those saturday [03:12] jmoyers: 0mq is not useful in this particular context [03:12] sorens3n: at tivolifest [03:12] sorens3n: can someone explain it to me in a sentance? [03:12] sorens3n: google gave too many results [03:13] tauren: jmoyers: care to elaborate? [03:13] sorens3n: 0 message queue? [03:13] jmoyers: damn decent for things that have client libraries for it [03:13] jmoyers: sure [03:13] slicky: https://github.com/zeromq/zeromq2 [03:13] tauren: sorens3n: http://www.zeromq.org/ [03:13] jmoyers: its a brokerless message queue -- a way of creating exchanges (topic/fanout/whatever) based on no central server node [03:13] sorens3n: i will say as a forewarning, that these packages use thread-memory [03:13] jmoyers: its got client libraries in many languages [03:13] jmoyers: but as far as i know, it has no use case for server -> browser [03:13] sorens3n: my next step is moving the thread-memory things to redis storage [03:13] jmoyers: server -> server, or server -> desktop client, yes [03:13] sorens3n: like the clients / subscriptions [03:13] xandrews has joined the channel [03:14] sorens3n: which i could use natively in redis, but i prefer not to since it seems limiting to me, even though it might be better perfomance [03:15] jmoyers: well [03:15] sorens3n: i started using redis-pubsub, but i dont want to be stuck using redis [03:15] sorens3n: so0z [03:15] jmoyers: it supports more complex channel structures than reg pubsub from redis [03:15] jmoyers: also, redis has a server node involved [03:15] tauren: jmoyers: but would using 0mq or similar help to scale the app on the server? so server-server communication? [03:15] jmoyers: this is brokerless [03:15] sorens3n: ah, i'd just assume try to do that in dnode, just even ffor the learning if nothing else [03:15] jmoyers: its a general purpose networking library [03:16] sorens3n: though, would that help me solve a video sharing problem? [03:16] Corren has joined the channel [03:16] sorens3n: i wanted to stream webcams [03:16] jakehow has joined the channel [03:16] jmoyers: it doesn't have built in persistence and things that are features of other message queue like technologies, but its made to be fast and distributed [03:16] sorens3n: node-canvas n such, but thats not possible [03:16] sorens3n: too slow [03:16] jtsnow: Anyone use node-http-proxy? I'm looking for a way to alter the proxied response before it's sent to the browser [03:16] sorens3n: figured i'd have to use adobe cirrus [03:17] jmoyers: tauren: 'scale an app on the server' is too broad [03:17] slicky: jtsnow: Have you tried Hoxy? [03:17] slicky: jtsnow: https://github.com/greim/hoxy [03:17] jtsnow: slicky: I haven't, I'll take a look [03:18] sorens3n: mmm, not sure of the benefits of http-proxy [03:18] sorens3n: i know i need to use something like Cluster... [03:18] sorens3n: but beyond that... bleh [03:18] sorens3n: i went from PHP to node.js [03:19] sorens3n: so forgive me if i say some nub shit [03:19] rictic has joined the channel [03:19] jmoyers: cluster is multi-process [03:19] jmoyers: proxy can be multi-server [03:20] polvero has joined the channel [03:20] jmoyers: typically use something like nginx to do load balancing across mutliple servers [03:20] jmoyers: node-http-proxy is filling a similar use case [03:20] eyesUnclouded has joined the channel [03:21] SubStack: hah I missed the dnode party [03:21] jmoyers: you did [03:21] jslatts has joined the channel [03:22] mscdex: SubStack: yeah, there was cake [03:22] sorens3n: i know NOTHING about nginx [03:22] slicky: SubStack: It's okay, you can make up for it now. Just stop, collaborate and listen; Substack is back with a brand new invention. [03:22] mscdex: what's the brand new invention? :O [03:22] darshanshankar: hahaha slicky [03:23] dhasenan: s/invention/indentation [03:23] SubStack: CAKE EH? [03:23] slicky: lol [03:23] mertonium has joined the channel [03:24] sorens3n: dude, why did i not get that cake [03:24] sorens3n: me hungry [03:24] sorens3n: :D [03:24] sorens3n: peice of cake* [03:24] SubStack: http://substack.net/images/dnode-slides/sky_cake.png [03:24] sorens3n: cuz the cake mos def goes to substack [03:24] sorens3n: LOL [03:24] SubStack: that was in my nodeconf talk [03:24] darshanshankar: man now im hungry too [03:25] slicky: me2 [03:25] sorens3n: <-- never been to a conference of any sorts [03:25] tauren: starving [03:25] sorens3n: <--- lone nebraska hacker [03:25] jerrysv: SubStack++ [03:25] v8bot: jerrysv has given a beer to SubStack. SubStack now has 32 beers. [03:25] jerrysv: (for the cake) [03:25] sorens3n: this is the epitomy of my socializing [03:25] darshanshankar: you know, mscdex deserves a beer for the polling joke [03:25] darshanshankar: mscdex++ [03:25] v8bot: darshanshankar has given a beer to mscdex. mscdex now has 17 beers. [03:26] mscdex: ;) [03:26] tauren: sorens3n: you're not alone. i'm a lone hacker in portland [03:26] harth has joined the channel [03:26] seivan has joined the channel [03:26] darshanshankar: tauren: lol there are plenty of hackers in portland! [03:26] sorens3n: isn't portland a good hacker grounds [03:26] jerrysv: tauren: doubtful [03:26] sorens3n: cuz i tell you what, nebraska sure as shit aint [03:26] jerrysv: tauren: digiwano and i are both from pdx [03:26] mscdex: i'm a lone hacker in ohio [03:26] mscdex: :p [03:26] sorens3n: oh no i feel for mscdex [03:27] tauren: dabbling my toes in node for the first time, i feel alone in pdx [03:27] xandrews has joined the channel [03:27] digiwano: well [03:27] jerrysv: tauren: we just had friggen nodeconf here ! [03:27] digiwano: "from" is debatable in my case, i've lived here less than 2y [03:27] tauren: lol! [03:28] tauren: i just don't know any of you yet! i hope to soon! [03:28] digiwano: but i tell you what i aint never goin back [03:28] sorens3n: w8, go back where? [03:28] sorens3n: portland [03:29] digiwano: no ive only lived in portland 2y, before that i lived in salt lake city all my life [03:29] darshanshankar: does anyone in berkeley/oakland/sf actually want to get dinner...? im starving now with all this cake talk [03:29] sorens3n: hey! you oakland guys [03:29] sorens3n: go to Jennies Cafe on grand lake [03:29] sorens3n: i love that gal [03:29] digiwano: and this place >>>>>>> that place [03:29] tonymilne has joined the channel [03:30] digiwano: if only for the beer [03:30] jerrysv: mmm. beer. [03:30] tauren: digiwano: i've got a client in SLC [03:30] sorens3n: darsh: go to jennies when u can [03:30] sorens3n: mad goooooood samiches [03:30] darshanshankar: sorens3n: hmm i will [03:30] sorens3n: i worked there for a year [03:30] tauren: he definitely enjoys coming to pdx [03:30] sorens3n: i only visit and she knows me by heart [03:30] darshanshankar: ahh [03:31] sorens3n: which is a testimate to the kind of lady she is [03:31] sorens3n: since i live in NE [03:31] aheckmann has joined the channel [03:31] digiwano: tauren: yeah i've heard of a bunch of people moving from there to here [03:32] digiwano: know personally 2 others [03:32] digiwano: moved up after they did [03:32] digiwano: wait 3 [03:32] digiwano: though one's down in central oregon now so [03:32] aheckmann has left the channel [03:32] digiwano: and i never see one of the other two [03:32] tauren: i visited there a few years back for a USA mens national team (soccer) game. the stadium didn't serve beer! WTF!? [03:33] digiwano: yeah, almost nothing does, alcohol-wise its a way fucked up place [03:33] digiwano: even the grocery stores are limited to selling 3.2 ABV at max [03:33] tauren: i couldn't even get drunk at a bar, everythign was weak... [03:34] digiwano: anything higher you gotta go to the liquor store and they have a selection that's at best on par with your average grocery store here [03:34] digiwano: yeah you gotta know your bars down there [03:34] digiwano: the bayou's awesome though [03:34] tauren: but i still had a good time [03:34] digiwano: and im a big fan of the dive bar across the street from the bayou [03:35] tauren: digiwano: what part of town are you in now (pdx)? [03:35] digiwano: but bayou keeps rougly ~100 import beers in stock with a good handful of them on tap [03:35] digiwano: live in SE right near reed, work in raleigh hills area [03:37] tauren: digiwano: ah, near Racoon then? [03:38] digiwano: very near [03:38] tauren: i used to live in multnomah village [03:38] digiwano: went there for lunch last week :3 [03:39] Spion_ has joined the channel [03:40] darshanshankar has joined the channel [03:41] darshanshankar: we should do another bbq sometime, i couldn't make the last one [03:41] webster has joined the channel [03:42] bad_at_math has joined the channel [03:42] ncb000gt: darshanshankar: come to the east coast and we might be able to convince voodootikigod to host another #jsbbq east :) [03:43] darshanshankar: i haven't been to the east coast in 10 years lol [03:43] ncb000gt: boo hiss [03:44] ncb000gt: darshanshankar: that just means you're planning one right now yea? [03:44] ncb000gt: :) [03:44] jerrysv: i'd love a jsbbq pdx [03:44] darshanshankar: i dont even have enough money in my bank account to afford a plane ticket lmao [03:44] darshanshankar: now that i coud do, jerrysv [03:45] ncb000gt: darshanshankar: what else is debt for? [03:45] ncb000gt: <.< [03:45] darshanshankar: lol [03:45] darshanshankar: f debt [03:45] ncb000gt: haha [03:45] jerrysv: darshanshankar: you in pdx? [03:45] darshanshankar: no im in berkeley [03:45] darshanshankar: but far closer than east coast! [03:45] digiwano: haha [03:45] darshanshankar: and ive been meaning to visit pdx area sometime [03:45] OneBraveHog has joined the channel [03:45] jerrysv: ha, much closer [03:46] amerine has joined the channel [03:46] ncb000gt: jerrysv: you're ruining my winning argument here... [03:46] jerrysv: ncb000gt: sorry. east coast ftw! [03:46] ncb000gt: hoo ray [03:46] ncb000gt: :) [03:46] brimster has joined the channel [03:47] beriberikix has joined the channel [03:49] tbranyen: east coast pwns west coast [03:49] ncb000gt: tbranyen: fuck yea [03:49] DelvarWorld: ncb000gt: hey there cutie [03:49] ncb000gt: oh christ [03:49] KirinDave has joined the channel [03:49] ncb000gt: I believe those were my earlier parting words with you DelvarWorld [03:49] ncb000gt: ... [03:50] darshanshankar: oh hey now [03:50] tim_smart has joined the channel [03:50] ncb000gt: darshanshankar: you should meetup with DelvarWorld for some drinks or food or some such [03:50] ncb000gt: he's new to SF [03:50] rputikar has joined the channel [03:50] DelvarWorld: aw [03:50] darshanshankar: DelvarWorld: where are you? the city? [03:51] DelvarWorld: yeah, a little north of chinese town [03:51] jmoyers: hah [03:51] broofa has joined the channel [03:51] supster has joined the channel [03:52] dspree has joined the channel [03:52] hermanjunge has joined the channel [03:52] darshanshankar: cool [03:54] DelvarWorld: i'm keeping my eyes peeled for ryan to go bother him [03:56] darshanshankar: dahl? [03:56] zeunix has joined the channel [03:56] DelvarWorld: yessir [03:57] BillyBreen has joined the channel [03:57] zeunix: any recommend a best practice for a pure node.js load balancer? I can imagine there are plenty of wrong ways to share the port, any recommendations (besides "don't do it" would be awesome) [04:00] ncb000gt: tbranyen: where in the EST are you? [04:00] tbranyen: ncb000gt: boston [04:01] tahu has joined the channel [04:01] vikstrous has joined the channel [04:01] skm has joined the channel [04:01] polvero has joined the channel [04:01] ExsysHost has joined the channel [04:04] brianloveswords has joined the channel [04:05] jerrysv: gah: i've got to compile -g, my pointer-fu is not as good as it used to be [04:06] ExsysTech has joined the channel [04:08] ncb000gt: tbranyen: nice, you should try to find thegreatape at some point [04:08] ncb000gt: he's moving up there in a couple weeks [04:09] tbranyen: ncb000gt: sweet, he should join my nodejs meetup group [04:09] xSmurf has joined the channel [04:11] sorens3n: so, when are you guys coming to the midwest for a node.js meetup? [04:11] sorens3n: :D [04:11] sorens3n: why us cornhuskers left out? [04:11] sorens3n: hehehe [04:11] jerrysv: sorens3n: wait, were you in town for nodeconf? [04:11] Viriix has joined the channel [04:11] sorens3n: (obvious troll is obvious) [04:11] chjj: ACTION is reppin the midwest [04:11] sorens3n: i live in omaha, so no [04:11] chjj: ACTION also needs more webscale [04:12] jerrysv: i swear i met someone in pdx for nodeconf from nebraska [04:12] sorens3n: wtf! [04:12] sorens3n: who!? [04:12] zeunix: sorens3n: omaha eh? I'm from Lincoln originally. Nice. [04:12] sorens3n: niiiice [04:12] jhurliman: zeunix, http://learnboost.github.com/cluster/ [04:12] zeunix: sorens3n: I didn't think any programmers lived in Nebraska...AT ALL. [04:12] jerrysv: wait, maybe indiana? [04:12] sorens3n: ahahahhaa [04:12] chjj: nebraska has computers? [04:12] jerrysv: he was nice, and from somewhere around there? [04:12] sorens3n: aaaaahahahahha [04:12] zeunix: hahahah [04:12] zeunix: so true. [04:12] sorens3n: nah, we all have covered wagons dawg [04:12] zeunix: hence why I moved to California [04:12] sorens3n: >.< [04:13] zeunix: I sure do miss the Nebraska ladies though [04:13] zeunix: damn [04:13] sorens3n: omaha is bigger than most cities [04:13] sorens3n: the rest of nebraska... meh [04:13] webster: chjj: minnesota doesn't deserve to be grouped in with the midwest ;) [04:15] chjj: minnesota is a terrible state, i hate this place [04:15] sorens3n: minnesota is not the midwest [04:15] chjj: im sick of being cold all the time [04:15] sorens3n: we dont think so anyways [04:15] chjj: haha [04:15] chjj: alright [04:15] sorens3n: us iowa/nebraska/KC people [04:15] sorens3n: fyi [04:15] sorens3n: great lakes region != midwest [04:16] chjj: alright alright, fine, calm down [04:16] sorens3n: hehe [04:16] sorens3n: i just type fast mang [04:16] sorens3n: no worries [04:16] chjj: i dont really care what this place is considered by whom, i dont like it here anyway [04:16] chjj: planning on moving elsewhere eventually [04:16] chjj: dont wanna grow old here [04:16] chjj: if im 30 and still living here ill be very disappointed in myself [04:17] zeunix: sorens3n: are you born and raised Omaha? [04:18] jvduf has joined the channel [04:18] jmoyers: http://kangax.github.com/fabric.js/test/demo/ - sigh, this is so slow with only a few 10's of 'images' on it [04:19] polvero has joined the channel [04:19] sorens3n: zeunix: yes [04:19] sorens3n: kinda [04:19] sorens3n: lived on a farm for 10 years near Valley [04:19] sorens3n: moved to omaha at 12 [04:19] sorens3n: after moving when i was 2 [04:19] sorens3n: we raised emu's! [04:19] sorens3n: :D [04:19] zeunix: I'm actually originally from Aurora, of all places. Yea I know.. [04:20] chjj: i want to move some place warm, any recommendations? [04:20] dmitry_ has joined the channel [04:20] SubStack: chjj: hawaii [04:20] chjj: sounds good [04:20] zeunix: chjj: California, but marry a respectable girl first. [04:21] SubStack: nah california can be cold as fuck, parts of it [04:21] fljitovak_ has joined the channel [04:21] zeunix: chjj: weather is amazing here in southern CA but the ladies, not so much. [04:21] chjj: why a respectable girl? [04:21] chjj: ah [04:21] ncb000gt: tbranyen: assuming he gets out of the house. :) [04:21] sorens3n: a girl from the midwest ;) [04:22] zeunix: chjj: at least in socal, the women are exactly like the stereotypes you think of when you think of socal women. [04:22] sorens3n: we have... values [04:22] sechrist has joined the channel [04:22] sorens3n: corn bread women are the best :D [04:22] zeunix: sorens3n: you is a lady? [04:22] sorens3n: hell no.. [04:22] chjj: haha, "social women" [04:22] SubStack: sorens3n.valueOf() [04:22] jmoyers: zeunix: you sir, are hanging out with the wrong ladies. [04:22] sorens3n: lol [04:22] Hamms has joined the channel [04:22] sorens3n: every place has its faults [04:22] zeunix: sorens3n: I was like wth a lady programmer AND who nodes? [04:22] chjj: not sure what that means, i think most people are social to a degree [04:22] sechrist has joined the channel [04:23] sorens3n: i find that most midwest girls have good values ( for the most part ) [04:23] sorens3n: LOL, is that even something that exists? [04:23] sorens3n: (to zeunix) [04:23] zeunix: sorens3n: I don't think so, hence my surprise [04:23] sorens3n: most girls around here do the medical route [04:23] jerrysv: huh? my SO is a girl, and codes, and likes node [04:23] sorens3n: we have a very good medical program [04:23] zeunix: sorens3n: hahah exactly [04:23] jerrysv: we went to jsconf and nodeconf together [04:24] sorens3n: dude, thats awesome [04:24] sorens3n: and... so cute ;) [04:24] sorens3n: <3 [04:24] chjj: i dunno, computer programming does seem to be a male profession for the most part [04:24] zeunix: jerrysv: put a ring on it. period. [04:24] jerrysv: zeunix: nah, was married before, not planning on that route again [04:24] jerrysv: that route 404's [04:24] chjj: lol [04:24] digiwano: haha [04:24] chjj: so nerdy [04:25] zeunix: jerrysv: you mean 500 ;) [04:25] chjj: no, its a 204 [04:25] jerrysv: zeunix: nope, no error, just not there [04:25] chjj: you mean [04:25] chjj: 410 [04:26] sorens3n: lol [04:26] zeunix: jmoyers: so where are all these respectable women in socal? [04:26] sorens3n: marriage 404's [04:26] sorens3n: i love it [04:26] jmoyers: i dont really get this respectable thing [04:26] sorens3n: are u sure its not a 400? [04:26] sorens3n: wrong params? [04:26] jmoyers: people are people [04:26] zeunix: jmoyers: are you born an raised socal? [04:26] jmoyers: all kinds are all over [04:26] jmoyers: nope, san francisco [04:26] chjj: sometimes i cant decide whether to use a 400 or a 500, i think i like 400 more, so i can blame the user [04:26] jmoyers: been to LA and friends plenty [04:26] sorens3n: ah, <3 sanfran [04:27] mertonium has joined the channel [04:27] jerrysv: hm. all of this is interesting, but i'm finding myself in a conundrum [04:27] sorens3n: 500 is when the server fucks up and there is no 400 [04:27] zeunix: jmoyers: maybe I was spoiled in nebraska, maybe they aren't "more respectable" maybe just different. [04:27] sorens3n: 400 is when the server cant even try to 500 cuz you didn't give it enough [04:27] sorens3n: unless we talking about marriage still [04:27] chjj: i know, but sometimes i want to do 400, just so i dont have to admit error [04:27] jerrysv: i'm storing data via a c++ add-on [04:27] chjj: and blame the user instead [04:27] sorens3n: hehehe [04:27] chjj: ;) [04:27] sorens3n: i like it [04:27] jerrysv: and storing and retrieving everything is a-ok [04:27] sorens3n: tho, its lying [04:27] sorens3n: and i dont like it! [04:27] sorens3n: >:( [04:27] chjj: hehe [04:28] sorens3n: <- srsly [04:28] jerrysv: but when i try to cast back to v8, it appears to be getting the bytes all screwed up [04:29] sorens3n: chjj: srsly [04:29] sorens3n: just had a conversation about this [04:29] chjj: haha, i was joking, calm down [04:29] sorens3n: cool [04:29] sorens3n: thats why i was saying i just had a convo about this, so i'm obviously on a tangent [04:30] sorens3n: my mind is biased [04:30] iori has joined the channel [04:30] sorens3n: it was a heated convo [04:30] sorens3n: :( [04:31] zivester has joined the channel [04:32] jesusabdullah: > function(a) { Math.max.apply(0,a);} [04:32] jesusabdullah: What am I doing wrong here? Math.max.apply y u no work on a? :S [04:32] SubStack: return [04:33] jesusabdullah: It only works if you return? [04:33] SubStack: if you actually want the result value [04:33] ChrisPartridge: ACTION laughs [04:33] jesusabdullah: What if I don't want to return? See, what's happening is that [04:33] jmoyers: ;-) [04:33] jesusabdullah: I have to .break [04:33] jesusabdullah: the repl [04:33] SubStack: too much coffeescript jesusabdullah tsk tsk! [04:33] sorens3n: woa! [04:33] MooGoo: that's not a valid expression [04:33] sorens3n: jesus talking to sub on node.js!? [04:33] sorens3n: wtf is going on [04:33] jesusabdullah: No, I don't actually *want* the value! I just want it to calculate it [04:33] sorens3n: i'm not in #stackvm am i? [04:33] sorens3n: :D [04:33] jesusabdullah: Naw [04:34] sorens3n: hehhee [04:34] sorens3n: just teasing [04:34] jesusabdullah: ;) [04:34] jesusabdullah: But why isn't that a valid expression, MooGoo ? [04:34] SubStack: put parens around it [04:34] jesusabdullah: around the whole thing? [04:34] jesusabdullah: er [04:34] SubStack: it's an anonymous function which is a syntax error so the repl puts a ... hoping that you can fix it but you can't [04:34] MooGoo: not enough $'s and ;'s [04:34] jesusabdullah: around the Math.stuff? [04:34] SubStack: whole thing [04:34] jesusabdullah: Oh, I see [04:34] jesusabdullah: Of course! [04:35] jesusabdullah: YUUP being an idiot! [04:36] beriberikix has joined the channel [04:38] messju has joined the channel [04:38] MooGoo: askdjaslkdj [04:39] temp01 has joined the channel [04:43] zeunix: jerrysv: btw I totally screen capped your 404 comment and got a good lol out of my buds. [04:44] jerrysv: zeunix: ha. glad to help [04:45] kawaz_air has joined the channel [04:45] Corren has joined the channel [04:47] darshanshankar has joined the channel [04:47] ezl has joined the channel [04:48] sechrist has joined the channel [04:48] digiwano: man hype is so cool [04:48] xandrews has joined the channel [04:49] rockymeza has joined the channel [04:50] chjj: digiwano: i prefer woman hype [04:51] dominictarr has joined the channel [04:51] dominictarr: has anyone used fs.symlink ? [04:51] jerrysv: jesusabdullah: moving from where to where? [04:52] jerrysv: anyone? v8 addons? [04:53] donaldpcook has joined the channel [04:53] MooGoo: what of em [04:53] davidcoallier has joined the channel [04:54] jerrysv: MooGoo: it seems that when i'm casting data from an argument to unsigned char *, everything seems ok, but when i try to cast back to a V8::String, i'm losing length and encoding [04:54] skohorn has joined the channel [04:55] jerrysv: looking for someone with a little more v8 addon experience than me :) [04:55] philhawksworth has joined the channel [04:56] MooGoo: just keep randomly changing keywords and functions until it compiles [04:56] MooGoo: that's what I do [04:56] MooGoo: I know less than you probable [04:56] MooGoo: y [04:56] MooGoo: can't figure out a way to get it to do the one thing I want it to [04:57] mertonium has joined the channel [04:59] jerrysv: moogoo: heh, i can compile no problem, and can store/retrieve any non-binary data just fine [05:00] nilcolor has joined the channel [05:01] jerrysv: guess i will just break this down to its most simple state and see what i can figure out [05:01] MooGoo: is there some node casting for buffer [05:01] mertonium_ has joined the channel [05:01] willwhite has joined the channel [05:02] jerrysv: moogoo: yeah, and i *believe* i'm doing that correctly [05:02] digiwano: jerrysv: look in the node src [05:03] jerrysv: digiwano: too much effort :) [05:03] digiwano: im sure they're doin that somewhere [05:03] digiwano: i dig into the .js side of the node source all the time [05:03] jerrysv: digiwano: was hoping to find someone first, before having to dig in too deep [05:04] jerrysv: digiwano: i dug into the base64 code this morning, which is where this is coming from [05:04] digiwano: nice [05:04] bad_at_math has joined the channel [05:04] digiwano: im about to lose my shit re: how awesome hype is [05:04] idefine has joined the channel [05:04] meso_ has joined the channel [05:04] digiwano: this thing is pretty much gamechanging at work [05:04] lstoll has joined the channel [05:05] jerrysv: digiwano: heh, build a quick prototype [05:05] digiwano: i am :) [05:05] digiwano: gonna hand it off to eric to let him pretty it up [05:05] digiwano: then we'll show it off [05:08] fostah has joined the channel [05:08] yukihr has joined the channel [05:09] jslatts: any addon ninjas here? who might also happen to be qt experts? :) [05:09] kmiyashiro has joined the channel [05:09] jslatts: i'll take either [05:09] jesusabdullah: jerrysv: Fairbanks, AK to Oakland, CA [05:09] jerrysv: jesusabdullah: ah, the substack trail. popping through portland? [05:09] brianseeders has joined the channel [05:10] jesusabdullah: I am! [05:10] jesusabdullah: I have friends in Portland [05:10] jerrysv: jslatts: struggling through addons, but your problems are my problems [05:10] SubStack: the substack trail! [05:10] jerrysv: jesusabdullah: like beer? [05:10] SubStack: I like it [05:10] digiwano: jerrysv: you're very predictable [05:10] jerrysv: digiwano: no comment [05:10] jslatts: jerrysv: have you got node-waf under control? i'm having a heck of a time getting to do things [05:10] jesusabdullah: jerrysv: I like beer! [05:10] jslatts: jerrysv: like include a QT lib that I need to link against [05:11] jerrysv: jslatts: i have stuff compiling -- oh, you're the one getting the linker error? [05:11] SubStack: beer: pretty great amirite? [05:11] jesusabdullah: Another potential idiot question: [05:11] jerrysv: jesusabdullah: i know a nice place to get beer in downtown pdx, when are you passing through here? [05:11] digiwano: which reminds me [05:11] jslatts: jerrysv: a new error tonight [05:11] jesusabdullah: > a = [1,5,2,4,3]; b = a; a.sort(); console.log(a); console.log(b); [05:11] digiwano: i have a hop stoopid in the fridge [05:12] jerrysv: digiwano: i do not. [05:12] jerrysv: well, maybe? [05:12] jesusabdullah: jerrysv: Middle of next month. I can be more specific if I went and got my calendar [05:12] jesusabdullah: That sounds fun! [05:12] jesusabdullah: v8> console.log('a') [05:12] v8bot: jesusabdullah: "a" [05:12] jesusabdullah: v8> a = [1,5,2,4,3]; b = a; a.sort(); console.log(a); console.log(b); [05:12] jerrysv: jesusabdullah: substack's been there [05:12] jesusabdullah: THERE [05:12] digiwano: well [05:12] digiwano: i don't anymore [05:12] jesusabdullah: ...why did that not even run? Odd! [05:13] jesusabdullah: v8> var a = [1,5,2,4,3]; var b = a; a.sort(); console.log(a); console.log(b); [05:13] jslatts: jerrysv: wow. as soon as i asked the question i got it sorted [05:13] jerrysv: jslatts: i'm that good [05:13] jesusabdullah: Well, anyways: b and a are the same, and I don't understand why. [05:13] jslatts: jerrysv: simply amazing! [05:13] rictic has joined the channel [05:13] jesusabdullah: v8> function() {var a = [1,5,2,4,3]; var b = a; a.sort(); console.log(a); console.log(b);} [05:13] v8bot: jesusabdullah: SyntaxError: Unexpected token ( [05:13] jslatts: ok, but I have a follow up. I have a library that i am trying to wrap [05:13] jesusabdullah: v8> (function() {var a = [1,5,2,4,3]; var b = a; a.sort(); console.log(a); console.log(b);})() [05:14] jslatts: and that library is already asyncronous [05:14] jesusabdullah: v8> (function() {var a = [1,5,2,4,3]; var b = a; a.sort(); return [a,b];})() [05:14] v8bot: jesusabdullah: [[1,2,3,4,5],[1,2,3,4,5]] [05:14] jslatts: asynchronous even. But I want to wrap its call backs to a javascript callback to expose as a module [05:14] jesusabdullah: THERE [05:14] jesusabdullah: But yes: Why are those both the same? D: [05:14] jesusabdullah: Why does a.sort() also sort b? Moreover, how can I fix this? [05:14] jerrysv: b is assigning a reference to a? and once a gets sorted, b is as well? [05:15] jerrysv: er, is assigned a reference to [05:15] jslatts: so, my thought was to not use libev and just try and map the callback to javascript function [05:15] jesusabdullah: How do I make it copy then, instead of just referencing? >_< [05:15] SubStack: sort() updates in-place [05:15] SubStack: jesusabdullah: you can toss in a .slice() in there [05:16] jerrysv: a = [1, 3, 5, 4, 2]; b = a.slice(); a.sort(); [05:16] jesusabdullah: hmm! [05:16] jesusabdullah: Man that's tricky [05:16] jesusabdullah: idk if I'll be able to get this thing <140 chars >_< [05:16] jesusabdullah: I thought I was done! [05:16] jerrysv: slice() will copy the array [05:16] SubStack: v8> (function() {var a = [1,5,2,4,3]; var b = a; a = a.slice().sort(); return [a,b];})() [05:16] v8bot: SubStack: [[1,2,3,4,5],[1,5,2,4,3]] [05:16] jerrysv: ah, golf [05:16] jmoyers: or b = [].concat(a); [05:16] jerrysv: saw that post, ignored it :) [05:16] superjudge has joined the channel [05:17] jerrysv: used to play perl golf at in a previous life [05:17] SubStack: or just b = a.slice() works too [05:17] SubStack: jerrysv: likewise! [05:17] jesusabdullah: Yeah, I've been playing golf a little [05:17] DelvarWorld: the hell do you turn off emoticons in adium for irc chat [05:17] SubStack: then codegolf.com went away :( [05:17] jesusabdullah: Usually not my deal, but [05:17] jerrysv: substack: know curtis "ovid" poe? [05:17] jesusabdullah: I saw isaacs do something and I thought he did something else, so I *had* to do that [05:18] jesusabdullah: and this one's supposed to generate sparktweets so [05:19] jmoyers: nice thing about [].concat(a) is that it coerces a to an array [05:19] jmoyers: nice for optional array method signatures [05:19] stisti has joined the channel [05:20] Spion has joined the channel [05:20] wilmoore has joined the channel [05:22] tbranyen: var args = Array.prototype.slice.call( arguments ); callback.apply( self, args.concat( self ) ); [05:22] jesusabdullah: Oh? [05:22] tbranyen: concat is awesome [05:23] tbranyen: since it returns a new array for you [05:23] jesusabdullah: I need to go DEEPER [05:23] syskk has joined the channel [05:23] tbranyen: push returns an index so its not useful [05:23] jesusabdullah: and by DEEPER I mean I need to somehow lose five characters [05:23] SubStack: hmm require in browserify should be able to take a hash like base [05:23] SubStack: then I can map jquery to jquery-browserify and jade to jade/jade.min [05:23] jerrysv: jesusabdullah: what's the challenge again? [05:24] jerrysv: ACTION checks twitter again [05:24] jslatts: "V8 is no longer usable" [05:24] jslatts: :( [05:25] ExsysTech has joined the channel [05:25] syskk: late night startup idea: Node.js powered data scraping marketplace [05:26] jesusabdullah: jerrysv: Here, I'll link what I have so far [05:26] philtor has joined the channel [05:26] MooGoo: do the browserify modules still suck [05:26] MooGoo: every time I tried them they were horribly slow [05:26] jerrysv: merging 2 arrays in 10 bytes or less? [05:26] pifantastic has joined the channel [05:28] sorens3n: back [05:28] davidcoallier has joined the channel [05:28] kawaz_air has joined the channel [05:29] jerrysv: i think i may have drank too much whiskey to be effective at debugging binary vs utf-8 encoding issues in v8 [05:30] jesusabdullah: jerrysv: https://gist.github.com/994653 [05:30] jslatts: jerrysv: do you have any good v8 resources? [05:30] jesusabdullah: In this case, I'm trying to generate sparktweets in <140 characters [05:30] jesusabdullah: I'm at 144 [05:30] jerrysv: jslatts: a couple, hold on [05:30] sorens3n: oh! 140 bytes? [05:30] sorens3n: :D [05:30] MooGoo: whats the challenge [05:30] jerrysv: http://code.google.com/apis/v8/embed.html [05:30] sorens3n: tangent: theres a 140byte project going on right now [05:31] jerrysv: http://create.tpsitulsa.com/wiki/V8_Cookbook [05:31] jesusabdullah: Trying to get this piece of code down to 140 bytes [05:31] jslatts: jerrysv: also, what is your fav. method to debug right now? [05:31] jesusabdullah: so I can tweet a function that generates sparktweets [05:31] MooGoo: what pice of code [05:31] MooGoo: show me [05:31] jesusabdullah: https://gist.github.com/994653 [05:31] sorens3n: jesus: gist it? [05:31] jesusabdullah: Way ahead of you sistah! [05:31] jerrysv: jslatts: take another drink and see if my values are what i expect [05:31] sorens3n: niiiice! [05:31] sorens3n: :D [05:31] jslatts: hah [05:31] MooGoo: annotated.js? [05:31] jesusabdullah: Yeah, or index.js [05:31] jslatts: jerrysv: that doesn't seem to be helping me right now :) [05:32] jesusabdullah: They're both the same (or should be), except for spaces and comments [05:32] MooGoo: wtf kind of characters are those [05:32] jesusabdullah: Unicode, silly [05:32] jerrysv: jslatts: but in general, writing a lot of tests, gdb/valgrind when it crashes, and at worst case outputting what i expect vs what i am getting [05:32] jslatts: jerrysv: FATAL ERROR: v8::Number::New() V8 is no longer usable [05:32] jerrysv: hahaha. wow, that one is new to me [05:32] MooGoo: unicode is for girls [05:32] sorens3n: the syntax highlighting seems to be all fucked up [05:32] jesusabdullah: > st([1,2,3,2,1]) [05:32] sorens3n: for me [05:32] jesusabdullah: '▁▅█▅▁' [05:32] jerrysv: sounds like you're overwriting something [05:32] jesusabdullah: for example [05:32] sorens3n: yea [05:32] jslatts: jerrysv: yeah... hey! maybe my callback is running over itself [05:33] suresh has joined the channel [05:33] sorens3n: jesus: i think you need to annotate a bit more in depth before i get whats going on [05:33] SubStack: MooGoo: browserify modules? [05:33] supster has joined the channel [05:34] jesusabdullah: Yeah sorens3n it's kind of a mess XD [05:34] sorens3n: =\ [05:34] jesusabdullah: This one's way harder than the one I did before [05:34] abraham has joined the channel [05:34] yhahn1 has joined the channel [05:35] sorens3n: move things to the right of each line, instead of above [05:35] sorens3n: it seems to be the trend on the 140bytes thing [05:35] sorens3n: and is very helpful [05:35] jesusabdullah: hmm [05:35] jesusabdullah: The thing is that there's a *lot* going on in just this one line [05:35] sorens3n: as my general reaction from seeing it [05:35] sorens3n: same with the others.. [05:35] hassox has joined the channel [05:35] MooGoo: what counts as 140 bytes [05:35] MooGoo: why st [05:35] sorens3n: 140 bytes counts [05:35] MooGoo: why is it a function [05:36] jerrysv: my gut says that that math can be optimized [05:36] brettgoulder has joined the channel [05:36] seivan has joined the channel [05:36] sorens3n: 140 bytes of JS or less, in a gist [05:36] jesusabdullah: MooGoo: st stands for sparktweet, and it being an anonymous function is the rule [05:36] MooGoo: that add's a lot of bytes [05:36] sorens3n: self contained function [05:36] jesusabdullah: I put a name there just so I can test it [05:36] jesusabdullah: and doesn't count towards the total [05:37] MooGoo: what does [05:37] sorens3n: only the index.js counts [05:37] jesusabdullah: "st=" [05:37] sorens3n: the annotated source doesnt [05:37] MooGoo: everything else counts [05:37] sorens3n: https://github.com/jed/140bytes [05:37] sorens3n: or https://gist.github.com/962807 [05:37] jesusabdullah: MooGoo: You did see that the instructions/rules are included with the gist? [05:37] godofthunder1982 has joined the channel [05:38] MooGoo: im illiterate [05:38] jerrysv: but the challenge didn't seem to be [05:38] sorens3n: i think its a wonderful idea [05:38] jesusabdullah: jerrysv: I would like to agree with you re: math but I don't think there's much I can do there :( [05:38] jesusabdullah: That normalizing stuff is common in my field [05:39] jesusabdullah: that is, (x-a)/(b-a) [05:39] sorens3n: jesus: can you link me again? i lost it [05:39] jesusabdullah: Yeah, sure [05:39] jesusabdullah: https://gist.github.com/994653 [05:39] quackslike has joined the channel [05:39] sorens3n: thx [05:39] jesusabdullah: sorens3n: ^^ [05:39] jesusabdullah: I can think of a few ideas: 1) reuse a variable somehow. 2) Use some kinda type coercion to avoid .slice() [05:40] sorens3n: bah, whats with the red, why do i feel like a nub now [05:40] jerrysv: um, here's my dumb thoughts [05:40] sorens3n: c=c+[' ','▁','▃','▅','▆','█'] [05:40] jerrysv: you don't need all of those damned parens [05:40] jerrysv: in that math [05:40] MooGoo: crazy unicode [05:40] sorens3n: =\ [05:40] jesusabdullah: jerrysv: I wish that were true, but idk how to get rid of them! [05:40] jerrysv: - evaluates before / [05:41] jesusabdullah: No, division comes first [05:41] jmoyers: jesusabdullah: you want hints? ;-) [05:41] jerrysv: v8: 1 + 1 * 2 / 3 [05:41] v8bot: jerrysv: 1.6666666666666665 [05:41] sorens3n: bah, again, i think if you over-annotate, you will help us help you [05:41] MooGoo: would c+= work [05:41] jesusabdullah: Yes! Hints. [05:41] MooGoo: instead of c=c+ [05:42] skm has joined the channel [05:42] jesusabdullah: c+= should work [05:42] jesusabdullah: that's one char down ;) [05:42] MooGoo: yay [05:42] jmoyers: b=a.slice().sort(); [05:42] xeodox has joined the channel [05:42] jesusabdullah: ooh [05:42] MooGoo: wait [05:42] MooGoo: what does sort return [05:42] jmoyers: the array [05:42] jmoyers: foooo sho [05:42] MooGoo: and sorts in place? [05:42] MooGoo: cool [05:42] jerrysv: v8: (1 + 1) * (2 / 3) [05:42] v8bot: jerrysv: 1.3333333333333333 [05:43] jerrysv: v8: (1 + 1) * 2 / 3 [05:43] v8bot: jerrysv: 1.3333333333333333 [05:43] jesusabdullah: oh geez one character [05:43] jesusabdullah: one more D: I CAN DO THIS [05:43] sorens3n: : [05:43] sorens3n: :D [05:43] jmoyers: v8: [5,3,7,1].slice().sort(); [05:43] v8bot: jmoyers: [1,3,5,7] [05:43] donaldpcook has joined the channel [05:43] sorens3n: nice [05:43] MooGoo: why must e be in the arguments list [05:43] MooGoo: bah [05:43] MooGoo: stupid rules [05:43] ryah has joined the channel [05:43] jesusabdullah: MooGoo: To avoid saying "var e" [05:43] sorens3n: v8: [5,3,7,1].sort() [05:43] v8bot: sorens3n: [1,3,5,7] [05:44] brettgoulder has joined the channel [05:44] Casperin has joined the channel [05:44] jmoyers: you don't need c='' presumably [05:44] MooGoo: without that [05:44] MooGoo: c would start with "undefined" [05:44] MooGoo: I think [05:45] Fodi69 has left the channel [05:45] fostah has joined the channel [05:45] jerrysv: c+= instead of c= [05:45] jerrysv: keep the c='' [05:45] zackattack has joined the channel [05:45] jerrysv: unless i missed someone saying that [05:45] MooGoo: you did [05:45] jesusabdullah: v8> for(i=0;i<10;i++){ c+='3'; } console.log(c) [05:45] v8bot: jesusabdullah: ReferenceError: c is not defined [05:45] jerrysv: ACTION rewinds [05:45] jesusabdullah: biff [05:45] jmoyers: uuh [05:45] Calvin has joined the channel [05:46] jesusabdullah: I could cheat by removing some resolution from the sparktweet [05:46] jerrysv: v8: (function(a,b,c,d,e){b=a.slice();b.sort();c='';for(d=0;d<(e=b.length);c=c+[' ','▁','▃','▅','▆','█'][-~(4*(a[d++]-b[0])/(b[e-1]-b[0]))]);return c})(); [05:46] v8bot: jerrysv: TypeError: Cannot call method 'slice' of undefined [05:46] MooGoo: .. c [05:46] Calvin: ReferenceError: c is not defined [05:46] MooGoo: .. +c [05:46] Calvin: ReferenceError: c is not defined [05:46] jesusabdullah: Actually, I need to do that *anyway* [05:46] jesusabdullah: since one of the levels is space [05:47] pifantastic has joined the channel [05:47] jesusabdullah: The way it's coded you won't ever actually *see* the space, so *bam* 140 chars woot woot [05:48] MooGoo: I bet it could be less [05:48] fangel has joined the channel [05:48] jesusabdullah: Thanks! You guys were helpful! [05:48] jerrysv: maybe eliminate the for() [05:48] jesusabdullah: MooGoo: I'd like to see you try! >:P [05:48] btipling: np [05:48] jesusabdullah: jerrysv: the for is everything XD [05:48] mertonium has joined the channel [05:48] jerrysv: while() [05:48] jesusabdullah: You'll notice there isn't even a body of the for loop [05:49] jerrysv: right [05:49] jerrysv: just thinking of how to keep a loop but eliminate parts of it [05:49] MooGoo: if function literals were not so verbose there might be a way [05:50] jerrysv: hm. regardless, i think i am past my bedtime, and v8 has fried my brain. tests pass, but real world results are not what i am expecting [05:50] jerrysv: so, on that note, i bid you a good evening [05:50] jerrysv: jesusabdullah: pin down a date, we'll do beer [05:51] MooGoo: more challenges plz [05:51] jerrysv: moogoo: 140byt.es ? [05:51] captain_morgan has joined the channel [05:51] morganallen_ has joined the channel [05:52] jacter has joined the channel [05:53] ryah: what's the avatar hosting website called? [05:53] halfhalo: gravatar? [05:53] ryah: thanks [05:54] sorens3n: ryah!!! [05:54] sorens3n: :D [05:54] sorens3n: kudos mah man [05:54] sorens3n: on us even being here [05:54] sorens3n: thanks [05:57] ryah: sorens3n: hehe [05:57] sorens3n: :) [05:57] sorens3n: i learned the shit out of JS just because of node.js [05:57] coreb1 has joined the channel [05:57] sorens3n: you got me to move from PHP [05:58] MooGoo: I dont get it [05:58] sorens3n: and beleive me, in a PHP office, i was ridiculed like all hell [05:58] MooGoo: I only see the sample file [05:58] ryah: sorens3n: alright :) [05:58] MooGoo: dont worry sorens3n [05:58] dgathright has joined the channel [05:58] ryah: sorens3n: you're with friends here - those who love the async blades of pain [05:59] jesusabdullah: I used php like once [05:59] MooGoo: you can rightly feel above anyone who makes fun of you for not coding in PHP [05:59] Lorentz: I'm doing php right now [05:59] sorens3n: hehe, glad to hear [05:59] jesusabdullah: it was back when the built-in templating was a big deal [05:59] sorens3n: thanks MooGoo [05:59] jesusabdullah: all people talked about were lamp servers [05:59] jesusabdullah: and online help sucked [05:59] deebo: php is a recursive acronym, and that pretty much says it all [05:59] jesusabdullah: and I wrote a really crappy, probably insecure, thing. [05:59] jesusabdullah: pretty horrendous poop? [06:00] sorens3n: my latest thing was Kohana before node.js [06:00] MooGoo: I forked this 140byte thing but all I got was the sample [06:00] jesusabdullah: what's Kohana? [06:00] jmoyers: a framework [06:00] jesusabdullah: MooGoo: So you edit it to be what you want it to be [06:00] jmoyers: its.. [06:00] sorens3n: and in respects to tjholloway, i learned node.js via Express.js [06:00] deebo: php = PHP hypertext processor = PHP hypertext processor hypertext processor = ... [06:00] MooGoo: so I can make shit up [06:00] MooGoo: what is the point of this [06:00] sorens3n: PHP is like CodeIgniter [06:00] sorens3n: errr [06:00] yhahn has joined the channel [06:00] sorens3n: Kohana is like CodeIgniter [06:00] jesusabdullah: MooGoo: Showing off, basically [06:00] sorens3n: direct fork [06:00] jesusabdullah: The fun thing is you can make the code a twitter status [06:00] MooGoo: so I have to find some function that actully can be reduced to 140bytes [06:01] MooGoo: then do it [06:01] MooGoo: no requests or challeneges [06:01] sorens3n: do it if it can be done, putting yourself in that kind of restraints can be very inspiring, but also just as limiting [06:01] amaudy has joined the channel [06:02] HornyiPadHumper has joined the channel [06:02] MooGoo: yes but...if someone just showed me the code I could do it [06:02] MooGoo: but having to bring my own function to the party [06:02] MooGoo: I dunno [06:02] hassox has joined the channel [06:05] sorens3n: i look at 140bytes as something that, i keep it in the back of my head, and if something comes about that i can reduce to that, i will, otherwise, its just kinda trendy [06:05] sorens3n: because most i've found in it, i have available in backbone.js and underscore.js [06:05] jesusabdullah: Yeah, definitely just trendy/fun [06:06] jesusabdullah: the one thing I can think of is bookmarklets [06:06] sorens3n: yes, and by all means, i love and respect it [06:06] sorens3n: YES! [06:06] jesusabdullah: I wrote a bookmarklet yesterday [06:06] jesusabdullah: It was something special [06:06] H2S04 has joined the channel [06:06] jesusabdullah: I sorely missed method chaining with my dom-building [06:07] MooGoo: well I have no ideas [06:07] MooGoo: I was looking foward to new js code golf [06:07] MooGoo: all my js is too dependent on other js to be useful in isolation [06:08] samsonjs has joined the channel [06:08] jesusabdullah: Write me a 140 byte chainable DOM tool [06:08] jesusabdullah: right now! [06:08] MooGoo: ok [06:08] MooGoo: I think id use up all my bytes just writing out DOM method names [06:08] jesusabdullah: Well [06:08] jesusabdullah: You might not *have* to write out all the names [06:09] MooGoo: give me an example of the usage of this [06:10] jesusabdullah: Well, you've used jquery right? [06:10] jesusabdullah: You know how with jquery, everything returns "this" ? [06:10] MooGoo: I think I've heard of that at some point somewhere [06:10] AdmGre has joined the channel [06:10] MooGoo: yes [06:10] MooGoo: why restrict it to chaining DOM then [06:10] MooGoo: it could chain anything [06:11] jesusabdullah: Sure [06:11] jesusabdullah: I just want something short that lets me chain my shit instead of having to create temporary vars to create, add things, and THEN append to body [06:11] jesusabdullah: or whatever [06:11] sorens3n: i try to always return 'this' [06:11] sorens3n: since i love chaining [06:12] sorens3n: but, that seems to me an OCD for code cleanliness than anything [06:12] jesusabdullah: https://github.com/jesusabdullah/browserling_bookmarklets/blob/master/bookmarklet.js is what I want to avoid [06:12] sorens3n: since i dont use it much [06:12] jesusabdullah: c1.style.x('whatever') should return c1, not the text "whatever" [06:12] jesusabdullah: >_< [06:13] MooGoo: I wrote a generic chainer in some SO answer awhile ago [06:14] jesusabdullah: I wouldn't mind seeing that actually [06:14] MooGoo: http://stackoverflow.com/questions/3314162/html5-canvas-challenge/3314444#3314444 [06:14] jesusabdullah: It doesn't have to be 140 chars to be useful :) [06:14] MooGoo: I dunno if that is useful [06:14] MooGoo: or what you want [06:14] MooGoo: I was being a bit snarky [06:14] skm has joined the channel [06:14] jesusabdullah: You can use `with` that way? [06:15] MooGoo: yes [06:16] jesusabdullah: Huh! [06:16] jesusabdullah: SCREW BEST PRACTICES [06:16] MooGoo: INDEED [06:16] MooGoo: with can be useful [06:16] sorens3n: MooGoo: its like the router / template functions in 140 bytes [06:16] MooGoo: like [06:16] sorens3n: id still rather use _underscore [06:16] MooGoo: with (element.style) { etc } [06:16] __jgr has joined the channel [06:16] sorens3n: and spend the extra bytes [06:17] MooGoo: and with can in some cases come in handy with code golf [06:17] Opaque has joined the channel [06:17] jesusabdullah: Well, I might use it with this DOM crap [06:17] sorens3n: OH!, btw have you guys seen rpg.js? [06:17] sorens3n: http://rpgjs.com [06:17] mertonium has joined the channel [06:18] jesusabdullah: I did! [06:18] MooGoo: uhoh [06:18] MooGoo: it's like those make-a-rpg roms for the snes [06:19] niftylettuce has joined the channel [06:19] SamuraiJack has joined the channel [06:19] dpritchett has joined the channel [06:21] davidcoallier has joined the channel [06:21] shimondoodkin has joined the channel [06:22] darshan-mobile has joined the channel [06:22] paul_k has joined the channel [06:26] davidcoallier has joined the channel [06:27] HornyiPadHumper: yo [06:27] adnam: yo bro [06:27] Jakwac has joined the channel [06:28] baudehlo has joined the channel [06:28] HornyiPadHumper: Now that we have a good server-side JS platform, has anyone made an attempt to tie client-side (browser) coding with server-side JS in some way (like in an IDE or framework)? [06:28] briznad has joined the channel [06:28] cpolis has joined the channel [06:29] sorens3n: backbone.js [06:29] sorens3n: which can be used on client/server side [06:29] HornyiPadHumper: What does it do mainly? [06:29] MooGoo: that's just a library [06:30] sorens3n: he asked for framework, i suggested a framework [06:30] MooGoo: I think he's talking about some kinda setup where client+server code is transparently combined [06:30] MooGoo: maybe like with GWT for example [06:30] sorens3n: i dont use backbone on the server [06:30] sorens3n: its for organizing the DOM and jQuery [06:30] ChrisPartridge: HornyiPadHumper: check out dnode and nowjs [06:30] sorens3n: in an MVC way [06:31] sorens3n: dnode and now.js are hardly the answer to his question [06:31] MooGoo: backbone is mostly utility functions [06:31] MooGoo: isnt it [06:31] sorens3n: he wasn't asking about sockets [06:31] sorens3n: no, thats underscore.js [06:31] sorens3n: backbone is an MVC framework which is more or less underscore + jquery [06:31] sorens3n: meant for the client side [06:31] shimondoodkin: i try to do one it is in a very early stage http://vot.me:2222 [06:31] sorens3n: but can be used on the server, which makes it versitile [06:32] MooGoo: man I was so spoiled only having to code for mozilla for so long [06:32] MooGoo: made me not want to waste my time with libraries [06:32] mikeal has joined the channel [06:32] sorens3n: that doesnt make much sense [06:32] sorens3n: i dont get what your saying [06:32] rahul_ has joined the channel [06:32] MooGoo: im saying [06:32] mertonium_ has joined the channel [06:32] sorens3n: underscore is like the Irvine library for assembly language [06:32] MooGoo: the usefulness of libraries like jquery goes way down when writing code that only needs to work in a mozilla browser [06:33] sorens3n: even still, the usefullness is still there [06:33] MooGoo: more is built in, plus document.evaluate [06:33] sorens3n: i write 2 lines of code, you write 10 [06:33] sorens3n: case in point [06:33] MooGoo: easy to write a wrapper function around it [06:33] davidcoallier has joined the channel [06:33] sorens3n: which jquery is [06:33] sorens3n: ? [06:33] HornyiPadHumper: Yes, I do mean transparently combining client-side and server-side JS (not sure if that is even a good idea). [06:34] MooGoo: nah [06:34] rahul_: Hi. I am node.js n00b (just started out a day ago) - a very basic Question - if node.js leverages Google's V8 engine - why can't node.js run on windows straight of the bat? [06:34] MooGoo: evaluate works on xpath [06:34] shimondoodkin: do you have an opinion about fibers ? [06:34] MooGoo: I prefer xpath for webscraping at least [06:34] sorens3n: MooGoo, its really a debate about API's then is it not? or frameworks in general? [06:34] Bonuspunkt has joined the channel [06:34] MooGoo: it's not a debate [06:34] MooGoo: libraries are good [06:34] sorens3n: sorry, bad word to use [06:35] MooGoo: but without having to worry about browser compatibility [06:35] sorens3n: question* [06:35] shimondoodkin: there are jsdom scapers witch work well enough [06:35] MooGoo: and being able to rely on the more extensive built in functions of modern JS [06:35] sorens3n: i dont think of jquery as browser compatibility when i use it, its just getting more done faster and easier [06:35] MooGoo: and in the context of me writing this code 5+ years ago [06:35] sorens3n: and if your only coding for mozilla, well, luck you [06:35] sorens3n: lucky* [06:36] jmoyers: rahul_: it runs on v8, but introduces a bunch of api's that have nothing to do with v8 (file system, http, net, etc) [06:36] jmoyers: rahul_: native windows compatibility is a major goal of the project, though -- its being worked on actively [06:36] sorens3n: i have never had the good fortune of only using one browser, and imho, thats not the power of the internet, which is why i became a web-dev [06:36] MooGoo: well [06:37] MooGoo: in an internal enviornment [06:37] sorens3n: the world can see ur program, if not, just make a windows app [06:37] HornyiPadHumper: jmoyers: I would focus more on the cloud. [06:37] MooGoo: it makes developing so much easier [06:37] rahul_: jmoyers, thanks - good to hear that. [06:37] sorens3n: or a native OS app [06:37] shimondoodkin: HornyiPadHumper: people try to use socket.io with backbone and RestDAtaStores with dojo [06:37] jmoyers: HornyiPadHumper: i have no idea what that means [06:37] MooGoo: and this was back in a time when IE6 compatibility was still expected [06:37] MooGoo: things are much better now [06:37] sorens3n: before i say something dumb though, be aware, i've had a few drinks [06:37] MooGoo: than they were [06:38] sorens3n: oh god yes [06:38] felixge has joined the channel [06:38] felixge has joined the channel [06:38] mykul has joined the channel [06:38] sorens3n: i had to code for that fucking browser [06:38] felixge: ryah: replied to your mail [06:38] MooGoo: 10 years man [06:38] sorens3n: which i do give mad respect to [06:38] sorens3n: since it started this whole thing [06:38] shimondoodkin: HornyiPadHumper: so when you read write a model it does a pass through the server [06:38] MooGoo: IE was king in its day [06:38] HornyiPadHumper: right [06:39] HornyiPadHumper: omg, can't wait to jack off to my Madonna album tonight [06:39] MooGoo: that statement makes no sense [06:39] HornyiPadHumper: We're celebrating that our node.js app hit 11,000 lines of code [06:39] darshanshankar has joined the channel [06:39] uchuff has joined the channel [06:39] MooGoo: congrats bro [06:40] HornyiPadHumper: Still six bugs from launch :( [06:40] sorens3n: yeah nice going [06:40] Aria: Sweet! What's the next target? 10,000? [06:40] sorens3n: hehe [06:40] MooGoo: since I never delete code, I just comment things out, I often hit that number and above [06:40] rahul_: Can I also get a perspective on whether node.js would suit an application which has a fairly heavy middle tier with lot of application logic? [06:40] sorens3n: i have a habbit of constantly deleting, since i started using Git [06:41] HornyiPadHumper: Versioning is good [06:41] MooGoo: nodejs really doesnt compare with something like PHP... [06:41] MooGoo: it's much more low level [06:41] sorens3n: well.... [06:41] sorens3n: thats arguable [06:41] MooGoo: if you want to use a module [06:41] sorens3n: i went from PHP to this [06:41] Aria: rahul_: Sure. It's a little verbose in places, but I find it makes great, modular software. [06:41] MooGoo: but raw nodejs is like writing apache and mod_php before getting to work on the website [06:42] sorens3n: its a strange comparison [06:42] Aria: Where "apache" is 6 lines and "mod_php" is 12. [06:42] sorens3n: since PHP is really NPM packages just 'build in' [06:42] fly-away has joined the channel [06:42] level09 has joined the channel [06:42] chjj: MooGoo: what? [06:42] stagas_ has joined the channel [06:42] SubStack: batteries included is communism! [06:42] HornyiPadHumper: sorens3n: PHP does templating [06:43] level09: whats the best practice to keep a node.js server running ? [06:43] SubStack: or so jesusabdullah says [06:43] MooGoo: the built in HTTP server functions in node are pretty raw [06:43] sorens3n: PHP does not [06:43] sorens3n: i disagree [06:43] rahul_: Aria, I'd like to spike a census app using Node.js - any recommendations on what stack of libs I might looks at (I have a java, ruby background) [06:43] sorens3n: and i know that it 'does' [06:43] SubStack: or actually I might've come up with that [06:43] `3rdEden has joined the channel [06:43] Aria: level09: daemontools, forever [06:43] MooGoo: it doesnt serve files, or content types, it just serves headers and data [06:43] HornyiPadHumper: sorens3n: I mean, it lets you embed code inside HTML [06:43] Aria: rahul_: express. [06:43] chjj: php does whats called, shitting all over your markup [06:43] sorens3n: like... JS does [06:43] level09: Aria: like monit , and upstart ? [06:43] sorens3n: its a hard comparison [06:43] HornyiPadHumper: sorens3n: With what? [06:44] Aria: rahul_: It's a bit like Sinatra, and it's a remarkably small layer on top of connect, which is delightful middleware on top of node's http lib. [06:44] sorens3n: PHP was meant to do that from its origins [06:44] Aria: level09: Sure, or those. [06:44] sorens3n: personal home page [06:44] matjas has joined the channel [06:44] shimondoodkin: level09: monit [06:44] level09: great thanks [06:44] sorens3n: but to compare the two is a flawed comparison [06:44] sorens3n: PHP is a cluster fuck [06:44] MooGoo: ok [06:44] MooGoo: well [06:44] Guest2875 has joined the channel [06:44] sorens3n: it would be if ryah included every NPM package in the core [06:44] chjj: lol [06:44] HornyiPadHumper: sorens3n: eww :( [06:44] _jgr has joined the channel [06:44] sorens3n: PHP: eww :( [06:44] chjj: with no namespacing at all [06:45] Aria: You guys must be stuck on php 4. [06:45] sorens3n: not at all [06:45] mertonium_ has joined the channel [06:45] MooGoo: what version of PHP doesnt have over 9000 functions in the global scope [06:45] sorens3n: just went from Kohana/F3/php5.3 [06:45] rahul_: Aria, neat. I will check out express. What about Socket.IO? [06:45] sorens3n: then you agree [06:45] Aria: 5.3 with the legacy modules turned off ;-) [06:45] sorens3n: hehe [06:45] MooGoo: so [06:45] v0idless- has joined the channel [06:45] HornyiPadHumper: JSP is way better than PHP [06:46] Aria: rahul_: Socket.io is great for what it does -- if you need realtime connection from server to browser, it's great. [06:46] xsyn has joined the channel [06:46] MooGoo: how do you selectivly "require" modules in PHP [06:46] k1ttty has joined the channel [06:46] chjj: why are we discussing inferior platforms in the node.js channel? [06:46] MooGoo: I dont even know [06:46] sorens3n: require 'shit.php' [06:46] MooGoo: sigh [06:46] sorens3n: oops, require 'shit.php'; [06:46] sorens3n: i know what u mean [06:46] sorens3n: im being a dick [06:46] sorens3n: sorry [06:46] HornyiPadHumper: JSP > PHP [06:46] sorens3n: few drinks in me [06:47] sorens3n: and i hate php since moving to an elegant language like JS [06:47] MooGoo: I CRY [06:47] sorens3n: but PHP has paid the bills [06:47] MooGoo: JS could be more elegent [06:47] sorens3n: so i give it respect [06:47] supster: There is no feature to display line numbers. You can go to a line [06:47] supster: with Edit / Go to Line.There is no feature to display line numbers. You can go to a line [06:47] MooGoo: PHP gets the fucking job done man [06:47] supster: yikes, sorry for paste :< [06:47] sorens3n: MooGoo: agreed [06:47] chjj: the first time i used node.js, i immediately realized everything else was obsolete [06:47] sorens3n: like i said [06:47] Aria: Assuming the job is one PHP is okay at. [06:47] chjj: so, no sense talking about it anymore really [06:48] sorens3n: i hacked a Kohana PHP application [06:48] gozala has joined the channel [06:48] sorens3n: and made a custom admin / CMS / CRM solution [06:48] level09: but node cant still replace php , no ? [06:48] sorens3n: then moved to node.js [06:48] sorens3n: i was so sad [06:48] Opaque has joined the channel [06:48] sorens3n: to not use it [06:48] chjj: level09: what does that mean? [06:48] supster: sorens3n: kohana is quite nice [06:48] MooGoo: chjj: I might agree of Nodejs supported continuations [06:48] chjj: replace it in what regard? [06:48] Aria: level09: No, node interprets javascript, not php ;-) [06:48] jesusabdullah: Some of those other languages have nice libs though [06:48] sorens3n: supster: agreed, i love it [06:48] jesusabdullah: idk about php, but [06:48] level09: Aria: as a backend language [06:48] jesusabdullah: python still has some solid libs [06:49] Aria: node can do everything php can. They're both turing complete and can talk to other things. [06:49] level09: but one thing I dont get [06:49] MooGoo: node does async better [06:49] shimondoodkin: level09: but for large production you want to base it on some multi-threaded somthing like https://github.com/joyent/node/wiki/modules cluster Spark or https://github.com/nodejitsu/haibu and put it on https://github.com/cloudfoundry/vcap but i dont know how vcap works [06:49] Aria: But whether you want to is another matter. That's a much more complicated conversation. [06:49] MooGoo: that's the point [06:49] jesusabdullah: I much like node on the backend, so to speak [06:49] level09: there is a node-mysql module, how can you do non-blocking asynchronous transactions on mysql ? [06:49] jesusabdullah: I'm actually not a web guy at all by training XD [06:49] MooGoo: child process level09 [06:49] brownies has joined the channel [06:49] Yoric has joined the channel [06:49] chjj: level09: felixge's node-mysql [06:50] Aria: Yeah, just do it. [06:50] HornyiPadHumper: sorens3n: There are commercial web apps out there that are coded in both node.js and PHP for view/controller stuff [06:50] level09: yes, but what I meant, we actually need mysql transactions to be blocking [06:50] MooGoo: last time I looked all the node mysql modules were broken [06:50] Aria: Why? [06:50] felixge: chjj: transactions are not supported yet [06:50] MooGoo: but they are probably good now [06:50] Yoric has left the channel [06:50] nivoc has joined the channel [06:50] chjj: oh, i see [06:50] felixge: level09: that doesn't make sense [06:50] rahul__ has joined the channel [06:50] level09: data integrity [06:50] Aria: Huh? [06:50] MooGoo: so [06:50] level09: for example, two admin editing same content [06:50] Aria: how does blocking on a call ensure data integrity? [06:50] MooGoo: there's no blocking mysql modules for node? [06:50] level09: you need to block updating the record [06:50] MooGoo: I'm using a blocking sqlite module [06:51] HornyiPadHumper: There are commercial web apps out there that are coded in both node.js and PHP for view/controller stuff [06:51] level09: aha [06:51] level09: so it is a blocking module ? [06:51] Aria: I think what you want is called 'locking', not 'blocking' [06:51] felixge: level09: you don't need non-blocking I/O for that [06:51] level09: aah [06:51] rahul__: Aria, thanks, appreciate it. (i should get back and get my hands dirty with some node-fu) [06:51] level09: :) [06:51] MooGoo: it's just a direct link to the C++ libs [06:51] level09: yes that was the right term [06:51] MooGoo: pretty much [06:51] OneBraveHog: right, blocking as to network, locking as to shared access DB wise [06:51] Aria: And you ... just lock. There's no magic. When the first one goes, you lock, when the second one gets there, you say no way. [06:51] Aria: No need for blocking IO [06:51] davidcoallier has joined the channel [06:51] sorens3n: Horni: whats the point of using two server-side frameworks? [06:52] level09: so it is non-blocking, but locking [06:52] Aria: sorens3n: To let each do what they're good at? [06:52] level09: that makes sense now :) [06:52] Aria: level09: Yeah. Completely different concepts. [06:52] sorens3n: Aria: i lost your point of reference [06:52] Aria: "blocking" means "waiting". "locking" means "excluding" [06:52] shimondoodkin: does any body has an opinion about node-fibers ? [06:52] MooGoo: are we [06:52] HornyiPadHumper: felixge: Why use blocking to update a record? You can use an anonymous callback function to continue. [06:52] MooGoo: talking about [06:52] MooGoo: table locking [06:52] Aria: sorens3n: What's the point of two server-side frameworks? To let each do what they're good at. [06:52] OneBraveHog: also row locking [06:52] MooGoo: shimondoodkin: good idea but couldnt get it to work when I downloaded [06:52] Aria: MooGoo: That's one possible interpretation. [06:53] sorens3n: ah, i see, what can PHP do then that isn't better served with node.js? [06:53] Aria: If the node app is the only access point to the database, you could also use a locking variable. [06:53] sorens3n: comming from a PHP background [06:53] Aria: sorens3n: run PHP code. [06:53] k1ttty has joined the channel [06:53] level09: so when many people are writing to a record, it will not block it, but will still lock it ? [06:53] MooGoo: and PHP libs [06:53] sorens3n: i went form PHP to node.js [06:53] sorens3n: so i feel like i know what i'm talking about [06:53] MooGoo: that depends on mysql level09 [06:53] HornyiPadHumper: sorens3n: So you can hire minimum wage PHP monkeys for the simple parts of the app (view/controller) and code the core in node.js [06:53] sorens3n: and i have found nothing that node.js can't do that PHP can do [06:53] AAA_awright: What's that? [06:53] OneBraveHog: I'm skipping php and starting with node.js (used to use ASP though) [06:53] sorens3n: in that case, shame on you [06:53] Aria: level09: Sure. If you want to serialize, use a queue; if you want to exclude and have the first win, use a pessimistic lock; if you want to be more complicated, you might go with oplocks or something. [06:53] MooGoo: have you found that in any other language [06:54] MooGoo: it's just a language [06:54] sorens3n: Horny: SHAME ON YOU [06:54] iori has joined the channel [06:54] level09: cool [06:54] HornyiPadHumper: sorens3n: Why? [06:54] sorens3n: hire people for what they are worth, you want shit code? shit workers? [06:55] NetRoY has joined the channel [06:55] sorens3n: its a sad state of affairs [06:55] `3rdEden: felixge congrats :) [06:55] sorens3n: and i have no respect for it [06:55] MooGoo: most people wouldnt even know the difference [06:55] HornyiPadHumper: sorens3n: Different skill levels for different jobs. [06:55] sorens3n: minimum wage you say [06:55] strmpnk has joined the channel [06:55] felixge: `3rdEden: thanks. Now I can add much more bacon to the core ;) [06:55] sorens3n: are you my last boss [06:55] OneBraveHog: I'm not sure any software engineering / programming job should be minimum wage [06:55] `3rdEden: felixge \o/ free codebloat [06:55] sorens3n: hire shit workers and i promise you are going to fail [06:56] HornyiPadHumper: sorens3n: The important stuff is coded by core programmers in node.js, C++, and Perl. They are paid $150/hour [06:56] sorens3n: pay them nothing and i promise you they will give you nothing [06:56] felixge: `3rdEden: nah, I guess you didn't see my bacon commit :) [06:56] MooGoo: c++ and perl [06:56] HornyiPadHumper: MooGoo: Only for a few things [06:56] `3rdEden: felixge hook me up [06:56] felixge: `3rdEden: anyway, I'm really only allowed to fix typos & stuff. Everything else goes through the BDFL [06:56] `3rdEden: with the url :P [06:56] shimondoodkin: level09: ther eis also http://cast-project.org/ [06:56] sorens3n: dont try to sugar coat it [06:56] MooGoo: all my important code is written in malbolge [06:56] sorens3n: i hope you pay your PHP devs 20+ [06:57] sorens3n: as 'minimum wage' [06:57] sorens3n: and thats low imho [06:57] level09: shimondoodkin: whats that for ? [06:57] `3rdEden: felixge: BDFL is good thing [06:57] MooGoo: companies are cheap [06:57] HornyiPadHumper: sorens3n: We can't pay people $150/hour to put together basic stuff. [06:57] felixge: `3rdEden: https://github.com/joyent/node/commit/2b91256c6185fbcaaa5fc49a3a541e5ed0ec0e75#commitcomment-399402 [06:57] ivanfi has joined the channel [06:57] shimondoodkin: distributing nyour nodejs code [06:57] shimondoodkin: to cluster [06:57] sorens3n: tell me more about why you hire mexicans to program [06:57] sorens3n: pls [06:57] sorens3n: i want to know [06:57] Aria: Whoa, dude. [06:57] `3rdEden: felixge lol. [06:57] sorens3n: and i hope you get the reference [06:58] HornyiPadHumper: sorens3n: Dude, I can get PHP interns for eight bucks an hour and I'm in Manhattan [06:58] Aria: You're seriously treading into troll territory. [06:58] MooGoo: lol [06:58] sorens3n: yeah, i'll stop, sorry Aria [06:58] felixge: HornyiPadHumper = marak? :) [06:58] MooGoo: how can you even be homeless in NYC at $8 an hour [06:58] sorens3n: its just sad to hear [06:58] sorens3n: and offensive [06:58] Aria: "only barely" [06:59] felixge: sorens3n: still better than the prisoners in china who have to play world of warcraft :) [06:59] sorens3n: Horny: i have no respect for you, end of story, we're done. [06:59] MooGoo: I only wish this one company just told me how much they wanted to pay me before I sat through a 4 hour "interview" [06:59] HornyiPadHumper: sorens3n: Please understand that I have some node.js guys and a talented woman (UX) that I am paying well over $100 an hour where it counts [06:59] sorens3n: does. not. matter. [06:59] `3rdEden: OMG there will be 3 core commits @nodecampeu now ;D [06:59] shimondoodkin: icould get begginers for 15$ but now we pay 20-30 [06:59] tdegrunt has joined the channel [06:59] chjj: wow $100 an hour for UX [07:00] MooGoo: I had no idea nodejs was already such srs business [07:00] chjj: why didnt i go in that direction [07:00] HornyiPadHumper: chjj: The problems we solve in design are very complex. [07:00] MooGoo: yea [07:00] chjj: ok [07:00] MooGoo: thumb controllered interfaces are difficult [07:00] shimondoodkin: HornyiPadHumper: joke: did she told you this [07:00] MooGoo: arent they [07:00] MooGoo: everything being all big [07:01] xsyn has joined the channel [07:01] HornyiPadHumper: But I am *not* paying more than I have to for basic server-side coding I can get done by PHP coders and save money for where it counts [07:01] HornyiPadHumper: (scaling/design) [07:01] sorens3n: justify your inequities how you will [07:01] MooGoo: you know what [07:01] MooGoo: we need to start a union [07:02] sorens3n: meatpacking plants say the same things about hiring illigals [07:02] HornyiPadHumper: Sorry, not everyone is of equal value. [07:02] mjr_: everybody loves unions [07:02] Aria: I must say I'm glad to be headed to work for a group of people where everyone's pretty high value. [07:02] HornyiPadHumper: Especially in Manhattan [07:02] MooGoo: yea [07:02] rahul_ has joined the channel [07:02] ryah: mjr_: not me [07:02] mjr_: oh right, me either [07:02] MooGoo: where are the programmers unions [07:02] MooGoo: do they exist at all [07:02] fangel has joined the channel [07:02] Aria: India. [07:02] ryah: oh wait - i thought you meant c unions [07:02] jarek has joined the channel [07:02] ryah: i like real unions [07:03] MooGoo: no I was talking about SQL unions dumbass [07:03] sorens3n: value your programmers, or gtfo [07:03] jarek has joined the channel [07:03] mjr_: c union local [07:03] chjj: lol ryah [07:03] shimondoodkin: Manhattan [07:03] shimondoodkin: [10:02] yea [07:03] _jgr has joined the channel [07:04] MrTopf has joined the channel [07:04] shimondoodkin: oops [07:04] ryah: https://github.com/joyent/libuv/blob/e3923b76b455f957915f9b8edf786a3de6d17b2c/uv-unix.h#L49-78 [07:04] Wa has joined the channel [07:04] ryah: ^- me hating unions [07:04] MooGoo: why do I click on things [07:04] ryah: (i doubt anyone will understand this... too domain specific) [07:05] Aria: Heh, oy, ryah. I know JUST what you mean by that. [07:07] jbpros has joined the channel [07:07] CorryV8 has joined the channel [07:07] MooGoo: this place needs a better topic [07:08] mscdex: node.js rules! [07:08] MooGoo: that's a start [07:08] nail_: Do you guys have a nice tool that combines with git-svn and _recursively_ tracks svn:externals dependencies? There are a few available but I'd prefer recommendations before starting a 'clone' that will last several hours :) [07:09] supster: /topic #node.js how much HornyiPadHumper pays his coders. IN MANHATTAN. [07:09] azend_ has joined the channel [07:09] __jgr has joined the channel [07:09] mscdex: that's the same person who is always discussing Madonna [07:10] suresh: how about a node.js project of the day as the topic? [07:10] thron7 has joined the channel [07:11] rahul_ has joined the channel [07:11] shimondoodkin: suresh:i like the idea, put some interesting news topics [07:11] MooGoo: how bout give my js bot op, then I have it make random topics on a timer [07:12] shimondoodkin: MooGoo: to make a topic bot [07:12] MooGoo: what is a topic bot [07:12] mAritz has joined the channel [07:13] shimondoodkin: MooGoo: its abot that you can chat with and it will put random topics later [07:13] MooGoo: calvin has a lot to say [07:13] Calvin: has an opinion about fibers lot [07:13] jesusabdullah: That's kind of a cool idea [07:13] MooGoo: calvin why dont you tell me a good topic [07:13] Calvin: topic bot [07:13] shimondoodkin: Calvin: yes tell me [07:13] Calvin: tell me [07:13] MooGoo: calvin what's a good topic? [07:13] Calvin: what's the avatar hosting website topic [07:13] MooGoo: I dunno [07:14] MooGoo: we should steal it [07:14] jesusabdullah: Probably avatar hosting [07:14] MooGoo: figures [07:14] shimondoodkin: Calvin do you have an opinion about node-fibers ? [07:14] Calvin: nodefibers opinion [07:14] MooGoo: !quote fibers [07:14] Calvin: 402038 Calvin do you have an opinion about node-fibers ? [07:14] MooGoo: !quote fibers [07:14] Calvin: 401720 does any body has an opinion about node-fibers ? [07:14] MooGoo: apparently not [07:15] shimondoodkin: is it your bot? [07:15] MooGoo: calvin whose your daddy [07:15] Calvin: whose your daddy daddy [07:15] mscdex: !quote lol [07:15] Calvin: 401917 lol ryah [07:16] shimondoodkin: !quote daddy [07:16] Calvin: 402052 calvin whose your daddy [07:16] mscdex: !quote labview [07:16] Calvin: I cants find :( [07:16] nivoc has joined the channel [07:16] mscdex: !quote matlab [07:16] Calvin: I cants find :( [07:16] shimondoodkin: !quote $ [07:16] Calvin: I cants find :( [07:16] rahul_ has joined the channel [07:16] MooGoo: calvins only been in this chan for like....an hour [07:16] Calvin: calvins only been in this chan for likean [07:16] mscdex: !quote [07:16] Calvin: 401658 node does async better [07:16] MrTopf has joined the channel [07:16] digiwano: a buddy of mine has been raving about node-fibers lately [07:16] mscdex: !quote [07:16] Calvin: 401142 you can rightly feel above anyone who makes fun of you for not coding in PHP [07:17] MooGoo: there [07:17] mscdex: !quote [07:17] Calvin: 401887 everybody loves unions [07:17] MooGoo: make that the topic [07:17] digiwano: heh [07:17] mscdex: magic quote query! [07:17] shimondoodkin: !quote [07:17] Calvin: 401483 and this was back in a time when IE6 compatibility was still expected [07:17] MooGoo: digiwano I couldnt get it to work when I tried [07:17] MooGoo: but I'd like to use it [07:17] digiwano: he even said uh [07:17] digiwano: "honestly, node was hand crafted for fibers" [07:17] MooGoo: it srsly is [07:18] MooGoo: all this async bs [07:18] digiwano: i've been fallin in love with async.js [07:18] mscdex: lol @ "async bs" [07:18] MooGoo: imagine how easy it'd be with contiunuations of some sort [07:18] OneBraveHog: I don't want to be an asshole and say everything has to be async ! [07:19] mscdex: i don't want any module molesting my js code [07:19] MooGoo: async.js only works on spidermonkey? [07:19] OneBraveHog: I remember tha from the Google Tech talk [07:19] digiwano: MooGoo: no [07:19] digiwano: MooGoo: i think the npm name is async-js [07:19] wilmoore has joined the channel [07:19] digiwano: theres a few different things called async.js [07:20] MooGoo: yes [07:20] MooGoo: it is not easy to search for [07:20] MooGoo: https://github.com/caolan/async [07:20] MooGoo: ? [07:21] digiwano: this one: https://github.com/ajaxorg/async.js/ [07:21] digiwano: its very functional composition-y, which [07:21] digiwano: <3 [07:21] MooGoo: it just chains functions [07:21] MooGoo: er [07:21] MooGoo: you just list them or something [07:21] MooGoo: instead of nesting them [07:21] rahul_ has joined the channel [07:21] digiwano: you get much more nerd street cred if you say function composition [07:21] MooGoo: wat [07:21] jesusabdullah: It's true! [07:22] MooGoo: wtf is a function composition [07:22] jesusabdullah: f(g(x)) [07:22] jesusabdullah: CHUCKLES [07:22] digiwano: in functional programming, its composing a nested chain of functions into a single funtion [07:22] MooGoo: how bout [07:22] smcq has joined the channel [07:22] MooGoo: I just say functions [07:23] jesusabdullah: Here's a function composition: function(x) { return f(g(x)); } That makes a new function "composed" of f and g [07:23] MooGoo: problem [07:23] jesusabdullah: It's a powerful idea, especially in a language like haskell where you can just write something like, f . g [07:23] MooGoo: well my function is composed of a random alert() statement [07:23] jesusabdullah: BAM [07:23] MooGoo: so that's a composition [07:23] jesusabdullah: Well, not necessarily [07:23] MooGoo: all my functions are composed of some shit [07:23] MooGoo: I mean they really gotta be [07:23] rahul_ has joined the channel [07:24] MooGoo: else their just empty [07:24] MooGoo: they're [07:24] jesusabdullah: A composition is a technical term for the idea of taking pre-existing functions and mashing them together to make new functions [07:24] MooGoo: so its like [07:24] MooGoo: taking instructions [07:24] jesusabdullah: That is, there is a subtle difference between function fog (x) { return f(g(x)); } [07:24] MooGoo: and putting them together [07:24] digiwano: ya i fell in love with scala a while back, except for the fact that it runs on the jvm which is pretty much a major dealkiller for me [07:24] MooGoo: to make programs [07:24] supster: no. it's passing the result of one function to another! [07:24] jesusabdullah: and f(g(x)) itself [07:25] MooGoo: anyway [07:25] MooGoo: it's still unnatural [07:25] MooGoo: without real support for continuations [07:25] MooGoo: like yield [07:25] jesusabdullah: ugh [07:25] jesusabdullah: no [07:25] MooGoo: yes [07:25] digiwano: but i suggest the scala book to any programmer writing code in any language, i think the concepts and thinking it introduces to you can make you a better programmer in general even if you never write a line of scala code [07:25] jesusabdullah: no no no [07:25] MooGoo: yes [07:25] jesusabdullah: yield is disgusting [07:25] Bj_o_rn has joined the channel [07:25] MooGoo: as a word I find it fairly neutral [07:25] jesusabdullah: yield is only useful if you can't write multi-line lambdas imo [07:25] rahul__ has joined the channel [07:25] hassox has joined the channel [07:26] MooGoo: first off [07:26] digiwano: seriously, amazing book, everyone go buy it 8) [07:26] MooGoo: js needs function literal short hand [07:26] digiwano: the pdf version has syntax coloring too, which is awesome [07:26] MooGoo: then a lot of this stuff becomes more natural [07:26] yhahn has left the channel [07:26] sechrist_ has joined the channel [07:26] digiwano: i've been doin a lot in coffee lately for just that reason [07:26] jesusabdullah: js definitely could use a nice function shorthand [07:27] MooGoo: coffee goes too far [07:27] rahul__ has joined the channel [07:27] jesusabdullah: Why do you say that? [07:27] digiwano: at jsconf brendan said he was going to propose coffee's ->/=> at the next js.next meeting [07:27] MooGoo: it just...does [07:27] MooGoo: it's a total different language [07:27] jesusabdullah: NO GUT [07:27] MooGoo: I just want one thing [07:27] jesusabdullah: No gut feelings [07:27] jesusabdullah: This is MAN STUFF, Dee! [07:27] mscdex: no more flying solo! [07:27] jesusabdullah: It *is* a different language [07:27] Jalava: i wonder if there is any way to escape try / catch block so that if callback inside try catch is no longer catched if there is error [07:27] MooGoo: nah functions should just be blocks [07:27] MooGoo: no extra symbol [07:27] jesusabdullah: Besides *that* (and, I mean, it's significant), I think the way coffeescript does things is reasonable [07:28] MooGoo: var hello = { alert('hai') } [07:28] MooGoo: that should be a function [07:28] Jalava: because if i got try / catch for example db connection open, and it's callback continues by calling outer callback (pretty regular, right), then the outer callback is still inside try / catch block that is meant just for inner callback [07:28] MooGoo: var hello = (arg){ alert(arg) } [07:29] MooGoo: or that [07:29] digiwano: MooGoo: tbh i think THAT's taking it too far [07:29] digiwano: second one not so much [07:29] MooGoo: why not [07:29] DelvarWorld: does anyone know offhandedly in node if it's faster to do string concatenation in a loop with str += or arr.push() then after loop arr.join() [07:29] MooGoo: I guess you could require [07:29] Aria: Awful hard to parse unambiguously there. [07:29] MooGoo: params [07:29] MooGoo: there's always issues like that [07:29] sorens3n: alright, out for the night [07:29] MooGoo: js is complex [07:29] sorens3n: Aria: sorry if i offended you [07:29] MooGoo: it can be done [07:29] sorens3n: got a little heated earlier [07:30] Aria: DelvarWorld: Don't know offhand, I'd not be surprised if it depends on the size of the strings. Internally, v8 stores them as chords, so it keeps them in medium-size pieces. [07:30] MooGoo: you shall not be forgiven [07:30] Jalava: such as function(cb) { try { db.open('foo', function(err) { if(err) { throw err} else return cb(null); }) }catch(err){ cb(err, null) }} [07:30] digiwano: MooGoo: either way, i think we'll end up seeing () -> { return foo; } [07:30] Druide_ has joined the channel [07:30] MooGoo: I guess I'll live [07:30] Jalava: problem is that if anything after cb(null) has exception, it's catched by try/catch block ;) [07:30] MooGoo: no implicit return? [07:30] digiwano: which is entirely better than function(){} [07:30] digiwano: all over the goddamned place [07:32] MooGoo: ok [07:32] MooGoo: but why not have a keyword like [07:32] MooGoo: var html = wait get(url) [07:32] MooGoo: or something [07:32] [AD]Turbo has joined the channel [07:32] Aria: Because then you're maintaining a whole stack. [07:32] MooGoo: instead of having callbacks everywhere [07:33] MooGoo: oh [07:33] stephank has joined the channel [07:33] rahul_ has joined the channel [07:33] [AD]Turbo: hi there [07:33] MooGoo: it'd stay non blocking [07:33] Aria: Anyway. Night, all! [07:33] Aria: Yeah, but non-blocking doesn't imply stack-unwinding either. node does both. [07:33] Aria: For better or worse. Nice on the memory use front though. [07:33] MooGoo: ill think about this [07:33] Aria: Night! [07:34] DelvarWorld: string concat actually seems faster based on my simple test [07:34] shimondoodkin: Aria: its 10:30 am here in Israel [07:35] AdmGre has joined the channel [07:36] jesusabdullah: Israel, huh? [07:36] jesusabdullah: Man I would not want to live there. Scary! [07:36] ditesh|cassini has joined the channel [07:36] DelvarWorld: google confirms it: in node it is faster to concat strings than to build an array and join it [07:36] shimondoodkin: jesusabdullah: yea [07:36] jesusabdullah: shimondoodkin: What's it like? [07:37] sechrist has joined the channel [07:37] MooGoo: shit blows up all the time [07:37] MooGoo: jews are everywhere [07:37] shimondoodkin: guys with funny hats [07:38] MooGoo: I think they project a star of david into the night sky like the bat signal [07:38] amaudy has joined the channel [07:38] MooGoo: over pakistan [07:38] MooGoo: er [07:38] MooGoo: whatever that place is [07:38] yozgrahame has joined the channel [07:38] MooGoo: palestine [07:38] shimondoodkin: yesterday i was going out and i felt very safe gurds are everywhere here , and people here are very nice , i saw people leving their staff in a club and nobody touches [07:39] shimondoodkin: no violance at the streets [07:39] Jalava: hmm, i can't escape try / catch even with process.nextTick() :( [07:39] shimondoodkin: actualy people dive more from car accidents then from terorist attacks [07:39] shimondoodkin: *die [07:39] steffkes has joined the channel [07:40] MooGoo: propoganda [07:40] shimondoodkin: we afraid to go to palestinian places like gaza it is there scary [07:41] MooGoo: like some white country boy hanging out in the city ghetto at night [07:41] shimondoodkin: much more [07:41] shimondoodkin: they can kill [07:42] MooGoo: they just randomly kill jews walking about [07:42] jesusabdullah: You're Jewish then shimondoodkin [07:42] jesusabdullah: ? [07:42] shimondoodkin: in gaza yes [07:42] jesusabdullah: Ah [07:42] jesusabdullah: Do you have Palestinean friends? [07:43] shimondoodkin: no paletinian but two arabic friends and they live in israel and they are very nice [07:43] jesusabdullah: I also, on some level, have a hard time understanding why Palestineans don't, erm, just run for government or something [07:43] jesusabdullah: Ah! [07:43] msucan has joined the channel [07:43] Ned_ has joined the channel [07:43] jesusabdullah: I like this AMA. [07:44] jesusabdullah: I still want to see an rts game where you can play as Israel [07:44] jesusabdullah: because everyone knows not to fuck with Israel. What an interesting army that would be to code [07:44] aliem has joined the channel [07:45] jesusabdullah: In other news: Oh my goodness stoli vodka is criminally delicious [07:46] digiwano: stoli elit is pretty tasty but the red&white label stoli is only good in an 08s britcom glam sort of way [07:46] catch has left the channel [07:47] jesusabdullah: pffsht shows how much you know digiwano [07:47] jesusabdullah: Or, at least, how little in the way of complete swill you have drank [07:47] digiwano: im very well acquainted with stolichnaya let me assure you [07:47] jesusabdullah: I dare you to do a taste test between Seagrams Raspburry and Stoli Raspburry [07:47] jesusabdullah: You will try to light the Seagrams on fire but its proof will be too low [07:48] digiwano: its decent for a $20 / 750ml bottle vodka but [07:48] blkcat: suprepremium vodka is a scam [07:48] jesusabdullah: It's $30/bottle here [07:48] blkcat: super, rather. :) [07:48] digiwano: yeesh [07:48] digiwano: i wouldnt pay $30 for that [07:48] jesusabdullah: I think this lemon stoli tastes extra special awesome because it was on sale ;) [07:48] blkcat: it started with grey goose and went downhill from there [07:48] shimondoodkin: sounds like you buy the name [07:48] blkcat: a triumph of marketing [07:48] jesusabdullah: Oh, I'm digiwano! I'm a little bitch! I only drink Crystal Skull! [07:48] digiwano: i do adore stoli elit though [07:49] jesusabdullah: XD [07:49] jesusabdullah: Just giving you shit digiwano [07:49] digiwano: lol [07:49] jesusabdullah: but I have to admit that I find mid-shelf alcohol delicious [07:49] stkim1 has joined the channel [07:49] digiwano: i dont drink much vodka anymore [07:49] jesusabdullah: I also love the shit out of Jim Beam's basic [07:49] digiwano: nowadays when i reach for the sauce i generally head towards bourbon [07:49] blkcat: gin and whisky, the only way to go. [07:49] jesusabdullah: Jack can put on a good show as well [07:49] jesusabdullah: As long as it's not Kuyper's [07:49] jesusabdullah: uuuugh [07:49] digiwano: basil haydens <3 <3 <3 [07:50] digiwano: comes in a classy ass bottle too [07:50] jesusabdullah: idk what Haydens is but I love the plant basil [07:50] jesusabdullah: Someday I want to make green dragon <_<; [07:50] jesusabdullah: Like, just to say I did it [07:50] digiwano: http://liquorama.biz/images/Basil%20Hayden%5C%27s%20750.jpg [07:50] jesusabdullah: I really really want that. [07:50] hassox has joined the channel [07:50] jesusabdullah: My brother and dad went on a motorcycle trip [07:51] jesusabdullah: and took a few distillery tours [07:51] blkcat: digiwano: bourbon yesss :) [07:51] jesusabdullah: of jim Beam and Maker's Mark both [07:51] jesusabdullah: I lurve me a bourbon truth be told [07:51] digiwano: blkcat: bourbon in a classy bottle no less 8) [07:51] jesusabdullah: The reason I developed a taste for wodka is cause my ex was gluten-intolerant [07:51] jesusabdullah: so I had to find alcohols with very little (if any) wheat-based stuff in them [07:51] blkcat: digiwano: you should check out bulleit, it has a sweet bottle ;) [07:51] jesusabdullah: bulleit is also delish [07:51] jesusabdullah: Oh, I had this, umm [07:51] digiwano: bulleit IS a sweet bottle [07:52] jesusabdullah: fuck [07:52] digiwano: and delicious yes [07:52] jesusabdullah: I think it was honey-flavored Jack Daniels [07:52] digiwano: also makers mark has a classy ass bottle [07:52] digiwano: the melty wax top is cool as HECK. [07:52] blkcat: but gin is still my first love. [07:52] jesusabdullah: That was a pretty good sippin' whiskey [07:52] dransfim has left the channel [07:52] jesusabdullah: I haven't had a gin I've liked [07:52] jesusabdullah: Not to say I don't like gin! [07:52] jesusabdullah: I just haven't had a good gin [07:52] jesusabdullah: or a good gin mixed drink [07:52] jesusabdullah: My brother lurves gin [07:53] jesusabdullah: and my ex's alcoholic grandmother's drink of choice was gin [07:53] stonebranch has joined the channel [07:53] jesusabdullah: She had jillions of boxes that used to carry gin but now contain family photos and baubles [07:53] jesusabdullah: Actually, her house was really awesome [07:54] jesusabdullah: Her late husband was a prestigious psychoanalyst [07:54] troessner has joined the channel [07:54] jesusabdullah: http://www.flickr.com/photos/jesusabdullah/5346991046/in/photostream [07:54] adrianmg has joined the channel [07:54] jesusabdullah: and near there [07:54] jesusabdullah: GINNY [07:54] jesusabdullah: that was the name of the alco granny [07:55] jesusabdullah: Not that I have much room to talk. I ran out of happy pills and made an ass of myself on that trip. [07:55] blkcat: oh nooo, seagram's :( [07:56] jesusabdullah: I know :( [07:56] jesusabdullah: but when you gotta roll bulk... [07:56] jdp has joined the channel [07:56] jesusabdullah: Alcoholics gotta make sacrifices to keep the BAC up [07:56] jesusabdullah: We all do [07:57] jdp has left the channel [07:57] jesusabdullah: Her family actually cut her off [07:57] jesusabdullah: She isn't allowed to drink anymore3 [07:57] jesusabdullah: because they know it'll be a horrifying downward spiral [07:57] blkcat: that's how it goes, yeah. :\ [07:58] digiwano: i probably should have acquired more food [07:58] jesusabdullah: digiwano: T-Bell run! [07:59] _jgr has joined the channel [07:59] digiwano: i dont even know where there is a t-bell around here [07:59] digiwano: portland's a weird town [08:00] jesusabdullah: NO T-BELL!? [08:00] jesusabdullah: Fuck Portland! [08:00] digiwano: i know where theres one by work [08:00] jesusabdullah: There had better be T-Bell in Oakland! [08:00] digiwano: theres gotta be one somewhere out here but [08:01] jacobolus has joined the channel [08:01] digiwano: no clue where [08:01] jesusabdullah: My family likes taco bell so much it's almost a joke [08:01] coderendezvous has joined the channel [08:01] DelvarWorld has left the channel [08:01] jesusabdullah: Yessch, not enough T-Bells, but enough to get by [08:02] digiwano: what i miss is del taco [08:02] digiwano: i'd kill a dude for some del taco right now [08:02] jesusabdullah: Oh sweet Carl's Jr just up the street [08:02] digiwano: theres very little greek up here too [08:02] jesusabdullah: I'm gonna gain EVEN MORE weight! >:O [08:02] jesusabdullah: I haven't had greek in ages [08:02] digiwano: which, i moved here from slc, and slc has this like [08:02] jesusabdullah: My town has mostly, umm [08:02] jesusabdullah: thai [08:02] jesusabdullah: restaurants [08:02] digiwano: pocket greek orthodox population [08:03] Yoric has joined the channel [08:03] jesusabdullah: like, a ridiculous amount of thai restaurants per capita [08:03] digiwano: and a theres 3 major greek/american burger chains local to slc that are all totally amazing [08:03] digiwano: even if not even close to resembling healthy [08:03] digiwano: also theres fucking no chinese delivery [08:03] digiwano: which floors me [08:04] jesusabdullah: hahaha [08:04] digiwano: iduno how these people have survived this long without chinese delivery [08:04] jesusabdullah: Yeah, some people y'know? [08:04] jesusabdullah: How's SLC? [08:04] jesusabdullah: I have to admit [08:04] TomY has joined the channel [08:04] jesusabdullah: while I was at the Airport [08:04] digiwano: incredibly pretty city [08:04] jesusabdullah: I was analyzing everyone, trying to guess who was Mormon and who was not [08:04] digiwano: but having lived there for nearly 30 years i can tell you [08:05] digiwano: roughly 50% of the people are horrible [08:05] digiwano: like they're polite but they're not friendly and you get this creepy feeling you're always being judged everywhere you go [08:05] pandark_: Hi. Can someone tell me how I can run mustache.js tests? Testing is quite new to me. [08:05] digiwano: but the rest of the people are pretty damned decent and like i say its an absolutely beautiful city [08:06] digiwano: but im glad to be away from the snow [08:06] digiwano: so fucking glad [08:06] jesusabdullah: pandark_: If you link it to me I can take a looksee and let you know if I can figure out how to run the tests [08:06] jesusabdullah: digiwano: Probably all the people thinking, "Is that guy Mormon?" [08:06] pandark_: jesusabdullah: https://github.com/janl/mustache.js [08:06] MooGoo: someone give me a code challenge [08:07] digiwano: jesusabdullah: yeah its totally that, slc itself is about 50/50 normon/non-mormon, thats why i gave that figure [08:07] ParadoxQuine: is there a quick command i could use to move all of my plugins to the npm -g location? i installed everything after updating and its in my home folder... [08:07] digiwano: outside of slc its much more mormony than that [08:07] digiwano: but it's weird, it's the closest the west has got to a bible belt [08:08] jesusabdullah: heh [08:08] jesusabdullah: I bet [08:08] jesusabdullah: I had the feeling that SLC was too metropolitan for most of the fundies [08:09] digiwano: well most of the super mormon types live in fancy ass carbon copy houses suburbia [08:09] jesusabdullah: pandark_: I don't recognize any obvious test harness here. The test file is written in ruby, oddly enough! [08:10] digiwano: nearer to downtown tends to be more liberal-ish, but theres still the heavy mormon presence even there [08:10] digiwano: most people get along but [08:10] jesusabdullah: pandark_: Try to run the file in tests/ using ruby. Say, > ruby these_are_the_tests.rb [08:10] adambeynon has joined the channel [08:10] digiwano: i mean, you cant buy beer higher than 3.2% abv in grocery stores [08:10] jesusabdullah: Silly! [08:10] digiwano: and no wine or liquor anywhere but liquor stores [08:11] jesusabdullah: Well [08:11] digiwano: or >3.2 beer [08:11] jesusabdullah: in alaska, grocery stores have separate liquor sections [08:11] jesusabdullah: with their own tellers [08:11] hellp has joined the channel [08:12] digiwano: like, big name beers freeze the alcohol out to sell them for slc standards, most microbrews dont make it out there [08:12] digiwano: theres a pretty decent selection of local microbrews that dont taste like complete ass because they specifically target the 3.2 mark rather than freezing it out [08:12] jesusabdullah: Crazylegs [08:13] digiwano: but they're only 'decent' [08:13] jesusabdullah: Sure [08:13] digiwano: up until last june, bars had to be membership-only, you'd have to buy a year-long membership to get in, at least one person in your group had to have one [08:13] pandark_: ACTION installing rubygem just to run a test ^^'' [08:13] digiwano: which wasnt a problem for like, going out to a bar or two [08:13] digiwano: but you couldn't do a pub crawl there [08:14] digiwano: they finally ditched that last year though [08:14] digiwano: after i'd moved away lol [08:16] jesusabdullah: pandark_: Why do you want to run the tests, anyway? [08:16] jesusabdullah: pandark_: If it involved effort on my part I would just be like, "fuck it" and not run them [08:17] ExsysTech has joined the channel [08:18] seivan has joined the channel [08:19] pandark_: jesusabdullah: I'd like to add something to mustache.js (to try, at least :) ) and at the same time make my first pull request ever ^^ [08:19] mAritz has joined the channel [08:20] jesusabdullah: pandark_: Word. [08:21] MooGoo: I remember my first git push [08:21] MooGoo: I felt all organized [08:22] herbySk has joined the channel [08:22] jesusabdullah: I remember when I first put a project on github [08:22] jesusabdullah: I felt like an internet badass [08:22] jesusabdullah: for showing the world the bullshits that I had cobbled together [08:22] jesusabdullah: Over time, I've learned why and how they were and weren't bullshits [08:23] MooGoo: I remebered when I thought people who posted code online wrote good code [08:23] jesusabdullah: XD [08:23] stkim1: hi o/ [08:23] stkim1: just a quick question [08:23] stkim1: where can i find non-bs straight-forward node/redis connection tutorial? [08:23] jesusabdullah: https://github.com/jesusabdullah/super-four-bar-explorer first github evar [08:24] jesusabdullah: stkim1: If I knew I would totally help you. :( I've very little experience with databases. [08:24] __jgr has joined the channel [08:24] MooGoo: hey look at me [08:24] MooGoo: https://github.com/m00g00/catbot [08:24] eikaas has joined the channel [08:25] stkim1: jeusabdullah: thanks anyway ;) [08:25] d0k has joined the channel [08:25] burningdog has joined the channel [08:25] rauchg has joined the channel [08:26] jesusabdullah: MooGoo: Your first project too? [08:26] jesusabdullah: WRITE THIS LATER I DONT THINK SO [08:26] MooGoo: yes [08:26] jesusabdullah: YOU GET RIGHT BACK IN THERE MISTER [08:27] MooGoo: best irc bot out there [08:27] Bj_o_rn has joined the channel [08:27] `3rdEden: Document it, or it didn't happen [08:27] rsms has joined the channel [08:28] adambeynon has joined the channel [08:28] eldar has joined the channel [08:28] AvianFlu has joined the channel [08:28] jesusabdullah: Your MOM is the best irc bot out there [08:29] jesusabdullah: ^__^ [08:29] AvianFlu: pssht, kohai rules, don't even front [08:29] xsyn has joined the channel [08:29] MooGoo: calvin what do you think of jesusabdullah's mom [08:29] Calvin: jesusabdullah's mom [08:29] MooGoo: thanks calvin [08:29] Calvin: thanks , appreciate [08:29] jesusabdullah: MooGoo: Look into http://github.com/martynsmith/node-irc instead of js-irc [08:30] jesusabdullah: It's boss [08:30] AvianFlu: yeah node-irc rules [08:30] MooGoo: hrm? [08:30] wjwoodward has left the channel [08:30] jesusabdullah: for jabbascript irc library action [08:30] MooGoo: why use some half baked irc lib when I can write my own [08:30] jesusabdullah: That's the one you want! [08:30] jesusabdullah: tsk tsk [08:30] MooGoo: but I already wrote my own [08:30] jesusabdullah: but node-irc is awesome :( [08:30] digiwano: i need to rewrite my bot in node [08:30] digiwano: well [08:30] AvianFlu: node-irc is serious awesome [08:31] MooGoo: its just a lib [08:31] digiwano: keep the brain in perl/hailo and use sockets or somethin [08:31] mjr_: Why does anybody ever use software they didn't write? [08:31] MooGoo: not a full out bot [08:31] mjr_: Makes no sense. [08:31] MooGoo: srsly [08:31] jbpros has joined the channel [08:31] MooGoo: I feel a little shamed for letting node compile and run it [08:31] MooGoo: but ill live [08:31] MooGoo: can node-irc reload modules during run time [08:31] mjr_: You do rewrite most of the machine code that V8 generates though, right? [08:32] jesusabdullah: an AWESOME lib! [08:32] jesusabdullah: Actually, the first time bot-writing actually Made Sense to me was with node [08:32] jesusabdullah: it's perfect for writing bots [08:32] MooGoo: on punch cards, just to be sure [08:32] jesusabdullah: because so much of IRC is event-based [08:32] MooGoo: yes [08:32] MooGoo: like this one guy [08:32] digiwano: yeah i really need to switch my robot [08:32] MooGoo: talking about how his eggdrop bot was so great [08:33] jesusabdullah: I looked into eggdrop [08:33] MooGoo: and every time it tried to scrape data off of twitter [08:33] jesusabdullah: It's in tcl :( [08:33] jesusabdullah: and, also [08:33] jesusabdullah: also [08:33] digiwano: and seriously just git rid of most of that atrocious perl codebase [08:33] MooGoo: it would stall up for 15 min while twitter broke [08:33] jesusabdullah: its config is ridiculous [08:33] digiwano: but i like Hailo too much to completely abandon it [08:33] jesusabdullah: digiwano: Why you hatin' on perl? ;) [08:33] jesusabdullah: hah [08:33] `3rdEden: mjr_ NIH syndrome :( [08:33] jesusabdullah: While I don't know much perl, I've seen some awesome shit done with it [08:33] MooGoo: nodejs seems faster even when the network response is quick [08:33] jesusabdullah: I want to learn it someday [08:33] digiwano: i've written awesome shit in it [08:34] digiwano: just not this robot [08:34] digiwano: lol [08:34] MrTopf has joined the channel [08:34] MooGoo: you should really just use my irc library [08:34] sechrist has joined the channel [08:34] MooGoo: its not documented [08:34] MooGoo: or seperated from my bot [08:34] jesusabdullah: digiwano: lol [08:34] hassox has joined the channel [08:34] burningdog has joined the channel [08:34] digiwano: i did it to play with moose in perl [08:34] digiwano: and kind of got off track quickly [08:35] digiwano: got unmanageable and i hate most of the code [08:35] jesusabdullah: MooGoo: Yeah well the bot I have to work with exposes the relevant parts of node-irc over dnode, so [08:35] jesusabdullah: that's how I'm rollin' [08:35] jesusabdullah: unless I wanna gut the entire corporate bawt [08:35] jesusabdullah: and that's not how I roll! [08:35] digiwano: wanna just set up the multi-brain backend in perl, connect to it via node and do all of the actual irc/twitter/aim in node [08:35] MooGoo: your bot needs to reload modules without restarting [08:35] jesusabdullah: Also, dnode rox [08:35] MooGoo: and be resistent to exceptions and syntax errors [08:35] `3rdEden: Y use moose in perl all the cool kids use anyevent ;D [08:36] jesusabdullah: MooGoo: That's why we dnode! XD [08:36] xeodox has joined the channel [08:36] jesusabdullah: I use, umm [08:36] jesusabdullah: not perl :( [08:36] jesusabdullah: even though substizzy thinks it's no big thang, I'd still like to see a zmq transport for dnode [08:36] digiwano: `3rdEden: Hailo's written w/ moose so i figured it was a good place to play with moose [08:37] pandark_: ACTION wonders why some people love ruby so much… [08:37] burningdog_ has joined the channel [08:37] AvianFlu: jesusabdullah: you should help us out with the kohai project [08:37] digiwano: but ended up designing a really hard to use interface and blah [08:38] jesusabdullah: pandark_: lol, me too. XD I hear it's better then python in that it has block syntax and all [08:38] jesusabdullah: AvianFlu: Yeah? Where are you guys at with that? [08:39] AvianFlu: #kohai, lol [08:39] slicky: I think I might write some plugins for kohai [08:39] digiwano: i have a soft spot for ruby... but i feel like rails ruined ruby [08:39] slicky: the project has definitely got me interested [08:39] jesusabdullah: AvianFlu: I'm moving/road tripping over the course of this month, but I'd be happy to keep an eye [08:39] AvianFlu: slicky: thanks again btw lol [08:39] slicky: lol [08:39] jacter has joined the channel [08:39] AvianFlu: we had some good laughs this afternoon over that [08:39] slicky: You changed the topic in #kohai, right? [08:39] AvianFlu: yeah I noticed that later in the day [08:40] slicky: I had a pretty good laugh when I found it, too :D [08:40] xsyn has joined the channel [08:40] slicky: twitter hides newlines in any output so I just expected they *were* all one line, escaped by twitter. Took me a second to figure out there were there. :D [08:41] AvianFlu: don't worry, slicky... we all make the mistake of trusting the twitter API from time to time >.< [08:41] mscdex: not me! [08:42] MooGoo: everybody who counts loves ned flanders [08:42] slicky: Twitter users are robots, so I thought for a while we could trust them. Unfortunately, I forgot that skynet came online a while ago. [08:42] mscdex: like counts lines of code or what? [08:43] digiwano: when i was first testing my grammar engine i tried feeding it twitter's raw trending topics [08:43] digiwano: most of the time i couldnt tell the robot-generated sentences from the twitter ones [08:43] mscdex: skynet.js [08:43] digiwano: had to add in output coloring just so i'd be sure [08:44] sherod has joined the channel [08:45] dgathright has joined the channel [08:46] mike5w3c_ has joined the channel [08:46] pen has joined the channel [08:49] bzinger has joined the channel [08:49] mendel_ has joined the channel [08:51] znarfor has joined the channel [08:54] langworthy has joined the channel [08:55] dies_el has joined the channel [08:55] thalll has joined the channel [08:58] suresh has joined the channel [08:58] FireFly has joined the channel [09:01] Lorentz has joined the channel [09:05] xsyn has joined the channel [09:07] jhurliman: anyone doing image comparison with node? [09:07] e6nian has joined the channel [09:09] MrTopf has joined the channel [09:10] HerrTopf has joined the channel [09:10] mehlah has joined the channel [09:11] Ned_ has joined the channel [09:11] jeremyselier has joined the channel [09:12] chapel: `v git require resolve [09:12] v8bot: chapel: bentomas's gist: 315010 — Gist - https://gist.github.com/315010 [09:13] chapel: `v git bmeck [09:13] v8bot: chapel: bmeck's Profile - GitHub - https://github.com/bmeck [09:19] teddy^ has left the channel [09:20] markwubben has joined the channel [09:23] fille12 has joined the channel [09:24] fille12: quick question what rendering language do u prefer for expressjs [09:24] adnam: jade [09:24] ParadoxQuine: jade [09:24] adnam: if you mean templating engine [09:24] fille12: nod [09:24] ParadoxQuine: coffeescript+jade+stylus make for beautiful code [09:24] adnam: i'm very impressed by jade, everything i've used before that has major flaws [09:24] fille12: thats sounds good [09:25] brimster has joined the channel [09:25] fille12: do u got any good docs for that [09:25] fille12: cant found out what how to implement a css class [09:25] fille12: in an element [09:25] ParadoxQuine: for jade? the official docs are quite nice, same for stylus [09:25] fille12: where can i find it [09:25] adnam: "implement a css class"? [09:25] ChrisPartridge has joined the channel [09:25] fille12: i mean the attribute class [09:26] ParadoxQuine: http://learnboost.github.com/stylus/ and https://github.com/visionmedia/jade [09:26] ParadoxQuine: the equivalent of
    you mean? [09:27] fille12: thanks [09:27] fille12: nod [09:27] ParadoxQuine: yup [09:27] ParadoxQuine: div.className#idName [09:27] ParadoxQuine: that's the syntax [09:27] fille12: aa cool [09:27] ParadoxQuine: so div.classOne.classTwo or div#idName [09:27] fille12: got the docs rioght now [09:27] jelveh has joined the channel [09:28] ParadoxQuine: the page for express has easy ways to hook it up so you can write you templates in stylus and jade and itll compile it all into your static file dir as html+css when you launch your app [09:28] ParadoxQuine: have fun! [09:29] fille12: one more. what database driver should i use [09:29] ParadoxQuine: for which db? [09:29] cryptix has joined the channel [09:29] fille12: mysql i guess [09:29] mscdex: node-mysql [09:29] fille12: okej [09:29] mscdex: imho [09:30] ParadoxQuine: i have no opinion but id trust mscdex's [09:30] ParadoxQuine: have a good night guys [09:30] fille12: wave [09:32] christophsturm has joined the channel [09:33] jetienne: q. is there a good recomended tutorial on how to install node.js on window ? [09:36] JoshC1: yeah [09:36] JoshC1: https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows) [09:37] Xano has joined the channel [09:37] `3rdEden: jetienne yeah, wait untill libuv is stable ;D [09:37] `3rdEden: cygwin is crap [09:38] `3rdEden: you might as well install a vm on windows and install linux on that [09:38] eikaas_ has joined the channel [09:38] jetienne: `3rdEden: hmm ok im collaborating with somebody who is pro-php and window user... i would like to make it easy for him to run node (as i will code our project on node)... what is the best ? [09:39] jetienne: vm ? or maybe a mac... [09:39] `3rdEden: jetienne I would just say install a vm [09:39] jetienne: ok linux/mac seems clearly the way to go, or i will get more problem down the road [09:39] `3rdEden: Not all npm modules work on windows [09:39] jetienne: `3rdEden: ok thanks will do [09:39] jhurliman: mac is the best way to go IMO [09:39] __jgr has joined the channel [09:40] `3rdEden: Mac is always the best way to go ;D but for developing servers linux is the way to go [09:40] jetienne: jhurliman: yep.. but he got a two 26inch screens on his desk plugged to its pc [09:41] adambeynon has joined the channel [09:42] JackeyChan has joined the channel [09:42] snearch has joined the channel [09:46] skohorn has joined the channel [09:49] jonaslund: mmyeah, the way native modules are modelled (and much else) is after a "unix" philosophy [09:49] jonaslund: where you have a system compiler available always,etc [09:49] burningdog has joined the channel [09:51] jonaslund: and i guess they have the usual way of depending on app libs (like mysql libs,etc..) [09:51] Emmanuel: anyone using connect (especially connect.session) here ? [09:52] burningdog_ has joined the channel [09:52] Emmanuel: I don't feel like reimplementing a session store [09:52] Emmanuel: and the one provided apparently don't store Object, but data (prolly JSON) [09:52] Emmanuel: which mean I can't store function in this store [09:52] Emmanuel: (which I need to do) [09:52] Emmanuel: any clue [09:53] MooGoo: string the function up [09:53] JackeyChan has joined the channel [09:54] Emmanuel: then eval() it ? [09:54] Emmanuel: sounds like a good idea, I should have thought about it :) [09:55] MooGoo: you'll lose the functions context/closure of course [09:57] Emmanuel: ah crap [09:59] Emmanuel: so I need to find another [09:59] Emmanuel: way* [09:59] sechrist has joined the channel [09:59] rputikar has joined the channel [09:59] seivan has joined the channel [10:00] burningdog_ has joined the channel [10:01] MooGoo: probably wouldnt be hard to implament a basic session store [10:01] burningdog__ has joined the channel [10:05] index0h_ has joined the channel [10:07] Emmanuel: nope. Actually I had one before, but I found that using the connect one was more convenient [10:10] kawaz_air has joined the channel [10:13] Charuru has joined the channel [10:19] syskk has joined the channel [10:21] TheDeveloper has joined the channel [10:23] Casperin: I just accidentally deleted a node_modules containing cradle (every other module installed with npm seems to be installed somewhere in /usr/bin), which left programs relying on cradle unable to function. I can't uninstall it (because that folder is missing) and I can't reinstall it, because it's still technically installed. What can I do? [10:25] cinos has joined the channel [10:26] ngs has joined the channel [10:26] bwinton has joined the channel [10:26] Xano has joined the channel [10:27] burningdog has joined the channel [10:29] jbpros has joined the channel [10:29] Jalava: ok, if I use callbacks and try/catch, is right way to all callback return inside try / catch with process.nextTick(function() {cb(err, data}; )? [10:29] nilcolor: Casperin: install it for other user/ on other machine and copy it? [10:30] okuryu has joined the channel [10:31] Casperin: nilcolor: Hmm yeah.. better than anything else I can think of.. I'll give it a go :) [10:31] mscdex: Jalava: huh? you can't use try/catch with async functions unless they can throw an error immediately [10:31] nilcolor: Casperin: good luck ;) [10:31] sirdancealot has joined the channel [10:32] Casperin: thx :) [10:34] Yoric1 has joined the channel [10:34] kawaz_air has joined the channel [10:34] znarfor has left the channel [10:34] nilcolor: Jalava: async function returns even faster that immediately i think. so you cant try/catch async except error will be during calling async. i think so [10:34] Jalava: mscdex: there are cases, such ass connrefused that can happen with db drivers that i needto catch [10:34] Jalava: problem with try / catch is that if i use callbacks, all exceptions are catched by previous try / catch block :) [10:36] tuhoojabotti: I don't know why, but doing eval on a compiled dust template works, but using the loadSource doesn't. D: [10:37] Jalava: oh yeah, i can't use try / catch there, now i see [10:38] g_ has joined the channel [10:38] g_: Didn't work. Cradle is "installed" globally [10:40] Casperin2: time to revert the virtual machine :) [10:43] nilcolor has left the channel [10:49] Opaque has joined the channel [10:50] springify has joined the channel [10:50] asabil has joined the channel [10:51] oodavid has joined the channel [10:52] TomY has joined the channel [10:54] sreeix has joined the channel [10:54] xsyn has joined the channel [10:59] `3rdEden has joined the channel [10:59] iori has joined the channel [10:59] neshaug has joined the channel [11:01] ewdafa has joined the channel [11:02] index0h_ has joined the channel [11:02] suresh has joined the channel [11:09] kawaz_air has joined the channel [11:12] kawaz_air has joined the channel [11:12] nexxy has joined the channel [11:12] davidcoallier has joined the channel [11:12] sonnym has joined the channel [11:16] Hamms has joined the channel [11:17] stepheneb has joined the channel [11:17] radicality has joined the channel [11:19] dyer has joined the channel [11:19] dyer has joined the channel [11:21] eee_c has joined the channel [11:22] kriszyp has joined the channel [11:24] dyer has joined the channel [11:25] fille12: anyone here? [11:27] skm has joined the channel [11:27] Casperin has joined the channel [11:29] nilcolor has joined the channel [11:31] sorens3n: sure [11:32] pen has joined the channel [11:33] Wizek has joined the channel [11:33] fille12: solved it [11:33] fille12: just thought the node-mysql example was litle bit confusing [11:37] fly-away has joined the channel [11:41] mahna has joined the channel [11:41] Jonasbn_ has joined the channel [11:42] viz has joined the channel [11:45] suresh has joined the channel [11:48] brweber2 has joined the channel [11:48] ewdafa has joined the channel [11:49] Casperin: can nodejs be compiled with Python3 now? [11:52] ditesh|cassini has joined the channel [11:54] Mrfloyd has joined the channel [11:55] Emmanuel: Casperin: node is related to Python ? [11:56] adrianmg has joined the channel [11:56] Casperin: I remember getting errors when I tried to 'make' it last time, which I eventually solved by installing Python2 [11:57] Casperin: Don't know if that's Arch Linux-only, but I doubt it [11:58] spaceinvader: it uses a python based build system, waf [11:59] cryptix: Casperin: use the nodejs package from the AUR, it builds quite well [12:00] Casperin: cryptix: Googling... I'm still very new to Arch [12:02] jacter has joined the channel [12:02] felixge has joined the channel [12:02] felixge has joined the channel [12:03] cryptix: Casperin: https://wiki.archlinux.org/index.php/AUR this should get you started. basically you fetch the tarball for the package ( http://aur.archlinux.org/packages.php?ID=32930 ) unpack it, run makepkg ( install the base-devel pacman group first thou) and install the compiled package with pacman [12:03] hij1nx has joined the channel [12:04] matias has joined the channel [12:04] matias: Hello [12:04] `3rdEden: elo [12:04] Casperin: yeah.. I'm there. God I love that wiki. Thanks for the quick info, but I think I'll read through it to understand exactly what's going on :) [12:04] Mart_ has joined the channel [12:05] rahul_ has joined the channel [12:05] rahul_: Is it possible to install modules without using npm? I mean, manually? [12:06] MrTopf has joined the channel [12:06] cryptix: Casperin: sure. just thought you might want a quick start :) [12:06] Bradleymeck has joined the channel [12:07] Casperin: cryptix: I'm beginning to think I do haha [12:14] jacter has joined the channel [12:14] scoates has joined the channel [12:15] tdegrunt has joined the channel [12:19] dyer has joined the channel [12:19] dyer has joined the channel [12:21] simenbrekken has joined the channel [12:21] rchavik has joined the channel [12:21] rchavik has joined the channel [12:23] bshumate has joined the channel [12:23] bshumate has joined the channel [12:24] christophsturm has joined the channel [12:24] miccolis has joined the channel [12:24] bzinger has joined the channel [12:25] fumanchu182 has joined the channel [12:28] rahul__ has joined the channel [12:29] Yoric has joined the channel [12:31] benmonty has joined the channel [12:31] rauchg has joined the channel [12:32] brianseeders has joined the channel [12:33] rahul_ has joined the channel [12:34] heavysixer has joined the channel [12:34] malkomalko has joined the channel [12:34] sioked has joined the channel [12:35] skm has joined the channel [12:35] lukegalea has joined the channel [12:36] jbpros has joined the channel [12:36] jelveh has joined the channel [12:37] davidcoallier has joined the channel [12:39] ianward has joined the channel [12:40] ryanfitz has joined the channel [12:40] tiagoa has joined the channel [12:42] davidcoa1lier has joined the channel [12:43] jetienne has joined the channel [12:43] arpegius has joined the channel [12:43] Jonasbn_ has joined the channel [12:43] dies_el has joined the channel [12:44] sledge has joined the channel [12:44] sledge has left the channel [12:44] sledge has joined the channel [12:44] sledge: good morning [12:46] lukstr: morning [12:46] sambao21 has joined the channel [12:46] rick_h_: party [12:46] lukstr: no one told me :( [12:47] sledge: party hard! [12:47] sledge: ;D\-< [12:47] lukstr: ACTION queues up some nyan cat [12:48] fille12: is it possible to add a a array in res.render express.js [12:48] fille12: anyone know? [12:49] lukstr: fille12: pass an array to the renderer? [12:49] fille12: nod [12:49] fille12: using jade [12:49] lukstr: I think the examples on the express repo do that [12:49] fille12: like res.render('index.jade',result:mysqlresult}); [12:49] pomodoro has joined the channel [12:50] lukstr: https://github.com/visionmedia/express/blob/master/examples/jade/app.js [12:50] lukstr: line 65: res.partial('users/list', { list: users }); [12:50] fille12: its work for pageTitle [12:50] fille12: thanks! [12:51] lukstr: no problem [12:51] mendel_ has joined the channel [12:52] kmiyashiro has joined the channel [12:52] fille12: i really like express [12:52] fille12: its really gives me controll [12:53] KellyM has joined the channel [12:54] ToXiC has joined the channel [12:55] kawaz_air has joined the channel [12:55] Guest4939: hey guys am havin trouble installin express usin npm n cygwin help! [12:56] Hamms has joined the channel [12:56] jtsnow has joined the channel [12:58] baudehlo1 has joined the channel [12:58] lukstr: General question, is Node + Cygwin the recommended development environment? I was under the impression it was MinGW [12:58] FireFly|n900 has joined the channel [12:58] lukstr: (for Windows, of course, not that I care) [12:58] baudehlo1 has left the channel [12:58] sriley: tbh it would be a linux vm imo [12:59] lukstr: sriley: for the windows builds though [12:59] mscahill has joined the channel [12:59] jelveh has joined the channel [12:59] deedubs: In ruby if I had long running tasks that ran every say 5 minutes I would to a GC run after each execution. Thoughts on this and nodejs? [13:00] sriley: yes, thats why a vm, so use virtualbox install ubuntu or whatever and have that as your dev env [13:00] lukstr: sriley: that's not what I was asking [13:01] sriley: that way its more like your production env, always a good thing [13:01] xsyn has joined the channel [13:01] xandrews has joined the channel [13:01] Ned_ has joined the channel [13:01] lukstr: Let me try again: Cygwin or MinGW, which is more recommended for current versions of Node [13:01] hellp has joined the channel [13:01] mikegerwitz: deedubs: GC is handled for you once an object goes out of scope [13:01] AaronMT has joined the channel [13:01] tiemonster has left the channel [13:02] lukstr: deedubs: if you're concerned about the garbage collection system it's pretty well documented for v8 and you can set up v8 to trace when it GCs [13:03] eee_c has joined the channel [13:03] deedubs: lukstr: Yeah I was looking at https://github.com/billywhizz/node-gc but I don't think it'll be an issue. I've been monitoring it and it's 'doing the right thing' [13:03] lukstr: ( sriley: disclaimer: I use linux for pretty much everything so this doesn't really apply to me so much as people who come in talking about it ) [13:03] sriley: iirc if you launch node with a certain arg it also exposes the gc to your code, so you can manually call collection. though you should have a good reason to need to do so [13:04] kawaz_air has joined the channel [13:04] jonaslund: lukstr: hmm [13:04] lukstr: deedubs: I wouldn't be too concerned until profiling [13:04] sriley: lukstr: id suggest to them too that really, install a linux vm. otherwise theyll face various problems developing their app, and then find when they come to deploy it, it also doesnt work due to different env [13:04] jonaslund: lukstr: cygwin uses /cygdrive/... paths [13:04] jonaslund: lukstr: but has all the cygwin bullshit [13:04] lukstr: sriley: one sec [13:05] jonaslund: mingw has bla\bla\ paths [13:05] jonaslund: so that might confuse code for people [13:05] lukstr: sriley: from the installation wiki: There are two ways of building Node on Windows. One is over the Cygwin emulation layer the other is using MinGW (GNU toolchain for windows). See the Cygwin and MinGW pages. [13:05] stagas_ has joined the channel [13:06] sriley: you can, doesnt mean its a good idea though imo [13:06] lukstr: it USED to be that Cygwin was better supported but I was under the impression MinGW had become better, and so I asked so that I can know, so that I can recommend. I don't really care if it's a good idea or not [13:06] unomi has joined the channel [13:06] Venom_X has joined the channel [13:06] lukstr: jonaslund: mingw has unix-like paths, isn't that good? [13:07] burningdog has joined the channel [13:07] jonaslund: lukstr: err no.. cygwin has / for path separator so it's more unix like [13:07] broofa has joined the channel [13:07] Vertice has joined the channel [13:07] jonaslund: lukstr: mingw has windows backslashes \ for path separators [13:07] lukstr: jonaslund: it doesn't enforce them [13:07] jonaslund: well, if you ask the api you might get a return value with backslashes [13:07] lukstr: you can use mingw and pretend you're in a unix environment and it works just fine [13:08] jonaslund: but you can use forward slashes like usual for relative addressing [13:08] jonaslund: anyhow [13:08] lukstr: if the tools return forward slashes then they have been wrongly implemented [13:09] k1ttty has joined the channel [13:09] jonaslund: I know we were looking at using MSVC for compiling windows builds [13:09] lukstr: in mingw: pwd returns /home/lrewega/ [13:09] willwhite has joined the channel [13:09] lukstr: yikes [13:09] jonaslund: but the main windows man is pisci [13:09] strmpnk has joined the channel [13:09] lukstr: s/wrongly implemented/implemented wrong/ [13:09] jonaslund: hmmm [13:09] fermion has joined the channel [13:10] jonaslund: do you run your mingw build under msys or from something else ? [13:10] lukstr: yes [13:10] lukstr: it's pretty much a given with modern mingw [13:10] matbee: I'm tryign to return JSON via my express.js driven server, however it's returning as well-formatted html... [13:10] matbee: I cant figure out why [13:11] jetienne: everyauth... very good module for authentication [13:11] sirkitree has joined the channel [13:12] lukstr: matbee: how are you sending the JSON? [13:12] matbee: lukstr, as a simple response.send({response: "value"}); [13:12] davidsklar has joined the channel [13:13] matbee: Ive tried setting the response.contentType('application/json') [13:13] lukstr: matbee: and your output is formatted html? [13:13] fonziecc has joined the channel [13:13] matbee: lukstr, yes it is [13:14] matbee: lukstr, I have express.configured to use methodOverride, bodyParse and cookieParser [13:14] philhawksworth has left the channel [13:16] jlecker has joined the channel [13:16] lukstr: sriley: though, I completely agree that I wouldn't bother trying to build/use node outside a unix environment right now [13:16] avalanche123 has joined the channel [13:16] lukstr: but some people are persistant :) [13:16] dcampano has joined the channel [13:17] rputikar has joined the channel [13:17] adelgado has left the channel [13:20] Poetro has joined the channel [13:20] adelgado has joined the channel [13:21] jonasen has joined the channel [13:23] colinclark has joined the channel [13:24] tayy has joined the channel [13:30] Bradleymeck has joined the channel [13:31] justinw312 has joined the channel [13:32] justinw312: Still unable to get socket.io reconnects to work. Are any of you find folks experienced with socket.io? [13:34] jetienne: is there a converter jade template to html ? [13:34] jetienne: or better jade to ejs [13:34] jslatts has joined the channel [13:34] alecbenzer has joined the channel [13:35] adambeynon has joined the channel [13:35] pandeiro has joined the channel [13:36] alecbenzer: does anyone know why express might be refusing to serve static files? [13:37] drudge: alecbenzer: you're doing it wrong :P [13:37] telemachus: alecbenzer: configuration? [13:37] telemachus: that is, have you specified in your config where to serve them from? [13:37] eldios has joined the channel [13:37] alecbenzer: telemachus: yup: app.use(express.static(__dirname + '/pubic')); [13:38] telemachus: ok, I'm not going to insult you by asking if the files are actually in __dirname/public :) [13:39] alecbenzer: lol, as far as I can tell they are, unless some fucked up stuff is going on with my fiel system [13:39] TomY has joined the channel [13:39] telemachus: hmm - are you logging and what do you see when you try to hit / [13:39] pdelgallego has joined the channel [13:39] telemachus: that is, what happens in the console and what in your browser? [13:40] telemachus: are you specifying the right port in the browser? [13:40] alecbenzer: it treats it like a route, ie - " ls public/ --> jquery-1.6.1.min.js lol", and localhost:8080/lol gives me "cannot GET /lol" or something [13:40] cha0s has joined the channel [13:40] cha0s has joined the channel [13:41] drudge: alecbenzer: pastie some code so we can see [13:43] adambeynon has joined the channel [13:44] timmywil has joined the channel [13:44] alecbenzer: relevant stuff: http://pastie.org/1980872 [13:44] yhahn has joined the channel [13:45] eliziario has joined the channel [13:45] telemachus: alecbenzer: Unless there are state secrets in there, more code would be helpful, I think. [13:45] nibblebot has joined the channel [13:47] vikstrous1 has joined the channel [13:47] alecbenzer: http://pastie.org/1980872 though the rest doesn't seem like it should be relevant [13:47] groom has joined the channel [13:48] xandrews has joined the channel [13:48] justinw312: Does anyone know if there is a rough timeline for webworkers in node? [13:48] matias: Node.js doesn't create any thread at all or it doesn't create more than one for the same client? [13:49] febits has joined the channel [13:50] telemachus: app.use(express.static(__dirname + '/pubic')); [13:50] telemachus: alecbenzer: ! [13:51] telemachus: s/pubic/public/ ? [13:51] alecbenzer: alecbenzer: -_____- [13:52] telemachus: (Best typo of the week award goes to alecbenzer...) [13:52] alecbenzer: lol, wow [13:53] adambeynon has joined the channel [13:53] kkaefer: why a blocking sqlite module? [13:53] kkaefer: MooGoo: ^^ [13:53] thomblake has joined the channel [13:54] catshirt has joined the channel [13:54] matias: regarding my first question (some lines above): in the case it doesn't create any thread at all, does it mean that if I create a blocking operation of 10 seconds, any user will have to wait until one user executing this function has finished? [13:55] matias: (not just me but literally everyone using the script) [13:55] matias: s/using the script/requesting the server/ [13:57] burningdog has joined the channel [13:57] TomY has joined the channel [13:57] stepheneb has joined the channel [13:57] dcampano has joined the channel [13:58] sirkitree has joined the channel [13:58] jtsnow has joined the channel [13:59] timmywil has joined the channel [13:59] matias: no idea? [14:01] jacter has joined the channel [14:01] groom has joined the channel [14:03] pig has joined the channel [14:03] cdent has joined the channel [14:04] bingomanatee has joined the channel [14:05] ceej has joined the channel [14:05] razvandme has joined the channel [14:05] jeff_horton has joined the channel [14:05] razvandme: hello, is there a method for base64 encoding? [14:07] spasquali has joined the channel [14:08] pig has joined the channel [14:08] MattJ has joined the channel [14:09] bentruyman has joined the channel [14:09] miccolis: razvandme: you can have buffers do that for you [14:10] aheckmann has joined the channel [14:10] justinw312: matias: I'm not an expert, but that is correct. If you block for 10s then you block everything [14:10] captain_morgan has joined the channel [14:11] justinw312: Soon it'll support webworkers, which will give you a non-blocking way of doing time consuming operations [14:11] miccolis: razvandme: https://gist.github.com/995320 [14:11] justinw312: matias: which is why almost none of the functionality in node is blocking [14:12] Matias: I know but the question is if you block absolutely everything for all users all around the World or just the part of the server handling your requests [14:12] justinw312: matias: Node is single-threaded, you would block everyone connect [14:13] Matias: ok, that's what I wanted to confirm, thanks [14:13] pifantastic has joined the channel [14:13] pig has joined the channel [14:13] justinw312: matias: I believe the only way around that would be to write a module to offload your long running task to [14:14] jacter has joined the channel [14:14] justinw312: matias: There is planned support for webworkers, so you can launch a new thread with that once it is supported, which would call a callback when complete wihtout blocking your node process [14:14] cdent has joined the channel [14:14] pandeiro: is there any way to get jade to load a local variable into an element attribute? [14:14] Matias: it would be great, justinw312 [14:15] sioked has joined the channel [14:15] razvandme: miccolis: thanks! [14:15] justinw312: "The fundamentals of scalable systems are fast networking and non-blocking design—the rest is message passing. In future versions, Node will be able to fork new processes (using the http://www.whatwg.org/specs/web-workers/current-work/) which fits well into the current design." [14:16] justinw312: So not yet, but soon is the answer. I think. [14:16] mehlah has joined the channel [14:16] jvduf has joined the channel [14:17] spasquali: justinw312: mostly agreed, though be careful about assuming that non-blocking design is "fundamental" to scalable systems [14:17] jbpros has joined the channel [14:17] justinw312: Oh, I was just copypasting from the node website. [14:18] baudehlo: justinw312: I think web workers has gone out the window tbh. [14:18] Swimming_bird has joined the channel [14:18] agrohe21 has joined the channel [14:18] justinw312: Hmmm. [14:18] spasquali: justinw312: it will be interesting over the next year to see how people solve the scaling issue. [14:18] pandeiro: i guess i could store the element in a variable and then output it unescaped but that is kind of an ugly workaround... [14:18] baudehlo: in favour of: https://github.com/joyent/node/blob/master/lib/child_process.js#L62 [14:19] justinw312: Well you could always launch another instance of node, sent it serialized function, and have it send back the result. [14:19] justinw312: send [14:19] bingomanatee: Web Workers is Digital Exploitation! [14:19] baudehlo: combine fork() with dnode (http://substack.net/posts/85e1bd/DNode-Asynchronous-Remote-Method-Invocation-for-Node-js-and-the-Browser) and you've got everything you need. [14:19] yogurt_truck has joined the channel [14:19] lukstr: justinw312: this is actually what I would recommend, open a port, spawn a child process, wait for a response, close the port send the response [14:20] adambeynon has joined the channel [14:20] jakehow has joined the channel [14:20] EyePulp has joined the channel [14:21] walkingeyerobot has joined the channel [14:21] justinw312: I'm betting exec()ing a string really ruins the VM performance and adds a lot of overhead. Having to parse and compile the string. [14:22] Matias: I guess you always can use webservice instead of webworkers to do specific tasks with Node.js [14:22] Matias: can always* [14:22] justinw312: So it would probably make more sense to have the functinons already in the worker rather than trying to serialize them [14:22] baudehlo: right. You pass in commands not functions. [14:23] baudehlo: see dnode. [14:23] rahul__ has joined the channel [14:23] justinw312: Buuuut, I still think the fact you could send arbitrary functions is awesome. [14:23] justinw312: Not that doing so makes sense, but sending code around like that is neat [14:23] lukstr: justinw312: that would make sense [14:24] lukstr: actually that just gave me an idea for a project [14:24] jonaslund: ACTION finally figured out why all unix guys are hippies [14:24] sreeix_ has joined the channel [14:24] lukstr: jonaslund: I'm no hippy [14:24] jonaslund: it's a joke :P [14:25] jtsnow has joined the channel [14:25] Hamms has joined the channel [14:25] lukstr: ACTION does drugs, rides his fixie to the farmer's market [14:26] sledge: justinw312: that's not what happens [14:26] broofa has joined the channel [14:26] jonaslund: the answer is "hash bang" [14:26] sledge: justinw312: read closely: "which when called on the remote end signal the near side to execute the function with the arguments that the remote provides" [14:27] lukstr: sledge: I always say octothorpe exclamation point [14:27] justinw312: I get that. I wasn't talking about dnode. I meant javascript in general. I think it's neat to be able to easily serialize code, send it somewhere, and exec it. [14:28] jbpros has joined the channel [14:28] viz has joined the channel [14:28] lukstr: justinw312: that's dirty though [14:29] justinw312: Yeah, I guess really it's one of those things pretty much any interpreted language can (but almost always shouldn't) do [14:30] eee_c has joined the channel [14:31] broofa has joined the channel [14:32] ivanfi has left the channel [14:32] jxck has joined the channel [14:33] trotter has joined the channel [14:33] sonnym has joined the channel [14:35] amocla has joined the channel [14:39] Guest93406 has joined the channel [14:39] Matias: wait a minute! I'm just learning about Node.js (I'm reading http://nodebeginner.org/). I realized if you just have one process you can share variables (in fact anything) between two users just making it global. is it true? [14:39] tbranyen: Matias: it is! [14:39] Matias: absolutely weird (I'm used to the Apache approach) [14:39] tbranyen: amazing or wat [14:39] Matias: haha [14:39] tbranyen: did it blow your mind [14:40] Matias: yes, it does [14:40] tbranyen: good takes a load off [14:40] shimondoodkin has left the channel [14:41] Matias: that's amazing [14:42] kjeldahl has joined the channel [14:42] jbpros has joined the channel [14:43] baudehlo: amazing. but a terrible idea :) [14:43] tbranyen: sharing context variables is a terrible idea [14:43] tbranyen: uh oh shared memory wants a word with you [14:43] Matias: I know but the fact that you can do it is amazing lol [14:44] baudehlo: just remember to never do it. It doesn't scale. [14:44] derencius has joined the channel [14:44] tbranyen: wat how the hell does it not scale [14:44] tbranyen: single value shared in the process is fine, 10mb of data not so fine [14:45] baudehlo: umm I said scale, not perform. [14:45] tbranyen: yeah 100,000 users hitting a single value in the process is going to scale hella better than pulling from some datasource elsewhere requiring i/o [14:46] jtsnow has joined the channel [14:46] Matias: by the way, there's a problem better [14:46] baudehlo: tbranyen: no I mean it doesn't "scale" at all. You're talking about performance. [14:46] Matias: I mean, a problem there* [14:47] Matias: what happens if two users wants to change the value of a variable at the same time? [14:47] Matias: I guess they are not blocked until the other one has finished [14:47] tbranyen: baudehlo: i guess i don't understand how thousands of users hitting a service doesn't deal with scalability [14:47] baudehlo: it doesn't scale to cluster. It doesn't scale to multiple servers. [14:47] tbranyen: we're talking about different things and its :-p [14:47] baudehlo: Matias: there is no "at the same time" in node. [14:47] Matias: no? [14:48] baudehlo: no. [14:48] tbranyen: baudehlo: well there is with workers that were landed [14:48] baudehlo: right but they don't access the same variable. [14:48] sub_pop has joined the channel [14:48] Matias: foo=user_input(); bar=foo; [14:49] tbranyen: yea [14:49] Matias: what if you execute it two times concurrently? [14:49] baudehlo: there is no concurrency [14:49] tbranyen: Matias: there is no concurrency... its keyword "single" threaded [14:49] briznad has joined the channel [14:49] gf3 has joined the channel [14:49] coderendezvous has joined the channel [14:49] BillyBreen has joined the channel [14:50] guybrush: there are only listeners for callbacks, and those callbacks can happen anytime [14:50] Matias: ohm, sure, one of them will be executed first [14:50] edude03 has joined the channel [14:50] Matias: then there's no problem [14:51] Matias: I'm starting to love Node.js :P [14:51] baudehlo: no there's never a problem with that. Nothing can interrupt your code execution in node. [14:53] baudehlo: hmm. it'd be nice if there were a fixed-size-cache module for node. Sort of like memcached but in-process. [14:54] jetienne: (pagespeed provides garbage collection events) [14:54] mike5w3c has joined the channel [14:55] Matias: jetienne, what do you mean? [14:55] mitko has joined the channel [14:55] wilhelm: I, too, am just starting to explore this strange new realm. Is node.js considered suitable for running database-centric web applications one may have previously written in, say, P* and *SQL? [14:56] jetienne: Matias: just sharing an fact i find interesting. (currently i optimizing an webgame and gc impact perf) [14:56] baudehlo: wilhelm: very much so. [14:56] Matias: I will have to read about pagespeed later [14:57] davidcoallier has joined the channel [14:58] dget has joined the channel [14:59] wilhelm: baudehlo: Is there any de facto standard database library for talking to PostgreSQL or MySQL? [14:59] tomshaw has joined the channel [14:59] baudehlo: wilhelm: someone is working on a unified library, but it's early days. [14:59] wilhelm: ACTION nods. [15:00] baudehlo: http://nodejsdb.org/ [15:00] Matias: now I want to read the final part of the tutorial, it's still incomplete :( [15:00] baudehlo: not sure I'd entirely trust it, but try it anyway. [15:00] brettgoulder has joined the channel [15:00] strmpnk has joined the channel [15:00] wilhelm: baudehlo: Will do. Thanks. (c: [15:01] baudehlo: there are other libraries though. [15:01] yhahn has left the channel [15:01] baudehlo: check npm [15:02] donaldpcook has joined the channel [15:02] jvduf has joined the channel [15:02] matbee: check cloud9ide's twitter post [15:03] jonasen has joined the channel [15:03] matbee: roadmap.push("nodester"); RT @stephanepericat: If you'd like to see auto-deploy to @Nodester from @Cloud9IDE , retweet this! #nodejs #cloud9 [15:03] matbee: ;D [15:03] jvduf has joined the channel [15:03] gazumps has joined the channel [15:03] piscisaureus has joined the channel [15:03] eee_c has joined the channel [15:04] e6nian has joined the channel [15:05] Matias: jetienne, you mean this pagespeed http://code.google.com/speed/page-speed/ ? [15:06] materialdesigner has joined the channel [15:06] tester has joined the channel [15:07] RushPL has joined the channel [15:08] eliziario has joined the channel [15:08] devrim has joined the channel [15:11] Matias: ok, I have a good question, how to debug it? [15:11] Matias: (besides to add many write() calls) [15:13] jetienne: Matias: yes [15:13] jetienne: Matias: if your question is for me, i dont understand it [15:14] devrim has joined the channel [15:14] eyesUnclouded has joined the channel [15:14] jakehow has joined the channel [15:15] yhahn has joined the channel [15:15] Matias: they were two independent questions, one was if I was reading about the same pagespeed you mentioned a while ago and the other one is if there's a easy way to debug Node.js code [15:15] rfay has joined the channel [15:16] jetienne: Matias: personnaly i debug with console.log(), not sure if it is easy to you [15:16] ewdafa has joined the channel [15:16] jetienne: there is a node debugger included now i think [15:16] jetienne: http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications [15:16] Matias: oh, thank you [15:18] segaway has joined the channel [15:18] Vertice: i like node-inspector lots [15:18] Vertice: and lots and lots [15:19] mscdex: that's lots of lots [15:19] jaw6 has joined the channel [15:20] jacobfogg has left the channel [15:20] adrianmg has joined the channel [15:20] lakin has joined the channel [15:21] koo6 has joined the channel [15:21] dingomanatee has joined the channel [15:22] jslatts has joined the channel [15:23] devrim1 has joined the channel [15:24] tjholowaychuk has joined the channel [15:24] jgv has joined the channel [15:24] Sorella|work has joined the channel [15:26] razvandme: #express.js [15:26] index0h_ has joined the channel [15:27] blueadept has joined the channel [15:28] dgathright has joined the channel [15:29] Hamms has joined the channel [15:29] tjh has joined the channel [15:30] springmeyer has joined the channel [15:30] jvduf has joined the channel [15:31] omni5cience_ has joined the channel [15:32] stepheneb has joined the channel [15:32] xsyn has joined the channel [15:32] alecbenzer has joined the channel [15:34] alecbenzer: I'm using redis to store some data - I have a set that keeps track of ids of objects that I want, and each id corresponds to another redis hash. how would I get all of the data in an array that looks like [{obj1data=>value,moreobj1data=>value],{...},...] [15:34] web123 has joined the channel [15:34] alecbenzer: how would I do this? [15:34] alecbenzer: ie [15:34] alecbenzer: I can't actually get the value of a redis command, I need to pass functions to deal with the data [15:35] alecbenzer: would I need to make an array, populate it through the redis commands, and then do a while(array is not done) { do_nothing } type loop? [15:35] Spion_ has joined the channel [15:35] itissid has joined the channel [15:35] springify has joined the channel [15:35] tim_smart has joined the channel [15:36] Casperin has joined the channel [15:37] thalll has joined the channel [15:38] nightshift has joined the channel [15:38] sirkitre_ has joined the channel [15:39] fostah has joined the channel [15:40] brolin has joined the channel [15:41] jkridner_ has joined the channel [15:43] AaronMT has joined the channel [15:44] piscisaureus_ has joined the channel [15:44] jslatts: Anyone have any idea where to begin with this: FATAL ERROR: v8::Number::New() V8 is no longer usable [15:45] Tidwell_ has joined the channel [15:45] jslatts: trying to debug an addon i am writing. looks like V8 is dying, but I have no idea why [15:46] zmbmartin: if I have a string 'This is a string "Here is something" and some more' how do I remove everything except what is between " " so I can return just "Here is something"? [15:46] mAritz: how would i best find out how much cpu/memory is free? (inside a node.js script) [15:46] captain_morgan has joined the channel [15:46] sirdancealot has joined the channel [15:46] jslatts: zmbmartin: use a regex [15:46] tobiassjosten has joined the channel [15:46] jackhq has joined the channel [15:47] jslatts: ".*" maybe [15:48] zmbmartin: jslatts: yeah I need a lot of work on my regexpfu. [15:48] colinclark has joined the channel [15:48] jslatts: let me see [15:48] mAritz: zmbmartin: 'This is a string "Here is something" and some more'.replace(/[^"]*"([^"]*?)"[^"]*/g, "$1") [15:48] mAritz: jslatts: FIRST! :D [15:48] jslatts: hah, nm :) [15:49] dylang has joined the channel [15:49] jslatts: v8: 'This is a string "Here is something" and some more'.replace(/[^"]*"([^"]*?)"[^"]*/g, "$1") [15:49] v8bot: jslatts: "Here is something" [15:49] cdent has left the channel [15:49] jslatts: works! [15:49] mike5w3c has joined the channel [15:49] zmbmartin: mAritz: thanks [15:49] trumpetmic has joined the channel [15:50] jtrally has joined the channel [15:50] wookiehangover has joined the channel [15:50] mAritz: v8: 'This is a string "Here is something" and some more"this is not caught though"'.replace(/[^"]*"([^"]*?)"[^"]*/g, "$1") [15:50] v8bot: mAritz: "Here is somethingthis is not caught though" [15:50] mAritz: oh, it is [15:50] isaacs has joined the channel [15:51] mAritz: ah, *... right, nvm [15:51] nsolsen has joined the channel [15:51] kuhrt has joined the channel [15:52] Yuffster_work has joined the channel [15:52] norviller has joined the channel [15:52] bingomanatee: if you are using express and just want to push raw data as a response instead of using the views engine, how do you do that? [15:53] mAritz: bingomanatee: res.send('your data'); [15:53] bingomanatee: thx. [15:53] mAritz: np [15:53] tjh: bingomanatee you can do anything you would with regular node as well [15:53] tjh: req.pipe(res) etc [15:53] tjh: res.write() blah blah [15:53] bingomanatee: yes but I have lived my whole live in your gated garden [15:53] bingomanatee: :D [15:54] tjh: haha [15:54] [[zzz]] has joined the channel [15:54] tjh: just sayin [15:54] bingomanatee: thx [15:54] tjh: it doesn't get in the way of raw node stuff [15:54] mAritz: break the fuck out of there, then after seeing that the rest of the world isn't magic either, come back :D [15:54] bingomanatee: ACTION likes coating his node with a little ky [15:54] jslatts: zmbmartin: instead of negative regex capture, you might do this instead: /".*"/.exec('This is a string "Here is something" and some more')[0]; [15:54] kriskowal has joined the channel [15:55] nibblebot: Why doesn't the example here work in node.js? https://developer.mozilla.org/en/New_in_JavaScript_1.7#Multiple-value_returns --- does v8 not implement this? [15:55] tjh: why the fuck does jquery set content-type for $.get() with no body [15:55] mAritz: tjh: i thought it was just backbone [15:56] tjh: apparently jquery does too [15:56] mAritz: i used the master version of Backbone.Sync and it works fine :) [15:56] mAritz: oh man :( [15:56] tjh: https://github.com/senchalabs/connect/issues/285#comment_1247201 [15:56] KirinDave has joined the channel [15:56] mAritz: haha, he reported that about the same time i had the backbone issue. nice conkidink :) [15:57] jslatts has joined the channel [15:57] mAritz: when dealing with clients: assume stupid [15:57] mAritz: in this case jQuery is just another stupid [15:57] mAritz: errr, client [15:57] tjh: apparently [15:57] mAritz: :P [15:57] tjh: no content-length, no body, just content-type [15:57] tjh: right on [15:57] tjh: lol [15:58] mAritz: well, content-length: 0 would be weird as well :D [15:58] mAritz: but it's probably the right way?! [15:58] TooTallNate has joined the channel [15:59] mAritz: tjh: do you know how to properly get cpu/memory free stats in node.js? [15:59] tjh: os mod [15:59] donaldpcook has joined the channel [15:59] mAritz: ? :D [16:00] cryptix: nice… auth/login works on locale machine but behaves weirdly on remote machine with same node and module versions.. [16:01] eyesUnclouded has joined the channel [16:01] tayy has joined the channel [16:01] cryptix: weirdly meaning, getting a new session after the res.redirect in req.session.regenerate cb.. [16:02] merlinm has joined the channel [16:02] sirkitree has joined the channel [16:03] Bradleymeck: cyptix is it on a cluser computing system of some kind? [16:03] cryptix: nope… a pretty normal dedicated root server [16:03] captain_morgan has joined the channel [16:04] tjholowaychuk has joined the channel [16:04] _aron has joined the channel [16:05] jtrally: is there a way to get a static provider AND an app.get() require to work. seems like the static never gets called [16:06] caolanm has joined the channel [16:06] stepheneb has joined the channel [16:06] jtrally: in express or connect [16:06] tjholowaychuk: jtrally can i see your middleware config [16:06] jtrally: app.get('/controllers/*',function(req,res,next) { [16:06] jtrally: controller(req,res); [16:06] jtrally: next(req,res); [16:06] mAritz: tjholowaychuk: ah, you meant the os module that is built-in... god, i'm supid. never knew about it and was looking at the wiki page for 3rd party modules xD [16:07] jtrally: the next() was just a shot in the dark [16:07] c4milo has joined the channel [16:07] tjholowaychuk: jtrally next() doesn't accept req/res [16:07] tjholowaychuk: just call next() [16:07] tjholowaychuk: with nothing [16:07] tjholowaychuk: mAritz yeah the built-in :D [16:07] Matias: I'm sure I'm missing something, my node-inspector seems like this: http://imageshack.us/photo/my-images/823/51629313.png/ o.o [16:07] cryptix: Bradleymeck: im using connect-redis as a session store if that sparks any ideas. redis versions are also in sync [16:08] davidcoallier has joined the channel [16:10] context: bit.ly/ksIo4p <-- might get that today [16:10] pandeiro: tjholowaychuk: is there any mechanism in jade for inserting a local into an element attribute or do i need to just build the element as a string and then insert it unescaped? [16:11] tjholowaychuk: pandeiro you mean a(href=post.url) ? [16:11] pandeiro: yeah, will that work with an input element's value attr? [16:12] tbranyen: tjholowaychuk: started thinking about my templating wishlist https://gist.github.com/994418 [16:12] tbranyen: also started writing a lexical parser for templates inspired by your yaml parser [16:12] spasquali: which version of ECMA does current build of v8 (used by node) use? [16:13] piscisaureus_ has joined the channel [16:13] tjholowaychuk: tbranyen whoop [16:13] tjholowaychuk: looks like liquid [16:13] tjholowaychuk: kinda [16:13] binarypie has joined the channel [16:13] Bradleymeck: spasquali ecma 5 but its not absolutely 100% [16:13] christophsturm has joined the channel [16:13] jslatts: does NODE_SET_PROTOTYPE_METHOD() require a static callback method? [16:13] igl: i dont think its locked down [16:14] igl: it has *some* ecma 5 features i think [16:14] tbranyen: tjholowaychuk: yeah again its still in heavy thought-mode [16:14] Corren has joined the channel [16:14] tbranyen: everything subject to change, but i want a very lightweight parser that i can port to lua [16:14] tbranyen: for the fun of it [16:14] tbranyen: not sure if i'm qualified to try writing it in c/c++ [16:15] jtrally: Are you guys planning on adding controller support so dynamic paths get added? I added a feature so /controllers/mycontroller/action would call controllers/mycontroller.js [16:15] tjholowaychuk: parsers are easier in c [16:15] tjholowaychuk: IMO [16:15] tjholowaychuk: js strings [16:15] tjholowaychuk: are not very good for parsing [16:16] spasquali: tx. [16:16] Bradleymeck: jtrally why not just use route parameters?? thats how most systems w. that feature do it [16:16] Matias: jetienne, in case you are still there, how do you launch node-inspector? I did "node inspector.js &" (it's what I read in the readme file) when I go to http://127.0.0.1:8080/debug?port=5858 I just see http://imageshack.us/photo/my-images/823/51629313.png/ [16:16] jtrally: because convention >>> configuration  [16:16] spasquali: https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implemented-in-V8 [16:16] Matias: I'm sorry, I mean Vertice [16:16] KirinDave: http://twitter.com/ubelly/status/73691405914091520 [16:16] KirinDave: Congratulations, node.js programmers. [16:17] nilcolor has joined the channel [16:17] Vertice: umm. i dont see anything [16:17] Bradleymeck: jtrally i find configuration to be far nicer than convention, then again i tend to disagree with things that hide other things or limit things [16:17] Vertice: you are using chrome, right ? [16:17] Matias: no, FF [16:17] Vertice: Matias: [16:17] Vertice: it only works in chrome [16:17] Vertice: or safari [16:17] Matias: oh, why? [16:17] Matias: I didn't know [16:17] stepheneb has joined the channel [16:18] Vertice: it allows you to use the webkit debug tools to debug the backend too [16:18] Vertice: so the ui is the same as the one you use to debug client code [16:18] Matias: I used to work with Firebug I thought it was possible to use it from FF [16:18] Matias: thank you, I will try there [16:19] tester has left the channel [16:19] jonasen has joined the channel [16:19] tomaw has joined the channel [16:20] Matias: I am used to* [16:20] context: "Will the language still be around next winter for us to make puns about "bad code in the node"?" [16:20] lukstr: KirinDave: does that mean I get a promotion? [16:20] context: wtf ! [16:21] strmpnk has joined the channel [16:21] KirinDave: lukstr: It means Crockford has handjobs for all. [16:21] context: this is as bad as the article marak commented on and im like 1 paragraph into it [16:21] jtrally: Bradleymeck: it's not about hiding. Rails has the same philosophy [16:21] KirinDave: ConWhich article? [16:21] jtrally: why be explicit when everyone knows a given rule [16:21] lukstr: KirinDave: I _love_ handjobs [16:22] KirinDave: lukstr: I can't believe you like handjobs too. We're like twins. [16:22] Bradleymeck: jtrally because the rule may need an exception [16:22] rauchg has joined the channel [16:22] jtrally: That's what the routing function is for :) [16:22] context: "a Java server uses 2MB of RAM just to create a thread. As the standard Java Servlet container creates one thread for each request, it's clear that a fairly hefty server with, say, 8GB of free RAM can handle only 8,000 people." [16:22] lukstr: KirinDave: don't tell me -- you also like copious amounts of money? [16:23] context: HAHAHAHAHA ! [16:23] KirinDave: lukstr: I don't know what copious means, but I like money [16:23] lukstr: context: .... contex? [16:23] lukstr: t [16:23] KirinDave: lukstr: A latte would be really good right now, with extra foam. [16:23] context: http://www.infoworld.com/d/application-development/javascript-conquers-the-server-969?page=0,1&utm_source=javascriptweekly&utm_medium=email [16:23] KirinDave: context: Wow, that's absurd. [16:23] context: lukstr: will node be around by christmas time? who knows... [16:23] context: lukstr: this is as bad as that one article [16:23] context: where is marak when you need him [16:24] EyePulp: I'm hedging my bets with a JScript server-side solution [16:24] Bradleymeck: hes off meeting clients [16:24] samsonjs has joined the channel [16:24] lukstr: context: yeah this is pretty bad [16:24] eee_c has joined the channel [16:25] context: i didnt even read page 1 [16:25] jaw6 has joined the channel [16:26] merlinm: memory consumpion for classic java servers is a huge problem [16:26] khug has joined the channel [16:26] KirinDave: context: Do node people, in the large, really believe that node's concurrency implementation is really unique? [16:26] JamieD has joined the channel [16:26] context: kirindave: uhh. unique? no im sure its not. this article is.... [16:26] razvandme has left the channel [16:27] merlinm: KirinDave: no. at least not if you have been programming. the win32 api is full of asynchronous features [16:27] merlinm: for example [16:27] JamieD: hi all, I'm just updating to teh latest version of node and wanted to check the recommended installation method at the moment. Is it better to install in my user folder or globally using sudo? [16:27] Bradleymeck: unique, no, but i think we enjoy that there arent 90% of all libraries forcing us to blog, or randomly calling abort and saying thats ok since we should only call this from threads [16:27] context: kirindave: read page two of that article. [16:27] KirinDave: context: I dunno if I want to :( [16:27] KirinDave: The idea node is particularly light is also kinda weird. [16:27] KirinDave: For example, Erlang is lighter. [16:28] Bradleymeck: s/blog/block/ haha [16:28] tjholowaychuk: erlang is lighter? [16:28] tjholowaychuk: beam is huge [16:28] lukstr: "I think Node.js will quickly grow beyond doing simple experiments and begin to handle semiserious but lightweight tasks such as online polls and simple message passing between users. If the server workload is simple and short-lived, Node.js is a good solution." [16:28] context: tjholowaychuk: yeah no shit [16:28] merlinm: node *id* pretty light [16:28] merlinm: er, *is* [16:28] KirinDave: merlinm: I've worked professionally with languages that are lighter. [16:29] merlinm: not doubting that [16:29] KirinDave: It's not heavyweight [16:29] KirinDave: But it's more medium-spectrum [16:29] merlinm: like C for example :-) [16:29] tjholowaychuk: lua == light [16:29] KirinDave: Lua, Haskell, Erlang come to mind immediately. [16:29] isaacs: Casperin: did you get your cradle npm issue worked out? [16:30] KirinDave: merlinm: I dunno if C is a fair comparison. [16:30] merlinm: its not [16:30] lukstr: "I'm increasingly convinced this asynchronous callback style of programming is too difficult for most developers to manage," Robinson said. "Without extreme discipline it can easily lead to 'callback hell,' with deeply nested callbacks and complex code to implement logic that would be simple on a synchronous platform." [16:30] isaacs: Casperin: you could do `npm install cradle -f` to force clobber anything that's in the way. [16:30] KirinDave: yeah I avoided. [16:30] amerine has joined the channel [16:30] KirinDave: lukstr: At least that's solid. [16:30] lukstr: "In place of callbacks, he sees ideas like "promises," "co-routines," "actors," and other objects that hang on to the information in the variables for use later. These objects may be easier to juggle than the callbacks." [16:30] jvduf has joined the channel [16:30] isaacs: lukstr: where's that from? [16:30] lukstr: so more jobs for me yay [16:30] lukstr: the link context linked to [16:30] context: HAHAHAHHAHA ! [16:31] context: dont use node for long running shit [16:31] KirinDave: lukstr: That statement is also true. [16:31] KirinDave: context: Like servers :) [16:31] context: cause i run for (i in 1..90000000) in every fucking request [16:31] merlinm: what node has going for it is couple nice things: v8 engine is super fast, familiarity with .js generally [16:31] KirinDave: Man this article is schizophrenic. [16:31] Bradleymeck: lighter in which aspect, in terms of memory, almost guaranteed. in terms of io, sometimes, concurrency, depends. [16:31] lukstr: I lol'd: "Some people are treating the Node.js creator, Ryan Dahl, like a rock star. One Q&A interview on the product veered into discussions of whether Dahl really thought "Bridget Jones's Diary" was the best film ever." [16:31] KirinDave: Bradleymeck: I'd be happy to pit erlang vs. anything concurrency wise. :) [16:31] context: this article is deja vu [16:32] kjeldahl has joined the channel [16:32] johnm1234 has joined the channel [16:32] merlinm: KirinDave: haskell [16:32] Bradleymeck: there is no lingua franca, no convention that is the absolute best, no program that is unchallenged [16:32] Casperin: isaacs: I reverted to an older snapshot of this virtual thing.. but it was quite old, so I had to install a lot of stuff (like browsers and irssi), so after that, I felt like cleaning my room, which I've been doing until now :) [16:32] Bradleymeck: kirindave, haskell will destroy erlang [16:32] KirinDave: merlinm: Trickier, but still a very good concurrency implementation. [16:32] context: marak your blog is broke [16:32] KirinDave: Bradleymeck: Uhhh.... that's a good question. [16:32] isaacs: great :) [16:32] KirinDave: Bradleymeck: I suspect in ultrawide, Erlang would win just by GC attrition. [16:32] context: http://webcache.googleusercontent.com/search?q=cache:-U7QZ7h6sMYJ:blog.nodejitsu.com/ibm-doesnt-care-about-nodejs-people+http://blog.nodejitsu.com/ibm-doesnt-care-about-nodejs-people&cd=1&hl=en&ct=clnk&gl=us&source=www.google.com [16:32] lukstr: I feel like this guy is living months in the past [16:33] merlinm: i have trouble grokking haskell actually. i can shake the feeling it looks like someone took regular code and dropped it [16:33] rbranson: haskell is faster, but concurrency goes to erlang [16:33] Casperin: isaacs: I'll give -f a go next time though.. [16:33] KirinDave: merlinm: Well most people never get educated in the fundamentals Haskell is based on [16:33] matjas has joined the channel [16:33] context: lukstr: months ? [16:33] KirinDave: merlinm: You have to literally build a second tower of learning in your head based off an entirely different set of primitives seldom used outside of functional programming [16:34] KirinDave: merlinm: They're very powerful primitives, but that's surely a downside. [16:34] rbranson: mlmlmlmlmlml [16:34] matjas_ has joined the channel [16:34] merlinm: I do a lot of quasi-functional type progamming in postgres [16:34] KirinDave: rbranson: I'd say ML is even a step removed from haskell. [16:34] Bradleymeck: either way we are at argument = {x: x > y && x < z, z !comparableTo y} [16:34] rbranson: KirinDave: I always see Haskell as an ML [16:34] KirinDave: The aggressively lazy (lol) evaluation policy alone makes haskell code very different. [16:35] KirinDave: Like [16:35] xsyn has joined the channel [16:35] rbranson: i haven't written enough ML or Haskell to be considered an expert by any means [16:35] KirinDave: You can routinely see results a function used in calculating its results. [16:35] KirinDave: Which is... pretty gnarly. [16:35] rbranson: yeah I think what initially attracted me to Haskell was the lazy stuff [16:36] lukstr: ah he's a java programmer. [16:36] pandeiro: is the lambda epiphany addictive? [16:36] KirinDave: I've been reading code with a lot of let (x, _, _) = computeSomething x y [16:36] perezd has joined the channel [16:36] KirinDave: And those x's are the same x. [16:36] xSmurf has joined the channel [16:37] rbranson: distant, rusty memories of things derivatives start to get all awakened by that stuff [16:37] febits has joined the channel [16:37] Hamms has joined the channel [16:37] pkarl has joined the channel [16:37] merlinm: i wish had more options for static typing, even if it was optional [16:38] merlinm: javascript tht is [16:38] rbranson: heh [16:38] rbranson: those would be type hints, not static typing [16:38] merlinm: fair enough [16:38] Sorella|work: merlinm: eugh, static typing in JS sounds... [16:39] rbranson: and JavaScript really doesn't have any form of strong types [16:39] Sorella|work: static typing are already painful enough, no one wants them [16:39] Sorella|work: strong with type inference is okay though [16:39] Sorella|work: strong static* [16:39] rbranson: no one wants them eh? [16:39] Sorella|work: no sane person? [16:40] rbranson: must be a lot of insane developers in the world [16:40] Sorella|work: well, as long as you're not that worried about performance anyways [16:40] jacobolus has joined the channel [16:40] Vertice: i dunno. life is either too long or too short for strong typing [16:40] merlinm: heh [16:40] merlinm: sure, why have the compiler catch bugs, when you can debug them in production? [16:40] Vertice: sigh. what i mean is. life is too short for it, and life is too short to live without it [16:40] lukstr: merlinm: this is what testing is for [16:41] rbranson: different tools for different jobs, static typing makes scaling, navigating, and managing a large code-base easier [16:41] merlinm: ok, productoin->run tmie [16:41] merlinm: ya, typing [16:41] lukstr: it turns out that strong typing actually doesn't actually buy you that much, at least stuff that other tools can't provide (i.e. testing, contracts ) [16:41] merlinm: tongue in cheek anyways [16:41] rbranson: typing IS a contract [16:41] tim_smart: ryah: dog <3 [16:42] joshthecoder: you still have to test compiled code [16:42] lukstr: rbranson: but small scope [16:42] lukstr: it doesn't mean your code functions right :) [16:42] rbranson: I love how the mainstream perception of type systems is entirely dictated by Java and C++ [16:42] rbranson: type systems aren't replacements for tests [16:42] rbranson: they augment them [16:42] lukstr: rbranson: that would make sense as they are mainstream typed languages [16:42] rbranson: except they are shit languages [16:43] merlinm: my experience in with C, that has gone from kinda sorta weakly typed language to kinda sorta strongly typed language (via compiler tech) is that it has been for the better [16:43] lukstr: well, I like C [16:43] rbranson: C is weakly typed [16:43] joshthecoder: huh? [16:43] rbranson: I've never been like "damn the C type system is really getting me down" [16:43] merlinm: rbranson: depends -- with warings and -Wall not so much [16:43] adrianmg has joined the channel [16:43] merlinm: *warnings [16:43] rbranson: more like shit I just spend 3 hours valgrinding this code for a mem leak [16:44] merlinm: yup [16:44] Bradleymeck: if you have static typing, i dont want type coersion (strings with toString). sensible type system can go either way , just dont be hypocritical, predicatability is best (that does not mean knowing the type though) [16:44] lukstr: I'm not saying strong typing is bad, I just don't miss it in this instance :) [16:44] tjholowaychuk: c > c++ [16:45] lukstr: tjholowaychuk: though I do like templates :P [16:45] Bradleymeck: tjholowaychuk, you dont like templated generics in macros with RIIA [16:45] Bradleymeck: ? [16:45] rbranson: C++ is a seductive temptress on the path to destruction [16:45] lukstr: rbranson: but that's what makes it so fun [16:45] merlinm: lukstr: agree 100% -- c++ is bloated mess, but stl is cool [16:45] joshthecoder: C++ = C with templates [16:45] tjholowaychuk: cpp macros could be a lot nicer but i dont really like anything else about c++ [16:45] lukstr: merlinm: stepanov would like you [16:46] tim_smart: V8 is pretty nice C++ [16:46] rbranson: V8 is probably the best C++ code I have ever seen [16:46] rbranson: unless you are that good, just use C or Java [16:46] scm_ has joined the channel [16:46] lukstr: rbranson: you mean, unless you are that good just don't talk to me? :P [16:47] tjholowaychuk: c is brutal too if you just suck at writing clean code [16:47] wookiehang0ver has joined the channel [16:47] merlinm: the other thing i miss with c++ is raii [16:47] rbranson: lukstr: I am not that good :D [16:47] jetienne: C is less scalable due to its lack of object stuf [16:47] jtillmann has joined the channel [16:47] lukstr: tjholowaychuk: but it gives you plenty of room to breath and set things up a way you like, I like that about it [16:47] joshthecoder: jetienne not sure I entirely agree [16:47] merlinm: C's biggest failing (to me) is horribale concurrency models [16:47] rbranson: tjholowaychuk: that's a lot easier than the kind of mental model required to deal with with multiply inheriting templated classes [16:47] joshthecoder: harder to scale maybe [16:47] jetienne: you end up with sillyLongNAme [16:48] tjholowaychuk: rbranson yeah [16:48] lukstr: rbranson: you don't like the curiously recurring template? [16:48] tjholowaychuk: i dont appreciate magic [16:48] jetienne: tjholowaychuk: c++ is like js, may be abused, but not that bad when you know the good parts [16:48] rbranson: hahaha [16:48] rbranson: JS is abused by morons, C++ is abused by smart people [16:48] tjholowaychuk: overloading for statically typed stuff is kinda nice but not for operators [16:48] lukstr: I've always said C++ gives you a lot of firepower to shoot yourself in the foot with [16:49] jetienne: i wrote 350 000 lines of c++ in a single project, but i wont do it again :) [16:49] merlinm: the big issue with c++ is the oo inspiration for the language was highly flawed IMO (also but java and C# in that bucket) [16:50] jetienne: i wrote 350 000 lines of c+https://github.com/jeromeetienne/neoip/tree/master/src <- for the p2p monster of mine :) [16:50] jslatts: hey all you c++ wizards: how can i pass a function pointer to a member of an instance of a class? [16:50] jbpros has joined the channel [16:50] Bradleymeck: typedef it [16:50] jetienne: silly cutpaste [16:50] lukstr: jslatts: I have a few classes which do that with templates [16:50] jslatts: i am trying to do &(myClassInstance->*.someMember) [16:50] jetienne: Bradleymeck: +1 [16:51] jetienne: ->*. ? [16:51] jslatts: but i get: cannot be used as a member pointer, since it is of type ‘’ [16:51] rbranson: !)_$!( [16:51] jslatts: err, no. [16:51] lukstr: jslatts: you need the instance and the class method [16:51] jbpros has joined the channel [16:51] lukstr: in a functor [16:51] rbranson: jesus that is some fucked syntax [16:51] context: does anyone have the google cache /url for that ibm article [16:51] rbranson: is there even a way to call a function like that in C++? [16:51] jetienne: jslatts: *.someMember is unreal [16:51] lukstr: rbranson: ? [16:51] jslatts: lukstr: the . is not right [16:51] rbranson: a function pointer bound to an instance? [16:52] lukstr: rbranson: yes [16:52] merlinm: unless its static [16:52] jslatts: yes, i have an external library that takes a func ptr for a callback [16:52] rbranson: don't you need a trampoline to setup the calling convention properly? [16:52] lukstr: yes-ish [16:52] jslatts: and I want to pass it an instance member so I can access the object state when it calls back [16:52] rbranson: just make it static then [16:52] lukstr: you need a framework to set it up and make it pretty [16:53] rbranson: yeah you'd have to generate per-instance stub code to call it [16:53] jslatts: rbranson: then i don't get the state around the object when it assigned it [16:53] rbranson: sux [16:53] lukstr: it's nice to say x = callThisLater(someObject, SomeType::someFunction, someParameters); [16:53] jslatts: unless i am missing something [16:53] merlinm: i am very skeptical about this kind of language acrobatisc [16:53] jslatts: lukstr: by framework you mean some additional library that handles that for me? [16:54] rbranson: the external library should give you a way to pass a "cookie" pointer that it'll pass back to your callback function [16:54] lukstr: jslatts: yes [16:54] rbranson: otherwise it is a piece of shit library [16:54] jslatts: lukstr: like a pseudo-closure type of deal? [16:54] lukstr: haha yeah I guess? very pseudo [16:54] jslatts: rbranson: yes. i think you are dead on [16:54] Bradleymeck: context : http://webcache.googleusercontent.com/search?q=cache:4rp2x5ldS2oJ:www.infoworld.com/d/application-development/javascript-conquers-the-server-969+%22javascript+conquers+the+server%22&cd=2&hl=en&ct=clnk&gl=us&source=www.google.com ? [16:54] lukstr: rbranson: that's pretty much how I do it [16:54] rbranson: so in that case you can just use a static function [16:54] rbranson: that's how node-ffi does it [16:54] KirinDave: Okay we need to stop linking this shit. [16:54] lukstr: you could but it's nice if you can use _any_ class [16:55] jslatts: but I don't see why I can't pass a function pointer from my class instance? [16:55] Bradleymeck: kirindave, someone asked this time [16:55] KirinDave: Every time you link that article god rips the ears off a puppy. [16:55] eyesUnclouded has joined the channel [16:55] rbranson: it's a static function within a class, sure [16:55] lukstr: jslatts: think about it from the compiler's perspective [16:55] mjr_ has joined the channel [16:55] lukstr: it would have to internally generate functors [16:55] rbranson: KirinDave: u mad bro? InfoWorld journalists are pro [16:55] lukstr: stuff like that is what the STL was designed for [16:56] KirinDave: rbranson: I am mad we're even having this discussion. :( [16:56] rbranson: :( [16:56] KirinDave: rbranson: Like, for real. [16:56] KirinDave: rbranson: You feel me, dizzawg?" [16:56] ExsysTech has joined the channel [16:56] rbranson: i can dig it [16:56] lukstr: jslatts: you get the difficulty? [16:57] jslatts: lukstr: yes.. but i swear I have read you can do it [16:57] lukstr: jslatts: you can do it [16:57] rbranson: don't, srsly [16:57] jslatts: http://www.newty.de/fpt/fpt.html [16:57] [[zz]] has joined the channel [16:57] lukstr: jslatts: it's just not provided as a language feature. [16:58] pixel13 has joined the channel [16:59] catshirt has joined the channel [16:59] Lorentz has joined the channel [16:59] rbranson: "If the call takes place within another member function you may use the this-pointer." [17:00] lukstr: rbranson: haha this is insane [17:00] rbranson: if it actually lets you do it, "this" will probably be some garbage [17:00] jslatts: am I missing something? [17:00] rbranson: if you call it from outside the member [17:00] jslatts: is that dude crazy? [17:00] rbranson: no it all makes sense [17:00] rbranson: you just have to read all of it [17:00] ryah_ has joined the channel [17:00] rbranson: and internalize [17:01] pixel13: hello all…anyone here had experience using node.js to serve _static_ files, but able to limit request to specific file types? (e.g. don't serve up .php files, etc) NOTE: this is using node-static... [17:01] rbranson: oh god, let's talk more about function pointers [17:01] lukstr: lets [17:01] ryah: 0/window [17:01] tjholowaychuk: pixel13 dont put .php files in that dir? [17:01] tjholowaychuk: :p [17:01] coreb has joined the channel [17:02] pixel13: ;) good call …but it's got to be possible, right? [17:02] lluad has joined the channel [17:02] tjholowaychuk: with node-static? I have no clue [17:02] pixel13: substr on the file extension, and no call to serve() [17:02] rbranson: where's the node-static expert? [17:03] tjholowaychuk: with connect you could add your own middleware to ignore those [17:03] tjholowaychuk: and use connect.static() [17:03] tjholowaychuk: easily [17:03] chrislorenz has joined the channel [17:03] pixel13: cool, i'll def. check it out [17:03] rbranson: kewl [17:04] jarek has joined the channel [17:06] hdon has joined the channel [17:07] lukstr: forwarding a general question, is npm the right place to publish an API to a specific service, for example Facebook? [17:07] sirkitre_ has joined the channel [17:07] lukstr: e.g. I wrap a bunch of Facebook API into a node module, then put it on npm? [17:07] harth has joined the channel [17:08] tbranyen: lukstr: sure [17:08] rbranson: i don't think npm cares what it is [17:08] rbranson: it's just a module [17:08] Matias: is it possible to require a js file without any module? I want to define anything related with configuration in other file but then I don't know how to include it [17:08] Matias: I read require() is just for modules [17:09] rbranson: Matias: eval [17:09] Matias: is it the way to do it or just the simplest solution? [17:10] MrSmurf has joined the channel [17:11] Matias: maybe I can use "export" to export something else than a module [17:11] quijote has joined the channel [17:11] ceej has joined the channel [17:11] xeodox has joined the channel [17:12] darshanshankar has joined the channel [17:12] herbySk has joined the channel [17:13] Matias: or just var config = require('./config.js').getConfig(); :P [17:14] cpolis has joined the channel [17:14] igl: Oo [17:14] igl: module.exports can be anything [17:14] igl: so [17:14] reid has joined the channel [17:14] igl: it can be a function too [17:15] Matias: can it be a simple object? [17:15] igl: module.exports = function () { } works [17:15] Matias: I think I tried exports = {whatever: 1} and it doesn't [17:15] igl: require("foo")(bar); [17:16] Matias: I mean, exports.config = {...} [17:17] segaway has joined the channel [17:17] igl: use module.exports [17:18] igl: thats the actual object returned from require() [17:18] jlecker_ has joined the channel [17:19] Matias: that's right, they don't work the same way! [17:19] Matias: it's working now [17:20] igl: :) [17:20] Matias: thanks [17:20] jtrudeau has joined the channel [17:20] abraham has joined the channel [17:20] tbranyen: yeah if javascript had variables that could be passed by reference [17:20] tbranyen: wouldn't have that issue [17:20] tbranyen: dumb js [17:21] pixel13: nice, just wrote a quick function that looks like it will cover preventing .php / .ini loading within the public directory… it's a bit too strict, but will do for now: [17:21] pixel13: function preventURL( url ){ return ( url.match( /\.(ini|php)/ ) !== null ) } [17:21] tbranyen: pixel13: make sure null bytes don't f with that [17:21] tbranyen: i can't remember how js handles them [17:21] pixel13: tbranyen: hmmm... [17:21] pixel13: how can I test/confirm? [17:21] tbranyen: well i guess its your own stuff [17:21] tbranyen: probably fine [17:22] tbranyen: pixel13: create a file with a null byte in the filename separating the extension [17:22] isaacs has joined the channel [17:22] Jonasbn_ has joined the channel [17:22] tbranyen: .gif.php [17:22] dguttman has joined the channel [17:22] pixel13: ok, will do… not like "%00" in the URI? [17:22] tbranyen: unless someone hacks your system [17:22] tbranyen: pixel13: yeah like that [17:22] tbranyen: its a common hack in php, i got owned by it before, only reason why i bring it up [17:22] tbranyen: heh [17:23] hdon has joined the channel [17:23] pixel13: well, the way I wrote it is it will always return false if ".php" is in the URI [17:23] pixel13: meaning, /images/image.php.gif would also fail [17:23] mostmodernist has joined the channel [17:24] tbranyen: right hte issue would be if it was after the null byte making it think the string ended [17:24] pixel13: gotcha [17:24] pixel13: one sec [17:24] leeeb has joined the channel [17:24] tbranyen: testing it as well [17:24] Country has joined the channel [17:25] Hamms has joined the channel [17:25] tbranyen: pixel13: yeah javascript handles it correctly [17:25] pixel13: confirmed my end as well [17:25] tbranyen: another reason to never return to php [17:26] pixel13: tbranyen: thx for the heads up [17:26] jaw6 has joined the channel [17:27] xsyn has joined the channel [17:28] mostmodernist: QUESTION: should i use connect/vhost and/or cluster, or Haibu, for a multiple domain server? [17:28] fyskij has joined the channel [17:28] torvalamo has joined the channel [17:31] johnm1234 has joined the channel [17:32] tjh has joined the channel [17:34] eldar_ has joined the channel [17:34] Renegade001 has joined the channel [17:35] ezl has joined the channel [17:35] telemachus: Here's an odd one: using Express and trying to use flash messages; sessions are enabled, the flash messages show up when they should, but in the logs I keep seeing "Error: req.flash() requires sessions" [17:35] cognominal has joined the channel [17:35] telemachus: The app seems to be doing the right thing, but the logs say it's not happy. [17:37] nivoc has joined the channel [17:39] jslatts: rbranson or lukstr: either of you still around? [17:39] lukstr: yes but off to a meeting in a few, what's up [17:39] sctb has joined the channel [17:39] jslatts: lukstr: have you seen this one before: V8 is no longer usable [17:39] lukstr: what [17:39] lukstr: what's the context? [17:40] jslatts: lukstr: v8 is crashing when I do Number::New(1); [17:40] jslatts: FATAL ERROR: v8::Number::New() V8 is no longer usable [17:40] context: lukstr: i think you just like to say my name [17:40] sctb: Hi all, is there a way that I can run node such that it doesn't print any terminal control characters? (I'd like to use Emacs comint-mode) [17:40] lukstr: context: and you mine? :P [17:40] jslatts: i gave up on the func ptr idea [17:40] jslatts: and i am just using a static callback [17:40] jslatts: but v8 seems dead when it gets called back and I am not sure why [17:41] lukstr: do you know in what context it is being called? [17:41] jslatts: can i see that via gdb? [17:42] lukstr: yeah sure, paste the callstack [17:43] catshirt has joined the channel [17:43] Bradleymeck: sctb not without doing some heavy lifting in raw mode [17:43] sctb: Bradleymeck: what's raw mode? [17:43] mikeal has joined the channel [17:44] context: wtf! [17:44] mikeal1 has joined the channel [17:44] context: ACTION dryhumps lukstr's leg [17:44] Bradleymeck: tty's raw mode is where the process takes control of the terminal display entirely basically [17:44] Bradleymeck: all input to be shown all output, keypress events, etc [17:45] sctb: Bradleymeck: Oh, I see -- I thought you mean some kind of Node 'raw mode' [17:45] jslatts: lukstr: before it dies it is here: CytoSeg::callback (startPos=1634100577, endPos=1680827500, numMarkers=4, avgVal=2.7491335159778696e+247, chr=0x125e006c8 "chr1") at ../cytoseg.cc:123 [17:45] lukstr: ACTION hoses context off [17:45] lukstr: jslatts: is that your code? [17:45] sctb: Bradleymeck: So there's no way to interact with the node repl via stdin/stdout? [17:45] jslatts: lukstr: yes [17:46] jslatts: lukstr: well, callback is the creative name of my callback [17:46] lukstr: jslatts: do you have a stack dump? [17:46] lukstr: I don't like remote debugging :P [17:47] simenbrekken has joined the channel [17:47] jslatts: lukstr: sorry, I am totally operating at my c++ limits here :) haven't touched it since college [17:47] lukstr: jslatts: it's hard to know with out seeing [17:48] jslatts: lukstr: do you want the stack before or after the crash? [17:48] Bradleymeck: sctb there is, in fact it already does that [17:48] Bradleymeck: it doesnt hadnle a pipe but thats a bit different [17:48] Bradleymeck: *pipe from shell [17:48] lukstr: you've corrupted it somehow [17:48] Fredderf has joined the channel [17:48] lukstr: jslatts: uh at the crash ideally [17:49] CIA-104: node: 03isaacs 07bug-fixing * rd118003 10/ (lib/url.js test/simple/test-url.js): (log message trimmed) [17:49] CIA-104: node: Closes GH-711 URL parse more safely [17:49] CIA-104: node: This does 3 things: [17:49] CIA-104: node: 1. Delimiters and "unwise" characters are never included in the [17:49] CIA-104: node: hostname or path. [17:49] CIA-104: node: 2. url.format will sanitize string URLs that are passed to it. [17:49] CIA-104: node: 3. The parsed url's 'href' member will be the sanitized url, which may [17:49] CIA-104: node: 03isaacs 07fs-readstream-start-stuff * r69c2fa1 10/ (lib/fs.js test/simple/test-fs-read-stream.js): Start of a thing to do fs.readStream that can start at an index, but without knowing the end (+8 more commits...) - http://bit.ly/jlQmzq [17:49] CIA-104: node: 03isaacs 07global-leakage-test * r323cd74 10/ test/common.js : change port. 12346 is in use on my machine. - http://bit.ly/kQIKcy [17:49] CIA-104: node: 03isaacs 07global-leakage-test * r34f0b2f 10/ (2 files): Two tests that show the https client failing in bad ways. - http://bit.ly/lzIwvV [17:49] CIA-104: node: 03isaacs 07global-leakage-test * rccf759b 10/ (27 files in 4 dirs): test the tests for global leakage - http://bit.ly/m5LzRS [17:49] CIA-104: node: 03isaacs 07isaacs * r7d6747a 10/ lib/util.js : [17:49] CIA-104: node: Revert the comma-last change to sys.inspect [17:49] CIA-104: node: It's just too ugly. (+7 more commits...) - http://bit.ly/inFSIP [17:49] CIA-104: node: 03isaacs 07node-modules-folders * re4d05b7 10/ doc/api.markdown : Docs for require.resolve (+6 more commits...) - http://bit.ly/mPqCJJ [17:49] CIA-104: node: 03isaacs 07package.json * r6d296a3 10/ lib/readline.js : (log message trimmed) [17:49] isaacs: gaaaaaaaaa [17:49] isaacs: sorry [17:49] lukstr: oh GOD [17:49] CIA-104: node: Add history-search-backward and history-search-forward functionality. [17:49] CIA-104: node: Make up and down scroll through history entries prefixed with entered text. [17:49] CIA-104: node: Ex: history contains (ls,pwd,echo "foo",ps aux) [17:49] CIA-104: node: type: p(UP) --> scrolls through "ps aux" and "pwd", skips echo and ls. [17:49] CIA-104: node: Like putting this in an .inputrc file: [17:49] CIA-104: node: "\e[A": history-search-backward [17:49] CIA-104: node: 03isaacs 07package.json * rcd2eb7e 10/ lib/repl.js : Add .n as a fast way to load native modules. - http://bit.ly/jN4k99 [17:49] isaacs: pushing dev branches, faux pas [17:49] isaacs: ACTION blushed [17:49] CIA-104: node: 03isaacs 07package.json * ra08c6c7 10/ lib/util.js : [17:49] CIA-104: node: Revert the comma-last change to sys.inspect [17:49] CIA-104: node: It's just too ugly. - http://bit.ly/jgyFya [17:49] CIA-104: node: 03isaacs 07package.json * r3fe4afa 10/ package.json : package.json so you can install node with npm - http://bit.ly/mlVMBW [17:49] CIA-104: node: 03isaacs 07stream-pipe-O-n-fix * rf4fcd6f 10/ lib/stream.js : (log message trimmed) [17:49] CIA-104: node: Better stream.pipe() tracking. [17:49] CIA-104: node: This commit does three things: [17:49] CIA-104: node: 1. Uses an exposed counter rather than a hidden array for tracking dest [17:49] CIA-104: node: streams that may have multiple inputs. This allows for significantly [17:49] CIA-104: node: faster lookups, since the counter can be checked in constant time rather [17:49] CIA-104: node: than searching an array for the dest object. (A proper O(1) WeakMap [17:49] lukstr: ACTION shames isaacs  [17:49] context: hello. [17:49] lukstr: hi [17:49] MatthewS has joined the channel [17:50] isaacs: cleaning up now [17:50] context: lukstr: not you! cia :p [17:50] lukstr: you need a better nick [17:50] lukstr: like 'the' or 'a' [17:50] sctb: Bradleymeck: I'm not following, exactly. How would I invoke node such that I can interact with it using a 'dumb' terminal (like comint-mode)? [17:50] CIA-104: node: 03isaacs 07underscore-native-privates * rff29e82 10/ (34 files in 5 dirs): underscore native privates, not working yet (+10 more commits...) - http://bit.ly/lSUuOl [17:50] CIA-104: node: 03isaacs 07v0.5 * rb5cad3a 10/ doc/api/modules.markdown : MOaR DoCS (+7 more commits...) - http://bit.ly/kJscs7 [17:51] lukstr: jslatts: in any manner, v8 is in a not-living state, could be a lot of things; whenabouts is that code being executed? [17:52] akshatj has joined the channel [17:52] jslatts: lukstr: get my dm? [17:52] caolanm has joined the channel [17:52] akshatj: hello [17:52] lukstr: yes sorry, distracted one sec [17:53] jslatts: lukstr: no hurry [17:53] lukstr: can you paste cytoseg.cc:124 +-5 lines [17:53] CIA-104: node: 03Ryan Petrello 07v0.4 * r58a1d7e 10/ (lib/url.js test/simple/test-url.js): (log message trimmed) [17:53] CIA-104: node: Close #562 Close #1078 Parse file:// urls properly [17:53] CIA-104: node: The file:// protocol *always* has a hostname; it's frequently [17:53] CIA-104: node: abbreviated as an empty string, which represents 'localhost' [17:53] CIA-104: node: implicitly. [17:53] CIA-104: node: According to RFC 1738 (http://tools.ietf.org/html/rfc1738): [17:53] CIA-104: node: A file URL takes the form: [17:53] lukstr: or the whole thing :P [17:53] isaacs: there we go. [17:54] isaacs: sorry for the noise, folks. [17:54] lukstr: isaacs: I'll never forgive you [17:54] halfhalo: ever [17:54] devrim has joined the channel [17:54] akshatj: I tried to install some modules from npm but was only able to install socket.io [17:54] zackattack has joined the channel [17:55] akshatj: it just gets stuck while installing other modules [17:55] uchuff has joined the channel [17:55] olauzon has joined the channel [17:55] dshaw_ has joined the channel [17:57] akshatj: here is the log http://paste.ubuntu.com/613857/ [17:58] briznad has joined the channel [17:58] jgv has joined the channel [17:59] themadzak: ;) [18:00] dshaw_ has joined the channel [18:01] perezd has joined the channel [18:01] merlinm: there are some smart people in this channel [18:01] mscdex: whoa [18:01] mscdex: how are we supposed to separate mainline from fork CIA-xxx messages? [18:01] mscdex: :S [18:02] alex_b has joined the channel [18:02] akshatj: Anyone can help me? [18:04] iori has joined the channel [18:04] addisonj: akshatj, are you trying to install global or local? [18:04] addisonj: with npm v1, default is to install local, in which case you don't need sudo, if you want to install global pass the -g option [18:04] dylang has joined the channel [18:04] akshatj: addisonj, global [18:04] levi501d has joined the channel [18:05] brownies has joined the channel [18:05] philtor has joined the channel [18:05] addisonj: yeah try sudo npm -g install colors [18:05] stagas has joined the channel [18:05] tikva has joined the channel [18:05] sctb: Bradleymeck: this patch seems to purport to do what I want: http://groups.google.com/group/nodejs/browse_thread/thread/6cebf1209a585621/f4322a0a59e3f786?lnk=gst&q=comint#f4322a0a59e3f786 [18:05] ewdafa has joined the channel [18:07] akshatj: addisonj, wait, installing [18:08] addisonj: hrm, so opinion question, i need to do some text validation (basically make sure some keywords are not in a block of text), should I use grep or sed? or do it inside node? I wouldn't mind sharing the code with client side and doing the validation there too.. [18:09] Bradleymeck: isaacs, is there a place i can read more on npat at? [18:09] simenbrekken has joined the channel [18:10] isaacs: Bradleymeck: not really. there's not much to it yet [18:10] isaacs: Bradleymeck: it's just the config flag that runs tests at install-time for now. [18:10] colinclark has joined the channel [18:10] Bradleymeck: kk [18:11] v0idless- has joined the channel [18:11] pomodoro has joined the channel [18:14] tiagoa_ has joined the channel [18:14] dgathright has joined the channel [18:15] TheDeveloper has left the channel [18:15] Yoric has joined the channel [18:17] kuhrt has joined the channel [18:20] langworthy has joined the channel [18:22] AvianFlu: Oh no... Marak's unpacking his speakers [18:22] jaw6 has joined the channel [18:22] simenbrekken has joined the channel [18:22] AvianFlu: this party tomorrow at the hackhaus is gonna be no joke [18:23] Fredderf: haggis?! you have fun with that! :p [18:23] brettgoulder has joined the channel [18:24] baudehlo: jeez, yet another awful article covering node.js: http://www.javaworld.com/javaworld/jw-05-2011/110525-server-side-javascript.html [18:25] mscdex: yaja = yet another java article [18:25] mscdex: :p [18:25] mscdex: ibm, infoworld, and now this [18:25] mscdex: my pandaboard arrived today \o/ [18:25] mscdex: time to get node on this sucka [18:26] `3rdEden: baudehlo javaworld, what do you expect? [18:26] baudehlo: "ZOMG if I force the CPU to go 100% forever an event loop doesn't get access!!!" [18:26] mscdex: i expect synchronous articles! [18:26] AvianFlu: yeah blogging java devs all seem to be pro-level haters [18:26] shanez has joined the channel [18:27] baudehlo: I just hope for better conclusions than "I think Node.js will quickly grow beyond doing simple experiments and begin to handle semiserious but lightweight tasks such as online polls and simple message passing between users. If the server workload is simple and short-lived, Node.js is a good solution." [18:27] chrischris has left the channel [18:27] baudehlo: I mean, I'd never used node.js before February. but even I know how async coding works. [18:27] c4milo: somebody with socket.io experience here? [18:27] ryah: the infoworld article was idiotic [18:27] `3rdEden: ACTION raises hand [18:27] AvianFlu: yeah seriously [18:28] baudehlo: hell, Java has NIO too, so the author should understand. [18:28] baudehlo: ACTION goes back to hacking SMTP [18:28] drudge: Node.js, made exclusively for simple tasks like online polls and simple message passing [18:28] mscdex: drudge: no polling! [18:29] mscdex: ;) [18:29] bloodsucker has joined the channel [18:29] `3rdEden: c4milo wut [18:29] drudge: mscdex: you know if you don't write async code it blocks the server? [18:29] ryah: i wouldn't mind an article that is anti-node if it were based in measurement [18:29] Yoric has left the channel [18:30] ryah: but comparing node to ringo and jaxer? [18:30] ryah: that's needlessly insulting [18:30] `3rdEden: isn't jaxer already declared dead by aptana? [18:30] baudehlo: well most articles based on measurement are pretty poor so far too. [18:30] c4milo: `3rdEden: if I want to develop a streaming service using socket.io, do I need to support a http streaming as well or socket.io does it for me. [18:30] c4milo: ? [18:30] drudge: the folks who make a great, Eclipse-based IDE <-- does such thing exist? [18:30] tim_smart: It's like comparing Rails to Ruby [18:30] baudehlo: the problem is benchmarking is hard. [18:31] ryah: tim_smart: it's worse than that [18:31] ryah: i don't think jaxer and ringo are even working or being worked on [18:31] tim_smart: Ringo is being worked on I think [18:32] ryah: meanwhile we've got a massive ecosystem [18:32] chrischris has joined the channel [18:32] `3rdEden: c4milo depends on the service, as your clients need to be able to connect to your server with a socket.io compatible client as Socket.IO uses its own protocol specification, and send heartbeats across the stream [18:32] `3rdEden: and those hsould not be mistaken as regular messages etc [18:32] ryah: tim_smart: true v [18:32] ryah: https://github.com/ringo/ringojs/commits/master [18:33] Bradleymeck: ringojs is still active, havent seen jaxer in a while [18:33] Bradleymeck: they sit around her eon #ringojs [18:33] baudehlo: wow, Jaxer = runat=server? [18:33] baudehlo: dear ghod. [18:33] c4milo: `3rdEden: oh yeah, I recall. Then yes, I need to provide the plain http stream too. Thanks man [18:33] ryah: but yes, let's fire up js web servers and compare dick sizes [18:33] ryah: by all means [18:34] `3rdEden: baudehlo but they did provide a full serverside dom ;) [18:34] adambeynon has joined the channel [18:34] `3rdEden: https://github.com/aptana/Jaxer but it looks rather dead to me.. [18:35] tim_smart: The thing is, node.js is more of a runtime with a great stdlib. Where the others try hard to be the next awesome web framework [18:36] mscdex: `3rdEden: 1 commit in nearly a year lol [18:36] baudehlo: node.js is not just for the web :) [18:37] baudehlo: I may have to beat people up who assume otherwise :) [18:37] chapel: tim_smart: more than that, node.js could have the next awesome web framework, in fact it already does [18:37] chapel: :) [18:37] mscdex: node.js rules! [18:37] halfhalo: thats what she said [18:37] rick_h_: baudehlo: exactly, I'm finding it useful for non-web stuff more than web [18:37] jchris1 has joined the channel [18:37] tim_smart: chapel: Well of course it does, you do whatever the truck you want with it. [18:37] chapel: yep [18:37] chapel: modules baby [18:37] chapel: the future is stackable [18:38] mscdex: i like their tagline, "the world's first ajax server" [18:38] context: mscdex: whos? [18:38] mscdex: jaxer [18:38] context: heh [18:39] darshanshankar: ryah: what are the largest scale node.js deployments? Yammer? [18:39] simenbrekken has joined the channel [18:39] mscdex: darshanshankar: webos too [18:39] tim_smart: darshanshankar: plurk has a pretty big one [18:39] kmwallio has joined the channel [18:39] mscdex: :p [18:39] insin has joined the channel [18:39] itissid has joined the channel [18:39] context: i know facebook is playing around with it [18:39] ryah: darshanshankar: probably voxer [18:40] darshanshankar: interesting [18:40] context: https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node [18:40] context: doesnt say the largest but a nice list [18:40] mjr_: we've got some node out there [18:40] akshatj: cool [18:40] norviller has joined the channel [18:41] darshanshankar: i figured yammer was largest just based on sheer size [18:41] darshanshankar: but voxer... hmm [18:41] KirinDave: Yammer barely uses node.js [18:41] mscdex: hmm... aptana was acquired by appcelerator [18:41] KirinDave: It's like one service [18:41] mjr_: Yammer has a lot of different things on their backend. [18:41] mjr_: Voxer has only node. [18:41] aheckmann_ has joined the channel [18:42] context: ACTION install riak [18:42] halfhalo: webos wins in the sheer number of node installs methinks [18:42] darshanshankar: ah i misinterpreted then. i assumed yammer's entire api was on node [18:42] AvianFlu has joined the channel [18:42] darshanshankar: is tim caswell still doing all the webos stuff? [18:43] mjr_: webos surely is responsible for the largest number of instances of a node process. [18:43] halfhalo: as far as I know, yes [18:43] gkmngrgn has joined the channel [18:44] halfhalo: although sadly at the moment the webos node is not very nodey in actual usage due to a really retarded middle layer [18:44] AaronMT has joined the channel [18:44] darshanshankar: im trying to make a list of big use cases of node.js to prep for a pitch to a big enterprise client [18:44] darshanshankar: sadly ive already gotten the "What's Node.js?" response >.< [18:45] jonaslund: what is node.js? :P [18:45] ryah: ACTION looks forward to the day of http://nodejs.org/dist/node-6.0.0.exe [18:45] baudehlo: .msi, surely :) [18:45] ryah: .exe [18:45] truedat101 has joined the channel [18:45] dshaw_: :) [18:45] context: ryah: i dont know. according to infoworld we might be surprised if node is still around come christmas time [18:46] ryah: we don't install multiple files [18:46] context: ryah: :p [18:46] chbrown has joined the channel [18:46] context: ryah: did you see the article yet? [18:46] darshanshankar: context: lol [18:46] chbrown has left the channel [18:46] baudehlo: ryah: ah I see. Though for the windows crowd you probably want to install npm too. [18:46] context: ryah: its deja vu from a week or two ago really. [18:46] jaw6_ has joined the channel [18:47] darshanshankar: context: are you talking about this one? http://www.infoworld.com/d/application-development/javascript-conquers-the-server-969 [18:47] context: yeah [18:47] baudehlo: same as the javaworld article. [18:47] AaronMT has joined the channel [18:47] context: i skipped page 1, read page 2, stopped reading. [18:47] darshanshankar: hahah [18:48] context: baudehlo: the dude failed 2nd grade math. apparently 8G ram / 2M == 8000 [18:48] duncanbeevers has joined the channel [18:48] baudehlo: heh [18:48] halfhalo: you never know! [18:48] halfhalo: his math could be based on some other units [18:48] baudehlo: maybe that's what 8000/2 is in Java. [18:48] context: hahaha [18:48] halfhalo: like... shoes in a womans closet [18:49] edude03 has joined the channel [18:49] context: no. this isnt a tardis powered server. [18:49] fbrandel_ has joined the channel [18:49] halfhalo: awwww [18:49] context: where memory can be used in a different time and space [18:50] halfhalo: but I like that other space/time! its summer constantly there! [18:50] insin: "Node.js will quickly grow beyond doing simple experiments and begin to handle semiserious but lightweight tasks" - when is semiserious task support landing?! [18:50] halfhalo: friday [18:50] halfhalo: of 2012 [18:50] darshanshankar: context: i like how that article still references jaxer as relevant to the discussion lol [18:50] context: hahaha [18:50] insin: ACTION lies sideways on the floor and runs in a circle [18:50] context: i like how he compares node to doing 'for i in 1..900000' to web requests [18:51] tim_smart: insin: Task support? [18:51] stagas has joined the channel [18:51] tim_smart: It can do your tasks when you code it to [18:51] sveimac has joined the channel [18:52] jslatts: will building node with the --debug flag let me step through the v8 code as well? [18:52] halfhalo: ACTION waits for the day that node can make him a samich [18:52] baudehlo: jslatts: as in the C++? [18:52] sveimac has joined the channel [18:52] jslatts: baudehlo: yes [18:52] ryah: jslatts: you can step through the v8 code without --debug [18:52] baudehlo: no. It's not a C debugger. [18:52] tim_smart: halfhalo: You could make a sammich shop with a API [18:52] ryah: jslatts: --debug is for getting -O0 code [18:52] ryah: jslatts: and asserts [18:52] ryah: you probably don't want that [18:53] jslatts: @ryah: ah. i guess not [18:53] halfhalo: tim_smart: that involves time and money. but toaster with api is doable [18:53] jslatts: ryah: do you have any suggestions for detecting why v8 is dying? [18:53] akshatj: halfhalo, or wait till it reads email ;) [18:53] ryah: jslatts: how is it dying? [18:53] tim_smart: Starbuck or something should make an API [18:53] baudehlo: node.js reads email already. [18:53] thalll has joined the channel [18:53] baudehlo: it reads every single one of mine. [18:53] tim_smart: someone* [18:54] halfhalo: PUT /make/me/a/samich/and/burn/to/a/fucking/crisp/ [18:54] jslatts: ryah: i have a callback that fires for an external dependency. when it fires, V8::IsDead() returns ture [18:54] jslatts: s/ture/true [18:54] ryah: jslatts: mm.. are you using any addons? [18:54] baudehlo: tim_smart: just implement rfc 2324 with node. [18:54] jslatts: ryah: no, I am trying to build one though [18:55] jslatts: ryah: this is a c++ callback to another C++ lib [18:55] ryah: jslatts: is this inside your addon that it dies? [18:55] jlecker_ has joined the channel [18:55] ryah: ah [18:55] jslatts: ryah: yes [18:55] ryah: can you post the code? [18:55] jslatts: ryah: sure, one sec [18:55] lukstr: and I'm back [18:56] halfhalo: ACTION bets there will be a chipotle REST api soon enough [18:56] towski has joined the channel [18:56] AvianFlu has joined the channel [18:56] jslatts: /msg ryah https://gist.github.com/2688be96c7f2c4aae6f8 [18:56] jslatts: doh [18:56] jslatts: well, there it is [18:56] Ned_ has joined the channel [18:57] jslatts: ryah: sure I have something terrible going on [18:57] baudehlo: ugh. NYTimes interview time. [18:57] halfhalo: fake it [18:58] jesusabdullah: Do it live! [18:58] halfhalo: fake it live! [18:59] pkarl has joined the channel [19:00] jmoyers has joined the channel [19:01] sveimac has joined the channel [19:02] tdegrunt has joined the channel [19:03] metadaddy has joined the channel [19:04] darshanshankar: isaacs: not sure if you remember, but we chatted two months ago (lol) about CPANTS style test scripts in package.json [19:04] stagas has joined the channel [19:04] isaacs: darshanshankar: yeah [19:04] isaacs: i've talked to a lot of people about that :) [19:04] darshanshankar: xD any updates on that? [19:04] isaacs: darshanshankar: "scripts":{"test":"blah dee bloo"} [19:04] isaacs: darshanshankar: do that [19:05] darshanshankar: :D woot woot! [19:05] isaacs: darshanshankar: there's no server yet to upload the tests to. [19:05] isaacs: darshanshankar: but if you do `npm set npat true`, then it'll run tests automatically as part of the install [19:05] darshanshankar: cool [19:05] isaacs: darshanshankar: once we get a server set up to upload the data to, i'll make npm do that. [19:05] isaacs: darshanshankar: once we start collecting data, we can design a pretty site around it [19:06] darshanshankar: what ever happened to 2.no.de ? [19:06] AvianFlu has joined the channel [19:06] jaw6 has joined the channel [19:06] darshanshankar: i think it was nithub by marcello3d [19:08] sledge has left the channel [19:08] admc1 has joined the channel [19:08] eyesUnclouded has joined the channel [19:09] materialdesigner has joined the channel [19:10] dget has joined the channel [19:11] captain_morgan has joined the channel [19:12] springmeyer has joined the channel [19:13] patcito has joined the channel [19:15] zackattack has joined the channel [19:17] sreeix has joined the channel [19:18] jaw6 has joined the channel [19:19] fbrandel_ has left the channel [19:19] jbpros has joined the channel [19:23] japj has joined the channel [19:24] adambeynon has joined the channel [19:25] zmbmartin: what is the best way to deploy a node/express app with nginx? I saw an article about using god to monitor it. [19:25] zmbmartin: Is there a preferred way? [19:26] drudge: i deploy with upstart and monit [19:28] tjh: yeah i wouldnt use ruby [19:28] mscdex: i thought ngix + node = build/default/binding_1.o [20:08] wailupe2k: ../binding.cc:24:16: error: ev.h: No such file or directory [20:08] wailupe2k: configures ok but then get that ^^ [20:08] wailupe2k: using npm for install [20:08] BillyBreen: hmm. never seen that one. [20:08] wailupe2k: have zeromq with perl bindings working fine [20:09] wailupe2k: prod env is BSD though ...... [20:09] Opaque has joined the channel [20:10] BillyBreen: yeah, i haven't installed the npm in a month or so. at the time i needed to symlink /usr/local/lib/libzmq* to /usr/lib to make waf happy. [20:11] jaw6 has joined the channel [20:11] nibblebot: when Mongoose does a find() is there anyway to restrict which fields are returned? I can only get it to return the entire doc, [20:12] mscdex has joined the channel [20:12] xsyn has joined the channel [20:13] tmpvar has joined the channel [20:13] addisonj: hrm... i am struggling to get express-mongoose to work, i am defining my models in a separate file but when I call the method I get a no method error. [20:14] mcluskydodallas has joined the channel [20:18] wadey has joined the channel [20:20] _fat has joined the channel [20:20] jmoyers: ACTION is sad when he sees a framework implement 'classes' [20:21] jmoyers: https://gist.github.com/989117 - $.Class :: sad face :: [20:21] benmills: Yeah I agree [20:21] joeytwiddle has joined the channel [20:22] maushu has joined the channel [20:22] tbranyen: jmoyers: just recently did an api audit for a company's new product [20:22] tbranyen: and they had an extendClass [20:22] tbranyen: talking about javascript classes [20:22] jmoyers: yeah [20:22] tbranyen: recommended they rename it all and deal with constructors [20:22] _fat: isaacs: small question for you [20:22] jmoyers: for some reason the underscore/backbone guys did it too [20:23] jmoyers: extend({}) [20:23] _fat: where is npm prefix set? [20:23] tbranyen: jmoyers: oh javascript mvc, justin meyers wrote that, he comes around our loft once in a while [20:23] jmoyers: I guess because inherits() uses Object.create, it probably doesn't work for older browsers [20:23] catshirt has joined the channel [20:23] tbranyen: yeah Object.create is unusable in a jquery world [20:24] jmoyers: ACTION nods [20:24] jmoyers: its just such a bummer [20:24] jmoyers: YUI's model is a shitpoop [20:24] jmoyers: when it comes to that stuff [20:24] jmoyers: i dont like to see other people do that [20:24] tbranyen: i've never seen the need to use yui [20:24] tbranyen: maybe some day [20:25] jmoyers: well they have decent widgets and such [20:25] jmoyers: i mean jquery ui clearly has something going for them [20:25] jmoyers: i cant bring myself to use either, frankly [20:25] tbranyen: yeah richard worth works for us, so we're big on jquery/jquery ui [20:25] tbranyen: we also have jquery core committers ^_^ [20:25] tbranyen: so... nobody here would know wtf was going on if i used yui [20:26] jmoyers: ;-) [20:26] jmoyers: i mean, i dig what they've done with it [20:26] jmoyers: but i still have a hard time with the fact that i need to like [20:26] slip has joined the channel [20:26] jmoyers: choose all kinds of themes and packages and shit [20:26] jmoyers: and all i want is a god damned js button [20:26] LowValueTarget has joined the channel [20:26] tbranyen: jmoyers: i was really interested in ukijs for a while [20:26] tbranyen: never actually built anything with it tho [20:26] tbranyen: has some node stuff now too [20:27] wailupe2k: verbose loadDefaults zeromq@0.5.0 [20:27] wailupe2k: info preinstall zeromq@0.5.0 [20:27] wailupe2k: verbose unsafe-perm in lifecycle false [20:27] wailupe2k: verbose Setting uid from 0 nobody [20:27] wailupe2k: verbose stack at uid setting Error [20:27] wailupe2k: verbose stack at uid setting at exec (/usr/local/node/lib/node_modules/npm/lib/utils/exec.js:35:17) [20:27] wailupe2k: :( [20:27] jmoyers: tbranyen: hmm, never seen this [20:27] tbranyen: yeah look at the homepage has a nice demo example and you can get your damn js button :D [20:27] jmoyers: haha [20:29] jaw6 has joined the channel [20:29] supster has joined the channel [20:31] jmoyers: tbranyen too bad they've gone the route of "rect: '720 10 24 24', anchors: 'left top'" and friends [20:31] jetheredge has joined the channel [20:31] `steve has joined the channel [20:31] eb4890 has joined the channel [20:32] tbranyen: jmoyers: yeah :-/ [20:32] jmoyers: seems like a lot of ui toolkits these days (gwt, ajax.org, etc) completely abstract the html/css [20:32] jmoyers: thats doomed for failure imo [20:32] `steve has joined the channel [20:32] tbranyen: would be neat to add extensions to css and have your own parser for it [20:33] tbranyen: but its too slow [20:33] jmoyers: ACTION nods [20:33] antoinevg has joined the channel [20:33] context: jmoyers: eh? [20:33] jmoyers: eh? [20:33] jmoyers: which part [20:33] tbranyen: also i don't like that you write that sort of stuff in JS and then if JS is disabled you lose all styling [20:33] s00pcan has joined the channel [20:33] tbranyen: you lose all styling with printing as welkl [20:33] context: jmoyers: about ui toolkits [20:33] s00pcan: cdr ] [ marlun ] [ robinhoode|away ] [ wibblymat ] [20:33] s00pcan: 16:33 [ Casperin ] [ Gruni|spuelen ] [ Martz ] [ robotblake ] [ wica ] [20:33] s00pcan: 16:33 [ catshirt ] [ Guest27158 ] [ maru_cc ] [ Roelven ] [ wilhelm ] [20:33] s00pcan: 16:33 [ cce ] [ Guest62417 ] [ MaSch ] [ roger_raymond ] [ willwhite ] [20:34] tbranyen: nice [20:34] s00pcan: 16:33 [ ceej ] [ Guest74518 ] [ matbee ] [ rphillips ] [ Will| ] [20:34] jmoyers: ... [20:34] context: jmoyers: which do you prefer, stuff like jquery-ui / jquery mobile, or extjs [20:34] s00pcan: oops [20:34] jmoyers: ;-) [20:34] tbranyen: context: those are all really really different things [20:34] s00pcan: trying out a cli irc client for the first time here [20:34] tbranyen: or is that what you're asking [20:34] roger_raymond: heh - i was wondering why i was pinged in here :) [20:34] jmoyers: context im not sure what i prefer to be honest [20:34] jmoyers: jquery ui seems nice [20:34] jmoyers: but the themes seem like a bitch [20:34] jmoyers: maybe im imagining things [20:34] xsyn has joined the channel [20:35] yozgrahame has joined the channel [20:35] tjholowaychuk has joined the channel [20:35] jmoyers: if you've ever seen grubhub.com -- i like that style of button [20:35] jmoyers: something that has rich graphics, has mousedown/mouseup etc [20:35] jmoyers: and whenever i go to a ui toolkit [20:36] jmoyers: i end up with a shitload of stuff -- and i just cant use it out of the box because our chief designer is particular about things like that [20:36] tojochacko has joined the channel [20:36] jmoyers: so i end up having to contemplate groking all this theme'ing shit [20:36] benmills: I'm running into a problem trying to do `npm install express` is anyone else running into problems with that? [20:37] ardcore has joined the channel [20:37] ardcore has left the channel [20:37] jmoyers: but i guess, since almost all these guys end up with a similar solution (a theme package with icons, colors, etc) and a compiled source kit (core vs draggable vs whatever), i should probably get over it [20:37] rbranson: yeah lose the pedantry neckbeard ;) [20:37] Wizek: Is there anyone here who uses NodeUnit? [20:38] jmoyers: but until that day comes, i'll keep writing 15 line jquery plugins and do $('button').button() ;-) [20:38] Wizek: or did use, for that matter... [20:38] context: benmills: could you be more vague please. you gave us way to much detail [20:38] benmills: "couldn't read package.json in express " [20:39] aho has joined the channel [20:39] lostinplace has joined the channel [20:39] context: worked just fine here :x [20:39] jmoyers: benmills: nope -- just tried it [20:39] context: benmills: upgrade npm ? [20:39] lostinplace: anyone have any kind of timeline on web workers support? [20:39] jmoyers: i'd imagine your package got corrupt or some such? [20:40] pifantastic has joined the channel [20:40] tbranyen: lostinplace: pretty sure its in dev right now [20:41] lostinplace: Boss: Can it do threading? [20:41] lostinplace: me: you can spawn different processeds with independant functionality [20:41] lostinplace: boss: can it do threading? [20:41] jmoyers: uh [20:41] LowValueTarget has joined the channel [20:41] lostinplace: me: ....maybe with web workers? [20:41] jmoyers: you'll need to give your boss an explanation of why it DOESN'T do threading [20:41] jmoyers: methinks [20:41] tbranyen: +1 [20:41] LowValueTarget has joined the channel [20:42] lostinplace: that increases the risk of aneurysm [20:42] tbranyen: or don't recommend nodejs if you're writing something that absolutely must have threading [20:43] jmoyers: there's a wide range of problems that people apply 1 to 1 thread models to that absoutely don't need them [20:43] benmills: Is there a better way to upgrade npm then reinstalling? I tried `sudo npm update -g npm` and got 'Error: Cannot find module '/usr/local/lib/node_modules/npm/bin/npm-get-uid-gid.js'' [20:43] jbpros_ has joined the channel [20:44] lostinplace: for me it becomes a question "should I write an app that acts like a thread manager for a whole bunch of concurrently running function nodes?" [20:45] lostinplace: or should I just wait for nodejs to come up with theeir own solution [20:45] jmoyers: what class of functions are you talking about here [20:45] jmoyers: if its io -- it doesn't need threads to handle that gracefully [20:46] jmoyers: there are userland things that make offloading computation intensive things to child processes/long running processes [20:46] context: benmills: npm will remove all old stuff when you upgrade to 1.0 [20:46] ezl has joined the channel [20:46] lostinplace: receive request for value in attribute a of dataset and best correlated attribute b [20:46] context: lostinplace: stop trying to write sync code in node ? [20:46] lostinplace: so I can either do compares in series or parallel [20:47] micrypt has joined the channel [20:47] jmoyers: lostinplace ah [20:47] _fat_ has joined the channel [20:48] lostinplace: oops *return best correlated attribute b [20:48] context: lostinplace: if you are in the mind set 'threads are the only way to get something done' node is not your solution [20:49] tojochacko has left the channel [20:49] jmoyers: so you're talking about a massively parallel problem -- something that needs to be broken down into n parts and done in parallel [20:49] jmoyers: there are a few mapreduce like packages out there [20:49] jmoyers: for node [20:49] context: you could see how nedis works... i imagine it handles a bit of parallel operations [20:49] z8000: anyone seen npm hang? [20:50] context: nice colour. [20:50] lostinplace: curiosity: how do they implement parallel processing? [20:51] lostinplace: (realize I could dive in, wondering if anyone has quick answer) [20:51] context: thats why i suggested you could look at it. [20:51] z8000: oh I suppose it's because I changed the repository config to use https [20:52] mcluskydodallas has joined the channel [20:52] voodootikigod: !log [20:52] Calvin: Usage: !log logid | [[n]~]logid | logid[(+|-)n] [20:52] z8000: yep [20:52] AntelopeSalad has joined the channel [20:52] gazumps has joined the channel [20:53] _fat has joined the channel [20:54] liquidproof has joined the channel [20:56] jmoyers: i dont think nedis does anything wrt lookups and such in parallel [20:56] Grimmenstein has joined the channel [20:57] zed0: I'm having trouble getting the crypto md5 function to work in a loop, can someone take a look at https://gist.github.com/996145 please? [20:58] jmoyers: cluster on the other hand [20:58] jmoyers: automatically spawn n processes where n is = to number of cpus by default [20:58] jmoyers: https://github.com/LearnBoost/cluster [20:59] AvianFlu has joined the channel [21:00] amocla has joined the channel [21:00] Fredderf has joined the channel [21:01] eee_c has joined the channel [21:01] lostinplace: jmoyer cluster=win; exactly what I figured I was going to have to write myself [21:01] lostinplace: jmoyer thx [21:01] jhurliman: tjholowaychuk, node-canvas is segfaulting for me on drawImage() with node 0.4.8 and node-canvas 0.5.4 on OSX. any ideas? [21:01] dshaw_ has joined the channel [21:01] viz has joined the channel [21:01] tjholowaychuk: jhurliman valgrind it up [21:02] jhurliman: k [21:02] briznad has joined the channel [21:03] mandric has joined the channel [21:03] jmoyers: lostinplace np, but thank tj, he wrote it :P [21:04] mandric: anyone know what ircbot node.js uses? [21:04] tdegrunt has joined the channel [21:04] mandric: err, #node.js [21:05] jmoyers: mandric: not sure what you mean -- theres an irc package called... 'irc' that a few bots use. https://github.com/nodejitsu/kohai and such [21:06] jmoyers: https://github.com/martynsmith/node-irc [21:06] aphelion has joined the channel [21:06] mandric: that helps, just wondering if there an npm package or something to get a bot connected to a channel and do thing like logging. [21:07] jmoyers: look at node-irc examples [21:07] jmoyers: its identical to what you're talking about [21:07] mandric: ok [21:07] mandric: thanks jmoyers [21:09] gazumps has joined the channel [21:10] _fat_ has joined the channel [21:10] jhurliman: tjholowaychuk, gdb says bad access at "0x0000000125b6d0e2 in cairo_surface_create_for_rectangle ()" [21:10] jhurliman: checking valgrind next [21:10] lostinplace: RAHH!!! [21:11] eguest309 has joined the channel [21:12] jhurliman: ugh, stupid valgrind is not working on this machine [21:12] _fat has joined the channel [21:13] eguest309: hi guys .got a question i needed some help with.i am starting up node.js from an upstart script.the node files are in a particular folder on my web server.whenever i try to make a get request i get this error ypeError: Object # has no method 'get' although the node get request works fine if i am using it outside of the script and standalone ie node script.js wrks fine. [21:14] adambeynon has joined the channel [21:14] benmills: Is it possible to print to the console or stdout from an addon inside the C++ code? [21:14] eguest309: i am guessng teh cause is that it cant seem to find some files becuase of a scope problem.any ideas on how to solve this? [21:15] tjholowaychuk: benmills of course [21:15] benmills: How do I go about that? [21:15] brianseeders has joined the channel [21:15] benmills: This is actually related to a strange bug I found in my markdown lib that happens when I use it with express [21:15] tjholowaychuk: just like you would with c/c++ in the first place :p [21:15] TooTallNate: benmills printf [21:16] benmills: well I mean output to the node console when I'm using the addon in node [21:16] benmills: printf will reach that? [21:16] ZDZolton has joined the channel [21:16] TooTallNate: the "console" is just the regular stdout [21:16] benmills: ok [21:16] TooTallNate: so yes, printf reaches that [21:16] febits[0] has joined the channel [21:17] Bonuspunkt has joined the channel [21:17] AvianFlu has joined the channel [21:17] sechrist has joined the channel [21:18] benmills: alright thanks [21:19] eguest309: any help ? [21:19] lemon-tree has joined the channel [21:19] aakour has joined the channel [21:20] samsonjs has joined the channel [21:20] rudebwoy has joined the channel [21:20] SubStack has joined the channel [21:22] jmoyers: eguest309 you need to like, gist your code or something [21:22] jmoyers: eguest309 the way modules are resolved, if its something you've installed via npm, its installed to a local folder called 'node_modules' [21:22] jmoyers: if you've moved things around, it wont be able to resolve your modules [21:22] sherod has joined the channel [21:23] eguest309: but this is a core module [21:23] caolanm has joined the channel [21:23] jmoyers: https://gist.github.com/ [21:24] jmoyers: cant help without code [21:24] eguest309: okay.hold on [21:26] eguest309: exec sh -c '/usr/local/bin/node /var/www/app_node/webroot/js/gameplay/printServer.js >> /var/log/node/printServer.log 2>&1' [21:27] jmoyers: ah [21:27] jmoyers: i'd guess your environment variables aren't the same [21:27] Poetro has joined the channel [21:28] agrohe21 has left the channel [21:28] eguest309: so u suggest i use the env variables of the user i used to install node ? [21:28] jmoyers: not sure which to point you to though [21:28] insin: do subsequent require()s re-evaluate the whole source file again? [21:28] jmoyers: no [21:29] bartt1 has joined the channel [21:30] jmoyers: eguest309: i have no problem with that method on cli in macos using the same user i installed with [21:30] jmoyers: shooting in the dark though [21:31] eguest309: thanks anyways.will try that and get back to u [21:31] ryah_ has joined the channel [21:31] bartt2 has joined the channel [21:35] eguest309: i tried using exec sudo -u root sh -c 'PATH=${PATH} /usr/local/bin/node /var/www/idbs2/webroot/js/gameplay/printServer.js >> /var/log/$ [21:36] jch has joined the channel [21:36] eguest309: got teh same problem however [21:36] bartt has joined the channel [21:37] zackattack has joined the channel [21:37] eguest309: so basicalyyy my probelme is the environment in which i am running node under [21:39] AvianFlu has joined the channel [21:39] Grimmenstein has joined the channel [21:39] nightshift has joined the channel [21:40] jiggliemon has joined the channel [21:40] jmoyers: yyeaaah, you shouldn't have to sudo [21:40] jmoyers: thats for sure [21:40] bartt has joined the channel [21:40] znutar has joined the channel [21:40] jiggliemon: I've noticed in most packages people are using fs.readFileSync instead of the async method. [21:41] jiggliemon: It's that the defacto standard? or just easier? [21:41] jmoyers: jiggliemon should only use sync on startup if its a server application [21:41] nightshift has joined the channel [21:41] AntelopeSalad_ has joined the channel [21:41] jiggliemon: Oh yeah? [21:41] coreb has joined the channel [21:41] jmoyers: yes [21:41] jmoyers: sync blocks [21:42] jmoyers: your whole server stops [21:42] jiggliemon: That's comforting. I was trying to use async. - and it's a real bitch. [21:42] jmoyers: async version immediately yields the execution context and then calls the callback when io is ready [21:42] jiggliemon: yeah, I was trying to write to a buffer etc - and form a callback based on the buffer's state. [21:43] jiggliemon: Not so much for fun. [21:43] olalonde has joined the channel [21:43] atiti has joined the channel [21:44] trumpetmic has joined the channel [21:44] telemachus: I'm having a weird issue with Express. I'm using the request's flash method in a few places - and I do have sessions enabled. The whole app works (including the flash), but I get errors for one of the flash calls telling me that the app needs sessions enabled. [21:45] telemachus: Any thoughts? [21:46] telemachus: Code if anyone cares to look: https://gist.github.com/996249 [21:46] telemachus: (The error complains about line 90) [21:46] telemachus: no 89, sorry [21:47] pen has joined the channel [21:47] jmoyers: jiggliemon not sure what you mean. should be pretty simple. readFile callsback by default with the whole file [21:47] jmoyers: http://nodejs.org/docs/v0.4.8/api/fs.html#fs.readFile [21:48] jmoyers: line by line and such you can create a readStream [21:48] jmoyers: which is more complicated [21:48] jiggliemon: jmoyers: I was reading the contents of a directory - and parsing them. [21:48] jmoyers: ah [21:49] jiggliemon: then saving the rendered content to a buffer to write to a cache file. [21:49] jiggliemon: It was a gnarly chain of callbacks dude to async reading. [21:49] jmoyers: mm [21:49] jmoyers: flow control [21:49] wailupe2k: ../binding.cc:24:16: error: ev.h: No such file or directory cc1plus: warnings being treated as errors [21:50] jiggliemon: sync will save me some effort. [21:50] wailupe2k: running into issues with ev.h [21:50] jiggliemon: or readability [21:50] jmoyers: jiggliemon https://github.com/caolan/async#parallel [21:50] jmoyers: should be something there to keep callbacks flattish [21:50] wailupe2k: zeromq is including it as a lib, and its having issues with warnings being treated as errors [21:51] devaholic: +1 for async.js [21:51] jiggliemon: jmoyers: that's what im looking for. [21:51] DelvarWorld has joined the channel [21:51] jiggliemon: Thankyou [21:51] wailupe2k: as a result npm cant finish install [21:51] cafesofie has joined the channel [21:51] wailupe2k: any thoughts? [21:52] wailupe2k: it is able to find ev.h and include it but due to the errors with warnings being treated as errors its just getting kicked back.... This doens't look like a prob with the zeromq package, as it isn't the one supplying the ev.h [21:53] wailupe2k: /usr/local/node/include/node/ev/ev.h [21:54] micrypt_ has joined the channel [21:54] wailupe2k: using node v0.5.0-pre [21:54] jmoyers: wailupe2k somebody was in here like an hour ago complaining about the same thing [21:54] jmoyers: im sure its the package maintainer [21:54] v0idless- has joined the channel [21:55] wailupe2k: na that was me, still trying to figure it out, but at this point I have traced the comp issues to libs not supplied by the maintainer [21:55] telemachus: Ok, I think my issue is this https://github.com/visionmedia/express/issues/656 - still not sure what to do about it though [21:55] wailupe2k: maby i should roll back my version of node [21:56] wailupe2k: what is considered most stable? [21:56] jmoyers: wailupe2k even numbers [21:56] gazumps856 has joined the channel [21:56] jbpros has joined the channel [21:57] Bradleymeck has joined the channel [21:57] SubStack: browserify >= 0.4.6 now takes a hash argument for require so you can map names like this: { jquery : 'jquery-browserify' } [21:58] SubStack: and it's now intelligent about aliasing too so if you depend on hashish elsewhere and then alias hashish to h it won't inline the source twice [21:58] SubStack: yay me [21:58] nivoc has joined the channel [21:59] jmoyers: ACTION fist pumps [21:59] devaholic: can i use dnode and browserify [21:59] SubStack: devaholic: you're ALREADY using dnode with browserify [21:59] SubStack: dnode uses browserify internally [21:59] devaholic: yeah i know, thats why i ask [22:00] devaholic: seems like i cannot also use browserify in the standard way, if im using dnode [22:00] SubStack: if you include dnode in the require param then you can just require('dnode') browser-side [22:00] SubStack: then instead of