00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:57  * yorickquit (Read error: Connection reset by peer)
00:01:22  <rowbit>Hourly usage stats: [developer: 9, free: 5]
00:02:54  * maksimlinjoined
00:04:09  * phated__changed nick to phated
00:06:10  * pfraze_joined
00:10:25  * phatedquit (Read error: Connection reset by peer)
00:10:34  * phatedjoined
00:11:29  * rxgxjoined
00:20:17  * thlorenzjoined
00:29:39  * ednapiranhaquit (Quit: Leaving...)
00:32:58  * warbrettquit (Read error: Connection reset by peer)
00:35:36  * warbrettjoined
00:40:39  * domanicquit (Ping timeout: 252 seconds)
00:44:08  * domanicjoined
00:46:41  * warbrettquit (Read error: Connection reset by peer)
00:47:03  * warbrettjoined
00:53:48  * warbrettquit (Read error: Connection reset by peer)
00:54:19  * anvakajoined
00:54:20  * warbrettjoined
00:58:34  * warbrettquit (Read error: Connection reset by peer)
01:00:01  * warbrettjoined
01:01:22  <rowbit>Hourly usage stats: [developer: 0, free: 28]
01:01:52  * _contrahaxchanged nick to contrahax
01:06:10  * phated_joined
01:10:01  * phatedquit (Ping timeout: 264 seconds)
01:12:36  * phated_quit (Read error: Connection reset by peer)
01:12:40  * phatedjoined
01:24:45  * anvakaquit (Remote host closed the connection)
01:28:24  * thealphanerdquit (Quit: thealphanerd)
01:30:13  * kumavis_quit (Ping timeout: 272 seconds)
01:40:25  * tilgoviquit (Remote host closed the connection)
01:42:42  * thlorenzquit (Ping timeout: 245 seconds)
01:57:13  * jhieseyquit (Quit: jhiesey)
01:59:52  * calvinfo1quit (Quit: Leaving.)
02:05:39  * phatedquit (Read error: Connection reset by peer)
02:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 35]
02:06:18  * ceejbotquit (Remote host closed the connection)
02:08:20  * phatedjoined
02:11:20  * jxson_joined
02:14:53  * jxsonquit (Ping timeout: 252 seconds)
02:16:27  * jxson_quit (Ping timeout: 272 seconds)
02:20:41  * ferossquit (Ping timeout: 264 seconds)
02:22:24  * ferossjoined
02:28:03  * warbrettquit (Read error: Connection reset by peer)
02:28:34  * warbrettjoined
02:37:09  * kesslerquit (Ping timeout: 244 seconds)
02:38:32  * natemiquit (Ping timeout: 245 seconds)
02:39:02  * warbrettquit (Remote host closed the connection)
02:39:09  * phatedquit (Remote host closed the connection)
02:39:37  * warbrettjoined
02:40:06  * natemijoined
02:42:56  * kumavisjoined
02:43:48  * warbrettquit (Ping timeout: 255 seconds)
02:51:12  * addisonjquit (Quit: Connection closed for inactivity)
02:53:30  * contrahaxchanged nick to _contrahax
03:05:42  <rowbit>Hourly usage stats: [developer: 1, free: 34]
03:11:14  * thlorenzjoined
03:15:37  * thlorenzquit (Ping timeout: 245 seconds)
03:16:48  * domanicquit (Ping timeout: 260 seconds)
03:30:31  * rxgxquit (Quit: Connection closed for inactivity)
03:33:17  * ceejbotjoined
03:37:33  * ceejbotquit (Ping timeout: 240 seconds)
03:38:06  * ceejbotjoined
03:39:34  * ceejbotquit (Remote host closed the connection)
03:39:53  * ceejbotjoined
03:42:02  * brianloveswordsquit (Quit: Computer has gone to sleep.)
03:50:49  <jjjohnny>https://twitter.com/tmpvar/status/481275171139907584
03:51:07  * thealphanerdjoined
03:59:39  * calvinfojoined
04:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 41]
04:11:28  * Guest9280changed nick to JSON_voorhees
04:12:06  * thlorenzjoined
04:16:37  * thlorenzquit (Ping timeout: 264 seconds)
04:23:46  * kumavisquit (Read error: Connection reset by peer)
04:26:48  * dguttmanquit (Quit: dguttman)
04:47:07  * dguttmanjoined
04:50:34  * maksimlinquit (Remote host closed the connection)
04:53:03  * _contrahaxchanged nick to contrahax
04:55:53  * dguttmanquit (Quit: dguttman)
05:02:49  * pfraze_quit (Ping timeout: 264 seconds)
05:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 36]
05:05:43  * calvinfoquit (Read error: Connection reset by peer)
05:10:43  * ceejbotquit (Remote host closed the connection)
05:12:09  * contrahaxchanged nick to _contrahax
05:25:23  * calvinfojoined
05:26:01  <defunctzombie>I am about to ask for something that promises solve, but I want just the "resolved" part
05:26:25  <defunctzombie>is there a module that calls a callback if I have resolved something or waits for me to resolve it
05:26:33  <defunctzombie>without all the extra stuff of promises?
05:32:13  * calvinfoquit (Ping timeout: 264 seconds)
05:38:26  <defunctzombie>https://gist.github.com/defunctzombie/57b1a8970efaa4b90d2d
05:38:29  <defunctzombie>does this exist?
05:39:19  <defunctzombie>or is there a better name for this?
05:41:18  * ceejbotjoined
05:41:45  * maksimlinjoined
05:46:43  * ceejbotquit (Ping timeout: 272 seconds)
06:01:15  * ins0mniajoined
06:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 37]
06:13:30  * thlorenzjoined
06:18:00  * thlorenzquit (Ping timeout: 255 seconds)
06:33:16  * maksimlinquit (Quit: ChatZilla [Firefox 30.0/20140608211828])
06:36:50  * calvinfojoined
06:45:50  * phatedjoined
06:49:01  * shamaquit (Remote host closed the connection)
06:49:56  * calvinfoquit (Quit: Leaving.)
07:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 31]
07:14:04  * yoshuawuytsjoined
07:14:18  * thlorenzjoined
07:16:05  * yoshuawuytsquit (Remote host closed the connection)
07:18:44  * thlorenzquit (Ping timeout: 244 seconds)
07:21:39  * phatedquit (Remote host closed the connection)
07:37:08  * Maciek416quit (Remote host closed the connection)
07:39:08  * yoshuawuytsjoined
07:42:01  * fotoveritequit (Quit: fotoverite)
07:51:29  * benglquit (Ping timeout: 252 seconds)
07:56:17  * anvakajoined
08:00:20  * yoshuawuytsquit (Remote host closed the connection)
08:00:49  * taterbasequit (Quit: Connection closed for inactivity)
08:03:40  * bengljoined
08:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 58]
08:11:46  * yoshuawuytsjoined
08:32:12  * phatedjoined
08:34:39  * anvakaquit
08:35:38  * anvakajoined
08:37:05  * phatedquit (Ping timeout: 272 seconds)
09:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 97]
09:06:48  * shamajoined
09:08:56  * anvakaquit (Remote host closed the connection)
09:09:28  * anvakajoined
09:10:58  * dlmanningquit (Ping timeout: 240 seconds)
09:11:55  * shamaquit (Ping timeout: 272 seconds)
09:13:37  * anvakaquit (Ping timeout: 240 seconds)
09:19:29  * dlmanningjoined
09:37:41  * kesslerjoined
09:50:30  * thealphanerdquit (Quit: thealphanerd)
10:02:17  * kesslerquit (Ping timeout: 245 seconds)
10:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 65]
10:07:29  * shamajoined
10:11:52  * shamaquit (Ping timeout: 245 seconds)
10:17:24  * kesslerjoined
10:48:33  <kessler>ps aux | grep node
10:48:37  <kessler>woops :)
10:51:05  * yorickjoined
11:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 67]
11:08:16  * shamajoined
11:12:38  * shamaquit (Ping timeout: 240 seconds)
11:13:38  * kesslerquit (Ping timeout: 240 seconds)
11:16:44  * kesslerjoined
11:26:15  * kesslerquit (Ping timeout: 255 seconds)
11:37:17  * cpupquit (Ping timeout: 245 seconds)
11:38:19  * cpupjoined
11:38:32  * calvinmetcalfjoined
11:58:02  * sorribasjoined
12:00:39  * kesslerjoined
12:05:42  <rowbit>Hourly usage stats: [developer: 1, free: 60]
12:08:56  * shamajoined
12:11:11  * ceejbotjoined
12:13:30  * shamaquit (Ping timeout: 255 seconds)
12:34:33  * kesslerquit (Ping timeout: 240 seconds)
12:44:40  * shamajoined
12:48:57  * shamaquit (Ping timeout: 245 seconds)
12:51:30  * kesslerjoined
12:57:55  * dguttmanjoined
12:58:05  * domanicjoined
13:05:42  <rowbit>Hourly usage stats: [developer: 2, free: 63]
13:07:59  * ceejbotquit (Remote host closed the connection)
13:12:23  <rowbit>/!\ ATTENTION: (default-local) ac@....uk successfully signed up for developer browserling plan ($20). Cash money! /!\
13:12:23  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
13:16:44  * yoshuawuytsquit (Remote host closed the connection)
13:18:20  * yoshuawuytsjoined
13:45:24  * shamajoined
13:49:48  * shamaquit (Ping timeout: 255 seconds)
13:51:55  * kesslerquit (Ping timeout: 244 seconds)
13:57:48  * kesslerjoined
14:05:42  <rowbit>Hourly usage stats: [developer: 11, free: 91]
14:30:50  * taterbasejoined
14:45:58  * pfrazejoined
14:46:11  * shamajoined
14:50:33  * shamaquit (Ping timeout: 240 seconds)
14:56:08  * kesslerquit (Ping timeout: 240 seconds)
14:58:17  * kesslerjoined
14:58:50  * dguttmanquit (Quit: dguttman)
14:59:34  * dguttmanjoined
15:03:11  * shamajoined
15:04:41  * dguttmanquit (Ping timeout: 272 seconds)
15:05:42  <rowbit>Hourly usage stats: [developer: 10, free: 60]
15:09:54  * dguttmanjoined
15:10:24  * dguttmanquit (Client Quit)
15:11:30  * calvinfojoined
15:14:22  * dguttmanjoined
15:34:00  * calvinfoquit (Quit: Leaving.)
15:44:09  * ednapiranhajoined
15:48:23  * Maciek416joined
15:56:42  * fotoveritejoined
15:58:59  * brianloveswordsjoined
15:59:11  * sorribasquit (Quit: Connection closed for inactivity)
16:01:25  * calvinfojoined
16:01:38  * tilgovijoined
16:03:49  * anvakajoined
16:05:42  <rowbit>Hourly usage stats: [developer: 22, free: 48]
16:08:29  * niftylettuce_joined
16:18:48  * addisonjjoined
16:36:42  * anvakaquit
16:36:56  * anvakajoined
16:43:49  * anvakaquit (Remote host closed the connection)
16:46:37  * jxsonjoined
16:47:29  * warbrettjoined
16:55:31  * ceejbotjoined
17:05:42  <rowbit>Hourly usage stats: [developer: 2, free: 28]
17:23:00  <mikolalysenko>it seems like a lot of the next generation package managers are going for github/url based packages
17:23:21  <mikolalysenko>not sure how I feel about this without some kind of signing mechanism
17:31:52  <guybrush>you can sign your commits witgh gpg, or do you mean something else?
17:32:03  * yoshuawuytsquit (Remote host closed the connection)
17:32:40  <guybrush>i like it somehow, but semver is a problem with git
17:33:57  <guybrush>i think a good solution would be to put version-informations into something besides the actual git-urls
17:34:17  <guybrush>like a npm which _only_ manages versions for git-urls
17:34:38  <guybrush>and nothing but versions
17:35:53  <guybrush>so you can add your git-url in this gitversions-registry and create versions which point to sha1
17:36:41  <mikolalysenko>I was thinking of something like namecoin
17:37:15  <guybrush>ooh i think i saw you writing about this in here
17:37:28  <guybrush>like a dht for versions
17:37:35  <mikolalysenko>I want some way to verify that if I install version x.y.z of module foo, it really is foo x.y.z and not the NSA's foo x.y.z + secret backdoor
17:38:03  <mikolalysenko>or even less maliciously, if the author decides to retcon a version then I won't screwed by their (possibly well intenioned) revisions
17:38:23  <guybrush>right thats one of the cool features of git :D
17:38:24  <mikolalysenko>basically github/urls don't enforce the immutability of published modules
17:38:33  <guybrush>since you can sign your commits with gpg
17:38:45  <mikolalysenko>hmm
17:39:08  <mikolalysenko>but if I just specify a url in my package.json, how would I verify that?
17:39:08  <guybrush>so when you know the sha1 you can be pretty damn sure its the source you want
17:39:25  * kesslerquit (Ping timeout: 264 seconds)
17:39:28  <mikolalysenko>I would need to include the pgp key in the package.json for that version too I think
17:39:50  <guybrush>well the commit-message is used to create the sha1
17:40:19  <mikolalysenko>yeah, I agree there are ways this could be implemented
17:40:39  <mikolalysenko>but the problem is that without some central registry of package names/hashes it doesn't do you any good
17:40:50  <guybrush>yes
17:40:50  <mikolalysenko>or else you would have to specify the hash code in your package.json
17:41:09  <guybrush>semver in general is just not a feature of git :D
17:41:34  <mikolalysenko>well, you could just add a file to git like package.json and use that to track versions
17:41:37  <guybrush>since there is nothing but the sha1 which is permanent and solid
17:41:49  <mikolalysenko>yeah, but even that has problems
17:41:49  <guybrush>right! i thought about that too
17:42:13  <guybrush>yes i think its complicated since you just can change the file anyway
17:42:23  <mikolalysenko>since if I identify a module by a url, there is nothing stopping that remote server from arbitrarily changing the contents of the gitrepo/whatever
17:42:24  <guybrush>its like using the tag-names or branch-names
17:42:35  <guybrush>sure
17:42:38  * phatedjoined
17:42:41  <guybrush>but i use git to download
17:42:41  <mikolalysenko>or even of having that server go down/move to a new location
17:42:43  <guybrush>not the url
17:42:48  * kesslerjoined
17:43:09  <mikolalysenko>the real issue is that urls are not suitable for naming packages/modules
17:43:26  <mikolalysenko>a central authority (like npm) is a valid solution, but it is not distributed
17:43:36  <mikolalysenko>systems like namecoin seem better, but no one is doing this today
17:45:01  <guybrush>i guess you could just put all the npm packages into torrents and track them
17:45:12  <mikolalysenko>yeah or however else you want to do it
17:45:31  <mikolalysenko>distribution is really a separate problem from signing/naming
17:45:54  <guybrush>right i see
17:46:04  <guybrush>not sure about this namecoin
17:46:27  <mikolalysenko>it seems like a reasonable platform, and I think it would work
17:46:49  <mikolalysenko>unlink btc it also ensures the uniqueness of names
17:47:26  <guybrush>so
17:47:46  <guybrush>it would basically just be names->hashsums?
17:48:03  <guybrush>then i load the package from anywhere and use namecoin to verify
17:48:10  <mikolalysenko>yep
17:48:15  <guybrush>it sounds really nice
17:48:19  <mikolalysenko>namecoin securely does the first part
17:48:27  <mikolalysenko>and the rest is whatever you want (ipfs maybe? :) )
17:49:06  <mikolalysenko>it could be just some big dht really
17:50:05  <guybrush>well you can just put it into torrents AND on github AND on npm and and and
17:50:39  * warbrettquit (Read error: Connection reset by peer)
17:50:54  <guybrush>as long as there is some unique registry where you can find the hashsums+urls
17:51:11  <mikolalysenko>yeah, or really package name + hashsum
17:51:20  <mikolalysenko>doesn't need to be a url
17:51:24  <guybrush>but then how do you know where to download?
17:51:36  <mikolalysenko>you could have different registries and mechanisms
17:51:48  <guybrush>oh i see its really not so important
17:51:55  <mikolalysenko>for example a big dht of all the modules ever published, where you give it the hashsum and it pulls it down for you
17:52:04  <mikolalysenko>and then you verify that with the key in the registry
17:52:18  <guybrush>so the name has to include versions too
17:52:22  <mikolalysenko>yes
17:52:39  <mikolalysenko>the package name would be: packagename@major.minor.patch
17:52:49  <guybrush>yes you convinced me it would be really cool thing :D
17:53:00  <mikolalysenko>it is obviously how it should work. but no one is doing it yet
17:53:09  <mikolalysenko>though npm is a valid solution too
17:53:17  * warbrettjoined
17:53:35  <guybrush>right
17:53:36  <mikolalysenko>I think a central authority is a fine solution in the short term, just like dns/ca systems are fine solutions too
17:54:03  <mikolalysenko>but the real issue is that the fake "distributed" url system that package managers like go get or component use is problematic
17:54:09  <mikolalysenko>because they get the worst of all worlds
17:54:40  <guybrush>hm yes
17:55:15  <mikolalysenko>if you want to create a distributed package manager, which is a noble goal I think, then you need to address the naming and immutability problem somehow
17:55:53  <mikolalysenko>the consequence of failing to do this is your code can suddenly fail due to the failure of a remote server
17:56:26  <mikolalysenko>whereas if you have a naming system, then the module can survive even if its original host machine dies
17:57:33  <mikolalysenko>basically package managers like go get or bower really amount to a glorified wget/curl implementation
17:58:03  <mikolalysenko>cargo and component are one step above this, in that they use the npm trick of copying modules, but are not secure
17:58:09  <mikolalysenko>npm is secure, but not distributed
17:58:34  <mikolalysenko>afaik, nothing out there is doing distributed secure modules
18:00:42  * thealphanerdjoined
18:00:59  <mikolalysenko>oh and I forgot to also mention the "joke" package managers, like pip, which don't do module copying, have a central authority, and are generally widely despised
18:01:36  * thealphanerdquit (Client Quit)
18:04:37  * thealphanerdjoined
18:05:42  <rowbit>Hourly usage stats: [developer: 8, free: 37]
18:10:35  * jhieseyjoined
18:11:51  * jxson_joined
18:13:47  * phated_joined
18:15:17  * jxsonquit (Ping timeout: 264 seconds)
18:17:13  * phatedquit (Ping timeout: 264 seconds)
18:17:51  * _contrahaxchanged nick to contrahax
18:20:22  * phated_quit (Read error: Connection reset by peer)
18:20:28  * jxsonjoined
18:20:29  * phatedjoined
18:21:33  * pfallenopquit (Ping timeout: 240 seconds)
18:24:03  * jxson_quit (Ping timeout: 240 seconds)
18:24:26  * niftylettuce_quit (Quit: Connection closed for inactivity)
18:27:27  <domanic>mikolalysenko, all the central registry really needs to do is assign module names to public keys
18:28:10  <domanic>I'd request a name from the registry, it would respond with a certificate that says by public key is now responsible for the name X
18:28:51  <domanic>then, I can publish blobs (id'ed by hash(content))
18:29:16  <domanic>and sign (my_key, name@version->hash(content))
18:29:49  <domanic>then distribute that along with the cert from the registry that says I own that name.
18:31:09  * captainplanetjoined
18:31:10  <domanic>use http and urls to retrive it if you want, but the url has to contain the hash
18:31:32  <domanic>then any one can mirror a subset (if they want) no problems
18:32:03  <domanic>you could even have namespaces - the main registry would sign a cert that says I own a name space
18:32:18  <domanic>I could even create my own registry to give out names under that name space
18:33:31  <domanic>of course - you could use a namecoin or a proof of stake thing (stake == module publishing?) but that is complex unless there is a good implementation available
18:33:33  * thealphanerdquit (Quit: thealphanerd)
18:33:33  * captainplanetchanged nick to thealphanerd
18:33:34  * jxson_joined
18:34:46  <domanic>also, once you own a name - you can sign updates to it without consulting the registry, this would be cool because you could publish offline
18:35:17  <substack>or publish to a mirror
18:35:47  <domanic>publish anywhere ... you'd just announce the cert + tarball hash
18:36:16  <domanic>you could also treat the hash(user_pubkey) as a name space
18:36:17  * jxsonquit (Ping timeout: 264 seconds)
18:36:57  <domanic>so you could always install hash(substack_key)/browserify
18:37:41  <domanic>I guess the only thing is sometimes your system would have to search through a few databases to find a given hash
18:40:00  * contrahaxchanged nick to _contrahax
18:45:38  <domanic>in this model - the registry is just a key that assigns namespace certs to other keys
18:45:52  <domanic>and the other keys, do the same, but to their own namespace
18:51:49  <domanic>so, a namespace is just an append-only list of signed name-> hash tuples
18:52:33  <mikolalysenko>domanic: yeah, though again you could build this on top of namecoin
18:53:21  <domanic>and if the hash is of a public key, (maybe include a type field) it would become the key that makes signatures under that name.
18:53:44  <domanic>mikolalysenko, sure - that is kinda expensive though, what with proof of work, etc
18:53:57  <mikolalysenko>I think it would be fine actually
18:54:13  <mikolalysenko>you don't really need realtime publishing for modules, it should be ok to wait a few minutes before it goes live
18:54:39  <mikolalysenko>and downloading / verifying from namecoin would be very fast
18:54:45  <domanic>... as long as there is a way to install it into another module immediately
18:55:04  <mikolalysenko>well, you could always have local offline mechanisms for rapid debugging and so on, like npm link etc.
18:55:24  <mikolalysenko>the namecoin system would just be for the final publishing step when you are ready to ship something
18:56:03  <mikolalysenko>one downside though is you would have to buy namecoins to publish modules
18:56:10  <mikolalysenko>which is more expensive than npm
18:56:35  <domanic>buying a namecoin == mining a namecoin?
18:56:41  <mikolalysenko>either way
18:56:43  <mikolalysenko>someone has to mine it
18:56:49  <mikolalysenko>and then they can sell it later on a market
18:56:56  <mikolalysenko>but you need to spend namecoins to register names
18:57:05  <mikolalysenko>and the miners will collect those coins as transaction fees
18:57:08  * gozalajoined
18:57:12  <mikolalysenko>in exchange for doing the work of securing the network
18:57:56  <domanic>I don't know if paying for module names is really an improvement over npm, decentralized or not
18:58:04  <mikolalysenko>that is true
18:58:35  <mikolalysenko>I am also not sure that the central authority model npm uses is really that terrible
18:58:54  <mikolalysenko>at least as long as npm continues to act in good faith, it is a fine solution
18:59:20  <domanic>well, as long as it's not a monolopy
18:59:40  <mikolalysenko>though for other languages out there like rust, go, etc. that want to green field their own package management systems I don't understand why they wouldn't want to try for this type of approach
19:00:14  <mikolalysenko>I believe that npm's approach is technically defensible and rational, but systems like go get seem like a step backward
19:00:14  <domanic>... it's still a bit madscience though...
19:00:18  <mikolalysenko>oh yeah
19:00:28  <domanic>unless stackvm builds the package manager!
19:01:26  <domanic>mikolalysenko, non of the other languages can have a pm as nice as npm unless they also support version conflicts, i.e. something equiv to node_modules pattern
19:01:51  <mikolalysenko>cargo does this actually
19:01:56  <mikolalysenko>which is the rust package manager
19:02:12  <mikolalysenko>but it also uses the same system as component for naming modules
19:02:23  <domanic>oh really? can one application use 2 versions of module X?
19:02:23  <mikolalysenko>so the individual packages themself are identified by urls
19:02:26  <mikolalysenko>yes
19:02:29  <mikolalysenko>it uses semver
19:02:42  <mikolalysenko>go does not, but their system is kind of lame
19:02:44  <domanic>and it gets them off github?
19:02:52  <mikolalysenko>or wherever you want
19:03:17  <mikolalysenko>it is pretty much exactly the same thing as component
19:03:18  <domanic>ah... and I suppose it doesn't store the hash anywhere...
19:03:22  <mikolalysenko>yeah
19:03:35  <mikolalysenko>and it has a brand new screwy configuration language
19:03:39  <mikolalysenko>called toml or whatever
19:03:55  <mikolalysenko>but other than that, it seems ok
19:04:00  <domanic>right so: it installs into a local folder, but can't load X@1 and X@2 into same application?
19:04:06  <mikolalysenko>no, it can
19:04:16  <mikolalysenko>it will install multiple versions if needed
19:04:30  <mikolalysenko>it uses exactly the same system as tjholowaychuk's component package manager essentially
19:05:02  <mikolalysenko>you give it git repos and it grabs modules by searching over the versions
19:05:29  <mikolalysenko>it isn't a bad idea, but the problem is if someone does a git rebase, a server goes down, someone mitms you, then it will fail
19:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 32]
19:05:57  <mikolalysenko>and then you end up in the sort of bad scenario, which is the same as development pre-npm, where people are scared to use dependencies
19:06:00  <domanic>hmm, so it's TOML is basically just INI but different
19:06:05  <mikolalysenko>because they might break, and increase the rate of bit rot
19:06:26  <mikolalysenko>yeah, pretty much. it looks like nih syndrome to me, but maybe there is a reason for it
19:06:48  * warbrettquit (Read error: Connection reset by peer)
19:07:02  <domanic>well, it looks like it supports a few things that ini doesn't... like arrays and what not
19:07:36  * warbrettjoined
19:08:34  <mikolalysenko>I think it looks like an act of pure narcissism, though the same can be said for many efforts in creating programming languages or reinventing ecosystems
19:09:18  <domanic>yeah... well at least he named it after himself so that is obvious!
19:09:31  <mikolalysenko>hahaha
19:10:11  <domanic>I think the better easy config lang that maps json is yamlish
19:10:21  <domanic>https://github.com/isaacs/yamlish
19:10:37  <domanic>yaml is too complex, yamlish is just the simple parts
19:11:49  <mikolalysenko>yeah, I don't know.
19:12:07  <mikolalysenko>this seems like one of those bikeshed problems that doesn't really matter, and where egos get really caught up in it
19:12:55  <domanic>yeah, exactly...
19:13:20  <guybrush>it does matter, it matters when everyone uses its own thing
19:13:41  <guybrush>its not critically but it matters imho
19:14:35  <domanic>mikolalysenko, what about having some sort of gpg style web of trust... where you basically request a user name by requesting it from other users
19:15:08  <mikolalysenko>not sure how it would work
19:15:53  <domanic>or, have you heard of proof-of-stake?
19:16:16  <mikolalysenko>no, what does that mean?
19:17:14  <domanic>so one way to look at the POW is that all the nodes draw a straw to be the master node for that round
19:17:53  <domanic>in POS nodes are picked proportionally to their stake in the network (i.e. how many bitcoins they own, or in this case, how many modules they published?)
19:18:39  <domanic>it picks say, 5 nodes, by the hash of the block (or similar) and they all sign the block
19:19:22  <domanic>any node can then look at that block, and confirm that those are the nodes that ought to have signed it
19:19:59  <domanic>brb... food
19:20:03  <mikolalysenko>ok
19:31:34  * warbrettquit (Read error: Connection reset by peer)
19:32:25  * warbrettjoined
19:32:27  * _contrahaxchanged nick to contrahax
19:33:01  * contrahaxchanged nick to _contrahax
19:39:03  * kesslerquit (Ping timeout: 240 seconds)
19:45:43  * brianloveswordsquit (Quit: Computer has gone to sleep.)
19:47:03  <nrw>substack, you around?
19:52:31  <jbenet>mikolalysenko + guybrush: see https://github.com/jbenet/random-ideas/issues/19 - "Let's Stop Installing Packages" basic idea: mount the package registry using something like ipfs (or something similar)
19:54:19  <jbenet>mikolalysenko: namecoin is not the right solution IMO. We need only the ability transmit a small number of addresses of namespace roots (today, that's DNS anycast roots, tomorrow, it's hashes of different namespaces), and then do whatever within those, using self-certified naming. See SFS (old paper from mazieres, who wrote kademlia). IPFS aims to do it as
19:54:19  <jbenet>IPNS.
19:54:42  <mikolalysenko>interesting idea, though how do you would need to handle the diamond dependency/deduplication issue
19:54:55  <mikolalysenko>but you could maybe do that using a look up step on top of ipfs
19:55:17  <jbenet>mikolalysenko: just mount ../npm/package/packagename/version or ../npm/package/packagename@version
19:55:27  <mikolalysenko>hmm
19:55:35  <mikolalysenko>and the versions would be persistent/immutable?
19:55:49  <jbenet>and the things inside, like if A@1 includes C@1 and C@1 includes B@2, they each have links to the right one.
19:56:02  <jbenet>_nothing_ is duplicated (because of content addressing)
19:56:04  <jbenet>yep.
19:56:08  <jbenet>immutable versions.
19:58:48  * pfrazequit (Ping timeout: 255 seconds)
20:00:30  <jbenet>mikolalysenko: https://github.com/jbenet/random-ideas/issues/19#issuecomment-47022783 example.
20:01:41  <jbenet>ah, i see domanic was also discussing that stuff. o/
20:02:22  <jbenet>and since rust was mentioned: https://github.com/jbenet/random-ideas/issues/22 -- automatic semver
20:04:26  <jbenet>domanic, on PoS, it seems to work, but idk. some crypto people are very skeptical. but nobody's found an attack.
20:05:42  <rowbit>Hourly usage stats: [developer: 1, free: 41]
20:18:46  <domanic>jbenet, yeah - it's not as obviously simple as PoW
20:20:21  <domanic>jbenet, mikolalysenko one thing that I think is important about modules is that you declare your deps via a flexible version ranges that represent the interfaces that you can use, some interface changes are okay some are not, etc.
20:21:02  <domanic>being able to be crypto-precise would rule, but it would be a pain if you could no longer have the convienence of ranges.
20:21:15  <jbenet>domanic: no no, we can have ranges
20:21:20  <jbenet>that's what namespaces are for
20:21:27  <jbenet>namespace maps name -> hash
20:21:48  * brianloveswordsjoined
20:21:54  <domanic>ah right, so when I install I add a simlink into that version?
20:22:11  <jbenet>it's technically a hard link
20:22:18  <jbenet>because it's just the hash :)
20:22:31  <domanic>sure, well, a link either way
20:22:40  <jbenet>you could add a symlink too, and resolve it on demand
20:23:06  <jbenet>yeah sorry, dont mean to be pedantic, it's just that symlinks make everything really confusing sometimes
20:23:14  <domanic>so could I still update the dependencies in my 'install' of your module?
20:23:27  <jbenet>(so do hard links in kernel filesystems >.<)
20:24:17  <jbenet>domanic hm, good point, not without patching it.
20:25:05  <jbenet>which would technically be another version of the original module. so yeah, for that you probably want a symlink
20:25:34  <jbenet>could also see the semver resolution things happening with a mounted npm registry (that wraps ipfs, but does semver specific stuff)
20:25:49  <jbenet>like resolve ~1.2.3 or ^1.2.3 etc.
20:26:23  <domanic>If I mount my own namespace and do writes, is that publishes?
20:26:55  <domanic>because in that case it might be better to checkout into a mutable workspace, a la git
20:27:40  <domanic>at the end of the day, that is an application layer thing, not part of the fundementals of ipfs
20:31:47  <jbenet>domanic yeah, i think each pkg mgr would want to do a set of special things, so really just wrapping ipfs.
20:34:14  * _contrahaxchanged nick to contrahax
20:34:49  <domanic>right, yeah either way, at the end of the day we probably need something to reliable to build this on top of, such as ipfs
20:35:22  <domanic>but due to the commitment to get that thing right, it needs to be more broardly useful than just a packagemanger.
20:35:54  <domanic>jbenet, by the way, i was wondering... what made you change the name from galactic file system to interplanetary file system?
20:36:47  <ogd>http://research.google.com/archive/gfs.html
20:37:36  <ogd>i also met https://en.wikipedia.org/wiki/Ramanathan_V._Guha and https://en.wikipedia.org/wiki/Qi_Lu this weekend, they were interested in dat! hahaha
20:41:06  <ogd>http://videolectures.net/iswc2013_guha_tunnel/
20:45:38  <jbenet>Yep gfs and a vote
20:45:41  <jbenet>https://github.com/jbenet/ipfs/blob/master/README.md#why-the-name-ipfs
20:46:28  <jbenet>Most people preferred ipfs over gfs. In a very significant sampling of like 15 ppl :]
20:47:15  <jbenet>Ogd rhats awesome!
20:48:23  <ogd>yea qi lu told me that moving data between teams was one of the biggest challenges he is looking into right now
20:48:44  <ogd>(for the 15,000 engineers that work for him hahahaha)
20:50:24  <domanic>ah. I guess it's too late now, and doesn't reference licklider, but I can't help but be bermused by this name: "Whole Earth File System" which feels like it fits ipfs too!
20:50:33  * pfraze_joined
20:51:01  * kesslerjoined
20:52:34  * calvinfoquit (Quit: Leaving.)
20:53:22  * calvinfojoined
20:55:47  <ogd>whole earth file system!!!!
20:56:04  <ogd>so awesome
20:56:09  * contrahaxchanged nick to _contrahax
20:56:21  <jbenet>yeah it's a pretty good name too
20:56:53  <jbenet>domanic, open an issue and make a case :D it's not too late until it's deployed.
20:56:56  <ogd>only because the whole earth catalog was basically the internet before the internet
20:57:08  <jbenet>(though having "IP" in the name is useful)
20:57:26  <jbenet>ogd: let's go hang out with stewart brand
20:57:45  <jbenet>he's around, and opening Interval soon
20:57:50  <jbenet>https://longnow.org/interval/
20:57:55  * jhieseyquit (Quit: jhiesey)
20:58:09  <domanic>jbenet, ogd yes! also I'll be in california next week!
20:58:10  <jbenet>I'd basically like to live there.
20:58:11  <ogd>i went over to his tugboat a couple years ago, he might invite me back if i ask nicely :)
20:58:18  <jbenet>domanic !! awesome!
20:58:36  <jbenet>domanic: need a place to stay?
20:59:50  <domanic>jbenet, I am always ready to accept an invitation!
21:00:41  <ogd>ok ill email stewart, how should i pitch it?
21:01:07  <ogd>discussion on the interplanetary filesystem with a cyberhobo?
21:01:36  <ogd>we should appeal to the cultural revolution angle though, that may be too dry
21:02:13  <jbenet>domanic: awesome, lmk dates you're here. I can offer up guest room for a couple days in a large shared house with a bunch of cool people.
21:02:57  <jbenet>ogd: the pitch for both brewster and stewart: ipfs can make the web Permanent!! because all the links can be resolved and backed up!
21:02:58  * jhieseyjoined
21:03:15  <jbenet>ipfs pin -r <hash>
21:03:50  <jbenet>and, filecoin wants to incentivize the entire world to backup all the data for us
21:04:07  <jbenet>ogd i'll draft something and send it your way
21:04:12  * yoshuawuytsjoined
21:04:16  <ogd>kewl
21:04:20  <domanic>jbenet, Okay, I'll figure it out... I'll be in the states for about 10 weeks and will be travelling around a bit
21:04:35  <ogd>i wanna get his advice on dat as it relates to open science data as well
21:05:42  <rowbit>Hourly usage stats: [developer: 4, free: 32]
21:09:28  <jjjohnny>lazy q: a process running a server; is it trivial to proxy from and to another server over stdio?
21:10:43  <jjjohnny>basically: is http proxy over stdi/o EZ?
21:11:41  <ogd>domanic: what day do you arrive
21:12:11  <domanic>ogd, the 30th
21:12:15  <ogd>coo
21:14:55  <domanic>ogd, just realized the long now clock is rather reminicest of the clock tower in Anathem
21:15:12  <domanic>or the otherway around, rather
21:20:42  <jbenet>ogd: sent. i went way overboard... cut it to shreds.
21:20:56  <ogd>cool will do
21:21:13  <jbenet>and yeah, add more dat science specific stuff. Not sure he cares about science as much as he did before.
21:21:18  <jbenet>civics might be a good route too
21:21:40  <jbenet>or instead of "civics", empowering people with data about their life + world + government
21:21:44  <jbenet>data and dataviz.
21:21:50  <ogd>haha i wrote a similar email just now
21:21:51  <jbenet>ogd o/
21:21:53  <ogd>will merge
21:21:54  <jbenet>hahahah
21:22:09  <ogd>mine started with: Hi Stewart, We met
21:22:10  <domanic>ogd, jbenet https://github.com/jbenet/ipfs/issues/7
21:22:35  <jbenet>sweet :)
21:23:12  <jbenet>hey guys, I made a #ipfs, it seems like a lot of discussion is happening on this and i dont wanna crowd out #stackvm, #dat, and #webtorrent.
21:24:35  <jbenet>ogd mafintosh domanic feross substack mikolalysenko guybrush groundwater_ o/
21:25:35  <mikolalysenko>checking it out
21:26:18  <domanic>jbenet, but this is exactly the sort of discussion that belongs in stackvm!
21:27:33  * calvinfoquit (Quit: Leaving.)
21:28:34  <jbenet>domanic: haha okay then. well, i expect we'll use #ipfs for implementation details as it evolves.
21:33:05  <ogd>ok i tried to bait him by using an extra juicy description of domanic
21:33:45  <ogd>oh btw i met stephen levy this weekend, and told him that it was because of his work that i haven't cut my hair in 6 years and worship the unix philosophy
21:33:50  <jjjohnny>gonna type out this README.js with the syntax right chea
21:34:08  * phatedquit (Read error: Connection reset by peer)
21:34:21  * phatedjoined
21:35:33  <jbenet>ogd: that email --> http://www.reactiongifs.us/wp-content/uploads/2013/03/slow_clap_citizen_kane.gif
21:35:51  <jbenet>ogd: hahahhaha thats awesome
21:35:58  <ogd>:)
21:36:00  <jbenet>we should have a UnixCon
21:36:08  <ogd>oooh yea
21:36:21  <jbenet>for projects following unix philosophy
21:36:28  <ogd>unixconf.com is available
21:36:35  <jbenet>we should invite rob pike and ken thompson
21:36:44  <jbenet>winning!!
21:36:55  <ogd>ill buy it
21:36:59  <pfraze_>it should be a lot of small conferences that you can compose together
21:37:00  <ogd>cause this should happen
21:37:03  <ogd>hah
21:37:08  <jbenet>pfraze_ hahahahhaha
21:37:31  <jbenet>substack o/
21:39:54  <jjjohnny>help i need a good module for inspecting directories
21:40:37  <jbenet>ls-stream?
21:42:39  <rowbit>substack, pkrumins: testling server iphone6, ipad6 (osx, browserling1 user) is down!
21:43:09  <jjjohnny>i'll try it
21:43:09  <rowbit>substack, pkrumins: testling server safari6 (osx, browserling1 user) is down!
21:43:28  <rowbit>substack, pkrumins: testling server android (osx, browserling1 user) is down!
21:47:12  <domanic>I have been meaning to have a punk rock conf for bash.
21:48:02  <domanic>i.e. a back to basics revolt against the over the topness of prog rock that javascript conferences have become
21:48:28  <ogd>lol
21:51:30  * yoshuawuytsquit
21:51:35  * yoshuawuytsjoined
21:55:54  <jbenet>hahah
22:02:05  * jhieseyquit (Quit: jhiesey)
22:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 33]
22:15:38  * ceejbotquit (Remote host closed the connection)
22:18:21  * ceejbotjoined
22:22:02  * brianloveswordsquit (Quit: Computer has gone to sleep.)
22:25:59  * yoshuawuytsquit (Remote host closed the connection)
22:26:58  * brianloveswordsjoined
22:28:26  <thealphanerd>Raynos / substack / ogd : do you guys have a prefered folder structure / work flow for building reusable browserify modules?
22:29:17  <ogd>thealphanerd: for me 'reusable' and 'browserify' are implied by 'module' :)
22:29:39  <thealphanerd>:P
22:29:43  <ogd>thealphanerd: and in terms of folder structure no, i just have some js files that relative require each other, sometimes i have a subfolder for css, js etc
22:30:06  <thealphanerd>I’ll rephrase… I’m trying to develop a workflow that can be reused by developers to create widgets over at famo.us
22:30:16  <thealphanerd>we now have a common version of the platform
22:30:22  <thealphanerd>which will be released publicly via npm soon
22:30:54  * ceejbotquit (Remote host closed the connection)
22:31:12  <thealphanerd>I am in the process of rebuilding our university app with common / browserify, and in the process trying to come up with a cannonical design pattern
22:31:42  <ogd>thealphanerd: for me its npm init, npm install --save <dependencies, npm install --save-dev <development dependencies>, make sure `npm test` runs the test suite, make sure `npm start` starts a local dev server (if applicable)
22:32:44  * ceejbotjoined
22:35:15  <thealphanerd>and then you can have different entry points for the app depending on if it is being run via node or npm right?
22:37:04  <ogd>thealphanerd: do you mean node or browserify?
22:37:12  <thealphanerd>a doy
22:37:14  <thealphanerd>yeah
22:37:33  <ogd>well sort of, you can use the 'browser' field in package.json to override dependencies
22:38:00  * brianloveswordsquit (Quit: Computer has gone to sleep.)
22:38:25  <thealphanerd>have you ever used level-browserify?
22:39:29  <thealphanerd>is it a reasonable solution to managing data on the client?
22:42:08  <ogd>yea i wrote it, it works well when you are on browsers that have indexeddb
22:43:04  * ceejbotquit (Remote host closed the connection)
22:43:51  * yoshuawuytsjoined
22:45:45  * ins0mniaquit (Ping timeout: 272 seconds)
22:46:06  <Raynos>thealphanerd: yep
22:46:35  <Raynos>~/projects/{{npm-name}}/index.js & ~/projects/{{npm-name}}/package.json & ~/projects/{{npm-name}}/test/index.js
22:46:55  <Raynos>thealphanerd: https://github.com/Raynos/ngen/tree/master/templates/raynos/content
22:47:07  <thealphanerd>awesome!!!
22:47:13  <thealphanerd>Raynos: this is exactly what I’m looking for
22:47:19  <thealphanerd>what are you using to template?
22:47:22  <thealphanerd>mustache?
22:47:26  <Raynos>here's an upto https://github.com/uber/uber-ngen/tree/master/templates/uber/content thing
22:47:46  <Raynos>its not mustache, it's ghetto mustache. https://github.com/uber/uber-ngen/blob/master/index.js#L201-L203
22:47:57  <thealphanerd>LOLOL
22:48:06  <Raynos>there's an upto date version for how we do uber templates and there is my personal one
22:48:06  <thealphanerd>we were using hogan on one of the last projects
22:48:12  <thealphanerd>I like that the binary included is called hulk
22:48:17  <Raynos>I'm working on some awesome CLI tooling infrastructure at uber that will be open source at some point
22:48:21  * calvinmetcalfquit (Quit: Connection closed for inactivity)
22:48:35  <Raynos>thealphanerd: I want to update it to https://github.com/Matt-Esch/string-template
22:48:39  <thealphanerd>sounds like you are solving similar problems to what andrew and I are doing
22:48:42  * phatedquit (Read error: Connection reset by peer)
22:48:56  <Raynos>different focus :)
22:49:01  <thealphanerd>definitely
22:49:06  <Raynos>all backend atm
22:49:08  * phatedjoined
22:49:13  <thealphanerd>but more in the workflow space
22:49:17  * yoshuawuytsquit (Remote host closed the connection)
22:49:18  <thealphanerd>defining processes
22:49:22  <Raynos>yeah
22:49:31  <Raynos>we have a `playdoh create` thing that prompts you for ALL THE THINGS
22:49:32  * ceejbotjoined
22:49:37  <thealphanerd>hehe
22:49:42  <thealphanerd>I had the yeoman generator that I made
22:49:54  <thealphanerd>although this new browserify stack is so much more elegant than the grunt monstrosity
22:50:02  <Raynos>I'll push for open sourcing things in the next couple of weeks, we are open sourcing playdoh-dev & playdoh-server
22:50:07  <thealphanerd>although much of that nastiness was trying to dance around require
22:50:20  * calvinfojoined
22:52:27  * calvinfoquit (Client Quit)
22:54:28  <thealphanerd>Raynos: have you experimented with eslint or jscs yet?
22:55:42  * calvinfojoined
22:56:54  <jbenet>mafintosh: i like your code. /hat-tip
22:57:30  <Raynos>thealphanerd: want to use jscs, not yet
22:58:27  <thealphanerd>fair enough… jshint still has some of the neccessary features, like scope based rules. But the pluggable rules and esprima based approach of jscs and eslint is very tempting
22:58:49  <Raynos>well jshint is about semantics, jscs is about style
22:59:09  <thealphanerd>jscs is still using esprima under the hood though
22:59:17  <thealphanerd>which creates some odd edge cases
22:59:42  <thealphanerd>cannot get single line if statements and indentation rules to play nice together
23:02:39  * gozalaquit (Quit: Connection closed for inactivity)
23:05:13  * yoshuawuytsjoined
23:05:42  <rowbit>Hourly usage stats: [developer: 0, free: 35]
23:11:22  * yoshuawuytsquit (Remote host closed the connection)
23:18:19  * phated_joined
23:22:01  * phatedquit (Ping timeout: 264 seconds)
23:29:30  * phated_changed nick to phated
23:33:22  * warbrettquit
23:40:12  * jaz303_quit (Ping timeout: 255 seconds)
23:40:18  * jaz303joined
23:53:19  <thealphanerd>jjjohnny: did you see that message regarding the ircam conference on web audio?
23:54:45  * yorickquit (Read error: Connection reset by peer)
23:55:11  * tilgoviquit (Read error: Connection reset by peer)