00:01:59  * mikealquit (Quit: Leaving.)
00:16:13  <rowbit>Hourly usage stats: [developer: 1, free: 29]
00:22:47  <fotoverite>All there any great weekly node blogs I'm not finding by google?
00:23:22  <fotoverite>right now it seems planet node is the only way to really see what people are doing since everyone is posting when they have time.
00:28:33  <Raynos>planet node is good
00:29:33  <Raynos>fotoverite: https://www.google.com/reader/bundle/user%2F13665202698065518342%2Fbundle%2Fnode.js
00:30:23  <fotoverite>Are there any training sites yet. Right now all I see is peep code. :( We do have that smashing node book
00:31:18  <Raynos>fotoverite: are you in the bay?
00:31:35  <fotoverite>No East Cost
00:31:42  <fotoverite>It's not for me is for a talk I'm giving
00:31:46  <Raynos>oh I see
00:32:11  <Raynos>there are a few node books but i wouldnt trust them that much
00:32:16  * mikealjoined
00:32:17  <fotoverite>Meetups are good for learning but are time sensitive.
00:32:34  <Raynos>what you really need are examples
00:32:43  <Raynos>npm-www is a good example
00:32:46  <fotoverite>Right now I see node up… Nodeup… and node up as the only place for any information
00:32:59  <fotoverite>how is npm-www a good example unless you mean in putting together a website
00:33:33  <fotoverite>It's an interesting approach I'm worried people at a lower skill set would get lost in it's inner workings. Especially with dealing with the dev start script.
00:33:44  <Raynos>fotoverite: well yeah, to be honest that's true
00:33:57  <fotoverite>Which actually contain a lot of what's going on.
00:34:03  <fotoverite>And will only grow in complexity
00:34:30  <fotoverite>I'm actually advocating for more people to talk about the sites they have launched in production, give real ideas about the modules and approaches they use.
00:34:40  <fotoverite>We don't want everyone using express
00:34:44  <fotoverite>We want layered applications
00:35:08  <Raynos>what is a layered application
00:35:45  <Raynos>we currently run 10 node processes in production
00:35:55  <fotoverite>Make sure you build your libraries in a layered fashion to reduce complexity.
00:36:02  <Raynos>oh _that_
00:36:07  <Raynos>you mean a balanced node_modules tree
00:36:17  <Raynos>substack is the only one that does that
00:36:25  <Raynos>I do that but I dont have any top level modules that go down
00:36:41  <fotoverite>But it also applies to applications in general I think
00:36:54  * mikealquit (Ping timeout: 276 seconds)
00:36:58  <fotoverite>Node has an interesting problem where you can't look at commits for the health of a module
00:37:13  <fotoverite>I mean sorted is perfect and hasn't been updated for a year
00:38:52  <Raynos>well
00:38:57  <Raynos>agreed
00:38:59  <Raynos>look at routes
00:40:34  <fotoverite>damn two years
00:42:40  <Raynos>yeah
00:42:41  <Raynos>and its solid
00:44:28  * mikealjoined
00:49:24  <fotoverite>Or stars, or forks
00:59:33  <fotoverite>Raynos: could star ever take off?
00:59:40  <Raynos>star?
00:59:44  <Raynos>npm star?
00:59:46  <Raynos>maybe
01:00:57  <fotoverite>No github star
01:01:07  <Raynos>sure?
01:01:08  <fotoverite>Are nom stars different?
01:01:22  <fotoverite>I just don't see it catching on since it hasn't yet.
01:02:16  <fotoverite>Also it's too ambiguous what it means
01:06:04  * mikealquit (Quit: Leaving.)
01:16:13  <rowbit>Hourly usage stats: [developer: 1, free: 28]
01:34:03  * tphummelquit (Quit: tphummel)
01:42:58  * tilgoviquit (Remote host closed the connection)
01:46:23  * mikealjoined
01:55:19  * mikealquit (Ping timeout: 260 seconds)
02:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 28]
02:17:31  * jibay__quit (Quit: Leaving)
02:51:37  * mikealjoined
02:56:06  * mikealquit (Ping timeout: 240 seconds)
03:16:13  <rowbit>Hourly usage stats: [developer: 2, free: 24]
03:21:29  * st_lukejoined
03:35:56  <substack>big problem with storing authorized keys on the network
03:36:10  <substack>for multiple keys you need exactly the right order for it to work
03:36:36  <substack>might need to switch to sending them all at once
03:36:46  <substack>but then updating that list won't be commutative
03:37:35  <substack>maybe I can send 2 types of updates
03:38:39  <substack>1 authorized_keys key
03:39:11  <substack>blarg no this runs aground of the same issues
03:39:31  <substack>really I need to send authorized_keys in the header metadata
03:39:53  <substack>then I can have an initial keyring and also accept updates over the network
03:40:08  <substack>patching scuttlebutt to allow metadata on the header event
03:47:31  <jesusabdullah>yo substack
03:47:36  <substack>ahoy
03:47:37  <jesusabdullah>I talked to facebro today
03:47:42  <substack>o_O
03:47:52  <jesusabdullah>they mentioned internal efforts to basically do what testling does
03:47:59  <substack>:o
03:48:02  <jesusabdullah>and/or server-side rendering of client data
03:48:13  <jesusabdullah>I didn't tell them to aquahire you but I THOUGHT ABOUT IT ;)
03:48:20  <jesusabdullah>aquihire*
03:48:26  <jesusabdullah>plus I think you would hate facebook
03:48:31  <substack>probs
03:48:35  <substack>but I wouldn't mind them as a client
03:48:40  <substack>wouldn't mind that at all
03:49:30  <substack>whatchoo doing talkin to facebro?
03:51:55  * mikealjoined
03:57:06  * mikealquit (Ping timeout: 276 seconds)
04:14:22  * shykeschanged nick to zz_shykes
04:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 15]
04:18:19  * AvianFlujoined
04:23:18  <jesusabdullah>substack: one of their internal recruiters emailed me, I told them I wasn't looking for work but if they wanted to waste their own time that was cool
04:23:22  <jesusabdullah>substack: and they went for it
04:23:36  <jesusabdullah>substack: so basically we just talked shop, got an idea of what they're thinking about using node for
04:25:24  <substack>using node to run browser code is a very legacy-oriented perspective
04:25:33  * substackis much more interested in using browsers to run node code
04:26:00  <substack>all the code written for browsers is shit
04:26:08  <substack>much of the code written for node is really good
04:30:18  <st_luke>using browsers to run node code ++
04:31:01  <substack>browsers are just a weird arch that doesn't have proper fs or net bindings
04:39:11  * AvianFluquit (Remote host closed the connection)
04:42:36  <substack>not getting crypto.createSign() to work ;_;
04:50:35  * tphummeljoined
04:52:21  * mikealjoined
04:56:34  * mikealquit (Ping timeout: 240 seconds)
04:58:38  <substack>https://gist.github.com/3998791 <-- :(
05:06:20  * mikealjoined
05:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 17]
05:19:59  <substack>isaacs: ^^^
05:20:14  <substack>unsure why crypto.createSign() is being such a piece of junk
05:21:26  <substack>I really just want to generate these things with crypto itself
05:21:30  <substack>I don't want to use ssh-agent at all
05:23:24  <substack>I'll write a module to generate json keys using crypto.createDiffieHellman()
05:23:34  <substack>and provides all the signing in a sane, non-stupid way
05:38:43  <jesusabdullah>substack: for sure, I personally think instrumenting code running in a real browser is the best compromise there
05:38:56  <substack>so tired of dicking around with ssh-agent :(
05:39:02  <substack>doing this all with crypto now
05:39:03  <jesusabdullah>I feel that
05:39:05  <substack>fuck all this ssh noise
05:39:17  <jesusabdullah>did I show you what I had to do to integrate with uservoice sso?
05:39:26  <substack>and fuck binary base64-encoded framing protocols
05:39:28  <substack>json that shit
05:39:35  <substack>sso?
05:39:56  <jesusabdullah>https://gist.github.com/3902385
05:40:00  <jesusabdullah>single sign-on
05:40:09  <jesusabdullah>so you could log into this uservoice thing with your nodejitsu account
05:40:43  <substack>sweet
05:40:51  <jesusabdullah>"OpenSSL for Ruby"
05:41:05  <jesusabdullah>I had to set the initialization vector to that for the aes encryption
05:41:14  <jesusabdullah>and I had to xor the first however many bits by-hand
05:41:14  <fotoverite>openssl for ruby?
05:41:18  <jesusabdullah>yeah dude
05:41:19  <fotoverite>what is ruby part of this?
05:41:26  <jesusabdullah>the uservoice server
05:41:29  <jesusabdullah>it's a rails app
05:41:32  <fotoverite>Ah
05:41:39  <jesusabdullah>you need to use the same iv on both sides I guess
05:42:11  <jesusabdullah>oh also using qs.stringify did NOT work because a bunch of qs parsers don't properly deal with escaping / characters, including the one on rails
05:52:44  * AvianFlujoined
05:54:58  * tphummelquit (Quit: tphummel)
05:56:13  <st_luke>fuck that shit
05:56:14  <st_luke>fuck rails
05:56:41  * ehdjoined
06:04:54  * ehdquit (Ping timeout: 240 seconds)
06:05:25  * AvianFluquit (Remote host closed the connection)
06:05:28  <jesusabdullah>haha, for real
06:10:26  * ehdjoined
06:16:13  <rowbit>Hourly usage stats: [developer: 1, free: 41]
06:16:57  * ehdquit (Ping timeout: 265 seconds)
06:20:16  * mikealquit (Quit: Leaving.)
06:26:22  * mikealjoined
06:32:57  <rowbit>SubStack, pkrumins: Encoders down: (free3)
06:40:44  * zz_shykeschanged nick to shykes
06:50:45  * shykeschanged nick to zz_shykes
06:52:21  * zz_shykeschanged nick to shykes
07:07:53  <substack>figured out the original thing blah
07:10:07  * shykeschanged nick to zz_shykes
07:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 54]
07:19:53  * zz_shykeschanged nick to shykes
07:24:39  * mikealquit (Quit: Leaving.)
07:32:49  * Guest31115joined
07:37:23  * Guest31115quit (Ping timeout: 252 seconds)
08:04:15  * mikealjoined
08:04:40  * shykeschanged nick to zz_shykes
08:11:37  * mikealquit (Quit: Leaving.)
08:12:38  <jesusabdullah>substack: Idea: 1) lease a rack server from ACS 2) install openstack 3) open cloud computing business targeting alaskan clients
08:12:59  <jesusabdullah>I feel like making back $300+/mo could be hard though
08:13:31  <st_luke>I used to call RMS' office number every other week because his answering machine message amused me
08:13:34  <st_luke>then one day he picked up
08:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 32]
08:27:58  <rowbit>SubStack, pkrumins: These encoders are STILL down:
08:28:09  <Altreus>pkrumins: I really enjoy your tees
08:28:31  <Altreus>I might be able to afford one this month, let's see
08:35:54  <substack>https://github.com/dominictarr/scuttlebutt/pull/12
08:37:20  <Altreus>Congratulations! You reserved a shirt!
08:37:32  <Altreus>substack: is this one of your drawings again?
08:37:50  <Altreus>all the robopix up on the internwets
08:37:56  <Altreus>intern-wets
08:40:38  <substack>yes
08:53:08  * st_lukequit (Remote host closed the connection)
08:57:19  * Guest31115joined
09:15:42  * Guest31115quit (Ping timeout: 264 seconds)
09:16:13  <rowbit>Hourly usage stats: [developer: 1, free: 31]
10:11:31  * dominictarrjoined
10:12:37  <substack>dominictarr!
10:12:48  <dominictarr>substack, morning!
10:13:01  <substack>did you see https://github.com/dominictarr/scuttlebutt/pull/12 ?
10:13:29  <substack>seaport over crdt is all ready to go except it needs that patch
10:13:37  <dominictarr>yes. <disclaimer> I just woke up
10:13:44  <substack>right right
10:13:49  <substack>no rush I'm about to go to sleep
10:14:01  <substack>finishing the new seaport docs
10:14:06  <substack>so seaport is pretty incredible now
10:15:28  <substack>it replicates by default, uses public keys for permission to update entries
10:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 44]
10:16:27  <substack>oh and the scuttlebutt in crdt will need the fixes too since I'm using scuttlebutt indirectly through crdt
10:27:59  <rowbit>SubStack, pkrumins: These encoders are STILL down:
10:28:55  <dominictarr>cool, I'll be reviewing this in depth. especially the security stuff.
10:32:32  <dominictarr>substack, some interesting ideas here http://vimeo.com/43380467
10:37:43  * Guest31115joined
10:42:24  * dominictarrquit (Ping timeout: 260 seconds)
11:16:13  <rowbit>Hourly usage stats: [developer: 3, free: 41]
11:18:52  * dominictarrjoined
11:19:59  * mikealjoined
11:55:19  <dominictarr>substack, you still there?
12:08:48  * mikealquit (Quit: Leaving.)
12:11:20  * AvianFlujoined
12:11:26  * mikealjoined
12:16:13  <rowbit>Hourly usage stats: [developer: 4, free: 38]
12:26:15  * Guest31115quit (Ping timeout: 260 seconds)
12:27:59  <rowbit>SubStack, pkrumins: These encoders are STILL down:
12:50:27  * AvianFluquit (Remote host closed the connection)
13:16:13  <rowbit>Hourly usage stats: [developer: 4, free: 22]
13:32:58  * Guest31115joined
13:34:29  * AvianFlujoined
13:37:45  * Guest31115quit (Ping timeout: 265 seconds)
13:49:59  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 5)
14:09:45  <pkrumins>Altreus: Congratulations! You reserved a shirt!
14:13:53  <Altreus>pkrumins: and how!
14:14:12  <Altreus>I retweeted it
14:14:19  <Altreus>Other people need to reserve it so I can has mine
14:16:14  <rowbit>Daily usage stats: [developer: 110, free: 895]
14:16:14  <rowbit>Hourly usage stats: [developer: 7, free: 57]
14:17:11  <pkrumins>Altreus: retweet is the best type of tweet
14:17:43  <pkrumins>Altreus: how do you haz yours if other people reserve it?
14:18:15  <Altreus>pkrumins: so we get to 30 and they actually print them!
14:18:28  <pkrumins>oh rites
14:37:21  * st_lukejoined
14:40:42  * Guest31115joined
14:48:45  * Guest31115changed nick to ehd
14:48:51  <guybrush_>dominictarr: interesting ideas, but i dont agree that W3C should do it - userland ftw
14:49:08  <dominictarr>guybrush_, that is what he's saying, I think.
14:49:39  <guybrush_>mh i get it like FU W3C WHY U NO MAKE IT RIGHT AT FIRST TIME WHY WE HAVE TO DO IT IN USERLAND
14:49:45  <guybrush_>and FU very often :D
14:50:14  * dominictarrquit (Read error: Connection reset by peer)
14:50:16  <guybrush_>because everything he lists up, is already working with userlandtools
14:50:42  <guybrush_>maybe not everything
14:50:57  * dominictarrjoined
14:51:49  <guybrush_>though i really like people bitching arround about stuff they dont like, it keeps discussions up and makes everyone think again :D
14:57:39  <dominictarr>yeah, that talk is making me think that, for example, what a web browser is really meant to be is an application sandbox, that makes it safe to run arbitary applications from over the internet.
15:00:17  <guybrush_>right, but currently it is really centered arround html and js
15:01:00  * ehdquit (Ping timeout: 252 seconds)
15:04:58  <guybrush_>anyway i really like how things run now :D the next big thing will be webrtc with datachannel, that will change the game! :DDD
15:05:01  <guybrush_>cant wait
15:05:55  * AvianFlu_joined
15:06:46  * AvianFluquit (Ping timeout: 246 seconds)
15:07:59  <guybrush_>things like PaaS implemented over p2p like you tweeted :DD
15:08:29  <dominictarr>guybrush_, indeed, but he is totally right about the bytecode thing, although i'd still use JS, I think.
15:09:10  <guybrush_>yes, but i like js still :/ its just fun to write code
15:10:00  <guybrush_>but the best thing that happened is nodes module-system
15:10:09  <dominictarr>agreed.
15:10:39  <dominictarr>and you could argue that is a "compile to JS" thing
15:10:40  <guybrush_>so node-require-like #include in c would be a game-changer too :p
15:11:06  <dominictarr>yeah, especially for embedded systems.
15:11:12  * ehdjoined
15:12:59  <guybrush_>ooooh he mentions pandoc!
15:13:18  <guybrush_>my most favorite tool to make documents
15:14:05  <guybrush_>makes me want to know haskell better
15:14:09  <dominictarr>hmm... so he's right about css... maybe there is a way to make a style sheet stuff with js?
15:14:46  <guybrush_>i really like stylus
15:15:15  <dominictarr>it's really hard to make reusable widgets
15:15:24  <dominictarr>with css, that is the worst thing.
15:15:53  <guybrush_>mh yes, but i cant think of a good solution for the problem
15:16:13  <rowbit>Hourly usage stats: [developer: 7, free: 53]
15:16:21  <guybrush_>i mean how would one make a style-thing which replaces css which is better than css
15:16:27  <dominictarr>if css had the equiv of closures it would be possible.
15:16:30  <guybrush_>what exactly is the bad thing
15:16:50  <guybrush_>you can make that sort of with namespaces i think
15:17:06  <guybrush_>like substack did with his thing
15:17:50  <dominictarr>yeah. unfortunately it's not as simple as require is.
15:18:19  <dominictarr>but maybe there is a way like that where you compile all the css into a single css.
15:18:33  <guybrush_>but im not sure, maybe in the future we will only use the canvas-tag and then go with webgl or what ever :D then we dont even need css anymore
15:18:35  <dominictarr>and put the css into node_modules too.
15:18:37  * wiwilliajoined
15:18:49  <dominictarr>yeah, that is a good plan too.
15:19:24  <guybrush_>in threejs they push the cssrenderer right now
15:19:33  <dominictarr>although, not very SEO, also we'd just end up re writing the DOM stuff (but different) in js.
15:19:34  <guybrush_>and on twitter they talk about how slow it is compared to webgl
15:20:01  <dominictarr>canvas is slow compared to webgl?
15:20:06  <guybrush_>css
15:22:43  <chapel>guybrush_: you doing nodeknockout?
15:22:52  <guybrush_>yaaah! :DD
15:22:54  <dominictarr>oh, cool.
15:23:03  <chapel>your own team?
15:23:07  <guybrush_>hopefully this time i can complete it hihi
15:23:13  <guybrush_>yes with a buddy
15:23:58  <chapel>cool, what is it?
15:23:59  <guybrush_>basically we will think in the last minute of a supercrazy thing which we never can do in 2days
15:23:59  * AvianFlu_changed nick to AvianFlu
15:24:06  <chapel>yeah?
15:24:37  <guybrush_>most certainly some sort of multiplayer game
15:24:57  <chapel>hey, kind of what we will be doing
15:25:30  <guybrush_>i hope the jitsu-stuff doesnt take too much time to grasp
15:25:41  <chapel>my teams idea is something we have actually done before for a hackathon (not nko), we just want to make it better and from scratch again
15:25:50  <chapel>well we have AvianFlu to help us
15:26:01  <chapel>and jesusabdullah
15:26:18  <guybrush_>they will hopefully dedicate all their time to help out here in #stackvm :p
15:26:25  <chapel>yeah for sure
15:26:26  <chapel>:P
15:26:37  <guybrush_>haha thats how i like it
15:27:25  <guybrush_>will there be redis available?
15:27:29  <guybrush_>or only mongo/couch
15:27:32  <AvianFlu>WHAT TOM-NOOBERY IS THIS
15:27:34  <chapel>probably redis2go
15:28:07  <chapel>if you need more, Id assume you could host your own and hook it up
15:28:12  <guybrush_>right
15:28:43  <guybrush_>well the app will not go high load anyway, so any backend what so ever will do
15:28:57  <guybrush_>not even think about making it bulletproof or something
15:29:15  <chapel>yeah, only make it not crash
15:29:29  <guybrush_>they run a deamon-thing anyway i guess :p
15:30:24  <guybrush_>but yea maybe something with twitter-streams used in some sort of game or something
15:30:52  <chapel>we should all make sure to help test each others in here
15:31:25  <guybrush_>thats when we actually can finish it this time :p
15:31:31  <guybrush_>last time we didnt make it
15:31:31  <chapel>heh
15:31:38  <chapel>well, finish is a relative term
15:31:57  <chapel>sometimes you can finish something enough to have it work, but maybe not finished how you want it
15:32:22  <chapel>our entry last year had a few bugs that were pretty glaring
15:33:19  <guybrush_>i am really looking forward to see all the amazing ideas and implementations of others
15:33:49  <guybrush_>its kind of THE EDGE stuff of the sort of technology im really in to
15:40:48  <chapel>yeah
15:40:53  <chapel>I hope we can make ours polished
15:41:01  <chapel>there were some really polished entries last year
15:48:13  * substackawake
15:56:33  <substack>dominictarr: authorized keys works a little differently than I think you think it works
15:56:45  <substack>you need to have an authorized key to send an update
15:56:51  <dominictarr>okay.
15:57:16  <substack>but! signing the keys list itself would be really cool
15:58:40  <dominictarr>how does a key get to be in the list? from what you described it sounds like you just send them with the new connection?
15:58:48  <substack>yes in the metadata
15:58:49  <dominictarr>or does it only come from the server?
15:58:56  <substack>but also in a crdt.Set
15:59:17  <substack>so you can update keys at runtime with clients that are already authenticated
15:59:32  <dominictarr>right, by adding to the set.
15:59:34  <substack>or just have a pre-determined list
15:59:59  <dominictarr>okay, but what stops me connecting to a node, and sending new keys?
16:00:04  <substack>it's messy though since there are 2 data structures I need to check to make it work
16:00:22  <substack>if you connect a node and your key isn't authorized, all your updates are rejected
16:00:42  <chapel>substack: you still doing the programming game?
16:00:58  <substack>so all nodes need to sign their own updates AND they need to do it with known keys
16:01:29  <dominictarr>substack, but what if I connect to a node, and send a NEW key, and then start signing updates with it.
16:01:39  <substack>I should split out this logic from seaport so it's easier to experiment and dissect it in isolation
16:02:12  <substack>dominictarr: you can't send a new key unless that update is signed with an authorized key already
16:02:26  <substack>but you could switch which key you use at runtime if you want
16:02:48  <substack>so long as you have the private key for it
16:03:05  <substack>and so long as you initiated the connection with a valid authorized key
16:03:06  <dominictarr>no, but you can send a new key when you connect.
16:03:18  <substack>oh in the metadata?
16:03:20  <substack>TRUE
16:03:22  <dominictarr>yeah.
16:03:49  <dominictarr>I think the root key needs to be bundled.
16:03:54  <substack>thinking how to make that one-sided
16:03:58  * AvianFluquit (Remote host closed the connection)
16:04:20  <substack>well if you are a server you shouldn't let nodes send you authorized keys lists in metadata
16:04:41  <substack>and by server I mean some node that listens for incoming connections
16:05:24  <dominictarr>yeah, so you could connect to the server with SSL, and download the keys, but you'd need a key for that too.
16:05:47  * zz_shykeschanged nick to shykes
16:06:54  <substack>so there's already a really easy way to check if I'm the "server" or not
16:07:18  <substack>seaport servers do s.createStream(c.address().address)
16:07:46  <substack>so I'll just if (!host) { look at data.meta }
16:08:42  <substack>pow I just needed to move 1 line up a bit
16:13:53  <substack>ok super sweet, finishing up the documentation
16:16:13  <rowbit>Hourly usage stats: [developer: 7, free: 54]
16:27:12  <isaacs>substack: Yes, it should just be able to take a DH buffer. patch against master is very welcome.
16:54:34  <substack>ok sweet I might do that
16:55:00  <substack>because then I could do everything in memory without using ssh-agent to generate keys
16:55:07  <substack>which is super useful for writing tests
16:57:22  <isaacs>substack: also, i think indutny may have written an addon thingie to generate privpub keypairs from openssl directly
16:57:44  <isaacs>substack: https://github.com/indutny/pripub
16:58:09  <isaacs>substack: oh, that's for actually generating and consuming keys in ~/.ssh/
16:58:19  * ehdquit (Ping timeout: 252 seconds)
17:16:13  <rowbit>Hourly usage stats: [developer: 5, free: 13]
17:17:10  * tphummeljoined
17:32:53  * AvianFlujoined
17:46:37  <chapel>isaacs: you doing node knockout?
17:48:42  <isaacs>chapel: no, but i'll be at Joyent friday night for a bit
17:48:45  <isaacs>just to kick it off
17:48:52  <chapel>ah cool
17:49:03  <isaacs>chapel: i'm leaving for JSConf AU, Node Fest Tokyo, and Node Fest Korea on Monday
17:49:04  <chapel>isaacs: I won't be (down there) but am doing nko
17:49:11  <chapel>ah busy
17:49:19  <isaacs>chapel: i mean, the monday right after nko
17:49:24  <isaacs>so i'll be preparing for all that
17:49:27  <chapel>my friend/coworker is speaking at node fest tokyo
17:49:38  <chapel>emostar
17:49:43  <chapel>if you're familiar with him
18:05:09  * tilgovijoined
18:16:13  <rowbit>Hourly usage stats: [developer: 3, free: 36]
18:34:18  * dominictarrquit (Ping timeout: 264 seconds)
19:01:54  <Raynos>which hell do I burn in for having 65char wide lines of code?
19:07:34  <substack>41 files changed, 899 insertions(+), 801 deletions(-)
19:07:35  * tilgoviquit (Ping timeout: 260 seconds)
19:07:37  <substack>new seaport changes
19:08:48  <substack>seaport@1.0.0 just landed
19:09:12  <substack>/!\ warning /!\ massive changes
19:09:13  <Raynos>#winning
19:09:22  <substack>check out the authorized keys example
19:09:44  <substack>oh wait crap I haven't updated the bin tool yet
19:09:54  <substack>only the usage docs
19:09:56  <substack>doing that now
19:12:52  <Raynos>dominictarr: It would be nice to have a set abstraction build on top of scuttlebutt that doesnt have the whole Document abstraction crdt has
19:16:13  <rowbit>Hourly usage stats: [developer: 3, free: 25]
19:29:03  * shykeschanged nick to zz_shykes
19:33:12  * tilgovijoined
20:09:07  * dominictarrjoined
20:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 45]
20:38:56  * zz_shykeschanged nick to shykes
20:43:54  * shykeschanged nick to zz_shykes
20:46:50  <st_luke>oakland named 4th most dangerous city in america
21:06:22  <substack>dominictarr: check out https://github.com/substack/seaport/tree/master/example/authorized_keys
21:14:53  * jibayjoined
21:16:13  <rowbit>Hourly usage stats: [developer: 3, free: 22]
21:22:22  <Raynos>substack, dominictarr: 1 week to nko.
21:22:29  <Raynos>We need to do bullshit like decide what we build
21:22:31  <substack>yes just got that email
21:22:34  <Raynos>and set the team profile up to reflect that
21:22:41  <substack>Raynos: wizard programming game
21:22:43  <Raynos>are we building npm the game?
21:23:08  <substack>where you can enchant items in the game with programming spells
21:23:20  <Raynos>do we have some kind of brainstorming document / repo / space?
21:23:54  <substack>it's against the rules to prepare materials beforehand
21:24:02  * zz_shykeschanged nick to shykes
21:24:05  <substack>and anyways let's just make it up when it comes
21:24:11  <substack>planning is overrated
21:24:12  <fotoverite>You can talk about it I beleive
21:24:13  <Raynos>substack: it is ?
21:24:16  <fotoverite>and sketch just no code
21:24:39  <Raynos>Of course, feel free to work on the concept for your application before the competition starts: pretty hand-drawn pictures on napkins, angry email threads between team members on two-space or four-space indentation, schema designs, finite state machines. Just no digital assets including graphic design assets, code, etc.
21:24:47  <Raynos>no digital assets
21:26:16  <Raynos>substack, dominictarr: see repo
21:26:29  <substack>a repo is a digital asset
21:26:51  <substack>Raynos: just worry about it when the contest has actually started
21:27:18  <Raynos>I'd rather not waste the first 4 hours on getting organized
21:27:21  <Raynos>when we can do that now
21:27:53  <substack>"getting organized"
21:27:59  <substack>then don't get organized
21:28:10  <substack>get disorganized
21:29:09  <Raynos>i still want to know what the high level ideas are
21:29:13  <Raynos>and what we can parallelize on
21:29:29  <Raynos>i have absolutely no idea what the idea is
21:29:41  <substack>we already talked about it in here
21:30:02  <substack>wizard game where you reprogram the environment to capture magical energy
21:30:12  <substack>dominictarr and I also talked about it in person
21:30:51  <Raynos>ill get dominic to write a summary then
21:31:10  <substack>there are trees and monsters and rocks
21:31:26  <substack>they all have different magical capture / attack / defend profiles
21:31:45  <substack>and you can give or take energy from them when they are under your control
21:32:04  <substack>and they can also relay magical energy to other magical objects within range
21:32:16  <substack>but you need to reprogram all the objects to do your bidding
21:35:36  <guybrush_>lol cant wait to play this :DD
21:35:45  <guybrush_>like actual program the monsters?
21:36:15  <Raynos>substack: how does reprogramming work?
21:40:00  <substack>Raynos: you spend magic to overpower an item's defenses
21:40:11  <substack>then you can upload arbitrary code to it
21:41:13  <Raynos>and what does the code you upload do ?
21:41:35  <substack>executes the capabilities of the game objects
21:41:52  <substack>spending and capturing magic
21:43:01  <substack>and the code runs in your browser
21:47:43  * mikealquit (Quit: Leaving.)
21:55:00  <isaacs>Raynos: dude. so... i found something awesome.
21:55:06  <isaacs>and by awesome, i mean, broken.
21:55:10  <Raynos>isaacs: Is it called coffeescript?
21:55:15  <isaacs>dominictarr: you might like this too
21:55:18  <isaacs>calling all stream freaks :)
21:55:20  <Raynos>did you rewrite node core in Coffeescript
21:55:23  <Raynos>that would be awesome
21:55:42  <substack>beep boop
21:55:49  <isaacs>so.. we have this lowWaterMark in readable, right?
21:56:22  <Raynos>yes
21:56:27  <isaacs>which means that you dont emit a 'data' event (when in old mode) until you get N nubmer bytes buffered up
21:56:34  <isaacs>and you keep calling _read() until you get that many
21:56:47  <isaacs>(no 'data' event because no 'readable' event)
21:56:48  * CoverSlidejoined
21:57:06  <isaacs>so, let's say you have a duplex stream that is a connection to an echo server.
21:57:16  <isaacs>where i write one byte, then wait for you to echo it back to me
21:57:29  <isaacs>then write the next byte
21:57:43  <isaacs>or, even, i write 256 bytes, then wait for you to write anything, then call .end()
21:58:00  <isaacs>if the lwm is > the size of my chunk i'm sending, i'll wait forever.
21:58:26  * hij1nxquit (Read error: Operation timed out)
21:58:28  * hij1nx_joined
21:58:28  <isaacs>this has been making me so crazy :0
21:58:29  <Raynos>so you mean if the lwm > the entire content of the stream end gets buffered?
21:58:41  <isaacs>right, but you dont' know it's the "entire content" becasue it hasn't ended.
21:58:48  <isaacs>i have more, but i'm not sending it until you return.
21:59:04  <isaacs>it's like, if i say "hello" and you're waiting for 256 bytes, and i'm waiting for a response before i write any more.
21:59:16  * wiwilliaquit (Ping timeout: 248 seconds)
21:59:36  <isaacs>i think, for duplex streams (but not Transform, Readable, or Writable) the lowWaterMark should default to 0
22:00:12  <substack>I'm probably just going to keep using the old stream api
22:00:37  <substack>anyways I don't even use the api directly much
22:00:39  <isaacs>substack: the advantage is that it'll work
22:00:43  <substack>mostly through modules to handle it for me
22:00:45  <isaacs>substack: pause() will actually pause
22:00:49  <isaacs>substack: etc.
22:01:06  <isaacs>substack: you'll get a "finish" event for all writable streams (not just http responses)
22:01:43  <isaacs>substack: also, you don't get data events before attaching a 'data' listener.
22:01:58  <isaacs>substack: so like, all that piping to bufferstream bullshit can die in fires of regret and rage.
22:01:58  <substack>haven't run into these issues much
22:02:39  <isaacs>i guess i'm a magnet for these sorts of edge cases.
22:03:12  <isaacs>good janitors see dirt everywhere so that you don't see it anywhere.
22:04:55  <substack>dominictarr: so actually zookeeper is supposed to do all of this distributed systems stuff
22:04:57  <st_luke>janitors
22:05:18  <substack>ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of
22:05:22  <fotoverite>Too bad there are so few janitors
22:05:49  <substack>dominictarr: so instead of solving the problem in bite-sited pieces they went with an all-or-nothing approach
22:06:26  <substack>but that means that people currently using zookeeper might be a good place to look to win over adherents to crdt/seaport
22:08:48  <isaacs>substack, dominictarr: Talk to Mark Cavage.
22:09:16  <isaacs>substack, dominictarr: he'll tell you what crdt/seaport need to do to compete with zk. he HATES zk, like most zk users, but there is really no alternative.
22:09:25  <substack>haha awesome
22:09:33  <substack>so most of the things I think seaport has now in the latest version
22:09:38  <substack>it just needs multi-availability
22:09:44  <isaacs>substack: that's what it needs.
22:09:49  <isaacs>it needs zero-meat maintenance.
22:09:49  <substack>which should be really easy to add since all nodes are replicating with each other all the time
22:10:04  <isaacs>there cna be no meat in the system.
22:10:06  <substack>I might as well hack this out tonight then
22:10:09  <substack>should be super simple
22:10:10  <isaacs>it must be completely vegan.
22:10:15  <substack>will be a good 1.1 release
22:10:41  <substack>pretty sure I can fit all of this in under 400 lines
22:16:13  <rowbit>Hourly usage stats: [developer: 2, free: 32]
22:20:49  * shykeschanged nick to zz_shykes
22:31:17  * AvianFluquit (Remote host closed the connection)
22:33:19  <Raynos>substack: new streams are nice
22:33:40  <Raynos>substack: you wont notice your using new streams because imma bully dominictarr until through uses new streams
22:33:59  <dominictarr>I heard that
22:34:13  <Raynos>:D
22:34:55  <CoverSlide>any potential conflicts? performance issues with using old interface?
22:35:11  <Raynos>the only issue is you dont know whether your pipeline is in new or old mode
22:38:38  <isaacs>Raynos: so, i feel like this is something of a resolution to the debate we kept having.
22:39:01  <isaacs>Raynos: the fundamental difference between Duplex and Transform streams is that transforms can tolerate a non-zero low-water-mark
22:39:09  <isaacs>Raynos: whereas that's not safe for Duplex
22:39:22  <Raynos>I see
22:39:29  <isaacs>Raynos: while Transform streams are still a strict subset of Duplexes, the constrained semantics are relevant in this case.
22:39:36  <isaacs>Raynos: point to Raynos :)
22:39:49  <Raynos>Transform is also a further restriction
22:40:00  <Raynos>because it's transforming it's input and sending it to the output.
22:40:01  <isaacs>Raynos: i was arguing that the semantics are functionally equivalent, and that they differed only in implementation
22:40:04  <Raynos>half open transforms dont make sense
22:40:09  <Raynos>half open duplex makes sense
22:40:13  <isaacs>Raynos: actually, they do, sometimes
22:40:22  <isaacs>Raynos: the writable side can end way before the readable side
22:40:37  <Raynos>thats because of buffers
22:40:39  <substack>isaacs: http://teespring.com/pipe
22:40:53  <Raynos>Oh I see this is the difference
22:40:55  <isaacs>Raynos: no, i'ts because the output is not necessarily synchronously tied to the input
22:41:00  <Raynos>a transform has one internal buffer
22:41:10  <Raynos>where as a duplex has potentially two seperate buffers
22:41:24  <st_luke>substack: no american apparel option for this one :(
22:41:27  <isaacs>Raynos: you can write() and then end(), and not get any output until some arbitrary time in the future.
22:41:36  <substack>st_luke: is there much difference?
22:41:39  <isaacs>Raynos: but in the intervening time, the writable end is closed, but the readable is not.
22:42:11  <st_luke>substack: yeah, there's a huge difference in fit and comfort
22:42:29  <isaacs>substack: yeah, i'm kinda -- on hanes as well.
22:42:44  <isaacs>substack: also, large block drawing in th ecenter of the chest = not so good, i'm finding.
22:43:11  <st_luke>isaacs: we found that out the hard way with the empire shirts
22:43:24  <st_luke>no breathability
22:43:34  <isaacs>st_luke: yeah, my OakJS shirt is awesome, it's one of my favorites, but also somewhat unwearable if it's warm at all
22:43:55  <substack>I am always cold so I don't notice these things.
22:44:04  <isaacs>substack: that's because your bones are showing
22:44:26  <substack>anyways, implementing high availability
22:44:32  <isaacs>yes :)
22:44:33  <substack>s/high/multi/
22:44:38  <isaacs>substack ++ on the drawing, though
22:44:40  <isaacs>i dig it :)
22:44:42  <substack>then we can kill zookeeper once and for all
22:45:21  <st_luke>yeah, the drawing and colors are great
22:46:11  <guybrush_>awwwww i want the turtle with the rocket :/ maybe you can make another teespring with it? :p (i think pkrumins does it?)
22:46:59  <fotoverite>Please substack do this great service for the community and kill it off.
22:47:16  <substack>ONCE AND FOR ALL
22:47:18  <guybrush_>i didnt even know about zookeeper
22:47:30  <CoverSlide>it's just like doozer
22:47:41  <substack>INSANE LIKE AN AEROPLANE
22:47:41  <guybrush_>i dont know about doozer either :p
22:48:26  <CoverSlide>oh, well doozer is just like zookeeper :P
22:48:34  <guybrush_>got it
22:49:17  <guybrush_>well since substack is kill them anyway i dont have even try to understand them!
22:50:26  <Raynos>what is zookeeper
22:53:02  <substack>Raynos: it's like seaport only horrible and an apache project
22:53:07  <substack>http://zookeeper.apache.org/
22:54:08  <CoverSlide>horrible and apache project is a little redundant
22:59:46  <dominictarr>substack, holy shit. that is some serious "enterprise" level stuff.
23:01:29  <Raynos>> ZooKeeper is designed to be highly performant. But is it? The results of the ZooKeeper's development team at Yahoo! Research indicate that it is
23:02:54  <substack>floating notion of "performant" with no hard facts or relative comparisons!
23:04:47  <substack>that's how you know it's enterprise
23:06:00  <dominictarr>ZooKeeper has this thing about being consistent. but we are saying "fuck that" like ryah did about blocking IO.
23:06:16  <dominictarr>instead everyone needs to get used to eventually consistent
23:06:34  <CoverSlide>it's java right? java is enterprise
23:06:55  <dominictarr>yeah, it's java.
23:07:19  <dominictarr>isaacs, so who is this mark cavage guy? is he at joyent?
23:07:36  <isaacs>dominictarr: yes.
23:07:41  <isaacs>dominictarr: he's mcavage on the githubs
23:14:48  * zz_shykeschanged nick to shykes
23:16:13  <rowbit>Hourly usage stats: [developer: 0, free: 34]
23:16:50  <dominictarr>isaacs, Agree with you about your Transform vs Duplex distinction. It's exactly stuff like that.
23:27:21  <mbalho>dominictarr: when does that zed shaw talk get good? cause the first 5 minutes are naieve trolling
23:27:31  <dominictarr>about half way
23:27:49  <dominictarr>thats just zed, you have to tolerate it.
23:28:18  <dominictarr>he makes some interesting points about teaching programming too.
23:28:36  <mbalho>i feel like he invalidates his whole argument by being an idiot though :/
23:28:58  <fotoverite>What is his main good argument
23:29:03  <fotoverite>Zed is so hard to deal with
23:29:32  <substack>https://github.com/substack/destroyer
23:29:59  <dominictarr>I'm used to crazy people
23:30:18  <dominictarr>the trick is to just treat them like they are sane.
23:30:41  <dominictarr>just ignore the silly things they say and wait for the gems.
23:30:44  <mbalho>i feel like for everything he says i have to decide whether or not he is trolling and to what degree
23:32:36  <dominictarr>most of it it's just his Obnoxious Opinions
23:32:42  * tomshredsjoined
23:32:53  <dominictarr>(contrast with Humble Opinions)
23:33:26  <Raynos>zed shaw?
23:33:29  <dominictarr>yeah
23:33:41  <Raynos>raeltime or jsconf eu or dublin?
23:33:54  <dominictarr>webrebels
23:34:06  <dominictarr>like, for a lot of the things he says, it's doesn't matter whether you agree or not.
23:35:08  <dominictarr>it's just a detail that is not an important part of the story.
23:35:16  <dominictarr>it's an incidental detail
23:35:23  <dominictarr>just let those slide
23:41:21  <CoverSlide>where is this zed shaw talk?
23:41:51  <CoverSlide>substack: we don't need more ships! we need more horses and bayonets!
23:43:44  <guybrush_>actually the destroyer comes handy
23:43:52  <dominictarr>CoverSlide, http://vimeo.com/43380467
23:43:53  <guybrush_>for tests this is very usefull
23:43:59  <jjjohnnny>being an idiot does not exclude you from the making points party
23:45:16  <substack>guybrush_: yes I wrote it because I need it for some tests
23:56:39  <dominictarr>okay, time to get some rest.
23:56:52  <dominictarr>I have 4 flights in the next two days.