00:14:29  * Aredridelquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:21:44  * Aredrideljoined
00:31:31  <levelbot>[npm] [email protected] <http://npm.im/mosca>: The multi-transport MQTT broker for node.js. It supports AMQP, Redis, ZeroMQ, MongoDB or just MQTT. (@matteo.collina)
00:38:14  * blessYahujoined
00:45:44  * thlorenzquit (Remote host closed the connection)
00:50:52  * blessYahuquit (Remote host closed the connection)
00:57:28  * cwmmajoined
00:57:34  * cwmmapart
00:57:53  * cwmmajoined
00:58:36  * blessYahujoined
01:02:19  <cwmma>rtree implementations, the only ones that have been written for leveled are in memory right ?
01:07:56  * kenansulaymanchanged nick to kenan|afk
01:17:14  * cwmmaquit (Quit: cwmma)
01:17:25  * Aredridelquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:18:48  * contrahaxpart
01:32:47  * mikealquit (Quit: Leaving.)
01:35:37  * ramitosquit (Ping timeout: 246 seconds)
01:51:29  * thlorenzjoined
01:55:58  * thlorenzquit (Ping timeout: 245 seconds)
02:01:05  * katocolonjoined
02:04:46  <katocolon>log
02:12:58  * cwmmajoined
02:13:51  * cwmmaquit (Client Quit)
02:20:57  * thlorenzjoined
02:24:42  * Aredrideljoined
03:26:08  * ramitosjoined
03:31:24  <levelbot>[npm] [email protected] <http://npm.im/riffle>: Forward and reverse iteration of a Strata b-tree. (@bigeasy)
03:45:11  * eugenewarejoined
03:55:30  * Sorellaquit (Remote host closed the connection)
04:34:48  * jcrugzzjoined
04:46:29  * jcrugzzquit (Ping timeout: 272 seconds)
05:20:34  <ogd>prettyrobots: can you run leveldown on top of strata yet?
05:21:29  <prettyrobots>ogd: I'm refactoring.
05:22:10  <prettyrobots>ogd: When I got to reverse iterators, I extracted components into their own modules.
05:22:29  <ogd>ah cool
05:22:37  <prettyrobots>ogd: Reverse iterators had a lot of edge cases that were going to be ugly to test.
05:23:03  <prettyrobots>ogd: https://www.prettyrobots.com/coverage/bigeasy/riffle/18/18.1/lcov-report/riffle/index.js.html
05:23:20  <prettyrobots>That's "Riffle" which riffles through pages backward and forward. 100% test coverage.
05:25:10  <prettyrobots>ogd: I'd like to think I'll be it all put back together over the rest of the weekend and do a release by Tuesday.
05:50:45  * thlorenzquit (Remote host closed the connection)
05:51:18  * thlorenzjoined
05:55:33  * thlorenzquit (Ping timeout: 245 seconds)
06:16:25  * ramitosquit (Quit: Computer has gone to sleep.)
06:19:06  * Aredridelquit (Quit: Textual IRC Client: www.textualapp.com)
06:26:30  * eugenewarequit (Remote host closed the connection)
06:27:28  * eugenewarejoined
06:31:33  * blessYahuquit (Ping timeout: 246 seconds)
07:19:23  <levelbot>[npm] [email protected] <http://npm.im/pair>: Encode key/value pairs for database storage. (@bigeasy)
08:02:49  * mikealjoined
08:10:35  * katocolonquit (Ping timeout: 246 seconds)
08:14:49  * katocolonjoined
08:22:17  * katocolonquit (Ping timeout: 252 seconds)
08:30:01  * eugenewarequit (Remote host closed the connection)
08:41:38  * jcrugzzjoined
08:46:07  * jcrugzzquit (Ping timeout: 246 seconds)
09:11:34  * eugenewarejoined
09:20:58  * eugenewarequit (Ping timeout: 245 seconds)
09:28:29  * katocolonjoined
09:33:03  * katocolonquit (Ping timeout: 245 seconds)
09:43:14  * eugenewarejoined
10:37:57  * kenan|afkchanged nick to kenansulayman
13:05:05  * daviddiasjoined
13:22:53  <levelbot>[npm] [email protected] <http://npm.im/livelydb>: Abstract base class for Lively live-streaming database implementations. (@eugeneware)
13:31:22  <levelbot>[npm] [email protected] <http://npm.im/livelydb>: Abstract base class for Lively live-streaming database implementations. (@eugeneware)
13:34:59  * Sorellajoined
13:35:08  * Sorellaquit (Changing host)
13:35:08  * Sorellajoined
13:41:23  <levelbot>[npm] [email protected] <http://npm.im/memlively>: Pure memory implementation of LivelyDb for doing real-time data binding of a database with local javascript objects. (@eugeneware)
13:49:53  <levelbot>[npm] [email protected] <http://npm.im/daily-storage>: daily - The LevelDB storage abstaction (@andreasmadsen)
13:54:11  <juliangruber>robertkowalski: that shirt isn't made any more unfortunately. substack made it
14:04:15  * AndreasMadsenjoined
14:13:29  * Sorellaquit (Read error: Connection reset by peer)
14:14:13  * Sorellajoined
14:14:23  * Sorellaquit (Changing host)
14:14:24  * Sorellajoined
14:26:23  <levelbot>[npm] [email protected] <http://npm.im/livelystream>: Stream changes to and from a lively database as a node.js stream. (@eugeneware)
14:51:53  <levelbot>[npm] [email protected] <http://npm.im/observestream>: Duplex node.js stream to replicate live changes to and from Javascript objects. (@eugeneware)
15:09:22  <levelbot>[npm] [email protected] <http://npm.im/livelystream>: Stream changes to and from a lively database as a node.js stream. (@eugeneware)
15:10:23  <levelbot>[npm] [email protected] <http://npm.im/observestream>: Duplex node.js stream to replicate live changes to and from Javascript objects. (@eugeneware)
15:11:26  <levelbot>[npm] [email protected] <http://npm.im/memlively>: Pure memory implementation of LivelyDb for doing real-time data binding of a database with local javascript objects. (@eugeneware)
15:20:45  * ogdquit (Ping timeout: 246 seconds)
15:21:20  * ogdjoined
15:25:18  * rudjoined
15:25:18  * rudquit (Changing host)
15:25:18  * rudjoined
15:38:04  * AndreasMadsenquit (Remote host closed the connection)
15:38:58  * AndreasMadsenjoined
15:51:03  * ogdquit (Ping timeout: 240 seconds)
15:51:11  * ogdjoined
15:58:44  * blessYahujoined
16:02:54  * eugenewarequit (Remote host closed the connection)
16:10:24  * cwmmajoined
16:10:56  * mikealquit (Quit: Leaving.)
17:02:34  * eugenewarejoined
17:10:50  * eugenewarequit (Ping timeout: 252 seconds)
17:20:45  * thlorenzjoined
17:31:18  * AndreasMadsenquit (Remote host closed the connection)
17:40:38  * cwmmaquit (Quit: cwmma)
18:02:04  * AndreasMadsenjoined
18:08:47  * AndreasMadsenquit (Ping timeout: 260 seconds)
18:14:36  <prettyrobots>Notes on algorithm design: gist.github.com/bigeasy/8173012
18:14:48  <prettyrobots>Algorithm interface design, that is.
18:25:27  * AndreasMadsenjoined
19:00:48  * cwmmajoined
19:18:52  * cwmmaquit (Quit: cwmma)
19:20:08  * cwmmajoined
19:36:04  * AndreasMadsenquit (Remote host closed the connection)
19:56:01  * thlorenzquit (Remote host closed the connection)
20:02:26  * cwmmaquit (Quit: cwmma)
20:05:56  * cwmmajoined
20:08:57  * rudquit (Quit: rud)
20:15:17  * cwmmaquit (Quit: cwmma)
20:25:22  <levelbot>[npm] [email protected] <http://npm.im/skip>: Iterate an MVCC b-tree skipping defunct versions of the records. (@bigeasy)
20:28:17  * mikealjoined
20:28:58  * mikealquit (Client Quit)
20:34:06  * jcrugzzjoined
20:34:17  * AndreasMadsenjoined
20:35:59  * AndreasMadsenquit (Remote host closed the connection)
20:36:17  * AndreasMadsenjoined
20:40:32  <kenansulayman>prettyrobots you should either include a synopsis or a tl;dr :F
20:46:43  * katocolonjoined
20:48:55  <prettyrobots>kenansulayman: Thank you. That was helpful. https://gist.github.com/bigeasy/8173012
20:49:39  <kenansulayman>prettyrobots much better. thanks :)
20:50:23  <kenansulayman>Arrays, sets, maps and graphs are a valid level of abstraction.
20:50:31  <kenansulayman>what do you mean with that?
20:53:21  <prettyrobots>kenansulayman: There are time when you need to expose objects that point to other objects, i.e. a graph of objects, and you can't flatten that into `getTPSReportMarginRight`.
20:55:24  <prettyrobots>Also, sometimes just use arrays, use objects as maps and sets, and don't sweat how untyped it is. You can add structure at a higher level.
20:55:32  <kenansulayman>Ah, ok. So you're saying that exposing internals is the better approach. It's confusing when saying "exposing abstractions"; you could say "exposing abstractions of internals" et al.
20:55:53  <kenansulayman>:>
20:56:17  <kenansulayman>Well. It depends on an algorithms' complexity IMHO
20:56:40  <kenansulayman>The maintainability should overweight
20:56:43  <prettyrobots>Yes. Not all libraries are "abstractions." More like, the internals of of a b-tree are that there are no internals. It is a graph. (A tree.)
20:56:51  * mikealjoined
20:57:38  <prettyrobots>If you want to reuse it, you need to expose pages, iteration, balancing. If you build a database engine, then you abstract the b-tree.
20:58:45  <kenansulayman>Well! If you're building a database library, that is. An engine is a construct where far more is abstracted then in an SDK (library in this case)
21:04:36  <prettyrobots>kenansulayman: Yes. That is the distinction. I'm implementing a collection of concurrency controls on top of a JavaScript implementation of b-tree.
21:05:21  <prettyrobots>kenansulayman: And I need to keep reminding myself that the EventEmitter level of abstraction is a mismatch for these libraries, which makes them appear odd and unfashionable.
21:06:17  <kenansulayman>hum. you should keep in mind that you're in JS land
21:06:45  * mikealquit (Quit: Leaving.)
21:07:15  * mikealjoined
21:07:31  * ramitosjoined
21:08:39  * thlorenzjoined
21:12:09  * mikealquit (Quit: Leaving.)
21:14:37  * mikealjoined
21:17:02  <prettyrobots>prettyrobots: How do you mean?
21:20:08  * AndreasMadsenquit (Remote host closed the connection)
21:25:23  <kenansulayman>prettyrobots do you mean me?
21:25:39  <prettyrobots>kenansulayman: Yes. Whoops.
21:26:47  <kenansulayman>I mean that EventEmitter is a convention for higher-level libraries. node-hid, for instance, lacks everything alike and just exposes the "current" value of the incoming data
21:29:37  * AndreasMadsenjoined
21:30:57  * kenansulaymantopic: Happy 2014! — 2014 % 2 === 0 — http://logs.nodejs.org/leveldb/latest — http://r.va.gg/2013/11/leveldown-v0.10-managing-gc-in-native-v8-programming.html
21:31:24  <levelbot>[npm] [email protected] <http://npm.im/skip>: Iterate an MVCC b-tree skipping defunct versions of the records. (@bigeasy)
21:34:38  * mikealquit (Quit: Leaving.)
21:40:23  <levelbot>[npm] [email protected] <http://npm.im/daily>: daily - A LevelDB based logging system (@andreasmadsen)
21:46:41  * kenansulaymanchanged nick to kenan|afk
21:46:56  * kenan|afkchanged nick to kenansulayman
21:57:53  <levelbot>[npm] [email protected] <http://npm.im/designate>: Iterate a collection of MVCC b-tree cursors choosing the most recent version of a record from each tree. (@bigeasy)
22:14:15  * AndreasMadsenquit
23:00:01  * ralphtheninjaquit (Read error: Connection reset by peer)
23:01:13  * ralphtheninjajoined
23:01:36  * ralphtheninjaquit (Read error: Connection reset by peer)
23:09:52  <levelbot>[npm] [email protected] <http://npm.im/amalgamate>: Forward and reverse iteration of a Strata b-tree. (@bigeasy)
23:11:31  * ralphtheninjajoined
23:12:17  * ralphtheninjaquit (Read error: Connection reset by peer)
23:14:56  <kenansulayman>prettyrobots you noticed my message?
23:15:27  <prettyrobots>kenansulayman: Yes. I think your saying that JavaScript and Node.js are two different things.
23:15:44  <prettyrobots>kenansulayman: That some things are not full blown Node.js-ish.
23:15:51  <kenansulayman>Yes, pretty much
23:16:40  * katocolonquit (Quit: leaving)
23:18:23  <levelbot>[npm] [email protected] <http://npm.im/amalgamate>: Merge staging Strata b-trees containing MVCC versioned records into a primary Strata b-tree. (@bigeasy)
23:21:53  * ralphtheninjajoined
23:22:52  * ralphtheninjaquit (Read error: Connection reset by peer)
23:26:53  * ralphtheninjajoined
23:27:11  * ralphtheninjaquit (Read error: Connection reset by peer)
23:36:04  * eugenewarejoined
23:47:20  * ralphtheninjajoined
23:49:43  * ryan_ramagejoined
23:53:02  * daviddiasquit (Ping timeout: 240 seconds)
23:55:11  * kenansulaymanchanged nick to kenan|afk
23:55:41  * ryan_ramagequit (Quit: ryan_ramage)