00:06:07  * thl0quit (Remote host closed the connection)
01:15:52  * thl0joined
02:14:46  * ralphtheninjaquit (Ping timeout: 276 seconds)
02:36:12  * timoxleyquit (Quit: Computer has gone to sleep.)
03:01:33  * timoxleyjoined
03:20:36  * thl0quit (Remote host closed the connection)
03:53:30  * timoxleyquit (Quit: Computer has gone to sleep.)
04:01:51  * timoxleyjoined
04:29:40  * st_lukejoined
04:46:20  * st_lukequit (Remote host closed the connection)
05:08:31  <levelbot>[npm] levelplus@0.0.3 <http://npm.im/levelplus>: Adds atomic updates to levelup database (@nharbour)
05:09:55  <chilts>interesting
05:20:52  * st_lukejoined
05:21:22  * thl0joined
05:22:55  <rvagg>chilts, wolfeidau: is this a reasonable way to get an iface for flake: Object.keys(os.networkInterfaces()).filter(function (iface) { return iface != 'lo' })[0]
05:24:38  <chilts>rvagg: looks reasonable ... hold on one tick though, wolfeidau has some smart stuff in his tests in netif
05:24:41  <chilts>lemme look
05:25:12  <chilts>https://github.com/wolfeidau/node-netif/blob/master/test/netif_test.js#L13-L28 <- also takes into account the OS
05:25:22  <rvagg>btw wolfeidau, imo netif's interface should be as simple as require('netif')('eth0')
05:26:06  <chilts>yeah, that'd be nice - I guess there is only one function anyways
05:26:22  <rvagg>chilts, wolfeidau: current linux laptop doesn't have eth0 active cause I'm on wlan0, so that's not good enough, plus there's times when I might be on vmnet0 and I won't have process.env.TRAVIS of course
05:26:28  <wolfeidau>rvagg: lo doesn't have a mac addreess
05:26:45  <rvagg>wolfeidau: yeah, hence the filter to get rid of it from the list and then choose whatever's first
05:26:51  <chilts>re-read - he's got != in there :)
05:27:02  <rvagg>I'm guessing that the first in the list will mostly be the main interface
05:27:52  <chilts>rvagg: I wonder if I should just make that a default in flake if an interface isn't provided - thoughts?
05:28:10  <rvagg>it's all quite awkward, thankfully I can control my environment for this particular use
05:28:40  * rvaggshrugs
05:28:53  <rvagg>dunno how predictable os.networkInterfaces() is as an ordered list across platforms
05:29:05  <wolfeidau>rvagg chilts I was planning on rewriting it a bit recently but libuv guys are pretty happy to take the patch they have in a pull request so i was waiting for that
05:29:11  <wolfeidau>This will move it all into interfaces
05:29:18  <rvagg>yeah, nice
05:29:19  <chilts>hmm, that'd be nice when that patch happens
05:29:29  <wolfeidau>Yeah I am hassling :)
05:29:35  <chilts>rvagg: what are you using flake for?
05:29:44  <rvagg>chilts: logging to leveldb!
05:29:47  <wolfeidau>In the interum you should make a default per platform
05:29:53  <rvagg>log = db.sublevel('log')
05:29:53  <wolfeidau>Like my test does now
05:29:54  <chilts>\o/ - yay!
05:29:58  <rvagg>log.put(flake(), { stuff })
05:30:09  <chilts>nice
05:30:19  <rvagg>plus also liveStream(log, { old: false }).on('data', console.log) at the moment
05:30:50  <chilts>of course Flake is also designed to be unique across processes on a server, but with LevelDB you can only open it with one process - so there is a bit of redundancy there
05:31:11  <rvagg>chilts: redundancy until there is nice replication
05:31:27  <chilts>righto, so that's cool then 8)
05:31:36  <rvagg>plus also I could be using multilevel, it would make sense there too
05:31:42  <chilts>man, I love how this shit just works
05:31:49  <rvagg>yeah, I know!
05:31:57  <chilts>oh yeah, definitely with multilevel
05:32:04  <chilts>logging from different processes/servers
05:32:09  <chilts>sounds like a cool idea :)
05:32:54  <chilts>man, that would be wonderful ... much easier to query than a logfile
05:34:28  <chilts>on every log line in my servers, I also log a unique request ID (using either connect-uuid or connect-flake) ... so using two LevelDBs or that other level-* project to index them, it'd be dead easy to get all log lines related to one request
05:35:17  * chiltscan't remember which one it is
05:36:07  <chilts>level-sublevel
05:36:59  <rvagg>mm, I'm writing json to the value so I could make a filterable readstream, tho it wouldn't be efficient
05:37:09  <rvagg>map-reduce could be used to index them by host
05:37:13  <rvagg>or whatever
05:38:40  <chilts>nice
05:43:16  <chilts>rvagg: what's your thought on just opening two different LevelDB instances, rather than using level-sublevel
05:43:32  <chilts>e.g. a log table and a request table which points to all the log lines (or whatever)
05:43:50  <rvagg>chilts: I have a post to write about that, it comes down to the use-case really but IMO you should prefer using sublevel (or similar) generally
05:44:02  <chilts>rather than log!* and request!* (or \0x00 and \0xFF as the separators)
05:44:17  <chilts>why? faster or just easier
05:44:49  <chilts>I suppose using sublevel gets you some sort of atomicity when writing multiple values
05:45:04  <rvagg>a bunch of reasons, like having a shared cache you can crank up, memory behaviour, also limitations on file descriptors and whatnot
05:45:33  <rvagg>if it was just something like an appending log then perhaps that'd be reasonable cause you don't need to cache anything there so you can set a low cache value and just push to it
05:45:33  <chilts>yeah, true
05:46:01  <rvagg>there were a few other thoughts I had about this but they're escaping me at the moment
05:46:27  <rvagg>there are times when having multiple dbs might be better, perhaps in some performance-important scenarios where writes are backing up a bit too much on a single database
05:46:29  <chilts>:)
05:46:31  <rvagg>but that's not going to be a common case
05:47:11  <chilts>righto, sounds interesting ... I was thinking of opening multiple DBs for MoDB (when I get around to doing it), since tables can be LevelDB, Redis, Postgres or Memory
05:47:46  <chilts>but perhaps I can just use namespacing for all the backends
05:47:50  <chilts>ah yeah!
05:47:59  * chiltssees a lightbulb above his head
05:48:02  <chilts>thanks rvagg
05:48:04  <chilts>I might try that
05:48:13  <rvagg>heh
05:49:13  <chilts>that might be easier, since all tables look the same anyway
05:49:33  <chilts>and then things like Pg can have columns : tablename, itemname, value, inserted (etc)
05:49:36  <chilts>coool
05:50:06  <chilts>and timestamp (e.g. the flake id)
06:34:07  * Pwnnaquit (Ping timeout: 264 seconds)
06:42:48  * wolfeidauquit (Remote host closed the connection)
06:45:18  * wolfeidaujoined
06:46:11  * wolfeidauquit (Remote host closed the connection)
06:57:29  * ralphtheninjajoined
07:05:24  * Pwnnajoined
07:30:31  <levelbot>[npm] byteup@0.0.6 <http://npm.im/byteup>: Add bytewise as a levelup leveldb encoding (@nharbour)
07:33:40  * dominictarrjoined
07:51:55  * Pwnnaquit (Ping timeout: 256 seconds)
07:54:09  * nemequjoined
08:00:22  * SomeoneWeirdjoined
08:06:08  * ChrisPartridgequit (Ping timeout: 276 seconds)
08:09:13  <st_luke>hij1nx: mayorship stolen
08:10:24  * mcollinajoined
08:15:35  * SomeoneWeirdpart ("Leaving")
08:41:01  <st_luke><3 level
08:41:04  * no9joined
08:41:45  <st_luke>rvagg: that's a hell of a discussion
08:41:46  <st_luke>#118
08:42:01  <st_luke>I agree wholeheartedly on not letting aliases get out of control though
09:16:22  <rvagg>ERRNEEDSMOREGIFS
09:16:32  <rvagg>st_luke: it's a discussion waiting for a pull request
09:16:36  <st_luke>rvagg: yeah
09:16:53  <st_luke>did err.name go away?
09:17:09  <rvagg>no, shouldn't have
09:17:16  <st_luke>getting undefined
09:18:01  <rvagg>oh, odd, must be an unwrapped error, where's it coming from?
09:18:02  <st_luke>not getting a name anymore in the object
09:18:25  <st_luke>ah wait, maybe this is multilevel
09:18:29  <st_luke>it's just a simple db.get
09:19:02  <rvagg>mm, nothing's changed there from what I can recall
09:19:30  <st_luke>yeah - https://github.com/rvagg/node-levelup/blob/bb7a084e891f0a1e556973e8afff85d94b776ff0/lib/errors.js
09:21:48  <st_luke>works fine in level, maybe multilevel
09:23:50  <st_luke>yep
09:26:19  <st_luke>no big deal
09:26:24  <st_luke>juliangruber: https://github.com/juliangruber/multilevel/issues/15 :)
09:27:31  <juliangruber>st_luke good find!
09:28:33  <st_luke>:P
09:29:06  <st_luke>i can work around it for now
09:31:23  <juliangruber>so the error (de)serialization must be intelligent
09:54:37  * joaojeronimojoined
09:57:14  <joaojeronimo>Hey guys, has anyone else experienced problems in launching a process that uses a leveldb, and after that setting the user to a less privileged user ?
09:58:20  <joaojeronimo>This is happening to me with upstart jobs. Apparently the process starts, forks for leveldb, sets the lock on the database, then it changes the uid for the process, and the locks are not accessible anymore
10:21:42  <st_luke>juliangruber: you will soon learn to love autocomplete in lev :)
10:22:03  <st_luke>when you have a few thousand keys you're trying to work with in your cli it becomes very useful
10:52:52  <dominictarr>juliangruber: this is a thing level rpc-stream I think, you have to squash the error
10:53:18  <dominictarr>because many errors have self-references (cycles) that make JSON throw.
11:26:30  * joaojeronimoquit (Ping timeout: 264 seconds)
11:39:57  * wolfeidaujoined
11:49:47  <thl0>dominictarr: I got the sublevel thing to work - now working on doing the same with hooks
11:50:13  <thl0>just confusing that I need a sub db even if I give prefixes i.e. see: https://github.com/thlorenz/level1/blob/master/samples/indexing/with-sublevel.js#L44
11:50:54  <thl0>dominictarr: makes sense why it is that way, just odd from API standpoint
11:52:07  <dominictarr>thl0: can you post an issue?
11:53:09  * joaojeronimojoined
11:53:26  <dominictarr>thl0: you mean that you can't use the top db?
11:53:37  <dominictarr>you have to do db.sublevel('__main__') ?
11:53:55  <dominictarr>that used to work, but broke in 0.9
11:54:04  <dominictarr>working on fixing that now
11:59:03  <thl0>dominictarr: I didn't think it was a real issue, just odd API, but I can file one
12:00:04  <dominictarr>want it to be easy to use,
12:00:06  * joaojeronimoquit (Ping timeout: 264 seconds)
12:00:31  <dominictarr>in the least, having a "discussion issue" serves as documentation for the next person who is confused
12:02:19  * joaojeronimojoined
12:02:31  <thl0>dominictarr: https://github.com/dominictarr/level-sublevel/issues/11
12:04:28  <dominictarr>thl0: is the problem that you have to do: sub.batch(…) and can't do db.batch(…prefix:...) ?
12:05:05  <thl0>dominictarr: problem is that I'd just like to do db.batch(.. instead of having to create the dummy sub
12:05:15  <thl0>so yes
12:06:39  <dominictarr>right. that is ment to work, but broke in levelup 0.9
12:06:46  <dominictarr>fixing this now
12:07:00  <thl0>cool!
12:12:15  <dominictarr>thl0: what version of levelup are you using?
12:12:45  <thl0>0.9.0
12:13:04  <thl0>via level 0.9.0
12:19:37  <juliangruber>dominictarr are you saying rpc-stream should handle this or multilevel has to?
12:20:20  <dominictarr>this is about the errors, right?
12:21:11  <dominictarr>my hunch is that the fix is in rpc-stream
12:22:06  <juliangruber>yes
12:22:22  <juliangruber>it should try to keep it the same, just skipping circular references
12:23:30  <juliangruber>maybe with https://github.com/isaacs/json-stringify-safe
12:28:28  <dominictarr>the other thing with Error objects, is that .stack gets skipped by JSON, because it's a getter, or something
12:34:43  * thl0quit (Remote host closed the connection)
12:36:42  * joaojeronimoquit (Ping timeout: 264 seconds)
12:37:01  * joaojeronimojoined
12:42:06  * joaojeronimoquit (Ping timeout: 264 seconds)
12:42:31  <levelbot>[npm] level-hooks@4.1.10 <http://npm.im/level-hooks>: pre/post hooks for leveldb (@dominictarr)
12:50:36  <levelbot>[npm] level-live-stream@1.4.1 <http://npm.im/level-live-stream>: Stream live changes from levelup. (@dominictarr)
12:53:55  * joaojeronimojoined
13:06:59  * werlejoined
13:11:54  * timoxleyquit (Quit: Computer has gone to sleep.)
13:22:26  <dominictarr>mbalho: how do you delete a db in level.js?
13:26:49  * thl0joined
13:30:45  <no9>dominictarr indexedDB.deleteDatabase('DB NAME')
13:31:51  <no9>It's not part of abstract-leveldown
13:32:36  <dominictarr>is it truely that simple?
13:34:16  <werle>is it async?
13:38:49  <thl0>dominictarr: read thru some code while on the subway - found a possible bug
13:39:09  <thl0>https://github.com/dominictarr/map-reduce/blob/master/range.js#L31 shouldn't you return exports here?
13:42:06  <no9>dominictarr that only works in chrome BTW from what I can see it isn't async
13:42:19  <dominictarr>yes
13:42:48  <dominictarr>that should return exports
13:43:11  <dominictarr>although, it works if you pass in a object for it to mutate
13:45:36  <no9>In Firefox I think you have to go to the OS /home/yourname/.mozilla/firefox/xxxxxx.default/indexedDB
13:46:54  <dominictarr>no9: that will be fixed in next map-reduce patch
13:47:18  <no9>dominictarr thanks
13:48:42  <thl0>dominictarr: yes, but since you also allow not passing one ... ;)
13:48:58  <thl0>dominictarr: btw just saw you are working on testling setup
13:49:10  <thl0>you can use testlingify for that now \o/
13:49:23  <thl0>npm i -g testlingify
13:49:23  <dominictarr>thl0: thanks
13:49:38  <thl0>then testlingigify in your repo
13:49:44  <thl0>same interface as travisify
13:50:50  <thl0>i.e. that badge you had problems with, you just get via: 'testlingify badge' :)
13:53:30  * joaojeronimoquit (Ping timeout: 264 seconds)
13:54:36  <dominictarr>thanks
13:55:33  * joaojeronimojoined
14:01:09  * thl0quit (Ping timeout: 248 seconds)
14:01:37  * thl0joined
14:01:54  * joaojeronimoquit (Ping timeout: 264 seconds)
14:03:37  * joaojeronimojoined
14:11:41  * no9quit (Read error: Operation timed out)
14:12:42  * joaojeronimoquit (Ping timeout: 264 seconds)
14:14:44  * joaojeronimojoined
14:18:04  * levelbotquit (Ping timeout: 249 seconds)
14:18:38  * levelbotjoined
14:21:03  * timoxleyjoined
14:22:40  * no9joined
14:22:54  * joaojeronimoquit (Ping timeout: 264 seconds)
14:24:32  * joaojeronimojoined
14:25:11  * thl0quit (Ping timeout: 256 seconds)
14:26:58  * num9joined
14:27:08  * werlequit (Quit: Leaving.)
14:28:33  * thl0joined
14:29:53  * werlejoined
14:31:18  * joaojeronimoquit (Ping timeout: 264 seconds)
14:33:39  * werlequit (Client Quit)
14:44:01  * joaojeronimojoined
15:09:28  * werlejoined
15:14:07  * timoxleyquit (Quit: Computer has gone to sleep.)
15:22:31  <levelbot>[npm] level-test@1.0.0 <http://npm.im/level-test>: inject different level implementations (browser, leveldb, etc) into your tests. (@dominictarr)
15:24:02  <levelbot>[npm] level-test@1.0.1 <http://npm.im/level-test>: get a clean levelup instance for testing. (@dominictarr)
15:26:35  <levelbot>[npm] level-test@1.1.0 <http://npm.im/level-test>: get a clean levelup instance for testing. (@dominictarr)
15:41:43  * no9quit (Ping timeout: 252 seconds)
15:42:00  * num9quit (Ping timeout: 256 seconds)
15:55:30  <levelbot>[npm] level-test@1.1.1 <http://npm.im/level-test>: get a clean levelup instance for testing. (@dominictarr)
15:56:33  * num9joined
15:57:45  * no9joined
16:08:12  * Raynosquit (Remote host closed the connection)
16:08:15  * niftylettucequit (Remote host closed the connection)
16:15:04  * Pwnnajoined
16:26:14  * thl0quit (Remote host closed the connection)
16:42:48  * mcollinaquit (Remote host closed the connection)
16:44:34  * jez0990_changed nick to jez0990
16:45:43  * Pwnnaquit (Remote host closed the connection)
16:47:11  * Pwnnajoined
17:21:48  * thl0joined
17:32:47  * niftylettucejoined
17:33:03  * thl0quit (Remote host closed the connection)
17:39:04  * Raynosjoined
18:15:28  * st_lukequit (Remote host closed the connection)
18:44:42  * thl0joined
19:58:30  * no9quit (Quit: Leaving)
20:38:30  <levelbot>[npm] level-trigger@1.1.2 <http://npm.im/level-trigger>: Triggers for levelup. (@dominictarr)
20:52:39  * joaojeronimoquit (Quit: Ex-Chat)
21:08:11  * num9quit (Ping timeout: 260 seconds)
21:50:30  <levelbot>[npm] dmprealtime@0.0.4 <http://npm.im/dmprealtime>: Implements a diff-match-patch realtime collaboration using Faye, Google DMP and LevelDB. (@kenansulayman)
22:01:30  * ramitosquit (Quit: Textual IRC Client: www.textualapp.com)
22:05:57  * thl0quit (Remote host closed the connection)
22:16:09  * num9joined
22:21:05  * ramitosjoined
22:25:59  * ramitosquit (Quit: Textual IRC Client: www.textualapp.com)
22:26:09  * ramitosjoined
22:27:14  * ramitosquit (Client Quit)
22:27:26  * ramitosjoined
22:36:30  <levelbot>[npm] level-trigger@1.1.3 <http://npm.im/level-trigger>: Triggers for levelup. (@dominictarr)
22:39:33  <levelbot>[npm] level-trigger@1.1.4 <http://npm.im/level-trigger>: Triggers for levelup. (@dominictarr)
22:52:22  * num9quit (Ping timeout: 276 seconds)
22:56:03  * werlequit (Quit: Leaving.)
23:09:23  * timoxleyjoined
23:15:14  * dominictarrquit (Read error: Connection reset by peer)
23:15:34  * dominictarrjoined
23:16:40  <levelbot>[npm] level-sublevel@4.6.5 <http://npm.im/level-sublevel>: Separate sections of levelup, with hooks! (@dominictarr)
23:17:17  <dominictarr>wow, I found a bunch of bugs updating everything from levelup to level...
23:40:29  * ChrisPartridgejoined