00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:03:32  * _sorensenquit (Ping timeout: 248 seconds)
00:08:39  * tilgovi_joined
00:09:28  * tilgoviquit (Ping timeout: 252 seconds)
00:13:19  * tilgovi_changed nick to tilgovi
00:14:36  * fotoveritejoined
00:15:39  * fotoveritequit (Client Quit)
00:29:20  * defunctzombie_zzchanged nick to defunctzombie
00:31:17  * wiwilliaquit (Ping timeout: 244 seconds)
00:39:01  * defunctzombiechanged nick to defunctzombie_zz
00:44:36  * tilgoviquit (Ping timeout: 264 seconds)
00:44:48  * nk109quit (Quit: Computer has gone to sleep.)
00:46:03  * yorickquit (Remote host closed the connection)
00:56:03  * tilgovijoined
00:56:46  <Raynos>gozala: I want a way to refresh my app with new code without losing state :D
01:00:08  <gozala>Raynos: interesting
01:00:21  <gozala>I don't think it will be very simple though
01:00:24  <Raynos>this is the dream
01:00:33  <Raynos>its also the dream of reflex
01:00:41  <Raynos>state can be serialized at any point
01:00:44  <Raynos>and replayed however
01:00:50  <gozala>but you could I guess serialise state and then refresh and render last state
01:04:44  * ryan_stevensquit (Quit: Leaving.)
01:05:12  * ralphtheninjaquit (Ping timeout: 252 seconds)
01:05:41  <Raynos>http://stackoverflow.com/a/1060034/419970
01:05:50  <Raynos>a 20 lines snippet like that BELONGS IN NPM
01:08:51  <substack>reusable snippets belong on npm, agreed
01:14:11  <Raynos>https://gist.github.com/4350029
01:14:22  <Raynos>now the annoying part :P
01:14:24  <Raynos>making a repo and shit
01:14:41  <Raynos>substack: how do I testling to unfocus the window :D
01:16:04  <substack>Raynos: require('ever')(window).emit('unfocus')
01:16:34  <Raynos>i wonder whether that works
01:16:37  <substack>it's like $(window).trigger('unfocus') only tinier
01:16:47  <substack>try it and see
01:16:58  * ralphtheninjajoined
01:17:05  <substack>I went exactly off the w3c spec and mdn pages for event handling but I could have made mistakes
01:17:07  <substack>oh ALSO
01:17:11  <substack>ever needs to be on testling-ci
01:17:16  <Raynos>window.dispatchEvent(new Event("blur"))
01:17:34  <chrisdickinson>substack: if all goes well, i'm going to probably have questions for you re: getting testling ci setup for plate tonight
01:18:06  * mirkokquit (Ping timeout: 250 seconds)
01:18:21  <Raynos>window.dispatchEvent(new Event("webkitvisibilitychange")) doesnt work :(
01:18:25  <Raynos>oh wait
01:18:35  <Raynos>yeah `document.dispatchEvent(new Event("webkitvisibilitychange"))` works :D
01:18:41  <Raynos>#winning
01:19:10  <chrisdickinson>also, https://github.com/chrisdickinson/rewrite-js + https://gist.github.com/4350051 have greatly aided in the experience
01:19:16  <chrisdickinson>i might write one for mocha-to-tape too
01:19:17  <Raynos>I want to require("window") and require("document")
01:19:31  <Raynos>both those names are taken. what would be good names for those modules?
01:20:13  <Raynos>chrisdickinson: What's plate?
01:23:36  * rvagg_joined
01:31:22  <mbalho>substack: https://github.com/substack/virus-copter/blob/master/lib/iw.js should be a module
01:31:32  <mbalho>substack: im about to use it!
01:31:35  <substack>true
01:31:39  <mbalho>substack: to script raspberry pis to auto join open wifis
01:31:40  <substack>mbalho: put it on npm
01:31:48  <mbalho>can i steel ur codez
01:31:52  <mbalho>ill make a readme
01:32:01  <substack>mbalho: yes
01:32:04  <mbalho>and put an ascii photo of you in the source code
01:32:09  <substack>haha
01:32:36  <substack>Raynos: what if there were a website that taught people how to make frontend apps with browserify+npm+testling-ci
01:32:42  * rvagg_quit (Ping timeout: 252 seconds)
01:33:22  <Raynos>substack: the harder question is how do you make small frontend apps
01:33:26  <substack>and had a list of recommended modules for doing frontendy dom things that people usually use jquery or frameworks for
01:33:28  <Raynos>my frontend apps are crippled by npm
01:33:32  <Raynos>because they are too fucking large
01:33:41  <Raynos>and I cant introduce new versions of npm modules without refactoring everything
01:33:54  <substack>1) build smaller apps
01:34:05  <Raynos>I can build smaller things on server
01:34:06  <substack>with fewer moving parts
01:34:12  <Raynos>because I can trivially do cross process communication
01:34:38  <Raynos>the problem im having
01:34:44  <Raynos>is that on the server I have one package.json per process
01:34:52  <Raynos>on the front end I have one package.json per entire web app
01:34:59  <Raynos>I feel like I want a package.json per page in the web app
01:35:11  * ryan_stevensjoined
01:35:13  <substack>you can split up your pieces into seperate submodules
01:35:16  <Raynos>That might solve a lot of my problems
01:35:19  <substack>with package.jsons
01:35:27  <substack>that's what I was trying to do with yarnify
01:35:31  <substack>perhaps I need to revisit that idea
01:35:39  <Raynos>i have some alternatives to yarnify
01:35:41  <ralphtheninja>aah nice tool for iwconfig
01:35:50  <Raynos>except scoping css is a pain
01:36:01  <Raynos>we should sketch out some of these ideas!
01:36:03  <Raynos>maybe in code.
01:36:06  <substack>Raynos: anyways the point of this website would be to distill these lessons
01:36:21  <Raynos>true
01:36:36  <Raynos>I need to be able to require("document") and require("window") so I can do dependency injection :D
01:36:53  <substack>you shouldn't need to do that
01:37:02  <Raynos>im running my tests in node >_>
01:37:06  <Raynos>browser tests
01:37:08  <substack>don't do that
01:37:16  <substack>run browser tests in browsers
01:37:28  <Raynos>:(
01:37:35  <Raynos>but half of the test can run in node
01:37:42  <Raynos>and the other half is browser specific
01:37:50  <substack>then split up your tests
01:37:57  <Raynos>https://gist.github.com/1a7f21fe4c38dd615ba8
01:38:08  <Raynos>But its a pain to run subset of test suites in either environment
01:38:42  <substack>it's not
01:38:58  <ralphtheninja>are there any sign streams out there? like sign data with your private key and have the receiver check the signature with the public
01:38:59  <substack>tap test/*.js test/server/*.js
01:39:11  <substack>"files": ["test/*.js","test/browser/*.js"]
01:39:35  <substack>common stuff goes in test/, platform-specific tests go in test/server/ or test/browser/
01:39:37  <mbalho>ralphtheninja: that sounds cool
01:39:39  <Raynos>ralphtheninja: https://github.com/dominictarr/scuttlebutt#security
01:40:06  <Raynos>substack: I guess so, but you can mock out platform specific stuff ( updated gist https://gist.github.com/1a7f21fe4c38dd615ba8 )
01:40:10  <mbalho>substack: just checking does 'iwconfig wlan0 essid off' disconnect you from the current network?
01:40:21  <substack>Raynos: mocking is a recipe for confusing failure
01:40:29  <substack>mocking is so unreliable
01:40:33  <Raynos>substack: its needed to mock out XHR
01:40:35  <substack>it's not worth the trouble to make it work
01:40:41  <Raynos>its useful to mock out setTimeout to speed up tests
01:40:44  <substack>don't mock out xhr, just actually do xhr
01:40:47  <substack>xhr is cheap
01:40:49  <ralphtheninja>Raynos: then THAT should be refactored out to a module of its own
01:40:49  <substack>just do the real thing
01:41:00  <Raynos>substack: but then I need to set up a tunnel and a testing server
01:41:37  <substack>Raynos: testling-ci will handle this for you
01:41:44  <ralphtheninja>scuttlebutt ftw :)
01:41:54  <Raynos>substack: I still have to write a testing server which is a pain in the ass.
01:42:26  <ralphtheninja>cian said that they were gonna start a scuttlebutt conference, scuttle in the morning and butt in the evening
01:42:32  * ryan_stevensquit (Read error: Connection reset by peer)
01:42:32  <Raynos>mocking out XHR allows me to return dummy data in the browser instead of setting up a testing server to return dummy data
01:42:39  <substack>don't mock things cripes
01:42:44  <substack>it's such a bad idea >_<
01:42:44  * ryan_stevensjoined
01:43:05  <substack>Raynos: just design your interfaces to be testable and then you don't need to mock
01:43:21  <Raynos>how do you design a testable XHR interface
01:44:27  <substack>Raynos: in functional programming there is this idea of pure functions with an IO shell
01:44:30  <Raynos>substack: the main reason I run my browser tests in node is so that npm test outputs TAP for those tests
01:44:34  <substack>you don't need to test the IO shell because it is very simple
01:44:51  <Raynos>i don't have the tooling setup to run tests in a browser and return TAP to my console
01:44:52  <substack>and the pure functions are very testable because they don't do IO
01:45:43  <Raynos>substack: agreed, unless your testing the IO shell :D
01:54:11  <substack>Raynos: you should test IO by actually performing IO
01:54:22  <substack>not performing mocks, which represent what you think IO should do
01:54:31  <substack>instead of actually doing it
01:54:35  <substack>tests are about interrogating reality
01:54:49  <substack>mocks are wrought with confirmation bias by design
01:55:00  <mbalho>tests are about wasting your companies time
01:55:06  <substack>also that
01:55:06  <mbalho>i just wanna show up to work and work on my test suite
02:02:57  * rvagg_joined
02:05:36  <substack>Raynos: having a really hard time duplicating the bug we get on your repo locally
02:06:47  <substack>mbalho: I think your http-browserify patch is breaking this page http://ci.testling.com/Colingo/valid-schema
02:06:54  <substack>the one that added concat-stream
02:07:11  <substack>since now there are Int32Arrays being emitted by http-browserify
02:07:27  <mbalho>lol
02:07:29  <substack>which do not act like node buffers at all
02:07:39  <mbalho>they do sometimes
02:07:51  <substack>they don't have .slice()
02:08:04  <substack>it's really hard to duplicate this bug too
02:08:07  <Raynos>substack: :(
02:08:14  <substack>the only place I can get it to show up is on that page
02:09:16  <Raynos>substack: not sure what I did tbh
02:09:25  <Raynos>maybe its in my tests
02:09:32  <mbalho>substack: there is typedarray.subarray
02:10:04  <substack>mbalho: I would need to get that patch into jsonparse, which is a creationix module
02:10:12  <substack>I was surprised that my utf8 patch went in at all
02:10:18  <pkrumins>this is happening too:
02:10:21  <pkrumins>commit Colingo/valid-schema.git#5da97f7b3085ddb3b9ff7100fd8b8bd63497937f (master)
02:10:24  <pkrumins>error creating bundle
02:10:28  <pkrumins>looks like randomly
02:11:23  <pkrumins>substack: at first we can just npm install your local fix until it goes into creationix's repo
02:11:40  <substack>yes but i can't duplicate any of this locally at all
02:11:57  <substack>the bug depends on xhr getting into such a state that it emits Int32Arrays
02:12:04  <pkrumins>oh
02:12:20  <substack>none of my local data will do that
02:12:42  <substack>I have no idea how xhr in browsers decides that it will start emitting Int32Arrays
02:12:57  <pkrumins>oh i see. what about adding Int32Arrays.prototype.slice just for great good?
02:13:11  <substack>pkrumins: yes we can do that
02:13:14  <substack>good thinking
02:13:24  <pkrumins>great!
02:13:58  <Raynos>substack: http://msdn.microsoft.com/en-us/library/ie/br212468(v=vs.94).aspx
02:14:06  <Raynos>do you set responseType of XHR to be binary?
02:16:28  <ralphtheninja>substack: cheat and hardcode a return value of Int32Arrays
02:17:09  * ryan_stevensquit (Quit: Leaving.)
02:17:21  <substack>Raynos: I don't think so
02:17:22  <ralphtheninja>assuming you aren't searching for why it returns Int32Array of course :)
02:18:32  <Raynos>mbalho: did you write that joke framework?
02:24:49  * dguttmanquit (Quit: dguttman)
02:26:01  <substack>SWEET
02:26:06  <substack>I'm finally getting the error locally
02:26:07  <substack>Uncaught TypeError: Object #<Int32Array> has no method 'slice'
02:28:46  <Raynos>nic!
02:40:38  <substack>fuck everything about Int32Array
02:40:47  <substack>how to I turn one of these pieces of shit into a string
02:41:07  <substack>since I can't seem to turn off getting these fuckers
02:41:55  <substack>browser specs are such garbage >_<
02:47:32  * ryan_stevensjoined
02:58:51  <substack>Raynos: http://ci.testling.com/Colingo/valid-schema
02:59:01  <pkrumins>:DDD
02:59:39  * ryan_stevensquit (Ping timeout: 256 seconds)
03:03:11  <substack>Raynos: your editor thrashes on leading whitespace :(
03:03:53  <substack>otherwise I would have accepted your pull reqs for tape already
03:04:05  <substack>when I see a lot of line spam I tune out
03:04:15  * stlsaintquit (Ping timeout: 252 seconds)
03:06:10  <substack>rage closed
03:07:22  <substack>haha relatedly https://github.com/feytek/scuttlebutt/commit/e30f077a4c2f986c475013c966c6412f0e4e6d49
03:07:29  <substack>who does that >_<
03:17:03  * tilgoviquit (Remote host closed the connection)
03:18:04  * tphummelquit (Quit: tphummel)
03:21:58  <mbalho>substack: its commonly told to noobs that they should fix readmes as a way of making small contributions
03:22:35  <substack>mbalho: I disagree with that advice
03:22:50  <mbalho>well you shouldnt get mad at noobs who take it
03:23:04  <mbalho>at least they are better than the other 99.98 percent of the world who will never make a pull request about anything ever
03:25:34  * ryan_stevensjoined
03:27:45  <chrisdickinson>seeing a lot of issues with tape involving setMaxListeners :|
03:27:49  <substack>Raynos: I can't seem to duplicate the bug that your tape patches claim to solve on master
03:28:54  <substack>NEVERMIND
03:28:58  <substack>got a failing test
03:29:21  * defunctzombie_zzchanged nick to defunctzombie
03:29:54  <chrisdickinson>substack: any suggestions for https://gist.github.com/56c76ec4e1d4367f5436, re: tape?
03:32:42  <substack>I always disliked that warning
03:33:49  <substack>chrisdickinson: not sure which object is causing that
03:33:59  <substack>if you write me a failing test and then fix it I'll merge it into tape
03:37:12  * ryan_stevensquit (Ping timeout: 244 seconds)
03:37:25  <chrisdickinson>yeah, it's the "process.on('exit'" bit in the createharness, so if you have > 11 tests, it'll spit out that error.
03:38:41  <substack>ah ok
03:38:47  <substack>I can whip up a quick failing test for that
03:39:02  <substack>since I still have the file open :p
03:39:05  <chrisdickinson>:D
03:40:46  * dguttmanjoined
03:43:33  <defunctzombie>substack: for http-browserify what do you do with the browsers that buffer the response?
03:44:02  <substack>defunctzombie: you just get the result all at once at the end
03:44:06  <substack>instead of incrementally
03:44:08  <defunctzombie>:(
03:44:16  <defunctzombie>so not a great replacement for websocket type stuff
03:44:20  <substack>nope
03:44:24  <defunctzombie>sadness, I guess we fight on
03:46:12  <chrisdickinson>also, it seems like tape is screwing up wrt to exiting before all of the tests have finished.
03:48:33  * dguttmanquit (Quit: dguttman)
03:52:02  <substack>chrisdickinson: npm install [email protected]
03:52:57  <chrisdickinson>that… broke things differently :)
03:55:44  <substack>going to see if the gas station around the corner has any wine
03:55:50  <substack>that would really hit the spot right now
04:03:35  <isaacs>https://en.wikipedia.org/wiki/New_Public_Management
04:03:38  <isaacs>i'm kind of liking this.
04:03:46  <isaacs>i'm going to start telling people that this is the namesake for npm
04:04:09  <isaacs>"Some modern authors define NPM as a combination of splitting large bureaucracies into smaller, more fragmented ones, competition between different public agencies, and between public agencies and private firms and incentivization on more economic lines."
04:09:39  <substack> NPM has been a significant driver in public management policy around the world, from the early 1980s to at least the early 2000s.
04:10:12  <substack>Some authors say NPM has peaked and is now in decline.
04:14:07  <isaacs>pshh
04:14:10  <isaacs>"Some" authors.
04:14:10  <isaacs>bah
04:14:36  <substack>I know which authors.
04:14:49  <isaacs>though, to be fair, the people behind NPM were talking about splitting government into private-like competing agencies.
04:15:10  <isaacs>the natural extension of that, of course, is to split it up all the way to the individual.
04:15:22  <substack>getting all evolutionary on that civics
04:15:22  <isaacs>with npm, every user is potentially also a part fo the "system"
04:15:28  <isaacs>yep
04:16:19  <chrisdickinson>hm. having trouble getting testling running against my newly tape'd-up module tests.
04:16:28  <isaacs>All government is local. Government is people. There is no State, there is only People.
04:16:46  <substack>chrisdickinson: link?
04:16:58  <chrisdickinson>1 sec, gotta push it up as a branch
04:16:58  <isaacs>The state exists only in our minds, like the Tooth Fairy, and other things that do not exist.
04:17:33  <substack>chrisdickinson: only master seems to work
04:17:48  <chrisdickinson>this is just using curl + browserify
04:17:57  <substack>bug in github-push-receive
04:18:56  <chrisdickinson>substack: does the testling curl api work with tape instead of requiring testling?
04:19:11  <chrisdickinson>(or browserified tape?)
04:20:02  <substack>testling http api is really different from the ci
04:20:18  <substack>it's old and hasn't been revisited
04:20:28  * guybrushquit (Ping timeout: 265 seconds)
04:20:36  <substack>it doesn't yet work with the new style of console.log
04:21:03  <chrisdickinson>for instance, i'm running `browserify tests/plate.js > bundle.js; curl -u <user> -p -sSNT bundle.js testling.com/?browsers=chrome`
04:21:10  <chrisdickinson>where test/plate.js looks like https://github.com/chrisdickinson/plate/blob/tape/tests/plate.js
04:21:23  * gozalaquit (Ping timeout: 245 seconds)
04:21:37  <substack>that won't work
04:21:40  <chrisdickinson>forgive the awful code style, it's really really old.
04:21:48  <substack>don't use the testling curl api
04:21:59  <substack>it doesn't play nicely with testling-ci
04:22:03  * chrisdickinsonnods
04:22:13  <chrisdickinson>just trying to test without plopping something on master
04:23:06  <substack>var ws = require('xhr-write-stream'); console.log = function (msg) { ws.write(msg + '\n') }
04:23:14  <substack>you could do that
04:23:29  <substack>then whip up a server to show the xhr stream
04:24:37  <chrisdickinson>but that still wouldn't work against the testling servers, correct?
04:24:43  <chrisdickinson>(the non-ci testling servers, i mean.)
04:24:52  <substack>not presently no
04:25:02  <substack>all of that is getting downplayed soon
04:25:16  <substack>so we can focus on the ci angle
04:25:28  <substack>and I'll build a thing for testing locally
04:26:54  <chrisdickinson>hm, hm, hm
04:27:21  <chrisdickinson>so you can run the testling ci tests by hitting ci.testling.com/<user>/<repo> ?
04:27:32  * Raynos_joined
04:28:06  * guybrushjoined
04:29:08  * sveisvei_joined
04:29:19  * dguttmanjoined
04:29:47  * duncanbeevers_joined
04:30:25  * ryanseddon_joined
04:30:48  * pikpik_joined
04:31:08  * notelliottcable_joined
04:33:42  * gozalajoined
04:38:22  * ehd_joined
04:38:55  * dguttmanquit (Quit: dguttman)
04:39:52  * owenb_joined
04:42:16  <Raynos_>substack: yes my editor cleans all murderous whitespace!
04:42:28  <Raynos_>substack: is there a tool to remove whitespace from commits?
04:43:03  <Raynos_>substack: http://ci.testling.com/Colingo/valid-schema
04:43:39  <Raynos_>never mind looks good
04:44:39  * niftylettuce__joined
04:46:15  <chrisdickinson>how do i setup a repo for ci.testling.com?
04:47:33  <substack>the http://ci.testling.com/ page describes it
04:47:45  <substack>configure package.json then add a webhook for http://git.testling.com
04:50:02  * defunctzombiechanged nick to defunctzombie_zz
04:50:57  <Raynos_>substack: you a devel
04:54:14  <substack>beep?
04:54:50  <dools>WITH HORNS AND EVERYTHING
04:54:50  <LOUDBOT>"SHIT THERE AREN'T ANY SPACES"
04:55:14  <isaacs>substack: lolz
04:55:19  <isaacs>substack: yes, i suppose so
04:55:55  <chrisdickinson>so it's just showing IE at the moment… guessing the other browsers are pending?
04:56:07  <substack>chrisdickinson: yep
04:56:16  <substack>refresh
04:56:23  <substack>haven't written the websockety part yet
04:56:56  * purrchanged nick to purr________
04:59:50  * elliottcablechanged nick to elliottcable___
05:00:45  <ik>DAYCHANGE!
05:01:02  * chrisdickinsonderps around getting plate to work.
05:02:36  * shuaibquit (Ping timeout: 264 seconds)
05:02:58  <chrisdickinson>hmm: http://ci.testling.com/chrisdickinson/plate
05:03:51  <chrisdickinson>substack: any ideas about the above? ^^
05:04:01  <chrisdickinson>https://github.com/chrisdickinson/plate
05:05:00  <chrisdickinson>i'm omitting the one test that could possibly be accessing that directory
05:06:37  <substack>which file loads tests/templates?
05:07:14  <substack>github web ui is so terrible
05:07:21  <substack>all I want to do is grep
05:09:01  <chrisdickinson>substack: the only one should be https://github.com/chrisdickinson/plate/blob/master/tests/plugins.js
05:10:05  <chrisdickinson>think i figured out why it's trying it.
05:11:06  <chrisdickinson>… nope!
05:11:11  * elliottcable___changed nick to elliottcable
05:11:37  <substack>one thing is that tests/index.js returns a non 0 exit code
05:11:44  <substack>but that shouldn't affect the testling tests
05:12:01  * purr________changed nick to purr
05:12:24  <chrisdickinson>ah, i was under the impression that tape would handle the exit code (and that it would default to 0 if there were no errors)
05:12:41  <substack>could be a bug in tape I think
05:17:14  <chrisdickinson>ah, figured out some portion of it.
05:17:51  <chrisdickinson>wonder why tape would exit with 1 when it says everything passed :|
05:18:51  <Raynos_>Please recommend additions: https://gist.github.com/4350728
05:19:10  <substack>chrisdickinson: it does that when you plan the wrong number of tests
05:19:19  <chrisdickinson>aaah.
05:19:24  <dools>by design
05:19:48  <dools>substack was like "what will communicate most effectively to the user, that they have planned the wrong number of tests?"
05:19:54  <dools>*beeping sounds*
05:19:58  <dools>I KNOW!!! EXIT 1
05:19:58  <LOUDBOT>AND ITS TOMMORROW OVER THERE TOO! BUT THEY DON'T GET THE LOTTERY NUMBERS STILL
05:20:13  <substack>haha
05:20:24  <substack>dools: well it *tries* to tell you through more overt means
05:20:27  <substack>but sometimes it can't
05:20:31  <AvianFlu>SHUT UP LOUDBOT THE WORLD IS NOT ENDING AND YOU AREN'T REALLY EVEN THAT LOUD
05:20:31  <LOUDBOT>HERPILICIOUS
05:20:50  <Raynos_>dools! :D
05:21:11  * defunctzombie_zzchanged nick to defunctzombie
05:21:13  * doolslives in a glass house and shouldn't throw such stones anyway
05:21:17  <Raynos_>dools! I had that same problem. "Oh you have exited the process without ending a test. PROCESS.EXIT 1"
05:21:55  <dools>AvianFlu: i think the fact that pizza hut in australia just released a pizza with a hot dog stuffed crust *might* indicate end times, though. i'm not sure if the mayans predicted it
05:22:24  <dools>(although presumably they're just copying the states anyway)
05:22:27  <dools>THANKS MEAT CAT
05:22:27  <LOUDBOT>AT LEAST YOU AREN'T USING NET::IRC
05:22:43  <AvianFlu>BY JOVE I THINK YOU
05:22:43  <LOUDBOT>YOU CONVINCED ME IT WAS A GOOD IDEA TO GO TO A PHP HACK NIGHT
05:22:47  <AvianFlu>'VE GOT IT DOOLS
05:22:48  <LOUDBOT>MY COMPUTER DOESN'T TURN ON WINDOWS JUST BLUE SCREENS I THINK I NEED SOMEONE TO REINSTALL MY BIOS.
05:24:46  <dools>Revelations 8:22: and lo the house of bread and cheese shall unleash upon ye infidels a plague which DOTH make ye choke and ye BLOOD slow in thy heart until you ARE upon ye reckoning. and so it shall be, that cheesy blasters will signify end of days
05:25:01  <dools>d'oh! i said you
05:25:06  <dools>the illusion is incomplete
05:25:18  * rvagg_quit (Ping timeout: 256 seconds)
05:25:43  <dools>i love how when you argue the significance of the bible with zealots they quote the bible at you.
05:26:34  <dools>like you go "oh, yeah so what i don't get is why you would think that in a seemingly infinite universe, that a prime creator would pay so much attention to the minutae of the every day lives of a single species amongst trillions of species on a single planet amongst trillions of planets"
05:26:54  <dools>well, in the book of Matthew, he spake unto us and said "Know ye are in my image", so like, that's why
05:26:58  <dools>IDIOTS
05:27:04  <dools>I SAID IDIOTS
05:27:05  <LOUDBOT>SYSTEM WOULD YOU STOP USING UP ALL MY CPUS ALREADY
05:27:12  <ralphtheninja>lol
05:28:36  <Raynos_>Seriously though please recommend additions to this list: https://gist.github.com/4350728
05:30:31  <dools>Raynos_: you can put this on there! https://github.com/dgrinton/fragmentify-js
05:30:35  <dools>not very well documented, but we use it
05:30:53  <dools>(ie. we built it and we use it and it is good. so spake untoeth the lord to job)
05:31:00  <Raynos_>dools: doesnt have a package.json
05:31:07  <Raynos_>everything else on that list is on npm
05:31:37  <Raynos_>its also not very minimal :P
05:32:07  <Raynos_>Also FU Raynos
05:32:16  <dools>oh well
05:32:38  <dools>i noticed you had a couple of templatey things on there, but this is nothing to do with node
05:32:46  <dools>apart from the fact that it uses javascript
05:32:52  <Raynos_>why am I online twice
05:33:04  <dools>end times
05:33:26  <Raynos_>dools: the templatey things are <100 lines each
05:33:48  <dools>Revelations 7:12: lo ye shall be postfixed with an underscore
05:34:03  <dools>lines of code is a thing?
05:34:55  <Raynos_>yes
05:34:59  <Raynos_>if its too many lines of codes
05:35:02  <Raynos_>then its bullshit
05:35:06  <Raynos_>or its fucking complex
05:35:16  <Raynos_>if your database driver is 2k loc then its cool
05:35:20  <Raynos_>because database drivers are shit
05:35:22  <Raynos_>and hard to write
05:35:55  <dools>meh, code either works or it doesn't. there is nothing else in this world
05:36:29  <Raynos_>agreed
05:36:33  <Raynos_>but if it doesnt work
05:36:36  <Raynos_>I have to go into the code
05:36:39  <Raynos_>and figure out wtf its doing
05:36:48  <Raynos_>if the code is small, simple and tested
05:36:52  <Raynos_>then its less likely to be a fuck up
05:37:19  <dools>yes, agreed. axiomatically simple modules are the ideal components
05:38:24  <dools>and are the only situation in which i will abide the phrase "reinvent the wheel" as it pertains to software
05:38:46  <dools>BUT IN MOST CASES YOU ARE NOT REINVENTING THE FUCKING WHEEL YOU WHEELTARDS BECAUSE THE CODE FUCKING SUCKED TO BEGIN WITH
05:38:46  <LOUDBOT>SANDIA NATIONAL LABS NEEDS TO HURRY UP AND GIVE ME AN OFFER AND ILL GO MAKE WEAPONS FOR THEM OR SOMETHING
05:40:26  <dools>i do so abhor the phrase reinvent the wheel. making that statement assumes that the piece of code you're "reinventing" is analogous to the wheel, which is basically an axiom of geometry, and the worlds simplest machine
05:44:45  <substack>chrisdickinson: looks like it's working now, yay!
05:45:28  <substack>dools: likewise!
05:45:44  <chrisdickinson>substack: yes and no -- it's ignoring FF and Safari for some reason :(
05:45:46  * mikealquit (Quit: Leaving.)
05:45:52  <substack>if only software limited its scope enough for immitators to be considered reinventions
05:45:55  <substack>chrisdickinson: hmm
05:46:07  <substack>chrisdickinson: this could happen if the tests are timing out
05:46:24  <chrisdickinson>so lines preceded with "#" are commented out?
05:46:26  <substack>or maybe there are too many stray browsers open, checking
05:46:47  <substack>chrisdickinson: tap only looks at line starting with /^ok/, /^not ok/, and /^1..\d+/
05:47:15  <chrisdickinson>(it'd be nice if test outputted failed test stack traces, commented out)
05:47:36  <substack>you can output whatever you like with tap
05:48:09  <dools>16:45 < substack> if only software limited its scope enough for immitators to be considered reinventions <-- TWEETABLE
05:48:16  <chrisdickinson>hmm, hmm. my old test framework used https://github.com/chrisdickinson/tracejs to output test failures, which was handy.
05:48:41  <chrisdickinson>but maybe a little bit difficult to integrate with browserify.
05:51:24  <chrisdickinson>so the local testing for testling ci is forthcoming?
05:52:42  <defunctzombie>Raynos_: what do you use to replace jquery? have specific libs for dom, selectors, etc? links?
05:52:57  <Raynos_>defunctzombie: https://gist.github.com/4350728
05:53:08  <Raynos_>chrisdickinson: ^ recommend additions
05:55:10  <chrisdickinson>Raynos_: new module suggestions, or existing modules?
05:55:19  <Raynos_>either.
05:55:28  <Raynos_>if new, then write them then add them to the list :D
05:56:00  <chrisdickinson>commented
05:56:04  <Raynos_>chrisdickinson: https://github.com/Colingo/valid-schema/blob/master/.testem.json I use testem for local testing
05:56:10  <Raynos_>I run the same tests in testling
05:57:09  <defunctzombie>Raynos_: found some of these https://github.com/component/dom some have tests, haven't tried it tho
05:58:48  <Raynos_>defunctzombie: that's too kitchensinky :D
05:58:59  <defunctzombie>it is made up of those little ones
05:59:10  <defunctzombie>I linked it cause it has links to the smaller ones it is made up of
05:59:48  <defunctzombie>doesn't seem to do dom add or remove stuff tho
06:00:18  <Raynos_>defunctzombie: I will probably ignore them due to anti-component bias.
06:00:33  <defunctzombie>haha yea, I spoke to tj, he isn't against a package.json for htem
06:00:45  <defunctzombie>he just didn't do it himself
06:02:52  <Raynos_>chrisdickinson: put some testling on https://github.com/chrisdickinson/cssauron-html
06:03:04  <defunctzombie>all these little libs you linked need some testling-ci love
06:03:24  <Raynos_>yeah they should
06:03:31  <Raynos_>Make PRs :p
06:03:46  <chrisdickinson>Raynos_: good point. would probably go smoother than plate, too :|
06:04:11  <defunctzombie>:)
06:06:42  * shuaibjoined
06:06:49  * shuaibquit (Client Quit)
06:07:52  <defunctzombie>Raynos_: does your xtend work in various browsers?
06:08:03  <defunctzombie>it seems much much simpler than the extend module
06:08:05  <Raynos_>defunctzombie: it was updated to run in IE6 a few months back
06:08:09  <substack>chrisdickinson: yep local testling coming soon
06:08:11  <defunctzombie>which says it is a port of jquery extend
06:08:17  <substack>it's really simple
06:08:23  <Raynos_>the extend module is even bugged -.-
06:08:26  <substack>since testling just punches console.log() is all
06:08:27  <defunctzombie>hahaha
06:08:31  <defunctzombie>Raynos_: amazing
06:08:43  <Raynos_>i noted the bug and it was ignored :D
06:09:30  <defunctzombie>heh
06:10:56  <defunctzombie>Raynos_: turning typeahead into a jquery free component
06:11:10  <defunctzombie>dammit.. I want to use the word component but don't want to confuse it with component
06:11:20  <defunctzombie>web-ui-widget
06:11:25  <defunctzombie>yes.. that is better hahaha
06:11:44  * mikealjoined
06:12:05  <Raynos_>defunctzombie: widget :p
06:12:11  <defunctzombie>:p
06:15:37  * fotoveritejoined
06:20:02  <Raynos_>defunctzombie: I have `chatBox/component.js` and `chatBox/widget.js` in my code. Best names ever :D
06:20:17  <defunctzombie>haha
06:20:23  <ik>those seem like regular names
06:20:29  <ik>is your life incredibly boring
06:23:46  <Raynos_>ik: your sarcasm detector is broken
06:34:00  <chrisdickinson>according to testling ci, plate works fine on IE9 and opera :|
06:34:06  <chrisdickinson>GREAT SUCCESS
06:34:07  <LOUDBOT>HAVE YOU RETURNED TO YOUR DOMICILE
06:34:09  <chrisdickinson>:D
06:39:24  <substack>not sure why it's crapping out on the other browsers :/
06:41:12  <Raynos_>https://www.youtube.com/watch?v=y8hVeKMD_oM
06:43:03  <substack>Raynos_: oh that pull req you sent me for ever is a great thing for testing with testling-ci
06:43:13  <substack>once I get some tests all up in it
06:43:19  <Raynos_>substack: yes!
06:45:55  <Raynos_>^ that is best video ever
06:46:01  <Raynos_>egorov is funny
06:52:30  <chrisdickinson>Raynos_: http://ci.testling.com/chrisdickinson/cssauron-html
06:52:42  <Raynos_>#winning
06:53:07  <chrisdickinson>have no idea what's killing IE<=8 ):
06:59:54  * fotoveritequit (Read error: Operation timed out)
07:01:19  <Raynos_>chrisdickinson: https://github.com/chrisdickinson/cssauron-html/pull/1
07:01:50  <Raynos_>how could you not guess that from "unexpected identifier"
07:01:52  <chrisdickinson>:D
07:02:12  <chrisdickinson>it's been a while, i completely forgot that IE barfed on unquoted "class"
07:02:37  <chrisdickinson>also, hilariously, i was looking at exactly that line and saying "oooohhhhh" when you pinged me.
07:03:24  <defunctzombie>jesus.. why are dom apis so stupid
07:03:31  <defunctzombie>who came up with these terrible apis
07:05:17  <chrisdickinson>p.s.: "git commit -m <msg> --allow-empty" makes triggering CI builds nicer.
07:09:59  <substack>defunctzombie: nobody came up with them
07:10:07  <substack>that's part of what makes them so terrible
07:10:14  <defunctzombie>substack: they escaped from the crazy farm
07:10:20  <substack>design by committee etc
07:13:58  <dools>DESIGN BY COMMITTEE GIVES YOU AVERAGE RESULTS BY DEFINITION
07:13:58  <LOUDBOT>YOU GUYS THE EARTH IS A POINT MASS
07:14:44  <dools>the bigger the committee the more average the results
07:14:57  <dools>which is excellent when it comes to government, but terrible when it comes to software
07:15:07  <dools>anyway, merry christmas, i'm out of here
07:16:43  <substack>merry apocalypse
07:16:52  <substack>still december 20th here
07:17:01  <substack>the future probably doesn't even exist
07:32:50  <defunctzombie>haha
07:32:58  <defunctzombie>it is the 21st here
07:33:04  <defunctzombie>and so far I believe I am still here
07:33:11  <defunctzombie>in existence.. but one can never be too sure
07:33:19  * thatguydanquit (Quit: thatguydan)
07:34:57  * thatguydanjoined
07:35:02  * thatguydanquit (Client Quit)
07:38:17  <substack>probably just a figment of my beer-addled imagination at this point
07:43:08  <defunctzombie>haha
07:49:43  <defunctzombie>well, I am off to sleep.. hopefully I will wake up later
07:50:39  * defunctzombiechanged nick to defunctzombie_zz
08:00:04  * AvianFluquit (Remote host closed the connection)
08:03:00  <guybrush>it looks pretty dark outside (21 here)
08:06:57  * rvagg_joined
08:28:01  * ITproquit
08:37:08  * AndChat648704quit (Ping timeout: 248 seconds)
08:44:06  * niftylettuce__quit (*.net *.split)
08:44:06  * owenb_quit (*.net *.split)
08:44:06  * notelliottcable_quit (*.net *.split)
08:44:06  * ryanseddon_quit (*.net *.split)
08:44:06  * purrquit (*.net *.split)
08:44:06  * Nexxyquit (*.net *.split)
08:44:06  * munroquit (*.net *.split)
08:44:47  * purrjoined
08:46:10  * niftylettuce__joined
08:46:10  * owenb_joined
08:46:10  * notelliottcable_joined
08:46:10  * ryanseddon_joined
08:46:10  * Nexxyjoined
08:46:10  * munrojoined
08:50:54  * stlsaintjoined
09:09:10  * rvagg_quit (Read error: Connection reset by peer)
09:21:27  * jez0990joined
09:52:37  * ehdquit (Remote host closed the connection)
09:52:37  * notelliottcablequit (Remote host closed the connection)
09:52:37  * pikpikquit (Remote host closed the connection)
09:52:37  * Raynosquit (Remote host closed the connection)
09:52:37  * sveisveiquit (Remote host closed the connection)
09:52:37  * duncanbeeversquit (Remote host closed the connection)
09:52:37  * niftylettuce_quit (Write error: Broken pipe)
09:52:37  * ryanseddonquit (Write error: Broken pipe)
09:52:38  * owenbquit (Write error: Broken pipe)
09:54:51  * Raynos_quit (Remote host closed the connection)
09:54:51  * ehd_quit (Remote host closed the connection)
09:54:51  * pikpik_quit (Remote host closed the connection)
09:54:51  * notelliottcable_quit (Write error: Broken pipe)
09:54:52  * sveisvei_quit (Remote host closed the connection)
09:54:52  * owenb_quit (Write error: Broken pipe)
09:54:52  * ryanseddon_quit (Write error: Broken pipe)
09:54:52  * niftylettuce__quit (Write error: Broken pipe)
09:54:52  * duncanbeevers_quit (Write error: Broken pipe)
09:58:42  * mirkokjoined
10:12:14  * ehd_joined
10:12:29  * notelliottcable_joined
10:12:40  * duncanbeevers_joined
10:13:00  * ryanseddon_joined
10:14:54  * owenb_joined
10:16:36  * Raynos_joined
10:16:44  * sveisvei_joined
10:17:14  * niftylettuce__joined
10:18:17  * pikpik_joined
10:30:48  * mirkok_joined
10:33:19  * mirkokquit (Ping timeout: 260 seconds)
10:33:19  * mirkok_changed nick to mirkok
12:01:45  * stlsaintquit (Ping timeout: 265 seconds)
13:34:23  * mirkokquit (Quit: mirkok)
14:09:11  * pikpik_changed nick to pikpik
14:10:01  * pikpikquit (Changing host)
14:10:01  * pikpikjoined
14:10:01  * pikpikquit (Changing host)
14:10:01  * pikpikjoined
14:58:44  * AvianFlujoined
15:14:48  * chapelquit (Ping timeout: 260 seconds)
15:56:40  * dguttmanjoined
15:58:20  * st_lukejoined
16:14:06  * jibayjoined
16:24:05  * defunctzombie_zzchanged nick to defunctzombie
16:28:29  * wiwilliajoined
16:52:43  * jez0990quit (Ping timeout: 265 seconds)
16:57:58  * tphummeljoined
17:04:26  * tphummelquit (Ping timeout: 255 seconds)
17:06:03  * wiwilliaquit (Ping timeout: 265 seconds)
17:10:38  * tphummeljoined
17:14:57  * dominictarrjoined
17:15:04  <dominictarr>tanepiper: ping?
17:31:46  * wiwilliajoined
17:33:20  * dominictarrquit (Quit: Page closed)
17:37:45  * tphummelquit (Quit: tphummel)
17:41:14  * st_lukequit (Remote host closed the connection)
17:47:05  * slaskisjoined
18:03:18  * ryan_stevensjoined
18:08:23  * mirkokjoined
18:10:22  * st_lukejoined
18:10:30  <defunctzombie>I've concluded that I need one simple "dom" lib which provides events, css, and basic insert/modify
18:10:39  <defunctzombie>using separate libraries for this task is just a nightmare
18:11:07  <defunctzombie>fundamentally the library is just a thin wrapper around the apis already provided on an element
18:13:33  * mirkok_joined
18:16:20  * mirkokquit (Ping timeout: 248 seconds)
18:16:20  * mirkok_changed nick to mirkok
18:19:18  * ryan_stevensquit (Quit: Leaving.)
18:19:54  * chapeljoined
18:25:31  * slaskisquit (Quit: slaskis)
18:26:35  <substack>defunctzombie: write a library that just includes other libraries and presents a single api
18:26:56  <defunctzombie>substack: that is the plan
18:26:59  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
18:26:59  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
18:27:02  <substack>sounds good
18:27:04  <substack>hooray!
18:27:06  <defunctzombie>\o/
18:27:38  <substack>^ food money
18:40:32  * mirkokquit (Quit: mirkok)
18:42:44  * ryan_stevensjoined
18:42:50  * mirkokjoined
18:49:53  <AvianFlu>I HAVE TO SAY, I EXPECTED THE APOCALYPSE TO HAVE A LOT LESS IN COMMON WITH AN ORDINARY RAINY TUESDAY
18:49:53  <LOUDBOT>THATS RIGHT, IN ALL OF MY OPINIONS
18:55:12  <Raynos_>defunctzombie: multiple libraries is the way to go.
18:55:32  * Raynos_changed nick to Raynos
19:00:15  * mirkokquit (Quit: mirkok)
19:02:13  <substack>AvianFlu: that's what makes this apocalypse so insidious
19:02:33  <substack>just like the last one with harold camping
19:02:46  <substack>turns out it was a SPIRITUAL apocalypse the whole time
19:02:50  <substack>nobody saw that one coming
19:02:53  <AvianFlu>OH MY GOD YOU'RE RIGHT
19:02:53  <LOUDBOT>HURF DURF WHY ARE POOR PEOPLE SO FAT IF PEOPLE ARE STARVING
19:06:08  <Raynos>substack: links to apocalpyse jokes
19:10:54  * mirkokjoined
19:14:25  * stlsaintjoined
19:14:25  * stlsaintquit (Changing host)
19:14:25  * stlsaintjoined
19:24:34  * wiwilliaquit (Ping timeout: 240 seconds)
19:26:43  * ryan_stevensquit (Quit: Leaving.)
19:27:55  <jesusabdullah>dangit where is max
19:38:25  <isaacs>http://nodejs.org/docs/v0.9.4/api/stream.html
19:39:51  * wiwilliajoined
19:41:40  <Raynos>isaacs: the lack of being able to push things into the internal buffer of readable stream is probably something that needs to be fixed
19:42:32  <Raynos>isaacs: https://github.com/Raynos/read-stream#example-from how do I write that using _read WITHOUT having a second buffer
19:42:37  <isaacs>Raynos: agreed.
19:42:52  * ryan_stevensjoined
19:42:57  <isaacs>Raynos: i kind of have to hack around that for net streams as well.
19:43:08  <Raynos>isaacs: link?
19:43:19  <isaacs>Raynos: lib/net.js
19:43:21  <isaacs>Raynos: in master.
19:43:23  <Raynos>:P
19:43:30  <isaacs>Raynos: look at the Socket class.
19:43:37  <isaacs>there's only two classes in that file, realy, Socket and Server.
19:43:55  <isaacs>and Server mostly just juggles Sockets around
19:44:00  <isaacs>but it has its own handle that it's listening on
19:44:10  <Raynos>https://github.com/joyent/node/blob/master/lib/net.js#L466
19:44:11  <Raynos>Ah that!
19:44:27  <Raynos>onread(null, chunk) is enqueue(chunk)
19:46:32  <Raynos>isaacs: https://github.com/dominictarr/through#through also has a .queue method which means push onto internal buffer
19:52:43  <isaacs>Raynos: yah, but it's like, super duper internal API, and very very easy to fuck up
19:52:56  <isaacs>but, ya know, unstable branch, etc. :)
19:53:08  <isaacs>we can polish it up in January. patches welcome :)
19:58:14  * jez0990joined
20:01:58  * stlsaintquit (Ping timeout: 244 seconds)
20:03:13  <Raynos>isaacs: I think readable-stream needs push API of some kind before 0.10 otherwise I won't use _read
20:04:02  * defunctzombiechanged nick to defunctzombie_zz
20:05:33  <isaacs>Raynos: ok
20:06:12  <Raynos>isaacs: ill make a patch once I refactor
20:21:19  <Raynos>once I refactor my stream abstractions
20:22:49  <substack>https://gather.at/e/7cc08bf
20:31:02  * ryan_stevensquit (Quit: Leaving.)
20:32:06  * yorickjoined
20:32:06  * yorickquit (Changing host)
20:32:07  * yorickjoined
20:34:29  <mbalho>substack: http://www.pfrr.alaska.edu/
20:38:03  * yorick_joined
20:38:03  * yorick_quit (Changing host)
20:38:04  * yorick_joined
20:38:54  * yorickquit (Ping timeout: 252 seconds)
20:58:03  * defunctzombie_zzchanged nick to defunctzombie
20:58:28  <defunctzombie>Raynos: multiple libraries is impractical
20:58:30  <defunctzombie>all teh apis make no sense
20:58:32  <defunctzombie>and you have to search all over to do the most basic things
20:58:33  * _sorensenjoined
20:58:43  * sorensenjoined
20:58:53  <defunctzombie>the code with multiple libraries is much worse than something that is more consolidated in this case
20:59:03  <defunctzombie>because fundamentally, you are operating on an Element
20:59:09  <defunctzombie>and just wrapping calls to it
20:59:19  <defunctzombie>so it really should be one focal point
21:01:31  * ryan_stevensjoined
21:12:56  * ryan_stevensquit (Ping timeout: 245 seconds)
21:35:36  * wiwilliaquit (Ping timeout: 264 seconds)
21:36:41  * AvianFlu_joined
21:36:59  * AvianFluquit (Read error: Connection reset by peer)
21:37:05  * AvianFlu_changed nick to AvianFlu
21:38:59  * ryan_stevensjoined
21:39:07  * devaholicjoined
21:41:48  * AvianFlu_joined
21:41:59  * AvianFluquit (Disconnected by services)
21:42:00  * AvianFlu_changed nick to AvianFlu
21:45:16  * AvianFlu_joined
21:45:27  * AvianFluquit (Disconnected by services)
21:45:31  * AvianFlu_changed nick to AvianFlu
21:47:37  <Raynos>defunctzombie: so you want a kitchensink
21:47:45  <Raynos>defunctzombie: do you want underscore or do you want require("flatten")
21:47:52  <defunctzombie>Raynos: wanting basic dom methods is not kitchensink
21:47:59  <Raynos>defunctzombie: stop thinking in OO land of "I MUST WRAP ALL THE ELEMENTS". Think in terms of I want a function
21:48:01  <defunctzombie>neither
21:48:04  <Raynos>dom methods are a kitchen sink
21:48:08  <Raynos>underscore is a kitchen sink
21:48:14  <Raynos>IF ITS NOT JUST ONE FUNCTION IT IS A KITCHEN SINK
21:48:15  <LOUDBOT>CAN HAS APEIRON.HATES-SOFTWARE.COM
21:48:16  <defunctzombie>they are not because I have an element
21:48:23  * ryan_stevensquit (Ping timeout: 255 seconds)
21:48:59  <defunctzombie>and there are some basic things I can do to it just to make the code look nicer and easier to follow
21:49:06  <Raynos>https://twitter.com/Raynos2/status/282241279511904258
21:49:08  <defunctzombie>I refactored typeahead to use all these tiny modules
21:49:14  <defunctzombie>and it was total garbage
21:49:27  <defunctzombie>Raynos: that statement is total shit ;)
21:49:37  <Raynos>defunctzombie: welcome to commonJS. Where your files start with 40 require statements
21:49:51  <defunctzombie>?
21:49:59  <defunctzombie>I hope you are trolling
21:50:01  <Raynos>if your files dont start with 40 requires then you are using kitchen sinks & frameworks
21:50:05  <defunctzombie>and don't actually write software like this
21:50:20  <defunctzombie>if you do.. may there be mercy on those that must maintain it :p
21:50:25  <Raynos>I try to keep the require statements above the fold
21:50:55  <Raynos>https://gist.github.com/9dd24901447f1f8f0f50
21:51:02  <Raynos>so theres only 14 lines.
21:51:15  <Raynos>40 is an over statement but 5 - 20 require's is common
21:51:49  <defunctzombie>honestly.. I think a module for hidden is stupid
21:51:59  <defunctzombie>hidden is alreayd tied to the element
21:52:03  <Raynos>no
21:52:05  <Raynos>hidden is a function
21:52:11  <Raynos>that takes an element and an optional setter
21:52:20  <defunctzombie>or I can just do element.hide()
21:52:24  <defunctzombie>which is much clearer
21:52:28  <Raynos>you can do that if you want
21:52:30  <Raynos>thats trivial to do
21:52:54  <defunctzombie>anyhow... all I am saying is that I used modules in a refactor and it is shit
21:52:59  <defunctzombie>so now I am making something reasonable
21:53:11  <defunctzombie>no one will ever write using 20 modules to do the most simple tasks
21:53:21  <Raynos>https://gist.github.com/4356097
21:53:25  <Raynos>What your asking for is a DSL
21:53:31  <chrisdickinson>the key is to know when to glue modules together, and which modules should be glued.
21:53:34  <Raynos>if you want one go write one, they are trivial to write
21:54:10  <defunctzombie>what I am saying is that that is the level that it makes sense to operate on dom elements with for very basic tasks
21:54:36  <defunctzombie>I do not believe that it makes sense to throw in effects, ajax, etc into a lib to do all that
21:54:44  <chrisdickinson>in that respect, i disagree that *all* modules should return a single function. but they should return a single, sane API. whether that's a constructor function, a set of *closely related* functions, or a single function, it depends.
21:55:08  <Raynos>I didnt say a package should export a single function
21:55:19  <Raynos>also im being a dick
21:55:19  <Raynos>:D
21:56:45  <Raynos>defunctzombie: rvagg has a module you might like
21:56:50  * _sorensenquit (Read error: Connection reset by peer)
21:56:53  <defunctzombie>?
21:57:03  <Raynos>https://github.com/rvagg/traversty
21:57:06  * _sorensenjoined
21:57:28  <Raynos>defunctzombie: also look at ender it may be more in your ballpark
21:57:34  <defunctzombie>Raynos: I don't like that module at all
21:57:44  <defunctzombie>it doesn't do a single thing that I want to do with basic DOM operations
21:57:53  <Raynos>insert does most of those
21:59:22  <Raynos>defunctzombie: show me what typeahead looks like with small modules
22:00:20  <defunctzombie>5 modules required at the top
22:00:48  <defunctzombie>to hide something I call hide(element, boolean)
22:01:04  <defunctzombie>to bind events
22:01:10  <defunctzombie>ever(element, event)
22:01:13  <defunctzombie>to delegate events
22:01:18  <defunctzombie>delegate(element, name, event)
22:01:18  <Raynos>...
22:01:21  <Raynos>thats only 5 requires
22:01:23  <defunctzombie>to set css
22:01:27  <Raynos>you are crazy :D
22:01:28  <defunctzombie>classes(element, ...)
22:01:31  <defunctzombie>this is so stupid
22:01:52  <Raynos>the things you described are all different
22:01:56  <defunctzombie>beyond the fact that it is way harder to grok
22:01:59  <Raynos>if you prefer your Element god object then create one
22:02:03  <defunctzombie>they are not.. that is what i am saying
22:02:08  <defunctzombie>you already have the element object
22:02:28  <Raynos>you have element and functions
22:03:39  <Raynos>defunctzombie: https://gist.github.com/4356178
22:04:11  <defunctzombie>sure.. but now you are building a basic dom library
22:04:18  <defunctzombie>and that is easier to use
22:04:22  <defunctzombie>and also can be more cohesive
22:04:28  <defunctzombie>since it interoperates with itself
22:04:51  <Raynos>i dont want that
22:04:53  <Raynos>I prefer functions
22:04:57  <defunctzombie>sure,, you do
22:05:01  <defunctzombie>I don't for this usecase
22:05:02  <Raynos>if you want a dom dsl then write one.
22:05:18  <defunctzombie>and the majority of people do as well
22:05:23  <defunctzombie>because it is easier to understand
22:05:24  <Raynos>I would inline it in typeahead
22:05:36  <Raynos>i disagree.
22:05:56  <Raynos>functions are easy to understand
22:06:07  <Raynos>your specific god object is a pain
22:06:43  <Raynos>but this is bikeshedding
22:06:56  <defunctzombie>dude.. all of programming is bikeshedding
22:07:06  <defunctzombie>I am only sharing some thoughts
22:07:13  <Raynos>:D
22:07:25  <defunctzombie>it is not bikeshedding to describe something I think is nicer
22:07:35  <Raynos>I do recommend that if you build this dom abstraction
22:07:45  <Raynos>that its just 20 requires and a single glue function
22:07:54  <Raynos>and you dont have a 500 line inline implementation of all the things
22:09:00  <chrisdickinson>Raynos: your god object is just your functions with the element curried in
22:09:09  <Raynos>exactly!
22:09:14  <chrisdickinson>on second thought, i feel like that should've been in all caps
22:09:23  <chrisdickinson>something about the phrase "YOUR GOD OBJECT"
22:10:04  <Raynos>defunctzombie: https://github.com/gordonbrander/choochoo https://github.com/Gozala/gum
22:10:11  <Raynos>Those are some chaining curry object generators
22:10:27  <chrisdickinson>oo
22:10:43  <chrisdickinson>use harmony proxies + with stmt to reimplement haml as an inline JS language
22:11:41  <Raynos>or use github.com/dominictarr/h
22:11:42  <chrisdickinson>the node.js programming equivalent of eating a ton of garlic and cabbage and getting on a crowded plane
22:11:50  <Raynos>https://github.com/jed/domo
22:12:20  <chrisdickinson>yeah, but those have sane syntaxes
22:15:08  <chrisdickinson>Raynos: https://gist.github.com/bf5ae6b4370f69629a02
22:15:36  * ryan_stevensjoined
22:16:38  * jibayquit (Quit: Leaving)
22:16:50  <Raynos>Aw man
22:16:59  <Raynos>I just discovered debugger; + REPL
22:17:10  <Raynos>you can add debugger in your code then access local tokens in browser repl
22:18:14  <Raynos>chrisdickinson: just use es6 multi line string literals
22:18:33  <chrisdickinson>haha, yeah
22:18:37  <chrisdickinson>being useful isn't the point
22:19:19  <chrisdickinson>+ if only browsers standardized the output of Function#toString, i could just use that for multi-line strings.
22:21:24  <Raynos>so lets say im writing a UI component / widget thing
22:21:30  <Raynos>I want to track (GA) the usage of that component
22:21:41  <Raynos>how would you write a generic component should that its easy to add tracking to it later
22:23:32  <chrisdickinson>how does a user interact with the widget?
22:24:14  <Raynos>say its a scroll box for chat messages
22:24:19  <Raynos>I want to track usage of the scroll box
22:24:28  <Raynos>to see how many users navigate up and down it.
22:25:19  <chrisdickinson>seems like it'd be a good place for event forwarding, or something like it
22:27:01  <chrisdickinson>a module that returns "ever" functions -> var tracked = require('tracked'); function widget() { var ever = tracked('scrollbar', {'scroll': [function(ev) { return ev.target.scrollTop }]}) }
22:27:18  <Raynos>>_<
22:27:20  <chrisdickinson>hm, maybe too gross
22:27:24  * ryan_stevensquit (Ping timeout: 260 seconds)
22:28:00  <chrisdickinson>should the widget know about the tracking?
22:29:01  * defunctzombiechanged nick to defunctzombie_zz
22:32:44  <Raynos>no.
22:32:47  <Raynos>thats what I due currently
22:32:49  <Raynos>its a mess
22:32:59  <Raynos>I feel like I need hooks
22:34:02  * _sorensenquit (Read error: Connection reset by peer)
22:34:08  * sorensen_joined
22:48:22  * ryan_stevensjoined
22:50:47  * dguttmanquit (Quit: dguttman)
22:59:28  * ITprojoined
23:08:40  * ryan_stevensquit (Quit: Leaving.)
23:10:51  * sorensen_quit (Read error: Connection reset by peer)
23:21:13  * mirkokquit (Quit: mirkok)
23:23:37  * ryan_stevensjoined
23:32:38  * mirkokjoined
23:36:16  * dominictarrjoined
23:36:21  * slaskisjoined
23:37:46  <dominictarr>hey, substack do you want to come to Australia for http://campjs.com/ ?
23:37:54  <dominictarr>in feburary?
23:39:29  <Raynos>dominictarr: I think scuttlebutt fails in Safari5.1 because of Function.protototype.bind probably because of require("fs")
23:39:37  * substackdoesn't have the money for plane tickets right now
23:40:07  <dominictarr>substack: campjs.com will pay for that!
23:40:22  <substack>oh sweet then I'm down!
23:40:32  <dominictarr>sweet!
23:41:09  <dominictarr>it's feb 15-18th
23:41:25  <dominictarr>timoxley is organizing it1
23:43:31  <mbalho>can i nominate myself as substacks understudy in case he mysterious contracts a life threatening disease that disables him from being able to travel and/or camp
23:45:24  <dominictarr>if it was a catnip overdose we'll know it was you
23:45:47  <mbalho>YOU CANT PROVE ANYTHING
23:45:48  <LOUDBOT>SIMON SAYS TO GIVE HIM THE PARTIAL DERIVATIVE OF COS(X * PI) * SIN(Y / PI) WITH RESPECT TO Y WHEN X IS EQUAL TO 1
23:50:44  * mirkokquit (Quit: mirkok)
23:53:05  * mirkokjoined
23:53:39  * mirkokquit (Client Quit)