00:00:09  * ircretaryjoined
00:00:37  * kenperkinsquit (Quit: Computer has gone to sleep.)
00:02:27  <isaacs>dominictarr: i hope my "this is all vanity" response on that thread wasn't too harsh..
00:04:44  <dominictarr>isaacs: that was a brillant post
00:05:12  <dominictarr>I nearly just closed the issue after that, as the perfect ending.
00:06:25  <dominictarr>I never realized just how many interpretations there where for semver
00:06:50  <dominictarr>before that issue, I thought it just people who understood it, and people who didn't
00:07:27  <dominictarr>turns out, there where many interpretations
00:07:49  * kenperkinsjoined
00:10:55  <rvagg>I still maintain my "semver apathetic" status
00:14:17  <dominictarr>don't start that
00:17:58  <isaacs>dominictarr: yeah, it really brought me back to 2009 :)
00:18:04  <isaacs>dominictarr: that whole discussion
00:18:35  <isaacs>dominictarr: do you know that there was resistance in the commonjs package community for even having version ranges or pinning a dep to a specific version?
00:18:55  <isaacs>dominictarr: there were sprawling threads on the commonjs list about how you should just declare "foo":"1.2.3" and be ok with getting 1.2.4
00:19:15  <dominictarr>oh, that is crazy
00:19:22  <isaacs>dominictarr: and then people saying, nono, you should be ok with 1.3.x, buit not 1.4, since 1 minor version update is ok but 2 aren't, etc. etc.
00:19:31  <isaacs>like, dude, that rabbit hole is deep and scary
00:20:10  <isaacs>and systems that work this way, only work by maintaining extremely dogmatic religious views.
00:20:14  <isaacs>(ie, debian)
00:20:46  <dominictarr>yeah, we want to avoid the need to have opinions
00:21:14  <isaacs>well.. we want to avoid the need for the platform to have opinions
00:21:32  <isaacs>*people* will have opinions, and *projects* will reflect those opinions
00:21:48  <isaacs>but the system has to be loosey goosey liberal anarchist to allow it all to function peacefully
00:22:13  <dominictarr>yeah,
00:22:19  <isaacs>and, ironically, the way to do that is to have your package manager be an absolute strict rule-follower about giving you the version you specify and no other
00:22:45  <isaacs>this is also why git is great: no opinions, no cleverness. it does what it says it does, and does what you tell it.
00:22:48  <dominictarr>yeah, because then it becomes a force of nature
00:22:51  <isaacs>yeah
00:23:01  <isaacs>something you can reason about and build humane tools around
00:23:10  <dominictarr>exactly
00:23:23  <isaacs>dominictarr: you up on streams2 mumbojumbo at all?
00:23:33  <isaacs>Raynos: ping i have an idea, want your thoughts
00:23:55  <isaacs>so, i'm thinking that Writable._write(chunk, cb) should be Writable._write(chunk, encoding, cb)
00:23:58  <dominictarr>so after this discussion I'm just gonna add a stability section to all my readmes, that follows the stability index in the node docs
00:24:07  <isaacs>dominictarr: that's a brilliant idea
00:24:38  <dominictarr>yeah, because if I write a tiny 10 line module I want to never change it
00:24:49  <dominictarr>so I just publish it as 1.0.0 and say the api is frozen
00:25:26  <isaacs>yeah, i've been just calling my little things 1.0 from the get-go
00:25:31  <dominictarr>don't make a feature request, only bug fixes
00:25:40  <isaacs>< 100 lines => doesn't get a 0.x release
00:26:10  * kenperkinsquit (Quit: Computer has gone to sleep.)
00:26:10  <isaacs>json-stringify-safe doesn't even use minor or patch versions.
00:26:14  <isaacs>every change is a major version update.
00:26:15  <dominictarr>yeah, I've got other stuff that is bigger, and has had breaking changes, but I still want to encourage people to use it
00:26:53  <dominictarr>stability is like a forecast on how the version number is expected to change
00:27:35  <dominictarr>isaacs: I thought Writable in streams2 was the same as streams1?
00:27:42  <isaacs>dominictarr: no, it's not quite
00:27:51  <dominictarr>what is the difference?
00:27:53  <isaacs>dominictarr: it has a high water mark, consistent impelmentation in all internal streams, etc.
00:28:02  <isaacs>you implement _write() and you get all the things for you
00:28:08  <isaacs>you don't even have to worry about return values.
00:28:44  <isaacs>the question is, should it be _write(chunk,cb) (and usually always a buffer) or _write(chunk,encoding,cb) (and only a buffer if decodeStrings !== false)
00:28:46  <dominictarr>oh, right - so if it passes you 1k of data, then when you callback it decrements the watermark by that amount
00:28:51  <isaacs>right
00:29:01  <isaacs>and then it knows when to call drain, etc.
00:29:09  <isaacs>all you have to impelemnt is the actual writing
00:29:13  <isaacs>which is As It Should Be
00:29:19  <dominictarr>yeah
00:29:45  <dominictarr>so, what happens when you have a stream that is both readable and writable?
00:30:05  <dominictarr>I have written few streams that are one-sided, to be honest
00:31:43  <isaacs>dominictarr: you extend Duplex, or Transform
00:32:00  <dominictarr>and implement _write and _read?
00:32:01  <isaacs>dominictarr: if you extend Duplex, then you implement both _read(n) and _write(chunk,enc,cb)
00:32:13  <isaacs>dominictarr: if you extend Transform, you implement _transform(chunk, output, cb)
00:32:22  <dominictarr>right
00:32:46  <isaacs>Duplex is good for generic in-out things
00:32:54  <isaacs>Transform is for compression/etc. "through streams"
00:33:20  <isaacs>causally connected input/output, where there's no sense checking for more data until you've written something
00:33:42  <isaacs>Duplex is for casually connected input/output. where they may be related, but not necessarily.
00:33:42  <dominictarr>oh, by the way, I think I've cleared up my thinking in the distinction I'm trying to make when I say duplex vs through
00:34:05  <dominictarr>I'm talking about streams that have side-effects or not
00:34:09  <isaacs>yeah
00:34:27  <isaacs>effectively, it's about causality
00:34:34  <dominictarr>feah
00:34:35  <dominictarr>yeah
00:34:37  <isaacs>is output caused by something other than input, or not?
00:34:41  <isaacs>(potentially)
00:34:48  <isaacs>if it is, or can be, then you need a Duplex
00:34:55  <dominictarr>yes, thats it
00:35:03  <isaacs>but like, Zlib is transform, because oyu can't get more output without putting more input in
00:36:32  <dominictarr>yes.
00:37:22  * kenperkinsjoined
00:38:24  <dominictarr>so, what is encoding set to if someone writes a buffer?
00:41:20  <dominictarr>isaacs: is there a shortcut for --no-registry ?
00:41:32  <isaacs>dominictarr: --no-reg maybe?
00:41:49  <isaacs>dominictarr: you could rest on the magic of abbrev's, and use -no-re
00:41:54  <isaacs>i think that'd work
00:42:09  <isaacs>oh, no, that isn't distinct. --no-rebuild-bundle
00:42:11  <dominictarr>-N would be nice
00:42:31  <isaacs>dominictarr: patch welcome. https://github.com/isaacs/npmconf
00:47:25  * kenperkinsquit (Quit: Computer has gone to sleep.)
00:47:56  <dominictarr>isaacs: https://github.com/isaacs/npmconf/pull/12
00:55:50  * kenperkinsjoined
00:58:44  <dominictarr>ralphtheninja: if you want to see some interesting meta stuff, check this out https://github.com/dominictarr/it-is
01:00:37  <dominictarr>(I don't really use it any more, mind you)
01:06:22  <ralphtheninja>dominictarr: thanks!
01:09:08  * kenperkinsquit (Quit: Computer has gone to sleep.)
01:09:10  * stlsaintquit (Quit: leaving)
01:12:43  <ralphtheninja>what's the status of peerDependencies?
01:12:52  <thl0>substack: can browser-pack upgrade uglifyjs to @2?
01:13:20  <thl0>asking because just using source-map is a pain, but uglify@2 has source map support
01:13:42  <thl0>(uses source-map module under the hood)
01:19:30  * thl0quit (Remote host closed the connection)
01:19:32  * stlsaintjoined
01:26:54  <rvagg>ralphtheninja: it's in and working, http://blog.nodejs.org/2013/02/07/peer-dependencies/
01:42:29  <Raynos>Isaacs: sure
01:42:29  * mmckeggjoined
01:43:38  <ralphtheninja>rvagg: cool, they linked to levelup plugins
01:44:23  <ralphtheninja>err dominictarr level-hooks that is, but it's out there at least
01:44:52  <isaacs>Raynos: plan = Writable.prototype._write = function(chunk, encoding, cb)
01:44:58  <isaacs>Raynos: instead of function(chunk,cb)
01:45:13  <dominictarr>ralphtheninja: who linked?
01:45:41  <dominictarr>oh, i see
01:45:51  <dominictarr>it should like to the modules wiki page I tihnk
01:47:51  <Raynos>Isaacs: that's fine. Don't care
01:48:49  <ralphtheninja>dominictarr: agree, perhaps they weren't aware of it
01:54:58  <isaacs>Raynos: kewl.
01:55:29  * spionquit (Ping timeout: 246 seconds)
01:57:09  <rvagg>isaacs: could you change that link to LevelUP on the http://blog.nodejs.org/2013/02/07/peer-dependencies/ to point to https://github.com/rvagg/node-levelup/wiki/Modules pls?
02:00:32  <rvagg>dominictarr: https://github.com/rvagg/node-levelup/pull/87#discussion_r3219093
02:01:02  <isaacs>rvagg: it's just markdown in the node source code. wanna send a pr? doc/blog/module/peer-dependencies.md i think
02:01:10  <rvagg>cool, will do
02:01:13  <isaacs>or mapbe ../npm/peer-dependencies.md
02:01:35  <isaacs>rvagg: i'm itm of refactoring writable. it's going well, but totally knee-deep in it
02:01:39  <isaacs>will forget otherwise :)
02:01:54  <rvagg>np
02:05:28  <ralphtheninja>dominictarr: have you tried peerDependencies with e.g. level-hooks?
02:05:46  <dominictarr>ralphtheninja: not yet, it's still experimental
02:05:57  <ralphtheninja>
02:06:05  <dominictarr>I plan to keep it up to date with the latest levelup anyway
02:09:35  <rvagg>hij1nx: how's our leveldb logo going? we need it so we can all use it on the READMEs for our various libs
02:12:58  <isaacs>hmm... making _write take the encoding as well is annoying because then _transform needs to get an encoding also
02:18:15  <dominictarr>rvagg: hij1nx what is the logo gonna look like?
02:19:20  * thl0joined
02:20:20  <rvagg>he's got a designer onto it I think
02:20:31  * stlsaintquit (Quit: leaving)
02:22:56  * thl0quit (Remote host closed the connection)
02:29:45  <dominictarr>hij1nx: I'm imagening something involving a stack of hexagons
02:30:21  <dominictarr>a stack of hexagons of different sizes, so it looks kinda like a tree
02:31:12  <dominictarr>rvagg: fixed undefined self and merged.
02:33:01  <dominictarr>https://github.com/dominictarr/stability
02:43:41  * tilgoviquit (Remote host closed the connection)
02:44:19  <ralphtheninja>isaacs: why is the encoding parameter so important?
02:44:34  <isaacs>ralphtheninja: because we don't pre-buffer-ize strings written to sockets.
02:44:42  <isaacs>ralphtheninja: this is a huge performance benefit to do it this way
02:44:53  <isaacs>ralphtheninja: especially for ascii strings, but for utf8 as well
02:45:19  <ralphtheninja>isaacs: nods, what do you want me as a user to do with it? when does it come into play?
02:45:38  <isaacs>ralphtheninja: well, if you don't set decodeStrings:false in your options object, you'll never get a non-buffer anyway
02:45:42  <isaacs>ralphtheninja: so you can safely ignore it.
02:45:52  <ralphtheninja>isaacs: ✔
02:45:54  <isaacs>but, the API cannot safely throw it away
02:46:06  <isaacs>from your pov, you could just assume that every time, the user happened to write you a Buffer.
02:48:37  <ralphtheninja>so if we reverse it, if I do get strings in, I want to know how they are encoded and that's what the encoding parameter is telling me?
02:48:54  <rvagg>dominictarr: levelup@0.6.2 is all yours
02:49:08  <isaacs>ralphtheninja: yes
02:49:32  <isaacs>ralphtheninja: if you set decodeStrings:false in the options object that goes to the Writable ctor, then you'll get strings instead of buffers
02:49:41  <isaacs>ralphtheninja: and the second arg will tell you what kind of string it is
02:49:47  <ralphtheninja>so performance by default, cool! and if I do want to mess around with encodings I can do that
02:49:49  <isaacs>ralphtheninja: unless the user writes a Buffer, and then ignore that arg.
02:49:57  * thl0joined
02:49:57  <isaacs>yeah
02:50:12  <isaacs>ralphtheninja: but like, if you're gonna just turn around and make a buffer out of it right there, then fuck that.
02:50:20  <isaacs>ralphtheninja: just have the front-line do it for you
02:50:20  <dominictarr>rvagg: sweet!
02:51:29  <ralphtheninja>buffers ftw!
02:52:02  <isaacs>dominictarr: s/Depreciated/Deprecated/
02:52:18  <dominictarr>thanks
02:52:19  <isaacs>dominictarr: we're marking them as no longer supported, not reducing their value slowly over time.
02:52:23  <isaacs>:)
02:52:33  <isaacs>though I guess deprecation is liable to cause depreciation
02:52:43  <ralphtheninja>isaacs: can't you store the encoding as a read-only property on the stream instead?
02:52:52  <ralphtheninja>if you want to avoid a gazillion parameters
02:53:15  <isaacs>ralphtheninja: foo.write('hello', 'utf8'); foo.write('deadbeef', 'hex'); foo.write(someBuffer, null)
02:53:26  <isaacs>ralphtheninja: that is, no. you can't. becuase your user sets it
02:54:28  <ralphtheninja>well that settles it then
02:54:31  <isaacs>ralphtheninja: you set a single encoding for readables with stream.setEncoding('utf8') and then you get strings instead of buffers.
02:56:20  <ralphtheninja>aye, so if you don't provide the encoding in write() that's what it defaults to
03:06:21  * thatguydanquit (Read error: Operation timed out)
03:08:05  * thatguydanjoined
03:16:45  * thl0quit (Remote host closed the connection)
03:25:23  * thatguydanquit (Read error: Connection reset by peer)
03:26:06  * thatguydanjoined
03:30:31  * thatguydanquit (Read error: Operation timed out)
03:30:57  * thatguydanjoined
03:39:16  * kirbysayshijoined
03:40:10  * kenperkinsjoined
03:43:51  * mikolalysenkojoined
03:51:29  * Domenic_joined
03:52:06  * kenperkinsquit (Quit: Computer has gone to sleep.)
03:52:24  <Domenic_>Anyone done the //@sourceURL transform yet?
03:58:07  * fentjoined
03:58:14  * kenperkinsjoined
04:03:50  * fentquit (Quit: leaving)
04:09:37  * kenperkinsquit (Quit: Computer has gone to sleep.)
04:16:22  * kenperkinsjoined
04:22:07  * dominictarrquit (Quit: dominictarr)
04:27:13  <Domenic_>Oh darn, it's nontrivial. Transforming into eval("<source>") format defeats the require-analyzer.
04:28:20  * kenperkinsquit (Quit: Computer has gone to sleep.)
04:37:39  <rvagg>this is how it works for you guys too right? https://pbs.twimg.com/media/BEfEr9ECYAA3ZFs.jpg
04:38:53  * mikealquit (Quit: Leaving.)
04:40:30  * dominictarrjoined
04:41:32  * defunctzombie_zzchanged nick to defunctzombie
04:44:06  * mikealjoined
04:57:17  * dominictarrquit (Quit: dominictarr)
05:00:07  <Raynos>dominictarr: Massive +1 for stability
05:00:22  <Raynos>I feel like I want to hack together a web gui
05:00:23  <Raynos>for it
05:00:26  <Raynos>login with github
05:00:37  <Raynos>mark all your things as stable / deprecetade / etc
05:03:32  * mikealquit (Quit: Leaving.)
05:04:38  * shamajoined
05:05:24  <defunctzombie>Domenic_: I believe someone is working on it
05:05:48  <Domenic_>defunctzombie: any ideas what approach they're taking
05:06:11  <defunctzombie>Domenic_: hm, I believe it will be part of browser-pack
05:07:37  <Domenic_>makes sense
05:07:59  <defunctzombie>Domenic_: Raynos: http://nodejs.org/docs/v0.9.11/api/documentation.html
05:08:10  <defunctzombie>Domenic_: sorry, that last one wasn't for you
05:09:13  <defunctzombie>Raynos: I find that not enough people use the npm deprecated option either
05:09:23  <defunctzombie>npm has this great way to mark old things as deprecated
05:09:27  <defunctzombie>but I hardly ever see it
05:09:28  * mikealjoined
05:10:51  * defunctzombiechanged nick to defunctzombie_zz
05:12:51  * defunctzombie_zzchanged nick to defunctzombie
05:20:42  * defunctzombiechanged nick to defunctzombie_zz
05:25:37  * kenperkinsjoined
05:39:45  * kenperkinsquit (Quit: Computer has gone to sleep.)
05:42:39  <Raynos>substack: https://twitter.com/FakeAlexRussell/status/306921660957724674 so true
05:42:48  <Raynos>defunctzombie: O HI
05:51:22  * dominictarrjoined
05:57:59  * shamaquit (Remote host closed the connection)
05:58:26  <mbalho>hahaha
06:22:16  * dguttmanjoined
06:22:57  * dguttmanquit (Client Quit)
06:29:27  <hij1nx>rvagg: dominictarr: hey sorry, ive been having connectivity issues all day.
06:31:16  <rvagg>hij1nx: np, disappearing for dinner now tho
06:31:20  <dominictarr>hey, no problem - tomorrow?
06:31:28  <rvagg>hij1nx: tho everyone's interested in progress towards a leveldb logo since I mentioned it
06:32:48  <hij1nx>oh yeah, it is said to be on the way, i had some feedback on the first two iterations and asked for some changes
06:33:23  <hij1nx>still no word back from Jeff or Sanjay though :(
06:33:28  <hij1nx>but, it is the weekend.
06:37:28  * ikpart
06:43:51  * dominictarrquit (Quit: dominictarr)
06:47:02  * Domenic_quit (Ping timeout: 255 seconds)
06:58:04  * sveisveiquit (Ping timeout: 256 seconds)
06:58:52  * notalexgordonquit (Ping timeout: 276 seconds)
06:59:00  * niftylettucequit (Ping timeout: 264 seconds)
06:59:13  * mikolalysenkoquit (Ping timeout: 248 seconds)
06:59:48  * Raynosquit (Ping timeout: 252 seconds)
07:00:08  * ehdquit (Ping timeout: 250 seconds)
07:03:16  * kirbysayshiquit (Quit: Leaving...)
07:12:33  * mikealquit (Quit: Leaving.)
07:14:35  * ehdjoined
07:17:00  * kirbysayshijoined
07:18:04  * kirbysayshiquit (Client Quit)
07:20:01  * mikealjoined
07:39:32  * dominictarrjoined
07:45:00  * Dr_Kjoined
07:48:58  * cianomaidinjoined
07:52:54  * cianomaidin_joined
07:52:54  * cianomaidinquit (Read error: Connection reset by peer)
07:52:55  * cianomaidin_changed nick to cianomaidin
08:10:38  * dominictarrquit (Remote host closed the connection)
08:11:41  * dominictarrjoined
08:30:54  * niftylettucejoined
08:52:54  * slaskisjoined
08:58:42  * mmckeggquit (Quit: mmckegg)
09:07:10  * AvianFluquit (Remote host closed the connection)
09:14:48  * cianomaidinquit (Read error: Connection reset by peer)
09:18:32  * thatguydanquit (Remote host closed the connection)
09:19:43  * thatguydanjoined
09:25:18  * cianomaidinjoined
09:27:23  * sveisveijoined
09:28:49  * notalexgordonjoined
09:28:58  * Raynosjoined
09:57:23  * cianomaidinquit (Quit: cianomaidin)
10:13:51  * dominictarrquit (Quit: dominictarr)
10:26:04  * dominictarrjoined
10:45:32  * thatguydanquit (Quit: thatguydan)
10:51:26  * cianomaidinjoined
11:03:39  * jibayjoined
11:11:51  * cianomaidinquit (Quit: cianomaidin)
11:24:50  * cianomaidinjoined
11:38:32  * spionjoined
11:40:53  * dominictarrquit (Quit: dominictarr)
11:47:30  * thl0joined
11:58:03  * cianomaidinquit (Quit: cianomaidin)
11:59:12  * cianomaidinjoined
12:07:28  * cianomaidinquit (Quit: cianomaidin)
12:17:24  * cianomaidinjoined
12:29:57  * cianomaidinquit (Quit: cianomaidin)
12:34:29  * ins0mniajoined
12:35:42  * zero_coderjoined
12:36:09  * cianomaidinjoined
12:36:53  * cianomaidinquit (Client Quit)
13:03:32  * fotoveritejoined
13:33:27  * zero_coderquit (Remote host closed the connection)
13:33:50  * fotoveritequit (Ping timeout: 255 seconds)
13:34:25  * fotoveritejoined
13:37:20  * fotoveritequit (Client Quit)
13:46:14  * Domenic_joined
13:58:17  * thl0quit (Remote host closed the connection)
14:08:04  * spionquit (Read error: Connection reset by peer)
14:08:41  * fotoveritejoined
14:11:06  * jdiezquit (Quit: No Ping reply in 180 seconds.)
14:11:22  * jdiezjoined
14:11:22  * jdiezquit (Changing host)
14:11:22  * jdiezjoined
14:11:30  * spionjoined
14:13:26  * thl0joined
14:13:47  * thl0quit (Remote host closed the connection)
14:23:07  * fotoveritequit (Ping timeout: 256 seconds)
14:27:56  * mikolalysenkojoined
14:30:44  * fotoveritejoined
14:36:33  * heathquit (Read error: Connection reset by peer)
14:36:49  * heathjoined
14:57:41  * cianomaidinjoined
14:58:28  * fotoveritequit (Ping timeout: 245 seconds)
15:05:38  * Domenic_quit (Ping timeout: 255 seconds)
15:11:25  * zero_coderjoined
15:14:37  * cianomaidin_joined
15:14:37  * cianomaidinquit (Read error: Connection reset by peer)
15:14:38  * cianomaidin_changed nick to cianomaidin
15:24:11  * cianomaidin_joined
15:24:11  * cianomaidinquit (Read error: Connection reset by peer)
15:24:13  * cianomaidin_changed nick to cianomaidin
15:26:30  * zero_coderquit (Ping timeout: 264 seconds)
15:32:46  * zero_coderjoined
15:38:19  * mikealquit (Quit: Leaving.)
15:42:49  * AvianFlujoined
15:50:00  * defunctzombie_zzchanged nick to defunctzombie
15:51:29  * cianomaidinquit (Read error: Connection reset by peer)
15:52:13  * cianomaidinjoined
15:56:08  <defunctzombie>pkrumins: did your guys https cert get verified :D
16:02:56  <pkrumins>no, they decided to go through the mail process
16:04:15  <defunctzombie>wow
16:04:17  <defunctzombie>that is fucked up
16:04:20  <defunctzombie>substack: https://github.com/substack/node-browserify#packagejson
16:04:29  <defunctzombie>substack: 2 things, "browsers" field -> "browser" field
16:05:00  <defunctzombie>substack: and is it "browserify.transform": or "browserify": { "transform": [] } ?
16:06:44  * cianomaidinquit (Read error: Connection reset by peer)
16:09:55  * cianomaidinjoined
16:13:40  <rowbit>/!\ ATTENTION: (default-local) contact@... successfully signed up for developer browserling plan ($20). Cash money! /!\
16:13:40  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
16:13:49  <substack>woot
16:16:55  * cianomaidin_joined
16:20:09  * cianomaidinquit (Ping timeout: 252 seconds)
16:20:09  * cianomaidin_quit (Read error: Connection reset by peer)
16:23:33  * kenperkinsjoined
16:29:04  * mikealjoined
16:34:09  * cianomaidinjoined
16:47:40  * mikealquit (Quit: Leaving.)
16:53:14  * dguttmanjoined
17:12:29  * cianomaidinquit (Quit: cianomaidin)
17:33:19  <mbalho>substack: https://twitter.com/tmcw/status/308623397657665537
17:33:48  <mbalho>i told tom he should make one of his things browserifiable the other day and how he is doin it!
17:34:22  <mbalho>https://twitter.com/tmcw/status/308609588742221826
17:45:22  * dfggjoined
17:45:54  <substack>hooray!
17:51:44  * tmcwjoined
17:52:20  <tmcw>anyone had issues with browserify's require() being undefined when run within phantomjs?
17:52:32  <tmcw>or, more precisely, phantomjs-mocha?
17:55:30  * shuaibjoined
17:56:58  * Domenic_joined
18:00:41  * thl0joined
18:08:14  * thatguydanjoined
18:10:45  * _ritchjoined
18:14:14  * thatguydanquit (Read error: Connection reset by peer)
18:15:17  * thatguydanjoined
18:16:10  * thatguydanquit (Client Quit)
18:17:10  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 10)
18:17:20  <substack>o_O
18:18:17  * spionquit (Ping timeout: 246 seconds)
18:18:33  <pkrumins>fixing that
18:18:41  * shamajoined
18:22:37  <rowbit>/!\ ATTENTION: (default-local) marcio.bueno@... successfully signed up for developer browserling plan ($20). Cash money! /!\
18:22:37  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
18:29:05  * Domenic_quit (Remote host closed the connection)
18:30:36  * devaholicquit (Remote host closed the connection)
18:30:52  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 12)
18:31:57  <pkrumins>fixed the free servers now
18:32:05  * Domenic_joined
18:35:36  * mikealjoined
18:36:07  * Domenic_quit (Remote host closed the connection)
18:37:58  * shuaibquit (Quit: Computer has gone to sleep.)
18:39:01  * shuaibjoined
18:39:28  * zero_coderquit (Ping timeout: 252 seconds)
18:40:59  * zero_coderjoined
18:48:46  * slaskisquit (Quit: slaskis)
18:51:58  * tmcwquit (Remote host closed the connection)
18:54:25  * Domenic_joined
18:56:38  <Domenic_>Can we pay for testling-ci
18:56:48  <Domenic_>Maybe get a slightly shinier badge or something
18:57:02  <Domenic_>I'd like to fund its development
19:01:22  * thl0quit (Remote host closed the connection)
19:01:27  <substack>and we would love to take your money!
19:01:42  * dguttmanquit (Quit: dguttman)
19:02:15  <substack>Domenic_: what's the best way for us to do this do you think?
19:02:42  <substack>I could whip up a stripe payment thingy but that would take a while
19:03:14  <Domenic_>substack: I know many people don't like PayPal but I've been paying for InstaPaper pro with recurring PayPal for a while and it's been painless.
19:04:19  <substack>when I get around to redesigning the main site I'll put a "sponsors" section
19:04:49  <Domenic_>I think something like this would be worth $10/month: http://www130.lunapic.com/do-not-link-here-use-hosting-instead/136242381499534?7878255556
19:05:13  <substack>haha
19:05:44  <substack>golden badges?
19:06:07  <Domenic_>you're the artist, i'll leave the artistry to you :P
19:06:10  * thl0joined
19:06:23  * mikealquit (Quit: Leaving.)
19:10:05  * tilgovijoined
19:19:34  * tmcwjoined
19:29:57  * dguttmanjoined
19:36:17  * thl0quit (Remote host closed the connection)
19:36:43  * thl0joined
19:37:30  <tmcw>Hm, can tape tests use a document?
19:37:45  <tmcw>aka, do they run headlessly, or is there a way to get a semi-full browser instance?
19:38:32  <defunctzombie>tmcw: they can run headlessly but you need to put them into something that will do that
19:38:44  <defunctzombie>tmcw: I just write mocha tests and have a headless runner for those
19:38:55  <defunctzombie>tmcw: but you can create something similar for tape
19:39:24  <tmcw>so, in this case running things on testling-ci
19:39:29  <defunctzombie>Domenic_: lens flare ... what is this? 1990 photoshop?
19:39:42  <defunctzombie>tmcw: https://github.com/shtylman/synthetic-dom-events
19:39:46  <defunctzombie>that runs on testling-ci
19:39:54  <defunctzombie>and I test locally via "npm test"
19:40:05  <defunctzombie>or can even launch a server for it and open it in a browser
19:40:05  <Domenic_>defunctzombie: how have you resisted the push from substack and co toward tape/tap
19:40:20  <Domenic_>even i am starting to get tempted away from mocha
19:40:27  <defunctzombie>Domenic_: hm, mostly cause I use the tdd style
19:40:32  <defunctzombie>which is almost identicaly to tape
19:40:41  <defunctzombie>Domenic_: and there is no zuul equivalent for tape
19:40:44  <Domenic_>hmm
19:40:48  <tmcw>hm, that depends on this guy's zuul module
19:40:51  <defunctzombie>which makes testing something harder
19:41:00  * thl0quit (Ping timeout: 252 seconds)
19:41:02  <Domenic_>yeah zuul is excellent but a tape version wouldn't be that hard
19:41:03  <defunctzombie>tmcw: yes, this guy's module being my module ;)
19:41:08  <defunctzombie>Domenic_: nope
19:41:11  <Domenic_>tmcw: zuul is pretty sweet
19:41:12  <defunctzombie>Domenic_: patches very elcome
19:41:18  <defunctzombie>Domenic_: just haven't had the time myself
19:41:25  * thl0joined
19:41:32  <Domenic_>yeah i'm still using mocha
19:41:35  <defunctzombie>Domenic_: basically, that is the thing that keeps me on mocha
19:41:43  <defunctzombie>and the fact that I get annoyed with tape output
19:41:48  <defunctzombie>when I try to console debug stuff
19:41:49  <Domenic_>oh right there's that too
19:41:52  <tmcw>Yeah, for sure - at this point I'd like to find out if it's possible to just fix this issue, though, and what zuul does in the equation
19:41:53  <juliangruber>tmcw: check https://github.com/juliangruber/tapedeck
19:42:05  <tmcw>A little afeered of infinite levels of testing-abstraction
19:42:26  <Domenic_>juliangruber: nice!
19:42:37  <tmcw>and the main goal is running on testling-ci, so it's unclear how a node module (or lack of one) could enable/disable access to the document object
19:42:47  <thl0>defunctzombie: you should give trap a try: https://github.com/danielmoore/trap
19:43:20  <thl0>it combines nice output (ala mocha) with async test support ala tap (without having to plan or end)
19:43:33  <thl0>I use it on all my new projects
19:43:34  <tmcw>so many testing frameworks.
19:43:40  <defunctzombie>juliangruber: tapedeck is nice! I will try that
19:43:41  * shuaibquit (Ping timeout: 252 seconds)
19:43:56  <juliangruber>Domenic_ defunctzombie: great to here :)
19:44:02  <juliangruber>*hear :D
19:44:05  <thl0>tmcw: this one came out of a need - i.e. combine all niceties from other frameworks
19:44:12  <defunctzombie>thl0: Domenic_: I personally don't like the style of t. <foo> as it promotes single letter variables.. really damn annoying :(
19:44:27  <defunctzombie>but yea, otherwise I have tried tape stuff
19:44:39  <defunctzombie>juliangruber: tapedeck and zuul should merge hahaha
19:44:53  <defunctzombie>tmcw: no abstraction, these are just tools to run the tests
19:45:04  <defunctzombie>tmcw: so that you don't have to keep manually refreshing a browser
19:45:16  <tmcw>that's not the problem I'm trying to fix, though.
19:45:18  <defunctzombie>tmcw: the important thing is to keep tests simple and clear and not confuse tests with tools :)
19:45:24  <defunctzombie>tmcw: what is the problem?
19:45:38  <substack>defunctzombie: you can use `assert` instead of `t` though
19:45:40  <Domenic_>tmcw: defunctzombie: to be fair it's probably best to do things manually until you get sick of that, then start using things like zuul or tapedeck :)
19:45:42  <juliangruber>defunctzombie: a phantomjs integration for tapedeck would be cool, otherwise they're very similar. What would the merged thing be?
19:45:44  <tmcw>that, with default tape -driven tests, on testling-ci, there is no access to the 'document' object
19:46:06  <thl0>defunctzombie: trap actually works with chaijs, and you can write plugins for any other assertion lib
19:46:14  <defunctzombie>thl0: death to chai
19:46:19  * tilgoviquit (Read error: Operation timed out)
19:46:20  <Domenic_>hehehe
19:46:21  <substack>tmcw: the tests on testling-ci just run in an ordinary html page container
19:46:25  <defunctzombie>thl0: tests should be simple tdd style and that is it
19:46:32  <substack>that has access to the document object and everything else
19:46:39  <Domenic_>chai maintainer is basing version 2 off of component, so i ragequit the project
19:46:47  <tmcw>substack: ah, so the problem might merely be my running 'npm test' atm, and it'll be okay on live?
19:46:52  <defunctzombie>tmcw: yes
19:47:01  <defunctzombie>tmcw: that is why I was suggesting tapedeck or zuul like tools
19:47:04  <substack>tmcw: yes, `npm test` will only run your tests in node land
19:47:09  * shuaibjoined
19:47:18  <defunctzombie>substack: not if you use zuul (like tools) :)
19:47:20  <substack>yep zuul might be a good bet for local testing
19:47:22  <thl0>defunctzombie: but sometimes you have to test async and trap, tap and tape solve this nicely
19:47:26  <defunctzombie>juliangruber: I will integrate tapedeck I think
19:47:39  <juliangruber>defunctzombie: oh, cool!
19:47:46  <defunctzombie>to users can do zuul --tap and it will use tapedeck or some such
19:47:46  <substack>defunctzombie: I need to repurpose a lot of that zuul functionality for when I revamp the `testling` module on npm
19:47:46  <tmcw>substack: thx, was assuming it was doing phantomjs magic instead
19:47:52  <defunctzombie>or maybe I can get Domenic_ to do it :D
19:47:56  <Domenic_>i still love mocha's async style, done() is just fine for me.
19:47:58  <defunctzombie>substack: yep
19:48:03  <substack>tmcw: I take a pretty dismal view of phantom honestly
19:48:03  <defunctzombie>Domenic_: yep, that too
19:48:07  <juliangruber>defunctzombie: so you need tapedeck more as a library or is cli fine?
19:48:12  <substack>it's not hard to run tests in a real browser and it's so much more realistic
19:48:15  <defunctzombie>phantom is pretty scary place
19:48:16  <tmcw>same, it's kind of a bad abstraction
19:48:26  <Domenic_>phantom doesn't have function.prototype.bind :( :( :(
19:48:35  <defunctzombie>substack: zuul --server is for that :)
19:48:42  <tmcw>Yeah, I have workarounds in quite a few projects for that problem
19:48:43  <defunctzombie>substack: basically becomes a browserify server
19:48:53  <tmcw>substack: what's the best way to run tape tests in-browser?
19:48:58  <defunctzombie>the nice thing is it can be done once and no other projects need workarounds
19:49:16  <Domenic_>tmcw: I think tapedeck is the answer to that
19:49:19  <substack>tmcw: browserify test/*.js > bundle.js; echo '<script src="bundle.js"></script>' > index.html; open index.html
19:49:22  <substack>:D
19:49:25  <defunctzombie>tmcw: yes, tapedeck
19:49:33  <defunctzombie>substack: that is too manual :)
19:49:38  <defunctzombie>tmcw: zuul will actually do it too
19:49:42  <Domenic_>but yeah doing things manually might be good for a while until you get sick of it ;)
19:49:45  <defunctzombie>zuul --server 9000 test.js
19:49:49  <substack>defunctzombie: fits comfortably in a shell script
19:50:04  <defunctzombie>substack: yea, but now everyone has to have that and remember that and their script
19:50:07  <tmcw>substack: thx, I like that approach
19:50:17  <Domenic_><small>and have bash installed</small>
19:50:20  <defunctzombie>substack: versus just a small line and just refresh browser
19:50:25  <defunctzombie>hahaha
19:50:26  <substack>defunctzombie: it's more obvious what is going on though
19:50:36  <substack>defunctzombie: for introductory purposes it seems plenty adequate
19:50:42  <defunctzombie>substack: true
19:50:47  * cianomaidinjoined
19:50:49  <defunctzombie>substack: you could run browserifyserver thing
19:50:54  <substack>later people can get fancy once they understand what the purpose of the tool is
19:50:59  <defunctzombie>biggest issue is no visual feedback on the page
19:51:08  <defunctzombie>which hopefully tapedeck solves or something
19:51:16  <Domenic_>tapedeck actually looks even more excellent
19:51:22  <Domenic_>it uses websockets to communicate back to the cli
19:51:28  <Domenic_>like testacular if you've ever seen those videos
19:51:29  <defunctzombie>crazy
19:51:29  <substack>tmcw: to check the test output you'll need to open the debugger to see all the console.log()s using that raw browserify approach is the only thing
19:51:41  <substack>but it's easy to write a thing to pipe the conole.log()s someplace more useful
19:52:08  <tmcw>console.log is perfect
19:52:37  <substack>the great thing about using console.log() is that it works natively in node and the browser
19:53:07  <defunctzombie>woooo new module is born! https://github.com/shtylman/away
19:53:31  * Domenic_quit (Remote host closed the connection)
19:53:37  <defunctzombie>substack: the sporadic browser results are weird.. some runs work and sometimes they fail :(
19:53:56  <tmcw>oh, and defunctzombie you're shtylman?
19:54:02  <defunctzombie>tmcw: yes :D
19:54:14  <tmcw>ah, we talked before then
19:54:31  <defunctzombie>you wrote the happen module iirc?
19:54:50  <tmcw>yep
19:55:05  <defunctzombie>yep, still gotta fix my key event stuff in synth-dom-events
19:55:11  <defunctzombie>but the test coverage for that module is great now
19:55:19  <substack>defunctzombie: we might have fixed one of those issues
19:55:25  * thl0quit (Remote host closed the connection)
19:55:41  <defunctzombie>tmcw: http://ci.testling.com/shtylman/synthetic-dom-events
19:55:52  * thl0joined
19:55:53  <Raynos>whats tapedeck?
19:55:56  <defunctzombie>just need more tests
19:56:22  <defunctzombie>substack: is there a way to set the timeout on mocha tests in testling?
19:56:32  <defunctzombie>or have you disabled timeout for mocha tests?
19:56:38  <substack>not sure how that is done
19:56:39  <Raynos>oh its a ghetto version of testem
19:56:43  <juliangruber>Raynos: it runs tape tests in a browser and prints tap output on the terminal
19:57:06  <Raynos>juliangruber: can you expand tapedeck to be a rewritten version of testem? :D
19:57:14  <defunctzombie>haha
19:59:59  * thl0quit (Ping timeout: 245 seconds)
20:00:55  * cianomaidinquit (Quit: cianomaidin)
20:02:23  * shuaibquit (Ping timeout: 252 seconds)
20:02:37  * thl0joined
20:02:39  * Domenic_joined
20:03:07  <defunctzombie>testling is changing my client side development life
20:03:08  <Domenic_>lol "npm isnstall away"
20:03:16  <defunctzombie>:D
20:03:55  <Domenic_>interesting why did safari 6 fail
20:04:10  <tmcw>defunctzombie: I've linked to synthetic-dom-events from happen - will probably just keep happen at the pace it's at for a while - it's been useful in a few projects that rely on it now
20:05:33  <defunctzombie>tmcw: nice, yea, synth dom events is meant to be very low level for other modules to make creative apis
20:05:41  * shuaibjoined
20:05:53  <tmcw>to be clear, they're pretty much at the same level...
20:06:03  <defunctzombie>yep
20:06:07  <tmcw>like basic dom event creation is pretty durn basic
20:06:14  <tmcw>it's just so kludgy it's an unpopular thing to do :)
20:06:23  <defunctzombie>indeed
20:06:37  <defunctzombie>I looked at the other modules linked and they didn't seem as complete
20:07:16  <pkrumins>tmcw: i'll have to terminate your test right now as we deployed a terrible bug
20:07:23  <pkrumins>else windows will freeze OOM
20:07:36  <defunctzombie>haha
20:07:47  <tmcw>defunctzombie: hm, complete as in ui events, or?
20:08:22  <juliangruber>Raynos: naah, testem is way too cool ;)
20:08:39  <Raynos>juliangruber: testem needs a serious rewrite
20:08:44  <Raynos>it's an interesting product
20:08:49  <Raynos>but I want a leaner version of it
20:08:52  <juliangruber>Raynos: I seriously don't need testem atm
20:08:57  <Raynos>I may add comments to tapedeck
20:09:05  <Raynos>how does tapedeck handle multiple browsers?
20:09:17  <Raynos>I would also want a green / red highlighter rather then read the entire tap output
20:09:41  <defunctzombie>tmcw: yea, as in covering the "init<Foo>" methods and just doing event creation and not dispatch
20:09:48  <defunctzombie>tmcw: I removed all dispatch things from the module
20:09:56  <defunctzombie>it only returns an event object now
20:10:23  * slaskisjoined
20:10:58  <Raynos>tmcw: https://github.com/tmcw/happen I was looking for this
20:10:59  <Raynos>last week
20:16:37  <juliangruber>Raynos: pull requests are welcome, I don't use tapedeck atm
20:16:51  <Raynos>oh.
20:16:53  <Raynos>What do you use?
20:19:58  <pkrumins>tmcw: can you send a hook again for tmcw/live-require?
20:20:11  <pkrumins>tmcw: we just deployed a fix
20:20:14  <tmcw>Sure
20:21:58  <tmcw>cool, looks like it's working now
20:22:20  <tmcw>hm, I think...
20:22:28  <pkrumins>observing
20:24:16  * jibayquit (Remote host closed the connection)
20:24:51  * spionjoined
20:27:03  * marcello3djoined
20:27:51  * Domenic_quit (Remote host closed the connection)
20:28:08  <juliangruber>Raynos: defunctzombie: tapedeck now has a phantomjs mode. So `tapedeck test/*.js --watch --phantomjs` rules
20:28:17  * Domenic_joined
20:28:22  <Raynos>phantom is overrated
20:28:50  <substack>severely overrated
20:29:03  <substack>just `xdg-open chrome`
20:31:15  <juliangruber>substack: can't close that easily, in a crossplatform way
20:31:36  <juliangruber>:O you can
20:31:49  <juliangruber>so I could use your browser opener lib
20:32:49  * Domenic__joined
20:32:57  * Domenic_quit (Ping timeout: 276 seconds)
20:33:05  <pkrumins>tmcw: sorry another bug
20:33:15  <tmcw>nbd
20:40:52  <tmcw>pkrumins: is live-require really pwning testling that bad :)
20:41:03  <pkrumins>no those are different bugs
20:41:04  <tmcw>I didn't intend for it to be such a pain for you guys
20:41:11  <pkrumins>i forked your repo so i can send hooks without bothering you
20:41:27  <tmcw>gotcha, thx
20:41:48  <pkrumins>tmcw: we deployed a few fixes just before you added your repo to testling
20:50:51  <pkrumins>tmcw: we can reproduce the bug, so we'll have it fixed really soon
20:53:20  * spionquit (Ping timeout: 246 seconds)
20:54:38  * shuaibquit (Ping timeout: 252 seconds)
21:00:41  * shuaibjoined
21:07:17  * shuaibquit (Ping timeout: 252 seconds)
21:10:20  * shuaibjoined
21:10:22  <defunctzombie>substack: juliangruber: the thing that makes stuff like tapedeck nice is that I can run it from the command line in headless mode if I want. Also, don't have to keep running the command to re-generate the bundles
21:10:29  <defunctzombie>all those steps slowdown the testing process
21:10:47  * shuaibquit (Client Quit)
21:10:59  <juliangruber>yeah, it's only one command and your set up
21:12:49  <juliangruber>buy guys, I'll be sleeping
21:12:58  <juliangruber>*bye, goddamit :D
21:17:48  * cianomaidinjoined
21:31:19  * fotoveritejoined
21:36:59  * yorickjoined
21:36:59  * yorickquit (Changing host)
21:36:59  * yorickjoined
21:37:20  * zero_coderquit (Read error: Connection reset by peer)
21:40:58  * mikealjoined
21:55:19  * fotoveritequit (Quit: fotoverite)
22:03:14  * mmckeggjoined
22:05:05  * thl0quit (Remote host closed the connection)
22:10:43  * ins0mniaquit (Remote host closed the connection)
22:23:19  <defunctzombie>the power of browserify v2: https://github.com/marcello3d/node-handleify hahaha
22:25:17  * spionjoined
22:26:19  * ins0mniajoined
22:26:19  * slaskisquit (Quit: slaskis)
22:27:55  <ehd>today i witnessed the non-excellence of some requires rails thing which had a cache folder thing and two configs and it behaved strangely
22:28:01  <ehd>*requirejs
22:31:50  <marcello3d>can someone shed some light on how to package.json browerify.transform is supposed to work?
22:38:07  <defunctzombie>substack: ^
22:40:49  <substack>marcello3d: it's an array of strings that will be fed to .transform()
22:41:12  <substack>but only for files at the top-level of a module (not in node_modules)
22:41:20  <marcello3d>ok
22:41:43  <substack>which means modules can depend on transforms as dependencies
22:41:46  <substack>without breaking everything
22:41:56  <substack>and without forcing a compiler contraint upstream to consumers
22:42:20  <marcello3d>so I have my express app using enchilada, and if I do require('./views/foo.hbs'), it ignores the package.json setting
22:42:35  <marcello3d>(in client code)
22:42:58  <marcello3d>currently I'm hacking enchilada to give me the browserify instance so I can call transform('handleify') manually
22:43:18  <substack>maybe enchilada is doing something strange
22:43:23  <marcello3d>it's not doing anything unusual
22:43:24  <substack>what happens when you run `browserify` directly?
22:43:42  <marcello3d>I've never actually used that... let me see
22:43:55  <substack><-- does not support third-party add-ons
22:44:07  <defunctzombie><-- will support enchilada
22:44:21  <substack>I mean more that I can only answer questions about how the core script works
22:44:29  <defunctzombie>:)
22:45:27  <marcello3d>ok
22:45:29  <marcello3d>it fails
22:45:30  <marcello3d>also
22:45:47  <marcello3d>the js file isn't in the same folder as package.json though
22:45:54  <marcello3d>it's in ./public/js/
22:46:09  <marcello3d>e.g. browserify ./public/js/main.js
22:46:48  <marcello3d>and from package.json: "browserify": { "transform":[ "handleify" ] }
22:47:05  <substack>the transform field works for modules
22:47:31  <substack>but yes I can confirm that the lookups aren't hitting the package.json compiling top-level scripts
22:48:11  <marcello3d>ok
22:48:19  <marcello3d>should that scenario even work?
22:51:02  <substack>the reason why is that directly-resolved files don't ever hit the packageFilter
22:52:44  <defunctzombie>substack: yea, I ran into that in browser-resolve
22:52:54  <defunctzombie>substack: had to locate the package.json myself manually
22:53:04  <defunctzombie>as a result, to make the browser field work correctly
22:54:09  <jjjjohnn1y>should random numbers in a range eventually average to half the range?
22:56:04  <jjjjohnn1y>i say that yes they should so vote for me
22:56:11  <jjjjohnn1y>when did i become jjjjohnn1y with a 1???
22:56:16  <mbalho>lol
22:56:41  <mbalho>in a normal distribution what is the value at the middle of the curve?
22:58:10  <jjjjohnn1y>does it matter?
22:58:26  <jjjjohnn1y>im telling js to give me math.random() * range
22:58:35  <jjjjohnn1y>expecting it to average to half
22:59:59  <defunctzombie>jjjjohnn1y: not sure that is true actually
23:00:28  <defunctzombie>I believe the expected value of the average if half of the range.. or has some probability to be half
23:00:55  <defunctzombie>but it is fully reasonable for all of your random numbers to fall under half of the range
23:00:57  <defunctzombie>they are random
23:01:08  <defunctzombie>there is less probability that happens tho iirc
23:01:16  <defunctzombie>MATH IS HARD
23:01:26  <jjjjohnn1y>defunctzombie: i want to believe in statistical probability
23:02:19  <jjjjohnn1y>i think my readings were scewed actually, it probably does average to half
23:06:09  <jjjjohnn1y>loudbot reporting from the bowels of the internet
23:07:20  <marcello3d>lovely
23:15:31  * thl0joined
23:16:39  <dools>or, rather, the anus of an internet being raped by a giraffe
23:19:00  <rvagg>mikeal: https://twitter.com/mikeal/status/308715816751337472 "most people do [tests] the way Node core does" is not true at all!
23:19:05  * mikealquit (Quit: Leaving.)
23:19:20  <rvagg>mikeal: "most" are using test runners, and as distasteful as it is, Mocha is perhaps the most popular
23:19:41  <rvagg>but on the other end, even the minimalists like the folks in here, are using some kind of test runner, tap or tape, or similar
23:19:59  * thl0quit (Ping timeout: 260 seconds)
23:21:00  * nicholasfjoined
23:21:01  * marcello3dquit (Remote host closed the connection)
23:25:20  <defunctzombie>node core tests suck imho
23:25:30  <defunctzombie>I like the tape/tap or mocha TDD way
23:26:02  <rvagg>I'm no fan of mocha but if it makes people happy about testing then I'd much rather them use it than no tests in their libs
23:26:38  <rvagg>the JS "community" has never been big on testing but it seems that it's becoming a very strong feature of the Node community and that's a good thing, however they do it
23:27:29  <defunctzombie>I would probably use tape more if substack's examples used 'assert' instead of 't' hahaha
23:27:53  <defunctzombie>single letter var names make me go into a rage or something, anyhow
23:27:53  <guybrush_>i just wanted to reply on that tweet that "most people" do actually use some kind of test-framework
23:27:58  <defunctzombie>most people overcomplicate tests
23:28:13  <defunctzombie>I think that is what mikeal really meant
23:28:39  <defunctzombie>substack: we really need to get this js-office-hours thing going :)
23:30:01  <guybrush_>also mocha isnt that bad, it just isnt
23:30:22  <defunctzombie>I think people dislike mocha cause they see it as a giant thing (and it is)
23:30:27  <defunctzombie>but I just use one little aspect of it
23:30:33  <defunctzombie>I don't care for the rest honestly
23:30:43  <defunctzombie>and many just don't get past the fact that it does the rest I guess :/
23:30:53  <guybrush_>i have test-files that module.exports = {}, mocha is pretty good for that
23:32:12  * st_lukejoined
23:32:15  <rvagg>most of my issues with mocha are related to pollution of the global namespace & extending natives cause I mostly see it.should.be.false kind of crap
23:32:18  <mbalho>linux question: i have a bluetooth keyboard paired with debian but when I ssh into the box i dont see keypresses from the keyboard in the ssh shell session
23:32:20  <defunctzombie>ok.. time to go talk bitcoin.. bbl
23:32:24  <rvagg>but I'm told that's not a mocha thing, it's shouldjs or something
23:32:37  <defunctzombie>rvagg: that is a should thing
23:32:48  <defunctzombie>just don't write tests like that
23:32:57  <defunctzombie>if you look at all my tests you won't see any of that crap
23:33:41  <st_luke>mbalho: sounds like you're using 2 different ttys
23:34:06  <mbalho>st_luke: do you know how i can tell ssh to 'listen' to the bluetooth keyboard device input?
23:34:30  * defunctzombiechanged nick to defunctzombie_zz
23:34:57  <st_luke>so like you're using the keyboard locally on the machine then shelling in from another and you want to grab the input from the local keyboard from your remote shell?
23:35:12  <mbalho>st_luke: yep, its a raspberry pi and i dont have a monitor for it
23:35:20  <mbalho>st_luke: keyboard doesnt work in vnc either
23:35:32  <mbalho>st_luke: but i paired it from the command line and everything seemed to work
23:35:34  <nicholasf>rvagg: it.should.be.false is a rubyism from rspec I think
23:36:01  <st_luke>mbalho: try installing screen and sharing a session
23:36:02  <st_luke>http://blog.wains.be/2008/05/24/sharing-your-bash-session-using-screen/
23:36:10  * rvagggroans.at.stupid.language.extensions
23:36:12  <chrisdickinson>is there a time interval stream?
23:36:35  <nicholasf>rvagg: in rubyland it works very well - the idea is to flesh out an expressive DSL
23:36:39  <chrisdickinson>cc substack ^^
23:36:45  <nicholasf>the same approach doesn't really suit javascript tho
23:36:56  <rvagg>mbalho: you have a monitor! your kindle, is that not happening for you yet?
23:37:17  <mbalho>rvagg: its not a monitor its just a remote ssh terminal :)
23:37:33  <rvagg>mbalho: yeah, but with a shared `screen` session then it may as well be a monitor
23:37:37  <mbalho>rvagg: im tryign to get everything hooked up finally but cant figure out how to 'forward' my bluetooth keyboard input into the ssh session
23:38:29  <rvagg>mbalho: I halted dev on my kindle a few days ago but came back and found that I still had an ssh session open to it over the wifi; that made me so excited
23:38:39  <mbalho>ooh
23:40:18  <rvagg>mbalho: latest is that I decided I needed to cross-compile gdb for it so I can figure out what the segfaults in node are
23:40:42  <rvagg>I so want my Kindle to run a Node web server, I'd punch a hole in my network to share that
23:40:51  <mbalho>heh
23:40:57  <mbalho>st_luke: this is close http://superuser.com/questions/473411/redirect-physical-keyboard-input-to-ssh
23:41:10  <mbalho>though i dont really know how to do 'a getty process gets a tty and invokes your script. Your script might then initialize a named pipe (aka fifo) and redirect stdin to it.'
23:42:26  <st_luke>if it were a couple hours earlier on the east coast i could hit up some really good sysadmins i used to work with about this, but alas
23:42:44  <mbalho>heh
23:44:15  <rvagg>mbalho: why don't you just do an auto-login on the console of the pi, make your .bashrc start `screen` and then your kindle can be configured to automatically connect in to that (i.e. what the kindleberry pi guy does)
23:45:24  <mbalho>rvagg: is the trick there that because the pi is starting screen that the keyboard input will automatically be redirected to it?
23:45:59  <rvagg>mbalho: no the trick with the keyboard is that the console will auto-login and your keyboard is attached to the console
23:46:16  <mbalho>ah
23:46:21  <mbalho>cool ill try that
23:46:32  <rvagg>then, what happens on the console will work with the keyboard.. start screen there, then connect to it with a second session from the kindle (do that manually in kterm with the kindle keyboard to start with)
23:49:26  * mikealjoined
23:53:26  * tilgovijoined
23:55:26  <rvagg>I need to sort out my pi+kindle cause my laptop is off for warranty repairs and I don't want to be stuck in the garage with my desktop full-time!
23:56:11  <mbalho>hehe
23:58:26  * mikealquit (Ping timeout: 255 seconds)