00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:03:05  * tmcwquit (Remote host closed the connection)
00:04:16  * mikolalysenkoquit (Ping timeout: 252 seconds)
00:05:02  * thl0joined
00:05:22  * no9quit (Ping timeout: 252 seconds)
00:12:47  * thl0quit (Remote host closed the connection)
00:13:26  * thl0joined
00:15:20  * st_lukequit (Remote host closed the connection)
00:17:20  * fallsemoquit (Quit: Leaving.)
00:18:25  <substack>http://video.nodepdx.org/video/4/beep-boop
00:19:12  * no9joined
00:28:39  <Raynos>why does `$ npm info json-globals | grep "npm ERR! 404 You should bug the author to publish it"` not work ?
00:28:44  <Raynos>it prints everything?
00:29:20  <chilts>it is output on stderr
00:29:24  <chilts>grep only gets stdout
00:30:00  <chilts>Raynos: npm info json-globals 2>&1 | grep "npm ERR! 404 You should bug the author to publish it"
00:31:10  <Raynos>:(
00:31:17  <Raynos>also
00:31:21  <Raynos>how do I learn shell script
00:31:52  <chilts>my pleasure
00:31:56  <Raynos>remind me again
00:31:59  <Raynos>what 2>&1 means
00:32:14  * thl0quit (Remote host closed the connection)
00:35:13  * st_lukejoined
00:36:13  * st_lukequit (Remote host closed the connection)
00:38:27  * mikolalysenkojoined
00:47:43  * fallsemojoined
00:54:29  * mikolalysenkoquit (Ping timeout: 248 seconds)
00:59:35  * thatguydanjoined
01:00:31  * thatguydanpart
01:04:24  * dguttmanquit (Quit: dguttman)
01:16:52  <jjjjohnn1y>whats the voting method where everybody has a vote but they can give their vote to somebody else?
01:17:11  <jjjjohnn1y>or "attach" their vote,
01:19:30  <jjjjohnn1y>email me [email protected]
01:22:45  <jesusabdullah>no idea
01:34:41  * Wraithanjoined
01:35:52  * thl0joined
01:41:40  * jibayquit (Quit: Leaving)
01:47:14  * mikealquit (Quit: Leaving.)
01:52:30  * mikealjoined
02:03:01  * mikealquit (Quit: Leaving.)
02:03:14  <Raynos>isaacs: I've gotten to the point where writing a PR for npm is faster then explaining my problem / asking for advice. This is very satisfying
02:03:59  * shuaibquit (Ping timeout: 260 seconds)
02:08:23  * shuaibjoined
02:17:22  * owen1quit (Ping timeout: 252 seconds)
02:20:16  <Raynos>thl0: how is testlingify doing?
02:20:31  <thl0>getting there
02:20:54  <thl0>able to query hooks - just trying to get some tests going that I can run locally at least
02:21:05  <jesusabdullah>what will testlingify do?
02:21:15  <thl0>so by the end of this weekend we'll have something working
02:21:53  <thl0>jesusabdullah: it'll create github hook for your repo and add a testling browser config to your package
02:22:05  <thl0>kinda similar to travisify
02:25:25  * jcrugzzquit (Read error: Connection reset by peer)
02:26:11  <jesusabdullah>ahhh
02:26:16  <jesusabdullah>fun
02:26:24  <jesusabdullah>is testling free for light usage? I don't remember
02:26:33  <thl0>yep
02:26:50  * jcrugzzjoined
02:26:57  <thl0>totally free - get on board with it and browserify
02:30:20  <thl0>Raynos: how is npmify?
02:30:37  * owen1joined
02:30:42  <Raynos>https://github.com/Raynos/dotfiles/blob/master/.functions#L11
02:31:13  <thl0>thought you were gonna make some of this into a module?
02:32:35  * shuaibquit (Ping timeout: 252 seconds)
02:37:01  <thl0>Raynos: get-hook tested: https://github.com/thlorenz/testlingify/blob/master/test/get-testling-hook.js
02:39:54  <Raynos>thl0: shell scripts
02:39:55  <Raynos>are easier
02:40:25  <thl0>but only run on unix
02:40:56  <thl0>so unless you wanna alienate all the windows users you gotta stick with the common denominator
02:41:22  <Raynos>ill rewrite them
02:41:23  <Raynos>to node modules
02:41:28  <Raynos>once i've figure out the flow
02:41:44  <Raynos>also fuck windows users
02:41:55  <thl0>Raynos: also shell scripts are just easier since the tools are more mature
02:42:21  <thl0>i.e. if there was a curl for node it'd be about the same
02:42:37  <thl0>on the other hand with request it's quite simple really, so I take that back
02:42:57  <thl0>it is about the same if you consider all the error handling you'd still have to do in your shell scripts
02:43:27  <thl0>Raynos: all the window users hate you now :P
02:43:41  <thl0>all two of them (one being Domenic_)
02:52:29  * no9quit (Ping timeout: 256 seconds)
02:58:52  * owen1quit (Ping timeout: 240 seconds)
03:00:44  <thl0>substack: pkrumins: how does testling.ci know which repo I pushed to (since all hooks are same url)?
03:00:52  <thl0>is it the origin of the request?
03:01:14  <thl0>cuz that would be hard for testlingify to fake out when testing the hook
03:03:26  * shuaibjoined
03:03:28  <substack>thl0: the payload we get from github has all that info in it
03:03:42  <substack>I think it's completely silly how other webhooks have custom urls
03:03:58  <substack>since the pyaload already has everything in it
03:04:01  <thl0>hm
03:04:44  <thl0>I don't see a body in the request that github sends when I do 'Test Hook'
03:05:05  <thl0>or is it the headers you are looking at? i.e. Referer:https://github.com/thlorenz/brace/settings/hooks
03:06:00  * jiangplusjoined
03:06:09  <thl0>substack: I also see a spy_repo cookie - is that it maybe?
03:07:22  <thl0>substack: but my Form-Data field is clearly empty as is the preview, so I'm pretty sure it doesn't send a request body (unless I'm missing something)
03:08:06  <substack>?
03:08:11  <substack>you must be missing something
03:08:50  <substack>https://help.github.com/articles/post-receive-hooks#the-payload
03:08:51  * shamaquit (Remote host closed the connection)
03:08:55  <thl0>ok, so it is sending a request body for sure when testing the hook
03:08:57  <thl0>thanks
03:11:22  * jiangpluspart
03:12:24  * owen1joined
03:14:41  <thl0>substack: oh shoot I think I got it now - the post you are getting is initiated from the server
03:15:05  <thl0>of course it has to - it's xdomain -- time to finally wake up or just go to bed ;)
03:33:09  <substack>yep!
03:42:29  * jesusabdullahis gonna write himself a blog post or two
03:42:41  <jesusabdullah>it's been a while! I think the last time I blogged about something was ddgbot
03:46:03  <thl0>substack: shelfing this at this point, hitting testling git end point server, but not kicking off build
03:46:20  <thl0>https://github.com/thlorenz/testlingify/blob/master/test-testling-hook.js
03:46:50  <thl0>will focus on other parts tomorrow first - testing the hook is not super important I guess
03:50:11  <thl0>substack: problem is that I don't know exactly what of the commit data you actually need - it basically requires me to simulate one commit
03:56:05  * thl0quit (Remote host closed the connection)
03:57:36  * timoxleyjoined
04:01:05  <substack>oh don't do that >_<
04:01:12  <substack>hooks should only come from github's servers
04:02:44  * timoxleyquit (Quit: Computer has gone to sleep.)
04:03:19  * dominictarrjoined
04:03:32  * dominictarrquit (Client Quit)
04:05:35  <jesusabdullah>whateva, whateva, I do wha' I wan'!
04:05:56  <jesusabdullah>I'm so outta control I made a git hook to simulate github's hooking api! Whateva, I do wha' I wan'!
04:20:21  * shuaibquit (Ping timeout: 248 seconds)
04:26:16  <Wraithan>Is there a index of all these 'ify'-ers like travisify and such?
04:26:19  * tmcwjoined
04:26:21  * timoxleyjoined
04:26:31  <jesusabdullah>Wraithan: npm? XD
04:26:36  <jesusabdullah>Wraithan: npm search ify
04:27:42  * tmcwquit (Remote host closed the connection)
04:27:49  <Wraithan>Tried that on the web interface and it was a crapshoot
04:27:54  <Wraithan>I didn't try the cli though
04:28:16  <jesusabdullah>it's still a crap shoot XD
04:28:23  <Wraithan>lol
04:29:47  <substack>I only use the `npm search`
04:30:34  <Wraithan>I tend to use the webinterface so I can open several packages in tabs and go through their readmes and sources
04:30:52  * timoxleyquit (Client Quit)
04:31:37  * timoxleyjoined
04:32:32  * st_lukejoined
04:36:02  * timoxleyquit (Client Quit)
04:40:24  * AvianFluquit (Remote host closed the connection)
05:01:27  * timoxleyjoined
05:04:12  * shuaibjoined
05:19:20  * timoxleyquit (Quit: Computer has gone to sleep.)
05:22:51  <Raynos>I started doing actual bash scripts
05:22:53  <Raynos>this week
05:23:00  <Raynos>and now I am automating away bullshit !
05:24:01  <jesusabdullah>I bet you are XD
05:30:25  <substack>hooray!
05:33:37  <Raynos>substack: any tips on learning bash?
05:34:06  <Raynos>I feel like all my searches in google get the equivelant of w3schools javascript tutorials
05:34:40  * dguttmanjoined
05:34:52  * no9joined
05:37:18  * dguttmanquit (Client Quit)
05:37:18  <substack>man bash
05:37:23  <substack>best way
05:38:24  <jesusabdullah>I always run into http://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html or similar and, like, it has enough to get going
05:38:32  <Raynos>I see
05:38:34  <jesusabdullah>everything else I learn is by reading other peoples' scripts
05:38:40  <jesusabdullah>also yes built-in docs are reasonable
05:38:56  <Raynos>meow
05:39:04  <Raynos>i am trying to write .functions
05:39:06  <Raynos>in my dotfiles
05:40:16  <substack>Raynos: you probably already know enough bash to be dangerous if you use a shell all the time
05:40:32  <Raynos>?
05:40:50  <substack>redirects, pipes, basic syntax
05:40:54  <substack>all you need really
05:40:58  * dguttmanjoined
05:41:11  <substack>there's a lot of stuff in bash but you can get a lot done with a very restricted subset
05:41:27  * dguttmanquit (Client Quit)
05:43:41  <Raynos>well
05:43:49  <Raynos>im interested in writing little functions
05:44:19  <Raynos>I started working on `npmify module-name ./lib/some-code.js` ( https://github.com/Raynos/dotfiles/blob/master/.functions#L11 )
05:50:16  * mikealjoined
05:54:38  * dguttmanjoined
05:55:47  * dguttmanquit (Client Quit)
05:56:32  * stagasjoined
05:58:37  * vitorpachecoquit (Read error: Connection reset by peer)
06:07:48  * shuaibquit (Ping timeout: 252 seconds)
06:11:41  * shuaibjoined
06:16:00  * dguttmanjoined
06:16:53  * dguttmanquit (Client Quit)
06:23:50  * timoxleyjoined
06:30:31  * st_lukequit (Remote host closed the connection)
06:31:38  * shuaibquit (Ping timeout: 252 seconds)
06:32:15  * mikolalysenkojoined
06:47:08  * CoverSli1equit (Ping timeout: 252 seconds)
06:50:19  * jcrugzzquit (Ping timeout: 264 seconds)
07:01:23  <substack>https://github.com/substack/hyperspace
07:01:41  <substack>refinement of the latest stream handbook section in module form
07:06:14  * shuaibjoined
07:11:33  <substack>juliangruber: ^^^
07:14:31  <substack>next I want custom sorting and the functionality to do lazy loading/"more" button
07:14:40  <substack>that should plug into tacodb so well
07:14:47  <jesusabdullah>what is a tacodb
07:15:01  <substack>it's a scuttlebutt/leveldb thing that doesn't exist yet
07:15:08  <jesusabdullah>ruh-huh
07:15:10  <substack>dominictarr is working on it
07:15:29  <substack>I will convince him to make it work like `tail -f`
07:15:33  <jesusabdullah>sounds promising
07:15:49  <jesusabdullah>I mean, a _changes feed is a pretty sweet feature
07:15:55  <jesusabdullah>doubt it would be that hard to implement
07:16:27  <substack>in tacodb ANY result can be its own _changes feed
07:16:43  <substack>in my head this is how it will work
07:17:21  <jesusabdullah>ruh-huh
07:17:22  <jesusabdullah>I see
07:17:53  <jesusabdullah>as long as I can CRUD it up
07:18:11  <jesusabdullah>like some kinda CRUD MACHINE
07:19:22  <jesusabdullah>https://github.com/flatiron/resourceful/issues/95#issuecomment-12454995 wahh wahh wahhhhhhh
07:20:55  <substack>jesusabdullah: what is resourceful for?
07:21:31  * mikolalysenkoquit (Ping timeout: 264 seconds)
07:21:44  <substack>"Resources are business logic wrapped in prototypical models with schema and validation"
07:21:50  <substack>"Isomorphic Resource engine for JavaScript"
07:21:54  <substack>what does this even mean
07:22:33  <jesusabdullah>substack: resourceful was supposed to be an odm, which maps databases to objects, but it's not very good at it
07:24:00  <jesusabdullah>substack: it's a reasonably good idea but the abstraction's pretty jacked up in resourceful
07:24:10  <Wraithan>chrisdickinson: you mentioned a scope detection thing that you use instead of jshint, is that published?
07:24:19  <jesusabdullah>substack: also "isomorphic" is supposed to mean "runs in the browser" even though it totally doesn't last I checked
07:24:20  <chrisdickinson>Wraithan: not at the moment
07:24:29  <jesusabdullah>substack: and if it ran in the browser it wouldn't make sense either
07:24:34  <Wraithan>chrisdickinson: ok :(
07:24:48  <chrisdickinson>1 sec
07:24:58  <Wraithan>jshint is bothering me for various reasons (can't turn off harmony afaict)
07:25:03  <jesusabdullah>substack: but that's all aside the point. These days I'm adding CRUD methods to my resource objects backed by jugglingdb
07:25:41  <jesusabdullah>substack: so the persistence and the "resource" aspects aren't conflated like they are in resourceful
07:26:42  <jesusabdullah>substack: npm view resource for a better approach
07:26:47  <Wraithan>jesusabdullah: people are moving to that style little by little in the python world as well
07:27:25  <chrisdickinson>substack: question re: hyperglue / hyperspace -- how are you handling escaping for text values (or are you?)
07:28:17  <jesusabdullah>Wraithan: the resourceful way, or the resource way?
07:28:21  <substack>chrisdickinson: 'selector': 'value' does html entity escaping
07:28:33  <substack>'selector': { _html: 'raw html' } doesn't do any escaping
07:28:42  <Wraithan>jesusabdullah: Seperating business logic from persistence
07:28:48  <jesusabdullah>aha
07:28:51  <jesusabdullah>yeah it's a Good Thing
07:28:59  <substack>chrisdickinson: object-form is also used to update attributes: 'img.foo': { src: '/blah.png' }
07:29:02  <Wraithan>It is a vastly more testable thing, which makes me happy
07:29:08  <substack>chrisdickinson: and you can _text explicitly too like _html
07:29:26  <jesusabdullah>coolest thing with resource is that I can do, thing.persist('memory') or thing.persist('fs') or thing.persist('whatever') and as long as there's an adapter for it it will more or less Just Work
07:29:32  <chrisdickinson>substack: radical.
07:29:44  <jesusabdullah>it would be cool to write a leveldb adapter for jugglingdb
07:29:49  <chrisdickinson>Wraithan: `npm install -g scoped`
07:29:58  <chrisdickinson>(and then `scoped file.js`)
07:30:03  <jesusabdullah>jugglingdb is kinda rough around the edges but it works
07:30:25  <substack>chrisdickinson: it's pretty much just a terser way of doing .querySelector() + .setAttribute() + .innerHTML= + (.textContent= || .innerText=) in a cross-browser way
07:30:34  * chrisdickinsonnods
07:31:06  <substack>so you can do a lot of those ops in bulk by passing an object instead of creating intermediate state vars to do all the assignment/attribute setting
07:31:10  <chrisdickinson>i've been using "plate-as-a-through-stream" + domnode-dom which is kind of a less elegant form
07:31:30  <jesusabdullah>I hope you don't mean that you tried to use plates >_<
07:31:45  <jesusabdullah>html-lang.com \m/
07:31:51  <chrisdickinson>haha
07:31:53  <Wraithan>chrisdickinson: doesn't appear to catch everything
07:31:54  <chrisdickinson>plate !== plates
07:31:58  <chrisdickinson>orly?
07:31:58  <substack>chrisdickinson: also hyperglue works node-side too
07:32:11  <substack>using trumpet which has landed some good bugfixes this week
07:32:21  <Wraithan>chrisdickinson: not catching this http://dpaste.de/iXjLM/#L12
07:32:26  <jesusabdullah>chrisdickinson: well that's a relief XD
07:32:29  <substack>that's how hyperspace works node-side and browser-side
07:32:57  <chrisdickinson>huh
07:33:00  <substack>chrisdickinson: also did you catch the latest chapter? https://github.com/substack/stream-handbook#html-streams-for-the-browser-and-the-server
07:33:14  <substack>hyperscript is basically this approach encapsulated more into a single module
07:33:34  <Wraithan>chrisdickinson: http://dpaste.de/5vFn0/
07:33:35  * chrisdickinsonnods
07:33:40  <Wraithan>chrisdickinson: that is my output
07:34:06  <substack>and awesomely you can render.on('element', function (elem) {}) which fires each time a new element appears INCLUDING the elements that were rendered by the server in the initial document
07:34:09  <chrisdickinson>Wraithan: yeah it's definitely missing an explicit global
07:34:22  <chrisdickinson>substack: awesome!
07:34:29  * chrisdickinsonpeers at lexical-scope
07:34:43  <substack>which is SOOOO useful for setting up click handlers
07:34:56  <Wraithan>chrisdickinson: sorry to instantly report a bug :(
07:35:01  <chrisdickinson>Wraithan: oh no worries
07:35:03  <substack>because you can set up everything in a single event listener
07:35:04  <chrisdickinson>and thanks
07:35:21  <substack>why peering at lexical-scope?
07:35:23  <chrisdickinson>substack: i tend to just bind at the highest logical level of the dom
07:35:25  <Wraithan>'Thanks for the toy! ...oh, I broke it.'
07:35:26  <substack>This module is pretty unfancy.
07:35:32  <chrisdickinson>substack: bug in "scoped"
07:35:53  <chrisdickinson>it's not catching an explicit global that it should be noticing
07:36:01  <substack>oh ok
07:36:22  <Wraithan>chrisdickinson: clever name would have been `mouthwash` but not so great to type
07:36:26  <chrisdickinson>haha
07:36:39  <substack>chrisdickinson: well I wrote that module entirely by guess-and-check so there are bound to be bugs still
07:37:11  <chrisdickinson>kk
07:38:03  <Wraithan>chrisdickinson: next step will be taking scoped and adding it to my editor to show me the list of variables
07:38:10  <Wraithan>rather, the ones that are global
07:38:18  <chrisdickinson>cool
07:38:34  <chrisdickinson>Wraithan: i'm going to probably give it a stdin option so you can write a chunk of js and check for globals
07:38:42  <Wraithan>chrisdickinson: that'd be neat
07:39:10  <Wraithan>most editors use temp files so they don't lose your changed when they crash, and you can usually get at them
07:40:12  <chrisdickinson>substack: do you use event delegation much in the browser?
07:40:35  <substack>chrisdickinson: what does that mean?
07:40:45  * ralphtheninjajoined
07:41:14  <chrisdickinson>basically attaching an event at a higher dom node and listening to events of a type on it, and only dealing with the ones that match a given selector
07:41:17  <chrisdickinson>npm.im/ever-delegate
07:41:33  <substack>nope I don't usually do that
07:42:04  <substack>sounds like it could be a good approach though
07:42:19  <substack>but how do you deal with elements that have lots of things going on like links, buttons
07:42:42  <substack>do you reverse-reference the state based on inspecting the element contents?
07:42:53  * timoxleyquit (Quit: Computer has gone to sleep.)
07:42:58  * stagasquit (Read error: Connection reset by peer)
07:43:26  <chrisdickinson>if needed yes, but generally this just lets me bind all of that behavior up at a containing element
07:43:27  <substack>the way I usually do it I have the relevant state for handlers closed over by doing explicit queries
07:44:13  <chrisdickinson>i usually have a module that presents an api to render and control a chunk of html
07:44:36  <chrisdickinson>so it binds up all of the behavior it needs to know about from the dom and basically channels it as higher-level events on itself
07:45:24  <chrisdickinson>then at my glue level i have a bunch of these high-level emitters and one "state" emitter
07:45:51  <chrisdickinson>which does a `state.listen(eventEmitter, 'eventName', ['attribute1', 'attribute2', …])`
07:46:02  <substack>I will try this approach the next time I write some listener code.
07:46:20  <chrisdickinson>every time `eventEmitter` emits data, it gets assigned into persistent state on that object, and that object emits a data event with the current state
07:49:10  <substack>oh sweet, I can just have a .sortTo(target, cmp)
07:49:26  <substack>like .prependTo(target) and .appendTo(target) but with a custom sorting function `cmp`
07:49:55  <substack>then it would be really easy to implement lazy scrolling since the browser can just send a request for that data and the sorting function will take care of putting it all in the right order
07:50:00  <substack>yessssss
07:50:13  <substack>this is the crap I was trying to do with sorta but it didn't work as well there
07:50:28  <chrisdickinson>nice
07:50:58  <substack>this approach doesn't require anything at all special about the input stream
07:51:36  <substack>the next talk I give I'll make about all these streaming html toys
07:51:50  <substack>I haven't talked about any of these anyplace yet.
07:53:24  <substack>this will make testling streaming results so slick and easy :D
07:56:10  <jesusabdullah>substack: remember how I asked if you were interested in those books?
07:56:17  <substack>yes
07:56:26  <jesusabdullah>substack: I'm looking for someone to do me a big favor and possibly make some money
07:56:26  <substack>not very interested actually
07:56:29  <jesusabdullah>aha
07:56:33  <jesusabdullah>are you interested in...money?
07:56:33  <substack>books aren't my thing
07:56:49  <substack>hauling cargo is really hard since I don't have a car
07:56:54  <jesusabdullah>yeah
07:57:01  <jesusabdullah>do you know someone who *does* have wheels?
07:57:07  <jesusabdullah>that might be able to help a brotha out?
07:57:23  <jesusabdullah>I thought maybe your roommate had wheels
07:59:08  * fallsemoquit (Quit: Leaving.)
08:02:33  * shuaibquit (Ping timeout: 252 seconds)
08:03:47  * shuaibjoined
08:15:19  * timoxleyjoined
08:23:24  <substack>timoxley: https://github.com/substack/hyperspace
08:23:27  * shuaibquit (Ping timeout: 252 seconds)
08:25:19  * no9quit (Ping timeout: 252 seconds)
08:26:03  * timoxleyquit (Quit: Computer has gone to sleep.)
08:27:48  * mikolalysenkojoined
08:28:48  * shuaibjoined
08:32:29  * mikolalysenkoquit (Ping timeout: 256 seconds)
08:32:55  * shuaibquit (Ping timeout: 246 seconds)
08:35:34  * shuaibjoined
08:55:43  * shuaibquit (Ping timeout: 252 seconds)
09:05:38  * shuaibjoined
09:14:25  * shuaibquit (Ping timeout: 252 seconds)
09:18:12  * shuaibjoined
09:20:08  * timoxleyjoined
09:33:46  <timoxley>substack what's your opinion on hooking these streams up from some trigger in the dom, rather than programatically
09:34:21  <substack>trigger?
09:34:27  <timoxley>substack i.e. magic attributes in the dom
09:34:50  <substack>I don't understand.
09:35:24  <timoxley>at the moment, you're pushing data into the dom, i'm talking about pulling data from the dom
09:35:30  <timoxley>having the dom define what it displays
09:35:40  <timoxley>e.g. <ul data-src="myList"><li></li></ul>
09:35:43  <timoxley>or something
09:35:47  <substack>that's weird
09:35:49  <substack>I don't get it.
09:37:02  <substack>what is the use-case for this approach?
09:37:23  <jesusabdullah>owning.
09:37:34  <timoxley>decoupling html structure from your js
09:37:57  <timoxley>I think about it like, a create a set of "publishers", and the dom elements can "subscribe" to the data
09:38:31  <timoxley>template/html structure just lives in the html
09:38:44  <substack>this is very strange to me
09:38:52  <substack>too indirect
09:39:30  <timoxley>it's the old declarative vs programatic views discussion
09:39:32  <jesusabdullah>timoxley: reminds me a little of http://html-lang.com
09:39:33  <substack>I want to have some data and route that data when it should go
09:39:43  <substack>I hate anything going around calling itself "declarative" firstly of all.
09:39:47  <timoxley>heh
09:40:04  <substack>that's probably why I don't like this
09:40:13  <substack>I like programs to DO things
09:40:19  <substack>input -> output
09:40:47  <substack>I don't like fanciful machines that make a bunch of inferences and guesswork to guess what you meant, declaratively
09:40:50  <timoxley>actually you know what, it's probably easier keeping this stuff in JS land, what I'm talking about requires buying into some magic
09:41:06  <substack>magic doesn't compose well is the biggest problem
09:41:24  <substack>you can't take the simple primitives and recombine them to do things that the author didn't intend
09:41:50  <timoxley>understood
09:41:56  <substack>declarative systems tend to operate at a wholistic instead of discrete level
09:42:46  * substack<-- methodological reductionist
09:44:39  <substack>hyperspace already does a thing which MIGHT be slightly too magical where it does target.getElementsByClassName() with the class name parsed from the html supplied
09:45:05  <substack>to find the elements at the target that were rendered originally by the server in order to emit 'element' events for them
09:45:56  <substack>but it simplifies sorting and registering element listeners so it might be worth it
09:47:26  <timoxley>ok, I'm experimenting with this today
09:49:15  <timoxley>jesusabdullah lots of plates inspired libs this week
09:49:22  <timoxley>well 2
09:49:26  <timoxley>that's probably more than last week
09:50:00  <jesusabdullah>I wouldn't call html plates inspired
09:50:13  <jesusabdullah>in fact I think the readme says it was inspired by jade? XD
09:50:25  <substack>jesusabdullah: hmmm html-lang gives me an idea for hyperglue for arrays of content
09:51:02  <jesusabdullah>good deal
09:51:50  <substack>hyperglue(html, { '.row': [ { '.name': 'abc' }, { '.name': 'xyz' } ] })
09:52:20  <substack>when it finds .row it could duplicate row for each of the element parameters in the array
09:52:24  <jesusabdullah>"html is 4 bytes in size!"
09:52:51  <substack>because I often find myself writing html snippets that are too tiny for itemized data like that
09:53:00  <substack>plus this could work in a backwards-compatible way
09:53:55  <jesusabdullah>there you go
09:55:38  <timoxley>jesusabdullah oh. you're right. whatever.
09:56:15  <jesusabdullah>timoxley: I think the jade thing is facetious
09:56:22  <timoxley>here's another one from tj that does the declarative thing https://github.com/component/reactive
09:56:48  <timoxley>jesusabdullah understood
10:03:48  * jibayjoined
10:31:06  * ins0mniajoined
10:36:13  * shuaibquit (Ping timeout: 252 seconds)
10:44:36  * shuaibjoined
10:50:37  <substack>updated https://github.com/substack/hyperglue#arrays
10:50:40  <substack>arrays yay!
10:51:21  <substack>bwahahaha works in ie8 first try
10:57:01  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
10:58:30  <ins0mnia>this looks good substack!!
11:05:22  <substack>I updated hyperspace with a .sorTo() function too
11:05:28  <substack>*sortTo
11:05:50  <substack>haven't finished the lazy/more loading example though
11:06:08  <substack>I'll finish that tomorrow and then start integrating this awesomeness into testling proper yay
11:07:57  <ins0mnia>cool, I guess what did the trick for IE8 is isArry() forEach() and objectKeys()
11:08:09  <ins0mnia>so much better than plates
11:08:28  <ins0mnia>don't need all the extra weight
11:09:17  * ins0mniagonna take hypeglue for a spin :)
11:21:21  * shuaibjoined
11:37:13  <juliangruber>substack: i initially wanted to add iterating things to hyperglue but hyperstream is the way nicer approach
11:39:22  <juliangruber>substack: oh, but hyperglue arrays are nice too, I also had this problem of writing templates like `<li><a></a></li>` which makes no sense
11:53:32  <juliangruber>distributed npm: if everything is git based, you just need the sha hash of a commit to verify that it's the right thing
11:54:09  <juliangruber>so if i get hyperglue from dominictarr's pc then I need to know hyperglue's current sha to verify that it's substack's version unmodified
11:57:57  * shuaibquit (Ping timeout: 248 seconds)
13:23:10  * shuaibjoined
13:27:04  * stagasjoined
13:41:26  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
13:45:07  * mikealquit (Ping timeout: 246 seconds)
13:58:23  * shuaibjoined
13:58:39  * AvianFlujoined
14:02:55  * shuaibquit (Ping timeout: 264 seconds)
14:04:01  * vitorpachecojoined
14:06:42  * shuaibjoined
14:17:38  * fallsemojoined
15:29:39  <substack>juliangruber: I can just sign the build with my key which you already know
15:30:12  <substack>that way you can safely get new updates from third parties without needing to know what the new hash is from a trusted authority
15:46:05  * thl0joined
16:04:41  * shuaibquit (Ping timeout: 256 seconds)
16:06:45  * shuaibjoined
16:11:08  * shuaibquit (Client Quit)
16:16:15  <juliangruber>true!
16:16:32  <juliangruber>and since git 1.7.9 or so you can even sign every commit
16:24:04  * mikealjoined
16:26:23  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
16:26:23  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
16:28:08  <substack>woot
16:28:34  <substack>juliangruber: also the array syntax is exactly for the case of tiny stupid templates like "<li><a></a></li>"!
16:28:54  <substack>I found myself writing those or inlining strings
16:29:25  <juliangruber>yeah, I wrote those but didn't really have time to think for a solution
16:29:29  <juliangruber>*too
16:31:00  <juliangruber>substack: what do you think about adding event listener support to hyperglue?
16:31:10  <juliangruber>I'm not sure if that should be in there
16:31:17  <substack>I don't think it should.
16:31:44  <substack>doesn't work server-side like the other stuff
16:31:51  <juliangruber>true
16:32:12  <substack>of course, in the browser you get an element and in node you just get a { outerHTML: '', innerHTML: '' } object
16:33:24  <juliangruber>hyperscript has this and it makes the passed object go rather big
16:34:36  <substack>well maybe it could
16:34:42  <substack>I need to ponder it some more.
16:35:59  <juliangruber>the way component/reactive does this is cool. you say `var el = reactive(tmpl, this)` and have e.g. `<a data-click=foo></a>` then it will call `this.foo()` when that is clicked
16:36:32  <juliangruber>so you pass an object with not only attributes but also methods
16:47:29  * fallsemoquit (Quit: Leaving.)
16:51:57  * fallsemojoined
16:58:41  * mikealquit (Quit: Leaving.)
16:58:54  * fallsemoquit (Quit: Leaving.)
17:16:53  * mikolalysenkojoined
17:23:45  * CoverSlidejoined
17:31:19  * mikealjoined
17:34:38  * thl0quit (Remote host closed the connection)
17:38:34  * timoxleyquit (Quit: Computer has gone to sleep.)
17:41:19  <jesusabdullah>substack: good deal implementing the array thinger
17:41:28  <jesusabdullah>substack: tell people it was "inspired by html" to confuse them
18:38:27  <substack>I think I will go get some chinese food enroute to the park and bread from the bakery on the way back
18:59:13  <jesusabdullah>sounds fun
19:12:48  * mikealquit (Quit: Leaving.)
19:14:27  * mikealjoined
19:15:36  * thl0joined
19:15:45  * mikealquit (Client Quit)
19:29:03  * yorickjoined
19:35:36  * juliangruberquit (Remote host closed the connection)
19:45:58  * mikealjoined
19:51:30  * nicholasfquit (Read error: Connection reset by peer)
19:52:00  * nicholasfjoined
19:52:53  * mint_xianquit (Quit: Oh bai!)
19:53:59  * mint_xianjoined
19:58:49  * mikolalysenkoquit (Ping timeout: 245 seconds)
20:05:41  <Raynos>https://github.com/travis-ci/travis-ci/issues/1131#issuecomment-18453118
20:05:43  <Raynos>wtf :/
20:44:28  * jcrugzzjoined
20:59:12  * mikolalysenkojoined
21:04:51  <jesusabdullah>idk raynos I feel that
21:05:02  <jesusabdullah>Raynos: write something that traverses all your github repos
21:09:22  <thl0>pulling lots of modules out of substack's travisify to support testlingify
21:09:58  <thl0>do we need separate module to manage github hooks as well or is that unnecessary abstraction since it is fairly simple with express?
21:10:13  <thl0>s/express/request/
21:11:45  * mcollinajoined
21:46:19  * juliangruberjoined
21:46:43  * mikolalysenkoquit (Ping timeout: 264 seconds)
21:47:48  * yorickquit (Remote host closed the connection)
21:50:18  * yorickjoined
21:52:08  * mikolalysenkojoined
21:53:32  * stagasquit (Remote host closed the connection)
21:55:36  <Raynos>thl0: not sure
21:55:55  <Raynos>I just build https://github.com/Raynos/jsonml-stringify#example
21:58:16  * ins0mniaquit (Ping timeout: 246 seconds)
22:00:13  <juliangruber>what bouncers are you guys using? quassel just died on me again
22:05:11  * st_lukejoined
22:23:24  * st_lukequit (Remote host closed the connection)
22:26:56  * ins0mniajoined
22:32:06  * Wraithanchanged nick to mer
22:32:16  * merchanged nick to Wraithan
22:32:56  * Wraithanchanged nick to Wraithan1
22:42:26  * Wraithan1changed nick to Wraithan
22:44:34  * Wraithanchanged nick to mer
22:44:40  * merchanged nick to Wraithan
22:44:55  <Raynos>juliangruber: irccloud
22:45:22  <Wraithan>I've heard too many people having issues with irccloud dropping messages
22:45:31  <Raynos>it does
22:45:55  <juliangruber>meh
22:46:04  <Wraithan>Hosted solutions, no idea, I use ZNC when I want an explicit bouncer, otherwise I run weechat in a tmux session on my server in a colo
22:46:06  <juliangruber>Raynos: are you using it now?
22:46:12  <Raynos>yes
22:46:22  <Wraithan>More and more of my co-workers are moving away from it
22:46:38  <Wraithan>my company is super IRC centric though
22:47:04  <juliangruber>Wraithan: moving away from what?
22:47:09  <Wraithan>irccloud
22:47:14  <Wraithan>Due to the dropped messages
22:48:40  <juliangruber>oh ok
22:48:47  <juliangruber>so you use znc?
22:49:10  <juliangruber>i've used irssi in a screen session for a while but dunno, didn't really like it
22:49:17  <Wraithan>currently I am using weechat in a tmux session because I don't need mobile connection, if I am travelling I switch to ZNC
22:49:49  <juliangruber>znc causes less traffic?
22:50:00  <Wraithan>ZNC lets you use a native client on the phone/tablet
22:50:08  <juliangruber>oh i see
22:50:09  <Wraithan>rather than having to use a SSH client and terminal emulator
22:50:21  <juliangruber>that's cool
22:50:45  * ins0mniaquit (Ping timeout: 248 seconds)
22:50:52  <Wraithan>It is basically an IRC proxy that keeps you conencted and gives you messages when you reconnect, that you can use any client you want with
22:50:55  <juliangruber>thanks, I'll try znc
22:51:14  <juliangruber>have you tried Quassel?
22:51:22  * jibayquit (Remote host closed the connection)
22:51:47  <Wraithan>Nah, I strongly favor CLI clients
22:52:24  <Wraithan>Especially heavily customizable ones like weechat
22:52:35  <Wraithan>I write all sorts of scripts for weechat to make my life better
22:59:10  <thl0>does anyone have an idea what all this setImmediate stuff here is about? https://github.com/ljharb/node-json-file/blob/master/index.js#L56
23:02:41  * st_lukejoined
23:03:29  * defunctzombie_zzchanged nick to defunctzombie
23:04:35  * st_luke_joined
23:05:53  <defunctzombie>Raynos: pong
23:05:58  <Raynos>PING
23:07:08  <defunctzombie>PONG
23:07:17  * st_lukequit (Ping timeout: 248 seconds)
23:07:22  <Raynos>defunctzombie: hello
23:07:29  <Raynos>what do you want
23:07:36  <defunctzombie>Raynos: didn't you ping me?
23:07:42  <Raynos>maybe
23:07:45  <Raynos>cant remember about what
23:07:48  <defunctzombie>hahaha
23:14:00  <Raynos>I got really close
23:14:03  <Raynos>to rewriting a module
23:14:04  <Raynos>I already wrote
23:14:15  <Raynos>https://github.com/Raynos/iterate-files#examples
23:14:18  <Raynos>I already wrote ls -r
23:15:38  <defunctzombie>heh
23:15:42  <Wraithan>git s
23:15:44  <Wraithan>ops
23:15:45  <defunctzombie>you know you have too many modules when you forget them
23:16:55  <Raynos>:D
23:16:57  <Raynos>228
23:17:31  <yorick>how do y'all not understand there's such a thing as 'too many modules' and the limit is far lower than 228
23:17:57  <yorick>people writing multiple modules for ls -r and mkdir -p will be our downfall
23:18:08  <yorick>there's a perfectly good 'exec' command isn't there?
23:20:52  * mikolalysenkoquit (Ping timeout: 246 seconds)
23:22:38  <rowbit>/!\ ATTENTION: (default-local) [email protected] FAILED signing up for dedicated_3ie browserling plan: 402: Your card was declined /!\
23:23:08  * mikealquit (Quit: Leaving.)
23:25:04  <Raynos>yorick: exec is not cross platform
23:25:41  <yorick>Raynos: your application will run on windows?
23:25:46  <Raynos>yes
23:25:51  <yorick>then use dir :P
23:25:56  <Raynos>;_;
23:26:01  <Raynos>my app
23:26:03  <Raynos>is cross platform
23:26:17  <yorick>then use dir or ls
23:26:47  <chrisdickinson>thl0: what was your ansi terminal colors module?
23:27:04  <thl0>chrisdickinson: ansicolors
23:27:09  <chrisdickinson>thanks!
23:27:28  <thl0>chrisdickinson: the full blown render terminal stuff in the browser is hypernal
23:27:41  <thl0>(not sure what you meant exactly)
23:27:51  <chrisdickinson>this is perfect, thanks
23:27:57  <thl0>np
23:29:33  <thl0>Raynos: yorick: you could have a look at shelljs - it has a bunch of those
23:29:58  <thl0>although it's pretty big, however quite useful for writing scripts that keep shelling out
23:31:12  <Raynos>thl0: nstart & npublish are god send
23:31:20  <Raynos>they really make things so much easier
23:31:50  <Raynos>i mean ngenplus {{name}} ./lib/{{name}} and nstart
23:32:00  <thl0>Raynos: problem with your node-env module is that it will force browserify to include process in the bundle
23:32:01  <Raynos>i need to figure out how to make them modules
23:32:13  <Raynos>thl0: I can configure it to not do that if I wanted to
23:32:15  <Raynos>or you can PR it
23:32:29  <thl0>Raynos: just to check that node_env doesn't exist
23:32:41  <Raynos>oh true I can just touch global
23:32:44  <Raynos>true that.
23:33:16  <thl0>you should turn it around and check for window first and use browser field to get process not included
23:33:38  <thl0>Raynos: looking at ngenplus
23:33:56  <Raynos>fixed node-env
23:34:05  <Raynos>but basically
23:34:08  <thl0>Raynos: problem: 'ngenplus' is not in the npm registry
23:34:11  <Raynos>i'm developing modules in a lib folder in my app
23:34:28  <thl0>ah
23:34:33  <Raynos>https://github.com/Raynos/dotfiles/blob/master/.functions#L26
23:34:54  <Raynos>and then I have one command to move it into its own module, I can open it up there and add docs / tests if I want to
23:35:08  <Raynos>and a second command to create github, travis, testling & publish
23:35:11  <Raynos>its a good workflow
23:35:43  <thl0>Raynos: it looks very useful
23:35:56  <Raynos>i need some more time to fine tune the process
23:36:03  <Raynos>and eventually rip it out of my dotfiles
23:36:32  <thl0>Raynos: maybe a good shell script is all we need
23:36:42  <Raynos>windows :D
23:36:52  <thl0>since you basically are combining together a bunch of tools
23:37:09  <thl0>Raynos: well yeah, shelljs then
23:37:22  <Raynos>ew shelljs xd
23:37:26  <Raynos>but yeah I get your point
23:37:53  <thl0>Raynos: since this is a tool, you could also argue that it only needs to run on unix, i.e. like sed
23:38:00  <thl0>it's different for libs
23:38:05  <Raynos>im ok with unix only
23:38:15  <Raynos>just my dotfiles make too many assumptions
23:38:16  <defunctzombie>Raynos: want to get some food?
23:38:18  <Raynos>about my environment
23:38:23  <Raynos>defunctzombie: I already ate
23:38:27  <defunctzombie>fuck
23:38:58  <Raynos>I eat at around 2-3pm for lunch
23:39:00  <Raynos>then starve
23:39:02  <thl0>Raynos: you could pull it out and publish as node module
23:39:02  <Raynos>the rest of the day
23:39:19  <defunctzombie>haha
23:39:24  <thl0>then you put an index.js that checks for unix and sources the shell stuff
23:39:43  <thl0>if it's windows you say: 'sorry only works on unix right now, but I take PRs'
23:39:57  <Raynos>:D
23:40:09  <thl0>then someone can PR a PowerShell script that you source instead
23:40:40  <thl0>just b/c windows sucks doesn't mean we have to suffer ourselves - someone else can ;)
23:42:10  <Raynos>start building a new web app ( https://github.com/Raynos/process-dashboard/blob/master/index.js )
23:47:25  <defunctzombie>Raynos: https://github.com/Raynos/node-env
23:47:31  <defunctzombie>this is a new level is laziness
23:47:35  <defunctzombie>*in
23:48:05  <Raynos>defunctzombie: :D
23:49:12  <thl0>Raynos: wouldn't browserify still bundle process since it sees that you are using it here? https://github.com/Raynos/node-env/blob/master/index.js#L4
23:51:47  * mikolalysenkojoined
23:53:25  * mikealjoined
23:55:37  <Raynos>thl0: yes
23:55:43  <Raynos>defunctzombie: its not about lazy
23:55:53  <Raynos>its about having access to NODE_ENV in the browser in a reliable fashion
23:56:02  <thl0>Raynos: you should use browser field
23:56:03  <Raynos>the best way to do it is to inject a script tag from node-env/script
23:56:14  <Raynos>thl0: that would be better! PR welcome
23:56:20  <thl0>this way process doesn't get bundled
23:56:35  <thl0>ok - focusing on testlingify for now, but maybe ;)