[00:00] kwmiebach__ has joined the channel
[00:00] Topcat has joined the channel
[00:02] naderman: hey all, can anyone explain to me how dependencies on git repos work in npm? Is there a way to specify a package from git (e.g. master branch) and to depend on a package which depends on some version, e.g. 1.0.0 of that package but make it use the master branch?
[00:02] rauchg has joined the channel
[00:02] lz has joined the channel
[00:03] mcav has joined the channel
[00:03] mlochead has left the channel
[00:03] bizniz98 has joined the channel
[00:04] lz has joined the channel
[00:05] isao has joined the channel
[00:06] Tobsn: can anyone recommend a memcache client lib?
[00:06] sriley: ah well ill take a poke tomorrow to see if i can see anything that might be causing it, cheers for having a look
[00:06] Tobsn: vanillahsus wont compile here
[00:07] isao1 has joined the channel
[00:08] Nuck: Tobsn: I think 3rdEden has one?
[00:08] Tobsn: yeah looking at that
[00:08] Tobsn: i think i need to use that
[00:08] Tobsn: elbart looks too simple
[00:08] Nuck: He's got some pretty heavy loads he's using it for, and he's generally a good programmer, so I'd trust it
[00:09] Nuck: Well, planning on using it for, at least. Dunno if he's into production yet
[00:09] jerrysv: there is an issue with 3rdEden's in that if you are using an older sharding algorithm it won't match
[00:09] pradeebv has joined the channel
[00:09] jerrysv: but he has the ability to replace that if memory serves
[00:09] Tobsn: didnt he used my flexihash?
[00:09] Tobsn: cant remember
[00:09] Tobsn: prob not
[00:09] jyc has joined the channel
[00:10] Tobsn: i'd like to use the libmem version
[00:10] Tobsn: https://github.com/vanillahsu/node-memcache/issues/10
[00:10] jerrysv: we had to abandon it in production, but that was due to some older legacy that required memcache as well
[00:10] Tobsn: but i have no clue why it wont compile
[00:10] Joeysomo has joined the channel
[00:11] Tobsn: hmm i wonder if i should try hyperdex
[00:11] Tobsn: http://hyperdex.org/performance/
[00:11] Tobsn: seems neat.
[00:13] oht has joined the channel
[00:13] charlenopires has joined the channel
[00:14] Tobsn: btw. anyone an idea how i get the private interface ip?
[00:15] Joeysomo has joined the channel
[00:15] jetienne_ has joined the channel
[00:16] Tobsn: ah, got it
[00:16] chrispaterson has joined the channel
[00:16] mikeal has joined the channel
[00:17] Connorhd has joined the channel
[00:17] charlenopires_ has joined the channel
[00:17] mikeal: itayneeman: there is no abort() yet
[00:17] chrispaterson: So there is console.trace() which gives you a stack trace... But I was wondering if there is a similar function where it doesn't output to the console? I want to capture the string and shove it into a log file...
[00:17] mikeal: there is an issue to add one
[00:18] chrispaterson: Anyone know how to do that?
[00:18] dgathright has joined the channel
[00:18] mikeal: if you know that there isn't a response yet you can do
[00:18] arthurdebert has joined the channel
[00:18] mikeal: var x = request(...)
[00:18] mikeal: x.req.abort()
[00:18] mikeal: on node 0.6
[00:19] romain_ has joined the channel
[00:20] DrHeiter23 has joined the channel
[00:20] enmand has joined the channel
[00:21] yogig has joined the channel
[00:22] tjholowaychuk: chrispaterson: https://github.com/visionmedia/callsite
[00:22] chrispaterson: Thanks tj
[00:23] chrispaterson: tjholowaychuk: figures you wrote it ;-)
[00:23] dilvie has joined the channel
[00:23] chrispaterson: tjholowaychuk: You wrote most of modules I use
[00:24] itayneeman: mikeal: thanks!
[00:24] tjholowaychuk: i shouldn't have made them magical getters but that was just to illustrate that you can do __line etc
[00:24] tjholowaychuk: meh
[00:25] arthurdebert has joined the channel
[00:25] mikeal: you should have known you were wrong when you saw yourself writing a getter :P
[00:26] tjholowaychuk: yup haha
[00:26] tjholowaychuk: pretty much
[00:26] mikeal: there used to be a few in core
[00:26] mikeal: and i was like "ryan, you hate these, why are they here"
[00:26] perezd has joined the channel
[00:26] Poetro has joined the channel
[00:27] mikeal: and they got called a lot
[00:27] whaley has joined the channel
[00:27] mikeal: before we had the unified readable/writable on streams there was a getter that determined if it was in an open or closed state
[00:27] mikeal: so it got hit a lot
[00:27] westg has joined the channel
[00:28] daglees has joined the channel
[00:28] benwtvr has joined the channel
[00:29] eignerchris_ has joined the channel
[00:29] overthemike has joined the channel
[00:30] Nuck: I use getters sparingly, but I do find them useful occasionally
[00:30] isaacs: there are a few good uses for getters.
[00:30] isaacs: very few.
[00:30] isaacs: it's nice that we don't require("console") until and unless necessary
[00:30] CIA-102: libuv: 03Brandon Philips 07master * rfca18c3 10/ src/win/fs.c :
[00:30] CIA-102: libuv: win: fs: handle EOF in read
[00:30] CIA-102: libuv: in luvit after upgrade libuv from 243cfc to d3efef readSync started
[00:30] CIA-102: libuv: failing. It seems that the code cleanup stopped handling EOF
[00:30] CIA-102: libuv: Trivially reproduced with this
[00:30] CIA-102: libuv: local fs = require('fs')
[00:30] CIA-102: libuv: print(fs.readFileSync('foo.luvit')) - http://git.io/9aDiDQ
[00:30] CIA-102: libuv: 03Bert Belder 07master * rfbc2154 10/ (6 files in 2 dirs): Merge branch 'v0.6' - http://git.io/1yWpkA
[00:31] Nuck: I'm using one for my wrapping of Files in with extra metadata
[00:31] perezd_ has joined the channel
[00:31] Nuck: I use it to expose a filestream without sharing filestreams
[00:31] reid has joined the channel
[00:31] Tobsn: erm
[00:31] Tobsn: TypeError: Object 10.179.180.201:11211 has no method '_emitCloseIfDrained
[00:32] Nuck: Anyone here using Node in gitolite post-recieve (or other) hooks?
[00:32] j4rg0 has joined the channel
[00:32] Nuck: Because I'm seeing odd behavior in the path resolver
[00:32] Tobsn: yep, 3rd edens thing kills itself
[00:33] Nuck: haha
[00:33] reid has joined the channel
[00:34] TooTallNate: getters seem good for those one-time-then-cache situations
[00:34] TooTallNate: where the getter is removed after one call
[00:34] Tobsn: ?
[00:34] TooTallNate: Tobsn: referring to convo from above
[00:34] Tobsn: https://github.com/3rd-Eden/node-memcached/issues/10
[00:34] Tobsn: it seems like a common issue
[00:35] TooTallNate: oh that
[00:35] perezd_ has joined the channel
[00:35] TooTallNate: Tobsn: the eio_custom() api changed a while back
[00:35] TooTallNate: so any function using that will need to be updated to return void instead of int
[00:36] Tobsn: hmm just removed nMemcached and installed memcached
[00:36] Tobsn: lets see if that still fucks up
[00:36] Tobsn: okay, that one seems to hold up
[00:38] xaq has joined the channel
[00:38] perezd has joined the channel
[00:39] arash has joined the channel
[00:40] pradeebv has joined the channel
[00:40] carlyle has joined the channel
[00:40] Nuck: There any way to relativize a path?
[00:41] githogori has joined the channel
[00:41] Nuck: Like, I want to take two absolute paths and make one relative to the other
[00:41] mcav` has joined the channel
[00:41] Nuck: Oh. There's something in 0.6.7
[00:41] h4mz1d has joined the channel
[00:41] perezd_ has joined the channel
[00:41] Nuck: Time to polyfill into 0.4.12 to keep support in my codebase :B
[00:42] mmalecki: uhm, don't support it?
[00:43] isaacs: Nuck: path.relative in 0.6
[00:43] Nuck: Yeah, I saw
[00:43] isaacs: Nuck: you can probably just copy the function right out of 0.6 for your 0.4 programs
[00:43] isaacs: it's just string mungery
[00:43] Nuck: That's what I plan to do
[00:43] isaacs: awesome.
[00:43] illourr has joined the channel
[00:43] adamkittelson has joined the channel
[00:44] Nuck: I did that with the JSON require in 0.6 too
[00:44] Nuck: Until everything I use is on 0.6.x, I have to keep suppot for 0.4
[00:44] TooTallNate: so what do you use that is 0.4.x only?
[00:45] Nuck: Well, it's not libraries
[00:45] Nuck: It's mostly I've got a lot of environments I work in, and not all are updated right now :P
[00:46] Nuck: Like, I have a couple EC2 instances, a VPS, a home server, as well as my own macbook, plus there's my colleague's computer too
[00:46] tmike: You can require JSON files?
[00:46] tuhoojabotti: yes
[00:47] Nuck: And I have like 6 codebases I need to bring up to date before I can even switch at all
[00:47] Nuck: Which just makes things more complex
[00:47] tmike: and it just fills the object? How does it work in comparison to JSON.parse?
[00:47] Nuck: Especially since I had .json files which were actually just an object being module.exported
[00:47] Nuck: tmike: It *is* JSON.parse
[00:47] Nuck: Like, literally
[00:47] tmike: lol okay
[00:47] Nuck: It's just more convenient
[00:48] tuhoojabotti: cjson is more useful for config files
[00:48] Gekz has joined the channel
[00:48] Gekz has joined the channel
[00:48] AvianFlu has joined the channel
[00:48] Nuck: tuhoojabotti: cjson?
[00:48] perezd_ has joined the channel
[00:48] tuhoojabotti: commented json
[00:48] Nuck: Ah
[00:49] Nuck: tuhoojabotti: I believe in self-documenting code. Quite strongly, in fact.
[00:49] tmike: commented json fills a need I have at this time. investigating
[00:49] tuhoojabotti: Nuck: Sometimes it's nice to give examples and details on some settings.
[00:49] Nuck: True.
[00:50] Nuck: I can't find any cjson info...
[00:50] tuhoojabotti: node-cjson
[00:50] Nuck: hrm... I might look into that...
[00:50] Behi has joined the channel
[00:51] devaholic has joined the channel
[00:53] ag4ve: i'm curious how you guys feel about strata? wsgi/psgi/rack seems to work pretty well in other languages, but i wonder how well the onion type of thinking works in js?
[00:53] jlank has joined the channel
[00:53] xbayrockx has joined the channel
[00:54] deeprogram has joined the channel
[00:54] krucial has joined the channel
[00:54] Nuck: y'know what? This polyfill will be a pain in the ass, due to platform differences. Fuck this noise, I'm just gonna use Node.js 0.6 from now on.
[00:54] ashishg has joined the channel
[00:54] isaacs: Nuck: bout time
[00:54] timoxley: Nuck ftw.
[00:55] Nuck: lol
[00:56] Nuck: It's a pain in the ass to keep everything updated, but I'll survive
[00:56] timoxley: ag4ve I don't see how strata gives you benefits vs express since it's pretty similar, plus factoring in the cost of less community and tools… don't see the point right now.
[00:56] jj0hns0n has joined the channel
[00:56] TooTallNate: Nuck: but is it really harder to update than it is to maintain and backport old code?
[00:57] Nuck: TooTallNate: Until now, all my code actually works fine on both 0.4.x and 0.6.x, no backports needed
[00:57] dubenstein has joined the channel
[00:57] tjholowaychuk: timoxley you just get a more direct clone of rack
[00:57] tjholowaychuk: with less robust stuff than connect
[00:57] ryanfitz has joined the channel
[00:57] tjholowaychuk: currently at least
[00:57] Nuck: But polyfilling for path.relative is just too much work
[00:57] Nuck: It's a beast of a function
[00:58] TooTallNate: Nuck: 0.4 *might* be ok to still support if at least process.arch was in there
[00:58] Nuck: And the differences between Windows and Posix make it harder
[00:58] TooTallNate: but no :\
[00:58] Nuck: process.arch?
[00:58] TooTallNate: ya man
[00:58] ag4ve: timoxley: maybe. i guess connect is the 'js way'....
[00:58] Nuck: ahh
[00:58] TooTallNate: you need that shit
[00:58] Nuck: TooTallNate: I do?
[00:58] TooTallNate: for native addon stuff
[00:58] TooTallNate: not *you*
[00:58] Nuck: Ah
[00:58] tjholowaychuk: ag4ve they're not very different
[00:58] TooTallNate: at least, node-gyp could support 0.4.x if it had that but no
[00:58] Nuck: Well, I haven't made any native modules yet
[00:59] timoxley: tjholowaychuk agreed. good to have competition though.
[00:59] Nuck: I think the biggst competitor to Express will arive when we get something more railsey.
[00:59] Nuck: I'll rue the day when that happens :(
[00:59] tjholowaychuk: we already have some of those
[01:00] tjholowaychuk: geddy/railway
[01:00] Nuck: tjholowaychuk: None major yet.
[01:00] timoxley: Nuck and that ace thing is getting there
[01:00] ag4ve: huh, the code style looked different in the docs. but right, they have about the same functionality
[01:00] Nuck: ACTION dies a little
[01:00] harthur has joined the channel
[01:00] tjholowaychuk: timoxley the ace guy doesn't realize you have a 10k overhead per request
[01:00] tjholowaychuk: which if you're ok with that
[01:00] tjholowaychuk: it's all good
[01:01] tjholowaychuk: but then dont use node
[01:01] xbayrockx has joined the channel
[01:01] timoxley: tjholowaychuk that's 10k overhead for fibres?
[01:01] Nuck: 10k?
[01:01] Nuck: ahh fibers
[01:01] tjholowaychuk: timoxley yeah
[01:01] timoxley: ouch
[01:01] tjholowaychuk: 10kb stacks
[01:01] Nuck: Ouch
[01:02] Nuck: I'd hate to see a full stack trace for ace
[01:02] Nuck: It sounds like it'd be scary
[01:02] tjholowaychuk: well that's just the allocated size
[01:02] Nuck: Yeah, but I know what fibers tend to do to stack traces
[01:03] timoxley: I can't help but feel if these guys concentrated efforts on improving/extending/wrapping the existing projects rather than rebuilding, we'd be in a better place
[01:03] timoxley: ah well.
[01:03] addisonj has joined the channel
[01:03] Nuck: timoxley: It's classic NIH
[01:04] Nuck: Once Node matures more, NIH should die down
[01:04] tjholowaychuk: people always start building something familiar to them
[01:04] pradeebv has joined the channel
[01:04] tjholowaychuk: and then you realize some things dont work
[01:04] tjholowaychuk: haha
[01:05] maxogden: i opened an issue on ace asking how to use streams for responses and the guy didnt seem to find them particularly important :(
[01:05] Nuck: I built my own router system. Realized it was a pile of shit, started using Express.
[01:05] tjholowaychuk: im just curious why twitter has like 5 node web frameworks
[01:05] Nuck: Wait, what?
[01:06] Nuck: tjholowaychuk: Are you shitting me?
[01:06] tjholowaychuk: strata / ace / they use express / matador
[01:06] Nuck: tjholowaychuk: I get the feeling they just let each project build from scrtch o_O
[01:06] tjholowaychuk: who knows
[01:07] Nuck: I'm very picky with my libraries, I only use one tool for each job.
[01:07] cliffano has joined the channel
[01:07] timoxley: maxogden did you try his suggestion?
[01:08] volkan has joined the channel
[01:08] timoxley: maxogden i.e. https://github.com/maccman/ace/issues/1#issuecomment-3974820
[01:08] tjholowaychuk: dox -> markdown -> manpageeeeeEEEee
[01:09] unomi: I think that NIH is awesome, as long as people actually live up to that creed, rather than (in the general case) try to port some approach that they felt worked in their previous environment
[01:09] Eruadan: what's the diference between http://sproutcore.com/ and backbone.js ? roughly
[01:09] tjholowaychuk: Eruadan everything?
[01:09] tjholowaychuk: one is small and does less
[01:09] tjholowaychuk: one is larger and does more
[01:09] johnhamelink has joined the channel
[01:10] unomi: Eruadan: backbone is basically intended to be a skeleton that you flesh out
[01:10] timoxley: oh god. he asked 'the question'.
[01:10] davidban_ has joined the channel
[01:10] tjholowaychuk: people are good at making pointless comparisons lately
[01:10] unomi: sproutcore has a trendy name.
[01:11] huggies has joined the channel
[01:11] Tobsn: wow
[01:11] Tobsn: https is super slow
[01:11] tmcw has joined the channel
[01:11] tuhoojabotti: SPDY ftw
[01:11] Nuck: Sproutcore is used by Apple
[01:11] timoxley: Eruadan just to mix it up, also look at http://emberjs.com/
[01:11] Tobsn: im getting here ~1000 req/sec on a tiny server and https gets me 180 req/sec
[01:11] Nuck: Oh, does Express have SPDY yet?
[01:12] Eruadan: i don't know both, i'm just checking everything, as i want to do my first project with node.js. I just have a good base ground with javascript, and now i want to start learning the libs
[01:12] Nuck: And will SPDY ever make it into core next to http?
[01:12] Tobsn: hehe
[01:12] Tobsn: and does speedy help me?
[01:12] TooTallNate: Nuck: probably never
[01:12] unomi: Nuck, Chinese hot-bunking wage-slaves are used by Apple.
[01:13] Nuck: Well I hope I can get SPDY in Express eventually
[01:13] westg: haha
[01:13] Tobsn: seems like a better idea to tunnel through something
[01:13] tmcw has joined the channel
[01:13] Nuck: My only issue with SPDY is that I've heard it lacks caching
[01:13] Nuck: Which seems like a HUUUUUUUUGE flaw to me.
[01:13] TooTallNate: Nuck: https://github.com/eee-c/express-spdy
[01:14] thepatrick: having worked with SproutCore, backbone.js is painful in what it doesn't do for you. but really, ember.js is s the better think to compare to backbone.js
[01:14] Tobsn: hmm seems like people use stunnel for it
[01:15] Nuck: I like my lightweight libraries
[01:15] Nuck: I'm a sucker for microframeworks
[01:15] unomi: I, otoh, like more complete packages
[01:16] Nuck: I like to have a bunch of smaller pieces that I tie together with a bow. Which is why I use separate database, router, frontend, and such
[01:16] johnhame_ has joined the channel
[01:16] Nuck: I'm able to do some awesome optimizations too
[01:16] unomi: The right approach for the job and desired outcomes I guess.
[01:17] samsonjs_ has joined the channel
[01:17] tmike: ec2 spot requests are amazing
[01:17] cliffano: what's a good way to bypass child dependency? i.e. my module depends on jquery module which depends on jsdom >= 0.2.. today jsdom release 0.2.12 which has a TypeError.. so this breaks my module.. ideally I want to set jsdom back to = 0.2.11. one way i can think of is to fork jquery and set jsdom = 0.2.11 there, and set the fork as a dependency in my module.. any better alternative?
[01:18] postwait has joined the channel
[01:20] jj0hns0n_ has joined the channel
[01:21] timoxley: cliffano fork, fix, submit pull request, use your fork until it is fixed in main repo
[01:21] unomi: The problem, as I see it, with mashing together microframeworks, is that there generally seems to be risks of: A. impedance mismatch or other interop friction, B. Generally narrow support and ecosystem, C. Documentation and knowledge transfer within a team
[01:21] yogig has joined the channel
[01:21] jj0hns0n_ has joined the channel
[01:22] cliffano: timoxley: ok.. i guess there's nothing faster than that
[01:22] unomi: cliffano: no idea if it would work, but you could try installing your preferred version globally
[01:22] timoxley: cliffano also possible they will publish an updated version without the broken
[01:23] cliffano: timoxley: i've done similar approach before.. the main problem is that pull requests often get ignored for weeks... and even then it's not always published right away
[01:23] Tobsn: is anyone using stunnel? i need to know where to find the forwarded IP
[01:23] unomi: cliffano: ah, nevermind, misread
[01:23] francisl has joined the channel
[01:23] francisl has left the channel
[01:23] timoxley: cliffano sure. just pester them. if they're ignoring your pull request, also probably means they ren't doing any dev on that module
[01:23] lohkey has joined the channel
[01:24] timoxley: cliffano also for such a trivial fix it should be a no brainer. Though you should check to make sure it's actually an error in their code, and not just some api change
[01:25] c0smikdebris has joined the channel
[01:25] timoxley: cliffano they shouldnt' be doing api change on a minor revision, but meh.
[01:25] overthemike has joined the channel
[01:25] timoxley: *patch revision
[01:25] subhaze has joined the channel
[01:25] ningu: does express qualify as a microframework?
[01:26] davidbanham has joined the channel
[01:26] unomi: ningu: that is an interesting question, to me
[01:27] cliffano: timoxley: yep.. agreed on patch revision... i'm never a fan of range dependency for exactly this reason.. been bitten several times..
[01:27] ningu: it certainly isn't heavy-weight
[01:27] Tobsn: hmm so weird, i cant find the remote addr
[01:27] unomi: if we, for arguments sake, say that backbone.js is to the client as express is to the server..
[01:28] abraxas has joined the channel
[01:28] unomi: I would say that backbone.js is a microframework, while express is .. not. :p
[01:28] timoxley: it's not a microframework.
[01:29] unomi: I think though that this mostly down to my preference for skinny servers and fat clients
[01:30] unomi: if you compare express to persevere2 though..
[01:30] ningu: hmm, I've never seen backbone.js...
[01:30] ningu: would you normally use jade client-side for something like that?
[01:31] unomi: then express starts to look more like a microframework rather than a comprehensive approach
[01:31] ningu: or some other template language
[01:31] davidbanham: It's not micro, but you can make it pretty light depending on how you use it. One of my applications just uses Express as a REST API provider that gets hit from a single page web app.
[01:31] ningu: and just send templates from the server?
[01:32] unomi: ningu: people do all kinds of different things, personally, yes - I would not be rendering html on the server unless I had to
[01:33] ningu: is performance ever an issue in your experience rendering templates client-side?
[01:33] davidbanham: I think that's the really nice thing about Express, though. You can go all the way from full on server side templating to a minimal REST API in the same tool. Sure, there are probably better options that specialise on one or the other, but you can do it all with Express and only need to learn one framework.
[01:34] unomi: davidbanham: nod, but then from there you need persistance / CRUD / 'stuff'
[01:34] unomi: I agree with you there though
[01:34] tvw has joined the channel
[01:35] Tobsn: anyone an idea why stunnel is not sending the remote ip?
[01:35] jmar777 has joined the channel
[01:36] unomi: Express seems to have achieved a level of non-cruft where it doesn't seem to be innately too heavy for a given situation
[01:36] Wa has joined the channel
[01:36] sorensen__ has joined the channel
[01:36] davidbanham: And as much as middleware may go against node philosphy, I think it's that concept that allows Express to acheive that.
[01:37] davidbanham: There's a bunch of stuff sitting there, if you don't use it it's pretty much invisible, but if you do want it it's right there.
[01:37] unomi: I'll admit though, when I first met Express I was wondering why anyone would build such a thing
[01:39] alejandromg has joined the channel
[01:39] unomi: It struck me as rather old-paradigm, and gave me flashbacks of Rails
[01:40] Nuck: I don't see how middleware isn't Node-like?
[01:40] Nuck: It seems like a very good solution to the problem.
[01:40] davidbanham: Nuck: I think I'm half recalling something I heard on Nodeup recently. Basically that you shouldn't need middleware because all that stuff should be easy enough to just do in node.
[01:40] tjholowaychuk: unomi node isn't exactly new either, concept-wise that is
[01:40] looopy has joined the channel
[01:40] tjholowaychuk: it's just more "available" with javascript
[01:41] tjholowaychuk: davidbanham that would be ideal
[01:41] tjholowaychuk: node just doesn't facilitate it
[01:41] tjholowaychuk: in core
[01:41] tjholowaychuk: moving that concept to the third-party just fragments
[01:41] jmar777 has joined the channel
[01:41] Nuck: I think Middleware is the ideal solution to the problem, I just wish it were standardized more
[01:42] tjholowaychuk: ideally Connect doesn't exist
[01:42] timoxley: tjholowaychuk so hang on, what solution are you suggesting
[01:42] Nuck: I agree, Connect should ideally not exist
[01:42] timoxley: connect gets merged with core?
[01:42] tjholowaychuk: well no
[01:42] tjholowaychuk: but *something* to facilitate modularity better
[01:42] perezd_ has joined the channel
[01:42] tjholowaychuk: what that is who knows
[01:42] tjholowaychuk: nothing is perfect
[01:42] Nuck: I think we need a lightweight middleware system, sorta like EventEmitters
[01:43] davidbanham: We need to balance the desire to keep core as lithe as possible with the desire for abstracting away as much grunt work as possible.
[01:43] unomi: tjholowaychuk: sure, Thin and other evented back-ends have a fairly long history
[01:43] Nuck: In this case, it's not gruntwork avoidance
[01:43] SubStack: davidbanham: grunt work belongs in modules
[01:43] Nuck: It's fragmentation avoidance
[01:44] Nuck: Like, let's face it, EventEmitters are a standard, a lot of modules use them.
[01:44] QaDeS_ has joined the channel
[01:44] Nuck: So we know how to interact with anything like that, automatically
[01:44] SubStack: connect is far from a foregone conclusion about how to organize web apps
[01:44] dekub has joined the channel
[01:44] Nuck: I'm not asking for something like Connect
[01:45] Nuck: Just a VERY basic Middleware system, that makes no assumptions about content
[01:45] unomi: tjholowaychuk: but the point is exactly that it *is* JS based, and so presumably is geared towards people who have worked with JS etc
[01:45] fermion has joined the channel
[01:45] Nuck: At its core, middleware is a way to allow easy hook-in into a process.
[01:46] RobWC has joined the channel
[01:46] RobWC has left the channel
[01:46] unomi: Let me just say that I love Events, putting that out there.
[01:46] jldbasa has joined the channel
[01:46] Nuck: Hell, all I want is EventEmitters where each binding calls back when done and the arguments for the callback are passed to the next function
[01:47] unomi: I can't presume to know enough about the current approaches to middle-ware to critique it though
[01:47] tmike: events really are fantastic
[01:47] tjholowaychuk: they're all leaky
[01:47] tmike: they shave so much code
[01:47] tjholowaychuk: but that goes with most abstractions
[01:47] Nuck: I know I once implemented the middleware pattern before I'd even seen it or used it or heard of it
[01:48] davidbanham: Yeah, we've moved beyond my level of knowledge on middleware. Agree that events are a wonderful thing.
[01:48] unomi: tmike, indeed, and they also inherently leave reuse / interop options open
[01:48] tmike: yep
[01:49] unomi: In the Client environment there is a bit of overhead involved, not sure how it stands within Node though
[01:50] jldbasa has joined the channel
[01:51] ohtogo has joined the channel
[01:52] EhevuTov has joined the channel
[01:53] tim has joined the channel
[01:54] samsonjs has joined the channel
[01:54] icewhite has joined the channel
[01:55] cjm has joined the channel
[01:57] cjm has joined the channel
[01:57] a_suenami has joined the channel
[02:00] alippai has joined the channel
[02:00] olalonde has joined the channel
[02:01] AkhiAbdullah has joined the channel
[02:02] olalonde: hi there
[02:02] ryanfitz has joined the channel
[02:02] h4mz1d has joined the channel
[02:03] trotter has joined the channel
[02:03] brianseeders has joined the channel
[02:04] blacktea has joined the channel
[02:04] ksysk has joined the channel
[02:06] noderjs has joined the channel
[02:06] isao has joined the channel
[02:07] devaholic has joined the channel
[02:07] wingie: any vowsjs user here?
[02:07] wingie: im trying -w flag for watching a folder
[02:07] wingie: and running the tests when the lib files are changed
[02:07] wingie: in the project root i run: vows -w but it says "Could not find any tests to run." when a file is changed
[02:08] wingie: i have them in test/ folder
[02:08] tmike: wingie: could you use git pre-commits to run the tests instead?
[02:08] unomi has joined the channel
[02:08] codepal has joined the channel
[02:09] ksysk: well
[02:10] ksysk has left the channel
[02:11] looopy has joined the channel
[02:12] e4r has joined the channel
[02:13] looopy has joined the channel
[02:13] StanlySoManly has joined the channel
[02:14] wingie: tmike: that would'nt be better than running them before i make commits
[02:14] tmike: true
[02:14] tmike: you can set them to deny the commits if the tests fail though
[02:19] xaq has joined the channel
[02:22] ericmuyser|air has joined the channel
[02:22] davidbanham: So I'm running into floating point imprecision on JS. toFixed is sometimes rounding down when I want it to round up. Is there a way around this?
[02:22] looopy has joined the channel
[02:23] onerope has joined the channel
[02:24] shiawuen has joined the channel
[02:24] nibblebo_ has joined the channel
[02:24] ksysk has joined the channel
[02:24] kirbysayshi has joined the channel
[02:25] jxie has joined the channel
[02:25] ashishg has joined the channel
[02:25] jldbasa has joined the channel
[02:26] zeade has joined the channel
[02:28] sambao21 has joined the channel
[02:28] cjm has joined the channel
[02:29] kevwil has joined the channel
[02:30] joshwines has joined the channel
[02:31] broofa has joined the channel
[02:32] ryanfitz has joined the channel
[02:33] navanjr has joined the channel
[02:33] navanjr has joined the channel
[02:33] abraxas: davidbanham: floating points are imprecise in any language
[02:34] davidbanham: abraxas: True, not hating on JS, just trying to find away around this issue in a language that only has FP.
[02:34] chrisdickinson: davidbanham: multiply up, do Math.(floor | ceil)(item), divide down.
[02:35] davidbanham: chrisdickinson: Ah, of course. Thanks will do.
[02:35] chrisdickinson: no prob!
[02:35] chjj: yeah, it would be really nice if js just had c types...and pointers...and goto statements
[02:35] chjj: oh, i got carried away again
[02:36] jamescarr_ has joined the channel
[02:36] dlg: itd be nice if js had big integers
[02:36] chjj: a wise man once said, give me goto statements, or give me death
[02:36] tmike: is he dead now?
[02:37] chjj: im not sure, ...is harmony getting goto statements?!
[02:37] mmalecki: chjj: js has goto statements
[02:37] chjj: mmalecki: oh?
[02:37] chrisdickinson: break to label?
[02:37] tjholowaychuk: chjj i wish too
[02:37] chjj: glad im not the only one
[02:37] ksys has left the channel
[02:38] chjj: break [label] / continue [label] doesnt count
[02:38] chjj: state machines with just switch and a state variable dont count either
[02:39] chjj: it seems like it should be so essential. its the simplest, most primtive control flow.
[02:39] saurb has joined the channel
[02:40] abraxas: perhaps you should not be using JS :) how's Dart?
[02:40] chjj: i hate dart
[02:40] chjj: unfortunately
[02:40] skm has joined the channel
[02:40] chjj: i was really disappointed in google the day i tried to learn dart
[02:41] abraxas: i haven't looked into it enough to love or hate it, but it's interesting that ryah loves it so much
[02:41] chjj: hmm?
[02:41] tjholowaychuk: it still has getters
[02:41] tjholowaychuk: boooo
[02:41] abraxas: ryan dahl really likes dart
[02:41] chjj: abraxas: i know what you said, im just kind of surprised
[02:41] abraxas: paraphrasing from when he came to tokyo: "i wish javascript was dart"
[02:42] chjj: i really wish dart hadnt kep the ===
[02:43] bbttxu has joined the channel
[02:43] chjj: the dart syntax is just too java-like for me
[02:43] chjj: c++-like in some ways
[02:43] chjj: 2 languages i could live without
[02:44] tjholowaychuk: the Foo(this.foo)
[02:44] tjholowaychuk: syntax
[02:44] tjholowaychuk: is really lame
[02:45] chjj: i would have been all for starting from scratch with a clientside language...or putting an existing language in the browser
[02:45] chjj: like lua, or python, or something
[02:45] tjholowaychuk: lua is a good fit i dont know why they dont go with that
[02:45] tjholowaychuk: maybe because they cant compete against eachother vm-wise
[02:45] tjholowaychuk: haha
[02:45] mmalecki: lua <3
[02:45] tmike: There's only one thing to do:
[02:45] tjholowaychuk: who knows
[02:45] chjj: it really is, it should have been in the browser from the start
[02:45] tmike: write a javascript lua compiler :p
[02:46] tjholowaychuk: you could probably write some lua to interpret js
[02:46] tjholowaychuk: for old stuff
[02:46] tjholowaychuk: when lua takes over
[02:46] tjholowaychuk: haha
[02:46] mmalecki: you guys should try luvit, btw :)
[02:46] aconbere has joined the channel
[02:46] chjj: im campaigning against camelCase in the luvit api currently
[02:46] chjj: i think im the only one
[02:46] chjj: i want to keep underscores
[02:47] mmalecki: chjj: ah, I've seen the e-mail
[02:47] chrisdickinson: chjj: +1
[02:47] mmalecki: I don't know yet
[02:47] tjholowaychuk: i dont like the whole lets just clone node
[02:47] tjholowaychuk: approach
[02:47] tmike: I waffle between preferring camelCase and underscores
[02:47] jamescarr_: wow, some companies really like to rape potential clients hard
[02:49] tmcw has joined the channel
[02:49] Joeysomo has joined the channel
[02:50] joshgillies has joined the channel
[02:50] unomi: jamescarr_: context?
[02:50] context: you cant have me
[02:51] francisl_ has joined the channel
[02:51] unomi: can't you lend jamescarr_ some of your awesome self?
[02:51] francisl_ has left the channel
[02:51] pradeebv has joined the channel
[02:51] jamescarr_: heh... pondering something discussed today. I gave one of my team members the contact of a sales rep for a certain java web vendor to see if they could send on site consultants out for a week...
[02:51] unomi: I really dig JavaScript
[02:51] chjj: i bury javascript
[02:52] jamescarr_: the sales rep tried to push a $200,000 package of 40 two year licenses and on site consulting
[02:52] tkaemming has joined the channel
[02:52] unomi: but I think it would be preferable to have somethng like bytecode or retargetable VM
[02:52] al3xnull has joined the channel
[02:52] unomi: That might help avoid people wanting to put all kinds of cruft into the JS language itself
[02:53] unomi: 'A certain Java web vendor'?
[02:53] tmike: then you could plug and play machines too
[02:54] unomi: I think that Oracle is generally best-known for their pricing / ecosystem "creativity"
[02:55] eddiedu has joined the channel
[02:55] unomi: and IBM for a general salesmanship apathy
[02:55] jamescarr_: unomi, it was actually not Oracle. Not going to name names though because I want to follow up with the rep tomorrow
[02:55] jamescarr_: because the vendor is really awesome in the java open source community
[02:55] unomi: fair enough
[02:55] mmalecki: tell him to kiss your ass?
[02:55] jamescarr_: :)
[02:56] jamescarr_: well, the consultants we need are for a company they aquired, and I DO know the CEO. Was just trying to go the official route :)
[02:56] ParadoxQuine has joined the channel
[02:57] unomi: You know how there is that cliche about old people and "things used to be much better"?
[02:57] jamescarr_: YEAH! :(
[02:57] unomi: the interpretation of nostalgia and red-shifting rose-tinted glasses
[02:59] unomi: I saw mention of the Whitney Houston songs / albums being pulled from streaming services
[02:59] colinclark has joined the channel
[02:59] koo3 has joined the channel
[02:59] koo4 has joined the channel
[02:59] unomi: in anticipation of DVD / CD re-releases
[03:00] tmike: oh my
[03:00] unomi: and I am pretty sure that constitutes some evidence that those geezers could be right after all
[03:00] Dreamer3 has joined the channel
[03:01] unomi: Stock valuations, fiduciary responsibliity, profit maximation and market failures
[03:03] unomi: I guess Dolly Parton deserves being able to afford a few backrubs though
[03:05] rwaldron has joined the channel
[03:05] Tobsn: is anyone using stunnel?
[03:06] mmalecki: ok, I didn't think I'll ever ask such a question, but does fs.watchFile work on windows?
[03:06] mmalecki: (investigating one vows issue)
[03:08] itayneeman has joined the channel
[03:08] AvianFlu has joined the channel
[03:11] batousai has joined the channel
[03:12] batousai: how can i use window.location in nodejs?
[03:12] Skaag has joined the channel
[03:14] sh1mmer has joined the channel
[03:14] samsonjs has joined the channel
[03:14] abraxas: batousai: npm install window
[03:14] looopy has joined the channel
[03:14] jamescarr_: abraxas, ha! I didnt know that existed
[03:14] abraxas: me neither! does it? :)
[03:14] unomi: lol
[03:15] unomi: node ./defenestrator.js
[03:15] maletor has joined the channel
[03:15] unomi: batousai: what is it that you want to do exactly?
[03:15] Allyz has joined the channel
[03:15] trakowski77 has joined the channel
[03:16] batousai: i want to follow a redirect so i need to set the value of the content attribute in another variable
[03:16] abraxas: batousai: nodejs doesn't have a window object
[03:16] batousai: the content attribute belongs to a meta tag
[03:16] batousai: window.location is standard i think
[03:16] batousai: standard js
[03:17] abraxas: window is not JS, it's DOM
[03:17] unomi: batousai: node.js lives on the server.
[03:17] unomi: batousai: for scraping / proxy use?
[03:17] batousai: for scraping
[03:18] orlandovftw has joined the channel
[03:18] batousai: unomi, have you ever had this problem where you cant redirect because of model -> widget/view <-> controller/router
[04:45] AdamSeabrook has joined the channel
[04:47] joshgillies has joined the channel
[04:49] shivhack has joined the channel
[04:51] hithere has joined the channel
[04:53] mikeal has joined the channel
[04:54] shivhack has joined the channel
[04:55] shivhack has left the channel
[04:57] shivhack has joined the channel
[04:58] ag4ve: unomi: yeah, but that is sorta where i was going.
[04:58] clu3 has joined the channel
[04:58] ag4ve: i was thinking of using juggernaut and dnode or something like that with mongo, but this seems to take everything out of the picture besides mongo/mongoose
[04:58] gavin_huang has joined the channel
[04:58] niloy has joined the channel
[04:59] shivhack has left the channel
[05:00] jaha: anyone know how to transfer files using dnode? here is what I am testing but i am getting a EPIPE error, http://pastie.org/3442499
[05:00] jaha: im sure im missing something simple, just cant get my head around it
[05:01] ag4ve: wingie: (and anyone else - this is pretty good) http://www.yuiblog.com/blog/2010/09/29/video-glass-node/
[05:05] hithere has left the channel
[05:05] r04r has joined the channel
[05:07] gavin_huang has joined the channel
[05:07] maletor has joined the channel
[05:08] jamescarr_: this sounds silly, but in express is there anyway to access the url parameters used to reach the page?
[05:08] jamescarr_: or do I need to plug it into the template myself?
[05:08] stalled has joined the channel
[05:08] jamescarr_: I mean, use the url params within the template
[05:09] maletor has joined the channel
[05:12] bbbb has joined the channel
[05:13] sreeix has joined the channel
[05:15] JohnnyL has joined the channel
[05:15] JohnnyL: how has windows support / operation been going with ns?
[05:15] jesusabdullah: ns?
[05:16] subbyyy has joined the channel
[05:17] JohnnyL: njs
[05:17] JohnnyL: :)
[05:18] isaacs has joined the channel
[05:18] pnorman has left the channel
[05:19] teslan has joined the channel
[05:19] CarterL has joined the channel
[05:23] jacobolus has joined the channel
[05:23] westg: is ti possible to change databases based on a key/value in a user document?
[05:24] lz has joined the channel
[05:24] westg: in mongodb
[05:24] jesusabdullah: Can't you just go and hit up whatever database you like?
[05:24] jesusabdullah: like, hit the one db and then make a connection to your other database based on the k/v
[05:24] AvianFlu_ has joined the channel
[05:25] jesusabdullah: DUN done
[05:26] westg: ah yea
[05:26] westg: damn my tiredness -_-
[05:26] mikeal has joined the channel
[05:27] Nuck: What's the path of least resistance for deleting a folder tree I jammed down /tmp/?
[05:27] Nuck: Can I unlink a full folder?
[05:28] trotter has joined the channel
[05:31] tkahn6 has joined the channel
[05:31] jesusabdullah: Nuck: reboot
[05:32] Nuck: :I
[05:32] Nuck: I meant in Node
[05:32] jesusabdullah: westg: Happens to the best of us. I accidentally a nap y'know
[05:32] jesusabdullah: Nuck: exec('reboot') ;)
[05:32] westg: yea haha
[05:32] munichlinux has joined the channel
[05:33] Nuck: jesusabdullah: Without rebooting :P
[05:33] jesusabdullah: oh
[05:33] jesusabdullah: use rimraf
[05:35] spion1 has joined the channel
[05:37] Nuck: Thanks, jesusabdullah
[05:37] merlin83 has joined the channel
[05:38] davehamptonusa has joined the channel
[05:38] indexzero has joined the channel
[05:38] davehamptonusa has left the channel
[05:38] indexzero has joined the channel
[05:38] EyePulp has joined the channel
[05:39] jesusabdullah: no prob
[05:40] michaelmartinez has joined the channel
[05:44] Joeysomo has joined the channel
[05:46] dubenstein has joined the channel
[05:49] crewmoss has joined the channel
[05:50] joshsmith has joined the channel
[05:51] Chel has joined the channel
[05:52] pcaulagi has joined the channel
[05:53] themiddleman_itv has joined the channel
[05:56] davehamptonusa has joined the channel
[05:56] davehamptonusa has left the channel
[05:57] umren has joined the channel
[05:58] c0smikdebris has joined the channel
[05:58] themiddleman_i-1 has joined the channel
[05:58] pradeebv has joined the channel
[06:00] jaw187 has joined the channel
[06:00] bizniz98 has joined the channel
[06:01] cjm has joined the channel
[06:02] copongcopong has joined the channel
[06:02] michaelmartinez: When RoR first started, what was the hosting situation like? I ask because outside of Heroku, nodejistu and others it is slim pickings and $$$$ for just a play.
[06:03] michaelmartinez: or am I wrong, I wouldn't mind being wrong/
[06:03] tjmehta has joined the channel
[06:03] CrypticSwarm has joined the channel
[06:03] maxogden: well theres no.de and azure also
[06:04] hermanjunge: to decode an url in nodejs?
[06:04] hermanjunge: :D
[06:05] maxogden: hermanjunge: require('url').parse()
[06:05] michaelmartinez: HA !!
[06:05] hermanjunge: excellent! beer for you maxogden
[06:05] maxogden: easiest beer ever
[06:06] jesusabdullah: michaelmartinez: "outside of people that are hosting node.js I can't find ANYONE hosting node.js!"
[06:06] jesusabdullah: ;)
[06:06] SamuraiJack has joined the channel
[06:06] crewmoss: maxogden: how do I build a cms tool? ;-)
[06:06] jesusabdullah: michaelmartinez: it was probably, like, just engine yard and maybe a few others back in the beginning.
[06:06] hermanjunge: hey hey
[06:06] crewmoss: It's worth another beer.
[06:06] hermanjunge: question
[06:06] michaelmartinez: I ask because I just got done talking to my host who dose support RoR among others and I didn't think it was always like that.
[06:06] jesusabdullah: michaelmartinez: Also, we have rackspace, etc. now
[06:07] hermanjunge: I have this encoded param %6a%6d...
[06:07] hermanjunge: how do I transform it into text?
[06:07] hermanjunge: using nodejs of course
[06:07] hermanjunge: is there some single param for that?
[06:07] michaelmartinez: Ok, laugh it up... fuckers. HAHAHA!
[06:07] jesusabdullah: ohohohohoho
[06:08] jesusabdullah: michaelmartinez: fyi getting into nodejitsu's beta is pretty easy <_<;
[06:09] dve has joined the channel
[06:09] nmir has joined the channel
[06:09] jesusabdullah: hermanjunge: decodeURI
[06:09] michaelmartinez: Gracias... I appreciate it.
[06:09] jesusabdullah: michaelmartinez: #nodejitsu
[06:09] jesusabdullah: is our channel
[06:09] jesusabdullah: ACTION gives michaelmartinez a thumbs up!
[06:10] alm0nd has joined the channel
[06:10] ditesh|cassini has joined the channel
[06:11] hermanjunge: cool
[06:11] hermanjunge: gracias Joshua
[06:11] hermanjunge: a Pepsi for you!
[06:11] coyo has joined the channel
[06:11] coyo has joined the channel
[06:12] michaelmartinez: Did any of you catch this? http://t.co/y8D2dGHq
[06:12] devaholic has joined the channel
[06:12] michaelmartinez: The Rant
[06:12] codepal_ has joined the channel
[06:13] michaelmartinez: I have zero historical context as I mainly live on the client and only now jumping in on the backend
[06:14] boehm has joined the channel
[06:14] triptec has joined the channel
[06:15] jesusabdullah: If there's one thing I agree with Zed Shaw about, it's that Giles Bowkett is kind of a douche <_<
[06:15] jesusabdullah: not as big a douche as Zed of course!
[06:15] jesusabdullah: and really I shouldn't throw such terms around so lightly
[06:15] jesusabdullah: He's probably a nice guy in real life
[06:16] michaelmartinez: You could have said douche nozzle which would have been worse, fyi.
[06:16] nmir: ACTION wonders why everytime he is in here there are people talking about people talking about programming, instead of actually, well... programming.
[06:16] nmir has left the channel
[06:16] jesusabdullah: nmir: I program by day
[06:16] jesusabdullah: and shoot the shit by night
[06:16] jesusabdullah: also, tech support
[06:16] EyePulp has joined the channel
[06:17] michaelmartinez: I pomodoro while the kids are in bed. I actually drive a fire engine for my real job.
[06:17] EvRide1 has joined the channel
[06:18] jesusabdullah: really?
[06:18] jesusabdullah: cool!
[06:18] Nuck: UUuuugh
[06:18] jesusabdullah: I used to be a grad student
[06:18] Nuck: ACTION punts his server
[06:18] jesusabdullah: I coded as a grad student too but it was science stuff
[06:18] michaelmartinez: Yeah. I am a bona fide Tucson Fire Fighter
[06:18] jesusabdullah: node was my off-time thing
[06:18] jesusabdullah: Tuscon, eh? A lot of my dad's family is from Tuscon
[06:18] Nuck: michaelmartinez: What's the biggest thing you've had nearly kill you?
[06:18] michaelmartinez: But I writes apps and shit as a side gig
[06:18] Nuck: :P
[06:19] jesusabdullah: word
[06:20] michaelmartinez: Nuck: MRSA
[06:21] Nuck: Teh flesh-eating bacteria?
[06:21] Nuck: That's a pretty small thing, I'd think.
[06:21] michaelmartinez: Yeah, but deadly as a roof collapse
[06:21] jesusabdullah: possibly MORE deadly than a roof collapse!
[06:21] Nuck: very true :P
[06:22] Nuck: Was it a burning BART train?
[06:22] Nuck: :D
[06:22] michaelmartinez: HA!
[06:23] michaelmartinez: I found this dudes tuts Pedro Teixeira are they any good?
[06:23] jesusabdullah: Yeah, they're pretty good
[06:23] jesusabdullah: from what I've seen
[06:23] jesusabdullah: Pedro's a cool guy
[06:23] michaelmartinez: Cool I DL'ed the shit out of them.
[06:23] jesusabdullah: haha
[06:24] tylerstalder has joined the channel
[06:24] jesusabdullah: He wrote https://github.com/flatiron/nock which is pretty nice imo, so, like, the dude can definitely code
[06:25] michaelmartinez: Alright I am back at it, then to bed. I hope to visit with you fine gents another evening. Thanks for the heads up Jesus. (Nobody fcks with the Jesus)
[06:25] jesusabdullah: hahaha
[06:25] jesusabdullah: night dude
[06:27] garrensmith has joined the channel
[06:30] skylamer` has joined the channel
[06:31] niloy: is there any way to get the current line being executed in javascript?
[06:32] takahashi_hisano has joined the channel
[06:32] takahashi_hisano has left the channel
[06:33] jesusabdullah: console.trace() ?
[06:33] takahashi_hisano has joined the channel
[06:33] jp232 has joined the channel
[06:34] SomeoneWeird: is there a channel for ejs?
[06:34] tonist has joined the channel
[06:35] jesusabdullah: I don't think so
[06:35] jesusabdullah: but you can ask ejs questions here
[06:35] jesusabdullah: or in express's channel
[06:35] jesusabdullah: whichever you feel is most appropriate
[06:35] jesusabdullah: also #javascript I'm sure
[06:35] takahashi_hisano has left the channel
[06:35] SomeoneWeird: aight thanks
[06:36] lz: nuck, http://nodejs.org/docs/v0.3.1/api/fs.html#fs.unlink
[06:36] addisonj has joined the channel
[06:38] Nuck: lz: I'm just using rimraf now
[06:38] lz: ic
[06:38] lz: there's also fs.rmdir
[06:39] jesusabdullah: but rimraf is rm -rf
[06:39] jesusabdullah: so it's really the least resistful.
[06:39] jesusabdullah: except for a reboot of course
[06:39] jesusabdullah: console.log("Dear user, please reboot your computer and then restart this script.");
[06:39] jesusabdullah: haha :)
[06:41] lz: just cause a kernel panic
[06:41] lz: there should be a npm module for that
[06:41] c0smikdebris has joined the channel
[06:42] markdaws has joined the channel
[06:42] jesusabdullah: but you'd have to make it cross-platform
[06:42] jesusabdullah: "What? Flagrant error?!"
[06:42] hermanjunge: Object sorting?
[06:42] b_d has joined the channel
[06:42] lz: haha
[06:42] lz: my favorite
[06:42] hermanjunge: {a: 5, b: 1, c: 7}
[06:42] lz: "catastrophic failure"
[06:42] jesusabdullah: "Oh, everything's fine! That's good to know."
[06:43] hermanjunge: returns [b, a, c]
[06:43] shipit_ has joined the channel
[06:43] hermanjunge: ? anyone?
[06:43] jesusabdullah: hermanjunge: Object.keys(obj).sort(function (a, b) { return obj[a] - obj[b]; })
[06:43] hermanjunge: genius!
[06:43] lz: XD
[06:43] jesusabdullah: or some such
[06:44] teej has joined the channel
[06:44] jesusabdullah: .. var obj = { a: 5, b: 1, c: 7 }; Object.keys(obj).sort(function (a, b) { return obj[a]-obj[b]; })
[06:44] Behi has joined the channel
[06:44] jesusabdullah: bahhh
[06:44] jesusabdullah: .. "hello world"
[06:45] jesusabdullah: I thought there was an eval bot in here?
[06:45] M1l3n1um has joined the channel
[06:45] jesusabdullah: oh well
[06:45] lz: function (fred) { return [fred[b],fred[a],fred[c]] ) this works too
[06:45] hermanjunge: what?
[06:45] tuhoojabotti: Yes there was.
[06:45] jesusabdullah: lz: cheater.
[06:45] jesusabdullah: ;)
[06:45] lz: don't blame da playa blame da game
[06:45] context: michaelmartinez: good read
[06:45] tornad has joined the channel
[06:46] lz has left the channel
[06:47] tonist_ has joined the channel
[06:47] hermanjunge: you used Object.keys
[06:47] hermanjunge: How can I sort by values?
[06:47] ashishg has joined the channel
[06:47] teej: Hello everyone.
[06:47] hermanjunge: hi
[06:48] tuhoojabotti: hermanjunge: It does sort by values.
[06:48] hermanjunge: bah
[06:48] hermanjunge: sorry
[06:48] hermanjunge: I was doing it by hand step by step
[06:48] odinswand has joined the channel
[06:50] teej has joined the channel
[06:51] indexzero has joined the channel
[06:51] hermanjunge: what does the hyphen at the middle means?
[06:52] criswell has joined the channel
[06:52] hermanjunge: obj[a]-obj[b]
[06:53] teej has left the channel
[06:53] tuhoojabotti: hermanjunge: a minus b ?
[06:53] hermanjunge: yeah?
[06:53] hermanjunge: Object.keys(obj).sort(function (a, b) { return obj[a]-obj[b]; })
[06:53] tuhoojabotti: a's value minus b's value
[06:54] tuhoojabotti: that's how sort works
[06:54] hermanjunge: in that expression
[06:54] fairwinds has joined the channel
[06:55] M1l3n1um has joined the channel
[06:56] M1l3n1um has joined the channel
[06:56] markbao_ has joined the channel
[06:56] jesusabdullah: Yeah hermanjunge, it's subtraction. Basically, if the return value is 0 they're the same, if the return value is positive then a > b, and if it's less than 0, well, y'know
[06:57] jesusabdullah: hermanjunge: and .sort uses this return value to sort accordingly.
[06:57] harthur has joined the channel
[06:57] jesusabdullah: and, I mean, you don't *have* to do subtraction if you want to sort by different criteria
[06:58] konobi: lexigraphically!
[06:58] jesusabdullah: also, if you don't pass a function to sort, it sorts in alphabetical order
[06:58] jesusabdullah: That's the word!
[06:58] jesusabdullah: This time, bird is NOT the word
[06:58] mikeal has joined the channel
[06:58] M1l3n1um has joined the channel
[06:58] pvankouteren has joined the channel
[06:59] blissdev has joined the channel
[06:59] Qzen has joined the channel
[07:00] gut4 has joined the channel
[07:00] nicholasf has joined the channel
[07:01] maxogden: lexicographically*
[07:02] mikeal1 has joined the channel
[07:02] M1l3n1um has joined the channel
[07:02] jesusabdullah: close enough
[07:04] hermanjunge: cool
[07:04] hermanjunge: thanks for the explanation
[07:06] sdwrage has left the channel
[07:07] jesusabdullah: no prob :)
[07:08] jesusabdullah: I know this because a common js "pitfall" is to assume that the default sort is numerical in nature (which will of course bite you in the ass later)
[07:08] jdeibele has joined the channel
[07:08] joshontheweb has joined the channel
[07:09] pid1 has joined the channel
[07:13] arnorhs has joined the channel
[07:14] pradeebv has joined the channel
[07:15] stagas has joined the channel
[07:19] graeme_f has joined the channel
[07:20] gorekee has joined the channel
[07:21] rurufufuss has joined the channel
[07:22] lakkris has joined the channel
[07:23] munichlinux has joined the channel
[07:26] dgathright has joined the channel
[07:26] aliem has joined the channel
[07:27] TheEmpath2 has joined the channel
[07:27] TheEmpath2: hail nodelings
[07:28] TheEmpath2: does an ssh chat server exist for nodejs yet?
[07:30] jesusabdullah: ssh?
[07:30] jesusabdullah: naw, that's a hard problem
[07:30] jesusabdullah: chat server? Those are easy!
[07:31] maletor has joined the channel
[07:31] yesudeep has joined the channel
[07:33] jewer has joined the channel
[07:37] ph^ has joined the channel
[07:42] tornad has joined the channel
[07:44] Morkel has joined the channel
[07:46] stephank has joined the channel
[07:47] dannyamey has joined the channel
[07:49] jiboumans_ has joined the channel
[07:51] fangel has joined the channel
[07:53] AvianFlu has joined the channel
[07:54] baradas_ has joined the channel
[07:55] mschneider has joined the channel
[07:55] spolu has joined the channel
[07:56] spolu_ has joined the channel
[07:57] skm has joined the channel
[07:58] coyo has joined the channel
[07:58] coyo has joined the channel
[07:58] mikeric has joined the channel
[08:02] simenbrekken has joined the channel
[08:02] mraleph1 has joined the channel
[08:06] tvw has joined the channel
[08:10] Hanspolo has joined the channel
[08:10] AdamSeabrook has joined the channel
[08:10] gigafied has joined the channel
[08:10] Skaag has joined the channel
[08:11] thalll has joined the channel
[08:12] odinswand has joined the channel
[08:15] jldbasa has joined the channel
[08:16] duffman has joined the channel
[08:17] k1ttty has joined the channel
[08:18] hipsterslapfight has joined the channel
[08:18] margle has joined the channel
[08:19] herbySk has joined the channel
[08:19] emattias has joined the channel
[08:19] Skola has joined the channel
[08:20] saurb has left the channel
[08:21] dobber has joined the channel
[08:21] Nuck: Okay, so, I have a server I want to run on Port 80, but I don't want to run it as root, I want to keep everything on my Node.js-specific user, is there any magic way or a guide to this kind of deployment?
[08:22] Nuck: Of course, in an ideal world, everything would be run as nobody
[08:22] ccare has joined the channel
[08:23] Epeli: just bind to some random port and redirect it to 80 using iptables
[08:24] Epeli: that way nothing has to run as root. Not even at start up.
[08:24] Doikor: or use authbind
[08:26] gorekee has joined the channel
[08:27] JohnnyL has joined the channel
[08:27] EvRide1 has left the channel
[08:29] [AD]Turbo has joined the channel
[08:29] [AD]Turbo: hola
[08:29] felixhummel has joined the channel
[08:30] Qalqi has joined the channel
[08:32] simenbrekken: Nuck: Something like this: sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
[08:33] benjixx has joined the channel
[08:34] lackac has joined the channel
[08:35] Nss has joined the channel
[08:35] yawNO has joined the channel
[08:36] yawNO: hai
[08:36] yawNO: :|
[08:36] madhums has joined the channel
[08:36] jomoho has joined the channel
[08:37] stonebranch has joined the channel
[08:37] salva has joined the channel
[08:38] jkridner___ has joined the channel
[08:38] johnhamelink has joined the channel
[08:38] jiboumans_ has joined the channel
[08:38] hasenj has joined the channel
[08:41] Wizek has joined the channel
[08:42] yawNO has joined the channel
[08:44] Blkt has joined the channel
[08:45] robhawkes has joined the channel
[08:46] TomY has joined the channel
[08:46] tonist has joined the channel
[08:51] slaskis has joined the channel
[08:52] admin_ has joined the channel
[08:52] paera has joined the channel
[08:52] paera has left the channel
[08:53] eddyb: is there a way to watch a bunch of files, with as fast as possible response and as little as possible resource usage?
[08:54] eddyb: I wouldn't mind 0% CPU usage :)
[08:54] Emmanuel`: I think Linux has some ways of doing that
[08:55] raphael has joined the channel
[08:55] Tricks_ has joined the channel
[08:55] tuhoojabotti: How do I read post data with express
[08:56] skm has joined the channel
[08:56] tuhoojabotti: req.params hmm no
[08:56] Nuck: tuhoojabotti: req.body
[08:56] gorekee has joined the channel
[08:56] tuhoojabotti: I see, ok.
[08:56] Nuck: with the BodyParser middleware enabled
[08:57] tuhoojabotti: Yes.
[08:57] uchuff has joined the channel
[08:57] sriley: inotify will let you know about changes to files (linux only), osx has something similar, windows not a clue
[08:57] JohnnyL: in windows it's an api call.
[08:57] uchuff has joined the channel
[08:57] tuhoojabotti: thanks
[08:58] JohnnyL: there is a demo in there winapi (for boilerplate code,etc)
[08:58] JohnnyL: opps
[08:58] JohnnyL: there is a demo in there MSN dev network. (for boilerplate code,etc)
[08:58] sriley: thought it would, linux is only place i need things like that, i like to keep my dev env close to my prod env
[08:59] whitman has joined the channel
[09:00] robm has joined the channel
[09:01] graeme_f has joined the channel
[09:01] rio{ has joined the channel
[09:01] stafamus has joined the channel
[09:02] janjongboom has joined the channel
[09:04] hipsterslapfight has joined the channel
[09:05] dve has joined the channel
[09:05] jetienne_ has joined the channel
[09:07] josh-k has joined the channel
[09:11] benvie: node-ffi
[09:11] ohtogo has joined the channel
[09:12] hackband has joined the channel
[09:12] robi42 has joined the channel
[09:14] riven has joined the channel
[09:14] riven has joined the channel
[09:14] arnorhs has joined the channel
[09:15] robinduckett has joined the channel
[09:17] JohnnyL: what is the state of affairs in multicore (parallel and also concurrency) under JavaScript (last I heard it was Agent based messaging) ?
[09:19] __doc__ has joined the channel
[09:19] sandfox has joined the channel
[09:20] skylamer` has joined the channel
[09:22] rendar has joined the channel
[09:22] c0smikdebris has joined the channel
[09:23] kwmiebach has joined the channel
[09:23] jimmysparkle has joined the channel
[09:23] baradas has joined the channel
[09:23] jimmy- has joined the channel
[09:24] vguerra has joined the channel
[09:25] Daegalus: Does anyone know if there is an example library or script to encode/decode Base62 (lowercase, uppercase, and numbers) for URL shortening?
[09:25] torvalamo: base 62?
[09:25] torvalamo: not 64?
[09:25] boltR has joined the channel
[09:26] Daegalus: BASE62 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
[09:26] Daegalus: 1234567890 -> bv8h5u
[09:26] Daegalus: its for shortening
[09:26] torvalamo: 64 is more common
[09:26] benvie: http://140byt.es/keywords/encode
[09:27] Daegalus: I dont need common, and 64 produces longer results for some reason
[09:28] torvalamo: base64 has atob() and btoa()
[09:28] torvalamo: 64 doesn't produce longer results, that's nonsense
[09:29] Daegalus: MTIzNDU2Nzg5MA== vs bv8h5u for 1234567890
[09:29] torvalamo: .. atob('1234567890')
[09:29] alm0nd has joined the channel
[09:29] torvalamo: ... atob('1234567890')
[09:30] benvie: .. Buffer('1234567890').toString('base64')
[09:30] torvalamo: oh catbot isn't alive
[09:30] benvie: catbot is gone
[09:30] benvie: OH NO
[09:30] skylamer`: .. "eqweqwreqwrewrt/fdgfdasd/?".replace('/?/gi', '')
[09:30] benvie: this is a tragedy beyond measure
[09:30] skylamer`: .. "eqweqwreqwrewrt/fdgfdasd/?".replace('?', '')
[09:30] skylamer`: hmmm
[09:33] Nuck: I can quickly bring v8bot on?
[09:33] Daegalus: benvie: the issue is, while tehre is an encode, there is no decode, but it shouldn't be too hard to reverse what the encode does
[09:33] benvie: you must or all hope is lost
[09:33] skylamer`: Why isnt replaceing the '?'s
[09:33] benvie: http://140byt.es/keywords/base64
[09:33] benvie: there's a decode there
[09:33] v8bot_ has joined the channel
[09:34] Daegalus: thats 64, which is built in with atob btoa, im talking about 62
[09:34] benvie: oh
[09:34] benvie: well you'll have more trouble locating that
[09:34] Nuck: skylamer`: Because without the global flag on a regex, it won't replace all of them
[09:34] Nuck: skylamer`: Try using a regex (remove the quotes)
[09:34] Daegalus: its on that same page benvie, on the left, but its an encoder with no decode
[09:34] Nuck: Also, ? is a special character in regexes, so you problably want /\?/g
[09:35] benvie: oh there's a base62 one? cool
[09:35] Daegalus: .. atob('1234567890')
[09:35] Daegalus: i thought thats why you linked it :P
[09:35] Nuck: v8: 'Test? Test?'.replace(/\?/g, '!');
[09:35] v8bot_: Nuck:
[09:35] benvie: haha
[09:35] Nuck: ಠ_ಠ
[09:35] benvie: I didn't even notice the discussion was about base62
[09:36] sandfox has joined the channel
[09:36] skylamer`: i fixed it
[09:36] skylamer`: :)
[09:36] Nuck: Is it weird that my entire reverse proxy consists of a bunch of nested switches?
[09:36] Daegalus: v8: atob('1234567890')
[09:36] v8bot_: Daegalus:
[09:36] Nuck: Like, I just take the URL, split on dots, reverse it, and proxy away
[09:36] Daegalus: v8bot is borked
[09:37] Nuck: Clearly o_O
[09:37] Nuck: Lemme try running it on 0.4
[09:37] torvalamo: your base62 thingy stores base64 characters as 8-bit ascii entities (or 16/32/64 bit depending on the system and string encoding)
[09:37] torvalamo: base 62 character*
[09:37] torvalamo: base64 stores it as 6 bits per character + some metadata
[09:37] torvalamo: the metadata will be smaller as the text gets bigger
[09:37] benvie: yeah it's important to note that displayed character amount !== bytes taken in memory
[09:38] Daegalus: but this will be a fixed size set of numbers.
[09:38] v8bot_ has joined the channel
[09:38] Nuck: v8: 'test'
[09:38] v8bot_: Nuck: "test"
[09:38] Daegalus: v8: atob('1234567890')
[09:38] v8bot_: Daegalus: ReferenceError: atob is not defined
[09:38] torvalamo: however you represent base62 it isn't built in to js, so you will always end up with full-size characters
[09:39] benvie: base62 and base64 are only significantly different in size when you're trying to print them out
[09:39] benvie: which you obviously wouldn't be in actual usage
[09:39] stafamus has joined the channel
[09:39] benvie: if you're in node use thise for the best
[09:39] aranw has joined the channel
[09:39] skylamer`: v8: console.log('mmmm')
[09:39] v8bot_: skylamer`: CONSOLE: ["mmmm"], OUTPUT: undefined
[09:39] Daegalus: umm, this is all for URL shortening. so i can take something like this: /build/1920381230918319024193912803 and convert it to something like this: /build/b8h28anA82
[09:39] yumike has joined the channel
[09:39] benvie: Buffer.byteLength(aString)
[09:40] skylamer`: v8: 1+1=3
[09:40] v8bot_: skylamer`: ReferenceError: Invalid left-hand side in assignment
[09:40] Daegalus: i forget v8 doesnt have atob apparently
[09:40] torvalamo: base62 uses 6 bits per character exactly as base64, except base64 uses the full 6 bits, whereas base62 uses every possible combination except two.. that's inefficiency that is not acceptable to people with OCD. just so you know
[09:40] benvie: Buffer(someString).toString('base64')
[09:40] Nuck: Daegalus: atob?
[09:40] Daegalus: http://javascript.gakaa.com/global-atob-4-0-5-2-0-btoa-4-0-5-.aspx
[09:41] benvie: Buffer(someBase64).toString('binary')
[09:42] davidbanham has joined the channel
[09:43] sandfox has joined the channel
[09:44] gavin_huang has joined the channel
[09:46] `3rdEden has joined the channel
[09:46] endow has joined the channel
[09:47] sandfox_ has joined the channel
[09:47] Shrink has joined the channel
[09:47] Shrink has joined the channel
[09:51] Chel: question: how to sync 2 mongodb bases ? development and production?
[09:51] adambeynon has joined the channel
[09:52] Nuck: Okay, I have a major problem arising in my startup, and I want to nip it in the bud immediately
[09:52] Nuck: symlinks on Windows.
[09:52] Nuck: I need them.
[09:52] konobi: Nuck: hhahahahahahahaha
[09:52] Nuck: Any solutions discovered for this (that work on XP)
[09:52] Nuck: konobi: Inorite?
[09:53] timoxley: Daegalus FWIW there's an atob/btoa polyfill in sugarjs which gives you global atob/btoa
[09:53] Nuck: My colleague is stuck on a shared PC with naught but Windows XP
[09:53] konobi: there's ntfs links... but they're bizarre and strange
[09:53] konobi: Nuck: get him to boot a live image from a usb stick
[09:53] Nuck: I have this ginormous folder filled with little tools we use in just about every codebase
[09:53] Daegalus: timoxley: thats fine. Im not going to use base64, since the output string is longer than a base62 encode.
[09:53] Nuck: That's actually not a bad idea... I might suggest that to him, I hadn't thought of it...
[09:54] margle has joined the channel
[09:54] konobi: either that... or ship him a cheap linux capable laptop
[09:54] orkz has joined the channel
[09:54] Nuck: konobi: I wish we could make some hacky-ass solution for Windows
[09:54] lperrin has joined the channel
[09:54] Nuck: That would Just Work
[09:54] konobi: Nuck: don't... win32 is a world of hurt
[09:54] timoxley: Nuck or just wave some string magnets near the hard drive. that will hopefully kill most of the cancer and he won't even know you've given him the therapy
[09:55] timoxley: s/string/strong
[09:55] Nuck: lol timoxley
[09:55] Nuck: He's across the country, otherwise I'd have handed him my old laptop ;)
[09:55] benvie: can't node do symlinks on windows now?
[09:55] benvie: thought it coul
[09:56] konobi: Nuck: shipping is cheap
[09:56] konobi: windows doesn't have symlinks
[09:56] Doikor: yes it does
[09:56] Nuck: What about Shortcuts?
[09:56] benvie: oh it doesn't
[09:56] konobi: NTFS has "kinda" an idea of symlinks... but it's not the same
[09:57] benvie: C:\Users\Brandon>mklink /?
[09:57] benvie: Creates a symbolic link.
[09:57] benvie: MKLINK [[/D] | [/H] | [/J]] Link Target
[09:57] benvie: symbolic link.
[09:57] benvie: Link specifies the new symbolic link name.
[09:57] benvie: Target specifies the path (relative or absolute) that the new link
[09:57] benvie: refers to.
[09:57] Nuck: Would it be possible to fake it with Shortcuts?
[09:57] konobi: shortcuts are not an FS level thing
[09:57] Nuck: I know, but I only need a solution that works in Node :P
[09:57] hz has joined the channel
[09:57] konobi: Nuck: just ship him the damn laptop
[09:57] konobi: =0P
[09:58] Nuck: heh, I actually already promised my laptop to somebody else, anyways
[09:58] Nuck: Hopefully to shut my brother up and make him stop bitching :D
[09:58] benvie: require('child_process').exec('mklink '+link+' '+target)
[09:58] konobi: hell a netbook is $400
[09:58] whitman: Can anyone point to any good examples of creating/using UNIX sockets?
[09:58] Nuck: $400 more than my startup currently has :P
[09:58] konobi: probably even cheaper these days
[09:59] konobi: Nuck: leasing++
[09:59] benvie: I have a module built for doing command line stuff on windows
[09:59] benvie: it's called...windows
[09:59] benvie: npm install windows
[09:59] blup has joined the channel
[10:00] Nuck: Flash drive Ubuntu sounds like the best possible solution
[10:00] Nuck: If I can coerce him to do that, I'll be golden ;D
[10:00] traph has joined the channel
[10:00] konobi: there's always virtualbox too
[10:00] salva1 has joined the channel
[10:01] benvie: i mean really
[10:01] arnorhs has joined the channel
[10:01] Nuck: benvie: Sadly, symlinks only work on Windows 7, IIRC
[10:02] Nuck: With the latest NTFS
[10:03] benvie: oh yes well
[10:03] benvie: life will suck until he's off xp =D
[10:03] konobi: NTFS Junction Points
[10:03] benvie: yeah
[10:03] benvie: that's the only other thing
[10:03] konobi: iirc, they were only available for directories
[10:03] benvie: which is not what you wanted if i recall
[10:04] tonist has joined the channel
[10:04] [[zzz]] has joined the channel
[10:04] konobi: yup... directory only
[10:04] benvie: although a .lnk file on windows is a lot closer to a symlink than most people realize
[10:05] davidbanham has joined the channel
[10:05] benvie: because of how thoroughly the os enforces resolving it and keeping it synched with drive changes
[10:05] nmir has joined the channel
[10:05] aaronmcadam has joined the channel
[10:05] FredrIQ has joined the channel
[10:05] eldios has joined the channel
[10:06] benvie: like yuo can email your laptop a .lnk file and it'll find its way to pointing back to your computer and the original file if you're on the same network
[10:06] davidbanham has joined the channel
[10:06] benvie: kind of funny
[10:06] eldios: benvie, how?
[10:07] medberry has joined the channel
[10:07] medberry has joined the channel
[10:07] eldios: with an SMB/CIFS/NFS route inside the .lnk file'
[10:07] i42n has joined the channel
[10:07] eldios: with an SMB/CIFS/NFS route inside the .lnk file?
[10:07] paera1 has joined the channel
[10:07] blup_ has joined the channel
[10:07] odinswand has joined the channel
[10:07] benvie: because it has your computer identity and that's about all it needs to resolve it
[10:07] booyaa_ has joined the channel
[10:07] benvie: it's tenacious
[10:07] kuya_ has joined the channel
[10:07] konobi: sounds like magical bullshit to me
[10:07] benvie: and its the default windows behavior so you can count on any doing doing it
[10:07] paera1 has left the channel
[10:08] konobi: =0P
[10:08] benvie: I'm not saying like across the ends of the earth and depths of time
[10:08] benvie: but at least on the same network, it will do it
[10:08] eldios: id you actually tried this?
[10:08] eldios: I'm curious about what there actually is inside that .lnk
[10:08] pickels has joined the channel
[10:09] benvie: yeah the way I found out was when I couldn't for the life of me copy a link to another computer to have a copy on that computer use it
[10:09] benvie: it kept pointing back to the original file on my computer
[10:09] eldios: it's long time since I looked inside one (XP) but at that time there was only a "local URL"
[10:09] benvie: no matter what I did
[10:09] benvie: if I was on the same network
[10:09] dve has joined the channel
[10:09] benvie: and i looked it up and sure enough
[10:10] TXH350 has joined the channel
[10:10] davidwalsh has joined the channel
[10:10] eldios: with no auth request?
[10:10] jldbasa has joined the channel
[10:11] benvie: Unlike symbolic links, Windows shortcuts maintain their references to their targets even when the target is moved or renamed. Windows domain clients may subscribe to a Windows service called Distributed Link Tracking to track the changes in files and folders to which they are interested. The service maintains the integrity of shortcuts, even when files and folders are moved across the network.
[10:11] benvie: Additionally, in Windows 9x and later, Windows shell tries to find the target of a broken shortcut before proposing to delete it.
[10:11] benvie: well I dunno, this was on 7
[10:11] sandfox has joined the channel
[10:12] konobi: ...magical bullshit...
[10:12] benvie: I didn't do anything to set that distributed shit up though
[10:12] vguerra has joined the channel
[10:12] jskulski has joined the channel
[10:13] benvie: the thing with windows is that all these shells objects are tracked in multiple places
[10:13] benvie: it's not just in the file
[10:13] eldios: benvie, could you please make a try for me? =)
[10:13] benvie: it's like the goddamn matrix
[10:13] eldios: make a copy of that file
[10:13] eldios: and edit it
[10:14] konobi: ircretary: when was caolanm last here?
[10:14] ircretary: konobi: caolanm was last seen at 2012-02-23T01:29:55.123Z, joining #Node.js
[10:14] benvie: a .lnk file?
[10:14] eldios: yes
[10:14] eldios: should be a plain text file inside
[10:14] eldios: is it, right?
[10:14] skylamer`: ircretary: when was ryah last here?
[10:14] ircretary: skylamer`: ryah was last seen at 2012-02-14T18:22:09.267Z, joining #Node.js
[10:14] Daegalus: benvie, torvalamo, Nuck: for future reference, if anyone asks for base 36, 62, or 75 encoding/conversion: https://gist.github.com/1899934
[10:14] benvie: it's a bit more than that, it actually can be hard to decode
[10:15] eldios: mm.. weird
[10:15] eldios: nvm then
[10:15] eldios: I will try this by myself
[10:15] salva has joined the channel
[10:15] konobi: benvie: so you open it up and it's it's own file... not an _actual_ symlink
[10:15] pradeebv has joined the channel
[10:15] benvie: lemme see if I can find the reference I had for it
[10:15] benvie: nonno
[10:15] benvie: it's just got a buttload of metadata in it
[10:16] konobi: bingo... (i'll refer to my ealier statement)
[10:16] benvie: I had a thingt hat showed the protocol
[10:16] cosmincx has joined the channel
[10:16] benvie: I'm going to make a think to decode/encode them when I have a few hours
[10:17] konobi: unless it works transparently at the C level, i son't think it'll work for node
[10:17] salva1 has joined the channel
[10:18] aranw has joined the channel
[10:18] wbednarski has joined the channel
[10:18] rudolfrck has joined the channel
[10:18] benvie: well no I'll just decode the raw bytes
[10:19] benvie: like I did with this
[10:19] benvie: https://github.com/Benvie/font
[10:19] ppcano has joined the channel
[10:19] Guest41659 has joined the channel
[10:21] gdbz has joined the channel
[10:23] michaelmartinez has joined the channel
[10:27] Nuck: konobi: It'd be a nice thing to just have Node detect .lnk files and resolve them like symlinks, though
[10:27] tomaz has joined the channel
[10:27] Nuck: Because it's the closest thing to a symlink on Windows, and symlinks on Winodws seem to be a commonly-requested thing
[10:27] benvie: actually a think on my list of todos is bindings for this http://dokan-dev.net/en/
[10:28] Doikor: Nuck: whats exacly wrong with mklink?
[10:28] konobi: Nuck: doubtful
[10:28] benvie: which would allow mounting usemode filesystem a la fuse
[10:28] Doikor: other then it only working on vista/7
[10:28] nmir: benvie: font looks interesting, what can you do with it?
[10:28] larsschenk has joined the channel
[10:28] ningu has joined the channel
[10:28] Nuck: Doikor: Only works on Vista/7 :P
[10:28] nmir: like, what was the purpose of parsing the metadata
[10:29] Nuck: Doikor: And is only with NTFS drives too
[10:29] larsschenk has left the channel
[10:29] benvie: you can create filesystem objects that proxy through you basically
[10:29] Eruadan has joined the channel
[10:29] raphael_ has joined the channel
[10:29] benvie: mount points can be drives or folders
[10:29] benvie: basically every option would come in as acallback
[10:29] Doikor: Nuck: if you are still running xp its time to go forward in time. And the ntfs only sucks though
[10:29] Nuck: konobi: I wonder if there might be a way to cram this down the throat of the fs module?
[10:29] Doikor: using xp is like running a 2.2 series linux kernel
[10:29] benvie: so you can create virtual file systems that mount arbitrary data
[10:30] benvie: and present it as normal filesystem
[10:30] Nuck: Doikor: Yeah, not my computer :P
[10:30] benvie: like you could write an adapter for a database or something
[10:30] konobi: Nuck: won't happen... _way_ too many edges
[10:30] benvie: or for sftp
[10:30] Nuck: konobi: Even for making a module that fills it?
[10:30] stagas has joined the channel
[10:31] konobi: Nuck: module... fine... but not core node... it needs to be purely at the pure FS layer
[10:31] konobi: (and that's C space)
[10:31] benvie: actually
[10:31] Nuck: konobi: Yeah, that's understandable
[10:31] benvie: dokan might do what you're trying to have done with the basic minimal example implementation it comes with
[10:31] Nuck: But I'm thinking if we could get a JavaScript parser for lnk files
[10:32] konobi: Nuck: node would still act on the lnk file though
[10:32] aslant has joined the channel
[10:32] Nuck: konobi: Not if I require('fs') and modify the things it outputs, due to caching, right?
[10:33] icebox has joined the channel
[10:33] konobi: Nuck: and all the internal C++/C/libuv interfaces too
[10:33] Nuck: And I dunno if require could be modified?
[10:33] benvie: yes it can
[10:33] Nuck: konobi: The biggest thing I'm looking at is simply the require stuff
[10:33] Nuck: If require can resolve through a .lnk, then I'm happy
[10:33] benvie: I know because I swap our node's core module system for one of my things
[10:33] konobi: Nuck: that might be doable
[10:34] benvie: you just need a simple patch to native module
[10:34] Nuck: In fact, I'd wager that handles most use-cases of symlinks that I've seen ;)
[10:34] benvie: so that all the path resolves go through you
[10:34] maritz has joined the channel
[10:34] benvie: I think all of them use path.resolve already for filesystem stuff right?
[10:34] benvie: most of them
[10:34] Qalqi has joined the channel
[10:34] benvie: so that's a single point that needs to be modified
[10:34] konobi: benvie: would be good to know if they didn't
[10:35] ningu: I use xp on my netbook because windows 7 is so slow on it
[10:35] Nuck: I don't see why we couldn't just put this on the libuv layer
[10:35] Qalqi: dont use windows
[10:35] pickels has joined the channel
[10:35] Nuck: I mean, isn't libuv all about abstracting away the silly differences between platforms?
[10:35] benvie: let me whip up a proof of concept here
[10:35] ningu: qalqi: not an option in my case, I don't use windows when I'm not using the netbook but for my field work I need windows
[10:36] maritz has joined the channel
[10:36] konobi: Nuck: when do you want to read the lnk directly vs not...
[10:36] ningu: I still want to know why libuv is called libuv
[10:36] Nuck: konobi: Aren't symlinks technically just implemented as files containing a reference to their target?
[10:37] socketio\test\80 has joined the channel
[10:37] ningu: but you can still e.g. delete a symlink
[10:37] mikl has joined the channel
[10:37] konobi: Nuck: no... they're different at the open(2) level... for example
[10:37] Nuck: I know hard links are handled as just two pointers to the same chunk of data, but symlinks are a lot softer
[10:38] Nuck: konobi: From what I can tell, symlinks and .lnk files are VERY similar, just abstracted on different levels?
[10:38] konobi: (ie: they're handled in-kernel)
[10:38] Nuck: .lnk depends on the application layer to handle it
[10:38] Nuck: Whereas symlinks are handled in-kernel
[10:38] baradas has joined the channel
[10:39] TomY has joined the channel
[10:39] konobi: Nuck: i'm telling you... it will _never_ happen in node itself
[10:39] Nuck: Hrm...
[10:39] arnorhs has joined the channel
[10:39] benvie: yeah I don't see it because it's not commonly supported elsewhere
[10:40] benvie: they're not looking to trailblaze
[10:40] Nuck: Fair enough
[10:40] benvie: but it's still a useful module
[10:40] Nuck: But if it requires a core patch to even function, it's not gonna be feasable
[10:40] benvie: oh it's feasible
[10:40] benvie: give me 20 mins
[10:40] Nuck: Not if it requires a core patch
[10:40] Nuck: It may be POSSIBLE
[10:41] Nuck: But it's not usable for just about any case
[10:41] konobi: monkey-patching would be frowned upon too
[10:41] Nuck: Yeah
[10:41] Nuck: If it could be handled entirely in a module, overloading the require resolver, THEN it could work
[10:41] benvie: well you got me there and the foundation of this requires some supreme monkeypatching
[10:41] benvie: well
[10:41] benvie: it doesn't require monkeypatching to work
[10:42] benvie: it just requires monkeypatching to ninja force all of node to use it
[10:42] Nuck: haha yeah
[10:42] konobi: yeah... at which point... everyone will say "yeah... not supported" for any strange use-cases
[10:42] tokumine has joined the channel
[10:42] konobi: s/use-cases/erros/
[10:46] fermion has joined the channel
[10:46] graeme_f has joined the channel
[10:47] larsschenk1 has joined the channel
[10:47] larsschenk1 has left the channel
[10:48] rickibalboa has joined the channel
[10:50] aesptux has joined the channel
[10:51] michaelhartau has joined the channel
[10:55] Blobofdoom has joined the channel
[10:56] Shrink has joined the channel
[10:58] benvie: https://gist.github.com/1900118
[11:00] orkz has joined the channel
[11:00] icebox: benvie: magic snippet? :)
[11:00] jetienne_ has joined the channel
[11:00] benvie: yeah I just need to get the extraction of the path from lnk format now
[11:01] benvie: http://download.microsoft.com/download/a/e/6/ae6e4142-aa58-45c6-8dcf-a657e5900cd3/Windows_Server_Protocols.zip
[11:01] benvie: er http://download.microsoft.com/download/a/e/6/ae6e4142-aa58-45c6-8dcf-a657e5900cd3/[MS-SHLLINK].pdf
[11:02] oht has joined the channel
[11:04] rauchg has joined the channel
[11:06] arnorhs has joined the channel
[11:07] dekub has left the channel
[11:08] hellp has joined the channel
[11:09] ningu: hmm, MS actually documented the .lnk format? that surprises me for some reason.
[11:09] ningu: I'd expect them to just do some magic with it and not bother saying what :)
[11:09] benvie: it was recent but yeah
[11:11] Doikor: ms been getting better about that recently
[11:11] benvie: yeah
[11:13] jetienne_ has joined the channel
[11:15] tonist has joined the channel
[11:15] bnoordhuis has joined the channel
[11:16] dlg: bnoordhuis: ola
[11:16] pouledodue has joined the channel
[11:17] jyp has joined the channel
[11:17] GodezInc has joined the channel
[11:18] dannyamey has joined the channel
[11:26] bnoordhuis: dlg: alo
[11:31] misza222 has joined the channel
[11:32] meso has joined the channel
[11:32] ICEBreakPoint has joined the channel
[11:34] zackattack has joined the channel
[11:36] davv3 has joined the channel
[11:36] wmage has joined the channel
[11:37] booyaa_: su -
[11:37] booyaa_: whoops
[11:38] ohtogo has joined the channel
[11:38] zeade has joined the channel
[11:39] socketio\test\71 has joined the channel
[11:40] sandfox has joined the channel
[11:42] jaw187 has joined the channel
[11:42] lperrin has joined the channel
[11:45] sandfox_ has joined the channel
[11:45] Behl has joined the channel
[11:46] ioNull has joined the channel
[11:46] enyovelcora has joined the channel
[11:46] enyovelcora: Hi everybody. Is there a way to tell if a directory is writable with the fs module?
[11:47] enyovelcora: Didn't find anything in the docs
[11:47] jxie has joined the channel
[11:47] enyovelcora: Do I have to try to save a file
[11:49] Hassard has joined the channel
[11:50] konobi: enyovelcora: stat
[11:51] enyovelcora: konobi: But where in the stat response do I see if it is writable?
[11:51] enyovelcora: I have this documentation: http://nodejs.org/docs/latest/api/fs.html#fs.Stats
[11:51] eddyb: if you know the mime-magic project: https://github.com/SaltwaterC/mime-magic/pull/3
[11:51] konobi: enyovelcora: mode
[11:51] artusrocha has joined the channel
[11:52] enyovelcora: Mh thanks.. what format of mode is this?
[11:52] satyr has joined the channel
[11:52] erichynds has joined the channel
[11:53] enyovelcora: I mean: I would have to know if I'm the user owning this dir, or if I'm in the group to actually know if it's writable, right?
[11:53] konobi: enyovelcora: octal
[11:54] dlg: bnoordhuis: theres a couple of issues on http-parser you could close now
[11:54] Eruadan has joined the channel
[11:54] bnoordhuis: dlg: which ones?
[11:55] dlg: 29?
[11:55] dlg: 74
[11:55] enyovelcora: konoboi: Mh.. sorry if I seem a bit dim-witted… but I only know file/directory with 3 octal digits… How am I supposed to interpret 33188
[11:55] bnoordhuis: dlg: what about #63?
[11:55] maritz: hm, for some reason my socket.io websocket is losing the connection quite regularly (it reconnects, but it's still annoying). any ideas what might go wrong?
[11:55] l_pottersky has joined the channel
[11:55] konobi: 33188 is the decimal representation
[11:55] lcm has joined the channel
[11:55] lcm has left the channel
[11:56] dlg: bnoordhuis: you wish you could close 63
[11:56] konobi: you need to convert to octal... and then it's normal checks
[11:56] enyovelcora: konobi: Ok.. sorry.. that was actually dim-witted. But I do have to know if I'm the owner or in the group, right?
[11:56] enyovelcora: Seems easier to just try to save a file
[11:56] konobi: enyovelcora: yup
[11:56] dlg: bnoordhuis: i think i pushed a fix for 26 to you too
[11:56] arnorhs has joined the channel
[11:56] arthurdebert has joined the channel
[11:56] konobi: there may also be other systme level stuff that means that you can't write either
[11:57] sandfox has joined the channel
[11:57] bnoordhuis: dlg: i don't see a test for #26
[11:58] lowerkey has joined the channel
[11:58] dlg: it was included in the commit to http_parser.c
[11:59] icebox: enyovelcora: the number 33188 is 0100644 in octal and that number ANDed with 07777 yields 644
[11:59] enyovelcora: icebox: thanks
[12:00] Eruadan has joined the channel
[12:00] Eruadan has joined the channel
[12:00] bnoordhuis: dlg: you mean https://github.com/joyent/http-parser/commit/6756842 ?
[12:00] JohnnyL: Eruadan: Does your name mean Earthmaster?
[12:01] dlg: yes
[12:01] skylamer` has joined the channel
[12:02] dlg: bnoordhuis: do you think you could close 67 because the guy has bad taste?
[12:02] mschneider has joined the channel
[12:03] TomY has joined the channel
[12:03] kmiyashiro has joined the channel
[12:03] d0k has joined the channel
[12:04] DrHeiter23 has joined the channel
[12:06] ts__ has joined the channel
[12:07] arthurdebert has joined the channel
[12:07] robi42 has joined the channel
[12:07] graeme_f has joined the channel
[12:10] CIA-102: libuv: 03Frank Denis 07master * rf6c8e78 10/ src/unix/darwin.c : Fix memory leak in uv_exepath() on OSX. - http://git.io/lLqUqw
[12:10] lowerkey: I'm using sequelize to store a date, does someone know whether there's a special trick to that?
[12:13] lowerkey: I tried contact.dob = new Date(Date.parse(dobStr)); like one example suggests, but I'm always returned an invalid date.
[12:14] wmage has joined the channel
[12:15] wmage has joined the channel
[12:15] stagas has joined the channel
[12:15] innociv has joined the channel
[12:16] jsull has joined the channel
[12:18] crutex has joined the channel
[12:18] crutex has joined the channel
[12:19] johnhamelink has joined the channel
[12:20] ppcano_ has joined the channel
[12:20] kwmiebach_ has joined the channel
[12:21] k1ttty has joined the channel
[12:22] francisl has joined the channel
[12:22] subhaze has joined the channel
[12:23] c0smikdebris has joined the channel
[12:28] wmage has joined the channel
[12:29] jyp has joined the channel
[12:30] stagas has joined the channel
[12:30] skylamer` has joined the channel
[12:32] jyp has joined the channel
[12:33] lowerkey: Could someone help me with this problem: http://stackoverflow.com/questions/9430728/how-to-store-a-date-in-sequelize
[12:33] infynyxx has joined the channel
[12:33] paera has joined the channel
[12:34] jyp has joined the channel
[12:34] enmand has joined the channel
[12:34] jaw187 has joined the channel
[12:37] Qalqi has joined the channel
[12:37] maritz: lowerkey: what does it actually save in the db?
[12:37] lowerkey: maritz: 0000-00-00 00:00:00
[12:37] maritz: that would be an invalid date :D
[12:38] maritz: either way, a quick look at the docs tells me that your input format is wrong
[12:39] maritz: DISREGARD ME I SUCK COCKS
[12:39] maritz: second method should work
[12:39] fairwinds has joined the channel
[12:40] gdbz: lol?
[12:41] lowerkey: maritz: for some reason it doesn't. When I contact.save() and immediately afterwards read the value, I get the formatDate() string, but it doesn't get stored in the db.
[12:41] maritz: lowerkey: actually, your function doesn't accept strings and should throw an exception
[12:41] cjroebuck has joined the channel
[12:41] jaw187 has left the channel
[12:41] maritz: so, i assume your code example isn't the actual code?! ;)
[12:41] lowerkey: maritz: no, it accepts a date object
[12:41] lowerkey: it is
[12:42] jyp has joined the channel
[12:42] maritz: uhm... you're passing a string to formatDate: contact.dob = formatDate(dobStr);
[12:42] lowerkey: oh wait
[12:42] lowerkey: it
[12:42] lowerkey: it's not
[12:42] lowerkey: that should be formatDate(new Date(req.param('dob'), null)))
[12:42] lowerkey: my bad
[12:42] Qalqi has joined the channel
[12:43] Eruadan has joined the channel
[12:43] Eruadan has joined the channel
[12:43] lowerkey: or formatDate(new Date(Date.parse(dobStr)))
[12:43] lowerkey: This one
[12:43] lowerkey: changing it in stackoverflow
[12:45] maritz: so, you're actually setting the date in the datetime format. in that case you could look at the SQL logs and see what's in the query. if that doesn't show you what's wrong you'll have to debug through sequelize
[12:49] nibblebot has joined the channel
[12:50] shinuza has joined the channel
[12:52] hellopat has joined the channel
[12:52] Joeysomo has joined the channel
[12:53] hellopat: hi!!!
[12:54] ningu: does anyone here have experience using graph/rdf stores with node? I don't know which ones are mature and have good node support.
[12:54] Joeysomo has joined the channel
[12:54] ningu: I googled around a bit but figured it was worth asking here.
[12:55] paera has left the channel
[12:55] lowerkey: maritz: The sql logs say: Executing: UPDATE 'Contacts' SET 'name'='lowerkey', 'dob'='2012-02-24 00:00:00', ... 'updatedAt'='2012-02-24 13:52:16' WHERE `id`=2
[12:56] Emerson has joined the channel
[12:57] lowerkey: but when I use the mysql command line utility, it shows the last update a couple days ago, exactly when it was created
[12:57] maritz: so, the update didn't do anything?!
[12:59] looopy has joined the channel
[13:00] lowerkey: maritx: nope
[13:00] nibblebot has joined the channel
[13:00] lowerkey: And what's even weirder: The query that gets updated sets id=2 where id=2
[13:00] lowerkey: could that lead to problems?
[13:01] lowerkey: oops, that should have been maritz
[13:01] maritz: what happens if you manually execute the query
[13:01] maritz: ?
[13:02] daniel16 has joined the channel
[13:02] daniel16 has left the channel
[13:02] Emerson: Hi there. I was wondering if you guys could help me to think asynchronously. I'm using node-tds to handle Microsoft SQL database. I have table A and B and a n to n relationship called C. In order to insert something in table C I must check if the primary key of A and B exist in their respective tables before with a SELECT statement.
[13:03] Emerson: Is there any sample code that does that?
[13:03] nibblebot has joined the channel
[13:03] lowerkey: maritz: i'll try
[13:03] lowerkey: dumb me
[13:03] lowerkey: address_admin doesn't get to update
[13:05] lowerkey: Thanks, maritz
[13:05] maritz: no problem
[13:05] jyp has joined the channel
[13:06] Emerson: has anyone worked with a situation like that I mentioned?
[13:06] maritz: Emerson: don't know. but why not just try it yourself? :)
[13:07] maritz: especially if you're new to async programming you should read up on that and then experiment with it. once you feel comfortable, use the async module :)
[13:07] Emerson: I'm trying. :) But I don't want to write a terrible code, because I'm still thiking synchronouslyl.
[13:09] maritz: then write terrible code and improve it :)
[13:10] sandfox has joined the channel
[13:10] paera has joined the channel
[13:11] gdbz: Emerson, use callbacks. stmt.on('row', function(doInsert){ return function(){ create.stmt.here(doInsertData) }()});
[13:12] tacoman667 has joined the channel
[13:12] tacoman667: hello all
[13:12] brianseeders has joined the channel
[13:12] tacoman667: has anyone had the error "User and Group IDs must be an integer" when doing npm install on the windows version?
[13:12] paera has left the channel
[13:13] tuhoojabotti: hmm
[13:13] thepatrick: tacoman667: I haven't hit that, what version of node/npm?
[13:13] tuhoojabotti: JSONStream is probably nice for logging in json
[13:14] tacoman667: node: 0.6.11, npm 1.1.1
[13:14] tacoman667: npm ERR! Error: User and Group IDs must be an integer. npm ERR! at Object. (fs.js:539:11) npm ERR! at Object.chown (c:\Program Files (x86)\nodejs\node_modules\npm\no e_modules\graceful-fs\graceful-fs.js:229:17) npm ERR! at Object.MKDIRCB [as oncomplete] (c:\Program Files (x86)\nodejs\n de_modules\npm\lib\utils\mkdir-p.js:155:23) npm ERR! You may report this log at: npm ERR! client, it made it easy to use… but then again i am still a noob at node and all this so im always open to other options
[17:30] tonist has joined the channel
[17:31] ericmuyser|air has joined the channel
[17:31] redir has joined the channel
[17:32] maletor has joined the channel
[17:32] rtgibbons has joined the channel
[17:33] JacobSingh has joined the channel
[17:33] carlyle has joined the channel
[17:33] nightfury has joined the channel
[17:33] lz: hatch you can try "npm update npm -g"
[17:34] hatch: it's still showing 1.1.0-2
[17:34] JacobSingh: Using express, I want to pass a variable to the client. I found express-expose, but that extends "app". What is the best practice for passing my var back? I'm already inside a route which is in a require'd file.
[17:34] trakowski77 has left the channel
[17:34] hatch: actually I have no idea if that's the most recent version...I just saw 1.1.1 at the bottom of the docs
[17:34] hatch: the version number isn't really promoted
[17:34] JacobSingh: I would think express-expose would do res.expose(myObj); but sadly no. Still not clear on how you access "app". Is it a singleton? Is there some hidden function to get at it?
[17:35] lz: hatch weird, you should be able to get 1.1.1 that way
[17:35] tjholowaychuk: JacobSingh it extends the prototype
[17:35] tjholowaychuk: for express 2.x
[17:35] lz: hatch how did you install npm originally?
[17:36] spolu: hi guys
[17:36] hatch: lz: no idea, I'm guessing using the sh method
[17:36] spolu: I get some DNS related errors that cause an 'error' event to be emitted
[17:36] JacobSingh: tjholowaychuk: route extends the prototype of app?
[17:36] spion has joined the channel
[17:36] tjholowaychuk: JacobSingh express-expose
[17:36] spolu: that I do not catch even if I do implement req#error
[17:36] spolu: any idea?
[17:36] bradleymeck has joined the channel
[17:36] lz: hatch what do you get when you run 'where npm'
[17:36] boehm has joined the channel
[17:36] samsonjs_ has joined the channel
[17:37] TheFuzzball has joined the channel
[17:37] JacobSingh: tjholowaychuk: express-expose extends the prototype of app? I got that, the problem is I want to expose myself (lol) from inside the route, not at the app.js level
[17:37] whaley has joined the channel
[17:37] hatch: lz: no command 'where' found :D
[17:37] JacobSingh: Should I do routes = require ('./routes').with(app)? or is there some other best practice?
[17:37] graeme_f has joined the channel
[17:37] lz: XD
[17:37] lz: windows?
[17:37] hatch: nope ubuntu 11.10
[17:37] tjholowaychuk: JacobSingh oh, well yeah with node you kinda have to do module.exports = function(app){
[17:38] tjholowaychuk: or export the callbacks only
[17:38] tjholowaychuk: and do
[17:38] zacksam has joined the channel
[17:38] tjholowaychuk: app.get('/user', user.show)
[17:38] lz: hatch try which instead of where
[17:38] tjholowaychuk: that sort of thing
[17:38] tjholowaychuk: or have a global "app"
[17:38] zacksam: hi
[17:38] tjholowaychuk: those are pretty much your options
[17:38] hatch: lz: yeah that's it... /usr/bin/npm
[17:38] zacksam: does anyone use any IDE's for node.js I am new to this
[17:39] hatch: zacksam: I use Sublime Text 2
[17:39] chjj: zacksam: vim
[17:39] zacksam: I will be using also mongoDB and express for routing
[17:40] tmcw has joined the channel
[17:40] lz: hatch, that sounds right.. I would run the install script again
[17:40] Nss has joined the channel
[17:40] zacksam: is there eclipse plugin
[17:41] hatch: lz: oh looks like I installed it via the Ubuntu repo....that's probably why it won't work
[17:41] gr-eg has joined the channel
[17:41] mikeal: olegp: Oleg Podechin?
[17:42] aristidesfl has left the channel
[17:42] lz: hatch ah that would do it
[17:42] adamkittelson has joined the channel
[17:42] tmike has joined the channel
[17:43] lz: also you might have the upgraded npm binary already at /usr/local/bin/npm
[17:43] hatch: lz: well thanks for the help :)
[17:43] JacobSingh: tjholowaychuk: hmm… okay, still not totally clear on that, but I"ll keep digging around. I'm using your template of having the routes in a require. I'm not sure how to make the app global though… would you do this: routes = require('./routes); app = module.exports = express….; routes.app = app?
[17:44] jaha: JacobSingh: var app = module.exports = express.createServer();
[17:44] lz: hatch anytime
[17:44] JacobSingh: I tried that, and it works, "smells" funny, but exports.app.expose works now :)
[17:44] norviller has joined the channel
[17:44] JacobSingh: (inside my route) - so I'm happy :)
[17:44] RLa has joined the channel
[17:44] davidwalsh has joined the channel
[17:45] JacobSingh: tjholowaychuk: btw, thanks for all the code! I'm supposed to be working onsomething else, but every 3-4 months I get an idea and against better judgement decide to build it in node :)
[17:45] tjholowaychuk: haha nice
[17:45] tjholowaychuk: that's how i got started with node
[17:45] tjholowaychuk: was supposed to be writing ruby
[17:45] tjholowaychuk: hated ruby
[17:45] tjholowaychuk: ditched ruby
[17:46] dilvie has joined the channel
[17:47] nicki9knuckles has joined the channel
[17:47] sarlalian has joined the channel
[17:49] ericmuyser|air has joined the channel
[17:49] hjbehling has joined the channel
[17:52] markdaws has joined the channel
[17:52] s0urce has joined the channel
[17:53] slloyd has joined the channel
[17:54] tornad has joined the channel
[17:55] lohkey has joined the channel
[17:56] jhooks has joined the channel
[17:56] pizthewiz has joined the channel
[17:57] robo has joined the channel
[17:58] mschneider has joined the channel
[18:00] coderarity: in 5 minutes you guys miss the guild wars 2 beta, beta.guildwars2.com =P
[18:00] ryanrolds_w has joined the channel
[18:00] ningu: tjholowaychuk: why did you hate ruby?
[18:01] tjholowaychuk: sorry hate is the wrong word, dislike
[18:01] tjholowaychuk: it's an unfocused mess
[18:01] tjholowaychuk: basically
[18:01] aranw has joined the channel
[18:02] EhevuTov has joined the channel
[18:02] brianleroux has joined the channel
[18:02] coderarity: i like how node.js has less stuff to it, ruby has like huge docs for a bunch of features and rails is even worse
[18:02] coderarity: javascript and node are a lot simpler
[18:02] tjholowaychuk: it might be a bit of a different story if the ruby stdlib was not crap
[18:02] mansoor has joined the channel
[18:03] ningu: tjholowaychuk: any specific complaints? I don't have anything for or against ruby, really, I'm just curious. I tried it once and didn't stick with it, but not for any very strong reason.
[18:03] ningu: js also has its oddities and rough edges due to its history
[18:04] ningu: like the arguments variable...
[18:04] CarlosC has joined the channel
[18:04] ningu: coderarity: yes, although I would say the docs for node modules are not very good by and large (core node docs are very good)
[18:05] ningu: fortunately, they're usually simple enough that it doesn't matter
[18:07] Destos has joined the channel
[18:07] diogogmt has joined the channel
[18:07] Industrial: When I call / in the browser I get error.txt; https://gist.github.com/e4affccfb7e9d9949297
[18:08] Industrial: Where did I go wrong with the views, and why does zappa put a uuid in front ?
[18:08] McMAGIC--Copy has joined the channel
[18:08] lperrin has joined the channel
[18:09] coderarity has joined the channel
[18:09] coderarity has joined the channel
[18:10] xamius has joined the channel
[18:10] RexM has joined the channel
[18:11] iangreenleaf: Industrial: does it change anything if you remove the .jade? Like @render 'index':
[18:11] ph^ has joined the channel
[18:13] Industrial: iangreenleaf: no
[18:13] michaelmartinez: I am just curious why one would use node to serve dynamic html? Better to use JSON and have the templates live on the client?
[18:13] aron_ has joined the channel
[18:13] itayneeman has joined the channel
[18:13] tjholowaychuk: michaelmartinez better is very subjective, read into on the web there are reasons for both, sometimes a mix of the two is ideal
[18:14] TooTallNate has joined the channel
[18:14] iangreenleaf: Industrial: or maybe it's not picking up the path setting - try removing the @set 'views' line and putting your views in views/ instead of app/views/
[18:14] samsonjs has joined the channel
[18:15] jxie has joined the channel
[18:15] iangreenleaf: Industrial: I think I recall seeing that uuid thing before in normal situations, so it may just be a red herring.
[18:15] alm0nd has joined the channel
[18:15] Industrial: k
[18:15] mayank_ has joined the channel
[18:15] dshaw_ has joined the channel
[18:15] Edy has joined the channel
[18:15] Edy has joined the channel
[18:15] michaelmartinez: I agree TJ... its just I see a lot of problems here
[18:16] michaelmartinez: A lot of problems that could easily be avoided by just deliveing JSON.
[18:16] ryan_stevens has joined the channel
[18:16] BrianE has joined the channel
[18:16] rmoen has joined the channel
[18:16] tjholowaychuk: sure, and you have some new issues by doing so, neither is the "perfect" way
[18:17] tjholowaychuk: they each have pros and cons
[18:17] whitman has joined the channel
[18:17] rauchg has joined the channel
[18:17] michaelmartinez: Agreed. I'm no zealot. Appreciate the work you have done, BTW.
[18:18] jiboumans_ has joined the channel
[18:18] michaelmartinez: I just hope to bring something out of hibernation soon... it seems like all I do is come up wuth half-assed apps and never finish them.
[18:18] dve has joined the channel
[18:19] kmiyashiro has joined the channel
[18:19] harthur has joined the channel
[18:20] ohtogo has joined the channel
[18:20] msch has joined the channel
[18:20] xamius has joined the channel
[18:20] balgarath: node_modules successfully checked into git and building on our CI :)
[18:21] tmcw has joined the channel
[18:22] st_luke has joined the channel
[18:22] AndreasMadsen has joined the channel
[18:23] nuclearsandwich has joined the channel
[18:23] tonist has joined the channel
[18:24] aranw has left the channel
[18:24] yawNO: what's the syntax for Date on mongoose?
[18:24] crcn has joined the channel
[18:25] jocafa: "Last Thursday, just before I ate that hamburger."
[18:25] paulwe has joined the channel
[18:28] retornam has joined the channel
[18:28] dbettin has joined the channel
[18:28] RexM has joined the channel
[18:29] tmcw_ has joined the channel
[18:29] StanlySoManly has joined the channel
[18:29] dgathright has joined the channel
[18:31] volkan has joined the channel
[18:32] else- has joined the channel
[18:32] socketio\test\66 has joined the channel
[18:32] jamescarr_ has joined the channel
[18:34] salva has left the channel
[18:36] M1l3n1um has joined the channel
[18:38] saesh has joined the channel
[18:38] dgathright_ has joined the channel
[18:39] alejandromg has joined the channel
[18:39] volkan_ has joined the channel
[18:39] illourr has joined the channel
[18:39] _baton_ has joined the channel
[18:39] tmcw has joined the channel
[18:40] b_d has left the channel
[18:40] dscape has joined the channel
[18:41] kermitPT has joined the channel
[18:41] mertimor has joined the channel
[18:41] remysharp has joined the channel
[18:41] `3rdEden has joined the channel
[18:42] Eruadan: does anyone have used http://knockoutjs.com/ ?
[18:43] michaelmartinez: Eruadan, yeah.
[18:43] saesh_ has joined the channel
[18:43] blissdev has joined the channel
[18:44] st_luke_ has joined the channel
[18:45] francisl has joined the channel
[18:47] franciscallo has joined the channel
[18:48] francisl has left the channel
[18:48] tylerstalder has joined the channel
[18:48] c0smikdebris has joined the channel
[18:49] slaskis_ has joined the channel
[18:49] thecheetaeater has joined the channel
[18:50] heavysixer has joined the channel
[18:51] thecheetaeater: hey, i am recently getting this weird socket hang up error: http://dpaste.com/707698/ i am talking to a couchdb server.
[18:51] else- has joined the channel
[18:51] Eruadan: michaelmartinez, cool, I was looking the docs and the syntax seems nice. I have some javascript knowledge and it seems very fluent.
[18:51] alejandromg has joined the channel
[18:52] nodebiscut has joined the channel
[18:52] boltR has joined the channel
[18:52] michaelmartinez: It works great for what it was built for. I really like it actually. Took about two hours to get going. I like it when stuff fits my brain.
[18:53] ningu: so many client-side js frameworks... knockout, backbone, ember, etc.
[18:53] yenz_: no kidding
[18:53] michaelmartinez: ningu agreed I wish I had time to eval all of them
[18:53] yenz_: who do we love and who do we hate at the moment? ;)
[18:53] illourr: :)
[18:54] yenz_: so many conflicting opinions!
[18:54] michaelmartinez: I hate your mom right now
[18:54] yenz_: :eek:
[18:54] michaelmartinez: : )
[18:54] ningu: michaelmartinez: any idea which are the most complete/mature/widespread?
[18:54] illourr: trello uses backbone.. i know that much :P
[18:54] michaelmartinez: Backbone seems more mature than most
[18:54] iangreenleaf: Yeah. Dear everyone, if you write a new client-side JS framework, your landing page needs to have a rationale on it.
[18:54] ningu: michaelmartinez: also, you were pretty good for the phillies last year
[18:54] michaelmartinez: Backbone doesn't fit my brain, at all.
[18:55] dmwuw: iangreenleaf: Thank you, I couldn't agree more.
[18:55] iangreenleaf: Don't tell me about all the features it has that every other framework has too. Tell me why I should use *your* framework.
[18:55] michaelmartinez: iangreenleaf or a todo app : )
[18:55] iangreenleaf: michaelmartinez: Heh :)
[18:55] ningu: well, you can say that for server-side frameworks too. I just think people know enough about those already to know what their options are already.
[18:56] dmwuw: iangreenleaf: Or at least, how to decide if your new framework matches my particular needs.
[18:56] ningu: whereas makers of client-side frameworks seem to often present it as paradigm-changing etc. even though many are very similar.
[18:56] RobWC has joined the channel
[18:57] iangreenleaf: dmwuw: Right. I want to know what you, the developer, love and hate in a framework. If I agree with you, we may get along.
[18:57] michaelmartinez: Yeah, I am actually pretty excited about JsRender/JsViews by Boris Moore
[18:57] michaelmartinez: Its not beta yet, however.
[18:57] iangreenleaf: ningu: Yeah, it's just especially apparent in client-side JS because that space is movign pretty fast right now
[18:58] ningu: do client-side frameworks typically integrate with client-side templates in any... erm... sensible or predictable way?
[18:58] hipsterslapfight has joined the channel
[18:58] iangreenleaf: ningu: I think the three you mentioned *are* the most mature/widespread, btw.
[18:58] ningu: I haven't really used any of them much. just trying to get a sense of them right now, reading some of their pages.
[18:58] michaelmartinez: The learning curve keeps getting steeper, so you have a significant time investment when you choose one. That is the sucky aspect
[18:58] TheJH has joined the channel
[18:59] RobWC1 has joined the channel
[18:59] RobWC1 has left the channel
[18:59] blissdev has joined the channel
[19:00] iangreenleaf: ningu: Some of them let you choose your templating language, and there are a bunch of options (mustache, etc). Knockout uses HTML with data-bind attributes, IIRC.
[19:00] ningu: I'm still not sold that rest on the server and page rendering client side is really the right answer in general
[19:00] ningu: I think it depends on your site
[19:00] michaelmartinez: Ember and Knockout have bindings which make otherwise craptacular wiring; simple and pleasureable
[19:01] ningu: iangreenleaf: right, but then if I want to use jade for example, I'd have to load that myself and then call knockout, presumably.
[19:01] st_luke has joined the channel
[19:01] ningu: and the jade templates would have the data-bind attributes in them
[19:02] michaelmartinez: Ningu, no... If using a client side fw with bindings I would serve JSON
[19:02] iangreenleaf: ningu: Yeah, that's the cool part about knockout (and batman) - you can generate the HTML server-side with your favorite template engine.
[19:02] betaloop has joined the channel
[19:02] ningu: michaelmartinez: the html has to come from somewhere. what would knockout do with json?
[19:02] michaelmartinez: Or you could do it server side...
[19:02] mikeal has joined the channel
[19:03] michaelmartinez: It would automagically convert it to models which populates the vieews
[19:03] ningu: yes, but the views have to come from somewhere
[19:04] ningu: data as json is sensible enough, that's not what I meant
[19:04] sreeix has joined the channel
[19:04] michaelmartinez: The views live inside the html and are bound to the models
[19:04] ningu: yes, and where does the html come from? :P
[19:04] michaelmartinez: It lives on the client
[19:04] michaelmartinez: statically
[19:04] ningu: how does the client get it?
[19:05] michaelmartinez: Hahaha
[19:05] michaelmartinez: Fucker
[19:05] ningu: I feel like I'm conducting an interrogation
[19:05] gigafied has joined the channel
[19:05] michaelmartinez: You are!
[19:06] batousai has joined the channel
[19:07] batousai: var i = 0 while (/\/\.\.\//.test(url = url.replace(/[^\/]+\/+\.\.\//g, ""))); whats wrong with this line?
[19:07] batousai: error says unexpected token while
[19:07] markbao_ has joined the channel
[19:07] isaacs has joined the channel
[19:07] patcito has joined the channel
[19:08] sorensen__ has joined the channel
[19:08] ningu: batousai: need a newline or semicolon
[19:08] michaelmartinez: ningu you can tell that I have lived in the client space for tooooo long
[19:09] _th_n has joined the channel
[19:09] thecheetaeater: hey, has anyone here ever experienced a socket hang up error?
[19:10] prestonparris has joined the channel
[19:10] c4milo_ has joined the channel
[19:12] Fuu` has joined the channel
[19:12] diogogmt has joined the channel
[19:15] orlandovftw has joined the channel
[19:16] wiwillia has joined the channel
[19:18] nFFF has joined the channel
[19:18] mikeric has joined the channel
[19:20] niloy has joined the channel
[19:20] jamescarr_ has joined the channel
[19:21] batousai: i see people using standard functions like location.href.match() in their nodejs apps. but i get that location is udefined when i try
[19:21] batousai: did they include a library to be able to use these objects/functions?
[19:21] jaha: anyone know how to pass a ReadStream through RCP (dnode)? Here is what I have so far http://pastie.org/3448878. I get the readStream object but no events are fired. Thanks in advance.
[19:21] recur has joined the channel
[19:22] automata has joined the channel
[19:22] robi42 has joined the channel
[19:22] boltR has joined the channel
[19:23] ovnicraft has joined the channel
[19:23] ningu: batousai: huh? .match() is standard js
[19:23] caolanm has joined the channel
[19:23] batousai: ningu, isnt location also standard?
[19:23] ningu: location is available if you're in a browser, it's window.location
[19:24] ningu: window.location is part of the DOM
[19:24] batousai: ningu, so i cant use it in a script?
[19:24] ningu: sure, if your script is running in a browser
[19:24] PElshoff has joined the channel
[19:25] mnkNja has joined the channel
[19:25] batousai: i could set the script up as a server then call the function when the server receives a request
[19:26] batousai: would that be the easiest way to see the outcome?
[19:26] felixhummel has joined the channel
[19:27] batousai: or do i have to deploy?
[19:27] ningu: huh?
[19:27] ningu: I have no idea what you're trying to do
[19:28] boehm has joined the channel
[19:28] batousai: run the script inside a browser
[19:29] ningu: just make a static html file with a script tag and open it in a browser
[19:29] caolanm has joined the channel
[19:30] cmwelsh: anyone know a good Node.js library to post to Twitter?
[19:31] _th_n has joined the channel
[19:31] cmwelsh: to create posts on Twitter with JavaScript
[19:32] davv3 has left the channel
[19:32] tylerstalder has joined the channel
[19:33] ph^ has joined the channel
[19:33] keeto has joined the channel
[19:34] heavysixer has joined the channel
[19:34] ryanfitz has joined the channel
[19:35] bartt has joined the channel
[19:35] jesusabdullah: cmwelsh: https://github.com/avianflu/ntwitter I believe?
[19:35] jesusabdullah: I know avianflu has a relatively well-maintained twitter lib
[19:36] jesusabdullah: Yeah, that's it
[19:36] cmwelsh: jesusabdullah: that looks perfect. I overlooked it by accident because I thought it was for reading the streaming API only
[19:36] cmwelsh: thanks
[19:36] jesusabdullah: We use it for our irc bot
[19:36] jesusabdullah: anytime
[19:36] al3xnull has joined the channel
[19:38] dgathright has joined the channel
[19:38] ohtogo has joined the channel
[19:40] batousai: ningu i wanted to see whats going on while the script is being executed in the browser
[19:41] recur has joined the channel
[19:41] ningu: batousai: I just told you how to do that
[19:42] wilmoore has joined the channel
[19:42] batousai: ningu, but i cant see the errors the usually pop up in the terminal if a variable is undefined etc
[19:42] ningu: use the console in chrome, for example
[19:43] jarek has joined the channel
[19:43] nFFF: Im really struglling to get my head around node
[19:43] nFFF: is it comparable to python/ruby/php or is it more like apache :|
[19:43] nFFF: or is it both
[19:43] ahripak has joined the channel
[19:43] nFFF: is it everything i dream about at night plus more
[19:44] mcav has joined the channel
[19:45] ningu: nFFF: given the standard libraries of node, I'd say it's comparable to python and ruby
[19:46] sh1mmer has joined the channel
[19:47] bradleymeck has joined the channel
[19:47] ningu: whereas connect, express, etc. are the frameworks that let you run a server
[19:47] ge22 has joined the channel
[19:50] garann has joined the channel
[19:50] petrjanda has joined the channel
[19:51] McMAGIC--Copy has joined the channel
[19:51] ge22: Why this function returns always true?
[19:51] ge22: exists: function(user) {
[19:51] ge22: return this.redis.exists(user, function(err, data) {
[19:51] ge22: return (data); //here data returns 0 or 1 but when y call function exists return true
[19:51] ge22: });
[19:51] ge22: },
[19:52] Bonuspunkt: ^^
[19:52] jxson has joined the channel
[19:53] Bonuspunkt: ge22 exists: function(user, callback){ ... callback(data); ... }
[19:53] AvianFlu has joined the channel
[19:53] yawNO: uhm
[19:53] yawNO: who was the one that was interested in Tropo
[19:53] yawNO: goddamn my memory
[19:53] yawNO: jaw187: was it you?
[19:53] CoverSlide has joined the channel
[19:53] ge22: thanks Bonuspunkt
[19:54] merlin83 has joined the channel
[19:57] euforic has joined the channel
[19:58] TheJH: WTF? http://www.php.net/manual/en/v8js.examples.php
[19:59] larsschenk has joined the channel
[19:59] TheJH: comment by my favorite blogger: "Yo dawg, we herd you liek web scripting, so we put some JS into your PHP so you can script while you script!"
[19:59] yawNO: look more liek 'i heard you like shit so we mixed with your js some php'
[19:59] yawNO: *looks
[19:59] torvalamo: apparently js has been linked in ruby before
[19:59] torvalamo: so obviously php needs to do that too
[19:59] tmike: yawNO: they made santorum
[20:00] torvalamo: because php can't not have something
[20:00] torvalamo: other than style
[20:00] torvalamo: oh no i didn't
[20:00] stagas has joined the channel
[20:00] torvalamo: ACTION did
[20:00] mehlah has joined the channel
[20:01] yawNO: tmike: santorum like mike santorum?
[20:01] tmike: google santorum
[20:02] jimmysparkle has joined the channel
[20:02] jimmy- has joined the channel
[20:02] torvalamo: Buffer('1234567890').toString('base64')
[20:02] torvalamo: sry
[20:02] torvalamo: that's an old clipboard
[20:02] torvalamo: Santorum 1. The frothy mix of lube and fecal matter that is sometimes the byproduct of anal sex. 2. Senator Rick Santorum.
[20:02] torvalamo: there
[20:02] chjj: torvalamo: it could have been much worse ;)
[20:02] torvalamo: no i don't c/p important shit
[20:02] torvalamo: :p
[20:03] ge22: Bonuspunkt: How to call function exits? var userRegister = this.users.exists(value);
[20:03] mikeal has joined the channel
[20:04] Bonuspunkt: no, this.user.exists(value, function(data) { /* more processing */ });
[20:05] adambrault has joined the channel
[20:05] ge22: ok, thanks
[20:05] StanlySoManly has joined the channel
[20:06] Hassard has joined the channel
[20:10] gigafied has joined the channel
[20:11] jenner has joined the channel
[20:11] teadict: mmm, how would I output a date on a jade template a-la-server style?
[20:11] teadict: not like adding a piece of code to a to-be-loaded script in the client
[20:12] teadict: oh wait, moment works for node
[20:14] i_ has joined the channel
[20:14] teadict: done
[20:14] teadict: and without your help
[20:15] teadict: I've overcome IRC
[20:15] teadict: I may die in peace now
[20:15] teadict: productively... and uninterrumpted
[20:15] yawNO: congratulations (cit. Santa Claus)
[20:17] nibblebot: if I fork a pkg that's in npm at v0.3.5 for example, and I reference my github/master link in my app's package.json, is it possible to get `npm install` to treat this pkg at a higher version without bumping version number in my forked repo's package.json
[20:18] torvalamo: syntax error
[20:18] sh1mmer has joined the channel
[20:18] torvalamo: statement too long
[20:19] torvalamo: so w hat you're asking is whether you can ignore the version number for dependencies?
[20:19] nibblebot: for dependencies that use url's
[20:20] nibblebot: so if fork/patch/pull request a package that's in npm, i'd have to bumb the package # to use my patched vbersion in production
[20:20] spolu has joined the channel
[20:20] petrjanda has joined the channel
[20:20] nibblebot: if i want to use `npm install` to update my packages (which i do)
[20:21] torvalamo: using the master branch as a dependency may be a bad idea
[20:21] torvalamo: what if there is a bug in the working commit
[20:22] torvalamo: which breaks it
[20:22] nibblebot: i mean, the forked branch is under my repo
[20:22] nibblebot: it's not upstream
[20:22] chjj: i thought it might be nice to be able to have an npm package point to a stable branch in a git repo
[20:23] nibblebot: i mean, really i could just bump version number, but i don't think that's too friendly for pull requests, right?
[20:23] chjj: or is that not what youre talking about? i just decided to enter the conversation abruptly
[20:23] isaacs: chjj: "dependencies": { "foo": "git+ssh://github.com/user/foo.git#stable-branch-name" }
[20:23] isaacs: chjj: like that? ^
[20:24] nibblebot: chjj: i don't mind using master
[20:24] chjj: isaacs: i mean the package itself, instead of grabbing a tarball, tries to pull from a git branch
[20:24] chjj: not necessarily a dependency
[20:24] jskulski has joined the channel
[20:25] isaacs: chjj: you can npm install a git url as well.
[20:25] isaacs: chjj: or you can just have it be a checkout or submodule into node_modules/foo if you really want, but then you have to pull using git, not using npm.
[20:25] isaacs: chjj: but you can do `npm explore foo -- git pull`
[20:26] kevwil has joined the channel
[20:26] chjj: isaacs: hmmm, is there anyway to configure a package.json in such a way that it just pulls from the head of a git branch when someone does 'npm install x'?
[20:26] cjm has joined the channel
[20:27] nibblebot: just wondering what other folks are doing as i find myself now maintaining several forks and switching from an npm dep to a github fork w/o bumping the version number in the fork means `npm install` won't update it. I need to explicitly do `npm install foo`
[20:28] chjj: isaacs: i might have missed it. i asked you about this a while ago, i think you said it was in the works.
[20:28] isaacs: chjj: no
[20:28] chjj: ah, alright
[20:29] isaacs: chjj: `npm install x@git+ssh://....` would work, though :)
[20:30] chjj: cool. its not a big deal. in reality, im fine with doing `npm publish` instead of `git push origin stable`. i just drawn towards consistency i guess.
[20:30] christkv has joined the channel
[20:30] isaacs: chjj: you could just do both
[20:30] larsschenk has left the channel
[20:30] isaacs: chjj: npm has a `make release` in its Makefile
[20:31] wdbl has joined the channel
[20:31] cha0s has joined the channel
[20:31] cha0s has joined the channel
[20:31] wiwillia: isaacs so close to 30 now
[20:33] isaacs: 30?
[20:34] sh1mmer_ has joined the channel
[20:34] jamescarr_: eh, I think I'm hanging up my hat on coffeescript
[20:35] bradleymeck: jamescarr_, ?
[20:35] jamescarr_: still haven't gotten a smooth groove when writing it on the serverside
[20:36] jamescarr_: typically something breaks and I have to compile the scripts down to see the real error since the stacktrace has the compiled js line number
[20:36] colinclark has joined the channel
[20:37] tdegrunt has joined the channel
[20:37] wiwillia: isaacs the Oaklandjs shirts
[20:38] isaacs: wiwillia: oh, right, nice!
[20:38] isaacs: yes.
[20:38] isaacs: those need to happen.
[20:38] wiwillia: absolutely haha
[20:38] wiwillia: I'm excited
[20:38] jkridner has joined the channel
[20:38] wiwillia: one sec I want tos hwo you something
[20:39] isaacs: k
[20:40] wiwillia: http://i.imgur.com/LIILt.jpg
[20:40] tuhoojabotti: Nice one
[20:40] maxogden: wiwillia: 27 now :)
[20:40] wiwillia: maxogden awesome
[20:41] baudehlo: what do people use for plain text templating in Node?
[20:41] tuhoojabotti: I do binary templating
[20:41] tuhoojabotti: baudehlo: I use Hogan.js, but handlebars seems quite interesting too.
[20:42] bradleymeck: baudehlo i like ejs for plain text
[20:42] LarsSmit has joined the channel
[20:42] LarsSmit has left the channel
[20:43] slloyd has joined the channel
[20:43] eddiedu has joined the channel
[20:43] baudehlo: cool, I'll have a look at those three.
[20:44] baudehlo: really I just need single value insertion. Nothing complex.
[20:44] graeme_f has joined the channel
[20:44] mcav has joined the channel
[20:44] baudehlo: maybe I should just write my own. LOL
[20:44] mraleph1 has joined the channel
[20:44] skylamer`: mustach :}
[20:45] tuhoojabotti: skylamer`: hogan.js and handlebars are quite similar
[20:45] lz has joined the channel
[20:45] tmike: Maybe handlebars should go into the topic somewher, it seems once an hour or so a template question comes up
[20:45] tmike: And that seems to be the default answer
[20:45] HardFu has joined the channel
[20:46] itayneeman: mikeal: I got a basic abort thing going on, I'll make a pull request so you can take a look and tell me if it is even in the right direction
[20:46] tuhoojabotti: Lick the Rainbow.
[20:47] isaacs: wiwillia: mildly evil tactics: https://twitter.com/izs/status/173145573841580032
[20:47] isaacs: wiwillia: i'm pretty sure you can keep buying them once they cross the 30 mark, yes?
[20:47] TheJH: tmike, but I like my templating stuff, too :P
[20:47] Aki has joined the channel
[20:47] TheJH: VACUUM!
[20:47] baudehlo: see all templating modules seem to focus on HTML... Like handlebars says this: Handlebars HTML-escapes values returned by a {{expression}}.
[20:47] TheJH: !npm info vacuum
[20:47] jhbot: vacuum by Jann Horn, version 0.1.3: Clean streamed templates (primarily for HTML)
[20:47] baudehlo: I want that not to happen
[20:47] wiwillia: isaacs: haha nice! 33
[20:48] nibblebot: baudehlo: {{{value}}} outputs unescaped values
[20:48] skylamer`: !npm info node-expat
[20:48] jhbot: node-expat by Astro, version 1.4.4: NodeJS binding for fast XML parsing.
[20:48] skylamer`: !npm info mongoose
[20:48] jhbot: mongoose by Guillermo Rauch, version 2.5.9: Mongoose MongoDB ODM
[20:49] isaacs: wiwillia: whatver,it worked :)
[20:49] dve has joined the channel
[20:49] wiwillia: isaacs it worked well haha
[20:49] wiwillia: sweet now I can frame this bad boy as well
[20:49] JakeSays has joined the channel
[20:50] CarterL has joined the channel
[20:50] baudehlo: nibblebot: but then given that's all I need, this works too: template.replace(/\{\{(\w+)\}\}/g, function (str, word) { return param[word] })
[20:51] AkiTendo: So, I read the introduction on node. I'm tempted to give it a try since I'm trying to develop much the same thing in PHP anyway - the principle of event dispatching and modular pages.
[20:51] nibblebot: yeah, jquery and underscore have some lightweight token replacements
[20:51] skylamer`: is there some other desings, isaacs ? :)
[20:52] tmike: baudehlo then you miss out on blocks and helpers and such
[20:52] AkiTendo: Having everything in one language would be nice.
[20:52] wiwillia: skylamer` there was www.teespring.com/nodejs but the campaign is over now
[20:52] baudehlo: tmike: yeah, tbh don't need them. This is just for simple welcome emails in plain text.
[20:52] AkiTendo: Javascripts prototypical inheritance though hurts my head some days.
[20:52] tmike: just regex out your placeholders, then
[20:52] AkiTendo: Are there any working CMS's or forums built in node yet?
[20:52] baudehlo: *nod*
[20:52] wiwillia: skylamer` I'm sure there will be more SubStack-inspired tees on the way
[20:53] baudehlo: I think I'll do that for now, but use a known syntax so I can replace it easily later.
[20:53] skylamer`: :)
[20:54] saebekassebil has joined the channel
[20:54] saebekassebil: hey guys! I'm having some problem with publishing a npm package. "Failed PUT response 403"
[20:54] alejandromg: AkiTendo: http://calip.so?
[20:55] saebekassebil: and something with "forbidden Maintiner should have name and email"
[20:55] AkiTendo: Looking at that now.
[20:55] isaacs: saebekassebil: can you gist the entire output, please?
[20:56] saebekassebil: isaacs: Sure thing: https://gist.github.com/1903691
[20:57] AkiTendo: Not sure I want to move to a NoSQL db.
[20:57] saebekassebil: That's the npm-debug.log - Thought that might be a bit more informative.
[20:57] stafamus has joined the channel
[20:57] ningu: btw, I'm not sure whose package xregexp is, but the latest push is broken
[20:57] isaacs: saebekassebil: so, there are three problems right away that i can see...
[20:57] isaacs: saebekassebil: 1, you're using cygwin,which is no longer supported (windows is a first-class citizen now)
[20:57] isaacs: 2. you're using npm 1.0.9, which is very old
[20:58] isaacs: 3. you're using node 0.4.2, which is crazy old.
[20:58] isaacs: it'd be better to use node 0.6.11, and npm 1.1.1, on windows as-is.
[20:58] isaacs: but, barring that for some reason, use a proper unix in a vm or something
[20:58] thurmda has joined the channel
[20:59] isaacs: at the very least, upgrade to npm 1.0.106
[20:59] isaacs: and node 0.4.12
[20:59] isaacs: apart from that, have you done `npm adduser` on this machine? it seems like the username isn't getting set.
[20:59] saebekassebil: isaacs: Yea, well the cygwin is a lousy compensation for a proper Linux system - And I've seen that cygwin isn't supported anylonger, problem is that Windows cmd is awfull
[20:59] saebekassebil: isaacs: Yea, been adduser'ing about 10 times now :)
[20:59] isaacs: saebekassebil: if you install git, you can tick the box to get bash in windows that works, mostly
[20:59] isaacs: and you can use the git bash shell, which is pretty nice
[21:00] saebekassebil: But I'll try to update. Is there any chance that I can still use the cygwin/mintty shell?
[21:00] CoverSlide: you mean msys
[21:00] isaacs: yeah yeay
[21:00] andrehjr has joined the channel
[21:00] hellp has joined the channel
[21:00] isaacs: saebekassebil: not the cygwin shell, but it's a full on bash.
[21:00] isaacs: and node and npm work on it now.
[21:01] isao1 has joined the channel
[21:01] saebekassebil: Guess I'll have to change then...
[21:01] CoverSlide: I've been using node from a cygwin shell. It isn't bad, but the repl doesn't work
[21:01] pizthewiz has joined the channel
[21:02] saebekassebil: isaacs: I've just installed the .msi, but the Git Bash can't find it.
[21:02] saebekassebil: nor npm
[21:02] oht has joined the channel
[21:02] Nss has joined the channel
[21:04] shipit has joined the channel
[21:04] h4mz1d has joined the channel
[21:05] merlin83 has joined the channel
[21:05] CoverSlide: saebekassebil: You may try to run cygstart npm.cmd
[21:06] stagas: saebekassebil: Console2 is pretty nice
[21:07] saebekassebil: stagas: Thanks!
[21:07] CoverSlide: how is it compared to PuTTYcyg / FuTTY?
[21:09] prestonparris has joined the channel
[21:10] jp232 has joined the channel
[21:10] unomi: https://github.com/colinmarc/TermKit speaking of consoles
[21:11] nibblebot: SubStack: do you forsee any problems doing nested sequences? e.g. here http://hastebin.com/vaminawaye.js
[21:12] joe__k has joined the channel
[21:12] LBRapid has joined the channel
[21:12] nibblebot: i'm running into a segfault and i believe it has something to do with seq
[21:12] joe__k: hi. Is there an equivalent to dir() in python, to return the names currently in score
[21:12] joe__k: scope
[21:13] jtikalsky has joined the channel
[21:13] CoverSlide: Object.keys() or Object.getOwnPropertyNames()
[21:14] sh1mmer has joined the channel
[21:14] tuhoojabotti: keys
[21:14] tuhoojabotti: or what
[21:14] tuhoojabotti: oh python
[21:14] joe__k: in python, dir() returns a list of all the names in scope
[21:14] CoverSlide: i don't know of anything that does dir() with no arguments though
[21:15] joe__k: i want to know all the variables/names in scope, programmatically
[21:15] joe__k: the same as hitting "tab" at the node prompt, but programmatically
[21:15] c4milo has joined the channel
[21:15] joe__k: the goal: I am using mocha's "expect" style syntax, and I need to know how to access things set in "before"
[21:16] joe__k: and I want to print the list of defined vars in my test func
[21:16] CoverSlide: tab just gives you everything in global
[21:16] joe__k: right, because when you're at the prompt you're not inside a function scope
[21:16] joe__k: but yeah
[21:16] tjholowaychuk: joe__k declare them outside
[21:16] tjholowaychuk: of before()
[21:16] joe__k: the alternative is to somehow debug, but I have never gotten debug to work properly
[21:17] tjholowaychuk: var foo; before(function(){ foo = whatever
[21:17] tjholowaychuk: if that's what you mean
[21:17] joe__k: well its in coffescript, which vars everything....
[21:17] tjholowaychuk: well yeah
[21:17] tjholowaychuk: sucks to use coffeescript
[21:17] joe__k: I think I can say {global} but I dont really want it in the global score
[21:17] joe__k: scope
[21:17] joe__k: actually, coffescript isnt the issue, and coffescript is also awsome
[21:17] CoverSlide: yeah it's not a feature of JavaScript
[21:17] joe__k: the issue is that the test framework is getting an object literal, not a "function to call to setup and run things"
[21:18] CoverSlide: for better or worse
[21:18] chjj: i cant help but think coffeescript's removal of var was just for people who dont understand function scope
[21:18] slickplaid: res.download(path)... what's the path? I have files in ./download/ and 'download/filename' './download/filename', '/download/filename' all don't work... What am I missing?
[21:18] tjholowaychuk: slickplaid they're from the CWD if it's not an absolute path
[21:18] chjj: or who dont want to understand it*
[21:19] tjholowaychuk: chjj noobs will be noobs
[21:19] joe__k: so I can't declare them outside, because there isn't an enclosing lexical scope - just the parent of the contained sub-object
[21:19] CoverSlide: slickplaid: try __dirname + '/download/filename'
[21:19] joe__k: (not a functional call chain - just a hierarchical object literal)
[21:19] slickplaid: ok, trying that now :D
[21:19] CoverSlide: of course __dirname is the directory of the current script
[21:19] chjj: tjholowaychuk: i guess so
[21:19] thinkjson has left the channel
[21:19] zackattack has joined the channel
[21:19] joe__k: I can't stand the rspec style "describe"... "it"....
[21:19] CoverSlide: you may want to set a custom property on your app to use as a root dir
[21:19] joe__k: its bullshit
[21:20] chjj: its the same thing with the `let` statements though
[21:20] tjholowaychuk: joe__k it's not bullshit at all lol
[21:20] chjj: again, its because people were crying about function scope
[21:20] tjholowaychuk: it can be very helpful actually
[21:20] chjj: lets add let statements!
[21:20] joe__k: oh really. can you reason what a function called "it" does ?
[21:20] joe__k: and how it sets up the testing object model for the test runner?
[21:20] tricon_ has joined the channel
[21:21] ningu: actually, my main issue with scope in js is not understanding how it works -- it's that with async coding you have two choices, indent things a billion times and write awful code, or pass a bunch of variables along through a daisy chain
[21:21] chjj: i dont think i will ever use let statements once theyre implemented
[21:21] tjholowaychuk: lol..
[21:21] ningu: neither seems particularly elegant
[21:21] joe__k: being a python guy, i think the "cutesy" non-dsls are pretty silly
[21:21] tjholowaychuk: you're using one
[21:21] joe__k: a dsl isn't just ruby/js with renamed functions...
[21:21] tjholowaychuk: it's called coffeescript
[21:21] tuhoojabotti: Should I do Object.create(original) to mess around with a copy?
[21:21] ningu: I've taken to passing things through in a collection called stash, that has a collection of variables the next function will need
[21:21] CoverSlide: or use named functions
[21:22] CoverSlide: option 3
[21:22] joe__k: coffescript isn't a "ruby kid" dsl... its a language with a grammar, parser, and compiler
[21:22] tuhoojabotti: or is there some fancy way
[21:22] tjholowaychuk: joe__k right
[21:22] tjholowaychuk: anyone with a keyboard
[21:22] tjholowaychuk: can write
[21:22] tuhoojabotti: tjholowaychuk: Unless it's a broken keyboard.
[21:22] ningu: what about a cat with a keyboard?
[21:23] tuhoojabotti: Also: on-screen-keyboard anyone
[21:23] iain_: anyone with a keyboard can write faster with the dvorak layout :p
[21:23] CoverSlide: scoping in js is simple, it just requires you to learn it
[21:23] chjj: ningu: you shouldnt be doing `somethingAsync(nextFunc)`. you should nest these callbacks deeply, but keep the content of the callbacks in separate functions
[21:23] ningu: chjj: yes, but then those functions don't have access to the enclosing scope
[21:23] chjj: ningu: e.g. somethingAsync(function() { somethingAsync2(a, b, c, function() { ... }); });`
[21:23] CoverSlide: if you need the scope then declare them where you need them
[21:24] CoverSlide: no need for nesting
[21:24] devongovett has joined the channel
[21:24] okev has joined the channel
[21:24] jtikalsky: ningu... it sounds like you've almost defined an "object"
[21:24] ningu: it's an issue when you're doing a five step procedure and each step requires an async call, and together they build up a data structure
[21:24] chjj: ningu: yes they do, but you only give them access to what they need this way, every function gets access to what it needs, so you dont have to pass in a ton of variables
[21:24] ningu: jtikalsky: that's why I pass a single var through
[21:25] jtikalsky: the reference to "stash"?
[21:25] ningu: yes... I just find it necessary to package things that way more often with this kind of coding
[21:25] chjj: ningu: write one function that does a very specific asynchronous thing, and string them together, they shouldnt need access to *all* the variables in the scope
[21:25] jtikalsky: right
[21:25] jtikalsky: so the scope is the "object" scope of stash
[21:26] dropbr has joined the channel
[21:26] jtikalsky: if I understand you correctly
[21:26] ningu: yes, once you've split it into separate functions
[21:26] jtikalsky: do do you write object methods as well?
[21:26] ningu: I guess what I find frustrating is that often these functions are one or two lines. so sync code would be like 10 lines, and it becomes 25 with all the declarations
[21:27] ningu: jtikalsky: so far these have all been one-off things where it isn't obvious that doing that would lead to any code sharing
[21:28] chjj: ningu: youll become more comfortable with it eventually
[21:28] jtikalsky: well, you're organizing your variables it seems
[21:28] ningu: yeah
[21:28] jtikalsky: rather than just dumping everything into the global scope
[21:28] ningu: no, that would clealy be a lousy idea
[21:28] jtikalsky: or, what seems to be more common these days
[21:28] Poetro has joined the channel
[21:28] jtikalsky: into the 'application" scope
[21:28] ningu: but the variables together don't necessarily make a coherent object except in the context of that one method, or small set of methods
[21:29] ningu: it's not that much of a hassle, really, but it takes some getting used to
[21:29] ningu: I've been breaking things down more as I get used to it
[21:29] jtikalsky: well the next step would be to group the variables more logically I suppose
[21:30] joe__k: tjholowaychuk: you are the mocha guy, right? is the expect ui worse than the other uis, for solely this reason?
[21:30] joe__k: because there is no implicit functional closure over more specified tests?
[21:30] tjholowaychuk: joe__k: you can use "this" as well
[21:30] tjholowaychuk: this.foo = 'bar'
[21:30] ningu: jtikalsky: part of the issue is that this project is for my research, and needs will develop as my research develops, so I can't say beforehand what the featureset will be
[21:30] tjholowaychuk: joe__k it's just less flexible than the other UIs
[21:30] ningu: or what variable groupings will necessarily be needed
[21:30] joe__k: tjholowaychuk: i like its declarativeness
[21:30] jtikalsky: ningu, that's the beauty of JavaScript
[21:30] tjholowaychuk: but "this" is a mocha.Context
[21:31] jtikalsky: you don't define object classes
[21:31] ningu: joe__k: chances are tj is the answer to "are you the * guy?"
[21:31] jtikalsky: objects are just really just dictionaries
[21:31] tuhoojabotti: "I wrote a program with Node.js and it's in production. AMA."
[21:31] ningu: yeah, I guess I could put the methods on right when I make the object the first time
[21:31] tuhoojabotti: ":D"
[21:32] matt_c has joined the channel
[21:32] ningu: I often have one-off functions within my routes -- things that several branches could lead to
[21:32] dshaw_ has joined the channel
[21:33] jtikalsky: well, another nice thing is that you can share the code of a method on several objects
[21:33] jtikalsky: no need to write it twice
[21:33] jtikalsky: anyway, I think your approach is pretty good
[21:33] jtikalsky: :)
[21:35] SuMarDi has joined the channel
[21:35] Lingerance: well, another nice thing is that you can share the code of a method on several objects <-- Object1.prototype.foo = Object2.prototype.foo = function() { ... } // ?
[21:36] jtikalsky: Lingerance, yes that would work I suppose
[21:37] jtikalsky: I'm not sure I'd write it like that
[21:37] Lingerance: I'd have it seperated out, but yeah
[21:38] jtikalsky: you also don't have to reference a prototype if you don't want to
[21:38] jtikalsky: your choice
[21:38] Lingerance: What?
[21:39] jtikalsky: I'm trying to think of a good example
[21:39] dbrain has joined the channel
[21:40] SubStack: nibblebot: I do nested seq()s like that sometimes. Works fine.
[21:40] AndreasMadsen has joined the channel
[21:41] alm0nd has joined the channel
[21:41] robi42 has joined the channel
[21:41] EhevuTov: Node is the new hotness. Thumbs up everybody!
[21:42] jtikalsky: here: http://pastebin.com/hZJ6ME9h
[21:42] skylamer`: and even isnt released its first version :)
[21:43] jtikalsky: just referencing a named function
[21:43] jtikalsky: and using it in two definitions
[21:43] Lingerance: Note: that function is still not-named
[21:44] joe__k: hm. I set this.x = 'y' in before
[21:44] joe__k: and log utils.inspect(this) in the test method, and I get {}
[21:45] petrjanda has joined the channel
[21:45] jakob___ has joined the channel
[21:45] jtikalsky: Lingerance, how so?
[21:46] jakob___: how do I install nodejs on windows?
[21:46] pekim has joined the channel
[21:46] joe__k: jakob___: download and run
[21:46] joe__k: so, one thing I wonder is how node.js handles path differences between windows and unix
[21:46] joe__k: there is really no mention of this kind of thing
[21:47] jakob___: is it better to program using ubuntu than windows using node.js?
[21:47] joe__k: either works
[21:47] geojeff has joined the channel
[21:47] Lingerance: > function a() {}; var b = function() {}; [a,b]
[21:47] Lingerance: [ [Function: a], [Function] ]
[21:47] Lingerance: jtikalsky: ^
[21:48] Lingerance: There's also the .name property of functions
[21:48] jtikalsky: Ah ok...
[21:48] jakob___: ok, thx :)
[21:49] jtikalsky: I mean "named" as in "not anonymous"
[21:49] lduros has left the channel
[21:49] Lingerance: As did I
[21:49] jtikalsky: there is a reference to the function
[21:49] Lingerance: You can assign anonymous functions to a variable
[21:49] Lingerance: They'll still show up as anonymous functions in a stracktrace.
[21:49] jtikalsky: yes I know.
[21:49] matt_c has joined the channel
[21:49] bradleymeck: joe__k if you want to deal with path separators (the only true oddity) use require('path').join
[21:49] jtikalsky: ah I see
[21:50] ryan_stevens: Lingerance: you can name the functions that you assign to variables
[21:50] Lingerance: ryan_stevens: I am aware
[21:50] ryan_stevens: var foo = function foo() {}
[21:50] ryan_stevens: Lingerance: That those still don't show up in stack traces?
[21:50] StanlySoManly1 has joined the channel
[21:51] joe__k: bradleymeck: of course.
[21:51] alejandromg has joined the channel
[21:51] Lingerance: No, anonymous functions and named functions both show up in stack traces. Named ones make for easier debugging though.
[21:51] TimTimTim has joined the channel
[21:52] bradleymeck: grep -r "function mynamedFunction" vs grep -r "function", one will win more often
[21:52] jtikalsky: Lingerance: that function is still not-named
[21:52] jtikalsky: What did you mean by "that function"?
[21:52] Lingerance: var isManOrMuppet = function() {
[21:52] Lingerance: All of them are actually anonymous
[21:52] jtikalsky: ok
[21:53] jtikalsky: how would you fix that?
[21:53] Lingerance: function isManOrMuppet() {
[21:53] vrracing has joined the channel
[21:53] jtikalsky: ah ok I see the distinction you''re making now
[21:54] Lingerance: Or: var isManOrMuppet = function manOrMuppetCheck() {
[21:54] Lingerance: Note: you can also name them the same, but that's pointlessly redundant
[21:54] jtikalsky: interesting
[21:55] sriley: anyone using nodemon? had any issues with using it on a non native filesystem eg an nfs mount?
[21:55] cmwelsh: what package should I use to log messages to the console? I just want something simple to prepend the line with a date/time for my logs
[21:55] volkan has joined the channel
[21:55] cmwelsh: otherwise I'll just publish a personal use one... but that seems silly
[21:55] sorensen__ has joined the channel
[21:55] davidbanham has joined the channel
[21:55] jmar777 has joined the channel
[21:56] jtikalsky: Lingerance: You've taught me something
[21:56] StanlySoManly has joined the channel
[21:56] bradleymeck: cmwelsh, winston, with timestamp true
[21:57] jtikalsky: I didn't realize that you could name the function like that
[21:57] bbn has joined the channel
[21:57] cmwelsh: bradleymeck: thank you mate
[21:57] jtikalsky: definitely useful
[21:57] Lingerance: Like I said, makes stack traces nice
[21:57] jtikalsky: Yes, I can see how that would be very very helpful
[21:57] cmwelsh: I wish CoffeeScript did that for you
[21:58] cmwelsh: it seems silly especially when the JavaScript is being auto generated not to have *something*
[21:58] cmwelsh: perhaps I just haven't figured it out yet :)
[21:59] joe__k: tjholowaychuk: "this" (mocha.Context) seems a bit wonky, like its mutated for each test serially, versus being hierarchially defined
[22:00] joe__k: tjholowaychuk: in my "before", inspecting this shows name: of a function that should run AFTER before
[22:00] dilvie has joined the channel
[22:00] joe__k: tjholowaychuk: err, title
[22:01] joe__k: tjholowaychuk: and changes to "this" in "before" don't make it to the test function run in the same block, after the "before"
[22:02] ohtogo has joined the channel
[22:03] ppcano_ has joined the channel
[22:03] enmand has joined the channel
[22:03] ph^ has joined the channel
[22:05] whaley has joined the channel
[22:07] jtikalsky has left the channel
[22:07] _shadowshell has joined the channel
[22:08] crutex: is there any pcap module compatible with node 0.6
[22:11] skeptic has joined the channel
[22:12] TooTallNate: crutex: what's wrong with node_pcap?
[22:12] kitt has joined the channel
[22:12] crutex: well if i install it from npm at least it's failling to load
[22:13] crutex: it was working a year ago or so last i tried
[22:13] crutex: so i assume there was some incompatiblity
[22:13] TooTallNate: this commit seems to state it should work on 0.6 https://github.com/mranney/node_pcap/commit/48a7c112ab898a8584bb028f6df452f73be666a2
[22:13] TooTallNate: but if not, it's probably a trivial fix, and likely already solved on the Issues list
[22:15] crutex: Error: Unable to load shared library /mnt/hgfs/Code/code/d2measure/node_modules/pcap/build/Release/pcap_binding.node
[22:15] crutex: not even sure where to start in this case :)
[22:17] cmr has joined the channel
[22:17] TooTallNate: crutex: osx 0.6.11 from the pkg installer?
[22:17] crutex: its in an ubuntu vm
[22:17] cgray has joined the channel
[22:18] robi42 has joined the channel
[22:18] dve has joined the channel
[22:18] TooTallNate: run `file node` and `file /mnt/hgfs/Code/code/d2measure/node_modules/pcap/build/Release/pcap_binding.node`
[22:19] crutex: /mnt/hgfs/Code/code/d2measure/node_modules/pcap/build/Release/pcap_binding.node: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
[22:19] TooTallNate: like 90% of the time "Unable to load shared library" is an architecture difference
[22:19] ph^ has joined the channel
[22:19] crutex: file node does node: ERROR: cannot open `node' (No such file or directory)
[22:19] tjholowaychuk: joe__k seems fine
[22:19] TooTallNate: well, whatever that path to your node executable
[22:19] philipd has joined the channel
[22:20] crutex: /usr/local/bin/node: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
[22:21] TooTallNate: so it's not the arch then
[22:21] crutex: nopenope
[22:23] maxogden: isaacs: i copied you a while ago and under Company on my github profile put "Pouch (happy here, go away recruiters)"
[22:23] maxogden: isaacs: and some recruiter just emailed me "I know you are at Pouch, but I wanted to tell you more about zozi nonetheless!"
[22:24] benvie: I just generated a 50,000 line ffi binding for windows.h
[22:25] benvie: with enums, typdefs, and structs
[22:26] gorekee has joined the channel
[22:27] WeeJeWel has joined the channel
[22:27] agnat: crutex: debugging dynamic loader issues without dynamic loader error messages sucks. If you're stuck you might want to try https://github.com/agnat/node/tree/dlopen_error_messages
[22:27] confoocious has joined the channel
[22:27] confoocious has joined the channel
[22:28] jacobolus has joined the channel
[22:29] rauchg has joined the channel
[22:30] perezd has joined the channel
[22:30] josh-k has joined the channel
[22:30] crutex: may i pm you TooTallNate
[22:31] huggies has joined the channel
[22:31] crutex: when install pcap i get this https://gist.github.com/5e3b4930641e6a83c6a2
[22:31] crutex: which
[22:31] crutex: the cxx_link link is highlighted red, thugh it says successful xD
[22:33] gkatsev has joined the channel
[22:35] caolanm has joined the channel
[22:35] DavidIAm has joined the channel
[22:35] DavidIAm: I'm confused by npm.
[22:35] DavidIAm: npm_config_prefix="./build" npm prefix
[22:36] DavidIAm: doesn't output anything with ./build in it.
[22:37] imsky has joined the channel
[22:38] padd173 has joined the channel
[22:40] lmorchard has joined the channel
[22:41] skyler_brungardt has joined the channel
[22:41] nibblebot: any1 seen this b4: Assertion failed: handle->InternalFieldCount() > 0, file ../src/node_object_wrap.h, line 51 ?
[22:41] nibblebot: trying to trace this back to one of my modules..
[22:41] tokumine has joined the channel
[22:41] colinclark_ has joined the channel
[22:42] mraleph has joined the channel
[22:43] enmand has joined the channel
[22:44] tmcw has joined the channel
[22:45] JJMalina has joined the channel
[22:46] TooTallNate: crutex: i would suggest trying agnat's branch, seeing what the actual error is
[22:46] retornam has joined the channel
[22:47] lacker has joined the channel
[22:47] AvianFlu: nibblebot, are you on 0.6 or on master?
[22:47] lacker: hi folks. so i'm trying to install node and npm on ubuntu, and by default npm doesn't work
[22:47] lacker: sudo apt-get install nodejs # this works
[22:47] lacker: npm help # this fails
[22:48] francisl has joined the channel
[22:48] lacker: node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
[22:48] zackattack has joined the channel
[22:48] AvianFlu: lacker, what does node -v tell you?
[22:48] lacker: v0.6.11
[22:48] crutex: ok TooTallNate will do
[22:48] jetienne__ has joined the channel
[22:48] AvianFlu: strange, I didn't think they had an 0.6.11 package yet
[22:48] AvianFlu: lacker, npm -v?
[22:49] lacker: npm -v crashes
[22:49] lacker: with that same error
[22:49] lacker: I just installed it using `add-apt-repository ppa:chris-lea/node.js`
[22:49] lacker: etc
[22:50] lzskiss has joined the channel
[22:50] JJMalina has joined the channel
[22:50] AvianFlu: lacker, you should try `curl npmjs.org/install.sh | sudo sh`
[22:50] AvianFlu: the bundled npm you got doesn't seem to be right
[22:51] cha0s has joined the channel
[22:51] DavidIAm: is there an option on tha tinstlal.sh to install a particular version
[22:51] lacker: hmm. i'm following the instructions on https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
[22:51] AvianFlu: DavidIAm, probably. read the script :D
[22:51] DavidIAm: avian heh.
[22:51] lacker: i hate to put that curl | sh stuff into our deployment scripts
[22:52] DavidIAm: I want to use npm to install a package that is a directory into another directory entirely.
[22:52] nibblebot: AvianFlu: .4.12
[22:52] pixel13 has joined the channel
[22:52] AvianFlu: lacker, if you compile from source, npm will work
[22:52] DavidIAm: like, when I say -'make build' it creates a build tree that contains my current package and all the dependencies.
[22:52] lacker: are the ubuntu packages officially supported?
[22:52] pixel13 has left the channel
[22:52] AvianFlu: lacker, no
[22:52] ritch1 has joined the channel
[22:52] AvianFlu: there are 'official' ones for 0.4.x
[22:52] AvianFlu: but the ones you're using are some guy trying to help out the ubuntu world
[22:53] AvianFlu: so, I'm glad he does it, but if it errors, I wouldn't keep messing with it
[22:53] lacker: joyent does link to them... they should probably fix that
[22:53] lacker: the ubuntu package version of node doesnt seem to work with downloaded npm, either
[22:54] lacker: so the ubuntu package appears to be fubarred
[22:54] lacker: anywhere in particular i should report that?
[22:54] AvianFlu: I'm not completely sure
[22:54] DavidIAm: the deb package should have a maintainer email in it.
[22:55] AvianFlu: lacker, I put this on github because of people having trouble with package managers https://github.com/AvianFlu/getnode/blob/master/getnode
[22:55] jaw187 has left the channel
[22:55] AvianFlu: it's nothing complex, but it will install and compile a specific node version without thinking required
[22:55] cgray has joined the channel
[22:55] lacker: what would be great is an ubuntu package that works
[22:55] AvianFlu: I got tired of "I can't upgrade to 0.6.x there's no package yet!" XD
[22:55] AvianFlu: I mean, yeah, definitely
[22:55] lacker: ubuntu seems likely to be the most common deployment environment
[22:55] lacker: so, I suggest that it become officially supported
[22:56] sorensen__ has joined the channel
[22:56] lacker: anyway, thanks for your help
[22:56] DavidIAm: is npm not supposed to install things where you want it to?
[22:56] jldbasa has joined the channel
[22:56] crutex: it installs things where IT wants to of course
[22:56] TooTallNate: i doubt ubuntu is the most common deployment platform
[22:56] crutex: :)
[22:56] imsky: go..windows?
[22:56] crutex: i'm sure ubuntu server is in the top 3
[22:57] DavidIAm: crutex - ... thats not useful.
[22:57] DavidIAm: crutex - at least, its not being nice to me that way.
[22:57] TooTallNate: DavidIAm: well what do you mean?
[22:58] DavidIAm: Nate - I want to have a build tree, where npm installs as if I had it in a targz or something.
[22:58] DavidIAm: nate - so I say 'make test', it creates a 'build' directory, installs the module into it, with its dependencies.
[22:58] DavidIAm: nate - then runs my jasmine-node specs
[22:59] EuroNerd has joined the channel
[23:00] hatch has left the channel
[23:01] seanbeausoleil has joined the channel
[23:01] ekryski has joined the channel
[23:01] sauerbraten has joined the channel
[23:02] DavidIAm: nate - what I'm observing is that it scribbles directly in my source tree. :/
[23:03] keeto has joined the channel
[23:03] michaeldeol has joined the channel
[23:03] TimTimTim has joined the channel
[23:05] shadowshell has joined the channel
[23:05] Destos has joined the channel
[23:06] devaholic has joined the channel
[23:06] cmwelsh: to anyone: what promises library do you use?
[23:07] Correcto has joined the channel
[23:08] TooTallNate: DavidIAm: "nate" doesn't ping me :) But npm only installs modules into the ./node_modules directory
[23:08] TooTallNate: usually alongside a package.json file
[23:09] TooTallNate: cmwelsh: vanilla callbacks all the way down
[23:09] DavidIAm: tootallnate - oh, I see.
[23:10] cmwelsh: TooTallNate: I suppose I'll just use Step instead of promises
[23:10] c4milo has joined the channel
[23:10] jocafa: much like turtles in that regard
[23:11] r1ngzer0 has joined the channel
[23:11] DavidIAm: tootallnate - so it just makes a directory automatically when there is a package file
[23:12] francisl has joined the channel
[23:12] francisl has left the channel
[23:12] TooTallNate: cmwelsh: step works well, but still, i advocate using vanilla callbacks
[23:13] TooTallNate: at least until you're comfortable enough to write your own flow control lib ;)
[23:13] TooTallNate: (that is if you still think it's necessary, I never have)
[23:13] st_luke_ has joined the channel
[23:13] TooTallNate: DavidIAm: right, node_modules is the magic directory name
[23:14] DavidIAm: so I'm thinking to do what I want I need to copy the whole tree to the build directory, and install there. silly.
[23:14] cris_ has joined the channel
[23:14] volkan has joined the channel
[23:15] TooTallNate: why do you *need* a build dir?
[23:15] TooTallNate: just do it the node way :)
[23:16] cris_: bit of a node newbie, but wondering if its possible to store mongoose models 'in' mongo so they can be added to at runtime
[23:16] ericmuyser|air has joined the channel
[23:16] cha0s has joined the channel
[23:16] cha0s has joined the channel
[23:17] TooTallNate: cris_: not really, just store the models in JS files in your repo
[23:17] francisl_ has joined the channel
[23:17] flagg0204 has joined the channel
[23:17] alejandromg has joined the channel
[23:17] keeto has joined the channel
[23:18] DavidIAm: tootallnate - well, I'm trying to make a consistent pattern in our build system...
[23:18] cris_: Say I have a user database, and my users want to add fields, and choose from a selection of validators, data types etc... shouldn't this be possible with a document store?
[23:18] DavidIAm: Sure its possible.
[23:18] orkz has joined the channel
[23:19] DavidIAm: but document stores store json, not js.
[23:19] TooTallNate: cris_: ya it's probably possible, but i don't know of anyone doing that
[23:19] DavidIAm: With software, any combination of bit-twiddling is possible!
[23:20] DavidIAm: ACTION is an expert bit-twiddler.
[23:20] cris_: I wouldn't store the js, just references to methods
[23:20] TooTallNate: and then where would the methods be stored?
[23:21] cris_: in a js file, when a user adds a new field they would only select from a selection of pre-defined validators etc...
[23:21] ritch1: cris_: this isnt entirely complete but similar to what you are asking for - https://github.com/deployd/deployd
[23:22] DavidIAm: the validation problem frequently requires coding to solve.
[23:23] blup has joined the channel
[23:23] cris_: ritch1 - thanks looking at it now
[23:24] mehlah has joined the channel
[23:26] imsky: ritch1: is this your project?
[23:26] illourr has left the channel
[23:26] ritch1: ya
[23:26] ritch1: very early stuff
[23:26] ritch1: feel free to hack around with it tho
[23:26] imsky: how does it work?
[23:27] ritch1: not very well
[23:27] ritch1: heh jk - its really just a thin layer on mongodb
[23:27] ritch1: that makes it safe to expose mongo to browser clients
[23:27] imsky: you're saying it's hosted, so people's code runs on your server
[23:27] bhunt has joined the channel
[23:28] ritch1: its fully open source but we have a hosted version
[23:28] theBrettman has joined the channel
[23:28] DeepEd has joined the channel
[23:28] imsky: well godspeed soldier
[23:28] ritch1: really open not GPL or some bs
[23:29] cris_: we do a flexible db system already built on a lamp stack - need a lot more speed though
[23:29] cris_: and flexibility
[23:29] ritch1: thx imsky
[23:29] charlenopires has joined the channel
[23:32] djbell has joined the channel
[23:33] cesconix has joined the channel
[23:34] robi42 has joined the channel
[23:34] reid has joined the channel
[23:34] reid has joined the channel
[23:35] d1ApRiL has joined the channel
[23:35] cha0s has joined the channel
[23:35] cha0s has joined the channel
[23:38] lperrin has joined the channel
[23:42] aslant has joined the channel
[23:43] mandric has joined the channel
[23:48] VladGh` has joined the channel
[23:48] muke has joined the channel
[23:49] volkan has joined the channel
[23:49] VladGh has joined the channel
[23:50] JJMalina has joined the channel
[23:51] imsky has left the channel
[23:51] Renegade001 has joined the channel
[23:52] cjm has joined the channel
[23:53] YoY has joined the channel
[23:55] krnl has joined the channel
[23:55] francisl has joined the channel
[23:55] michaelhartau has joined the channel
[23:58] krebipeti has joined the channel
[23:58] Wa has joined the channel
[23:58] krebipeti: hi
[23:58] krebipeti: anybody home?
[23:59] TooTallNate: hi
[23:59] cris_: hey