00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:13:00  * twofivefivejoined
00:21:49  <owen1>substack: interesting approach. i guess i can say the same about templar. i use it for templates. maybe i can just use ejs instead? thanks for your input.
00:22:18  <substack>eh? I just use html
00:25:01  <owen1>but what if i need to render the html with some data on the server and send html back to the client? (i do that on the first hit on my server{
00:25:06  <owen1>)
00:25:20  <owen1>that's why people use ejs/jade etc
00:27:43  <substack>http://npmjs.org/package/hyperstream
00:27:52  <substack>you can pipe html into html
00:28:51  <substack>and you can generate that html with something like http://npmjs.org/package/hyperglue which works in node and the browser and gives you a shorthand for mapping css selectors to content and attributes
00:29:02  <substack>or you can use http://npmjs.org/package/hyperscript to generate html too
00:29:19  <substack>owen1: have you seen this yet? https://github.com/substack/stream-handbook#html-streams-for-the-browser-and-the-server
00:30:14  <substack>then there's also https://github.com/substack/hyperspace which is very new
00:30:30  <owen1>wow. so many modules. i am still staring at hyperstream...
00:31:56  * thl0joined
00:32:33  <owen1>so all of those modules can replace a traditional templating (client and server) and it might be faster or more efficient since it's uses streams?
00:32:47  <owen1>just to make sure i understand the usecase
00:33:24  <substack>well the authorship is all just vanilla html files
00:33:49  <substack>and hyperspace works for streaming html so you don't need to buffer up the whole file into memory
00:39:53  <owen1>and i thought this weekend is long ..
00:41:22  <owen1>i'll start with the link to the streaming guide and continue with hyperspace. all i need is to fetch list of groups from my db, and send html with those group back to the client. the rest of my app is ajax/json.
00:42:00  <hij1nx>mbalho: http://nekofont.upat.jp/index2.cgi
00:48:23  * AvianFlujoined
00:48:34  * st_lukequit (Remote host closed the connection)
00:49:13  <thl0>Raynos: just saw you forked the json-file thing - are you gonna fix the process.cwd() stuff in there?
00:49:25  <Raynos>what bug?
00:49:48  <thl0>not a bug, but https://github.com/Raynos/node-json-file/blob/master/index.js#L49 is just wrong
00:50:00  <Raynos>xd
00:50:00  <thl0>a lib should never depend on my working dir
00:50:11  <Raynos>let me fix that toon
00:50:38  <thl0>cool - kinda hard to not break backwards compat, sind 'file' is expected to be relative
00:50:50  <thl0>Raynos: it should really just take a full path to a file
00:51:08  <thl0>also here: https://github.com/Raynos/node-json-file/blob/master/index.js#L42
00:51:16  <Raynos>cool
00:51:18  <Raynos>fixed it up
00:52:15  <thl0>I'll +1 a PR when you make it ;) - for now I worked around it in testlingify
00:52:29  <Raynos>https://github.com/ljharb/node-json-file/pull/2
00:52:57  <stagas>jesusabdullah: best feature of component: clicking fork in github, then changing otherguy/repo to yourname/repo in component.json and save. abuse all you like. no need for the otherguy to pull, no need to change module name.
00:53:32  <Raynos>...
00:53:37  <Raynos>stagas: same with npm
00:53:38  <Raynos>fork
00:53:41  <thl0>Raynos: should prob. rename filename to fullPath or something otherwise it's confusing, also I'd indicate with a PR that it'd break people depending on it using cwd()
00:53:46  <Raynos>change to yourname/repo in package.json
00:53:47  <Raynos>done.
00:54:02  <thl0>that way he'd know to publish this as a minor instead of a patch
00:54:05  <stagas>Raynos: yeah I learned that :) it wasn't a thing before though
00:54:18  <Raynos>stagas: its been a thing for at least 6 months
00:54:28  <Raynos>stagas: you can even do the git namespace with private repos!
00:54:36  <Raynos>thl0: major
00:54:39  <Raynos>breaking is major
00:55:43  <stagas>I suppose they'll converge at some point, I don't like the fragmentation as well
00:56:02  <stagas>I just want to write modules :(
00:56:12  <thl0>Raynos: right - just reread semver
00:56:44  <thl0>Raynos: I see that most people do minor though even for API changes since most people depend on stuff via ~0.1.0 for instance
00:57:00  <Raynos>thl0: most people do sember wrong
00:57:07  <thl0>so a breaking change never comes down via an auto patch
00:57:08  <Raynos>stagas: use npm
00:57:19  <stagas>but not if people have so rigid opinions, that's just disappointing
00:57:21  <Raynos>stagas: I want to write a thing that imports all of component to npm & rewrites component.json to package.json
00:57:59  <stagas>we need to expand our views and realize there are people with different needs and they should be respected
01:03:05  <stagas>Raynos: and what about components that have node counterpart, how's it going to work for that? bundling everything isn't a viable option in the frontend, some things need to go to the browser, some other need to stay in the server
01:03:26  <stagas>you need to be explicit, I don't see a way around that
01:03:40  <Raynos>stagas: different needs?
01:03:51  <Raynos>just use browserify
01:03:53  <Raynos>browserify works
01:03:56  <stagas>or you end up with megs of .js that half of those aren't used
01:04:07  <stagas>it does
01:04:12  <Raynos>with components i'm just going to rewrite them to npm prefixed with "lol-components." or something
01:04:13  <substack>use the browser field
01:04:15  <stagas>for smaller scope
01:04:26  <Raynos>stagas: its trivial to exclude code you dont need
01:04:32  <Raynos>browserify already does this
01:04:59  <substack>browserify does a recursive require() traversal starting from the main/browser field
01:05:24  <Raynos>stagas: the problem is already solved, let me know if you need guidance to apply the solution
01:08:08  <stagas>Raynos: I will, too tired today though :)
01:08:27  <stagas>but if it's solved then that's great news
01:15:22  <thl0>Raynos: using democratic system to decide on best default testling config
01:15:42  <thl0>Anyone who wants to weigh in, plz vote https://github.com/thlorenz/testlingify/pull/1 and https://github.com/thlorenz/testlingify/pull/2
01:16:12  <thl0>Keep in mind that you can always edit the default config after testlingify is installed
01:17:12  <Raynos>thl0: i will patch testlingify to take in a `--defaults=jsonFile` at some point
01:17:41  <thl0>Raynos: but you can just edit ~/.config/testlingify.js
01:18:01  <thl0>Raynos: from then on the defaults applied will be like you want
01:18:25  <thl0>i.e. you can override what the defaults are for all future calls to testlingify on your machine
01:18:49  <thl0>Raynos: not sure why you would need that --defaults option then
01:19:04  <Raynos>thl0: that works too
01:19:38  <Raynos>st_luke put it best
01:19:40  <thl0>Raynos: cool, just to be clear my main concern is to set these defaults properly right out of the box
01:20:01  * stagasquit (Read error: Connection reset by peer)
01:20:14  <thl0>Raynos: st_luke said what?
01:20:59  <thl0>oh see it now - yep that's the reality ;)
01:33:43  * jolissquit (Quit: joliss)
01:33:54  * vitorpachecojoined
01:35:53  * vitorpachecoquit (Remote host closed the connection)
01:36:40  * mcollinaquit (Read error: Connection reset by peer)
01:37:04  * jolissjoined
01:37:38  * vitorpachecojoined
01:37:41  <substack>toying around with mozilla persona
01:37:43  <substack>it's not bad
01:37:52  <substack>much better than openid for sure
01:37:55  * jolissquit (Client Quit)
01:38:18  <substack>packaging this up into a reusable lib since all the stuff on npm is for express
01:38:35  <substack>or flatiron or passport
01:38:47  <substack>but the server-side part isn't even important
01:38:52  <substack>just the browser-side part is tricky
01:39:00  <owen1>substack: sweet!
01:42:39  <thl0>substack: btw testling is a bit non-deterministic
01:42:49  <thl0>substack: these tests should never fail: https://ci.testling.com/thlorenz/test-api
01:43:03  <thl0>but do due to: timeout waiting to hear back from safari/6.0
01:43:30  <thl0>for instance
01:47:29  * jibayquit (Remote host closed the connection)
01:54:03  * vitorpachecoquit (Remote host closed the connection)
01:59:17  * jcrugzzquit (Quit: leaving)
02:00:56  * timoxleyquit (Quit: Computer has gone to sleep.)
02:02:56  * mint_xianquit (Excess Flood)
02:07:05  * mint_xianjoined
02:07:16  * jcrugzzjoined
02:13:20  * timoxleyjoined
02:23:46  * jcrugzzquit (Ping timeout: 252 seconds)
02:32:05  * mcollinajoined
02:32:27  <jesusabdullah>how to send a "???!?!" to tape...
02:37:19  <jesusabdullah>my /r/javascript flair is awesome
02:37:26  <jesusabdullah>it's a professor brothers quote
02:49:43  * ralphtheninjaquit (Ping timeout: 264 seconds)
02:50:24  * jcrugzzjoined
02:50:49  * timoxleyquit (Quit: Computer has gone to sleep.)
02:54:23  * timoxleyjoined
02:58:28  * jcrugzzquit (Ping timeout: 246 seconds)
03:09:43  <owen1>i decided to write my router.js as a function that get url and return string. ie 1.png => 'static' in my server.js will use a hash routes = {'static': function() { bla }, 'root': function(){ bla }}
03:09:47  <owen1>any feedback?
03:10:04  <Raynos>owen1: ಠ_ಠ
03:12:57  * thl0quit (Remote host closed the connection)
03:14:46  <owen1>Raynos: not sure what does it mean
03:15:34  <owen1>originaly i used the npm package called routes. substack told me to just use vanilla.js (:
03:15:54  <owen1>the nice thing about simple function is i TDD it with tape
03:16:18  <owen1>'/' => 'root' '/cats' => 'group' etc
03:21:31  <jesusabdullah>owen1: you can use a routing module
03:21:38  <jesusabdullah>I used routes, I liked it for what it did
03:21:56  <jesusabdullah>plus, you're writing a router
03:22:09  <owen1>but now i can test it (:
03:30:06  <jesusabdullah>routers already have tests
03:30:11  <jesusabdullah>and you can still write tests for a router
03:31:40  <Raynos>owen1: it means wat.
03:31:51  <Raynos>owen1: http://xion.org.pl/wp-content/uploads/2012/01/wat-gigantic-duck.jpg
03:33:39  <owen1>Raynos: oh noes! i am talking to subsack and he tells me to just do if (req.url === '/') doSomething(req, res) and i got excited and i come back here and u guys shut me down (:
03:36:01  <Raynos>:(
03:36:14  <Raynos>owen1: sorry
03:36:16  <Raynos>I am just mean
03:36:20  <Raynos>show me a gist with more information
03:36:53  <jesusabdullah>owen1: I often disagree with substack.
03:37:43  <owen1>here is my first attempt in creating a router - https://github.com/oren/groups/blob/master/router.js
03:38:42  <owen1>i used routes but wasn't sure how to tell the difference between /cats/?format=application/json and /cats/cuteness/?format=application/json
03:40:39  <owen1>so came here, talk to the mad scientist and he told me to use vanilla.js. he also told me not to use templar and instead to look at all kind of crazy html streaming modules like hyperspace and hyperstream that seems were written 2 minutes ago (:
03:40:56  <jesusabdullah>so get advice elsewhere
03:41:08  <jesusabdullah>seriously, you don't have to do what substack would do
03:41:53  <owen1>no need to get mean. i am open to anything and experimentation is good.
03:45:58  * CoJaBoquit (Quit: leaving)
03:49:28  <substack>well that is how I am building apps right now
03:49:43  <substack>I'm not going to recommend an approach that I don't personally use
03:50:19  <jesusabdullah>and nobody thinks you should ^_^
03:50:42  <jesusabdullah>really I just wish owen1 would objectively consider the possibilities given his own sensibilities
03:50:44  <owen1>i know! and it's always insightful to get your take on this stuff. it makes me a better developer
04:02:56  <Raynos>owen1: https://github.com/Raynos/process-dashboard/blob/master/routes/index.js
04:03:45  <Raynos>owen1: the best advice to be honest is use express or restify
04:03:51  <Raynos>until your comfortable with hand rolling your own shit
04:04:00  <Raynos>jesusabdullah: would you recommend flatiron or big?
04:04:51  <owen1>interesting.
04:06:46  <Raynos>thl0: did you say testlingify is ready for usage
04:11:54  * twofivefivequit (Ping timeout: 256 seconds)
04:15:56  * defunctzombie_zzchanged nick to defunctzombie
04:17:50  <jesusabdullah>Raynos: given those two choices, big hands down
04:18:21  <Raynos>big vs express vs npm-www anti framework style?
04:18:43  <jesusabdullah>Me, I'd choose big
04:18:56  <jesusabdullah>but I think the others are valid
04:19:06  <jesusabdullah>and, like, big uses express
04:19:15  <jesusabdullah>and it's not like I can't use other modules
04:21:14  <owen1>interesting. i only heard about big today
04:21:20  <jesusabdullah>it's my project
04:21:21  <jesusabdullah>well
04:21:24  <jesusabdullah>not MY project
04:21:27  <jesusabdullah>but the one I'm working on
04:21:36  <owen1>i thought it's a joke about BIG frameworks
04:21:42  <owen1>but it look quite small
04:21:55  <jesusabdullah>Just because the name is cool doesn't mean it's insubstantial
04:22:09  <jesusabdullah>working with resources is pretty cool
04:22:38  * twofivefivejoined
04:23:49  * timoxleyquit (Quit: Computer has gone to sleep.)
04:30:39  <jjjjohnn1y>express is not simple any more
04:31:49  <jjjjohnn1y>it like a big thing with lots of buttons
04:32:19  <jjjjohnn1y>thats how you design a bad synthesizer
04:32:38  <jjjjohnn1y>its one thing to get lost playing
04:32:48  <jjjjohnn1y>its another not to be able to find your way back
04:34:04  <jjjjohnn1y>IMO drop down to connect
04:38:14  <jjjjohnn1y>NOBODY ASKED U FYO
04:38:37  <jjjjohnn1y>LOUDBOT: tweet last
05:00:48  <jesusabdullah>oh man part way with this blog post
05:00:56  <jesusabdullah>I'll be really really interested to see how people react
05:02:39  <jesusabdullah>Raynos: which frameworks do you like the least (in node) ?
05:04:25  <Raynos>jesusabdullah: meteor
05:09:01  * defunctzombiechanged nick to defunctzombie_zz
05:10:02  <jjjjohnn1y>d3
05:10:17  <jesusabdullah>How come guys?
05:10:41  <jesusabdullah>not defending, interested in rationale
05:12:59  * twofivefivequit (Ping timeout: 245 seconds)
05:14:02  <jjjjohnn1y>d3 is a front end thing i looked at today for the first time
05:14:19  <jjjjohnn1y>its like if you decided to use jquery for everything
05:14:26  <jjjjohnn1y>no html or css or js, just jquery
05:16:18  <jesusabdullah>hmmmmmm
05:16:47  <jjjjohnn1y>i thought it was a canvas lib
05:16:49  <jjjjohnn1y>i was wrong
05:27:21  <Raynos>substack: https://github.com/substack/camelize/pull/2
05:31:28  * jcrugzzjoined
05:32:52  <jesusabdullah>yeah jjjjohnn1y I think it's used for visualizations though, like that was its original target
05:33:09  <jesusabdullah>so Raynos what do you know about meatier?
05:34:27  <Raynos>MEATIER
05:34:29  <jesusabdullah>wow this website is kinda terible
05:34:34  <Raynos>meteor?
05:34:38  <jesusabdullah>yeah
05:34:51  <Raynos>it sucks
05:34:53  <Raynos>i read the code
05:34:55  <Raynos>then i vomited
05:38:19  <jesusabdullah>ugh everything is different for no good reason
05:38:27  <jesusabdullah>"WE" thought FIBERS were the way to go
05:39:20  <jesusabdullah>also all these weird folders
05:39:29  <jesusabdullah>like I can't imagine trying to use this without a boilerplate app
05:39:31  <jesusabdullah>that's just wrong
05:41:20  <jesusabdullah>wait what's that commit for?
05:41:34  <jesusabdullah>It doesn't look like it changed anything except moving the camelizing into a function
05:55:59  * mikealquit (Quit: Leaving.)
05:58:38  * mikealjoined
05:59:46  * jcrugzzquit (Ping timeout: 246 seconds)
06:11:32  <owen1>node job ads started looking like rails - "...with experience of using Node.js (and preferably Express 3)"
06:28:11  * AvianFlu_joined
06:29:11  * AvianFluquit (Read error: Connection reset by peer)
06:32:20  <jesusabdullah>Sup AvianFlu_
06:35:44  <AvianFlu_>sup jesus abdullz
06:35:52  <jesusabdullah>writin' a blog post
06:35:57  <jesusabdullah>watchin' sbemails on youtube
06:36:08  <jesusabdullah>hung out with the fam for memorial day weekend
06:37:53  <AvianFlu_>I fly to jsconf in like not that many hours
06:38:41  <AvianFlu_>also maciej says hi (he's currently on my couch)
06:38:46  <AvianFlu_>also brb sleep
06:38:48  * AvianFlu_quit (Remote host closed the connection)
06:42:49  <Raynos>jesusabdullah: added string support
06:44:20  <chapel>jesusabdullah: hows the weather up there?
06:44:31  * chapelhas spent the weekend in his hotel room yay
06:46:55  * nicholasfjoined
06:47:05  <jesusabdullah>chapel: beautiful
06:47:11  <jesusabdullah>Raynos: it didn't work with strings before?
06:47:17  <Raynos>correct
06:47:35  <chapel>jesusabdullah: http://imgur.com/a/OmSXq#jRqRfRk
06:47:40  <jesusabdullah>ohhh I see
06:47:46  <jesusabdullah>only objects with keys as strings
06:47:47  <jesusabdullah>rite
06:48:12  <chapel>you ever see that house before?
06:48:26  <chapel>I haven't, even though I lived in Willow
06:48:27  <jesusabdullah>ohhh yeah
06:48:29  <jesusabdullah>never that close
06:48:41  <jesusabdullah>but always just off the horizon going North from the methodist church or so
06:48:49  <chapel>ah yeah
06:51:19  * nicholasfquit (Ping timeout: 245 seconds)
06:59:40  <Raynos>isaacs: https://github.com/isaacs/dotfiles/blob/master/.gitconfig#L14 I love you.
07:01:44  * timoxleyjoined
07:17:16  * ralphtheninjajoined
07:25:03  <juliangruber>gozala: how would a macro in wisp look like, that transformed (pipe foo bar baz) to foo.pipe(bar).pipe(baz)?
07:37:30  * timoxleyquit (Quit: Computer has gone to sleep.)
07:45:46  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
07:45:46  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
07:45:57  * timoxleyjoined
08:17:54  * stagasjoined
08:23:47  * wolfeidauquit (Remote host closed the connection)
08:26:09  * wolfeidaujoined
09:00:33  <jesusabdullah>lol I just linked meteor in my post
09:09:29  * jibayjoined
09:18:16  <substack>jesusabdullah: where's yo post?
09:18:20  <substack>LINKAGE DEMANDED
09:19:54  <timoxley>jesusabdullah I want to use ecstatic to forward bad requests from my other stuff to html pages. I try write a 404 header and am "getting headers already sent" errors
09:22:09  <timoxley>bleh, I'll just pipe fs.readstream
09:34:05  <jesusabdullah>substack: not up yet still working on it
09:34:44  <jesusabdullah>timoxley: That doesn't sound good, that's either a bug or a messed up abstraction in ecstatic imo
09:35:07  <jesusabdullah>timoxley: if you make an issue I'll look into it as soon as I can, copypasta and suggestions encouraged
09:35:12  <jesusabdullah>timoxley: thanks for feedbax
09:35:23  <timoxley>jesusabdullah I don't think I'm using ecstatic for the right purpose
09:36:02  <timoxley>I want to take every request that comes in and forward it to a particular page, with a 404/500 status code
09:36:39  <timoxley>I have a bunch of services, this is kind of a catchall service that terminates the stream in a pretty way
09:36:53  <timoxley>if none of the other services want to respond
09:37:10  <jesusabdullah>ahhh
09:37:26  <jesusabdullah>I'd be interested in seeing a gist for that
09:37:55  <jesusabdullah>I'm actually still trying to figure out how I want to do error pages with ecstatic
09:38:26  <jesusabdullah>I think it should be a different component but related? >_< I think I want to refactor it to have a separate error handler middleware or something
09:41:59  <substack>jesusabdullah: you could have an event with a default handler
09:43:26  <jesusabdullah>substack: maybe!
09:44:28  <jesusabdullah>timoxley: isaac wrote a module specifically for serving error pages I think
09:44:54  <timoxley>https://github.com/isaacs/error-page
09:44:57  <timoxley>cool thanks
09:45:07  <timoxley>that looks spot on
09:55:40  <jesusabdullah>cool
09:55:44  <jesusabdullah>never used it myself actually
10:02:53  * timoxleyquit (Quit: Computer has gone to sleep.)
10:23:03  * mcollinaquit (Read error: Connection reset by peer)
10:36:21  * stagasquit (Read error: Connection reset by peer)
10:37:40  * mcollinajoined
10:39:25  * mcollina_joined
10:42:04  <owen1>tim_smart: https://github.com/oren/node-website-template/blob/master/server.js#L69-71
10:42:09  * mcollinaquit (Ping timeout: 245 seconds)
10:42:34  <owen1>oops. wrong nick. sorry
12:13:01  * jibayquit (Remote host closed the connection)
12:25:05  * twofivefivejoined
12:27:01  * eccloudquit (Read error: Operation timed out)
12:27:26  * eccloudjoined
12:46:07  * twofivefivequit (Ping timeout: 246 seconds)
12:57:47  * AvianFlujoined
12:58:51  * cianomaidinjoined
13:03:04  * crankquit (Ping timeout: 276 seconds)
13:07:50  * crankjoined
13:32:21  * twofivefivejoined
13:41:33  * twofivefivequit (Read error: Connection reset by peer)
13:43:09  * shuaibjoined
13:46:29  * shuaib_joined
13:47:55  * shuaibquit (Disconnected by services)
13:48:26  * shuaib_changed nick to shuaib
13:48:32  * shuaibquit (Client Quit)
13:49:03  * shuaibjoined
13:58:43  * tim_smartquit (Ping timeout: 260 seconds)
13:59:51  * tim_smart|awayjoined
13:59:52  * tim_smart|awaychanged nick to tim_smart
13:59:55  * timoxleyjoined
14:00:25  * AvianFluquit (Remote host closed the connection)
14:00:28  * ins0mniajoined
14:13:53  * shuaibquit (Ping timeout: 248 seconds)
14:16:57  * shuaibjoined
14:18:07  * timoxleyquit (Quit: Computer has gone to sleep.)
14:19:48  * timoxleyjoined
14:22:55  * no9joined
14:24:32  * cianomaidinquit (Quit: cianomaidin)
14:28:33  * thl0joined
14:33:05  * thl0quit (Ping timeout: 248 seconds)
14:52:19  * thl0joined
14:59:06  * shuaibquit (Read error: Connection reset by peer)
15:00:14  * thl0quit (Remote host closed the connection)
15:01:04  * thl0joined
15:03:56  * shuaibjoined
15:05:43  * thl0quit (Remote host closed the connection)
15:05:56  * Correnjoined
15:12:23  * cianomaidinjoined
15:20:42  * thl0joined
15:21:03  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
15:23:48  <thl0>creationix: wanna continue discussing js-git here, kinda hard via twitter
15:24:51  * cianomaidinquit (Quit: cianomaidin)
15:24:54  <thl0>creationix: my whole argument relied on the fact that you are able to manage your packages, but without npm it's a different story
15:31:40  * Correnquit (Quit: Computer has gone to sleep.)
15:32:59  <creationix>thl0: sure
15:33:25  <creationix>or over in #js-git if it's too offtopic for here
15:33:40  <creationix>I never understood what this room was for
15:34:43  <thl0>creationix: I think this room is ok - everything nodejs related gots ;)
15:35:05  <creationix>right, so my problem is I don't have a package manager
15:35:17  <creationix>and even unrelated to that is I don't really want 50+ different issue trackers
15:35:21  <thl0>we may even get some more suggestions from people here - do you mind if I link our twitter conversation?
15:35:22  <creationix>though that's less of an issue
15:35:34  <creationix>go for it
15:37:26  <thl0>view conversation on: https://twitter.com/thl0/status/339039196423520256 should give an idea of what we were talking about
15:37:59  <creationix>substack: do you have experience using node style modules in environments where node and npm can't be used?
15:38:21  <creationix>I really want to be able to develop js-git on a chromebook
15:38:29  <creationix>not just use some pre-built js file
15:38:34  <creationix>but actually do real js-git development
15:38:39  <thl0>creationix: 50+ issue trackers also means that in order to fix some code, I'd need to only deal with 1/50 of it in order to find/understand a bug
15:38:51  <creationix>thl0: well, you could tag issues
15:38:53  <creationix>that's not an issue
15:39:00  * Correnjoined
15:39:02  <guybrush_>why not just use npm for development and put all the different releases for all the platforms somewhere on a website
15:39:03  * jcrugzzjoined
15:39:04  <creationix>also each module within the package will be independent code
15:39:09  <thl0>talking about the code I'd need to understand
15:39:16  <guybrush_>so the user has not to use npm at all
15:39:21  <creationix>guybrush_: because I can't use npm for development
15:39:27  <guybrush_>oh ok
15:39:42  <creationix>well, I can't depend on npm for development rather
15:39:47  <creationix>some contributors will have node installed
15:39:51  <creationix>but many won't be able to
15:39:53  <guybrush_>i understand
15:40:04  <thl0>creationix: I get your point, but isn't tagging gonna be just a way to deal with the fact that you have one repo that handles too much?
15:40:36  <guybrush_>so all the developers need is git and an editor :D
15:40:40  <thl0>creationix: the actual bottom line is comprised of two things:
15:40:41  <creationix>thl0: I'm more concerned with discoveribility of issues than having too many issues in one place
15:40:52  <creationix>guybrush_: well, the won't have git either
15:41:01  <creationix>but once js-git is stable enough to self-host, that's solved ;)
15:41:02  <guybrush_>they have js-git! haha
15:41:06  <thl0>1. do you expect anyone using any of the modules buried in js-git independently?
15:41:07  <guybrush_>nice
15:41:13  <creationix>thl0: most of them, no
15:41:26  <guybrush_>so put everything in git-submodules (or just fake git-submodules)
15:41:29  <creationix>anything that is useful independently, I've already pulled out
15:41:42  <creationix>guybrush_: I've been doing that, it's very painful
15:41:52  <guybrush_>right git-submodules suck
15:41:53  <creationix>also I think the git team is deprecating submodules
15:42:02  <guybrush_>wow
15:42:12  <guybrush_>that sounds .. interesting
15:42:23  <thl0>2. do you wanna handle all issues in one repo which may become messy
15:42:26  <guybrush_>will they provide a similiar solution?
15:42:48  <guybrush_>sry for being offtopic just ignore me :P
15:42:54  <thl0>i.e. if you had lots of independent repos, you could give someone commit rights to one or more of them and handle issues there for you
15:43:12  <thl0>you'd be sure exactly what code he/she can touch
15:43:17  <creationix>guybrush_: no worries, thanks for your input
15:43:43  <creationix>thl0: I think I'm not being clear on how much will go in this one meta-package
15:43:49  <creationix>it will *only* be git stuff
15:43:57  <creationix>I've already pulled out min-streams
15:44:04  <creationix>I've pulled out my http codec
15:44:06  <thl0>50+ files
15:44:12  <thl0>so that's a lot
15:44:13  <creationix>and it won't be 50+ files
15:44:16  <thl0>ah
15:44:28  <creationix>I put related functions into a single module often
15:44:36  <creationix>so 1 file per module
15:45:04  <thl0>I guess time will tell what's best, couldn't you use submodules and redirect people to the main repo for issues?
15:45:17  <thl0>that way you keep it split up to keep your options open
15:45:20  <creationix>thl0: already tried that, doesn't really work
15:45:25  <thl0>hm
15:45:45  <thl0>well, I feel like you are pretty set on what your best option is ;)
15:45:54  <thl0>and without a package manager I don't blame you
15:46:00  <creationix>no, I'm really looking for feedback, just not sure
15:46:14  <creationix>also my main contributor, chrisdickinson, swings the other way
15:46:37  <creationix>he's comfortable with a full npm package *and* git repo for every little function that could work independent
15:46:39  <thl0>well, I guess I'm pretty much with chrisdickinson on this -- keep it separate if you can
15:47:00  <guybrush_>creationix: the thing is lots of small seperate modules increases reusability
15:47:09  <thl0>i.e. rule of parsimony: only build a monolith after you proved that it's not possible to build it modular
15:47:30  <creationix>I think the confusion isn't that I'm proposing to build a monolith
15:47:39  <creationix>there is a difference between a package and a module
15:47:45  <creationix>it will be modular regardless
15:48:00  <thl0>got it, it's still stored as a monolith though
15:48:04  <guybrush_>so what is the diff between a package and a module?
15:48:15  <thl0>guybrush_: package is what's on npm
15:48:23  <thl0>can contain multiple modules
15:48:24  <guybrush_>and module is?
15:48:33  <thl0>i.e. one file with one module.exports
15:49:24  <thl0>I guess I gotta rename my talk to avoid confusion from "Module Driven Development" to "Package Driven Development"
15:49:32  * Correnquit (Quit: Computer has gone to sleep.)
15:49:51  <guybrush_>really i think this is something i just dont care about
15:50:10  <creationix>the interesting thing is even chrisdickinson used a meta-package approach for bops when we had to depend on it from several other places
15:50:15  <guybrush_>it doesnt help to solve any problem to argue about module vs package
15:50:41  <creationix>I think we tend to want tiny packages when we are working on a small part, but want a meta-package when we just want to depend on a library
15:51:11  <thl0>creationix: if you really want lots of feedback, you should create a gist, explaining your point and then tell people to up/down vote the option to combine all into one repo
15:51:21  <creationix>I'm not talking about a ton of code going into the js-git package
15:51:34  <thl0>you'll get a lot of feedback this way
15:51:37  <guybrush_>i think there is a difference between actual-implementations and tools
15:51:43  <creationix>thl0: yeah, I was just hoping for some instant feedback :P
15:52:02  <thl0>well you got it at least from me ;)
15:52:09  <creationix>thanks!
15:52:28  <thl0>creationix: you could create a branch as well along with the gist, so you can keep working
15:52:50  <thl0>if the gist tells you otherwise, you just revert
15:52:53  <guybrush_>creationix: do you plan to do anything with p2p too?
15:53:04  <guybrush_>like git over webrtc
15:53:06  <creationix>yes, but that won't be part of the js-git package
15:53:14  <guybrush_>ok
15:53:32  <creationix>only git protocol and git file format and git internal logic will go in js-git
15:53:56  <Raynos>creationix: substack once said "make modules small, pre-emptively small. Because you'll always add 200loc of bug fixes for production usage"
15:53:57  <creationix>bops is external, min-stream is external, http-codec is external, chrome and node.js adapters are external, etc..
15:54:35  <creationix>Raynos: yep
15:54:36  <Raynos>it's a hard balance
15:54:41  <Raynos>for example i wouldnt break continuable out
15:54:44  <Raynos>into 8 repos
15:54:53  <Raynos>but ill brea other small shit out
15:54:59  <Raynos>it really depends on relatedness
15:55:03  <creationix>yeah, same reason I went for a meta-package for min-stream
15:55:07  <creationix>same style of thing as continuable
15:55:14  <Raynos>I did https://github.com/Raynos/node-env
15:56:11  <Raynos>creationix: one thing that helps a lot is that I finally wrote `npmify {{name}} ./lib/x.js`
15:56:20  <Raynos>so the only overhead is "one github repo vs many. one package vs many"
15:56:25  <Raynos>maintenance is not that bad
15:56:41  <Raynos>I think the best measure is do you find yourself doing npm link a lot?
15:56:53  <Raynos>if so then you need to move that somewhere else
15:57:05  <creationix>github repos / npm packages are especially expensive because I have to setup my package.json again, add my .travis.yml, set up my CI hooks
15:57:38  <guybrush_>so there is no node on chromebooks?
15:57:43  <creationix>npm link doesn't work in my environment
15:57:50  <creationix>guybrush_: no, there is no command line
15:57:56  <creationix>no git
15:57:58  <creationix>hence js-git
15:58:05  <guybrush_>wow
15:58:08  <creationix>otherwise I wouldn't have started this
15:58:26  <creationix>though I do have full TCP and UDP and even USB primitives
15:58:35  <creationix>I can write device drivers for arbitrary usb devices
15:59:11  <Raynos>creationix: psh, dotfiles. https://github.com/Raynos/dotfiles/blob/master/.functions#L1
15:59:22  <Raynos>setting up a new repo / package should be easy to automate
15:59:29  <creationix>except I don't have bash
15:59:30  <creationix>or node
15:59:44  <Raynos>oh then its your own fault
15:59:47  <creationix>my *entire* goal with js-git is to enable development *on* devices like chromebooks
15:59:49  <guybrush_>so why would a developer use a chromebook then? without a shell and stuff?
15:59:52  <Raynos>for using a very restrictive editing environment
16:00:18  <creationix>guybrush_: not having to setup an environment is a plus for people like me
16:00:24  <creationix>I'm on a new machine almost every day
16:00:31  <guybrush_>hm ok
16:00:31  <creationix>any dependence on tools is not acceptable
16:00:48  <creationix>I like to spend more time coding and less time setting up stuff
16:01:14  <guybrush_>i mean i get how cool it is to have git with js to just work everywhere the same, so i understand your axioms
16:01:19  <creationix>also, as stated in my kickstarter, I want to make programming more accessable to kids
16:01:35  <creationix>chromebooks are the #1 selling laptop on amazon, but if you look at the stats, it's mostly gifts to kids
16:01:49  <creationix>imagine if they all suddenly had a real development environment
16:02:09  <guybrush_>linux doesnt run on chromebooks?
16:02:19  <creationix>they run on top of a stripped down gentoo
16:02:27  <creationix>but in normal mode, you can't access the underlying linux
16:02:31  <guybrush_>so why not just put a linux on it
16:02:32  <creationix>there is no shell at all
16:02:39  <creationix>because no
16:02:41  <creationix>:)
16:03:00  <creationix>I mean, I have node and git and bash on my chromebook pixel as we speak
16:03:04  <creationix>but it requires some hacking
16:03:12  <creationix>most kids aren't going to be able to to it
16:03:19  <creationix>and even most web developers are willing/able
16:03:53  <creationix>I'm talking on irc though a pure html/js app using the TCP primitive on chrome apps
16:03:57  <creationix>this is not a web-page
16:04:15  * timoxleyquit (Quit: Computer has gone to sleep.)
16:05:05  <guybrush_>still at least for security you need to leave the js-vm
16:05:50  <guybrush_>i mean it cant be js only everything
16:06:30  <tanepiper>wtf is up with NPM?
16:06:51  <tanepiper>getting a whole load of TypeError: Object.keys called on non-object
16:07:21  <thl0>Raynos: your help made it in (update to 0.1.5)
16:07:31  <creationix>guybrush_: chromeOS is what it is.
16:07:52  <thl0>still not sure about the browsers, but more leaning towards exclusion since testlingify is mostly for open source
16:07:56  <creationix>I'd rather be in the chromeos pacakged app sandbox over a native windows or osx app any day
16:08:05  <creationix>much better security and trust
16:08:19  * jcrugzzquit (Ping timeout: 264 seconds)
16:15:43  * jcrugzzjoined
16:23:03  <Raynos>thl0: ill pr in some command line entry for gh user / pass soon
16:23:36  <thl0>Raynos: yeah, was too lazy to do that ;) you can basically get most the code from travisify
16:23:59  <thl0>Raynos: I figured whoever develops software has an editor ^^
16:25:03  <thl0>Raynos: you could also do it git style, i.e. testlingify set github.username ... and testlingify set github.password ...
16:25:57  * shuaibjoined
16:27:59  * Correnjoined
16:30:31  * shuaibquit (Ping timeout: 264 seconds)
16:32:24  <creationix>thl0: https://gist.github.com/creationix/5657945
16:32:35  <creationix>Raynos: guybrush_ ^^
16:33:02  <thl0>creationix: cool, tweet it so I can RT
16:33:52  <creationix>https://twitter.com/creationix/status/339056805982371840
16:39:38  * Correnquit (Quit: Computer has gone to sleep.)
16:39:57  * shuaibjoined
16:42:03  <thl0>creationix: I just outlined advantages for B without considering challenges, but hopefully these could be solved somehow - maybe the discussion will come up with some solutions
16:42:18  * jcrugzzquit (Read error: Connection reset by peer)
16:42:29  * jcrugzzjoined
16:42:43  <creationix>I just emailed some people at adobe who were very interested in the project. I'd like to hear their input as well
16:44:33  <thl0>creationix: cool, btw, if you just copy/paste chrisdickinson's stuff into your project, how'd you get patches that he applies?
16:45:13  <creationix>I wouldn't
16:45:28  <thl0>well that's not good
16:45:39  <thl0>cause you'd duplicate efforts
16:45:40  <creationix>He would either have to move his development to the main repo or I would have to maintain my fork
16:45:50  <creationix>right, that's the main reason I didn't just do this without asking
16:45:55  <creationix>I hate duplicating work
16:45:55  <thl0>got it
16:46:42  <thl0>well to make him stop maintaining his modules and just work in your repo wouldn't be great for the community
16:47:02  <thl0>at least for the people who are using his modules in isolation since now they'd no longer be maintained
16:49:10  <creationix>well that's the thing, many of them aren't that useful on their own
16:49:21  <creationix>anything useful on it's own, I break out
16:49:38  <creationix>of course the story is different for each module
16:53:29  * cianomaidinjoined
16:55:24  <thl0>creationix: don't agree that they aren't useable on their own
16:55:29  <thl0>take https://github.com/chrisdickinson/git-list-pack for example
16:55:41  <creationix>I said not very usable
16:55:47  <creationix>each module has a different level of use
16:56:00  <creationix>I think inflate could be very useful if it isn't js-git specefic
16:56:21  <thl0>ok, just saying that you never know what kinda stuff people need
16:56:30  <creationix>although the output of git-list-pack is meaningless
16:56:57  <creationix>you still need about 10 other modules and browserify shims to get useful objects out of it
16:57:04  <creationix>(I know because that's what I'm working on right now)
16:57:34  <thl0>still, it has clear inputs and outputs i.e. is a sort of transformer that stand on its own
16:57:43  <creationix>yes, it's a module
16:57:57  <creationix>a module is not the same thing as a project
16:58:02  <creationix>or even a package
16:58:07  <creationix>js-git is one project
16:58:14  <creationix>the question is should it be one package
16:58:28  <creationix>nobody questions if it should be several stand-alone modules
16:58:53  <thl0>I get that, however if I want to just pull in one functionality it will need to be a package
16:59:02  <thl0>otherwise I can't use it from anywhere else
16:59:18  <creationix>browserify supports pulling a single module out of an npm package
16:59:27  <creationix>it only bundles the code you actually require
16:59:37  <creationix>and disk-space on your build server is cheap
16:59:53  <thl0>creationix: I know, but that's brittle api (i.e. if you rename it, my code breaks)
17:00:04  <creationix>if I rename a package you code breaks too
17:00:07  <thl0>as an example: https://github.com/substack/travisify/blob/master/lib/git_dir.js in the middle of travisify
17:00:07  <creationix>don't rename modules
17:00:23  <thl0>I needed that - looks like not reusable right?
17:00:51  <thl0>but I pulled it into: https://github.com/thlorenz/find-parent-dir (with some generalizations and making it async)
17:01:16  <thl0>the idea is that I shoulnd't have to do this work, instead substack should have done it for me
17:01:39  <thl0>creationix: in this case chrisdickinson already did it and it seems like your solution would undo it
17:02:06  <creationix>premature modularization is just as bad as premature-abstraction, premature-optimization imho
17:02:34  <creationix>this is also why I don't like libraries having lots of dependencies
17:03:02  <creationix>if I have no dependencies then you don't take on stuff you don't need when you use only part of my package
17:03:23  <creationix>but if I include too many modules with different dependencies for each, then you need to install *all* my dependencies when you don't use most of them
17:03:32  <creationix>unused modules in a package are cheap
17:03:39  <creationix>unneded dependencies are ultra annoying
17:03:54  <thl0>not clear what that means, when I install your package, I'd pull down all code even if I chose to only use one of your modules
17:03:56  <creationix>and remember, I can't depend on npm
17:04:08  <creationix>yes, you'll pull down all 30k of code
17:04:10  <creationix>so what
17:04:16  <creationix>all in one single zip file
17:04:26  <thl0>so how is that different from pulling down the dependencies?
17:04:36  <creationix>that's nothing compared to pulling down a whole tree of npm dependencies
17:04:44  <thl0>are you saying unzip is a bottleneck?
17:04:48  <Wraithan>thl0: he wants a single zip file because he is in a hostile development environment
17:04:59  <creationix>thl0: no
17:05:21  <creationix>most people will use most of js-git
17:05:28  <thl0>I get that, but it could still be managed separately and bundled together for deployment
17:05:35  <creationix>git-list-pack only emits raw buffers
17:05:42  <creationix>they still need to be parsed, deltas applies, etc
17:05:47  <thl0>which may be useful for some other lib
17:06:00  <creationix>and if you want to work with anything other than local git pack files, you need the network code and network protocols as well
17:06:10  <creationix>by it-self is useless
17:06:19  <creationix>all it tells you is how many objects are in a local pack file
17:06:24  <thl0>just keep 'em availabe separately so people can develop on it separately and bundle them for your case is all I'm saying
17:06:34  <creationix>right, I agree
17:06:50  <thl0>creationix: not useless if some other lib could make use of it
17:06:55  <Wraithan>creationix: I understand your individual want to make it easier to develop js-git on ChromeOS but I disagree that it is generally an advantage. I use git extensively, so do most people at my company and lots of other people, the vast majority never ever opening up the git source
17:06:56  <creationix>I'm saying that this particular case, it's better to develop together since they are either rarely or never used standalone
17:07:22  <creationix>Wraithan: also I want to develop other apps on chromeos
17:07:34  <creationix>the same problems that I face developing js-git, I'd have developing any other project
17:07:36  <Wraithan>More likely to be useful to people who want to do development on chromeos, is a github app-like thing
17:07:42  <thl0>creationix: ok, but just for these rare case we should keep'em separate and only iterate on them in one place (not somewhere inside your git project)
17:08:00  <creationix>thl0: sorry I don't understand
17:08:12  <creationix>thl0: I truly don't get how independent repos is easier for anyone
17:08:24  <creationix>it's not like I'm putting hundreds of files in one repo
17:08:40  <creationix>I'm just putting a few highly inter-related git modules in one package
17:08:42  <thl0>b/c if I just need pack, I'll wanna be able to just depend on pack
17:08:52  <creationix>thl0: but why?
17:08:56  <thl0>if I find a bug in pack, I only wanna look at the pack repo
17:09:02  <creationix>disk space, network bandwidth, loading time?
17:09:12  <creationix>look at the pack file in the js-git repo
17:09:19  <creationix>you don't have to open any other files
17:10:15  <thl0>creationix: apply this: http://thlorenz.github.io/module-driven-development/#/1/5 to packages
17:10:37  <thl0>the modules should be in separate repos so they can be managed in isolation
17:11:13  <creationix>yeah, saw your slides and I agree
17:11:13  <thl0>creationix: let's just agree to disagree at this point - you got my input ;)
17:11:24  <creationix>I'm a IOD developer
17:11:29  <creationix>(Interface Oriented Development)
17:12:31  <thl0>creationix: I totally see where you are coming from, it's just that I find isolation into repos more important and worth facing some challenges
17:12:58  <creationix>I guess I just have different experience
17:13:07  <creationix>I find creating new repos very expensive
17:13:20  <creationix>and not very helpful for tiny inter-related stuff
17:13:27  <thl0>so we are not that far apart in our opinions, it's just you weigh ease of development (since you feel like having separate repos will be challenging) higher
17:13:41  <thl0>got it
17:13:57  <creationix>now I'd really like feedback from chrisdickinson ;)
17:14:05  <creationix>I guess he's busy with day job today
17:14:08  <creationix>or on holoday
17:14:11  <creationix>*holiday
17:14:25  <creationix>it is memorial day after all
17:14:57  <thl0>I hope that the discussion on the gist will convince you of B otherwise chrisdickinson will most likely be very sad ;-;
17:15:02  <creationix>I find it interesting that all the people pushing for many repos are heavy npm users, and everyone else is not a npm user
17:15:34  <thl0>no coincidence since you need a good package manager to efficiently do that
17:15:55  <creationix>the sad part is I've spent more time trying to align his code with my requirements than I've spent actually developing git
17:15:56  <thl0>npm is the enabler for proper module driven development
17:16:05  <creationix>thl0: yep
17:16:22  <creationix>someday we'll have proper modules, packages and tools for other environments
17:16:49  * mikealquit (Quit: Leaving.)
17:17:02  <thl0>creationix: anyhoo will have some lunch now, enjoyed our discussion though :)
17:17:08  <creationix>:)
17:17:21  <Wraithan>creationix: Likely, he isn't awake yet
17:17:39  * thl0quit (Remote host closed the connection)
17:18:14  <jjjjohnn1y>why can't I do [1,2,3,4,5].reduce(Math.max)?
17:18:16  <Wraithan>creationix: He was marathoning the new Arrested Development last night
17:18:50  <jjjjohnn1y>but I can do [1,2,3,4,5].reduce(function(x,i){return Math.max(x,i)})
17:19:29  <creationix>jjjjohnn1y: because reduce sends more than two arguments to Math.max?
17:19:43  <jjjjohnn1y>hmm
17:19:48  <creationix>hmm, or now
17:19:50  <creationix>*not
17:20:10  <jjjjohnn1y>i swrrr i seen it written out like that in a substack module
17:20:28  <jjjjohnn1y>must have been a different math method
17:20:32  <creationix>no, I was right
17:20:36  <creationix>the mdn docs are just wrong
17:20:52  <creationix>run `[1,2,3].reduce(console.log)` in node
17:20:55  <creationix>it passes 4 args
17:21:35  <creationix>[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){ return previousValue + currentValue; });
17:22:00  <jjjjohnn1y>you are correct
17:22:14  <creationix>I hit that problem all the time with forEach and map
17:22:24  <Wraithan>creationix: they aren't wrong, it passes 4 args, that seems right
17:22:32  <creationix>I'll pass .map(JSON.parse) or something and JSON.parse will get confused by the extra args
17:22:53  <creationix>Wraithan: I mean the Syntax section at the top "array.reduce(callback[, initialValue])"
17:22:57  <creationix>https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce
17:23:17  <creationix>or no, I read them wrong
17:23:27  * creationixhides in shame
17:23:28  * mikealjoined
17:23:46  <Wraithan>I mean I'll readily bother my co-workers to fix/accept changes to wrong stuff on mdn, which is why I checked :)
17:24:52  <jjjjohnn1y>seems like they should make all that just work
17:25:27  <Wraithan>history is probably a reason why they wont
17:25:43  * shuaibquit (Ping timeout: 264 seconds)
17:25:58  <jjjjohnn1y>"Well they did it wrong in the past, so lets just put history on repeat forever"
17:26:16  * AvianFlujoined
17:26:31  <jjjjohnn1y>those website made in the 90s
17:26:44  <jjjjohnn1y>they have to work forever
17:27:00  <jjjjohnn1y>*forks javascript*
17:27:20  <creationix>jjjjohnn1y: and how would you fix it? Remove features from Array.prototype.*
17:27:20  <jjjjohnn1y>j/k i dont know anything
17:27:43  * creationixdid design a js replacement language :P
17:28:14  <jjjjohnn1y>creationix: what did it look like
17:28:29  <creationix>https://github.com/creationix/jack/blob/master/samples/gamepad.jk
17:29:10  <jjjjohnn1y>lol .jk
17:29:29  <jjjjohnn1y>i like the multiple of vars
17:32:03  * yorickjoined
17:33:55  * shuaibjoined
17:38:36  * cianomaidinquit (Quit: cianomaidin)
17:41:38  <jjjjohnn1y>coming soon to npm a decent waveform visualizer http://i.imgur.com/qj6HJNv.png
18:10:39  * stagasjoined
18:12:40  <jjjjohnn1y>how to 0.0 - 1.0 normalize any value range
18:13:13  <jjjjohnn1y>including ranges in the 0.00X
18:14:39  * mcollina_quit (Ping timeout: 245 seconds)
18:14:52  * cianomaidinjoined
18:18:58  * jcrugzz_joined
18:18:58  * jcrugzzquit (Ping timeout: 246 seconds)
18:19:42  * AvianFluquit (Remote host closed the connection)
18:20:50  <creationix>jjjjohnn1y: Math.max(Math.min(n, max), min)
18:20:56  <creationix>put in 0 for min and 1 for max
18:21:12  <creationix>oh, you meant normalize, not clamp
18:21:30  <chrisdickinson>wow, irc just wouldn't stopping sounding the bell when i logged in :)
18:21:38  <creationix>lol
18:22:28  <creationix>jjjjohnn1y: assuming your range goes from 0-someMax it's simple value / someMax
18:24:00  * jcrugzz_changed nick to jcrugzz
18:28:43  * shuaibquit (Ping timeout: 264 seconds)
18:31:25  * shuaibjoined
18:32:19  * mcollinajoined
18:33:29  * cianomaidinquit (Quit: cianomaidin)
18:36:13  * Correnjoined
18:38:56  * thl0joined
18:44:56  <Raynos>defunctzombie: https://github.com/Colingo/global
18:45:11  <Raynos>defunctzombie: https://github.com/Colingo/global/blob/master/package.json#L9 Am I doing it right?
18:52:30  * shamajoined
19:02:34  * shuaibquit (Ping timeout: 245 seconds)
19:06:28  * shuaibjoined
19:10:11  * st_lukejoined
19:23:08  <substack>watching this is just sad https://www.youtube.com/watch?v=o9Xo_WFAyqg
19:23:13  <substack>re-inventing npm for no reason
19:23:23  <substack>they even *use* npm twice to install some shit
19:25:13  <thl0>substack: that is really sad especially since most of the features they show come built into npm already
19:25:37  <thl0>i.e. min 22:53
19:27:56  * Correnquit (Quit: Textual IRC Client: http://www.textualapp.com/)
19:28:07  * shuaibquit (Ping timeout: 264 seconds)
19:28:10  <Wraithan>oh, that speaker, I met him a few weeks ago
19:28:25  <Wraithan>He and his company are contracting for Mozilla right now
19:28:57  <thl0>Raynos: do I need xtend if I'm only in nodejs or is there something built in that I'm missing?
19:29:12  <Raynos>thl0: ?
19:29:29  <thl0>well is there an xtend somewhere hidden in util or somewhere?
19:29:30  <Raynos>there is xtend and require("util")._extend
19:29:31  * Correnjoined
19:29:44  <Wraithan>He's from portland
19:29:47  <thl0>ah I'll use _extend then just spiking anywhays
19:29:58  <thl0>why is that not a public function?
19:30:13  <Raynos>because
19:30:24  <thl0>ah that explains it ;)
19:30:41  <Raynos>substack: "Plus, learn about the useful integrations with Yeoman, Grunt, RequireJS, and NPM."
19:30:42  * Correnquit (Client Quit)
19:30:49  <Raynos>only useful tool mentioned in entire talk is "NPM"
19:31:29  * kenperkins_joined
19:31:53  <st_luke>substack: people using grunt makes me sad
19:32:07  <thl0>st_luke: ditto that
19:32:09  <st_luke>we get so many npm issues related to grunt
19:32:42  <thl0>st_luke: just use a f*cking function and call that from an npm script or use make if you have to
19:33:04  <Wraithan>eh
19:33:07  <Wraithan>make is garbage
19:33:14  <Wraithan>it may be garbage that everyone has built on top of
19:33:15  <thl0>Wraithan: ?
19:33:21  <st_luke>thl0: you can say 'fucking' in here :)
19:33:39  <thl0>I know, just trying to stay friendly although grunt truly pisses me off ;)
19:33:49  * shuaibjoined
19:34:05  <Raynos>noobs gonna noob.
19:34:09  <Wraithan>make is basically write only, it requires looking up various syntax pretty much every time, etc
19:34:23  <Wraithan>I consider tech like that garbage
19:34:27  <Wraithan>it makes the world worse
19:34:47  <st_luke>grunt isn't really a good solution when people can't even get it installed
19:34:59  <Wraithan>Also, I've never used grunt
19:35:16  <Wraithan>I just know the want for a better make, I use alternatives in python all the time
19:35:32  <thl0>Wraithan: just use npm scripts
19:35:40  <Wraithan>Sure
19:35:47  <Wraithan>I just learned about them, they are nice
19:36:02  <thl0>that's why I said "use make IF you have to"
19:36:20  <thl0>and if you have too, your module is prob. doing too much
19:36:23  <Wraithan>I am actually leveraging the package.json stuff for my irc bot (language agnostic so not using npm)
19:36:39  <Wraithan>So I am learning about all sorts of nice features
19:38:17  * blobaumjoined
19:43:35  * dominictarrjoined
19:44:06  * shuaibquit (Read error: Connection reset by peer)
19:45:59  * shuaibjoined
19:58:01  * kenperkins_changed nick to kenperkins
20:04:30  <substack>dominictarr: https://github.com/substack/stream-handbook#html-streams-for-the-browser-and-the-server
20:04:47  <substack>how hard would it be to replace slice-file with leveldb/tacodb in this example?
20:04:49  * shuaibquit (Ping timeout: 248 seconds)
20:06:08  <dominictarr>pretty easy
20:06:09  <substack>or this example is very similar and shows how to build a twitter-style feed with both realtime updates and on-demand loading https://github.com/substack/hyperspace#example
20:06:12  <substack>oh sweet
20:06:33  <dominictarr>juliangruber has a module, level-store
20:06:40  <dominictarr>which that would be a small pr to
20:07:14  <juliangruber>dominictarr substack i actually planned to write a slice-file based on level-store :D
20:07:26  <juliangruber>it just needs the same kind of indexes
20:07:46  <substack>AWESOME
20:08:02  <substack>all these pieces are coming together very nicely
20:08:22  <substack>dominictarr: so pretty much it will be very easy to build a realtime, eventually consistent twitter
20:08:31  <substack>that is inherently distributed
20:08:31  * shuaibjoined
20:08:35  <substack>with a pretty ui
20:08:44  <substack>in an absurdly small amount of code using tiny modules
20:08:49  <dominictarr>yes!
20:09:01  <dominictarr>and then we just need replication for it...
20:09:14  <dominictarr>so that you can pull your feed down from mutual followers
20:11:38  <dominictarr>oh, I wrote one with an ugly example here https://github.com/dominictarr/level-twitter-example
20:12:14  <dominictarr>it doesn't have enough tiny-module elegance, though.
20:12:21  <dominictarr>http://happybearsoftware.com/you-are-dangerously-bad-at-cryptography.html
20:12:30  <dominictarr>^ the link at the end looks promising
20:14:55  * no9quit (Ping timeout: 264 seconds)
20:17:30  <substack>I was talking with some folks in west oakland around a campfire about exactly this last night
20:17:56  <dominictarr>eating… back soon
20:22:44  * st_lukequit (Remote host closed the connection)
20:40:08  <shama>grunt !== yeoman... just saying :)
20:41:15  <substack>shama: I don't think grunt is so bad, just not something I would use
20:41:32  <substack>yeoman is all about scaffolding and I think scaffolding is a flawed idea
20:42:14  <shama>substack: which is great that the yeoman team is taking over all that for us heh :)
20:43:39  <substack>instead of writing programs to generate boilerplate, just get rid of the boilerplate
20:43:46  <substack>using modularity
20:44:03  <shama>i guess my only defense of grunt is cowboy never intended for it to explode like it did and get pulled in all the directions that it is... fwiw, were trying to fix it.
20:46:32  <substack>if I have a lot of tasks that I need to do I just mkdir bin
20:46:39  <substack>and put shell scripts and whatever in there
20:48:02  <shama>yeah following your guys' examples with voxel, Ive been trying to make more smaller modules and in turn end up using less build tools.
21:15:57  <dominictarr>back
21:16:09  <Raynos>isaacs: your pr thing in your dotfiles uses https
21:16:20  <dominictarr>and, just for the record, Barcelona is awesome
21:19:05  <Wraithan>There appears to be a lot of CLI toolkits, any recommended setup for getting user input, including passwords without exposing the text?
21:19:16  <Wraithan>`readline` doesn't appear to include this
21:19:39  * stagasquit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner])
21:25:58  <Wraithan>hmmm commander.js seems alrigh
21:34:58  * dominictarrquit (Quit: dominictarr)
21:41:47  * nicholasfjoined
21:43:04  * ins0mniaquit (Ping timeout: 276 seconds)
21:46:20  * thl0quit (Remote host closed the connection)
22:02:29  * shuaibquit (Read error: Operation timed out)
22:04:39  * shuaibjoined
22:07:28  <jesusabdullah>cool I might have finally found someone to help take care of my storage unit
22:07:33  <jesusabdullah>maybe
22:09:09  * shuaibquit (Client Quit)
22:09:20  <pkrumins>what are you storing?
22:12:30  * timoxleyjoined
22:21:30  * jibayjoined
22:28:09  <owen1>guys, i currently use grunt for watching my .styl files and compile them to css and also watching my app.js file and browserify it. if i want to get rid of him, should i put 2 js files in the bin folder with f.watch?
22:28:50  <Wraithan>I currently use nodemon for stuff like that
22:29:35  <Wraithan>Which is not to say that is the right way, just that is the way I do it
22:35:05  <owen1>Wraithan: nice. it's the same as supervisor
22:35:27  <owen1>i wonder how hard it is to use fs.watch instead.
22:35:44  <shama>owen1: You can try https://npmjs.org/package/eye It uses gaze which is the same lib grunt watch uses. So if you want to watch files based on minimatch patterns. Not as established as nodemon though
22:38:51  <Wraithan>owen1: I use it for running tests/linters during work in my python projects, as well as rebuilding things like .styl files
22:39:18  <owen1>Wraithan: sounds perfect. let me see
22:39:33  <Wraithan>projects that run their tests in <10s it is reasonable to run there tests on every file save so you can just look at the window they are running in and know if you have borked everything or not
22:41:14  * purrquit (Remote host closed the connection)
22:41:21  * purrjoined
22:42:03  * purrquit (Remote host closed the connection)
22:42:10  * purrjoined
22:43:17  <owen1>Wraithan: does nodemon compile your styl files AND restart your server?
22:44:26  <Wraithan>Point nodemon at a script that does that
22:47:42  * nicholasfquit (Remote host closed the connection)
22:54:03  * yorickquit (Remote host closed the connection)
23:01:06  <isaacs>Raynos: what about it?
23:08:08  * mcollinaquit (Remote host closed the connection)
23:14:54  * thl0joined
23:16:11  * AvianFlujoined
23:18:17  <owen1>Wraithan: nodemon is nice. i created bin/restart-dev.sh and inside i have the browserify command and i'll look for the stylus commond now. the only issue is it's a bit annoying to run - nodemon -e js,css,html --exec bin/restart-dev.sh server.js do u put this in the bin folder as another .sh file?
23:21:49  * rannmannquit (Remote host closed the connection)
23:29:56  <Wraithan>I run my projects in tmux, and use pytmux to run them. Which sets up my env
23:39:07  <rowbit>/!\ GitHub user "dfellis" is supporting Testling with the testling_supporter_5 plan! $5/month. Cash money!
23:42:42  <owen1>Wraithan: so your tmux added the bin folder to your path? so you can run your server by typing start.sh ? (or whatever u named the bash script that runs nodemon -e bla bla
23:42:50  <Wraithan>no
23:42:55  <Wraithan>it starts everything up for me
23:43:04  <Wraithan>in various tmux windows
23:43:19  <owen1>right. i use tmux as well.
23:43:52  <owen1>what command do u run to start your dev server? after u are inside one of the windows?
23:44:06  <owen1>there is no need for question mark at the end
23:44:25  <Wraithan>owen1: you didn't read, I said I use pytmux to start tmux for me with everything running
23:44:41  <jesusabdullah>I use teej's "mon" thing
23:44:46  <jesusabdullah>does the job
23:44:47  <jesusabdullah>!
23:44:59  <Wraithan>owen1: https://pytmux.readthedocs.org/en/latest/usage.html
23:45:02  <jesusabdullah>mon -d 'npm start #tag'
23:45:14  <owen1>jesusabdullah: i used it before. mon + mongroup but switched to forever (on prod)
23:45:15  <jesusabdullah>ps aux | grep tag
23:45:23  <jesusabdullah>I heard mongroup was not so good
23:45:37  <jesusabdullah>I don't like forever personally
23:45:59  <owen1>with forever i can have many process running and one command to monitor them
23:46:17  <owen1>with mongroup, i need to find each of my project's folders and run mongroup.
23:46:52  <jesusabdullah>what I *should* do is, uhh
23:46:55  <jesusabdullah>upstart
23:46:59  <jesusabdullah>and/or systemd
23:47:15  <jesusabdullah>I'm attracted to systemd but upstart is what's in unbuntuo
23:47:55  <owen1>debian is not using upstart and i prefer it.
23:48:00  <owen1>(prefer debian)
23:48:29  <owen1>can u run debian on most clouds today? or is it ubuntu
23:55:20  <jesusabdullah>ubuntu is what I'm usin'
23:55:26  <jesusabdullah>it's lowest common denominator these days
23:55:41  <jesusabdullah>so for servers it's that or fedora as far as I'm concerned