00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:02:40  * feross_joined
00:07:01  <mikolalysenko>or for object streams, what is the best way to handle streaming?
00:10:27  * contrahaxquit (Quit: Sleeping)
00:20:50  <ogd>mikolalysenko: what is your use case?
00:21:13  <ogd>mikolalysenko: most browser I/O sources dont actually handle backpressure
00:22:04  <mikolalysenko>ogd: so I would be creating all the streams
00:22:17  <mikolalysenko>the idea is to do mesh simplification as a streaming process
00:22:46  <mikolalysenko>like you have some isosurface polygonizer, it emits a mesh in a stream, the simplification code consumes it and then emits simplified vertices
00:22:49  <ogd>mikolalysenko: where does the i/o happen?
00:23:05  <mikolalysenko>IO happens in two places
00:23:20  * ednapiranhaquit (Quit: Leaving...)
00:23:22  <mikolalysenko>you have the source of mesh which could be maybe the isosurface polygonizer or is maybe read from a file
00:23:37  <mikolalysenko>and the output which can be dumpedto either a file or written to a webgl buffer
00:23:54  <ogd>are webgl buffers different from typed arrays?
00:23:54  <mikolalysenko>but in the intermediate states I don't want to allocate more memory than necessary
00:24:02  <mikolalysenko>it will be a typed array
00:24:05  <ogd>k
00:24:25  <mikolalysenko>but it might get split into chunks/multiple typedarrays
00:24:38  <ogd>i wrote https://github.com/maxogden/filereader-stream which can read huge files without running out of memory
00:24:52  <ogd>it uses a sort of hack in the FileReader API
00:25:00  <ogd>otherwise you have to buffer the entire file into one typed array
00:25:06  <mikolalysenko>looks interesting
00:25:25  <mikolalysenko>anyway, it is a bit speculative right now
00:25:43  <ogd>the tricky part is to try and control how much data is being read
00:25:49  <ogd>not all browser apis let you do that so easily
00:26:13  <ogd>cause then your stream just reads some fixed size at a time off of the available buffered data
00:26:18  <mikolalysenko>yeah, but I might be able to control that
00:26:29  <ogd>and if you arent telling the data source to give you less data then you will eventually run out of memory
00:26:46  <mikolalysenko>so one possible application here is to make a pipeable mesh simplification work flow
00:27:07  <mikolalysenko>like you do: createIsoSurface(field).pipe(simplify).pipe(writeToBuffer)
00:27:20  <mikolalysenko>or use the same simplify code to crunch down an arbitrary mesh
00:27:35  <mikolalysenko>the idea though is to do the simplification in a stream
00:28:00  <mikolalysenko>which is not quite the same thing as progressive meshing, but it is kind of related
00:32:02  <mikolalysenko>maybe I could just use typedarray-pool...
00:32:21  <mikolalysenko>but it is kind of an evil application
00:32:33  <mikolalysenko>and it requires that all clients agree to dispose of the pools properly
00:33:45  * feross__joined
00:34:13  <mikolalysenko>maybe the solution is to create a kind of homemade psuedo stream api
00:34:46  <mikolalysenko>that relies on pooling and also has sync processing for some chunks
00:35:13  <mikolalysenko>and if it is useful, I could make a wrapper that converts it to a proper stream whenever that makes sense
00:35:30  * feross_quit (Ping timeout: 253 seconds)
00:38:24  <mikolalysenko>perhaps it makes more sense to call it something like mesh-iterator to avoid confusion
00:39:31  * thealphanerdquit (Quit: thealphanerd)
00:40:23  * coderzachjoined
00:44:01  * thealphanerdjoined
00:47:16  * jxsonjoined
00:47:56  * wolfeidaujoined
00:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 26]
00:53:04  * ceejbotjoined
00:53:20  * jxsonquit (Ping timeout: 245 seconds)
00:54:29  * mikolalysenkoquit (Ping timeout: 252 seconds)
00:57:18  * parshapjoined
01:02:53  * thealphanerdquit (Quit: thealphanerd)
01:03:27  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:07:40  * contrahaxjoined
01:10:24  * contrahaxquit (Client Quit)
01:11:42  <pkrumins>New blog post: How to run unkillable* programs in Linux - http://www.catonmat.net/blog/unkillable-linux-programs/
01:13:08  <pkrumins>* by unkillable I mean one that respawns when you kill it.
01:18:55  * indexzerojoined
01:20:35  * AvianFlujoined
01:28:18  * mmckeggjoined
01:30:53  * jxsonjoined
01:32:58  * contrahaxjoined
01:35:49  * phatedjoined
01:42:35  <feross__>pkrumins: neat trick. i've always used supervisor for this sort of thing
01:46:46  * AvianFluquit (Remote host closed the connection)
01:49:44  * xero314joined
01:50:34  * mikolalysenkojoined
01:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 8]
01:54:36  <defunctzombie>pkrumins: what happens if the process keeps dying?
01:54:51  * yorickquit (Remote host closed the connection)
01:55:49  * mikolalysenkoquit (Ping timeout: 265 seconds)
01:56:11  * marcello3dchanged nick to marcello3d_zzZ
01:56:58  * marcello3d_zzZchanged nick to marcello3d
01:57:06  <pkrumins>defunctzombie: init bans it for 5 minutes
01:59:52  <defunctzombie>pkrumins: really?
01:59:57  <defunctzombie>how fast does it need to restart?
02:00:50  * feross__quit (Quit: feross__)
02:02:21  <pkrumins>defunctzombie: pretty fast, i dont know the exact limit
02:04:27  * Maciek416quit (Remote host closed the connection)
02:04:51  * Maciek416joined
02:05:14  * thealphanerdjoined
02:05:18  * jxsonquit (Remote host closed the connection)
02:05:50  * jxsonjoined
02:06:32  * marcello3dchanged nick to marcello3d_zzZ
02:08:04  <pkrumins>defunctzombie: respawns 10 times in 2 minutes and it gets banned for 5 minutes (http://svn.savannah.nongnu.org/viewvc/sysvinit/trunk/src/init.h?root=sysvinit&view=markup)
02:08:10  * cpupquit (Read error: Connection reset by peer)
02:08:18  <defunctzombie>cool
02:08:32  * ednapiranhajoined
02:09:41  * feross_joined
02:10:53  * jxsonquit (Ping timeout: 272 seconds)
02:11:59  * thealphanerdquit (Ping timeout: 260 seconds)
02:25:18  * thealphanerdjoined
02:26:45  * marcello3d_zzZchanged nick to marcello3d
02:30:47  * thlorenzjoined
02:33:44  * feross_quit (Quit: feross_)
02:35:52  * feross_joined
02:39:54  <feross_>new module: https://github.com/feross/chrome-portfinder
02:43:06  * ednapiranhaquit (Remote host closed the connection)
02:47:22  * funkytekjoined
02:48:25  * marcello3dchanged nick to marcello3d_zzZ
02:49:12  * anvakajoined
02:50:28  <chapel>feross_: how do you like chromes packaged apps?
02:50:36  <feross_>chapel: they're alright
02:50:44  <chapel>I was thinking about building something, but not sure if I want to atm
02:50:46  * jorychanged nick to Guest80972
02:50:46  * Guest80972quit (Killed (hitchcock.freenode.net (Nickname regained by services)))
02:50:55  <chapel>node-webkit is an alternative
02:51:13  <feross_>chapel: i wish they didn't have as much chrome proprietary stuff, but for things like TCP, UDP, etc. there's not really much of a choice
02:51:21  * mikolalysenkojoined
02:51:26  * jory`joined
02:51:26  <chapel>yeah, I understand there
02:51:41  <feross_>right now i'm building a bittorrent client as a chrome app, as first step for webtorrent
02:51:47  <chapel>cool
02:52:01  * thealphanerdquit (Quit: thealphanerd)
02:52:09  <chapel>like the idea with the portfinder
02:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 7]
02:52:28  <feross_>i also made chrome-net and chrome-dgram which mirror the node net/dgram apis exactly
02:52:41  <feross_>so you don't need to learn chrome's wonky api, you can just use the node one
02:52:43  <chapel>what would be great, is if someone wrapped all the native js interfaces, e.g. levelup for native js gui apps
02:52:51  <chapel>nice
02:52:55  <rowbit>substack, pkrumins: These encoders are STILL down:
02:53:24  * thealphanerdjoined
02:53:33  <feross_>chrome recently announced a project to compile chrome apps for iOS and android
02:53:55  <feross_>so you can build a web app, native mobile app, and chrome app with one codebase
02:54:08  <feross_>except for the nativey things like tcp, udp, etc.
02:54:08  <chapel>so node-webkityeah
02:54:16  <chapel>it just uses phonegap/cordova though
02:54:31  <feross_>oh cordova is the same as phonegap?
02:54:43  <chapel>cordova is the open source part of phonegap
02:54:50  <feross_>i've never used either before, and had never even heard of cordova until google mentioned it
02:54:56  <feross_>ahh
02:55:07  <chapel>I used phonegap a few years ago
02:55:12  <chapel>its not bad, and I'm sure it got better
02:55:20  <chapel>ogd is a good person to ask about it if you're curious
02:55:30  <feross_>hopefully they've fixed the slow scrolling issues, heh
02:55:41  <feross_>that's the #1 reason why native apps are winning right now, imo
02:55:46  <chapel>yeah
02:56:23  * mikolalysenkoquit (Ping timeout: 245 seconds)
02:56:34  <feross_>one nice thing about chrome apps is you can right click > inspect
02:56:53  * xero0_0joined
02:57:00  <feross_>so ogd has done stuff with chrome apps before? neat, didn't know that
02:57:32  * jxsonjoined
02:57:35  <feross_>or with phonegap?
02:58:52  <chapel>not chrome apps, but phonegap/cordova
02:59:53  <feross_>ah
03:00:37  * xero314quit (Ping timeout: 252 seconds)
03:01:00  * jxsonquit (Remote host closed the connection)
03:01:28  * jxsonjoined
03:05:59  * jxsonquit (Ping timeout: 240 seconds)
03:09:42  * dominictarrjoined
03:09:52  * thealphanerdquit (Quit: thealphanerd)
03:14:14  * mikolalysenkojoined
03:19:18  * mikolalysenkoquit (Ping timeout: 245 seconds)
03:20:00  * defunctzombieis working on a cordova app and loving it
03:20:55  * xero314joined
03:21:18  <chapel>yeah defunctzombie ?
03:21:25  <defunctzombie>yep
03:21:35  <chapel>I don't remember what I didn't like about it, but for the most part it was good
03:22:45  * xero0_0quit (Ping timeout: 248 seconds)
03:24:51  * contrahaxquit (Read error: Connection reset by peer)
03:25:01  * contraha_joined
03:26:36  * ednapiranhajoined
03:30:06  * nfroidurequit (Read error: Operation timed out)
03:37:47  * paul_irishquit (Ping timeout: 252 seconds)
03:37:52  * marcello3d_zzZchanged nick to marcello3d
03:45:47  * nfroidurejoined
03:49:15  * wolfeidauquit (Remote host closed the connection)
03:49:21  * marcello3dchanged nick to marcello3d_zzZ
03:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 9]
03:55:28  * ednapiranhaquit (Quit: Leaving...)
03:58:58  * phatedquit (Remote host closed the connection)
04:02:05  * jxsonjoined
04:02:57  <rvagg>I wrote about readable-stream, with the link-bait title "Why I Don't Use Node's Core Stream Module" http://www.nearform.com/nodecrunch/dont-use-nodes-core-stream-module
04:03:18  * mikolalysenkojoined
04:03:20  <rvagg>covers *important info* about the versioning differences, 1.0 and 1.1
04:03:28  <rvagg>which everyone in here should be aware of!
04:06:50  * jxsonquit (Ping timeout: 264 seconds)
04:08:25  * thlorenzquit (Remote host closed the connection)
04:09:00  * thlorenzjoined
04:09:18  * thealphanerdjoined
04:10:00  * i_m_cajoined
04:12:38  * jxsonjoined
04:13:33  * thlorenzquit (Ping timeout: 252 seconds)
04:17:11  * thealphanerdquit (Ping timeout: 272 seconds)
04:17:33  * jxsonquit (Ping timeout: 272 seconds)
04:18:45  * thealphanerdjoined
04:37:27  <feross_>rvagg: excellent post!
04:38:18  <feross_>the take away for me is that relying on a library that you can't "pin" to a particular version is a bad idea but that's precisely what relying on a standard library requires you to do
04:38:31  <guybrush>rvagg: cool post thx
04:38:55  * marcello3d_zzZchanged nick to marcello3d
04:38:56  <feross_>it's funny, even in node with it's super small core, we're finding that it does too much
04:40:17  <guybrush>but stream in core is ok i thnk, since it relies on it - which doesnt mean it shouldnt be in npm too
04:41:42  <feross_>is there any reason for "core" modules? couldn't 'http' and the rest be on npm?
04:42:00  <guybrush>hm maybe
04:42:24  * paul_irishjoined
04:43:38  <guybrush>the thing is, it doesnt matter if its in core - there could be another http in npm
04:44:14  <jesusabdullah>keep in mind npm does rely on http
04:44:27  <jesusabdullah>not a deal-breaker but keep in mind
04:44:39  <guybrush>haha true :D
04:45:26  <feross_>heh, npm could just bundle pinned versions of http and the other modules it depends on
04:46:06  <feross_>wouldn't the problem with 'stream' mostly go away if it were in npm and core modules like 'http' just depended on it? npm solved this problem already
04:46:42  <guybrush>i think core shouldnt depend on userland
04:47:14  <feross_>BUT WHAT IF THERE WAS NO CORE?!
04:47:34  <guybrush>core will at least be a libuv binding
04:48:23  <guybrush>but maybe it shouldnt be any more than that :)
04:48:36  * marcello3dchanged nick to marcello3d_zzZ
04:50:19  <dominictarr>libuv = the kernel, node = the shell
04:50:54  <dominictarr>node could certainly depend on something that is _maintained_ in userland, it would just check in a static version of that.
04:51:31  <dominictarr>of course, this creates a chicken and egg problem, you need a core to build a package manager
04:51:58  <guybrush>haha that is like they do it with rust, where you need rust to build rust :D
04:52:00  <dominictarr>but maybe you really want a bootstrap-core, and then turn it into modules.
04:52:25  <dominictarr>yeah, exactly - a self hosting language, implemented in it's self
04:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 11]
04:52:51  <dominictarr>you have to first write a prototype in another language, and then you rewrite it
04:54:19  <substack>if core libraries were maintained outside of node as separate repos that would make it much easier to maintain
04:54:37  <substack>because you could make breaking changes and people could consume those versions immediately
04:54:48  <substack>or fix bugs and then you wouldn't need to upgrade node to get the fixes
04:55:04  <guybrush>oh i see the benefits
04:55:18  <guybrush>upgrade to newer v8 but still rely on older http
04:55:24  <dominictarr>also, those libraries could handle their own polyfils on top of changes in core node
04:55:35  <dominictarr>(like readable-stream does)
04:56:24  <substack>rvagg: cool post!
04:56:47  <substack>I think I will probably start doing this too once we can get browserify using readable-stream
04:58:16  <dominictarr>so, can we just refactor out http, and use it directly from userland?
04:58:18  <rvagg>substack: cheers
04:59:00  <dominictarr>or would we need to fork node to get this?
04:59:04  <rvagg>so re the above discussion keep in mind that npm is now bundled with core when you install it and it includes a ton of tiny modules that you would never use but they aren't exposed, just because a module is used by core doesn't mean it belongs in core!
04:59:11  <rvagg>dominictarr: #uvjs!
04:59:41  <substack>dominictarr: it's really easy to pull out the http.js and use it outside of node core
04:59:43  <rvagg>bootstrap a minimal uv wrapper with v8,then you even have to start and control the event loop with js (or multiple event loops!)
04:59:54  <substack>also https://github.com/substack/http-alt
05:00:04  <substack>which uses pure js but is slower and incomplete
05:00:10  <substack>but not *that* much slower
05:00:59  <rvagg>there's at least one http2 implementation in userland; it'll be interesting to see how the core guys handle http2 cause they could ignore it and leave it up to userland but more likely they'll implement it in core, so much for a stable api
05:01:20  * wolfeidaujoined
05:01:22  <dominictarr>for multiple event loops don't you need multiple libuvs?
05:02:00  * eugenewarejoined
05:02:00  <rvagg>dominictarr: no, libuv can do multiple event loops now, it's just not functionality used by node
05:02:29  <dominictarr>ah interesting
05:02:36  <rvagg>but you could have two loops acting on event queues independently but related in such a way as to be able to share data, difficult to imagine how it could be used but interesting nonetheless
05:02:49  <dominictarr>if you had isolates with their own event loop, that would be very great
05:03:15  <dominictarr>I think they would need to message each other - the best you could do is a memory swap
05:03:32  <substack>rvagg: this might be problematic https://github.com/isaacs/readable-stream/blob/master/readable.js#L2
05:03:42  <dominictarr>where I send you a buffer, and then can no longer access it, like in post-message
05:05:15  <rvagg>substack: yeah, feross_ and I have been discussing this, it's going to be tricky for browserify; all that really does is bring in EventEmitter and makes it so that no matter what stream impl you use (core, or any version of readable-stream), they all inherit from core Stream
05:05:41  <rvagg>the functionality of core Stream is overwritten (just pipe really), but it makes `foo instanceof Stream` work
05:05:48  <rvagg>I believe that's about all it's there for!
05:06:22  * eugenewarequit (Ping timeout: 252 seconds)
05:09:21  <feross_>rvagg: if readable-stream becomes the default in browserify, then you won't need require('stream') anymore
05:09:46  <feross_>`instanceof Stream` will just work because 'readable-stream' WILL ITSELF provide Stream :)
05:10:18  <feross_>this is like what `Buffer` used to do. it provided its own `Buffer` class and everything that did `instanceof Buffer` just worked
05:10:39  <feross_>until I broke that by making Buffers actually Uint8Arrays
05:10:49  <feross_>but fortunately, there's Buffer.isBuffer for that case
05:11:01  <feross_>there's no equivalent Stream.isStream
05:11:49  <rvagg>feross_: yeah, but what does browserify do with the raw readable-stream file?
05:12:05  <rvagg>I can't just remove that require() from the main file
05:12:30  <rvagg>I guess there's a "browser" property in package.json to add that could specify an alternative to readable.js as the main?
05:12:33  <feross_>yep
05:12:39  <rvagg>
05:12:41  <substack>I should probably bump the major for this
05:12:42  <rvagg>easy then!
05:12:58  <feross_>yeah, that's why i was so looking forward to this change
05:13:32  <dominictarr>rvagg, feross_ what if we also have a classic-stream module that is like 0.8
05:13:36  * jxsonjoined
05:13:46  <feross_>barring any weird browser compat issues, i think this will be surprisingly easy swap
05:13:55  <rvagg>we just need to get in replacements for indexOf and forEach in readable-stream and I believe it's on par with stream-browserify
05:14:14  <feross_>cool, i think substack might have packages for that already
05:14:24  <feross_>^ that was to rvagg
05:14:34  <rvagg>feross_: there are replacements at the bottom of stream-browserify/readable.js, I figured we'd just put them in
05:14:43  <feross_>rvagg: that works too
05:15:04  <substack>can you get the tests running on testling?
05:15:23  <feross_>that should be easy
05:15:36  <rvagg>substack: yeah, that's the plan, we can put them on the readme too
05:15:55  <substack>ok cool
05:16:00  <substack>there are some tests that use fs.*
05:16:08  <substack>or at least, they read a file
05:16:15  <rvagg>oh yeah, there's a bunch of tests in there that'll have to be removed from a browser version
05:16:24  <feross_>this is going to help bundle size so much! yay!
05:16:46  <substack>how about test/server/ for the node-only tests and test/ for all the tests that run in both places?
05:17:26  <substack>then https://github.com/isaacs/readable-stream/blob/master/package.json#L14 can be "tap test/simple/*.js test/simple/server/*.js"
05:18:03  <feross_>currently ~half of the packages i use have require('stream') and the other half have require('readable-stream') which itself has require('stream') so i end up getting 230KB of stream stuff immediately
05:18:21  * jxsonquit (Ping timeout: 272 seconds)
05:18:28  <feross_>after this change, it will be like ~120KB total
05:24:28  <substack>sweet
05:28:03  * pfrazequit (Ping timeout: 245 seconds)
05:33:05  <feross_>defunctzombie: hey, would you accept a PR for node-process that adds dummy `on`, `off`, and 'emit` functions?
05:33:29  <feross_>some modules use process.on('exit', fn), etc.
05:33:57  <feross_>more specifically, the readable-stream tests do that
05:36:15  * coderzachquit (Remote host closed the connection)
05:36:22  * hoobdeeblaquit
05:36:30  <dominictarr>substack, dotc,browserify, idea: node_modules works great with duck typing, because we can gloss over the fact that types are singletons
05:37:09  <dominictarr>in a static language, any module that exports a type would need to be a single exact version
05:37:19  * mikolalysenkoquit (Ping timeout: 260 seconds)
05:37:28  <dominictarr>(probably best to put the type def in it's own module)
05:37:55  <rowbit>substack, pkrumins: These encoders are STILL down:
05:38:38  <dominictarr>although, that could probably be stretched to patches, and maybe even feature additions, if you didn't serialize them
05:39:40  * marcello3d_zzZchanged nick to marcello3d
05:41:34  * contraha_quit (Quit: Sleeping)
05:41:34  <dominictarr>oh, idea... if you have flat structs that can have simple types, bool, byte, int16, int32, int64, plus unsigned versions of the numbers that is 9 types - which could be represented as one base 9 number
05:42:36  <jlord>dominictarr!!
05:42:45  <dominictarr>jlord, whats up?
05:43:29  <dominictarr>... so you could describe a huge number of possible structs with just a few bytes. you could also use a multibyte scheme like utf8
05:44:15  <jlord>dominictarr: I was just browsing the Craft Conference site
05:44:25  <rowbit>/!\ ATTENTION: (default-local) mike.hamstra@... successfully signed up for developer browserling plan ($20). Cash money! /!\
05:44:25  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
05:44:50  <dominictarr>ah very good! I'm looking forward to that! I have never been to budapest and it sounds exotic
05:44:57  <jlord>dominictarr: GH has a ticket and I was wondering if I should take it and think of a reason to go to Budapest
05:45:47  <jlord>it is very far away though
05:46:03  <dominictarr>I like to go to places that have songs about them: http://www.youtube.com/watch?v=bjnwmMX9fsQ
05:46:12  <feross_>jlord: you should go, i'm speaking there too :)
05:46:22  <dominictarr>^ same dude who was "blinded by science"
05:46:39  <jlord>feross_ dominictarr Ooo!
05:46:45  <dominictarr>I think that is reason enough!
05:47:15  <feross_>to be clear, Thomas Dolby was blinded by science, not me :)
05:48:54  <feross_>dominictarr: classic-stream module sounds cool, though i personally don't have a use for it
05:48:55  <jlord>Hmmmmhmmmm
05:49:33  * marcello3dchanged nick to marcello3d_zzZ
05:49:49  * i_m_caquit (Ping timeout: 252 seconds)
05:49:54  <dominictarr>feross_, it would allow modules that only use classic-streams to only require them and not readable stream in browserify
05:50:07  * coderzachjoined
05:50:46  <feross_>oh, that's interesting
05:51:04  <dominictarr>substack, does testling abort the rest of the tests if one timesout?
05:51:19  <substack>dominictarr: it should restart but there are some bugs in the restart logic
05:51:28  <dominictarr>I'm trying to get this to run on all browsers https://ci.testling.com/dominictarr/sha.js
05:51:48  <feross_>rvagg: will we need to bundle a 0.8 version of streams into the browser version of readable-stream?
05:52:04  <feross_>or is the pipe in there sufficient? (i'm not very familiar with 0.8 streams)
05:52:21  <substack>dominictarr: I'll take a look at the restart logic soon
05:52:26  <rowbit>Hourly usage stats: [developer: 104, free: 13]
05:52:31  <substack>that's probably where most of the instability is coming from
05:53:23  <rvagg>feross_: I don't think so, the pipe is completely replaced with readable stream, just make it the default stream impl
05:54:43  * coderzachquit (Ping timeout: 272 seconds)
05:55:44  <dominictarr>feross_, yeah, it's only .pipe() & inherits from EventEmitter
05:55:51  <dominictarr>about 107 lines.
05:56:02  <dominictarr>I reckon I could probably type it out from memory just about!
05:56:20  <feross_>dominictarr: hardcore!
05:56:46  * guybrushquit (Excess Flood)
05:56:47  <dominictarr>I read that code that many times, I even read the commit history to see when various features where added.
05:56:59  * guybrushjoined
06:02:02  <rvagg>feross_, substack: https://github.com/isaacs/readable-stream/pull/77
06:02:15  <rvagg>I'll squash and merge to v0.10 and cherry-pick to master
06:02:28  <guybrush>hmm is there something to know with leveldb when storing Buffers? somehow the buffer i get out isnt exactly the buffer i put in
06:02:29  <rvagg>feross_: is it needed in test/common.js? or will you be avoiding that for the tests?
06:03:00  <guybrush>but im doing something wrong maybe :D looking at tests now
06:03:22  <rvagg>guybrush: you can valueEncoding: 'binary' to be explicit
06:03:25  <guybrush>oh i see { encoding: 'binary' }
06:03:30  <guybrush>thx!
06:03:50  <substack>guybrush: careful to only set 'binary' encoding where you actually need it
06:04:02  <substack>it's a parameter to .get and .put
06:04:06  <feross_>rvagg: not sure yet... so far i'm keeping it there
06:04:06  <guybrush>kk
06:04:30  <substack>but if you also need other kinds of encodings like json it can get tricky
06:04:30  <guybrush>nice that did the trick :D
06:04:35  <feross_>rvagg: if i get to a test that can't be fixed easily without removing it, then we can do that
06:04:35  <dominictarr>rvagg, shouldn't binary encoding use binary strings?
06:05:18  <guybrush>the whole leveldb-stuff in npm is really impressing, looking forward to play with it a lot
06:05:40  <rvagg>dominictarr: binary encoding just means "leave this buffer alone" really (from memory)
06:05:51  <rvagg>DO NOT MOLEST THE BUFFER
06:06:24  <guybrush>rvagg: i should read more docs but can it stream the buffer too?
06:06:34  <rvagg>guybrush: yeah
06:06:49  <rvagg>guybrush: as long as you have the right encoding set up for the whole database or for the createReadStream
06:07:03  <rvagg>guybrush: every read & write operation allows you to override encodings so you can set it on individual items if you need
06:07:14  <guybrush>oh ok
06:07:28  <guybrush>but i can mix binary and other stuff in one db right?
06:07:38  <guybrush>just set encoding for every operation individually
06:07:49  <rvagg>guybrush: if you do a createValueStream() of only binary encoded buffers then you ought to get a pure binary stream! which would be helpful if you had them sorted in some special way
06:07:59  <dominictarr>rvagg, because there is also Buffer#toString('binary')
06:08:20  <dominictarr>I've been getting to know this stuff doing crypto stuff.
06:08:28  <guybrush>ok sweet, will play with it and read more doc
06:11:25  <feross_>rvagg: so an interesting problem with the tests, lots of them do process.on('exit', function () { assert(something) })
06:11:39  <feross_>one thing that works is:
06:11:42  <feross_>process.on = function (event, fn) {
06:11:43  <feross_> if (event === 'exit') setTimeout(fn, 1000)
06:11:43  <feross_>}
06:11:54  <feross_>^ to make it work in a browser environment
06:11:58  <feross_>though it feels super gross
06:14:22  * jxsonjoined
06:14:30  * mikolalysenkojoined
06:17:25  <rowbit>substack, pkrumins: Encoders down: (dev-ie8-1)
06:18:18  * ceejbotquit (Remote host closed the connection)
06:18:37  * jxsonquit (Ping timeout: 252 seconds)
06:18:47  <dominictarr>mk30, for some reason this one http://oaklandwiki.org/Breuner_Building reminds me of the jawa sandcrawler http://starwars.wikia.com/wiki/Sandcrawler
06:19:35  * mikolalysenkoquit (Ping timeout: 245 seconds)
06:22:27  <mk30>dominictarr i can see it
06:24:31  <dominictarr>the shadows of the awnings makes it look detached from the sidewalk, it appears to have just crawled over the street and is departing the scene
06:24:49  * ceejbotjoined
06:25:18  * contrahaxjoined
06:29:38  * ceejbotquit (Ping timeout: 264 seconds)
06:31:55  <rowbit>substack, pkrumins: Encoders down: (dev-ie10-2), (dev-ie11-1)
06:40:17  * contrahaxquit (Read error: Connection reset by peer)
06:40:25  * marcello3d_zzZchanged nick to marcello3d
06:40:57  * contrahaxjoined
06:45:23  * jxsonjoined
06:49:10  * ceejbotjoined
06:50:01  * shamaquit
06:50:08  * marcello3dchanged nick to marcello3d_zzZ
06:50:25  <gildean>would it make sense to use multilevel and save binary data to a certain level and then json on another?
06:50:50  <gildean>then you could just create two streams ready and write to them directly the correct type of data
06:51:33  * ceejbotquit (Read error: Connection reset by peer)
06:52:06  * ceejbotjoined
06:52:26  <rowbit>Hourly usage stats: [developer: 19, free: 13]
06:55:23  * ceejbotquit (Remote host closed the connection)
06:55:41  * ceejbotjoined
06:56:38  * dguttmanquit (Quit: dguttman)
06:56:55  <feross_>substack: any idea why browserify would complain about this line https://github.com/isaacs/readable-stream/blob/v0.10/test/simple/test-stream-pipe-cleanup.js#L31
06:57:11  <feross_>SyntaxError: Line 31: Illegal return statement while parsing /Users/feross/code/readable-stream/test/simple/test-stream-pipe-cleanup.js
07:01:34  <feross_>actually, do'h, it's not in a function, that's why
07:02:21  <dominictarr>feross_, I encountered that the other day
07:02:34  <feross_>why the heck is that in readable-stream tests?
07:02:38  <feross_>looks like a bad replacement rule
07:02:42  <feross_>dominictarr: in what context?
07:03:02  <dominictarr>it's because insert-module-globals parses the source without putting a closure around it
07:03:17  <dominictarr>- node js runs inside a closure -
07:03:28  <substack>I thought I fixed that bug recently
07:03:36  <dominictarr>and return is illegal if it's not inside a function
07:03:53  <dominictarr>maybe feross_ doesn't have the most up to date version?
07:04:23  <feross_>so, it's legal to return from a module in node
07:04:24  <feross_>?
07:04:40  <substack>nevermind, I can reproduce it
07:04:46  <substack>$ echo 'global.blah; return' | browserify
07:04:46  <substack>SyntaxError: Line 1: Illegal return statement while parsing /home/substack/fake_3e9af3bd.js
07:04:56  <feross_>i'm running latest browserify
07:05:10  <feross_>okay, so this isn't actually rvagg's fault ;)
07:05:17  <substack>this is either a bug in lexical-scope, astw, or insert-module-globals
07:05:42  <substack>blarg I was in the middle of some other patches
07:06:15  <feross_>lol did you forget to push it?
07:06:33  * Maciek416quit (Remote host closed the connection)
07:07:20  * ceejbotquit (Remote host closed the connection)
07:08:01  * ceejbotjoined
07:12:27  <grncdr>ircretary: tell mikolalysenko about http://www.jakobm.com/semver-in-nodejs-and-npm
07:12:27  <ircretary>grncdr: I'll be sure to tell mikolalysenko
07:13:53  * ceejbotquit (Ping timeout: 272 seconds)
07:15:18  * mikolalysenkojoined
07:16:25  <feross_>can ci.testling test branches?
07:16:43  <substack>feross_: probably not
07:16:53  <substack>although the underlying libraries should theoretically support it
07:17:03  <substack>we might still be on old versions of things
07:17:09  <substack>but try it and see
07:17:18  <feross_>k, will try
07:17:30  <rvagg>ugh, hard laptop death, had to boot with a usb stick and repair root partition
07:20:18  * mikolalysenkoquit (Ping timeout: 252 seconds)
07:21:10  <gildean>rvagg: old ssd?
07:21:22  <gildean>i've had that happen to me twice now with old ssd's
07:25:02  <rvagg>gildean: no, very new, problem is I've switched to xmonad and I don't have a power monitor warning me any more and it doesn't do a gentle suspend when it gets low so I just run out and it does a sudden power-off
07:25:51  <rvagg>... and I think cause it's bios-raided I end up with corrupt boot partition, and cause ext4 isn't all it's cracked up to be I get a corrupted fs that needs hardcore fixing ...
07:26:13  <rvagg>but such is the linux life! these things must be embraced for the embiggening of the spirit, or something
07:29:21  <owen1>rvagg: give i3 i try (never used xmonad btw)
07:29:43  <owen1>s/i/a
07:38:12  * ceejbotjoined
07:39:51  <rvagg>yeah, I've heard it's worth a try ... big investement in getting xmonad set up though, not sure I can abandon it very easily
07:41:11  * marcello3d_zzZchanged nick to marcello3d
07:42:50  <gildean>rvagg: yeah, the unexpected poweroff isn't too nice but it shouldn't really fail that hard imo.
07:43:07  <rvagg>ya, I know! but this is the second time now
07:43:13  <rvagg>might spur me into action
07:46:16  <dominictarr>rvagg, I have a thing for that
07:46:33  <dominictarr>https://github.com/dominictarr/low-battery-warning
07:47:00  <dominictarr>run it as a system process and it flashes the keyboard backlight when you are down to 10% battery
07:47:20  <rvagg>nice
07:48:11  <dominictarr>you could adapt it to flash a different light if you don't have kb backlight.
07:48:56  <substack>my thinkpad beeps at me
07:49:09  <substack>and the LED goes from green to orange when I have <20% left
07:49:27  <substack>and I type `acpi` all the time
07:51:05  * marcello3dchanged nick to marcello3d_zzZ
07:51:45  <feross_>rvagg: why do the readable-stream tests use console.error to report test progress?
07:52:09  <rvagg>feross_: all of the node core tests do, can't tell you the reason
07:52:20  <feross_>odd
07:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 20]
07:53:12  <feross_>so a test only truly fails when it fails an assert(), right?
07:53:21  <feross_>some tests don't seem to even print 'ok' when they're done
07:53:27  <feross_>^ rvagg
07:54:26  <rvagg>feross_: yeah, they are pretty raw cause core uses a python test runner to execute them all as separate processes
07:54:32  <rvagg>so readable-stream emulates that
07:55:02  <feross_>rvagg: how does it emulate it? by running tap?
07:56:24  <feross_>i guess that probably enough because tap will fail if something throws
07:56:56  <feross_>lol, i found a bug in native-buffer-browserify while trying to get these readable-stream tests to pass in the browser!
07:57:50  <feross_>i don't support all the encodings from core, specifically: 'ucs2', 'ucs-2', 'utf16le', 'utf-16le'
07:58:06  <feross_>hmm, what to do about that...
08:00:30  <dominictarr>substack, I was using acpi but I'd get into a problem and then forget, and I'm pretty sure that I completely busted my previous laptop battery by running it flat too much
08:04:38  <substack>batteries just get worn down overtime too
08:04:53  <substack>thinkpads are great because you can hot swap the batteries while it's running
08:05:04  <substack>and buy new batteries online for not that much
08:10:58  * ceejbotquit (Remote host closed the connection)
08:11:17  * ceejbotjoined
08:16:03  * mikolalysenkojoined
08:17:13  * jcrugzzjoined
08:20:58  <feross_>i need a stream that i can sub in from process.stdout (which is unavailable in the browser)
08:20:59  * mikolalysenkoquit (Ping timeout: 240 seconds)
08:21:03  <feross_>*that i can sub in FOR
08:21:55  <feross_>https://npmjs.org/package/console-stream ?
08:22:54  <rvagg>juliangruber: are you moving to SF or remote is cool?
08:23:07  * jxsonquit (Remote host closed the connection)
08:23:34  * jxsonjoined
08:23:35  * jxsonquit (Remote host closed the connection)
08:23:42  * jxsonjoined
08:24:29  * phatedjoined
08:24:31  * jxsonquit (Client Quit)
08:28:02  <feross_>rvagg: okay, i think i got all the readable-stream tests working in the browser
08:28:58  <feross_>except for a few which use 'fs', 'http', or 'net'
08:28:59  <feross_>i had to add about 7 new test replacements
08:29:43  <feross_>rvagg: for the tests that only make sense in node, you think i should move them to a new folder like /server?
08:30:12  <feross_>i meant test/server
08:30:18  * ralphtheninjajoined
08:31:15  * indexzeroquit (Ping timeout: 245 seconds)
08:42:00  * marcello3d_zzZchanged nick to marcello3d
08:55:39  * marcello3dchanged nick to marcello3d_zzZ
08:55:49  * slurp1joined
08:55:49  * substacktopic: Unofficial browserling/testling mad science channel. For official help /join #browserling
08:56:31  * slurpquit (Ping timeout: 260 seconds)
08:56:47  * jcrugzzquit (Ping timeout: 265 seconds)
09:04:50  * marcello3d_zzZchanged nick to marcello3d
09:06:06  * eugenewarejoined
09:10:51  * eugenewarequit (Ping timeout: 252 seconds)
09:14:42  * marcello3dchanged nick to marcello3d_zzZ
09:16:57  * mikolalysenkojoined
09:21:41  * mikolalysenkoquit (Ping timeout: 248 seconds)
09:22:16  <feross_>substack: eta for when the "SyntaxError: Line 1: Illegal return statement while parsing" bug will be fixed?
09:22:43  <substack>feross_: it already was
09:23:15  <feross_>oh, nice
09:23:18  <feross_>substack: thanks!
09:23:26  <feross_>you're fast
09:24:02  <substack>$ echo "return process.nextTick(function () { console.log('beep') })" | browserify | node
09:24:05  <substack>beep
09:24:37  <substack>generators now don't cause parse errors too
09:26:06  <dominictarr>substack, I need to think of a name for a p2p twitter that is secure and uses a scuttlebutt style protocol
09:27:20  <dominictarr>brb, eats
09:28:02  * contrahaxquit (Quit: Sleeping)
09:30:30  * ralphtheninjaquit (*.net *.split)
09:30:30  * phatedquit (*.net *.split)
09:30:54  * Madarsquit (*.net *.split)
09:31:01  * isaacsquit (*.net *.split)
09:31:01  * nlacassequit (*.net *.split)
09:32:45  <substack>dominictarr: that's what crytter was attempting
09:32:56  <substack>you can have the name if you want it
09:33:43  <substack>dominictarr: you should add that idea to the bbs thread
09:34:36  * ralphtheninjajoined
09:34:36  * Madarsjoined
09:34:36  * isaacsjoined
09:34:36  * nlacassejoined
09:43:01  * cianomaidinjoined
09:44:15  <feross_>substack: can you bump the version of browserify that testling uses to 3.x?
09:44:43  <feross_>(the module, not ci.testling)
09:45:17  <substack>juliangruber: is there a reason for `this.body = ` in koa?
09:45:21  <substack>it seems soooooo weird
09:45:50  <substack>so counter to node idioms
09:46:11  <substack>it already seems warty, probably only going to seem moreso with time
09:46:29  * cianomaidinquit (Client Quit)
09:46:38  <feross_>i'm so close to getting readable-stream working in the browser!
09:46:56  <feross_>and all tests passing in chrome too!
09:50:27  <feross_>substack: thanks!
09:51:56  <substack>ok it's at 3x now
09:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 24]
09:55:01  <substack>juliangruber: oh wow, so the respond() function checks for mutations of this.body between invocations? https://github.com/koajs/koa/blob/master/lib/application.js#L157
09:55:04  <substack>really weird
09:56:27  <substack>isn't that what `yield` was supposed to solve?
09:57:36  <rvagg>feross_: re moving them in to /server, that'd have to be part of the build process, is there an automatic way of identifying them so that when new tests show up they get sorted?
09:57:55  <feross_>i figured it out already
09:58:19  <feross_>so what i'm doing is just blacklisting the few tests that don't make sense in the browser
09:58:45  <substack>that's what I usually do too
09:58:52  <rvagg>ok, great, so they'll automatically go into the browser tests unless blacklisted, ✔
09:58:57  <feross_>yep
09:59:22  <substack>well, my blacklist is a directory but same idea
09:59:29  <feross_>also, i'm getting tired... i just noticed i said earlier that i was close to getting readable-stream working in the browser, hehe... it already works
09:59:35  <feross_>just working on the tests
10:01:26  <feross_>rvagg substack: you can see what i've got so far here https://github.com/feross/readable-stream
10:01:43  <feross_>i renamed the v0.10 branch to master, and master to v0.11 on my fork
10:02:01  <feross_>in an attempt to get testling to give me badges
10:02:08  <rvagg>feross_: pull in the es3 branch from readable-stream, rebase to that
10:02:21  <feross_>k
10:02:31  <feross_>yay, testling picked it up now
10:02:32  <feross_>https://ci.testling.com/feross/readable-stream
10:02:44  <feross_>it only looks at master, apparently
10:03:13  <feross_>okay, so all tests will fail until i get one small change merged into defunctzombie's process module
10:03:25  <feross_>i need process.on
10:03:28  <rvagg>that'll be interesting then, not enough work has gone on to make master pass with old node let alone browsers
10:03:51  <substack>you can push to master without publishing to npm
10:03:55  <substack>that's still fairly safe
10:04:23  <feross_>so, here's what i think we can do
10:04:44  <feross_>since we don't want to rename master on readable-stream
10:05:00  <feross_>we can work on my fork which has v0.10 named master
10:05:05  <feross_>until all browser tests are passing 100%
10:05:25  <feross_>then merge it into the main repo
10:05:39  * marcello3d_zzZchanged nick to marcello3d
10:05:56  <feross_>then i can swap the branches around again and we can get all tests to pass for v0.11/master
10:06:21  <feross_>substack: would be great if testling would build the correct branch when it gets a hook from github for this
10:07:02  <feross_>oh, whoa, looks like it might actually be building branches
10:07:15  <feross_>hmm
10:07:26  <feross_>yeah, wow
10:07:31  <feross_>i'm silly
10:07:52  <feross_>i didn't wait long enough for testling to process the hook
10:15:28  * marcello3dchanged nick to marcello3d_zzZ
10:16:26  <feross_>rvagg: are you cool with the forEach and indexOf replacements happening for node too?
10:16:36  <feross_>i can move them into the browser-only transform file
10:16:46  <rvagg>oh, there's such a thing?
10:16:52  <rvagg>hm, interesting question then ..
10:17:01  <feross_>yeah, i made one for the tests
10:17:04  <rvagg>they will probably be faster than using the builtins
10:17:15  <feross_>really?
10:17:37  <feross_>i've heard raw for loops are faster
10:17:38  * mikolalysenkojoined
10:17:46  <feross_>but i assumed that was old info
10:17:47  <rvagg>yeah, that's what I mean
10:17:58  <substack>feross_: hah cool, I guess branches work now
10:18:24  <substack>because some underlying module we were depending on got some fixes
10:18:38  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
10:18:54  <feross_>substack: it's nice when you inherit features without doing any work!
10:18:55  <rvagg>I'm cool with leaving forEach and indexOf in there but we'll see if we get any feedback on the PR before I merge it
10:19:08  <feross_>substack: better than inheriting bugs :D
10:19:18  <feross_>rvagg: okay, i'll leave them for now
10:19:31  <feross_>makes things simpler for the time being too
10:22:27  * mikolalysenkoquit (Ping timeout: 252 seconds)
10:23:33  <dominictarr> substack bbs thread?
10:24:13  * cianomaidinjoined
10:37:15  <substack>dominictarr: https://github.com/mikeal/nodeconf2014/issues/18
10:38:29  * phatedjoined
10:41:19  * thealphanerdquit (Quit: thealphanerd)
10:42:59  * phatedquit (Ping timeout: 240 seconds)
10:43:43  * thealphanerdjoined
10:45:07  * cianomaidinquit (Quit: cianomaidin)
10:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 22]
11:06:01  * funkytekjoined
11:06:20  * marcello3d_zzZchanged nick to marcello3d
11:11:06  <feross_>substack: how do i signal to testling that i want a test to end?
11:11:33  <feross_>substack: the node core tests from readable-stream appear to not be ending
11:11:59  <feross_>i can't call process.exit() because that doesn't exist in node-process
11:13:05  <feross_>substack: i know testling injects a prelude that adds process.exit, process.on, etc. but that doesn't seem to apply to my test code
11:15:38  * cianomaidinjoined
11:16:10  * marcello3dchanged nick to marcello3d_zzZ
11:16:38  <substack>feross_: it looks to see when the tap is finished
11:16:47  <substack>using http://npmjs.org/package/tap-finished
11:16:48  <feross_>ah, but there's no tap
11:16:59  <feross_>it's node core tests
11:17:12  <substack>https://npmjs.org/package/assert-tap
11:17:14  * ceejbotquit (Remote host closed the connection)
11:18:16  * mikolalysenkojoined
11:18:18  * ceejbotjoined
11:18:44  <feross_>that's awesome - there's a module for everything!
11:18:50  <feross_>substack: thanks again
11:19:18  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
11:20:19  <substack>modultopia
11:23:03  * mikolalysenkoquit (Ping timeout: 245 seconds)
11:23:14  * ceejbotquit (Ping timeout: 265 seconds)
11:33:03  * fotoveritequit (Quit: fotoverite)
11:37:56  <rowbit>substack, pkrumins: These encoders are STILL down:
11:48:10  * ceejbotjoined
11:49:59  * ceejbotquit (Read error: Connection reset by peer)
11:50:11  * dominictarrquit (Remote host closed the connection)
11:50:15  * thealphanerdquit (Quit: thealphanerd)
11:50:30  * ceejbotjoined
11:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 24]
12:06:03  * ceejbotquit (Ping timeout: 260 seconds)
12:06:38  * anvakaquit (Remote host closed the connection)
12:07:04  * marcello3d_zzZchanged nick to marcello3d
12:08:33  * cianomaidinquit (Quit: cianomaidin)
12:11:56  <rowbit>substack, pkrumins: These encoders are STILL down:
12:17:01  * marcello3dchanged nick to marcello3d_zzZ
12:19:03  * mikolalysenkojoined
12:24:35  * mikolalysenkoquit (Ping timeout: 272 seconds)
12:26:56  <rowbit>substack, pkrumins: These encoders are STILL down:,
12:37:09  * eugenewarejoined
12:51:42  * cianomaidinjoined
12:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 17]
13:02:23  * ceejbotjoined
13:03:27  * feross_quit (Quit: feross_)
13:04:30  * dominictarrjoined
13:06:45  * ceejbotquit (Ping timeout: 248 seconds)
13:07:27  * cianomaidinquit (Quit: cianomaidin)
13:07:50  * marcello3d_zzZchanged nick to marcello3d
13:17:42  * marcello3dchanged nick to marcello3d_zzZ
13:19:52  * mikolalysenkojoined
13:22:43  * yorickjoined
13:24:53  * mikolalysenkoquit (Ping timeout: 248 seconds)
13:26:52  * eugenewarequit (Remote host closed the connection)
13:27:20  * eugenewarejoined
13:31:29  * eugenewarequit (Ping timeout: 240 seconds)
13:35:51  * eugenewarejoined
13:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 20]
13:53:18  * eugenewarequit (Remote host closed the connection)
13:53:51  * eugenewarejoined
13:58:31  * eugenewarequit (Ping timeout: 260 seconds)
14:03:00  * ceejbotjoined
14:07:34  * ceejbotquit (Ping timeout: 265 seconds)
14:08:35  * marcello3d_zzZchanged nick to marcello3d
14:12:05  * rsolejoined
14:18:12  * marcello3dchanged nick to marcello3d_zzZ
14:20:08  * feross_joined
14:20:39  * mikolalysenkojoined
14:25:29  * mikolalysenkoquit (Ping timeout: 240 seconds)
14:30:41  * rsolequit (Ping timeout: 252 seconds)
14:52:27  <rowbit>Hourly usage stats: [developer: 0, free: 18]
14:52:57  <rowbit>substack, pkrumins: These encoders are STILL down:
14:54:49  * eugenewarejoined
14:59:59  * eugenewarequit (Ping timeout: 240 seconds)
15:01:50  * dguttmanjoined
15:03:45  * ceejbotjoined
15:08:21  * ceejbotquit (Ping timeout: 252 seconds)
15:09:20  * marcello3d_zzZchanged nick to marcello3d
15:19:12  * marcello3dchanged nick to marcello3d_zzZ
15:21:26  * mikolalysenkojoined
15:21:44  * thlorenzjoined
15:25:59  * Maciek416joined
15:26:38  * mikolalysenkoquit (Ping timeout: 264 seconds)
15:39:25  * jez0990quit (Quit: No Ping reply in 180 seconds.)
15:39:31  * jez0990joined
15:47:32  * Maciek416quit (Remote host closed the connection)
15:49:44  * peutetrejoined
15:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 17]
15:53:40  * rsolejoined
15:56:35  * rsolequit (Client Quit)
15:56:40  * ceejbotjoined
16:01:15  * ceejbotquit (Ping timeout: 245 seconds)
16:02:05  * mikolalysenkojoined
16:10:05  * marcello3d_zzZchanged nick to marcello3d
16:18:46  <thlorenz>mikolalysenko: a bit confused wrt to beefy - that doesn't start up the browser right?
16:18:53  <thlorenz>how would it pass command line flags then?
16:19:31  * AvianFlujoined
16:19:48  * ednapiranhajoined
16:20:01  * marcello3dchanged nick to marcello3d_zzZ
16:22:48  * AvianFluquit (Remote host closed the connection)
16:34:21  <mikolalysenko>thlorenz: it does
16:34:25  <mikolalysenko>you do beefy --open
16:34:49  <thlorenz>ah, ok never used that feature - just keep it running all the time and refresh when I make a change
16:35:10  <mikolalysenko>basically my workflow with beefy is a make an npm script entry that bundles and opens a tab
16:35:17  <thlorenz>never had it open a new browser for me just a new tab in the one that is open already
16:35:52  <mikolalysenko>thlorenz: ex https://github.com/mikolalysenko/voxel-mipmap-demo/blob/master/package.json#L32
16:35:58  <mikolalysenko>it creates a tab when you do that
16:36:23  <thlorenz>ok and I can pass cli flags to the created tab ??
16:36:24  <mikolalysenko>but if you could pass it a flag or something you could have it just open the tab with all the workspace and mapping stuff set
16:36:34  <mikolalysenko>at the moment, no
16:36:40  <mikolalysenko>but hacking that onto beefy should be easy I think
16:36:43  <thlorenz>ah, ok that's what I was confused about
16:37:07  <thlorenz>but you can't pass flags to tabs that you open in chrome anyways right?
16:37:18  <thlorenz>I thought you'd have to open a new chrome instance
16:38:00  * pfrazejoined
16:38:50  <thlorenz>mikolalysenko: so beefy --open does the same for me as just beefy (I just have to open the tab manually)
16:38:53  <mikolalysenko>the way beefy opesn the tab is it just runs chrome
16:39:00  <mikolalysenko>hmm
16:39:01  * ceejbotjoined
16:39:03  <thlorenz>still same chrome though
16:39:05  <mikolalysenko>thlorenz: that is a bug then
16:39:17  <thlorenz>--open auto opens the tab
16:39:24  <thlorenz>but in already running chrome
16:39:46  <thlorenz>so not sure how you'd pass cli flags to chrome that way (unless I'm missing something)
16:40:49  <mikolalysenko>so beefy's open() uses this module: https://npmjs.org/package/open
16:41:10  <thlorenz>mikolalysenko: the idea is good though IMO - I don't mind starting a separate chrome instance for development if it allows me to pass cli flags and have my workspace setup
16:41:26  <thlorenz>mikolalysenko: yeah and open just uses the default browser
16:41:34  <thlorenz>so if it's already running it'll just use that
16:41:39  <mikolalysenko>thlorenz: yeah, I think there would be some way to do it
16:42:25  <thlorenz>mikolalysenko: it's basically the same as doing 'open index.html' from terminal -- just finds default browser and opens new tab
16:42:30  <mikolalysenko>yeah
16:43:23  <thlorenz>mikolalysenko: we should bug paul_irish about adding a way to setup workspaces via a script/config/or cli flags
16:44:15  <dominictarr>thlorenz, hey, I've been thinking about your C streams thing,
16:44:33  <thlorenz>dominictarr: just working on it (valgrinding)
16:44:34  <mikolalysenko>I wonder how hard it would be to just write a patch for chrome that does it?
16:44:34  <mikolalysenko>seems like it shouldn't be too involved since all the infrastructure is there already
16:44:39  <mikolalysenko>but I don't know the chrome codebase/development flow at all
16:44:47  <dominictarr>what do you think it would take to make it async?
16:44:54  <thlorenz>mikolalysenko: if it is important enough they can do it ;)
16:44:59  <dominictarr>it looks like it uses callbacks already
16:45:01  <thlorenz>dominictarr: that's the next step
16:45:09  <thlorenz>but then it will depend on libuv
16:45:44  <thlorenz>dominictarr: so the sync version is just so it doesn't have any dependencies (and to figure this out with simpler requirements)
16:46:20  <dominictarr>ah okay good plan!
16:46:43  <thlorenz>dominictarr: I'm about to finish up the sync version (add a few more tests) and will move on to the async one
16:46:55  <thlorenz>I won't worry about backpressure though (at least for now)
16:47:39  <thlorenz>dominictarr: have you seen this https://github.com/thlorenz/ee.c ? It's API is compat with nodejs event emitter
16:48:19  <thlorenz>I originally did this to do streams, but then realized I don't need it - got some feedback from mmalecki and others to keep it simple
16:48:35  <mikolalysenko>grncdr: also nice article on semver
16:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 25]
16:55:06  <dominictarr>thlorenz, yeah, definately better to optimize for the single pipeline case
16:55:19  * jcrugzzjoined
16:55:22  <dominictarr>thlorenz, are you familiar with the actor model?
16:55:52  <thlorenz>dominictarr: saw a talk on it once (these guys were trying to use it in Java) much better in scala IMO
16:56:17  <dominictarr>yeah, something like that in C would be interesting.
16:56:55  <thlorenz>dominictarr: it's hard to do in imperative languages - as far as I remember limiting access is key for this to work
16:57:09  <thlorenz>in C it's hard to keep you from accessing things you are not supposed to
16:57:36  <thlorenz>i.e. actors should only send messages, but not be able to mutate them, etc. -- that already was hard to do in Java
16:58:40  <thlorenz>dominictarr: regardless it'd be an interesting experiment :)
16:59:24  <dominictarr>thlorenz, yeah that is why I'm very interesting in NaCl
16:59:42  <dominictarr>I don't think many people realize it's potential
16:59:54  <thlorenz>dominictarr: https://github.com/tonyg/js-nacl?
17:00:01  <dominictarr>no, the other one
17:00:09  <dominictarr>google Native Client
17:00:25  <thlorenz>https://github.com/jeremywohl/nacl?
17:00:43  <dominictarr>http://code.google.com/p/nativeclient/
17:00:56  <thlorenz>ah, thanks
17:01:16  <dominictarr>it's lightweight sandboxing for native code
17:01:19  <thlorenz>wow that is awesome, I didn't even know that existed
17:01:25  <dominictarr>anything that goes to LLVM
17:01:46  <thlorenz>like emscripten, but you don't need emscripten
17:02:07  <thlorenz>dominictarr: I knew me starting to learn C would come in useful :)
17:02:42  <dominictarr>yeah - also, native client can be *nested* i understand
17:02:45  <thlorenz>I wish I had more time - I kinda wanna jump right into this
17:02:56  <dominictarr>:)
17:03:03  <thlorenz>nested in other browsers? like chrome frame?
17:03:25  <dominictarr>I mean that a NaCl sandbox can have another NaCl sandbox inside of it.
17:03:32  <thlorenz>ah, ok
17:04:08  * thlorenzis having a hard time not to start the video otherwise the sync-stream tests will never get done
17:04:15  <dominictarr>so, you could have an app that had extensions written in C, but each extension was subject to enforcable permissions
17:04:42  <thlorenz>dominictarr: I'll watch the video after lunch (tests should be done by then)
17:04:49  <dominictarr>cool!
17:04:51  <thlorenz>thanks for showing me this
17:10:49  * marcello3d_zzZchanged nick to marcello3d
17:20:31  * marcello3dchanged nick to marcello3d_zzZ
17:37:57  <rowbit>substack, pkrumins: These encoders are STILL down:
17:47:55  * marcello3d_zzZchanged nick to marcello3d
17:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 24]
17:57:00  * yorickquit (Remote host closed the connection)
17:57:42  <kanzure>i am not convinced about yeoman
17:57:59  <kanzure>it dumps package.json files with huge lists of devdependencies but zero dependencies?
17:58:09  * AvianFlujoined
17:59:56  * coderzachjoined
18:00:55  * fotoveritejoined
18:01:29  <kanzure>oh and the tests fail anyway, how nice
18:06:26  * dominictarrquit (Remote host closed the connection)
18:07:26  * peutetrequit (Ping timeout: 264 seconds)
18:11:57  <rowbit>substack, pkrumins: These encoders are STILL down:
18:12:59  * peutetrejoined
18:13:11  * mikolalysenkoquit (Ping timeout: 272 seconds)
18:14:29  * mikolalysenkojoined
18:17:51  * thlorenzquit (Remote host closed the connection)
18:20:02  * AvianFluquit (Remote host closed the connection)
18:20:10  * hoobdeeblajoined
18:20:32  * marcello3dchanged nick to marcello3d_zzZ
18:24:09  * pfrazequit (Ping timeout: 252 seconds)
18:26:57  <rowbit>substack, pkrumins: These encoders are STILL down:,
18:27:28  * contrahaxjoined
18:28:23  <substack>Domenic_: browserify should be es6-ready now except for modules https://github.com/substack/node-browserify/issues/614
18:28:57  <substack>$ echo '(function *f() { yield 3 })()' | browserify >/dev/null; echo $?
18:29:00  <substack>00
18:32:02  * marcello3d_zzZchanged nick to marcello3d
18:35:53  * peutetrequit (Quit: peutetre)
18:39:12  <defunctzombie>pkrumins: you seem to know the linux stuff
18:39:26  * ednapiranhaquit (Remote host closed the connection)
18:39:28  <defunctzombie>pkrumins: I have tried again and again to raise the default open file handle limits
18:39:55  <defunctzombie>pkrumins: but without putting something in the user's bashrc I can never get default to be higher for users
18:40:02  <substack>defunctzombie: /etc/security/limits.conf ?
18:40:12  <defunctzombie>pkrumins: even for root.. I run ulimit -a and it always shows not what I expect
18:40:18  <defunctzombie>substack: yea.. I change that
18:40:25  <defunctzombie>but I somehow feel that more has to be done
18:40:30  <defunctzombie>to raise the default
18:40:30  <substack>have you set hard or soft limits?
18:40:35  <defunctzombie>both
18:40:50  <defunctzombie>maybe I should revisit this on a clean VM and try it
18:43:24  * ednapiranhajoined
18:44:16  * ednapiranhaquit (Client Quit)
18:45:18  * phatedjoined
18:48:25  <defunctzombie>ok.. I think it just requires a reboot
18:49:45  <defunctzombie>anyone know of a way to do it without a reboot?
18:52:26  <rowbit>Hourly usage stats: [developer: 0, free: 13]
18:56:15  * feross_quit (Ping timeout: 260 seconds)
18:56:40  * feross_joined
19:27:28  * ceejbotquit (Remote host closed the connection)
19:28:11  * thlorenzjoined
19:29:29  <pkrumins>defunctzombie: you need to logout and login
19:29:34  <pkrumins>defunctzombie: the limits are applied per session
19:30:00  <defunctzombie>yea.. figured that out finally :)
19:30:06  <pkrumins>cool
19:30:14  <defunctzombie>is there a way to get it to apply to the current session?
19:30:30  <defunctzombie>so if I use something like "salt" to manage my config and also enable services to run
19:30:38  <pkrumins>so you can set hard limit in limits.conf
19:30:40  <defunctzombie>I don't think it will use a different session
19:30:48  <pkrumins>and then use `ulimit` command to change it for the current session
19:30:55  <pkrumins>that will change the soft limit for the current session
19:31:01  <pkrumins>you cant go beyond hard limit set in limits.conf
19:32:09  <defunctzombie>right
19:32:28  <defunctzombie>ahh ok .. yea I guess I will setup a ulimit post command so that it also takes effect in the salt run
19:35:02  * dominictarrjoined
19:37:24  <dominictarr>wow, I upgraded chrome, and then that wouldn't work without libgcrypt.so.20 so I upgraded that, but, turns out that xorg, pacmac and pretty much EVERYTHING else wanted the old version
19:37:59  <dominictarr>But i didn't discover that until I accidentially quit X, and then couldn't restart it
19:38:30  <dominictarr>OH, and also, couldn't install anything, because it seems, pacman needed that to verify packages
19:38:51  <dominictarr>of course - it didn't fail with a useful error message though, it just failed to verify the packages.
19:39:32  <dominictarr>luckily I macgyvered the old libgcrypto.so.11 back into place and now everything works
19:39:45  <dominictarr>except now I know that arch is kind of a time bomb.
19:41:07  <substack>satanic versioning
19:43:04  <jesusabdullah>sooooooo 11!
19:50:09  * xero0_0joined
19:50:09  * xero314quit (Read error: Connection reset by peer)
19:52:07  <dominictarr>substack, thlorenz so you know what this stuff (https://pnacl-amiga-emulator.appspot.com/)
19:52:24  <dominictarr>(portable NaCl, not amiga per se)
19:52:27  <rowbit>Daily usage stats: [free: 6]
19:52:27  <rowbit>Hourly usage stats: [free: 6]
19:52:35  <dominictarr>would be really great for - music software
19:52:38  <dominictarr>vsts etc
19:53:07  <dominictarr>where the promise of asm (2x as bad as native) is kinda poor
19:53:12  <thlorenz>dominictarr: interesting, watching the NaCl video right now - also PNaCl is just the portable version of this right?
19:53:14  <ogd>dominictarr: hey was your module yesterday supposed to be called binomal or binomial
19:53:29  <ogd>dominictarr: i dont think binomal is in the dictionary
19:54:31  <dominictarr>thlorenz, pnacl is exactly the same, but it works on LLVM byte code instead of x86 machine code
19:54:49  <dominictarr>so, you only build once, and it can run on any hardware.
19:55:03  * thlorenzturns speed on video to 2x - way too much ceremony
19:55:15  <ogd>dominictarr: also can you write me an open source clone of Bittorrent Sync using the same underlying moduels as webtorrent so that I can plug it into dat?
19:55:24  <ogd>dominictarr: i will pay you in bitcoin
19:56:01  <dominictarr>ogd, you are right
19:57:13  <dominictarr>oh, hmm - how does bittorrent sync work? is it open source?
19:57:54  <ogd>dominictarr: not open source
19:57:57  <defunctzombie>dominictarr: it does work
19:58:03  <defunctzombie>dominictarr: it is pretty cool
19:58:16  <ogd>dominictarr: it is like dropbox over bittorrent
19:58:20  <dominictarr>defunctzombie, but HOW does it work?
19:58:31  <defunctzombie>dominictarr: same as bittorrent
19:58:33  <ogd>dominictarr: i want to use it to distribute open academic research data
19:58:46  <dominictarr>exactly the same, or just similar?
19:58:56  <ogd>it builds on bittorrent and adds other stuff like streaming and prioritization
19:59:03  <defunctzombie>dominictarr: http://www.bittorrent.com/sync/technology
19:59:14  <thlorenz>dominictarr: this is really interesting - seems like browsers will be doing two things in the future
19:59:14  <defunctzombie>dominictarr: very similar
19:59:15  <dominictarr>because the problem with bittorrent, as a replication protocol is that it only suits static datasets
19:59:24  <thlorenz>1. browser the web (JS suffices)
19:59:45  <substack>browserify is 29.54 million lines of code
19:59:49  <thlorenz>2. be a VM for any software like games (via llvm)
19:59:57  <defunctzombie>substack: wut
20:00:05  <substack>substack : node-browserify $ wc -c `find -name \*.js` 2>/dev/null|tail -n1
20:00:05  <substack>29547831 total
20:00:18  <defunctzombie>that's characters
20:00:20  <defunctzombie>no?
20:00:22  <substack>oh hah
20:00:26  <ogd>lol
20:00:28  <thlorenz>substack: use wc -l
20:00:32  <ogd>i thougth c was bytes
20:00:33  <substack>doing that!
20:00:41  <defunctzombie>hahaha
20:00:48  <substack>ok whew, only 0.65 million
20:00:51  <defunctzombie>there is no way it is 29 million lines .. haha
20:00:58  <defunctzombie>that would be insane
20:00:58  <dominictarr>thlorenz, what really excites me about pnacl is the idea of using it for systems programming
20:01:11  <defunctzombie>that is still a lot
20:01:14  <dominictarr>or to build a very secure OS, where *everything* is sandboxed
20:01:17  <defunctzombie>substack: you are double counting browserify?
20:01:18  <ogd>dominictarr: if you figure out how exactly bittorrent sync works and if it is really cool be sure to let me know!
20:01:24  <thlorenz>dominictarr: yep, all in line with the browser becoming the desktop basically
20:01:25  <defunctzombie>cause of the depdnency in insert globals?
20:01:29  <defunctzombie>*dependency
20:01:51  <substack>defunctzombie: it doesn't have that dep any more
20:01:57  <dominictarr>ogd, okay, I'll have a think about it.
20:01:58  <defunctzombie>substack: what you should do is see what files actually get loaded via all the require calls
20:02:02  <substack>the graph isn't cyclic
20:02:04  <defunctzombie>substack: then count those lines
20:02:06  <defunctzombie>ahh
20:02:19  <defunctzombie>wait..so if it doesn't depend.. how does it build the file it needed to build?
20:03:18  <defunctzombie>oh I see
20:03:23  <defunctzombie>it became a regular transform
20:03:25  <thlorenz>dominictarr: seems like you have entirely different vision than the panel in the video ;)
20:03:43  <thlorenz>they are just all about - you can plug C++ here and make your code faster there ...
20:04:04  <marcello3d>thlorenz: if you look at the direction firefox is going, they're trying to be a LLVM VM via javascript
20:04:20  <thlorenz>marcello3d: but via emscripten right?
20:04:20  <dominictarr>thlorenz, I think these guys get the potential: http://zerovm.org/
20:04:29  <defunctzombie>I just want a simple llvm like language to compile web languages to
20:04:29  <marcello3d>basically the argument is for a smaller attack vector, and with things like asm.js, it'll be just as fast
20:04:36  <defunctzombie>with a syscall like interface for DOM shit
20:04:38  <marcello3d>thlorenz: sure
20:04:48  <defunctzombie>then all the ES7 - 100 fighting can finally end
20:04:56  * jez0990quit (Quit: No Ping reply in 180 seconds.)
20:04:58  <defunctzombie>and we don't every have to care about what the ES committee thinks again
20:05:13  <thlorenz>marcello3d: so main difference is running actual bytecode vs. compiling to asm.js first?
20:05:15  <marcello3d>defunctzombie: it doesn't work like that in reality though, certain types of optimizations generally need bytecode support
20:05:18  * jez0990joined
20:05:25  <marcello3d>thlorenz: yep
20:05:33  <defunctzombie>marcello3d: sure.. that is what I am saying
20:05:36  <dominictarr>thlorenz, like, you could have a database query written in C, and send it *to* the database
20:05:47  <defunctzombie>marcello3d: I want browsers to just expose bytecode vms that we can target
20:05:51  <marcello3d>brendan eich has written a bunch about it
20:05:56  <marcello3d>and why byetcode vms aren't the answer
20:06:08  * AvianFlujoined
20:06:11  <defunctzombie>they are the answer hahah
20:06:16  <marcello3d>I mean, that's what java was
20:06:22  <defunctzombie>he just wants javascript to live on
20:06:24  <marcello3d>a lot of languages target the jvm
20:06:33  <dominictarr>marcello3d, I think the reason the be says that isn't the real reason he's saying that.
20:06:33  * trodriguesquit (Ping timeout: 252 seconds)
20:07:00  <dominictarr>marcello3d, but the jvm doesn't have sandboxing
20:07:04  <marcello3d>or microsoft's runtime, right?
20:07:12  <marcello3d>define sandboxing
20:07:18  * trodriguesjoined
20:07:20  * trodriguesquit (Changing host)
20:07:20  * trodriguesjoined
20:07:54  <dominictarr>it's a partitioned space that you can put something you don't trust into (like a small child) and they can do whatever they like and you know they won't break anything.
20:08:02  <thlorenz>that name PNACL was a good choice - when they are talking about it, it sounds like it's the pinnacle of everything :P
20:08:11  <dominictarr>like javascript in a browser tab
20:08:27  <dominictarr>BUT ALSO like a VM in a datacenter
20:08:41  <dominictarr>(both the front end and the back end of the web depend on sandboxing)
20:09:06  <thlorenz>dominictarr: so the browser is kinda like the physical machine and I can spin up multiple PNACL VMs in it?
20:09:20  <dominictarr>exactly
20:09:37  <dominictarr>although "physical" in this context only means more "physical"
20:10:07  <dominictarr>closer to god's computer
20:10:14  <thlorenz>I like the fact that they didn't write their own vm implementation and used llvm instead
20:10:18  * thealphanerdjoined
20:10:26  <thlorenz>Microsoft would have reimplemented llvm first :)
20:10:42  <defunctzombie>marcello3d: reason it is not the same as java is because of the deployment advantages and speed with deploying to browsers
20:10:43  * thealphanerdquit (Client Quit)
20:10:44  <marcello3d>because apple? ;)
20:11:14  <defunctzombie>marcello3d: and cause java tried to be too much
20:11:16  * anvakajoined
20:11:19  <marcello3d>defunctzombie: java used to be embedded in browsers
20:11:22  <defunctzombie>marcello3d: and it could also have been the wrong time
20:11:22  <marcello3d>you're never going to have browser vendors agree on a bytecode language
20:11:24  <marcello3d>it's too late
20:11:27  <thlorenz>marcello3d: I think it's actually very good that different approaches to this are tried
20:11:37  <defunctzombie>marcello3d: yea.. which is why asm.js is the best we have
20:11:42  <thlorenz>may the best win so we as developers can have the maximum fun ;)
20:12:15  <dominictarr>so, that is one of the interesting things: it can be polyfilled with asm.js
20:12:26  <defunctzombie>marcello3d: also.. it is not too late, just depends on the envionment
20:12:50  <marcello3d>couple links: https://news.ycombinator.com/item?id=1893686 http://www.hanselman.com/blog/JavaScriptIsAssemblyLanguageForTheWebPart2MadnessOrJustInsanity.aspx
20:13:01  * Maciek416joined
20:13:03  <marcello3d>dominictarr: agreed
20:13:33  * Maciek416quit (Remote host closed the connection)
20:14:54  <marcello3d>basically comes down to a performance vs robust compatibility trade-off
20:15:12  <dominictarr>personally, I'd want to use this at the OS level, ditch the browser as an "application"
20:15:20  <marcello3d>the closer you get to the hardware, the more performance, but at the risk of being inconsistent across platforms
20:15:33  <dominictarr>along with the same-origin policy and stuff,
20:15:56  <dominictarr>but give each sandbox only the permissions you allow it
20:16:15  * ceejbotjoined
20:16:57  <dominictarr>so, same origin becomes a config setting for a page
20:17:36  <dominictarr>marcello3d, yes - but the sweet spot is probably closer to the metal than JS, we just havn't had the technology to safely go there
20:18:05  <thlorenz>dominictarr: hearing ppl talk about assembly instructions in conjunction with code running in the browser is kinda eerie
20:18:10  <marcello3d>I think it's more of a political limitation than technological
20:18:32  <marcello3d>there are security concerns, too, of course
20:18:46  <thlorenz>eerie in a good way :)
20:18:59  <marcello3d>flash and java are disabled these days because they're constantly being hacked
20:20:26  <dominictarr>marcello3d, absolutely, but flash and java arn't sandboxed like pnacl
20:20:48  <marcello3d>pnacl is just an asm.js compiler, isn't it?
20:20:55  <marcello3d>nacl is more comparable to flash/java
20:21:15  <thlorenz>marcello3d: akaik at this point yes, so ideally your browser supports nacl
20:21:29  <thlorenz>if not the fallback is pnacl to produce asm.js to use in any browser
20:21:35  <marcello3d>but then nacl has the same problems as java/flash with respect to security
20:21:56  <marcello3d>you now have to harden both the nacl sandbox/runtime and the jsvm sandbox/runtime
20:22:03  <thlorenz>marcello3d: not sure in the video they talk about security a lot and the sandboxed model, etc.
20:22:33  <marcello3d>and you have multiple vendors trying to implement nacl and introducing their own security bugs (though honestly, browser vendors have little incentive to)
20:23:09  <marcello3d>you're better optimizing how the jsvm runs pnacl/asm.js, and your optimizations will help the web as a whole
20:24:40  <thlorenz>marcello3d: security and limitations are addressed here: http://youtu.be/MvKEomoiKBA?t=6m
20:24:47  <marcello3d>a sandbox isn't some magical thing that makes things secure
20:24:57  <dominictarr>yeah, probably no one will try to implement nacl because mozilla for example, would rather it didn't catch on
20:25:43  <thlorenz>marcello3d: from my understanding the security model won't allow you to access anything you can't do with js already
20:26:24  <dominictarr>marcello3d, so an app can be insecure, but, an insecure app can't own your whole machine
20:27:12  <marcello3d>I'm not trying to imply google is in any way bad at security
20:27:30  <dominictarr>I mean, javascript runs in a sandbox
20:27:54  <marcello3d>but if say microsoft were to go implement nacl to IE, you now have a larger attack surface for security bugs
20:27:56  <dominictarr>and if it didn't you wouldn't want to download and run it everytime you clicked on something
20:28:08  <thlorenz>marcello3d: not sure why there is such a fight about these two approaches (competition I guess), but in the end all you guys are just trying to achieve the same thing, make things faster in the browser and open doors
20:28:31  <marcello3d>whereas if you're compiling to JS and running through the jsvm, pnacl can't be any less secure than the jsvm
20:29:05  <thlorenz>marcello3d: chrome checks the bytecode you load for security flaws (not sure how that works though)
20:29:17  <marcello3d>so does the jvm verifier
20:29:27  <marcello3d>and jvm sandbox model
20:29:50  <dominictarr>marcello3d, but if you are gonna support asm.js, you might as well just send the llvm code
20:30:00  <dominictarr>and convert it to js in the browser
20:30:13  <marcello3d>that's fine, I'm not against that
20:30:14  <dominictarr>as that would probably be less bandwidth
20:30:30  <marcello3d>llvm bytecode isn't optimized for size, but yea
20:30:54  <marcello3d>even ignoring the size aspect of things, js code is already super huge on sites, so optimizing that for the general case is already a good thing
20:31:13  <dominictarr>right, but not asm.js super huge
20:31:32  * ceejbotquit (Remote host closed the connection)
20:31:35  <dominictarr>js people wince about 100k, which is nothing
20:31:49  * ceejbotjoined
20:31:51  <marcello3d>thlorenz: I think the "fight" comes down to 1) spend the effort of making nacl secure, fast, and getting people to use it vs 2) spend the effort making js faster
20:31:54  <dominictarr>but compile something interesting to asm.js and you'll have mb
20:32:28  <thlorenz>marcello3d: I wouldn't worry about that, I think google has enough resources to do both at the same time
20:32:30  <marcello3d>sure, but what kinds of things are we talking about?
20:32:46  <thlorenz>and the more options are tried, the more likely the best one is found
20:32:57  <dominictarr>marcello3d, so clang.js
20:33:05  <marcello3d>thlorenz: yea, but until it runs on, say, ios or safari, what's the point of using it?
20:33:07  <dominictarr>that is 45 mb
20:33:11  <marcello3d>geezus
20:33:30  <thlorenz>marcello3d: for these cases it'll use pnacl to run asm.js - best of both worlds no?
20:34:07  <marcello3d>sure
20:34:11  <dominictarr>I think the original ff asm demo, unreal or something, was 60 mb
20:34:36  <marcello3d>how much was code vs data?
20:35:29  <dominictarr>I don't know.
20:35:52  <marcello3d>when you have like a web app store model like chrome has, I feel like there's less concern over the size
20:37:20  <dominictarr>yeah - I hate the app store model
20:37:43  <dominictarr>there is no reason you can't have a web pages that updates intelligently though
20:38:07  <dominictarr>(problem with app store is platform has total control)
20:38:13  <marcello3d>yea
20:38:41  <marcello3d>if they exposed access to the app/file cache somehow
20:38:54  <marcello3d>though there are a different sort of security concerns there
20:38:56  <dominictarr>so, the web is getting better at this sort of stuff
20:39:14  <marcello3d>gotta separate the apis from the language/vm though
20:39:28  <dominictarr>but the specs people need to make low level apis, not declaritive ones that are intended to be easy
20:39:30  <marcello3d>they're kinda developed independently
20:39:38  <dominictarr>because they'll fail like appcache
20:39:48  <marcello3d>yea
20:40:07  <marcello3d>fewer simpler lower level apis
20:40:11  <dominictarr>the service worker idea is the right way
20:40:13  <marcello3d>it'd be awesome if DOM got reimplemented in JS
20:40:30  <dominictarr>given an even lower level api?
20:40:51  <marcello3d>I feel like a lot of these native apis should be written in JS
20:41:03  <dominictarr>haha, just reimplement DOM on top of webgl
20:41:16  <dominictarr>marcello3d, what do you mean by "native" here?
20:41:32  <marcello3d>like, HTMLElement is a c++ object or whatever
20:42:01  <marcello3d>it's not a true javascript object
20:42:09  <marcello3d>more apparent in some browsers than others
20:42:35  <marcello3d>completely unrelated, the broken age soundtrack is pretty good :)
20:42:57  <dominictarr>yes... it doesn't make that much difference now though, because it would need to be backwards compatible
20:43:07  <marcello3d>true
20:43:11  <dominictarr>if you could start from scratch, you could make it simpler
20:43:35  <dominictarr>use arrays instead of whatever weird linked list thing childNodes are in
20:43:44  <marcello3d>yea
20:44:07  <marcello3d>kinda curious what rust and servo are gonna look like
20:44:23  <defunctzombie>I can't take a language called rust seriously
20:44:27  <dominictarr>it would be better, but there just really isn't enough to gain by fixing little things like that
20:44:59  <dominictarr>you have to fix big things -- which is even harder, but the potential rewards are much greater too.
20:46:55  <marcello3d>yea
20:47:09  <marcello3d>then it comes down to if you want to spend time on the tools or actually making shit :)
20:47:59  <dominictarr>it's every developers life quest to build the perfect text editor
20:48:03  <dominictarr>whether they realize or not
20:48:09  <marcello3d>funny. to compile servo it git clones rust
20:48:50  <marcello3d>bah. text editors are a solved problem
20:49:44  <dominictarr>your concept of text editor is too narrow
20:49:59  <marcello3d>enlighten me
20:49:59  <dominictarr>like, they say, unix is an IDE for writing C
20:50:13  <dominictarr>the web is really just an IDE for javascript
20:51:15  <marcello3d>ide for javascript or for pixels?
20:52:26  <rowbit>Hourly usage stats: [free: 18]
20:52:57  <rowbit>substack, pkrumins: These encoders are STILL down:
20:55:11  * thlorenzquit (Remote host closed the connection)
20:55:44  * thlorenzjoined
20:58:08  * thlorenz_joined
20:58:15  * thlorenzquit (Read error: Connection reset by peer)
21:09:48  * peutetrejoined
21:12:10  * thlorenz_quit (Ping timeout: 272 seconds)
21:35:02  * dominictarrquit (Ping timeout: 264 seconds)
21:36:22  * cpupjoined
21:40:43  * feross_quit (Quit: feross_)
21:45:42  * funkytekjoined
21:52:26  <rowbit>Hourly usage stats: [free: 15]
22:02:29  * mikolalysenkoquit (Ping timeout: 240 seconds)
22:02:37  * marcello3dchanged nick to marcello3d_zzZ
22:04:35  * mikolalysenkojoined
22:27:35  * AvianFluquit (Remote host closed the connection)
22:32:20  * rsolejoined
22:34:01  * thlorenzjoined
22:52:26  <rowbit>Hourly usage stats: [free: 19]
22:52:48  * AvianFlujoined
22:55:59  * xero314joined
22:56:52  <jjjohnny>browsers need better permissions handling
22:57:30  <jjjohnny>cam, mic, file system, public key
22:58:16  <jjjohnny>cookies, p2p, externals
22:58:59  * xero0_0quit (Ping timeout: 240 seconds)
23:11:28  * xero0_0joined
23:15:29  * xero314quit (Ping timeout: 240 seconds)
23:19:45  * thlorenzquit (Remote host closed the connection)
23:20:19  * thlorenzjoined
23:24:50  * thlorenzquit (Ping timeout: 264 seconds)
23:35:55  * rsolequit (Ping timeout: 252 seconds)
23:41:23  * eugenewarejoined
23:46:13  * eugenewarequit (Ping timeout: 248 seconds)
23:52:26  <rowbit>Hourly usage stats: [free: 14]
23:52:31  <isaacs>defunctzombie: hey, didn't you have a module called 'fs' at some point?
23:52:47  <isaacs>defunctzombie: did you delete it on purpose?
23:54:09  * thealphanerdjoined
23:59:35  * contrahaxquit (Quit: Sleeping)