00:02:58  * isaacsquit (Remote host closed the connection)
00:05:30  * isaacsjoined
00:07:58  <SubStack>jesusabdullah: https://github.com/NaturalNode/node-lapack
00:08:27  <SubStack>as per that email thread
00:08:37  * xaqquit (Remote host closed the connection)
00:09:19  <jesusabdullah>SubStack: I see!
00:09:35  <jesusabdullah>"sgeqrf"
00:09:42  <jesusabdullah>Gotta love lapack function names
00:09:55  <jesusabdullah>They're like, parts codes
00:10:04  <jesusabdullah>each letter or two means something
00:10:18  <jesusabdullah>cause there are like 30 of these functions that do mostly the same thing but with special cases
00:10:34  <jesusabdullah>like, "non-sparse, square", stuff like that
00:10:42  * blakmatrixquit (Read error: No route to host)
00:11:13  * _sorensenquit (Read error: Operation timed out)
00:13:17  * blakmatrixjoined
00:18:42  * hij1nxquit (Ping timeout: 248 seconds)
00:19:03  * hij1nxjoined
00:19:12  * py1honjoined
00:23:22  * shykeschanged nick to zz_shykes
00:33:53  * rannmannquit (Ping timeout: 240 seconds)
00:35:42  <jesusabdullah>I say SubStack, do you like professional sports?
00:36:45  * _sorensenjoined
00:36:53  * misterinterruptjoined
00:37:42  <SubStack>why, I love that local sports team!
00:38:14  <jesusabdullah>oh but they're not as good as ythey USED to be!
00:38:35  <jesusabdullah>I gotta remember that "hot" line
00:38:50  <jesusabdullah>"there's a lot of buzz that you're HOT even though you've just started!"
00:39:28  * captain__joined
00:41:54  * captain_morganquit (Ping timeout: 244 seconds)
00:42:06  * misterinterrupt1joined
00:43:27  * misterinterruptquit (Ping timeout: 244 seconds)
00:58:44  <rowbit>Hourly usage stats: []
01:13:01  * zz_shykeschanged nick to shykes
01:20:35  * ITproquit (Ping timeout: 246 seconds)
01:31:58  * captai___joined
01:35:42  * captain__quit (Ping timeout: 252 seconds)
01:44:36  * _sorensenquit (Quit: _sorensen)
01:44:37  * hij1nxquit (Quit: hij1nx)
01:51:07  * captain_morganjoined
01:52:40  * captai___quit (Ping timeout: 256 seconds)
01:56:53  * shykeschanged nick to zz_shykes
01:58:44  <rowbit>Hourly usage stats: []
02:17:21  * isaacsquit (Remote host closed the connection)
02:22:37  * isaacsjoined
02:23:03  * isaacsquit (Remote host closed the connection)
02:26:16  * stlsaintjoined
02:34:37  * misterinterrupt1quit (Ping timeout: 256 seconds)
02:39:39  * ryan_stevensquit (Quit: Leaving.)
02:58:38  <jesusabdullah>SubStack: https://github.com/Constellation/escodegen This is neat!
02:58:44  <rowbit>Hourly usage stats: []
02:58:54  <jesusabdullah>SubStack: Would be cool if uglifyjs used the same AST
03:03:24  * blakmatrix1joined
03:05:34  * blakmatrixquit (Ping timeout: 246 seconds)
03:07:49  * stlsaintquit (Quit: leaving)
03:09:23  <SubStack>jesusabdullah: esprima uses that ast format
03:09:28  <SubStack>it's what falafel uses
03:13:04  <maxogden>WASSSUPPP
03:13:04  <LOUDBOT>A HARD MAN IS GOOD TO FIND.
03:13:07  <maxogden>im hackin at my where haus
03:15:35  * stlsaintjoined
03:18:00  <jesusabdullah>SubStack: even better!!!
03:20:16  <rowbit>SubStack, pkrumins: Encoders down: 50.57.223.161(free5)
03:20:44  <jesusabdullah>SubStack: They link to falafel on the esprima front page
03:20:54  <jesusabdullah>SubStack: What was your use case for falafel anyway, ooc?
03:23:59  <jesusabdullah>wow, this is pretty sweet
03:26:23  <jesusabdullah>SubStack: Does falafel emit an event when it's done traversing?
03:28:39  <jesusabdullah>oh wait, it traverses synchronously so you should be able to monitor that yourself
03:29:13  <jesusabdullah>Neat.
03:29:35  * farnsworthquit (Ping timeout: 256 seconds)
03:30:06  <jesusabdullah>dastardly even
03:30:50  * farnsworthjoined
03:48:03  <SubStack>maxogden: warehousery!
03:48:38  <SubStack>releasing some more modules
03:48:43  * SubStackon a module sprint this week
03:49:42  <SubStack>whoa! http://blogs.wsj.com/deals/2012/06/11/facebook-absorbs-team-at-mobile-software-firm-pieceable/
03:49:45  <SubStack>I know those folks
03:58:44  <rowbit>Hourly usage stats: []
04:03:08  * captain__joined
04:05:51  * captain_morganquit (Ping timeout: 256 seconds)
04:07:28  * stlsaintquit (Quit: leaving)
04:10:32  <SubStack>mo' modules
04:10:33  <SubStack>https://github.com/substack/pkginit
04:12:46  <guybrush->oh this seems very usefull
04:12:58  * stlsaintjoined
04:14:21  <SubStack>also this https://github.com/substack/node-editor
04:16:02  <guybrush->id dont get the editor thing :D whats that for
04:16:14  <SubStack>it launches $EDITOR
04:16:17  <SubStack>like vim or whatever
04:16:33  <SubStack>so you can let the user edit a file and then get back to doing stuff
04:16:40  <SubStack>check out `pkginit edit`, it uses editor
04:16:55  <guybrush->ah ok i see the usecase
04:19:44  <guybrush->HA! that is awesome https://github.com/dscape/futoncli
04:19:49  <guybrush->i mean the link to codestream
04:20:43  * _sorensenjoined
04:21:54  <guybrush->futoncli itself is actually awesome too
04:22:52  * captain__quit (Remote host closed the connection)
04:26:47  * blakmatrix1quit (Quit: Leaving.)
04:27:26  <SubStack>biking up to berkeley to get some real work done
04:27:30  <SubStack>enough silly modules for today
04:27:35  * blakmatrixjoined
04:37:48  * tm604part
04:39:39  * tilgovijoined
04:58:46  <rowbit>Hourly usage stats: []
04:59:41  * captain_morganjoined
05:26:28  * captain_morganquit (Ping timeout: 248 seconds)
05:34:42  * captain_morganjoined
05:36:12  * _sorensenquit (Quit: _sorensen)
05:38:18  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.114(dev)
05:42:40  * blakmatrix1joined
05:45:37  * blakmatrixquit (Ping timeout: 256 seconds)
05:47:00  * blakmatrix1quit (Client Quit)
05:47:15  * blakmatrixjoined
05:56:05  * isaacsjoined
05:56:14  <isaacs>SubStack: I think this is unnecessary: https://github.com/substack/node-editor/blob/master/index.js#L14
05:56:31  <isaacs>SubStack: if you share [0,1,2] then vim will open the stdin for you
05:56:34  <SubStack>isaacs: when I take that out it just hangs
05:56:40  <isaacs>SubStack: if you share [0,1,2] then vim will open the stdin for you/
05:56:45  <SubStack>supposedly!
05:56:51  <SubStack>I actually ripped that from npm in the first place
05:56:53  <isaacs>i meant to type: "really?
05:56:54  <SubStack>the 0,1,2 thing
05:57:03  <isaacs>i'm using the irssi
05:57:15  <isaacs>it's something like my first few times using vim
05:57:21  <isaacs>but irssi is no vim, that's for sure
05:57:32  * SubStacka long-time irssi user
05:57:45  <isaacs>how do you scroll up?
05:57:50  <SubStack>pgup
05:57:53  <isaacs>hm...
05:58:17  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
05:58:38  <SubStack>isaacs: oh wait you're right
05:58:46  <rowbit>Hourly usage stats: []
05:58:55  <SubStack>my thinking that stdin.pipe() is necessary is probably how I was fiddling with it when it was part of pkginit
05:59:01  <SubStack>and there was lots of other stuff going on
05:59:15  <SubStack>easy to fall into magical thinking when there's a lot going on
05:59:22  <isaacs>ahhhh
05:59:31  <isaacs>it takes the fn-key on this keyboard.
05:59:33  <isaacs>Function.
05:59:36  <isaacs>Function is the key.
06:00:14  <SubStack>++
06:00:22  <isaacs>SubStack: yeah, actually, you're piping stdin to a child process, not to a stream
06:00:45  <isaacs>if anything, you'd want to pipe process.stdin to child.stdin, but that will not do anything, because you did customFds[0,1,2], so there IS no child.stdin
06:01:37  <isaacs>anyway, this is nice. i'm gonna use it.
06:01:44  <SubStack>updated
06:01:49  <SubStack>also this: http://2.bp.blogspot.com/-bDgr2RPldjk/T8FSlTDnxJI/AAAAAAAABQA/Ycsn1EZWtL0/s1600/a980a3d1_I_Have_No_Idea_What_I_m_Doing.jpeg
06:01:59  <isaacs>also, it'd be good to default to notepad.exe on Windows, and check env.VISUAL as well
06:02:11  <SubStack>is this even right? (process.stdin.setRawMode || tty.setRawMode)(mode);
06:02:20  <isaacs>yeah
06:02:21  <SubStack>whatever the new thing is going to be
06:02:31  <SubStack>right
06:02:39  <isaacs>we should probably just have process.stdin.setRawMode do the right thing
06:02:44  <isaacs>but tty.setRawMode is more correct
06:03:01  <isaacs>setting raw mode on the stream is less actually what's happening.
06:03:30  <SubStack>what's process.platform on windows?
06:03:48  <isaacs>win32
06:04:39  <SubStack>even if it's 64 bit?
06:04:46  <isaacs>yeeeahh...
06:04:50  <isaacs>it's still win32
06:05:00  <isaacs>but os.arch() is x64 in that case
06:05:05  <SubStack>oh I see
06:05:09  <SubStack>what is this even: 'linux2'
06:05:09  <isaacs>windows is weird.
06:05:14  <SubStack>the docs say that is a thing
06:05:19  <isaacs>yeah
06:05:21  <SubStack>but on my node it's just 'linux'
06:05:28  <isaacs>i dunno
06:05:53  <SubStack>I'm just going to /^win/.test() and everything else can be vim
06:06:13  <guybrush->its next-gen-linux for sure! alien-incorporated technology
06:06:21  <isaacs>yes, linux2 is a thing
06:07:23  <isaacs>most linuxes are "linux"
06:07:29  <isaacs>i guess linux2 is twice as much?
06:09:30  <isaacs>ohhh, man
06:09:56  <SubStack>anyways all updated
06:10:02  <isaacs>this is wild. the npm working dir on this machine has an "index.js" that loads "src/bootstrap.js"
06:10:03  <SubStack>notepad for winders
06:10:26  <isaacs>var http = require("/http.js");
06:10:26  <isaacs>node.mixin(require("./utils.js"));
06:10:40  <isaacs>getting all nostalgic finding this old code
06:10:55  <SubStack>mixins what
06:11:58  <isaacs>https://gist.github.com/2922176
06:14:18  <isaacs>and a flow control module: https://gist.github.com/2922179
06:17:55  * captain_morganquit (Ping timeout: 256 seconds)
06:18:29  * captain_morganjoined
06:20:16  <chapel>sounds like marak might be upset about something?
06:20:41  <chapel>https://twitter.com/marak/status/212790598451740672
06:21:15  <isaacs>there can be more than one of things.
06:21:19  <SubStack>beh schemas
06:21:23  <SubStack>also that
06:21:32  * ryan_stevensjoined
06:21:50  <SubStack>anyways the genesis of that module was more in talking with isaacs and dominictarr
06:22:02  <isaacs>and i've been telling everyone to do that for 2 years now.
06:22:29  <chapel>SubStack: yeah, I saw some of it in #node.js
06:22:43  <chapel>who cares if there are multiple anyways
06:22:46  <chapel>let the best one win :P
06:22:55  <chapel>npm wasn't the only package manager at the time
06:23:07  <chapel>and at one time probably wasn't the most popular
06:23:18  <isaacs>it was pretty popular pretty early on
06:23:32  <isaacs>because i had no job, and lots of time to send every node project a pull req with a package.json
06:23:51  <chapel>yeah
06:23:57  <isaacs>kiwi was also quite popular
06:24:02  <isaacs>and had a much nicer cli
06:24:16  <chapel>npm just made since
06:24:19  <chapel>simpler was better
06:24:22  <isaacs>mode was never a real thing, which is a bit of a shame, because it had an interesting value prop.
06:24:32  <jesusabdullah>mode?
06:24:35  <isaacs>yeah
06:24:49  <isaacs>it was a node package manager that used git and github as the backing store.
06:24:49  <jesusabdullah>I don't remember that one
06:24:52  <jesusabdullah>hmm
06:24:55  <jesusabdullah>interesting
06:25:04  <jesusabdullah>not the worst idea, but glad that was iterated upon
06:25:07  <isaacs>https://github.com/rsms/mode
06:25:07  <chapel>well npm does that :P
06:25:22  <isaacs>chapel: but, like, in a more organized fashion, and only as that
06:25:25  <chapel>I know
06:25:31  <chapel>hence the :P
06:25:48  <isaacs>Provide a standard index of known modules.
06:25:51  <isaacs>"Provide a standard index of known modules.
06:26:01  <isaacs>that was the part that made mode fail, i think
06:26:05  <SubStack>anyways ideas are crazy overrated
06:26:08  <isaacs>too hard to keep up.
06:26:14  <SubStack>working implementations talk
06:26:31  <chapel>SubStack: the thing I love about what you do, is that most times you really don't know what you're doing, you just do it
06:26:35  <chapel>and figure it out, or make it work
06:26:37  <isaacs>working implementations show that you've actually had the idea all the way through. having an idea doesn't show that.
06:27:09  <chapel>you really should blog about your process, and how just making stuff work is awesome
06:27:40  <chapel>it could be inspirational as well, a lot of people are afraid to make something because it might suck or fail
06:27:49  <chapel>but that doesn't really matter
06:27:53  <isaacs>inspiration: also crazy overrated.
06:28:08  <isaacs>most people think they want to be inspired, but really, they just sort of wish they were less lazy.
06:28:12  <isaacs>inspiration looks like work.
06:28:25  <chapel>isaacs: very true
06:28:47  <isaacs>most of making cool stuff is cranking through the implementation so that you can FIND ideas that are interesting.
06:28:49  <jesusabdullah>I have too many good ideas as it is
06:29:07  <SubStack>cranking through implementations fast enough also helps
06:29:53  <chapel>isaacs: for me it is similar to having an idea about how to do something, but in actually making it, you find it is either more complicated or less than you envisioned, but it is that process that is important, not coming up with the idea itself
06:30:14  <isaacs>yeah
06:30:20  <chapel>SubStack: maybe you could create a real agile method
06:30:25  <isaacs>the faster you crank, the more solution space you can explore.
06:30:57  <SubStack>damn marak is angry I guess?
06:31:17  <dominictarr>hes probably just stressed.
06:31:17  <SubStack>plenty of solution space for everybody
06:31:21  <chapel>when is he not angry?
06:31:23  <chapel>:P
06:31:27  <chapel><3 marak
06:31:35  <SubStack>walking the ast to do in-place edits is a radically different approach from schema files
06:31:53  <jesusabdullah>he wanted to work with you
06:32:06  <jesusabdullah>otherwise he wouldn't have talked to you about it
06:32:14  * captain_morganquit (Ping timeout: 244 seconds)
06:32:18  <SubStack>work with how?
06:32:21  <SubStack>I don't really do that
06:32:23  <SubStack>I just build things
06:32:25  <isaacs>hahahahahaha
06:32:33  * jesusabdullahrolls his eyes.
06:32:33  * captain_morganjoined
06:32:37  <isaacs>SubStack's monitor is WAY too small for pairing.
06:32:42  <chapel>haha
06:33:31  <chapel>jesusabdullah: do you think marak is justified in being upset?
06:33:38  <jesusabdullah>I'm not getting into it.
06:33:44  <jesusabdullah>I've already said too much.
06:33:44  <chapel>okay fair enough
06:33:54  <chapel>best not to
06:34:08  <chapel>all I can say is, we don't need any strife
06:34:10  <chapel>node is <3
06:38:03  <isaacs>oh, man, I forgot about the "on" field!
06:38:03  <isaacs>http://static.izs.me/old-npm/commands.md
06:38:12  <isaacs>that was SOOO much a better name for it than "scripts"
06:38:15  <isaacs>fucking commonjs!
06:38:17  <isaacs>srsly!
06:39:17  <SubStack>on?
06:39:20  <isaacs>yeah
06:39:25  <isaacs>like, in your package.json
06:39:25  <jesusabdullah>That's the commonjs spec? Jesus
06:39:36  <isaacs>"on": { "install": "dostuff" }
06:39:43  <isaacs>jesusabdullah: scripts was the commonjs style
06:39:44  <SubStack>haha
06:39:48  <jesusabdullah>ahh
06:39:55  <isaacs>i'd first called it "on"
06:41:11  <SubStack># Node Package Manager
06:41:19  <SubStack>you've been found out!
06:42:42  <isaacs>SubStack: oh, by that time it was already basically established.
06:43:06  <isaacs>SubStack: npm was around in an unarchived state for a few months
06:43:12  <isaacs>i was not as git-addicted as i am now
06:43:47  <isaacs>this was already well into the "written in node" rewrite
06:44:10  <isaacs>also, it wasn't yet living up to its name
06:54:36  * mikealquit (Quit: Leaving.)
06:58:04  * captain_morganquit (Ping timeout: 244 seconds)
06:58:41  <guybrush->ha! another dnode-mem-leak gh-issue :DD
06:58:48  <rowbit>Hourly usage stats: []
07:00:46  <isaacs>SubStack: i'm going to write a competing product to prompter and wizard
07:01:15  <isaacs>SubStack: i'm going to call it promtard
07:01:36  <isaacs>or maybe wizmpter
07:02:09  <isaacs>but srsly, i think that the prompter config files should be do-able without any AST magic.
07:02:40  <isaacs>just evaling in a context where those functions are defined a little bit cleverly, and then walked over as an objecr.
07:02:43  <isaacs>*object
07:03:52  <guybrush->isaacs: i dont want to be annoying about the git-remote-cache PR on npm, but do you thing it will make it into npm somehow? when not my approach then any similar?
07:04:01  <guybrush->*think
07:04:35  <isaacs>guybrush-: yes, i think so
07:04:57  <guybrush->nice, no hurry just wanted to know :p
07:05:02  <isaacs>guybrush-: but probably not before node v0.8.0
07:05:15  <isaacs>guybrush-: also, it might end up being done a bit differently.
07:05:19  <guybrush->im deploying with npm and lots of git-dependencies so its huge win for me
07:05:23  <isaacs>you're right, though, the way npm does git is super naive right now.
07:05:25  <guybrush->cool
07:05:43  <isaacs>for that matter, the way it does couch is even worse, though, and a bigger fish to fry
07:06:02  <guybrush->well it just works fine for now
07:06:36  * mikealjoined
07:06:42  <isaacs>there are a lot of cases where npm still does not take advantage of the fact that tar is not a black box
07:07:40  <chapel>oddball question of the day: if my brother is looking into getting into IT, what is a good one to jump into and learn coming fresh? (thinking specifics like devops, cloud ops, whatever)
07:08:23  <isaacs>chapel: your brother should write a little web app in something.
07:08:29  <isaacs>chapel: doesn't matter what, really.
07:08:33  <chapel>well he doesn't know how to code :P
07:08:36  <isaacs>node, rails, django, whatever.
07:08:46  * stlsaintquit (Quit: leaving)
07:08:46  <isaacs>chapel: ok, so, that's the first problem that it'll address.
07:08:53  <chapel>guess I need to figure out what he would like to go towards
07:08:57  <isaacs>the second is "Wow, keeping services running in real life is a huge pain in the ass"
07:09:08  <chapel>he is thinking IT, like supporting/setting up computers
07:09:16  <isaacs>which will tell you if you should be a developer or a sysops
07:09:20  <chapel>yeah
07:09:44  <isaacs>i mean, there's devops, which is clearly the goal for people who are creating and building things that run on servers.
07:09:51  <chapel>yeah
07:09:53  <isaacs>or "developer anarchy" as some call it
07:09:56  <chapel>lol
07:09:59  <isaacs>but people tend to find their niches
07:10:03  <chapel>Ive been doing some dev ops lately
07:10:10  <chapel>on joyent in fact
07:10:18  <isaacs>kewl
07:10:41  <chapel>but anyways, my brother has been interested in tech, but never really did anything with it
07:11:03  <chapel>just trying to gauge what options he should look at
07:11:14  <chapel>he is considering school and cisco or whatever
07:11:25  <chapel>:(
07:11:31  * tilgoviquit (Remote host closed the connection)
07:12:16  <isaacs>learning how computers work can't possibly hurt if he wants a job anywhere near computers.
07:12:58  <guybrush->the first question is, hardware or software
07:13:02  <isaacs>and when you're young and directionless, that's abuot the only time that society will not frown on you spending all your time drinking and listening to lectures and hitting on college girls.
07:13:25  <isaacs>you do that at 40, and people kinda look at you funny.
07:13:35  <chapel>lol
07:13:39  <chapel>well hes not that young
07:13:43  <chapel>27 now
07:13:45  <chapel>just had a kid
07:13:50  <jesusabdullah>close enough
07:13:53  <isaacs>ah, k, pushin it, then, going to school :)
07:13:57  <chapel>but hes been trying to get a firefighting job, and its just taking forever
07:14:08  <chapel>he went to school for that
07:14:10  <chapel>volunteers
07:14:19  <isaacs>well, it doesn't cost anything but time to learn to code.
07:14:23  <chapel>but jobs are slim to non-existent
07:14:26  <chapel>yeah
07:14:33  <isaacs>and there's lots of courses out there that are also free and only take time and attention
07:14:39  <chapel>hardware is easy, software is always good
07:14:49  <chapel>isaacs: exactly, tons of online courses
07:14:55  <chapel>now is a great time
07:15:23  <isaacs>he should work through zed's "Learn C The Hard Way" book
07:15:34  <chapel>some more context, he got laid off of his job a bit ago
07:15:41  <isaacs>awesomed
07:15:44  <chapel>like a month before they had their baby
07:15:45  <isaacs>i mean, not really
07:15:48  <isaacs>but he can learn to code now
07:15:50  <chapel>so its been hard
07:15:51  <chapel>yeah
07:15:52  <isaacs>movitation + time
07:16:01  <chapel>I actually got the learn c the hard way video course
07:16:05  <guybrush->is it true that companies only search for coders <30?
07:16:08  <chapel>I could let him work through that
07:16:16  <isaacs>learning to program is basically just learning how to use the most powerful tool that humans have for automating effort.
07:16:33  <jesusabdullah>it's maaaagic!
07:16:34  <chapel>isaacs: and a sysops/it guy that knows how to code is a huge win
07:16:44  <isaacs>if it was 1920, and he'd been laid off from a factory, you might suggest that knowing how to read would be useful.
07:16:49  <isaacs>same thing.
07:17:18  <chapel>do you think it would be good to get him started with js and node?
07:17:25  <isaacs>whatever.
07:17:29  <isaacs>anything's better than not learning it.
07:17:33  <chapel>I mean, node is picking up quite a bit
07:17:35  <chapel>I agree
07:17:41  <isaacs>the key is just to get exposed to as many things as possible.
07:17:53  <chapel>learn, and do
07:17:55  <chapel>:)
07:17:57  <isaacs>don't start out saying "JavaScript/python/ruby is ok and easy, but C and C++ is hard and off limits"
07:18:01  <SubStack>and build lots of things
07:18:04  <isaacs>right
07:18:10  <isaacs>working through books is kinda boring
07:18:15  <chapel>I couldn't do books
07:18:18  <chapel>I tried with rails
07:18:20  <chapel>failed
07:18:21  <guybrush->and make lots of failures
07:18:21  <SubStack>yeah I really didn't get a lot out of books either
07:18:24  <isaacs>making stuff is fun. the motivational cycle gets involved.
07:18:24  <chapel>well in fact, lots of books
07:18:30  <SubStack>I don't have the patience for books
07:18:35  <isaacs>++
07:18:44  <chapel>the best Ive learned is by hacking on stuff
07:19:03  <chapel>I spent like a month learning async and callbacks
07:19:09  <chapel>was hard to grasp for me
07:19:24  <chapel>early on that is
07:19:33  <chapel>anyways
07:19:36  <chapel>appreciate the feedback
07:20:00  <chapel>my family considers me a success because I make decent money doing what I do, but they really don't know what I do
07:20:27  <chapel>dad is like "he can watch you work and a few months later he can get a job"
07:20:29  <chapel>lol
07:20:37  <chapel>okay, nuff of me talking to myself
07:20:41  <isaacs>hahah
07:20:46  * ITprojoined
07:21:09  * captain_morganjoined
07:21:21  <guybrush->nowadays the best way to learn programming is spending the whole time on github :D
07:23:16  <chapel>guybrush-: definitely, reading code is probably the best thing that helps me
07:23:32  <isaacs>of course, it's easy for us to underestimate how hard it is to learn to program, now alreayd knowing how.
07:23:55  <isaacs>dtrace is still super intimidating to me.
07:23:56  <guybrush->i consider myself still a noob
07:23:57  <chapel>isaacs: Ive always had the mental model since I first learned the basics of c++ in high school
07:24:19  <isaacs>chapel: right, but "first learned the basics" is like a year long course.
07:24:23  <chapel>isaacs: I really don't know what to do with dtrace, I know it is useful, but how and what :P
07:24:33  <isaacs>i mean, you can get a black belt in a year.
07:24:38  <SubStack>isaacs: a pkginit that doesn't use ast tricks could certainly work
07:24:43  <isaacs>or a pilots' license
07:24:47  <isaacs>if you really work your ass off
07:24:51  <chapel>isaacs: I pounded my head against a borland turbo c++ compiler manual to learn, didn't have the internet or anything
07:25:09  <chapel>guybrush-: Im a well versed noob, don't know much, just know a lot of mistakes
07:25:41  <guybrush->i like to do mistakes, its really not a bad thing
07:25:56  <SubStack>that's odd, my mouse started working again
07:25:57  <guybrush->you learn a lot
07:26:17  <chapel>guybrush-: yeah makes sense
07:26:26  <SubStack>it's been coming and going, not sure if it's a hardware issue or something else
07:26:33  <chapel>if you don't fail, or make mistakes, you won't know how to do it
07:27:23  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
07:27:24  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
07:27:56  * isaacspart ("gnite")
07:28:20  <chapel>okay, Im off, thanks again for the feedback
07:58:46  <rowbit>Hourly usage stats: []
08:05:46  * captain_morganquit (Remote host closed the connection)
08:20:01  * captain_morganjoined
08:21:12  * ryan_stevensquit (Quit: Leaving.)
08:27:24  * blakmatrixquit (Ping timeout: 240 seconds)
08:42:50  <rowbit>SubStack, pkrumins: Encoders down: 50.57.226.209(free4)
08:46:30  * captain_morganquit (Ping timeout: 245 seconds)
08:50:25  * captain_morganjoined
08:52:17  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
08:56:50  * hij1nxjoined
08:57:40  * captain_morganquit (Ping timeout: 248 seconds)
08:58:34  * captain_morganjoined
08:58:46  <rowbit>Hourly usage stats: []
08:59:42  * captain_morganquit (Remote host closed the connection)
09:00:06  * ITproquit (Ping timeout: 246 seconds)
09:00:51  * ITprojoined
09:02:28  * dominictarrquit (Ping timeout: 248 seconds)
09:15:12  * dominictarrjoined
09:17:36  * captain_morganjoined
09:23:13  * captain_morganquit (Ping timeout: 256 seconds)
09:24:02  * captain_morganjoined
09:26:55  * captain_morganquit (Remote host closed the connection)
09:40:47  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie9 (Queue length: 1 on 1 servers. Total servers: 3)
09:44:22  * ckreutzjoined
09:44:40  * ckreutzpart
09:48:17  <rowbit>SubStack, pkrumins: Encoders down: 50.57.223.161(free5)
09:53:17  <guybrush->prompter is a gamechanger!
09:54:19  * hij1nxquit (Quit: hij1nx)
09:56:48  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
09:56:48  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.105(dev-ie8-2)
09:58:46  <rowbit>Hourly usage stats: []
10:01:49  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:07:17  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:12:48  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:17:48  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:23:17  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:28:49  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:34:17  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:39:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 2 on 2 servers. Total servers: 2)
10:45:18  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:50:47  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:52:18  <rowbit>SubStack, pkrumins: These encoders are STILL down: 50.57.174.109(free2)
10:56:21  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
10:58:46  <rowbit>Hourly usage stats: []
11:01:51  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:03:47  <rowbit>SubStack, pkrumins: Encoders down: 50.57.226.209(free4)
11:07:18  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:12:18  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:15:56  * captain__joined
11:17:09  * captain__quit (Remote host closed the connection)
11:17:47  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:23:19  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:28:48  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:31:30  <pkrumins>botting up more ie8s
11:34:17  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:39:18  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:42:50  * hij1nxjoined
11:44:48  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:50:17  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:55:17  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 2)
11:58:46  <rowbit>Hourly usage stats: []
11:59:59  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
12:00:00  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:01:07  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:01:07  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
12:01:43  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
12:01:43  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:02:54  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:02:54  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
12:08:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:13:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:13:36  * hij1nxquit (Quit: hij1nx)
12:18:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:24:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:29:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:35:21  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:40:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:43:50  <rowbit>SubStack, pkrumins: Encoders down: 50.57.223.161(free5)
12:46:21  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:51:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:56:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
12:58:46  <rowbit>Hourly usage stats: []
13:01:52  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:07:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:11:23  * captain_morganjoined
13:12:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:14:22  * captain_morganquit (Remote host closed the connection)
13:17:51  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:23:23  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:28:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:34:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:39:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:44:23  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:45:26  * captain_morganjoined
13:48:06  * captain_morganquit (Remote host closed the connection)
13:49:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:52:20  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.114(dev)
13:52:28  * captain_morganjoined
13:52:50  <rowbit>SubStack, pkrumins: Encoders down: 50.57.174.109(free2)
13:55:24  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
13:58:46  <rowbit>Hourly usage stats: []
14:00:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:05:21  * rannmannjoined
14:05:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:10:03  * xaqjoined
14:10:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:11:46  * xaqquit (Read error: Connection reset by peer)
14:12:18  * xaqjoined
14:15:58  * wiwilliajoined
14:16:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:17:55  <niftylettuce>ROWBIT ROW YOUR BOOAT
14:17:57  <LOUDBOT>TODAY IS OPPOSITE DAY LOL
14:21:54  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:27:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:32:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:33:27  * hij1nxjoined
14:37:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:42:53  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:44:56  * rannmannquit (Read error: Connection reset by peer)
14:45:09  * rannmannjoined
14:46:03  * dsfadfjoined
14:46:03  * rannmannquit (Read error: Connection reset by peer)
14:47:01  * rannmannjoined
14:47:02  * dsfadfquit (Read error: Connection reset by peer)
14:47:15  * rannmannpart
14:48:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:53:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
14:55:49  * hij1nxquit (Read error: Connection reset by peer)
14:58:46  <rowbit>Hourly usage stats: []
14:58:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:03:54  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:05:08  * rannmannjoined
15:09:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:14:04  * mikealquit (Quit: Leaving.)
15:14:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:16:21  * _sorensenjoined
15:19:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:25:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:30:22  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:35:24  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:39:24  * captain_morganquit (Read error: No route to host)
15:40:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:45:51  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:51:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:56:53  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
15:58:46  <rowbit>Hourly usage stats: []
16:01:38  * hij1nxjoined
16:02:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:07:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:12:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:12:49  * xaqquit (Read error: Connection reset by peer)
16:13:18  * xaqjoined
16:17:24  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:22:53  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:28:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:33:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:36:03  * ryan_stevensjoined
16:36:40  * zz_shykeschanged nick to shykes
16:39:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:44:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:50:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:52:51  * blakmatrixjoined
16:55:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
16:58:46  <rowbit>Hourly usage stats: []
17:00:53  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:06:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:11:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:11:59  * tilgovijoined
17:16:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:21:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:25:01  * misterinterruptjoined
17:27:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:31:08  <SubStack>oh craps
17:32:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:36:50  <pkrumins>this developer who's waiting in the queue for over 8 hours is very patient
17:37:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:40:23  * isaacsjoined
17:41:06  <misterinterrupt>pkrumins: well, it shouldn't be too cramped in there for them
17:42:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:47:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:51:37  <isaacs>SubStack: https://github.com/isaacs/promzard/blob/master/promzard.js
17:52:51  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:52:51  * rannmannquit (Read error: Connection reset by peer)
17:53:11  * rannmannjoined
17:58:20  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
17:58:46  <rowbit>Hourly usage stats: []
17:59:26  <SubStack>isaacs: ++
18:03:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
18:04:52  <rowbit>SubStack, pkrumins: Encoders down: 50.56.64.186(dev-ie8-3)
18:08:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
18:13:50  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie8 (Queue length: 1 on 1 servers. Total servers: 3)
18:17:08  <pkrumins>no more of this error
18:17:17  <SubStack>^ that was all just 1 guy who went afk
18:17:30  <SubStack>we had enough servers all along, he just got into an inconsistent state
18:24:19  * misterinterruptquit (Ping timeout: 244 seconds)
18:25:28  * misterinterruptjoined
18:41:51  <SubStack>isaacs: https://github.com/isaacs/promzard/pull/1
18:42:12  <isaacs>SubStack: oh, rad!
18:42:22  <isaacs>i just got my own test working, too ;)
18:42:32  <isaacs>promzard and prompter are test-equivalent
18:42:34  <isaacs>love it
18:43:04  <isaacs>SubStack: what adaptation was necessary?
18:43:31  <SubStack>just to the js files
18:43:35  <SubStack>the api is a little different
18:43:40  <SubStack>but the json syntax is the same
18:44:18  <isaacs>sweet
18:44:30  <isaacs>i wanna let you pass in a stdin and stdout stream
18:44:47  <SubStack>just make the api a stream instead
18:44:50  <isaacs>and have it only do the raw mode switch if stdin === process.stdin
18:45:00  <isaacs>yeah... i guess
18:45:11  <isaacs>but you don't need to switch those often
18:45:16  <isaacs>and it's not actually a stream
18:45:28  <isaacs>kind of a stretch
18:45:44  <SubStack>the stdin/stderr part of it is
18:46:19  <SubStack>also if you put the messages to stderr you can use >output.json for redirects
18:47:52  <isaacs>messages belong on stdout
18:47:55  <isaacs>they're normal output
18:48:00  <isaacs>read(1)
18:48:49  <isaacs>and, really, no, it isn't a stream. the "output" is an object, and the "input" is a config file and a keyboard.
18:49:07  <isaacs>it's a different kind of thing, which is ok. not all data things are streams.
18:49:11  <isaacs>most of them, sure.
18:49:28  <SubStack>but the prompts to and from the user are streams
18:49:45  <SubStack>the reason why I put that into prompter is I want to mess with this over http
18:50:15  <SubStack>req.pipe(s); s.pipe(res)
18:50:28  <SubStack>I suppose you could pass those in as parameters but meh
18:53:01  <isaacs>hmm...
18:53:08  <isaacs>i am a bit cli-biased.
18:53:25  <isaacs>seeing as how i am intending to use this in a cli program
18:53:29  <isaacs>but like, ok...
18:53:34  <isaacs>you have req.pipe(s).pipe(res)
18:53:41  <isaacs>where do the "prompts" come from, then?
18:53:51  <isaacs>where does it write "name: " to, and where does it read it from?
18:53:52  * xaqquit (Read error: Connection reset by peer)
18:54:00  <isaacs>you can treat the req as stdin, but what's your stdout?
18:54:01  <SubStack>to those streams
18:54:25  * xaqjoined
18:54:29  <SubStack>the res would be the stdout over http
18:54:37  * tilgoviquit (Remote host closed the connection)
18:54:40  <SubStack>and the output object is just handled programmatically
18:54:51  <isaacs>you know that this leads to the orgy of fd's we see with pgp, qmail, and others, right?
18:55:08  <isaacs>where it opens up fd=4 for prompts, and reads on fd=6 for the password and other insanity
18:55:44  <SubStack>it's just a pipeable api
18:55:55  <SubStack>anyways your thing doesn't need to do it the pipe way
18:56:08  <SubStack>because there's already a module that does it the pipe way
18:56:20  <SubStack>multiple modules are handy like that
18:57:52  * farnsworthquit (Read error: Connection reset by peer)
18:57:52  * cubertquit (Read error: Connection reset by peer)
18:58:46  <rowbit>Hourly usage stats: []
18:59:13  * misterinterruptquit (Quit: Leaving.)
19:01:59  * simcop2387quit (Excess Flood)
19:02:38  <isaacs>:D
19:02:57  * simcop2387joined
19:03:03  <isaacs>well, i do not prefer to have tests that hijack stdin, or are forced to run in a child proc, though of course that's a good thing to also test.
19:03:33  <isaacs>it'd definitely be nice to do something like: stdin.pipe(new PromZard(file)).pipe(stdout) and have it DTRT
19:03:49  <isaacs>and dump the data to stdout, rather than the prompts.
19:04:04  <isaacs>maybe its pipe() method could check to see if it's piping to stdout, and if so, write the prompts to stderr
19:04:20  <isaacs>or just make the prompt input a separate arg
19:04:24  <SubStack>that last thing seems too magical
19:04:25  <isaacs>(er, prompt output)
19:04:32  <isaacs>SubStack: it's pretty common, actually.
19:05:03  <isaacs>SubStack: a lot of programs check to see if they're writing to a tty or to stdout and do things differently depending on that.
19:05:24  <isaacs>the PZ object could listen to its own "pipe" event and if the incoming is not stdin, not do the tty.setRawMode, too
19:06:59  * farnsworthjoined
19:07:00  * cubertjoined
19:11:29  * misterinterruptjoined
19:12:25  <jesusabdullah>less and most pagers do this
19:13:04  * simcop2387quit (Excess Flood)
19:13:31  <isaacs>jesusabdullah: yeah, it's so common in unix, it's not even really "magic"
19:13:34  <isaacs>it's just "how you do things"
19:13:42  <SubStack>anyhow imma go bike arounds
19:13:42  <jesusabdullah>right
19:13:57  <SubStack>actually I better go buy some coffee and bread
19:14:55  <SubStack>but then!
19:15:20  <rowbit>SubStack, pkrumins: Encoders down: 50.57.223.161(free5)
19:15:58  * simcop2387joined
19:18:08  * hij1nxquit (Quit: hij1nx)
19:22:25  * shykeschanged nick to zz_shykes
19:29:20  * wiwilliaquit (Ping timeout: 260 seconds)
19:29:57  * xaqquit (Read error: Connection reset by peer)
19:30:23  * xaqjoined
19:32:23  * hij1nxjoined
19:34:27  * hij1nxquit (Client Quit)
19:49:23  * sveisveijoined
19:50:10  * tilgovijoined
19:55:39  <isaacs>SubStack: so... would you pipe the input into PromZard, or the file?
19:56:03  <isaacs>cat input.json | promzard > output.json like that?
19:56:41  <isaacs>if so, then I have to do some magic shit like var input = new Socket(); input.open('/dev/tty')
19:57:05  <isaacs>very unix-specific and unportable
19:57:22  <isaacs>maybe i could create a pipe_wrap.Pipe() and have it open 0
19:57:25  <isaacs>hmm.
19:58:46  <rowbit>Hourly usage stats: []
19:58:46  <rowbit>Daily usage stats: []
20:00:53  <isaacs>yeah, i'm not going to take the file on stdin.
20:00:54  <isaacs>that's too hard.
20:01:29  <SubStack>isaacs: the output file is not the stream
20:01:39  <isaacs>SubStack: what is the stream?
20:01:45  <SubStack>the interaction with the user
20:01:47  <SubStack>that part is streaming
20:02:08  <isaacs>SubStack: so, right now, Iv'e got a streaming API for the PromZard class
20:02:34  <isaacs>and it checks if stdin is the input, and does raw mode if so, and if stdout is the output and also the dest, then it changes the prompt output to stderr
20:03:09  <isaacs>so in the normal case: process.stdin.pipe(new PromZard('input.json')).pipe(fs.createWriteStream('output.json'))
20:03:32  <isaacs>or to dump the data to stdout: process.stdin.pipe(new PromZard('input.json')).pipe(process.stdout)
20:03:39  <isaacs>and those will both do the right thing
20:03:52  <isaacs>or you can set the promptStream explicitly
20:05:15  <isaacs>the other option is to have the pipe dest be the promptStream, and instead of emitting a data event with the data, instead emit a "result" event with the result.
20:05:34  <isaacs>but i think emitting the data as json is actually a better fit for the use case i have (ie, npm init)
20:06:52  * sorensen_joined
20:07:00  * _sorensenquit (Ping timeout: 248 seconds)
20:13:21  <SubStack>right
20:13:54  <SubStack>how will the storage part of npm init work?
20:14:00  <SubStack>where you store json files for laters
20:14:13  <SubStack>json builder files that aren't even valid json I mean
20:14:22  <isaacs>?
20:14:26  <isaacs>storage part of npm?
20:14:35  <SubStack>well if you have this functionality in npm init
20:14:46  <SubStack>of having scriptable package.json builders
20:14:56  <SubStack>how will it work to load a new cartridge?
20:19:38  <isaacs>cartridge?
20:19:41  <isaacs>i'm not following
20:19:55  <isaacs>you'll mkdir project; cd project; npm init (answer some questions) and then have a package.json file
20:20:33  <chapel>The Node Manifesto
20:20:40  <isaacs>npm will read the promzard config from --initconfigfile which will default to ~/.npminitrc
20:20:55  <isaacs>or to some built-in reasonable default that makes it work like it does not
20:20:58  <isaacs>*like it does now
20:21:27  <isaacs>but, it'll also have to check for an existing package.json file, set that as the ctx, and also merge in the new data with the old
20:21:41  <SubStack>oh I see
20:21:43  <isaacs>so that if you have something like "my-special-field": "foo" we don't stomp it
20:21:56  <SubStack>the use case I had in mind puts the [name] at the end of npm init
20:21:56  <isaacs>and so that version will default to "1.2.3" if that's the current version, rather than alwasy being 0.0.0
20:22:00  <SubStack>so that you npm init work
20:22:03  <SubStack>or npm init home
20:22:08  <SubStack>and it resolves to a different package
20:22:08  <isaacs>oh, and then it creates the folder?
20:22:23  <SubStack>no it loads a different json builder file
20:22:27  <isaacs>oic
20:22:30  <isaacs>well, you can still do that
20:22:36  <isaacs>i was just spelling it --initconfigfile
20:22:42  <isaacs>which is kind of long and awful
20:22:59  <isaacs>but making it a positional arg is fine. init doesn't take pos args now, so it's not gonna break anythign
20:23:11  <SubStack>is it just going to be a file path though?
20:23:16  <chapel>npmrc right?
20:23:21  <SubStack>fine if it is
20:23:29  <isaacs>sure, or maybe the name of a file in a folder somewhere
20:23:31  <SubStack>I was thinking some kind of npminitdir
20:23:35  <isaacs>~/.npm/initdir/
20:23:39  <isaacs>sure, or that
20:23:39  <SubStack>unsure about which is best
20:23:55  <isaacs>that's all very npm-specific stuff which belongs in npm, not in promzard, of course
20:24:05  <chapel>could have npm init setup
20:24:07  <chapel>or something
20:24:11  <chapel>that you could set the defaults
20:24:18  <chapel>and it would worry about where that is stored
20:24:25  <isaacs>chapel: zomg like a promzard that writes a promzard conf
20:24:29  <chapel>:P
20:24:36  * isaacsjust divided by zero in his pants
20:27:04  <SubStack>isaacs: you could always hack up a separate pzinit package for doing all the conf-y things
20:27:15  <isaacs>sure
20:27:22  <SubStack>then in npm just delegate
20:27:28  <isaacs>sure.
20:27:43  <SubStack>that's sort of how pkginit/prompter are separated
20:28:52  <SubStack>also promzard does one thing a lot nicer than prompter
20:28:58  <SubStack>in that you can define functions at the top
20:29:37  <SubStack>to put all the repetitive things like basedir.replace(/^node-/, '') all in one place
20:38:08  * xaqquit (Remote host closed the connection)
20:40:52  * xaqjoined
20:42:24  <rowbit>SubStack, pkrumins: Encoders down: 50.56.64.186(dev-ie8-3)
20:43:25  <SubStack>isaacs: so one of my ulterior motives with this package.json builder stuff
20:43:47  <SubStack>is that people working at big companies like google with official open source release processes
20:44:02  <SubStack>can have their generator script fire off the appropriate emails or submit to a web form
20:44:32  <isaacs>yeah
20:44:35  <SubStack>paul_irish: ^^^
20:44:35  <isaacs>that'd be really neat.
20:45:01  * stlsaintjoined
20:45:06  <isaacs>also, people ask like crazy for this, and since i've been actually using node and npm to build a website lately, it's been *severely* annoying me.
20:45:16  <isaacs>people have such a high tolerance for pain.
20:45:18  <isaacs>it's crazy.
20:45:32  <SubStack>the init stuff?
20:48:25  <isaacs>SubStack: yeah
20:48:32  <isaacs>starting a project is like 5 commands too many
20:48:36  <isaacs>and i'm typing the same stuff over and over.
20:50:08  <SubStack>ah
20:50:13  <SubStack>yeah I found myself doing that too
20:50:23  <SubStack>which is why I wasn't even using npm init
20:50:31  <SubStack>I was just copying over old package.jsons and modifying them
20:50:47  <isaacs>right
20:50:53  <SubStack>the next thing I want to add to my substack.json file
20:50:56  <isaacs>ok, i'm getting kind of insane on this...
20:51:05  <isaacs>i'm gonna default a build script for coffee-script users.
20:51:08  <SubStack>is to fix subdeps and then use to to automatically calculate deps from the main field
20:51:19  <isaacs>and if they enter MIT or BSD as a license, download it to a LICENSE file
20:51:19  <SubStack>hah!
20:51:26  <isaacs>downloading the lic is probably excessive...
20:51:42  <isaacs>SubStack: i'm already reading in deps and devDeps from node_modules/*
20:51:54  <isaacs>SubStack: i'm starting with substack.json and just going from there, basically
20:52:01  <isaacs>i'll have a thingie for your review soon
20:52:10  <SubStack>well, often I'll npm install stuff that doesn't make the cut into the final dist
20:52:20  <SubStack>haha
20:52:47  <SubStack>yeah and the format lets you do async io for just that reason, pulling down assets from the network
20:52:55  <SubStack>well, and executing shell commands
20:57:50  <rowbit>SubStack, pkrumins: Encoders down: 173.203.67.76(free3)
20:58:46  <rowbit>Hourly usage stats: []
21:00:16  <isaacs>SubStack: hm.. putting functions at the top is kind of weird...
21:00:22  <isaacs>SubStack: it actually doesn't quite work
21:00:46  <isaacs>SubStack: unless you wrap it in a closure
21:01:06  <isaacs>like, instead of { ... }, your file has (function () { doo stuff. return {...}})()
21:04:51  * wiwilliajoined
21:06:25  * dsfadfjoined
21:06:27  * rannmannquit (Read error: Connection reset by peer)
21:07:51  * dsfadfquit (Read error: Connection reset by peer)
21:07:55  * rannmannjoined
21:07:55  * rannmannquit (Changing host)
21:07:55  * rannmannjoined
21:21:46  * sorensen_quit (Remote host closed the connection)
21:25:17  * misterinterruptquit (Quit: Leaving.)
21:27:12  * misterinterruptjoined
21:30:41  <pkrumins>SubStack: ping
21:41:45  <SubStack>pong
21:50:05  * tilgoviquit (Remote host closed the connection)
21:55:54  <maxogden>isaacs: https://github.com/maxogden/plummet https://github.com/maxogden/plumbdb WORKS IN PROGRESS
21:56:22  <maxogden>isaacs: also i think i like https://github.com/maxogden/plumbdb/blob/master/index.js as a "middleware"
21:56:54  <maxogden>isaacs: aka a module that takes requests and callbacks but doesnt modify anything in the request stream
21:57:11  <maxogden>isaacs: so then you have another module that takes the callbacks and modifies your responses based on the callbacks
21:58:13  <pkrumins>browserling now has: chrome 17,18,19 and firefox 10,11,12,13!
21:58:46  <rowbit>Hourly usage stats: []
21:59:24  <SubStack>plums!
21:59:28  <isaacs>maxogden: neato
21:59:43  <isaacs>ok, yeah, this stream stuff in promzard needs to go.
21:59:52  <maxogden>promzard?
21:59:54  <isaacs>it's too much of a kludge. someone can wrap it in a stream if they want.
22:00:12  <isaacs>maxogden: well, you saw on twitter how SubStack stole marak's idea about a prompty thing that fills in a json file?
22:00:17  <isaacs>maxogden: like a better npm init?
22:00:22  <maxogden>no
22:00:26  <maxogden>:D
22:00:31  <isaacs>maxogden: i went ahead and stole both prompter AND wizard into promzard.
22:00:35  <maxogden>hahaha
22:01:25  <SubStack>well wizard the project has been around for a long time
22:01:33  <SubStack>some noise about json schemas what are those even
22:02:34  <SubStack>it's just that isaacs and dominictarr and I were talking about how npm init is kind of crap
22:02:47  <SubStack>and I needed a thing to do configs to proof-of-concept this
22:22:24  <paul_irish>SubStack: isaacs. the grunt init task has a wizardy setup that kicks off your package.json. a nice workflow
22:22:29  * wiwilliaquit (Ping timeout: 260 seconds)
22:24:32  * wiwilliajoined
22:29:29  * zz_shykeschanged nick to shykes
22:32:37  * misterinterruptquit (Quit: Leaving.)
22:33:24  * hij1nxjoined
22:33:34  * hij1nxquit (Remote host closed the connection)
22:36:21  <SubStack>haha japanese people are awesome, they address me in emails as "mr stack"
22:58:46  <rowbit>Hourly usage stats: []
23:00:45  <rowbit>SubStack, pkrumins: Encoders down: 50.57.223.161(free5)
23:08:21  * xaqquit (Remote host closed the connection)
23:13:19  * misterinterruptjoined
23:20:38  <SubStack>http://substack.net/images/mad_science.png
23:37:29  * misterinterruptpart
23:40:58  * shykeschanged nick to zz_shykes
23:51:08  * wiwilliaquit (Ping timeout: 260 seconds)
23:54:36  <isaacs>paul_irish: neat
23:55:09  <isaacs>paul_irish: how easy do you think it'd be to pull grunt's init task out into a reusable thing? or would it be worth sharing something line promzard?
23:58:53  <rowbit>Hourly usage stats: []