00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:09  <rowbit>Hourly usage stats: [developer: 3, free: 24]
00:00:31  <Raynos>npm used does this searching through { dependencies: } field in package.json of all your published modules
00:00:43  <Raynos>this gives you a pool of "potential recommendations" to build your search around
00:00:51  <Raynos>the real question is how do you weight modules in the pool
00:01:09  <chrisdickinson>ooh, you could even do something like `npm vet uuid -e "function test(module) { return /regex_test/.test(module()) }"`
00:01:26  <chrisdickinson>and it'd automatically install the one that passed your test.
00:01:39  <dominictarr>using a module by author X is an expression of trust in X.
00:01:48  <dominictarr>weight the modules X uses positively
00:01:56  <Raynos>well not that
00:02:11  <Raynos>I actually want to restrict npm
00:02:25  <Raynos>to the subset of modules authored by { people } and modules installed by { people }
00:02:31  <Raynos>and then apply weighting inside that subset
00:02:45  <Raynos>based on authoring, usage, frequency, amount, amount of unique people, age, commits, github watches etc
00:02:59  <Raynos>I want a website that allows me to define restriction rules
00:03:01  <Raynos>and weighting rules
00:03:03  <Raynos>with scales
00:03:07  <Raynos>and preferably real time search results
00:03:07  <dominictarr>I think the focus should be modeling what we actually do
00:03:17  <Raynos>well I run npm search
00:03:19  * juliangruber_quit (Ping timeout: 265 seconds)
00:03:20  <dominictarr>like if you have a question
00:03:20  <Raynos>and scan the author list
00:03:25  <dominictarr>or you ask in here
00:03:26  <Raynos>for authors I know
00:03:27  <Raynos>and start there
00:03:39  <Raynos>other then that I ask in #stackvm and #node.js for modules
00:03:49  <dominictarr>yeah
00:03:58  <Raynos>other then that I ask substack about a vague description of a module he wrote that solves my problem but I cant remember the name thus cant search for it
00:03:59  <dominictarr>so, you want to just do that automatically
00:04:03  <Raynos>Thats the other problem
00:04:09  <Raynos>not remembering the name or the keywords
00:04:14  <dominictarr>oh right,
00:04:22  <chrisdickinson>yeah, it's kind of a two-step process for me -- i usually look at the search results for authors i trust, then try out each of the ones i trust to make sure their api is sane, and then check out the repository on github
00:04:26  <Raynos>or not remembering the name and RAYNOS Y U NO USE KEYWORDS FIELD
00:04:26  <CoverSlide>add a bot that asks in the channels? I like that idea!
00:04:28  <dominictarr>but if you could add your own keywords that could help
00:04:43  <Raynos>that sounds like
00:04:43  <chrisdickinson>if that doesn't give me enough info, i'll hop into here or #node.js.
00:04:45  <Raynos>community tagging
00:04:51  <Raynos>I actually like that idea.
00:04:56  <dominictarr>and then if I search for a word, and I'm following you as well, then I get those
00:05:12  <Raynos>social + npm = startup
00:05:14  <dominictarr>but if some one tags "stupid" "code-smells"
00:06:00  <dominictarr>then no one will see that, unless the are following the troll
00:06:14  <Raynos>yeah
00:06:22  <dominictarr>then you could like filter modules to remove aswell
00:06:39  <dominictarr>like - coffee-script etc
00:07:02  * jez0990joined
00:07:03  <dominictarr>or you could add tags like "globals" and "monkeypatch"
00:07:09  <Raynos>What you also need
00:07:11  <Raynos>Or I feel I need
00:07:14  <Raynos>is a visualization
00:07:22  <dominictarr>hij1nx, ^
00:07:26  <Raynos>so I can see what is near my searc
00:07:29  <Raynos>or on the bounmdary
00:09:49  <dominictarr>oh right. you'd need a "simularity" measure then
00:14:29  <defunctzombie>how do people discover packages in other systems?
00:14:43  <substack>they don't
00:14:47  <defunctzombie>\o/
00:14:50  <substack>it's just as bad or worse
00:15:04  <defunctzombie>I know that when I need stuff in c++ land or such I just ask my friends
00:15:05  <substack>all word of mouth
00:15:08  <defunctzombie>yea
00:15:30  <substack>it's odd that people think that node has this problem especially much
00:15:34  <substack>it's the same on every platform
00:15:35  <defunctzombie>and I think that is not a terrible thing actually, I know I personally tell people about cool packages
00:15:59  <CoverSlide>substack: agreed
00:16:03  <defunctzombie>it is worse on other platforms cause some of them don't even have package systems that the majority of people are using
00:16:39  <CoverSlide>well gems cpan leiningen maven cabal are pretty much the standards for their respective platforms
00:16:48  <CoverSlide>python's gradually adopting pip
00:17:02  <CoverSlide>php is gradually adopting composer
00:17:42  <CoverSlide>go's is built-in
00:17:57  <defunctzombie>I wish npm was better named, I don't think anyone imagined it could become a "javascript" repository
00:18:01  <CoverSlide>c always had this issue
00:18:06  <defunctzombie>but I see it as that
00:18:44  <substack>javascript modules pretty much need to work with node to be considered modern and reusable these days
00:18:48  <substack>a very nice development
00:18:56  <defunctzombie>+1
00:18:56  <CoverSlide>weell if can start putting packages that are compatible with rhino or narwahl or teajs, the 'n' part would be less prevalent
00:18:57  <dominictarr>substack, defunctzombie we just notice this problem. because the other problem are not there
00:19:26  <CoverSlide>'jspm' ? me no likey
00:19:29  <defunctzombie>substack: I want to quote that
00:19:35  <defunctzombie>it is a good quote :)
00:19:36  <substack>once all the repos that work in browsers have badges it will be much more clear how valuable npm can be to frontenders
00:19:46  <defunctzombie>+2
00:20:00  <defunctzombie>it is very important
00:20:05  <defunctzombie>and super useful
00:20:09  <dominictarr>just change the meaning of the n in npm to "N" as in a free variable
00:20:12  <substack>also trying to make a buck doing that :D
00:20:15  <dominictarr>NPM PACKAGE MANAGER
00:20:21  <defunctzombie>hahaha
00:20:33  <defunctzombie>substack: I showed some friends browserling today
00:20:36  <dominictarr>a package manager for everything that uses a folder called node_modules
00:20:41  <defunctzombie>and the exact quote was "this is exactly what I want"
00:20:46  <substack>hooray!
00:20:50  <dominictarr>"node" is also a generic word
00:20:52  * CoverSlideadds a badge for wz_tooltip
00:20:59  <defunctzombie>they do a lot of mobile dev so were asking about that
00:21:04  <defunctzombie>when I told them about testling as well
00:21:08  <substack>defunctzombie: now get them to whip out their credit card and convince them to type in into the text box
00:21:11  <CoverSlide>unfortunately, yes, node gets very confusing esp. in terms of software
00:21:12  <defunctzombie>dominictarr: yea, I don't see npm as a bad name
00:21:21  <defunctzombie>substack: yep, that is phase 2
00:21:38  <dominictarr>substack, I get a message in ci.testling
00:21:47  <dominictarr>"not ok 1 Error: Uncaught exception: TypeError: 'process.on' is not a function on line 12"
00:21:56  <dominictarr>but I have no idea what file that is in
00:21:58  <substack>dominictarr: yes, the process shim doesn't have .on
00:22:15  <substack>dominictarr: I looked at the scuttlebutt tests and a lot of them do process.on('exit', fn)
00:22:23  <dominictarr>oh, right
00:22:23  <substack>you could just feature-detect that part
00:22:30  <substack>if (process.on) process.on('exit', fn)
00:22:36  <dominictarr>I'll put in a timeout for that then
00:22:40  <substack>could work
00:23:11  <dominictarr>that is the naive method
00:23:14  <substack>unfortunately the browser doesn't have a concept of exit that maps well to how node exit works
00:23:20  <dominictarr>I don't know what the smart one would be
00:23:30  <dominictarr>... you'd need an event loop concept
00:23:33  <substack>just do the easy thing that would obviously work
00:23:34  <dominictarr>but that isn't exposed
00:23:58  <dominictarr>yeah, and I don't have to sit there and watch, so setting a long timeout won't matter really.
00:24:14  <substack>all tests get killed at 30 seconds
00:24:19  <substack>so just something less than 30 seconds
00:24:27  <substack>10 seconds is probably plenty
00:24:42  <substack>or 5 even
00:29:04  * juliangruber_joined
00:31:56  <jjjjohnnny>my logs, right now, say "oink" "apples" and "banasas"
00:32:36  <dominictarr>aha okay. I'll default to 10
00:34:48  * wiwilliaquit (Ping timeout: 244 seconds)
00:36:35  <dominictarr>okay, lets see if this passes...
00:37:16  * fotoveritejoined
00:38:59  <defunctzombie>substack: https://github.com/driverdan/node-XMLHttpRequest/pull/49 https://github.com/einaros/ws/pull/143 gonna see what the response is like
00:39:07  <defunctzombie>will probably be rejected :)
00:39:58  <defunctzombie>I think I need to document the idea better (blog or wiki or something) to give people a better idea of the proposal
00:45:20  * juliangruber_quit (Ping timeout: 255 seconds)
00:45:24  <dominictarr>defunctzombie, we discussed various methods for that a while ago
00:45:38  <dominictarr>about redirecting requires
00:46:00  <dominictarr>I think we agreed that method was ugly, and that we wanted something that was right in the file
00:46:32  <dominictarr>but no one could agree on a method that worked in the file except a significant comment
00:46:33  <defunctzombie>the thing with in-the-file is it confuses what is a build time issue with a run-time issue
00:46:40  <dominictarr>agree
00:46:44  <defunctzombie>package.json is metadata
00:47:10  <defunctzombie>so if you think about a blank environment as the baseline (lets say node for lack of better)
00:47:12  <dominictarr>yeah, so I'm thinking right now that the best practice would be to use package.json metadata
00:47:23  <defunctzombie>then other environments are the ones you provide alternates for
00:47:33  <defunctzombie>the browser is just a fancy execution environment
00:47:39  <defunctzombie>which provides certain globals
00:47:42  <dominictarr>and put a NON SIGNIFICANT comment that notes that there is a redirect for that require in the package.json
00:47:52  <defunctzombie>yes
00:47:56  <defunctzombie>comments in the code ++
00:48:14  <defunctzombie>dominictarr: https://github.com/shtylman/node-script#packagejson
00:48:22  <defunctzombie>this is the full "spec" idea behind the browser field
00:48:27  <defunctzombie>it can do more than a simple string
00:48:37  <defunctzombie>to allow for maximum code re-use
00:48:51  <defunctzombie>the simple string is the degenerate case
00:49:22  <dominictarr>yes. I like this.
00:49:29  <dominictarr>this is the best compromise
00:49:55  <dominictarr>does what you need, but also easy to implement, with no magic.
00:50:01  <defunctzombie>yes
00:50:06  <defunctzombie>magic is bad
00:50:40  <defunctzombie>I don't want to have to think about what is being conjured
00:51:42  <dominictarr>yeah, and when you look at the config, you want to be able to imagine basically how it works and be basically right.
00:51:47  <defunctzombie>the reason I don't want special things in the code, is because when you read the js and don't know those things.. it makes no sense
00:51:58  <substack>blarg there's some bug in pushover or cicada
00:52:12  <dominictarr>yeah, significant comments is like that
00:52:13  <substack>running into this deploying a repo to testling ci
00:52:14  <defunctzombie>I hit a bug in pushover a while back iirc
00:52:25  <defunctzombie>let me see if I have the fix
00:53:00  <substack>it's hung up on receive-pack
00:53:30  <defunctzombie>do you have an error text to jog my memory?
00:54:37  <substack>it just hangs
00:54:39  <defunctzombie>hm, no diff between the version I have and your master
00:54:41  <substack>but I think I've figured it out
00:54:46  <defunctzombie>so this is something else
00:55:39  <defunctzombie>dominictarr: I try to steer clear of anything that looks like preprocessor macros
00:55:55  <dominictarr>agree
00:55:56  <defunctzombie>and let the tool do the work
00:56:13  <defunctzombie>this is why I like the commonjs require syntax
00:56:19  <defunctzombie>using esprima and such
00:56:19  <substack>fixed!
00:56:19  <dominictarr>substack, ^ add this support to browserify?
00:56:23  <defunctzombie>it can be turned into anything
00:56:42  <defunctzombie>amd, async, concat giant file, etc
00:57:26  * slaskisquit (Quit: slaskis)
00:57:35  <defunctzombie>ive talked to substack about it, the single string field is easy for current browserify, the object is harder
00:57:50  <defunctzombie>I am hopeful for browserify 2.0 tho :)
00:58:06  <defunctzombie>I actually made script support the browserify field in package.json since some people use that
00:58:16  <defunctzombie>for an easier transition
00:59:32  <defunctzombie>@holman's latest tweet ftw
00:59:57  * sorensen_joined
01:00:09  <rowbit>Hourly usage stats: [developer: 1, free: 30]
01:00:33  * st_lukejoined
01:01:09  * ralphtheninjaquit (Ping timeout: 260 seconds)
01:03:16  <dominictarr>substack, deploying more modules to ci.testling.com
01:03:21  <dominictarr>really needs push status
01:03:29  * _sorensenquit (Ping timeout: 260 seconds)
01:03:29  <dominictarr>so I know when they run
01:03:47  <substack>it will have that when I implement the streaming data channel
01:04:22  <substack>http://ci.testling.com/substack/node-falafel.json will just stay open and give you updates as they come
01:04:39  * sorensen_quit (Ping timeout: 260 seconds)
01:04:39  <substack>or at least when you do ?type=stream
01:05:14  <dominictarr>or ?f or ?follow
01:05:25  <dominictarr>like tail -f or tail --follow
01:07:11  <dominictarr>substack, if I don't use tape, will the tests run and show any results?
01:10:54  * st_lukequit (Remote host closed the connection)
01:11:18  * _sorensenjoined
01:13:02  * juliangruber_joined
01:17:23  * antix_joined
01:18:17  * birdbonesquit (Ping timeout: 264 seconds)
01:18:17  * antixquit (Ping timeout: 264 seconds)
01:18:40  <substack>dominictarr: whatever you console.log() as the output will show up
01:18:53  <substack>but testling only knows whether the output is a pass or fail by parsing it as TAP
01:19:15  <dominictarr>right!
01:19:22  <dominictarr>what about throws?
01:19:42  <dominictarr>do throws get detected?
01:19:42  <substack>there's a window.onerror to catch those but I wouldn't trust it especially much
01:24:20  * dominictarrpart ("Leaving")
01:24:26  * dominictarrjoined
01:24:35  <dominictarr>so, I'm just not seeing new output for http://ci.testling.com/dominictarr/scuttlebutt
01:25:07  <dominictarr>oh, by the way... does a git push --force break testling-ci?
01:25:13  <dominictarr>because I did one of those...
01:27:11  <pkrumins>http://ci.testling.com/dominictarr/scuttlebutt <- seeing your last test
01:27:16  <pkrumins>there were no more requests after that
01:28:27  <pkrumins>oic https://github.com/dominictarr/scuttlebutt/commit/6c883207022ff804c13a423b4422cd327f2e409b
01:28:32  <pkrumins>your latest push
01:29:31  * juliangruber_quit (Ping timeout: 260 seconds)
01:30:01  <dominictarr>I'm not getting 6c in the output
01:30:20  <dominictarr>latest displayed is 3a
01:31:04  <pkrumins>yeah
01:31:10  <pkrumins>i'm looking in the logs
01:32:06  * tilgoviquit (Remote host closed the connection)
01:32:14  <pkrumins>crap i reset the logs
01:32:18  <pkrumins>as i restarted the git server
01:32:29  <pkrumins>can you do another push?
01:36:14  <substack>tee -a
01:36:16  <substack>for append
01:36:50  <pkrumins>:D
01:37:04  <pkrumins>done
01:38:46  * niftylettuce_joined
01:42:00  <dominictarr>can I just trigger the hook? or to I have to push?
01:42:21  <pkrumins>can't trigger it at the moment
01:42:28  <dominictarr>okay, I'll push
01:42:29  <pkrumins>we can wait a bit when you push something serious
01:42:34  <dominictarr>there is probably a typo
01:42:39  <pkrumins>ok find it :)
01:43:17  <dominictarr>yup, found one
01:43:25  <dominictarr>pushed
01:43:47  <pkrumins>wow
01:44:00  <pkrumins>i mean it's silece
01:44:08  <pkrumins>hook didnt get to the git server
01:44:13  <substack>oh crap
01:44:18  <substack>could be the cicada update
01:44:23  <pkrumins>hmm
01:44:28  <pkrumins>yeah but it didnt work ealier also
01:44:31  <pkrumins>i dont think it's cicada
01:44:35  <substack>except that stuff was working fine locally
01:44:36  <pkrumins>maybe github is just slow
01:44:42  <pkrumins>let me see what bouncy says
01:44:48  <pkrumins>substack: unlikely it\'s cicada
01:44:52  <substack>can try clicking 'test hook'
01:44:59  <pkrumins>yeah confirmed
01:45:01  <substack>in the github settings/hooks url
01:45:05  <pkrumins>no request to git.testling.com
01:45:14  <pkrumins>in the bouncer
01:45:37  <dominictarr>git.testling.com? or ci.testling.com?
01:45:58  <pkrumins>git.testling.com
01:46:08  <pkrumins>i see tons of req's to ci.testling.com though.
01:46:56  <pkrumins>seeing it now
01:47:01  <pkrumins>tons of git.testling.com requests!
01:47:04  <dominictarr>just hit test
01:47:10  <pkrumins>oh
01:47:12  <pkrumins>oh hey substack
01:47:15  <substack>present
01:47:15  <pkrumins>/home/testling/projects/testling-ci/git/lib/job.js:35
01:47:16  <pkrumins> this.browsers = normalizeBrowsers(opts.browsers);
01:47:16  <pkrumins> ^
01:47:16  <pkrumins>TypeError: Cannot read property 'browsers' of undefined
01:47:18  <pkrumins>this just happened
01:47:24  <substack>oh
01:47:40  <substack>that happens if they didn't set "browsers" in their package.json/testling config
01:47:52  <pkrumins>ah
01:47:59  <pkrumins>yeah if it was a test hook
01:48:01  <pkrumins>that's what happened
01:48:10  <pkrumins>dominictarr: can you check the settings of your project?
01:48:26  <pkrumins>dominictarr: that you really still have git.testling.com as the hook?
01:48:39  <pkrumins>if so, then github is just having issues right now
01:48:51  <dominictarr>I've fixed the hook, I might not have browsers set
01:49:51  <pkrumins>dominictarr: then it wouldnt have worked earlier?
01:50:07  <substack>pkrumins: ok pushed a fix for that
01:50:07  <dominictarr>yeah... scuttlebutt should have worked
01:50:25  <pkrumins>substack: k
01:50:30  <pkrumins>dominictarr: it's working now
01:50:33  <pkrumins>tests are running
01:50:42  <pkrumins>it was just slow github
01:51:16  <pkrumins>substack: ok so the tests just run but they are not in http://ci.testling.com/dominictarr/scuttlebutt
01:51:19  <pkrumins>getting the log
01:51:50  <pkrumins>dominictarr: commit 3c right?
01:52:09  <pkrumins>oh no
01:52:10  <pkrumins>hmm
01:52:16  <pkrumins>it must have been someone elses test!
01:52:21  <dominictarr>latest is b9f141c6
01:52:27  <dominictarr>"typo"
01:52:28  <pkrumins>commit 3c0d89d85757bb32dac3482f85b9952d55f19325
01:52:30  <pkrumins>seeing this.
01:52:50  <dominictarr>3c is one that I push --force'd over
01:52:55  <dominictarr>I think
01:53:02  <substack>--force isn't likely to do anything
01:53:06  <pkrumins>https://gist.github.com/0548c225cf16fbbae9f6
01:53:08  <pkrumins>here is the output
01:53:16  <pkrumins>from this mysterious test that just ran
01:53:51  <substack>but it didn't save it properly...
01:54:06  <pkrumins>substack: yes but what repo is that
01:54:10  <substack>oh
01:54:12  <pkrumins>maybe it's someone elses test completely
01:54:13  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
01:54:13  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
01:54:20  <pkrumins>sweet
01:54:23  <pkrumins>debugging and getting paid
01:54:35  <substack>event-stream?
01:54:52  <pkrumins>substack: is there a way to print the repo before tests start running
01:54:54  <pkrumins>for better debugging
01:54:56  <substack>yes
01:55:01  <pkrumins>that would be awesome
01:55:02  <substack>adding
01:55:04  <pkrumins>k
01:55:54  <dominictarr>I also just pushed event-stream
01:56:15  <pkrumins>http://ci.testling.com/dominictarr/event-stream
01:56:16  <pkrumins>confirmed
01:56:19  <pkrumins>commit 3c0d89d85757bb32dac3482f85b9952d55f19325
01:56:49  <dominictarr>oh good. that is there
01:56:56  * juliangruber_joined
01:56:56  <dominictarr>I havn't ported that to tap
01:57:42  <pkrumins>got it
01:58:15  <substack>pkrumins: pushed
01:58:19  * _sorensenquit (Quit: _sorensen)
01:58:38  <pkrumins>thx
01:58:59  <pkrumins>deployed
02:00:09  <rowbit>Hourly usage stats: [developer: 2, free: 16]
02:02:24  <substack>juliangruber_: I published a pushover fix for a bug that you were probably hitting
02:02:34  <dominictarr>substack, do you have a module for retriving the user's public key perchance?
02:02:45  <substack>dominictarr: from ~/.ssh ?
02:02:50  <dominictarr>yeah
02:02:53  <substack>nope
02:06:36  <dominictarr>okay, writing one...
02:06:55  <dominictarr>no, that statement isn't accurate
02:07:11  <dominictarr>writing a module to get a unique id for the current device
02:15:51  * juliangruber_quit (Ping timeout: 276 seconds)
02:40:28  * dominictarrquit (Ping timeout: 256 seconds)
02:41:37  * juliangruber_joined
02:57:55  * juliangruber_quit (Ping timeout: 244 seconds)
03:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 74]
03:00:46  * tphummelquit (Quit: tphummel)
03:05:21  <defunctzombie>I have too many topics I want to focus on for this blog post :(
03:05:28  <defunctzombie>they are all related, but sigh
03:07:22  * _ritchquit (Quit: Leaving.)
03:07:32  <Raynos>defunctzombie: the solution is to not write it!
03:07:40  <defunctzombie>hahah
03:08:11  <Raynos>Focus on makign things simpler
03:08:15  <Raynos>and write that new simple thing
03:08:19  <Raynos>SIMPLE THINGS ARE A LIE.
03:08:28  <Raynos>Ask substack about how airport is "simple"
03:08:44  <Raynos>Ask me about how my examples have 80MB in node_modules -.-
03:08:54  <defunctzombie>well, the ideas are simple
03:09:00  <defunctzombie>it is just that there are a few of them
03:09:06  <defunctzombie>it all surrounds client code in various ways
03:09:12  <defunctzombie>meh
03:09:17  <defunctzombie>maybe I will do it in parts
03:11:16  <Raynos>what are the ideas?
03:11:26  <Raynos>is the idea component/component is awesome?
03:12:15  * duncanbeeversjoined
03:12:28  <Raynos>substack, dominictarr: we should port all our modules into streamlined cocoscript that have promises apis and publish them on component!
03:18:53  <defunctzombie>hahaha
03:19:03  <defunctzombie>no.. the idea is quite the opposite ;0
03:22:45  <Raynos>FFFFFFFFFFFFFFFFFFFFFFFFFFFFF-------------------
03:22:59  <Raynos>dominictarr: It's all your fault
03:23:04  <Raynos>Ever since I start doing leveldb
03:23:08  <Raynos>I started hating mongodb
03:23:12  <Raynos>mongo is full of bullshit
03:23:27  <Raynos>IGNORANCE IS BLISS
03:25:10  * juliangruber_joined
03:33:59  <substack>Raynos: are you using mongo in production or some such?
03:34:07  <Raynos>yeah
03:34:14  <Raynos>I just hate CRUD
03:34:49  <substack>just store everything in memory
03:34:59  <substack>if your process crashes or you restart it then whatevs
03:35:06  <substack>just generate all the content over again
03:36:12  <Raynos>that doesnt work
03:36:35  <Raynos>that converges onto redis
03:40:00  <Raynos>you need something that persists to disk
03:41:13  * juliangruber_quit (Ping timeout: 244 seconds)
03:44:17  <Raynos>Implement database replication
03:44:20  <Raynos>in less then 2 hours
03:44:24  <Raynos>go raynos go -.-
03:48:41  <substack>db.createStream().pipe(otherDb)
03:48:51  <substack>and maybe .pipe(db) again depending
03:49:07  <substack>well pipe it to the stream but whatevs
03:50:03  <defunctzombie>"the copy paste virus"
03:50:20  <defunctzombie>I think that will be the title of the blog post (aka my rant against these massive single file js shits)
03:50:30  <Raynos>substack: that would cause infinite loops unless its clever
03:50:42  <Raynos>defunctzombie: the solution is called npm
03:50:46  <Raynos>one module === one function
03:50:51  <Raynos>require 30 functions
03:50:54  <Raynos>at the top of every file
03:51:02  <defunctzombie>trololol
03:51:14  <Raynos>no srs
03:51:16  <Raynos>thats what I do
03:51:31  <substack>requiring 30 functions at the top is usually a sign that you're missing some abstractions someplace
03:51:57  <substack>at that point I usually start splitting the files out into lib/
03:52:05  <substack>and then some of the files in lib/ are suitable for npm
03:52:47  <Raynos>https://twitter.com/Raynos2/status/279071293331103744
04:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 27]
04:08:26  * juliangruber_joined
04:24:47  * juliangruber_quit (Ping timeout: 265 seconds)
04:25:18  * devaholicquit (Ping timeout: 264 seconds)
04:36:36  * jez0990quit (Ping timeout: 248 seconds)
04:51:25  * juliangruber_joined
04:58:07  * dominictarrjoined
05:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 15]
05:00:23  <dominictarr>substack, this looks really interesting... shame it's in python http://www.amazon.com/Violent-Python-Penetration-Engineers-ebook/dp/B00ABY67JS/ref=pd_typ_k_sp_3_p
05:00:45  <ik>DAYCHANGE!
05:02:48  <defunctzombie>substack: plz don't use paypal
05:02:57  <substack>defunctzombie: I'm not
05:03:01  <substack>they are using testling-ci
05:03:02  <defunctzombie>thank god :D
05:03:13  <ik>rah rah rah
05:03:43  <defunctzombie>I was scared for a moment
05:06:16  <substack>I am interested in helping companies with lots of money use our services to make sure their shit still works
05:06:25  <substack>whoever they may be
05:06:46  <substack>especially if they have a lot of money
05:07:13  * juliangruber_quit (Ping timeout: 245 seconds)
05:10:04  <defunctzombie>yes
05:10:05  <Raynos>https://github.com/Raynos/level-delete-range
05:10:08  <defunctzombie>that is always important :)
05:10:11  <Raynos>FU indexeddb & versioning.
05:10:17  <defunctzombie>money for goods and services
05:11:47  <dominictarr>indexedDb has versioning?
05:12:02  * _sorensenjoined
05:13:16  <Raynos>yes
05:13:29  <Raynos>I dont know why its broken :/ it should just work
05:14:13  <dominictarr>Raynos, what is broken?
05:14:23  <Raynos>the test doesnt pass :P
05:14:37  <Raynos>im going to debug it in the wild or ignore the bug
05:17:17  <Raynos>writing the most naive leveldb replication thing right now
05:17:25  <substack>whoa that bug is crazy
05:18:29  <substack>getting some good use out of testling-ci I see!
05:24:57  <Raynos>Oh feck
05:25:01  <Raynos>im rewriting scuttlebutt >_<
05:34:43  * juliangruber_joined
05:37:16  * ITproquit (Ping timeout: 252 seconds)
05:43:26  <Raynos>pro-tip: when you have weird scuttlebutt / replication loops it fills your database with junk
05:43:34  <Raynos>If you forget to clear the db before reload the junk doesnt go away
05:43:48  <Raynos>> 2786 incoming change undefined
05:47:40  <Raynos>#success
05:48:35  <dominictarr>Raynos, what happens? can you write a test case... hmm,
05:48:48  <Raynos>its an infinite loop on my bad
05:49:06  <dominictarr>so, I think we had this problem with wizards
05:49:18  <Raynos>its really simple
05:49:29  <Raynos>pipe two through streams into each other
05:49:32  <Raynos>infinite loop :D
05:49:44  <Raynos>it's the problem of resetting the source
05:49:46  <dominictarr>haha
05:50:01  <dominictarr>"resetting the source"?
05:50:27  <Raynos>update comes in from source A. You store that update in db. Change comes from db. you set it on scuttlebutt model as yourself ( source B ). Then source A gets change from source B, stores in db, sets on model as source A, etc etc
05:50:35  <Raynos>its a figure of eight
05:51:16  <Raynos>http://raynos.github.com/painter/examples/paint/static/
05:51:39  * juliangruber_quit (Ping timeout: 276 seconds)
05:52:14  <Raynos>somebody draw please :(
05:52:46  <Raynos>its persisted in leveldb and replicated
05:53:06  <substack>doesn't draw anything
05:53:19  <ik>Raynos: i can't see what i am drawing
05:53:21  <ik>until i release the mouse
05:53:27  <Raynos>Yeah
05:53:28  <ik>"this is not very good!"
05:53:30  <ik>but
05:53:30  <Raynos>I can fix that
05:53:33  <ik>it's actually pretty cool
05:53:36  <ik>yea fix that \o/
05:53:37  <Raynos>substack: are you using non-chrome?
05:53:40  <substack>I can't see anything at all
05:53:45  <substack>chrome
05:53:54  <Raynos>error console?
05:54:17  <substack>plenty of noise
05:54:23  <substack>your code is so noisy!
05:54:29  <substack>console-wise
05:54:44  <Raynos>Yes
05:54:46  <Raynos>very noisy
05:54:50  <substack>that's bad
05:54:52  <Raynos>its because I was debugging it
05:54:54  <Raynos>2 minutes ago
05:54:56  <substack>makes it harder to see when shit breaks
05:54:57  <Raynos>and havnt removed logs yet
05:55:03  <substack>Uncaught Error: Cannot create a new store for current version. Please bump version number to 2.
05:55:09  <Raynos>!!!!
05:55:14  <Raynos>That's that same error in testling
05:55:25  <Raynos>:/
05:56:18  <Raynos>so im going to polish this demo a bit
05:56:43  <ik>:Di drew a turtle
05:57:09  <ik>substack: iank.org/raynos.png
05:57:18  <ik>i take it back ("this is not very good") because it is very good
05:57:23  <Raynos>its ok
05:57:27  <Raynos>I cleared everything xd
05:57:33  <substack>c/,,\
05:57:48  <Raynos>gist
05:58:00  <Raynos>dominictarr: https://gist.github.com/4274396
05:58:06  <Raynos>That's what I use for leveldb replication
05:59:14  <ik>I drew another turtle
05:59:27  <ik>it's pretty photorealistic
05:59:35  <dominictarr>that won't scale
05:59:46  <dominictarr>you have to load everything into memory
06:00:09  <rowbit>Hourly usage stats: [developer: 1, free: 33]
06:00:11  <ik>i'd scale you
06:00:29  <Raynos>dominictarr: It wont scale at all but it can be implemented in an hour and seems to work
06:00:44  <dominictarr>sure, it will work
06:00:59  <Raynos>i dont know how to replicate it scalingly
06:01:02  <Raynos>but I do like the api
06:01:05  <ik>who drew the butt
06:01:12  <Raynos>var stream = replicate(db, { start, end })
06:01:16  <Raynos>not me
06:02:58  <Raynos>yeah fixing seeing the line as drawing atm
06:03:28  <ik>oh man when i refresh it loads all of the lines one at a time in weird order
06:03:40  <ik>and i can't draw any things
06:03:57  <ik>help
06:04:47  <dominictarr>"Uncaught Error: Cannot create a new store for current version. Please bump version number to 2. "
06:07:39  <Raynos>dominictarr: :( ffs
06:08:05  <dominictarr>what is that for?
06:08:09  <Raynos>thats indexeddb
06:08:16  <Raynos>telling me that the store im opening cannot be opened
06:09:16  <dominictarr>because the version?
06:09:26  <dominictarr>what is the version?
06:09:26  <Raynos>yeah because it does versioning or some bullshit
06:09:30  <Raynos>any tips on how to reproduce
06:09:34  <Raynos>its the version of the entire database
06:09:47  <ik>man those _o/\o_ guys were pretty good for a blind drawing
06:09:50  <Raynos>it means the indexeddb wrapper doesnt handle things
06:09:50  <ik> | |
06:09:56  <ik> / \/ \
06:09:57  <ik>shit
06:09:58  <ik>PREDATOR
06:10:55  <dominictarr>what if you just put the open inside a try catch?
06:11:13  <dominictarr>I just opened the page the first time.
06:11:17  <dominictarr>and it did that
06:12:37  <dominictarr>it also eats all my cpu and memory
06:13:10  <ik>it does not eat all of my cpu and memory
06:13:59  * _sorensenquit (Quit: _sorensen)
06:14:06  <Raynos>the demo sucks :P
06:14:07  <Raynos>yes it does
06:14:31  <Raynos>1.4gb
06:14:32  <Raynos>epic
06:16:04  <dominictarr>just clicking on the canvas is having a visible effect on my OS cpu graph
06:16:15  <dominictarr>but no visible effect on the canvas :(
06:16:55  <dominictarr>just at idle it's taking 50% cpu
06:17:07  <Raynos>:(
06:17:40  <chrisdickinson>same here, spinning up the fans after loading the entire image ):
06:17:40  <dominictarr>alot of that might be logging.
06:17:47  <Raynos>cpu usage is stable
06:17:49  <dominictarr>I never see the image
06:17:57  <Raynos>sec
06:17:59  <Raynos>fixing shits
06:18:01  * juliangruber_joined
06:18:10  <Raynos>also going to bump the channel id
06:18:25  <dominictarr>it totally went crazy when I opened the dev console
06:18:57  <Raynos>Yeah
06:19:01  <Raynos>the logging is insane
06:19:07  <dominictarr>hey... so are you using your peer connection thing, and replicating scuttlebutt over it?
06:19:12  <Raynos>yes
06:19:32  <Raynos>http://raynos.github.com/painter/examples/paint/static/
06:19:36  <Raynos>Should have fixed a few buygs
06:19:39  <dominictarr>so, is each user connecting to each other user? or are they just replicating from a server?
06:20:00  <Raynos>fully connected topology
06:20:03  <Raynos>everyone replicates with everyone
06:20:15  <dominictarr>right I know what the problem is then
06:20:17  <Raynos>but you just swap out the topology
06:20:20  <Raynos>for a small world one
06:20:27  <Raynos>and only replicate with the connected peers
06:20:35  <ik>ba dum tsh
06:21:10  <Raynos>theres a bunch of other bugs but I care less about those
06:22:21  <dominictarr>first problem is that you don't track the time the item was inserted into the DB
06:22:24  <chrisdickinson>fwoom.
06:22:38  <ik>that is not a problem, "dominic"
06:22:42  <ik>my drawings of turtles are timeless
06:23:03  <Raynos>dominictarr: pretty much. I don't preserve the ts or source in the db
06:23:13  <Raynos>its the really naive implementation
06:23:17  <dominictarr>well, it wouldn't have to be timestamps
06:23:24  <substack>turtlestamps
06:23:27  <Raynos>btw
06:23:32  <Raynos>did the indexeddb version 2 thing go away?
06:23:35  <Raynos>or is it still there?
06:23:44  <dominictarr>you could just make "ik"'s pixels overrule everyone
06:24:01  <dominictarr>it doesn't matter
06:24:07  <substack>Raynos: still there
06:24:19  <Raynos>sucks
06:24:19  <dominictarr>but you need a way to know not to send a message to the other side
06:24:24  <Raynos>will look into it briefly
06:24:24  <substack>whoa except I can draw a single pixel now
06:24:35  <substack>and then it goes away
06:24:49  <dominictarr>basically everyone is sending everything to everyone, who is then sending it to everone again.
06:24:49  <chrisdickinson>so, it seems to be the renderer, not the js thus far
06:25:17  <Raynos>dominictarr: the replication has some kind of termination
06:25:44  <dominictarr>not in the code you showed me
06:25:50  <Raynos>https://github.com/Raynos/painter/blob/master/examples/paint/lib/replicate.js#L16
06:26:00  <Raynos>if the model already has it dont reset it
06:26:06  <Raynos>which means there are no updates
06:26:10  <Raynos>but it also terminates the infinite loop
06:27:03  <chrisdickinson>oh, question: why would you clear the canvas rect?
06:27:22  <Raynos>because that's how you render stuff
06:27:25  <Raynos>how else can you delete paths
06:27:46  <chrisdickinson>but no paths are ever deleted?
06:28:20  <Raynos>window.clear()
06:28:36  <chrisdickinson>then the replicated draws just happen to the canvas and you don't have to redraw all of the paths that have ever happened every frame
06:28:45  <dominictarr>oh right. okay that works... basically
06:28:56  <Raynos>it's a stupid termination
06:29:00  <dominictarr>you should just use a single scuttlebutt/model though
06:29:01  <Raynos>I need something more intelligent
06:29:08  <dominictarr>and not even use levelup
06:29:14  <dominictarr>or use level-scuttlebutt
06:29:20  <Raynos>but I want to use levelup :(
06:29:32  <Raynos>i want to pretend I can just cleanly replicate leveldb
06:29:39  <Raynos>and not use the scuttlebutt api
06:29:49  <Raynos>i want the inverse of level-scuttlebutt
06:29:57  <Raynos>I dont want to enhance scuttlebutt with persistence to leveldb
06:30:04  <Raynos>I want to enhance leveldb with gossip based replication
06:30:34  <dominictarr>there is data and then there is replicatable data
06:30:49  <dominictarr>you need some extra metadata for data to be replicatable
06:30:54  <dominictarr>that is just how it is.
06:31:00  <Raynos>i dont mind putting that meta data into leveldb
06:31:13  <Raynos>meh maybe I should use scuttlebutt and persist it to leveldb
06:31:24  <Raynos>but I prefer the leveldb api astatically
06:31:30  <dominictarr>basically, you need the same data as scuttlebutt keeps
06:31:33  <dominictarr>source, and ts
06:31:57  <dominictarr>(of course, you can divide it up differently, but other approaches have the same effect)
06:31:58  <Raynos>I guess so
06:32:19  <dominictarr>so, you could keep it in the document,
06:32:33  <dominictarr>or in the key
06:32:42  * juliangruber_quit (Quit: juliangruber_)
06:33:01  <dominictarr>both have different advantages, and both affect how you must access the database in some way
06:34:15  <defunctzombie>ok.. I wrote something focused on one topic.. I think
06:34:17  <defunctzombie>http://shtylman.com/post/the-copy-and-paste-virus/
06:36:03  <ik>your all-lowercase section headings are trendy as HECK i think i just peed myself
06:36:48  <defunctzombie>...
06:36:53  <defunctzombie>control yourself
06:46:33  <dominictarr>Raynos, how do you tell what version a indexDb is at?
06:46:42  <Raynos>i found the bug cause
06:46:45  <Raynos>or at least im trying to fix it
06:46:51  <Raynos>Also a user versions the database
06:46:56  <Raynos>its not that the browser versions the database
06:47:10  <Raynos>https://github.com/jensarps/IDBWrapper/blob/master/IDBStore.js#L166
06:47:12  <Raynos>FAMOUSE LAST WORDS
06:49:55  * defunctzombiechanged nick to defunctzombie_zz
06:53:57  <Raynos>great.
06:53:59  <Raynos>> Uncaught Error: InvalidStateError: DOM IDBDatabase Exception
06:54:20  <ik>when zombies eat brains do they say
06:54:24  <ik>"om zom zom"
06:54:30  <ik>or just
06:54:31  <ik>BRAINS
06:57:51  <dominictarr>oh, man... indexeddb api is ugly as fuck
07:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 32]
07:01:05  <Raynos>dominictarr: really ugly
07:01:11  <Raynos>its the worst DOM API
07:01:43  <Raynos>Oh I know how to reproduce this
07:01:45  <Raynos>stop using chrome dev (25)
07:01:49  <Raynos>and start using chrome stable!
07:01:51  <dominictarr>it makes the DOM itself look totally straight forward
07:13:11  <Raynos>yes local reproduction GET
07:16:30  <Guest96841>"it's the worst DOM api" is quite a claim, heh
07:16:36  * Guest96841changed nick to jden
07:18:28  <Raynos>it is!
07:18:48  <Raynos>jden: I'm hacking it now. I don't know why it's broken
07:18:55  <dominictarr>better is worse, so there for it's actually the best DOM api.
07:19:05  <dominictarr>worse is better
07:19:16  <Raynos>jden: http://raynos.github.com/painter/examples/paint/static/
07:24:15  <jden>Raynos: "fork me on github" banner is broken
07:24:32  <Raynos>noted
07:24:35  <Raynos>Fuck I have a broken demo
07:24:39  <Raynos>and I want to present tomorrow :/
07:26:48  <substack>git checkout -b working-version OLDCOMMITHASHTHATWORKED
07:27:51  <Raynos>it never worked!
07:27:56  <Raynos>Fucking idb wrapper is broken
07:29:01  <ik>would you shoot a bat ever
07:29:59  <jden>Raynos: where are you presenting?
07:30:08  <Raynos>east bay
07:31:25  <jden>for the record, Im not a fan of travel time from the penninsula to the east bay. this speaks poorly of the penninsula.
07:40:03  * fotoveritequit (Quit: fotoverite)
07:40:11  <Raynos>FIXED IT >:D
07:40:32  <Raynos>oh lol now it doesnt work in chrome -.-
07:43:27  * fotoveritejoined
07:46:11  * slaskisjoined
07:47:26  <jden>chrome is not important. :/
07:48:57  <Raynos>its hard to fix
07:49:45  <Raynos>but it should work in chrome now
07:51:15  <substack>ok bouncy replacement component now works
07:51:29  <substack>it's faster because it's just a small wrapper around the core http module
07:54:33  <substack>need to test against websockets
07:54:43  <substack>should be ok but it sets up an empty 'upgrade' handler
07:54:52  <substack>since all raw stream requests get upgraded
08:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 36]
08:00:52  * wiwilliajoined
08:09:28  <Raynos>dominictarr, substack: http://raynos.github.com/painter/examples/paint/static/
08:09:32  <Raynos>fixed that IDB bug hopefully
08:10:07  <Raynos>https://github.com/Raynos/level-delete-range yes!
08:10:58  <Raynos>substack: https://github.com/Raynos/level-delete-range tests wont run in canary
08:13:31  <substack>odd
08:14:35  <Raynos>ok I broke it
08:23:53  * wiwilliaquit
08:35:38  <substack>once I start giving talks again it will be so awesome because all the modules I use will have browser badges
08:35:53  <substack>works in exactly these browsers. pow done
08:35:54  <jjjjohnnny>is there a clone-stream?
08:36:05  <substack>jjjjohnnny: how would that work?
08:36:16  <jjjjohnnny>ideally clone a repsonse stream
08:36:37  <jjjjohnnny>and then rewrite the write function
08:36:37  <substack>for what purpose?
08:36:55  <jjjjohnnny>and then pipe it back to the original response stream
08:37:10  <jjjjohnnny>so i can meter the data
08:37:14  <substack>sounds like what es.connect() can do
08:37:22  <substack>https://github.com/dominictarr/event-stream
08:40:01  <substack>jjjjohnnny: https://gist.github.com/4275032
08:40:27  <substack>turns off bullshit, gives you raw tcp
08:40:30  <substack>when you need it
08:43:08  * AvianFluquit (Remote host closed the connection)
08:49:24  * b__joined
09:00:09  <rowbit>Hourly usage stats: [developer: 5, free: 26]
09:26:11  <jjjjohnnny>socket.pipe(pause).pipe(service).pipe(buffer).pipe(socket)
09:26:15  <jjjjohnnny>hope this works
09:47:24  * juliangruber_joined
09:50:27  * juliangruber_quit (Read error: Connection reset by peer)
09:50:33  * juliangruber__joined
10:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 31]
10:08:34  * juliangruber__quit (Quit: juliangruber__)
10:09:16  * jez0990joined
10:17:33  * juliangruber_joined
10:26:57  * AvianFlujoined
10:27:36  * ITprojoined
10:49:18  * b__quit (Quit: Textual IRC Client: www.textualapp.com)
10:55:02  * juliangruber_quit (Quit: juliangruber_)
10:56:30  * juliangruber_joined
10:58:44  * slaskisquit (Quit: slaskis)
11:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 33]
11:15:09  * juliangruber_quit (Quit: juliangruber_)
11:37:56  * ITproquit (Ping timeout: 248 seconds)
11:57:05  * slaskisjoined
12:00:09  <rowbit>Hourly usage stats: [developer: 8, free: 44]
12:10:10  * ITprojoined
12:59:20  * b__joined
13:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 33]
13:14:17  * juliangruber_joined
13:27:33  * juliangruber_quit (Quit: juliangruber_)
13:28:07  * juliangruber_joined
14:00:09  <rowbit>Hourly usage stats: [developer: 1, free: 35]
14:21:11  * ralphtheninjajoined
14:38:05  * yorickjoined
14:38:05  * yorickquit (Changing host)
14:38:05  * yorickjoined
14:55:07  * juliangruber_quit (Quit: juliangruber_)
14:59:15  * b__quit (Quit: Textual IRC Client: www.textualapp.com)
15:00:10  <rowbit>Hourly usage stats: [developer: 1, free: 80]
15:02:15  * AvianFluquit (Remote host closed the connection)
15:14:11  * b__joined
15:32:35  * juliangruber_joined
15:52:49  * defunctzombie_zzchanged nick to defunctzombie
15:53:08  * b__quit (Quit: Computer has gone to sleep.)
15:54:14  * slaskisquit (Quit: slaskis)
16:00:09  <rowbit>Hourly usage stats: [developer: 3, free: 73]
16:02:38  * b__joined
16:03:14  * dominictarrquit (Ping timeout: 255 seconds)
16:08:18  * juliangruber__joined
16:08:25  * juliangruber_quit (Read error: Connection reset by peer)
16:10:01  * _sorensenjoined
16:11:12  <Raynos>substack: http://testling.com/browsers.json I need chrome23
16:11:41  <Raynos>chrome23 has a working indexeddb API and a working peer connection
16:14:08  <defunctzombie>wooo!!! arbitrary precision decimals http://ci.testling.com/shtylman/node-num
16:14:32  <defunctzombie>substack: Raynos: I still want the blacklist option vs the whitelist :)
16:15:44  <pkrumins>sweet
16:16:41  <pkrumins>Raynos: i'll get that chrome 23
16:16:45  <defunctzombie>pkrumins: thanks for fixing all those issues
16:16:50  <Raynos>Thanks!
16:16:53  <pkrumins>yw!
16:17:39  <pkrumins>ok i'm booting up the browser vm to prepare stand alone chrome 23
16:17:50  <pkrumins>testling is getting chrome 23 and latest firefox in a few hrs
16:23:49  * juliangruber__quit (Quit: juliangruber__)
16:24:51  * jez0990quit (Ping timeout: 244 seconds)
16:27:25  <pkrumins>packing up chrome 23
16:28:55  <pkrumins>uploading chrome 23 to testling
16:29:18  * juliangruber_joined
16:31:22  * juliangruber_quit (Client Quit)
16:32:35  * _ritchjoined
16:33:26  * juliangruber_joined
16:34:06  * juliangruber_quit (Client Quit)
16:38:09  * frabcusjoined
16:41:47  <pkrumins>Raynos: testling now has chrome 23.
16:41:52  <Raynos>nice!
16:41:53  <pkrumins>adding firefox 16 and 17.
16:44:50  * AvianFlujoined
16:47:37  * tomshredsjoined
16:50:23  <Raynos>pkrumins: https://github.com/Raynos/level-delete-range
16:50:27  * st_lukejoined
16:51:13  <pkrumins>Raynos: awesome!
16:51:26  <Raynos>pkrumins: it didnt run on chrome 23
16:52:11  <pkrumins>oh
16:52:30  <pkrumins>you're right
16:54:37  <pkrumins>cant see what is wrong
16:55:06  <pkrumins>test never started
16:55:09  <pkrumins>for some reason
16:55:26  <pkrumins>im gonna try
16:55:35  <pkrumins>forking yr repo
17:00:09  <rowbit>Hourly usage stats: [developer: 1, free: 56]
17:01:09  <pkrumins>firefox is doing this: http://i.imgur.com/MJqp2.png
17:01:11  <pkrumins>just fyi
17:01:39  <pkrumins>Raynos: chrome 23 doesnt like your tests
17:01:42  <pkrumins>it just never runs them
17:02:02  <pkrumins>looks like chrome 23 never runs any testling tests
17:02:08  <pkrumins>something has probably changed
17:08:47  <Raynos>pkrumins: the firefox thing is weird
17:09:12  <Raynos>i havnt seen it do that before
17:09:13  <pkrumins>in what sense?
17:09:21  <pkrumins>all browsers prompt that
17:09:53  <pkrumins>i allowed git.testling.com to do it
17:09:59  <pkrumins>i think it wont ask again
17:13:42  * b__quit (Quit: Computer has gone to sleep.)
17:16:17  <Raynos>pkrumins: I was talking to substack about the badges yesterday. I would love a way for the badges to say "this failed test in this browser is because the browser is not supported".
17:16:42  <Raynos>I have a bunch of libraries that won't work in older browsers because they are simply not supported but I like the idea of messaging this using the browser badge
17:17:17  * tomshredsquit (Quit: Linkinus - http://linkinus.com)
17:17:30  <pkrumins>what does that mean
17:18:18  <pkrumins>it already gives a red flag if it failed
17:20:05  <Raynos>well there is it failed because its a bug
17:20:17  <Raynos>and there is it failed because this library won't be made to work with that browser version
17:20:34  <Raynos>for example my indexeddb stuff won't work in chrome < 23. Because it simply won't work there
17:21:19  <pkrumins>well then just dont indicate older browser versions!
17:21:59  <Raynos>well a lot of my libraries will only be tested in chrome 23 but work in earlier versions
17:22:16  <Raynos>For me I was actually really suprised that this indexeddb wrapper didnt work in chrome 22
17:22:38  <Raynos>so if it had a badge that says "works in chrome 23 because test passed. Doesn't work in chrome 22 because its flagged as unsupported"
17:22:45  <pkrumins>oic
17:22:57  <Raynos>I actually assume that if something works in chrome 23 it probably worked in chrome 13 too and everything in between
17:23:16  <pkrumins>that's not a good assumption
17:23:32  <Raynos>but its likely to be the case
17:23:36  <pkrumins>it makes sense that if it worked in chrome 13, it will work in chrome 23
17:23:37  <Raynos>for most browser stuff
17:23:39  <Raynos>thats not cutting edge
17:24:13  <Raynos>its just not obvouis that my webrtc / indexeddb modules dont work in chrome 22. I want a way to explicitly signal that to my users
17:24:27  * frabcusquit (Quit: Leaving.)
17:24:28  <pkrumins>yeah but how can testling know if you used a feature that works in chrome 23 but doesnt work in chrome 22 because it's not supported in chrome 22?
17:25:16  <Raynos>pkrumins: I would annotate the package.json with a not supported array or something
17:25:23  <pkrumins>Raynos: also i'm still working on this fix to completely isolate instances, sometimes when you run a test in like firefox 10, and then firefox 15, the firefox 15 will use firefox 10's engine.
17:26:02  <pkrumins>same for chrome sometimes. i'll have it finished soon. it's not easy.
17:26:18  <pkrumins>Raynos: oh if you annotate then it can be done.
17:26:29  <Raynos>i might make a PR
17:26:32  <Raynos>on browser badge for this
17:26:40  <pkrumins>what's a PR? private repo?
17:28:56  <Raynos>pull request
17:29:41  <pkrumins>ah
17:30:36  <pkrumins>sounds good
17:30:49  <pkrumins>ok i've made standalone versions of firefox 16 and 17
17:30:54  <pkrumins>putting them on testling servers
17:30:59  <Raynos>nice!
17:35:29  * jez0990joined
17:38:42  * frabcusjoined
17:39:14  <defunctzombie>http://codylindley.com/dom-desktop-tests/
17:39:22  <defunctzombie>this would be cool for testling to provide in the future
17:39:38  <defunctzombie>since testling could be a nice goto place for checking and testing compatibility :)
17:40:47  <Raynos>https://github.com/Raynos/feature/tree/master/test
17:40:53  <Raynos>Feature has a similar thing to that in mocha test format
17:41:02  <Raynos>I should add testling data to it
17:41:11  * frabcuspart
17:42:15  <Raynos>pkrumins: It might be cool to let one repo run multiple seperate testling suites
17:42:17  <pkrumins>testling now has firefox 16 and 17.
17:42:43  <Raynos>usecase: would be say https://github.com/Raynos/insert where I have one test suite that tests my code and one that tests whether it works in the DOM
17:43:26  <pkrumins>good use case
17:44:05  <pkrumins>cant quite imagine how it would work then
17:44:11  <pkrumins>would ir produce two badges or something
17:57:19  * b__joined
18:00:09  <rowbit>Hourly usage stats: [developer: 0, free: 48]
18:19:15  <Raynos>pkrumins: yes it would produce two badges
18:25:47  <substack>Raynos: just say "not supported: chrome/22" on your readme and leave the tests as failing
18:26:06  <substack>or don't put the test in your badge in the first place
18:42:46  * CoJaBojoined
18:43:53  <CoJaBo>Is it normal to have weird/numerous bugs on browserling? half the time it loads in the wrong browser, and I also noticed you can see the last site that anyone loaded...
18:49:34  * b__quit (Quit: Computer has gone to sleep.)
18:50:13  <substack>CoJaBo: it works pretty well whenever I use it
18:50:33  <substack>the seeing the last site thing is known and has been really impossibly hard to fix
18:52:40  <CoJaBo>..Yeh, i guess you can't just `kill -9` the browser on Windows... heh.
18:53:39  <CoJaBo>For the most part, its working... poorly for me; when it gets to the point where the site is almost loaded, it abruptly resets back to the "connecting" screen >_>
18:56:56  <substack>what kind of network are you using?
18:58:36  <CoJaBo>Wifi
19:00:02  <pkrumins>yes we'll have it fixed
19:00:09  <rowbit>Hourly usage stats: [developer: 1, free: 82]
19:01:03  <Raynos>substack: but then I have to write stuff :(
19:01:07  <Raynos>I want it in the readme
19:01:22  <Raynos>not in the readme
19:01:26  <Raynos>but in the image!
19:01:51  <Raynos>have a "works in X list" in my README and a badge is duplication of information
19:03:35  * juliangruber_joined
19:07:02  <substack>Raynos: having a "not supported" thing in the badge would complicate and confuse people on our end I think
19:07:59  <Raynos>Maybe.
19:08:10  <Raynos>but it could be an undocumented feature! :D
19:08:28  <jjjjohnnny>if u dont support it, dont test against it?
19:09:00  <Raynos>jjjjohnnny: I wasted 4 hours last night figuring out why IDBWrapper doesnt work in chrome 22. It was unsupported and not documented as unsupported
19:09:42  <Raynos>dont test against it is not good enough
19:10:31  <Raynos>it needs to be explicitely documented. I like documenting it in the badge because I already document support there
19:15:28  <substack>"supported" is a bad idea maybe
19:15:41  <substack>just show which browsers work and which ones don't
19:16:29  <substack>support is about intent which is less meaningful than tests output, which is about where code observably works
19:17:09  <substack>if somebody comes along later and fixes chrome 22 for you you'll need to modify your "support" field
19:17:25  <substack>instead of not caring and letting the badge show that
19:17:42  <substack>this is one thing I think travis-ci gets really wrong
19:17:50  <substack>partial failures are useful to show
19:19:01  <defunctzombie>substack: showing which browsers it doesn't work in is nice imho
19:19:08  <defunctzombie>that is where I think the blacklist is nicer
19:19:22  <defunctzombie>with a blacklist, I would essentially say, don't email me if it failed in this browser
19:19:27  <defunctzombie>(or other notification)
19:19:42  <defunctzombie>also, with a blacklist, those brwosers could be ommited from the list
19:19:52  <defunctzombie>and it would be clear that they are not "supported"
19:19:57  <defunctzombie>or you can dim them or something
19:20:23  * slaskisjoined
19:20:24  <defunctzombie>when making things for the web, my default attempt is to support many and only decide to support less if it is more trouble than it is worth
19:20:33  <defunctzombie>at least that is my current thinking :)
19:25:52  * dominictarrjoined
19:26:57  <dominictarr>hey Raynos! I need a really fast way to stream to other tabs
19:27:58  <dominictarr>like, if you open a page in multiple tabs
19:29:00  <dominictarr>doing that through the server is just silly
19:30:33  * b__joined
19:31:16  <dominictarr>by default, you get assigned resources per domain
19:31:45  <dominictarr>but if you open a single page node in one tab, that is actually a separate instance.
19:32:16  <dominictarr>we actually need something like autonode to make this work
19:51:15  * tilgovijoined
19:53:22  <jjjjohnnny>how can I selected just utf8 a-z from random buffers on a tcp stream and upperCase them?
19:53:52  <jjjjohnnny>this is probably a bad idea
19:59:17  * juliangruber_quit (Quit: juliangruber_)
20:00:10  <rowbit>Hourly usage stats: [developer: 0, free: 68]
20:01:45  <slaskis>jjjjohnnny: utf8? sounds like ascii to me :)
20:02:26  <jjjjohnnny>i dont know ascii
20:03:04  <pkrumins>dont ascii questions you cant ansi!
20:03:25  <CoverSlide>damn, yours was better
20:03:34  <pkrumins>haha yes
20:03:49  * nk109joined
20:04:07  <jjjjohnnny>so if i do if (alphabet.match(buf[x].toString('ascii')))
20:05:02  * dominictarrquit (Ping timeout: 250 seconds)
20:05:20  <jjjjohnnny>any good ideas for what I can do to http traffic coming through a TCP proxy for demo spice
20:06:09  <jjjjohnnny>i cant uppercase just the alphabeticals
20:07:19  <substack>relevant to webrtc p2p: http://dashes.com/anil/2012/12/the-web-we-lost.html
20:08:18  * b__quit (Quit: Computer has gone to sleep.)
20:09:50  * st_lukequit (Remote host closed the connection)
20:28:25  <Raynos>dominictarr: postMessage?
20:28:41  <Raynos>dominictarr: the problem is that each tab in chrome is like a seperate browser.
20:29:01  <Raynos>dominictarr: the best you can do is poll a database locally
20:29:01  * guybrush_joined
20:30:32  <Raynos>dominictarr: what your asking for is cross process communication without a handle on the other processes
20:33:59  * brianloveswords_joined
20:34:44  * brianloveswordsquit (*.net *.split)
20:34:44  * guybrushquit (*.net *.split)
20:34:44  * brianloveswords_changed nick to brianloveswords
20:44:18  * isaacs_joined
20:44:47  * dominictarrjoined
20:46:54  * isaacsquit (Disconnected by services)
20:46:57  * isaacs_changed nick to isaacs
20:47:32  * rook2pawnquit (*.net *.split)
20:48:03  * rook2pawnjoined
20:49:45  <dominictarr>hey Raynos I've just realized that we have a new problem
20:49:46  <dominictarr>we need a way to stream between browser tabs
20:52:55  <dominictarr>this can be done via localStorage actually, and window.onstorage
20:53:25  <dominictarr>interestingly this will be naturally multicast
20:54:19  <dominictarr>also, it looks like webkit supports a shared web worker
20:54:28  <dominictarr>which could be used for the same thing
20:55:30  <dominictarr>need a poly fill!
21:00:10  <rowbit>Hourly usage stats: [developer: 1, free: 22]
21:01:20  * juliangruber_joined
21:08:32  * juliangruber_quit (Quit: juliangruber_)
21:10:26  * st_lukejoined
21:10:59  * st_lukeis free
21:11:14  <pkrumins>o/
21:18:36  * juliangruber_joined
21:21:28  <Raynos>This code reminds me of java
21:21:29  <Raynos>:/
21:21:36  <Raynos>Its like copy + paste + tweak
21:22:36  <Raynos>I copied 11 lines of code just to change one ~_~
21:22:46  <defunctzombie>st_luke: congrats!
21:27:58  * dominictarrquit (Ping timeout: 245 seconds)
21:29:23  * juliangruber_quit (Quit: juliangruber_)
21:35:01  <substack>so close to getting http-raw to finally work
21:35:55  <pkrumins>woo working bouncy no more epipe errors
21:36:05  <substack>yep
21:39:37  <st_luke>defunctzombie: thanks dude
21:43:34  <defunctzombie>substack: you know what I like about testling (vs looking at this saucelabs shit)
21:44:07  <defunctzombie>testling-ci was super simple and clear to use with no account and other bs :)
21:44:18  <substack>\o/
21:44:25  <substack>I tried really hard to make that the case
21:44:59  <substack>started with the travis-ci model and then simplified it
21:45:00  <st_luke>speaking of testling-ci, I started to set it up on something the other night but got interrupted, I think I'll do that today
21:45:12  <substack>st_luke: sweet!
21:45:18  * devaholicjoined
21:45:19  <substack>yeah it's working surprisingly reliably too
21:45:35  <substack>especially considering how tricky it can be to get tests working in browsers in the first place
21:45:40  <st_luke>++ on a service node people are doing vs the alternatives
21:46:06  <defunctzombie>substack: yea, the travis-ci model was a good start
21:46:20  <defunctzombie>the badges aspect is really cool as well
21:46:28  <defunctzombie>and great viral marketing
21:46:28  <substack>I don't understand why travis-ci has a username and auth token in the github webhooks
21:46:45  <substack>since you can just check what the repo uri is in the webhook payload
21:46:51  <isaacs>Raynos: that thing in berkeley is today, yeah?
21:46:55  <substack>and make sure the webhook is coming from a whitelisted github IP
21:46:56  <Raynos>yes
21:46:58  <substack>which they publish
21:47:05  <defunctzombie>no idea
21:47:07  <isaacs>Raynos: you got the link? i lost it.
21:47:21  <Raynos>https://maps.google.com/maps?q=2101+Webster+Street,+Suite+1650+Oakland,+CA+94612,+Oakland,+CA
21:47:22  <substack>defunctzombie: they just looked at the existing webhook examples I think
21:47:23  <st_luke>substack: my guess is nobody cares to change it
21:47:27  <Raynos>http://www.meetup.com/EBJavaScript/events/92886012/
21:47:27  <substack>or that
21:47:28  <defunctzombie>maybe they over complicated it?
21:47:33  <substack>or it's really difficult to change at this point
21:47:42  <defunctzombie>maybe a combination of both
21:47:49  <substack>the neat thing is that our stack isn't even coupled to github
21:47:54  <defunctzombie>hop into #travis and ask them :)
21:47:55  <substack>it just proxies webhooks into `git push`es
21:47:58  <defunctzombie>they may just tell you
21:48:24  <Raynos>isaacs: its not in berkely
21:48:27  <Raynos>its near lake merrit
21:48:32  <substack>Raynos: oh sweet
21:48:38  <isaacs>oh, that's not berkeley, that's right in my hood
21:48:42  <substack>less of a bike ride for me
21:48:44  <isaacs>yeah, i'll definitely be there.
21:48:50  <Raynos>Aw man
21:48:57  <Raynos>you guys need to show me the good oakland tacos afterwards
21:49:07  <substack>Raynos: tweet something with the map on it and I'll RT
21:49:20  <substack>do you have the tacos mi rancho is pretty nearby
21:49:25  <substack>haha lag
21:49:55  <substack>oh right, that looks like pandora's building
21:49:58  <Raynos>https://twitter.com/Raynos2/status/279342372339466240
21:50:55  <substack>RTd
21:51:14  <Raynos>o/
21:51:22  <substack>need more awesome tech companies HQ'd in oak city
21:51:30  <ik>substack: https://twitter.com/spkomba/status/279342774854225920
21:51:38  <ik>16:50:55 < substack> RTd # probably yea?
21:56:53  <defunctzombie>I just stumbled upon this https://github.com/rogerwang/node-webkit
21:58:24  <substack>yep I saw that demoed in shanghai by the author
21:59:41  <CoverSlide>it's massive though
22:00:02  <CoverSlide>you bundle like 100 megs for you little html app
22:00:09  <rowbit>Hourly usage stats: [developer: 3, free: 32]
22:00:17  <Raynos>defunctzombie: node-webkit and appjs are the contenders
22:00:19  <Raynos>Try them!
22:00:28  <Raynos>defunctzombie: or implement the webgl spec on top of opengl
22:00:35  <defunctzombie>what is appjs
22:00:36  <Raynos>actually there is already a project for that out there!
22:00:38  <defunctzombie>never heard of it
22:00:48  <Raynos>There is already creatonix webgl abandonware out there :D
22:01:00  <CoverSlide>you mean topcube?
22:01:40  <defunctzombie>I actually found that you could do really cool stuff with chrome web apps
22:01:45  <Raynos>http://2011.nodeknockout.com/teams/minimason
22:01:50  <defunctzombie>now that they have tcp and udp sockets
22:02:35  <CoverSlide>they do? since when?
22:02:41  <CoverSlide>canary?
22:03:01  <Raynos>chrome apps suck
22:03:05  <Raynos>because its hard coupled to chrome
22:03:15  <Raynos>some emulate webgl on top of opengl
22:03:53  <CoverSlide>would be nice if pnacl was standardized
22:04:07  <substack>chrome should just let you use node
22:04:11  <substack>natively
22:04:21  <CoverSlide>agreed
22:05:55  <CoverSlide>forget typed arrays, i want a buffer
22:06:05  <defunctzombie>substack: it kinda does in some ways
22:06:14  <defunctzombie>like I made "stream" interfaces to their tcp stuff
22:06:21  <defunctzombie>so I could then use whatever I wanted on top of that
22:06:24  * devaholicquit (Ping timeout: 260 seconds)
22:06:32  <substack>but it would be great if it just worked without shims natively
22:06:42  <defunctzombie>yes
22:07:45  <CoverSlide>wonder how difficult it would be to put node bindings in nacl
22:19:13  <st_luke>Cloning into 'node'...
22:19:13  <st_luke>remote: Counting objects: 87042, done.
22:21:22  <fotoverite>st_luke congrats on being finished
22:21:52  <st_luke>fotoverite: thanks
22:23:37  <st_luke>it was a pretty frustrating finale with a lot of unfortunate exchanges, but it comes with the territory
22:25:25  <Raynos>st_luke: what are we congrat you on?
22:25:39  <CoverSlide>being unemployed?
22:25:51  <substack>funemployed
22:29:50  <substack>blarg http parser is doing too much magic
22:29:59  <substack>need to turn off more magic to get this working
22:32:11  * slaskisquit (Quit: slaskis)
22:32:17  <CoverSlide>http_parser is shit to work with. me hates it
22:33:23  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 5)
22:33:27  <substack>!
22:33:55  <substack>possibly bouncy shat itself
22:34:07  <substack>and it messed up the queue
22:34:13  <substack>yeah because
22:34:29  <substack>oh hmm
22:34:32  <substack>could just be a spike
22:34:43  <substack>aha yeah the free servers are genuinely in use
22:34:55  <substack>ok now just 2/3 are used
22:34:57  <substack>good stuff
22:35:00  <substack>thanks rowbit!
22:48:22  <Raynos>substack: is rowbit a child you employed in china?
22:52:24  <gildean>substack: yeah, i've mentioned the service a couple of times in #web, so people might've noticed
23:00:10  <rowbit>Daily usage stats: [developer: 31, free: 1025]
23:00:10  <rowbit>Hourly usage stats: [developer: 0, free: 75]
23:03:11  * intabulasjoined
23:18:15  * juliangruber_joined
23:33:22  <juliangruber>substack: can I trigger a re-run of testling ci?
23:33:57  <substack>juliangruber: not without pushing new code
23:34:26  <substack>enabling this requires finishing a branch I started in pushover
23:34:38  <juliangruber>substack: ok sweet
23:35:14  <juliangruber>editable somehow still is broken but stay has run!
23:35:23  <substack>defunctzombie: here's where that off by 1 issue in the mocha tap output is from https://github.com/visionmedia/mocha/commit/61cec64680727d4e0808311d4e59263a83196aab#L0R30
23:35:37  <juliangruber>putting testling.ci badges in some readmes
23:35:44  <substack>\o/
23:36:09  <substack>there are possibly some pushover bugs still hiding but I found one of the big ones
23:36:42  * st_lukequit (Remote host closed the connection)
23:36:43  <defunctzombie>substack: nice find
23:37:03  <substack>well tj linked me to the commit that put the output in in the first place
23:39:22  <juliangruber>substack: https://github.com/juliangruber/stay
23:39:29  <juliangruber>substack: only ie! :o
23:39:37  <substack>\o/
23:39:47  <substack>juliangruber: safari too
23:40:10  <substack>the error messages aren't great
23:40:16  <substack>oh idea
23:40:28  <substack>if I can get something to spit out the line numbers
23:40:38  <Raynos>substack: spit out the line numbers and find the line
23:40:40  <substack>then I can link or inline the source directly by pulling it from github
23:40:45  <Raynos>the line numbers are useless if they are for the bundle
23:40:59  <Raynos>just inline the relevant source
23:41:01  <substack>Raynos: yes I have technology for figuring out line numbers
23:41:06  <defunctzombie>substack: fuck yea
23:41:14  <defunctzombie>that would be bitchin
23:41:38  <juliangruber>substack: is tj using pushover for his component thing?
23:41:50  <substack>so basically I can resurrect the stackedy idea but with falafel instead which can do non-destructive in-place updates
23:41:59  <substack>juliangruber: I don't think so
23:42:12  <Raynos>substack: I was thinking of fm (function manager). Which is a tool on top of npm which enforces extra rules. Like you can't publish a module if it exports more then one function
23:42:18  <substack>component just clones github repos and reads metadata
23:42:45  <substack>Raynos: sometimes it makes sense to export multiple functions
23:42:51  <substack>stringify/parse for instance
23:42:54  <substack>encode/decode
23:42:57  <Raynos>sometimes it makes sense to have multiple repos!
23:43:13  <Raynos>require("json-encode") require("json-decode")
23:43:14  <juliangruber>substack: I added tags to pushover to be able to create private component servers. push to a git server and it lays it out in a github style folder structure -> juliangruber/contre
23:43:16  <substack>meh
23:43:25  <Raynos>require("system.java.lang.json.encodefactory.singleton")
23:43:28  <Raynos>Aw man
23:43:38  <Raynos>I should prefix all my modules with "system.javascript.raynos."
23:43:44  <substack>juliangruber: that sounds really neat
23:43:51  <defunctzombie>my gripe with component is that it could have all been done with package.json
23:44:04  <juliangruber>yeah
23:44:09  <juliangruber>i use it from time to time
23:44:18  <juliangruber>sometimes it's browserify, sometimes it's component
23:44:25  <defunctzombie>I never use component
23:44:37  <defunctzombie>I liked the idea at first
23:44:38  <juliangruber>when i need npm modules and don't feel like porting over, i use browserify
23:44:45  <defunctzombie>but when I found out about the duplication
23:44:59  <defunctzombie>and other nonsense I decided against it
23:45:01  <Raynos>the problem with component
23:45:02  <defunctzombie>there are better ways ;)
23:45:05  <Raynos>is how do you do semvers?
23:45:18  <defunctzombie>substack: how are you going to get line numbers in the browser?
23:45:21  <juliangruber>when i need ui things like https://github.com/component/calendar I use that
23:45:35  <juliangruber>Raynos: support will come for semvers
23:45:45  <juliangruber>Raynos: right now it's just absolute or *
23:45:53  <Raynos>juliangruber: how the fuck can you do anything without semvers
23:46:32  <juliangruber>Raynos: it's in development ;)
23:46:33  <defunctzombie>juliangruber: you could have done all that with package.json
23:46:40  <Raynos>...
23:46:46  <defunctzombie>juliangruber: without package version pinning I won't even touch it ;)
23:46:47  <Raynos>its like a must have feature
23:46:59  <juliangruber>defunctzombie: i see tj's point. and you can pin package versions!
23:47:06  <defunctzombie>things *will* break
23:47:09  <juliangruber>you know
23:47:23  <juliangruber>tj's world is different from #stackvm world
23:47:29  <juliangruber>he is super into products
23:47:33  <juliangruber>we're more into tech
23:47:38  <defunctzombie>I am into products
23:47:43  <juliangruber>yeah
23:47:45  <defunctzombie>products that are not breaking
23:47:51  <defunctzombie>thing people break their code
23:47:52  <juliangruber>but traditional products, that's wat tj wants
23:47:53  <juliangruber>websites
23:47:54  <substack>defunctzombie: I can just rewrite all the lines of the test files to add annotation data
23:48:07  <substack>that's what stackedy does
23:48:20  <substack>except uglify-js updates don't preserve the identity correctly
23:48:30  <substack>esprima can be made to work this way however
23:48:37  <substack>so it should be a lot more robust of an approach
23:48:43  <juliangruber>substack: I was thinking about rewriting the ast to provide simple benchmarks...// benchmark: turns into // benchmark: 10s
23:48:44  <substack>oh goodness that is going to rock so much
23:49:02  <substack>juliangruber: I've done some experiments with that but meh
23:49:13  <juliangruber>substack: comments suck for such
23:49:13  <substack>I think it's best to just write benchmark tests manually
23:49:24  <substack>they are really easy
23:49:35  <juliangruber>substack: sometimes you want to continuously measure parts of your code
23:49:39  <substack>var start = Date.now(); /* do stuff */ var elapsed = Date.now() - start
23:49:52  <juliangruber>substack: e.g. if you don't know what's wrong in production
23:51:12  <defunctzombie>substack: yea, you are right on the code rewriting part
23:51:17  <defunctzombie>that sounds quite doable and awesome
23:52:05  <substack>I've already done it and it worked except for sometimes when it didn't work
23:52:17  <substack>should work much better using falafel
23:52:44  * devaholicjoined
23:59:20  * intabulasquit (Remote host closed the connection)
23:59:35  <defunctzombie>"substack: I've already done it and it worked except for sometimes when it didn't work" \o/