00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:04:09  * thl0joined
00:04:12  * jxson_joined
00:04:39  * stlsaintjoined
00:07:03  * jxsonquit (Ping timeout: 260 seconds)
00:07:50  * wiwilliaquit (Quit: wiwillia)
00:08:37  * jxson_changed nick to jxson
00:09:12  * ins0mniaquit (Ping timeout: 264 seconds)
00:10:13  * dominictarrquit (Quit: dominictarr)
00:15:02  * no9joined
00:17:54  * jcrugzzquit (Ping timeout: 245 seconds)
00:21:53  * no9quit (Quit: Leaving)
00:22:47  * jcrugzzjoined
00:33:28  * tmcwjoined
00:34:16  * dguttman_joined
00:36:25  * dguttmanquit (Ping timeout: 256 seconds)
00:36:25  * dguttman_changed nick to dguttman
00:55:46  * jibayquit (Remote host closed the connection)
00:59:50  * jxsonquit (Ping timeout: 252 seconds)
01:06:05  * tmcwquit (Remote host closed the connection)
01:07:17  * tilgoviquit (Ping timeout: 248 seconds)
01:08:22  * AvianFluquit (Remote host closed the connection)
01:08:41  * tmcwjoined
01:16:29  * tmcwquit (Remote host closed the connection)
01:18:53  * dguttmanquit (Quit: dguttman)
01:20:58  * defunctzombiechanged nick to defunctzombie_zz
01:23:29  * jxsonjoined
01:23:52  * jxsonquit (Remote host closed the connection)
01:24:09  * jxsonjoined
01:44:33  * mikolalysenkoquit (Ping timeout: 240 seconds)
01:53:15  * fallsemoquit (Quit: Leaving.)
02:42:13  * jxsonquit (Ping timeout: 258 seconds)
02:46:05  * shamaquit (Remote host closed the connection)
02:46:37  * shamajoined
03:13:31  * thl0quit (Remote host closed the connection)
03:18:53  * dguttmanjoined
03:19:15  * dguttmanquit (Client Quit)
03:22:39  * shamaquit (Remote host closed the connection)
03:42:14  * Benvie1joined
03:47:46  * defunctzombie_zzchanged nick to defunctzombie
03:57:14  * fallsemojoined
04:19:08  * devaholicjoined
04:24:20  * fallsemoquit (Quit: Leaving.)
04:52:14  * kenperkinsquit (Quit: Computer has gone to sleep.)
04:59:32  * douglaslassancejoined
04:59:51  * douglaslassancechanged nick to Asterokid
05:06:20  * defunctzombiechanged nick to defunctzombie_zz
05:56:57  * Benvie1quit (Ping timeout: 276 seconds)
06:20:21  * kanzurequit (Ping timeout: 276 seconds)
06:20:30  * kanzurejoined
06:35:39  * wolfeidauquit (Remote host closed the connection)
06:36:59  * jjjjohnnnyquit (Ping timeout: 252 seconds)
06:36:59  * hij1nxquit (Ping timeout: 252 seconds)
06:40:43  * Nexxyquit (Ping timeout: 264 seconds)
06:42:10  * Nexxyjoined
06:45:14  * jjjjohnnnyjoined
06:46:46  * hij1nxjoined
07:19:55  * keslajoined
07:21:57  * stagasjoined
07:27:02  * stagasquit (Ping timeout: 252 seconds)
07:33:33  * keslaquit (Quit: Computer has gone to sleep.)
07:39:52  * stagasjoined
07:42:31  * Asterokidquit (Quit: Linkinus - http://linkinus.com)
08:31:26  * keslajoined
08:42:19  * jcrugzzquit (Ping timeout: 256 seconds)
09:04:28  * jibayjoined
09:21:09  * stlsaintquit (Ping timeout: 248 seconds)
09:25:34  * wolfeidaujoined
09:53:52  * jcrugzzjoined
09:58:33  * jcrugzzquit (Ping timeout: 256 seconds)
10:27:10  * thl0joined
10:31:20  * keslaquit
10:31:43  * thl0quit (Ping timeout: 264 seconds)
10:32:08  * dominictarrjoined
10:52:27  * timoxleyquit (Ping timeout: 260 seconds)
10:56:56  * wolfeidauquit (Read error: Connection reset by peer)
10:57:01  * wolfeida_joined
11:01:25  * nicholasfquit (Read error: Connection reset by peer)
11:01:55  * nicholasfjoined
11:08:24  * thl0joined
11:12:58  <dominictarr>http://www.terrybisson.com/page6/page6.html?buffer_share=88054&utm_source=buffer&utm_medium=twitter&utm_campaign=Buffer%253A%2520%2540TechWraith%2520on%2520twitter
12:04:15  * keslajoined
12:12:47  <ralphtheninja>dominictarr: good one :)
12:13:10  <dominictarr>dang meatheads!
12:13:15  <ralphtheninja>hehe
12:13:45  <dominictarr>maybe one day we'll grow out of this meat-phase
12:14:11  <ralphtheninja>well, we have to sooner or later if we are to survive
12:16:04  <dominictarr>yeah, we are gonna need to get better at writing software, though
12:16:09  <ralphtheninja>lol
12:16:09  <dominictarr>aka, building systems.
12:17:29  <ralphtheninja>we use software to create systems so we can communicate with each other, it's basically just databases and data sent back and forth, if we can find a better way to integrate our minds we wont need any software, we can just think and let our brains do the rest
12:17:34  <ralphtheninja>need better brainware :)
12:18:26  <dominictarr>yes, currently, the brain-computer is pretty awkward
12:18:40  <dominictarr>I mean, like you have to use your fucking fingers!
12:18:45  <ralphtheninja>hahaha
12:19:01  <dominictarr>not to mention learn two very different languagues
12:19:21  <dominictarr>and most people are not really computer literate,
12:19:40  <ralphtheninja>aye, which are just abstractions so you can make the computer do what you really thought in the other language
12:20:27  <dominictarr>most peoples ability to communicate with computers is like comparing cave paintings to literature.
12:20:28  <ralphtheninja>universe is fucked up, but it's beautiful :)
12:20:35  <ralphtheninja>lol
12:20:55  <dominictarr>but now, 99% of people can read and write
12:20:58  <dominictarr>and talk
12:21:06  <dominictarr>which are just symbolic languages
12:21:42  <dominictarr>so, I can't see any reason that 99% of people can't learn to communicate with computers
12:22:22  <dominictarr>that said - it's much harder than it should be...
12:22:29  <ralphtheninja>agree
12:22:32  <dominictarr>like… bash?
12:22:45  <ralphtheninja>I think 99% is a bit high though, probably less that can read and write
12:22:48  <dominictarr>bash is nonsense
12:23:01  <ralphtheninja>yeah bash is horrible
12:23:22  <ralphtheninja>I alllllways have to look up things "how did this thing work again?"
12:23:40  <ralphtheninja>take the if statements and their quirks for example
12:23:47  <dominictarr>http://en.wikipedia.org/wiki/File:WorldMapLiteracy2011.png
12:24:33  <dominictarr>90% is totally doable
12:24:40  <ralphtheninja>aye
12:24:59  <ralphtheninja>sucks in africa, but they aren't that many
12:25:00  <dominictarr>and consider what that would have looked like 100 years ago
12:25:36  <dominictarr>but even in Africa, there everyone probably knows someone who is literate.
12:26:00  <ralphtheninja>I wonder if you really need to read and write to learn programming
12:26:09  * thl0quit (Remote host closed the connection)
12:26:49  * thl0joined
12:27:00  * devaholicpart ("Leaving")
12:28:06  <dominictarr>it's not useful to be only able to communicate with either meatheads or computers.
12:28:08  <dominictarr>need both
12:28:26  <ralphtheninja>true
12:28:29  <dominictarr>my point is that the complexity is equalivatent
12:29:13  <kesla>I'm really sad I missed the beginning of what seem to be an awesome discussion
12:29:27  <rvagg>kesla! welcome to irc
12:29:48  <kesla>rvagg! Thank you! I've been here silently for a few days :)
12:30:03  <ralphtheninja>kesla: välkommen :)
12:30:05  <rvagg>k, see ##leveldb too (note the 2 x #)
12:30:29  <kesla>I've joined the very silent #leveldb, will check out the ##leveldb also!
12:30:51  <kesla>ralphtheninja: Tack!
12:31:03  <dominictarr>kesla: welcome!
12:31:09  <dominictarr>the start was this http://www.terrybisson.com/page6/page6.html?buffer_share=88054&utm_source=buffer&utm_medium=twitter&utm_campaign=Buffer%253A%2520%2540TechWraith%2520on%2520twitter
12:31:12  <kesla>dominictarr: Thank!
12:31:18  * thl0quit (Ping timeout: 264 seconds)
12:32:02  <rvagg>I'm switching from JavaScript to Malbolge I think, I need a new challenge: http://en.wikipedia.org/wiki/Malbolge
12:32:04  <dominictarr>ralphtheninja: actually, I have a few ideas for something that is better than bash
12:32:12  <dominictarr>but… this might sound crazy...
12:32:23  <dominictarr>it's more like jQuery
12:33:23  <kesla>rvagg: Malbolge makes brainfuck look easy
12:33:40  <rvagg>indeedy
12:33:48  <ralphtheninja>dominictarr: oh? do tell :)
12:34:21  <dominictarr>so, bash does have some cool stuff
12:34:24  <dominictarr>pipes
12:34:28  <dominictarr>globs
12:34:56  <dominictarr>the bad things are like, whitespace delimitation
12:35:00  <dominictarr>and how
12:35:15  <dominictarr>value=variable with a space
12:35:21  <dominictarr>$value
12:35:27  <ralphtheninja>rvagg: create a malbolge wrapper for leveldb!
12:35:45  <dominictarr>will come out with spaces
12:35:54  <ralphtheninja>nods
12:35:56  <dominictarr>you have to do "$value"
12:36:00  <dominictarr>etc
12:36:09  <dominictarr>it's not a clean abstraction
12:36:21  <dominictarr>because the way bash is parsed is messy
12:36:51  <dominictarr>this is where the "just get it working" approach falls down
12:36:58  <rvagg>g'night from the underside
12:37:03  <dominictarr>you hit a local maxima
12:37:04  <ralphtheninja>rvagg: night!
12:37:08  <dominictarr>rvagg: nite!
12:37:08  <ralphtheninja>dominictarr: aye
12:37:22  <dominictarr>and you don't get clean abstractions
12:37:32  <ralphtheninja>what do you mean with local maxima?
12:38:16  <dominictarr>http://en.wikipedia.org/wiki/Local_maxima
12:38:31  <dominictarr>it means you get stuck in a rut
12:38:33  <dominictarr>basically
12:38:38  <ralphtheninja>ok
12:38:49  <ralphtheninja>I'm familiar with the mathematical term :)
12:39:22  <dominictarr>basically, in a search problem, you get stuck in a situation that seems good
12:39:32  <ralphtheninja>aah ok
12:39:36  <dominictarr>because it's better than the other things you tried
12:39:47  <ralphtheninja>you think you have the correct result or the best results
12:39:49  <dominictarr>but it doesn't mean it's the optimal
12:39:56  <ralphtheninja>nods
12:40:11  <dominictarr>sometimes you have to get worse and then get better
12:40:22  <ralphtheninja>so bash itself is kind of a local maxima
12:40:29  <dominictarr>totally
12:40:35  <dominictarr>you'd have to break bash to fix it
12:40:48  <ralphtheninja>or break out of bash and create something new
12:40:48  <dominictarr>because it's parser is totally weird
12:41:01  <dominictarr>exactly
12:41:13  <dominictarr>so, like globs are pretty good
12:41:27  <dominictarr>how you can select a set of files an then act on them
12:41:50  <dominictarr>but, then each command has to implement it's own -r
12:41:58  <ralphtheninja>so basically we need something in between bash and javascript?
12:42:08  <dominictarr>and sometimes it's -r and sometimes it's -R
12:42:14  <dominictarr>and sometimes there is no -l
12:42:16  <dominictarr>-r
12:42:21  <dominictarr>like there is no ls -r
12:42:26  <ralphtheninja>nods
12:42:28  <dominictarr>or wc -r
12:42:41  <dominictarr>those options are totally missing
12:43:34  <dominictarr>and also, having a program that does lists files AND traverses directorys isn't "one thing well" it's two things
12:44:19  <dominictarr>ralphtheninja: yeah, I agree. js is a real language, that you can use for real programs
12:44:40  <dominictarr>I want something that can replace everything bash does
12:44:49  <dominictarr>so I can just open a node repl
12:45:06  <ralphtheninja>nods, because sometimes using bash is so much better than to step up in abstraction to a real language
12:45:35  <dominictarr>yes, and also, bash is always there
12:46:20  <dominictarr>anyway - so I realized recently, with a thing that jez0990 showed me,
12:46:38  <dominictarr>that this traversing/selecting thing happens a lot!
12:46:57  * spionjoined
12:47:01  <dominictarr>like in jquery, you select a bunch of elements, and then do something to them
12:47:04  <ralphtheninja>aye
12:47:13  <dominictarr>but in bash, you try to do the same thing
12:47:22  <dominictarr>rm *.coffee
12:47:26  <dominictarr>etc
12:47:44  <dominictarr>but it could be
12:47:51  <ralphtheninja>nods .. you need something to act upon the file tree .. instead of the DOM .. it's just a tree structure
12:47:53  <dominictarr>$('*.coffee').rm()
12:48:05  <dominictarr>ralphtheninja: exactly
12:48:34  <dominictarr>manipulating trees
12:48:47  <ralphtheninja>*.coffee.rm()
12:49:03  <dominictarr>yes, maybe
12:49:06  <ralphtheninja>so basically you just need globs?
12:49:15  <ralphtheninja>and apply functions
12:49:17  <dominictarr>well, what about rm -rf
12:49:26  <dominictarr>that is a recursive glob
12:49:33  <dominictarr>regular glob doesn't support that
12:49:54  <dominictarr>but maybe: ./**/*.coffee
12:50:52  <dominictarr>and there is lots of nodey things you might want to express with recursive globs --
12:50:59  <dominictarr>what if you could do this:
12:51:30  <dominictarr>./(node_modules/*)*/package.json
12:52:03  <dominictarr>and select the entire node_module tree from the current directory?
12:52:36  <ralphtheninja>aah you mean all node_modules recursively down the tree?
12:52:48  <dominictarr>up the tree in this case
12:52:55  <dominictarr>towards the leaves
12:53:04  <ralphtheninja>yeah I meant that
12:53:05  <dominictarr>leafwards
12:53:29  <ralphtheninja>so what kind of api are you envisioning?
12:53:47  <dominictarr>I prefer to describe leafwards as up, and rootwards as down
12:54:09  <dominictarr>because it matches physically climbing a tree
12:54:30  <ralphtheninja>nods .. well I'm damaged I guess .. trees are often drawn with root at the top
12:54:33  <ralphtheninja>you're right
12:54:57  <dominictarr>sure, but when I was a kid, and i climbed a tree
12:54:58  <ralphtheninja>tree structures*
12:55:00  <dominictarr>it went the other way
12:55:31  <dominictarr>anyway - api wise
12:55:53  <dominictarr>I want a thing that can be implemented as valid js, and used within a js library
12:56:20  <dominictarr>because that will make dogfooding it easy
12:56:29  <ralphtheninja>nodnod
12:56:35  <dominictarr>so...
12:56:51  <dominictarr>$('./**/.js').wc()
12:56:52  <ralphtheninja>if it could work on top of any tree structure .. you could use it to replace jQuery if you wanted
12:57:10  <dominictarr>^ count all the js
12:57:53  <dominictarr>ralphtheninja: yes. but, i'm more inclined to copy jquery,
12:58:05  <dominictarr>because EVERYONE knows how to use jquery
12:58:18  <ralphtheninja>ok .. so you're moving the api to some query string .. that's fine :)
12:58:33  <ralphtheninja>dominictarr: nodnod people will understand it instantly
12:59:06  <dominictarr>yes, and since it's pure js, you could use tree visualizations and stuff like that too
12:59:16  <dominictarr>you could select all your mp3s,
13:00:16  <dominictarr>$('./**/*.mp3').rename(function (e) { return newName(e) })
13:00:22  <dominictarr>etc
13:00:23  <dominictarr>etc
13:00:32  <ralphtheninja>so basically you need to create a custom repl too, that just does a require for you on that lib
13:00:49  <ralphtheninja>if you want to do stuff in the shell I mean
13:01:04  <dominictarr>that is very simple with the node reply
13:01:09  <dominictarr>repl
13:01:18  <dominictarr>you just add $ to the context
13:01:26  <ralphtheninja>aaah!
13:02:17  <dominictarr>and.. what if, you had text streams, but they where JSON?
13:02:49  <dominictarr>so, you could read meta data about all your files, and then output it to json?
13:03:10  <dominictarr>and, what if you could register change listeners? like in the dom?
13:03:51  <dominictarr>and what if it could run on unix and windows?
13:03:58  <ralphtheninja>hehehe
13:04:25  <dominictarr>and what if you could generate visual representations with canvas or svg?
13:04:32  <dominictarr>instead of just text?
13:05:12  <ralphtheninja>change listeners on files would be really cool
13:05:20  <ralphtheninja>or set of files
13:06:07  <ralphtheninja>"when this .js file and this db changes, re-render this svg"
13:06:11  <dominictarr>yeah, you could just make watcher things, that updated ./static/ when you changed ./template/
13:06:15  <dominictarr>exactly
13:06:22  <dominictarr>you can't do that in bash
13:06:25  <dominictarr>maybe you could
13:06:35  <dominictarr>but it wouldn't be easier to do it in bash
13:10:59  <ralphtheninja>it would be a nightmare with a lot of swearing :)
13:11:47  <dominictarr>what I have learnt with bash, is just don't try to do anything more complex than If … then
13:11:52  <dominictarr>and for … done
13:15:23  * ins0mniajoined
13:18:00  <ralphtheninja>http://wikileaks.org/Transcript-Meeting-Assange-Schmidt#1074
13:18:11  <dominictarr>it would be easy enough to write a script that updated some files when you ran it...
13:18:19  <dominictarr>heh, I was about to link that to you!
13:18:28  <ralphtheninja>...
13:18:37  <ralphtheninja>that's scary dominic!
13:19:22  <dominictarr>but bash doesn't reflect the nature of the fs, that it is a tree that is dynamically changing
13:19:28  <dominictarr>jquery is way better at that
13:19:43  <ralphtheninja>agree
13:25:57  * stlsaintjoined
13:25:57  * stlsaintquit (Changing host)
13:25:57  * stlsaintjoined
13:28:30  <dominictarr>and I bet there are tons of people who can do jquery but can't use the terminal
13:29:06  <dominictarr>like, have you watched any windows user over their shoulder recently?
13:29:20  * kenperkinsjoined
13:29:33  <dominictarr>hunting around for their cave paintings...
13:29:34  <ralphtheninja>it was a while ago
13:29:37  <ralphtheninja>hahahaha
13:29:43  <dominictarr>so painful
13:30:42  <ralphtheninja>you could wrap this functionality with a good interface to improve searching for your cave paintings
13:30:56  <ralphtheninja>searching for files on windows was always a pain
13:32:11  <dominictarr>yeah, totally
13:33:02  <ralphtheninja>hmm, this is just a query of a database really
13:33:12  <dominictarr>except it's a tree
13:33:13  * defunctzombie_zzchanged nick to defunctzombie
13:33:15  <ralphtheninja>where the database happens to be the file system
13:33:25  <dominictarr>with a database that can emit evets
13:33:32  <ralphtheninja>nods
13:33:40  <dominictarr>but, can totally do this with level-*
13:33:49  <ralphtheninja>yes
13:34:07  <dominictarr>and hook it to things like scuttlebutt, the DOM and d3
13:34:12  <ins0mnia>y0
13:34:17  <ins0mnia>dominictarr: what kind of events?
13:34:23  <ralphtheninja>ins0mnia: yo
13:34:24  <dominictarr>in the fs?
13:34:28  <ins0mnia>ralphtheninja: y0 :)
13:34:29  <dominictarr>or in the database?
13:34:43  <ins0mnia>dominictarr: 15:33 <dominictarr> with a database that can emit evets
13:35:04  <dominictarr>oh, right - mostly that some value has been updated, or deleted, or created
13:35:33  <ins0mnia>right
13:35:41  <ins0mnia>like a k:v observable thing?
13:35:50  <dominictarr>yeah - like that
13:36:25  <dominictarr>basically, this is what we are building with level-*
13:36:48  <ins0mnia>was wondering if it's possible build something like change events on queries
13:37:05  <ins0mnia>sort of couch stream notifier thingie
13:37:10  <dominictarr>actually - that was my original imputus to start doing distributed stuff - I wanted a database that was more like the dom
13:37:20  <dominictarr>ins0mnia: it's done already
13:37:42  <ins0mnia>dominictarr: really?? got a link somewhere?
13:37:44  <dominictarr>https://github.com/dominictarr/level-live-stream/
13:38:00  <ins0mnia>oh
13:38:13  <dominictarr>which works with stuff like https://github.com/dominictarr/map-reduce
13:38:19  <ins0mnia>dominictarr: is that on the whole db?
13:38:24  <dominictarr>no
13:38:29  <dominictarr>it's just a plugin
13:38:36  * fallsemojoined
13:38:38  <ins0mnia>dominictarr: can this work on queries?
13:38:44  <dominictarr>start here https://github.com/rvagg/node-levelup/wiki/Modules
13:38:48  * tmcwjoined
13:38:50  <ins0mnia>dominictarr: or does it listen to just any change?
13:39:04  <dominictarr>you can listen on changes within a key range
13:39:09  <ins0mnia>I realize level is a k:v store
13:39:17  <ins0mnia>just wondering if it has the potential to be more than that..
13:39:23  <dominictarr>of course
13:39:24  <ralphtheninja>of course
13:39:27  <ins0mnia>like a couch or mongo replacement
13:39:36  <dominictarr>all that and more
13:39:42  <ralphtheninja>ins0mnia: you can build any kind of database on top of it
13:39:50  <dominictarr>we get to iterate on all the high level features in js
13:40:07  <ins0mnia>this is really really awesome...
13:40:09  <dominictarr>it's pretty simple to build high level features
13:40:12  <ralphtheninja>it's like a swiss army knife of databases :)
13:40:30  <dominictarr>like, with map-reduce … you can do aggregations, just like in couch
13:40:42  <ins0mnia>cool
13:40:51  <dominictarr>BUT you can tail it, and it can emit (soft) realtime events of the current aggregation
13:41:11  <ralphtheninja>dominictarr: do you have the cave paintings (slides) from nodejsdublin somewhere?
13:41:12  <ins0mnia>what do you mean by soft?
13:41:37  <ins0mnia>i.e. events don't emit immediately?
13:41:43  <dominictarr>ins0mnia: there isn't a hard constraint on the delay that the notifications occur in
13:41:54  <dominictarr>the only promise is "soon"
13:42:16  <ins0mnia>ah ok so it's a promise
13:42:38  <dominictarr>no no, not in the js api Promise
13:43:04  <ins0mnia>got it
13:43:18  <ins0mnia>this looks really promising dominic...
13:43:35  <dominictarr>another good one is this https://github.com/dominictarr/level-inverted-index
13:43:47  <dominictarr>with that, you can do full text searches
13:43:48  <ins0mnia>databases has always been a bottleneck in anything distributed
13:43:50  <ins0mnia>this solves this
13:44:21  <ins0mnia>oohh awesome you got that too!!
13:44:25  <dominictarr>but again… you can do a realtime search, and get notifications when ever someone publishes a doc that matches a certain word
13:44:40  * kenperkinsquit (Quit: Computer has gone to sleep.)
13:45:02  <dominictarr>ins0mnia: I can't say this "solves" it, it's just another tool.
13:46:10  <ins0mnia>dominictarr: yeah, which happens to play well with all the realtime stuff we're into..
13:46:13  <ins0mnia>npm install
13:46:17  <ins0mnia>next
13:46:24  <ralphtheninja>lol
13:46:40  <ins0mnia>:))
13:46:44  * kenperkinsjoined
13:46:46  <dominictarr>ins0mnia: absolutely
13:46:49  <ralphtheninja>NPM INSTALL! NEXT!!
13:49:23  <ins0mnia>I'm sooooo looking forward to catching up on all of the level* stuff
13:49:46  <ins0mnia>so I'll just get my ass back to work now
13:50:26  <ins0mnia>my customer "just" wants a "pay" button, this "just" is gonna cost me the weekend
13:50:51  * ins0mniaafk
13:58:44  * keslaquit (Quit: Computer has gone to sleep.)
14:05:03  <dominictarr>ralphtheninja: the other problem with bash/unix is $PATH
14:05:15  <dominictarr>node_modules is way way better than that
14:05:49  <dominictarr>but that is a bigger problem, because c expects that
14:05:50  <ralphtheninja>agree .. PATH can create weird stuff .. it's like a global almost
14:10:01  <dominictarr>yeah, but it's there because it's really easy to implement loading things from the path
14:10:13  <dominictarr>and when things are small, it's good enough
14:10:46  * spionquit (Ping timeout: 246 seconds)
14:18:33  <dominictarr>ralphtheninja: http://wikileaks.org/Transcript-Meeting-Assange-Schmidt#2240
14:18:52  <ralphtheninja>haha I was just reading that one
14:19:08  * keslajoined
14:19:23  <ralphtheninja>was a long transcript, I browsed most of it
14:21:37  <ralphtheninja>"And I say no, this is a tremendous opportunity, because it means that populations basically don't like wars and they have to be lied into it. And that means we can be truthed into peace."
14:24:01  * keslaquit (Ping timeout: 256 seconds)
14:24:23  * spionjoined
14:27:58  <ralphtheninja>dominictarr: we need a better messaging system than mail, it should be secure and decentralized
14:28:02  * AvianFlujoined
14:28:42  <dominictarr>yeah, the problem with email is that it's too coupled to ip addresses
14:28:45  <ralphtheninja>dominictarr: and you could have different systems that interface with it, e.g. twitter or irc
14:30:45  <dominictarr>might be difficult to mash those systems into something like that
14:31:01  <ralphtheninja>yeah
14:31:02  <dominictarr>well, without compromises
14:32:57  <dominictarr>and there are quite a few constrains about what sort of data replication is possible, and efficient
14:33:18  <ralphtheninja>my point is that I want to communicate with someone, call it chat, and I want to be able to go back to any conversation and it shouldn't matter WHERE this conversation is happening
14:33:59  <ralphtheninja>like now, I have mail, twitter, irc bla bla bla .. and one day I might be talking to you on irc and another day through mail
14:34:55  <dominictarr>yeah
14:34:57  <dominictarr>hmm
14:35:01  <ralphtheninja>and it's hard to keep track of the information "dominic sent me some link the other day, now where was that again? what day was it?"
14:35:23  <dominictarr>well, most of this stuff has api
14:35:42  <ralphtheninja>there are so many channels and some are centralized, some are p2p etc .. know what I mean?
14:36:14  <dominictarr>but it's either awkard to work with, or you have to move around these cave paintings
14:36:38  <ralphtheninja>aye, that's the trade off :)
14:36:55  <dominictarr>but… you could build common abstractions over them all
14:37:08  <ralphtheninja>"which cave did I paint that picture in?"
14:37:15  <dominictarr>!!! LOL!
14:37:19  <ralphtheninja>:D
14:37:33  <dominictarr>yeah, exactly like that
14:38:08  <ralphtheninja>we need ONE big cave .. with different tunnels leading into it :)
14:38:48  <ralphtheninja>one day you take the irc tunnel into the cave, another the twitter entrance
14:39:03  <ralphtheninja>hahahaha
14:39:24  <ralphtheninja>time to walk the dog .. bbl
14:45:49  * mikolalysenkojoined
14:46:46  <Domenic_>So what're people using for https in node these days. I vaguely remember stud being a thing?
14:59:16  * timoxleyjoined
15:02:36  * fallsemoquit (Quit: Leaving.)
15:03:25  * fallsemojoined
15:09:58  * evboguejoined
15:13:21  * Correnjoined
15:14:39  * Correnchanged nick to kenperkins__
15:15:07  * kenperkinsquit (Disconnected by services)
15:15:09  * kenperkins__changed nick to kenperkins
15:22:26  * stagasquit (Read error: Connection reset by peer)
15:26:53  * mikealjoined
15:43:52  * mikolalysenkoquit (Ping timeout: 246 seconds)
15:50:32  * thl0joined
15:52:35  * jez0990_joined
15:53:02  * zuquit (Ping timeout: 252 seconds)
15:53:36  * jez0990quit (Ping timeout: 252 seconds)
15:54:53  * zujoined
15:58:53  * jcrugzzjoined
16:05:47  * Benvie1joined
16:13:15  * mikolalysenkojoined
16:17:26  <thl0>jesusabdullah: nice :)
16:17:50  <thl0>substack: pkrumins: is there a way to tell testling to use a transform during the browserify step?
16:18:52  <thl0>i.e. I need brfs to run to make this work: https://github.com/thlorenz/scriptie-talkie/blob/master/test/bug-coercion-NaN-to-undefined.js#L9
16:19:17  * jcrugzzquit (Ping timeout: 248 seconds)
16:30:10  * jcrugzzjoined
16:37:45  * thl0quit (Read error: Connection reset by peer)
16:38:04  * thl0joined
16:46:46  <dominictarr>ralphtheninja: oh hear - ASTs are just a tree as well.
16:48:06  <dominictarr>might be interesting to have css like selections on code...
16:54:58  <ralphtheninja>dominictarr: aye, what would those operations look like? how would you 'color' the code?
16:55:10  * evboguequit
16:55:18  <dominictarr>not 100% sure yet
16:55:49  <dominictarr>but you could say, select assignments within a closure
16:56:02  <dominictarr>or select closures that have setTimeout etc inside them
16:56:20  <dominictarr>or closures that might throw...
16:56:37  * shamajoined
16:56:42  <ralphtheninja>perhaps you could build some kind of debugging system on top of it
16:56:50  <dominictarr>incidentally, AST is a lot of intersecting trees
16:57:17  <dominictarr>who knows what people would come up with if there was a flexible way to interact with things
16:57:38  <ralphtheninja>true
16:57:49  <dominictarr>ralphtheninja: some people have said that Unix is just an IDE for C.
16:58:17  <dominictarr>guess you could call this an IDE for js/node
16:58:18  <ralphtheninja>hehe
17:01:05  <ralphtheninja>dominictarr: you could build a profiling system, inject time measure around loops etc to measure performance
17:01:06  * mikealquit (Quit: Leaving.)
17:01:22  <dominictarr>absolutely
17:01:43  <dominictarr>that stuff is all available, you just have to parse the v8 output
17:01:44  <ralphtheninja>or build optimizers
17:02:10  <dominictarr>like something that converts Raynos' function last style into normal and back
17:03:00  <ralphtheninja>not familiar with his function last style
17:05:09  <ralphtheninja>dominictarr: could you dig up some of his cave paintings for me? :)
17:05:20  <ralphtheninja>haha love that analogy
17:05:37  <dominictarr>cave paintings = GUI
17:05:43  <dominictarr>Raynos is literate!
17:06:05  <ralphtheninja>aah true!
17:06:44  <dominictarr>https://gist.github.com/Raynos/5233800#file-index-js-L39-L47
17:07:27  <dominictarr>back in a bit
17:07:29  * dominictarrquit (Quit: dominictarr)
17:09:25  <ralphtheninja>thanks!
17:11:49  <Domenic_>substack: can we get browserify source map URLs to be relative to the commondir of everything in the bundle? It's annoying having to do https://github.com/thlorenz/mold-source-map every time.
17:28:21  * ins0mniaquit (Ping timeout: 245 seconds)
17:28:46  * stlsaintquit (Ping timeout: 245 seconds)
17:33:04  * spionquit (Ping timeout: 246 seconds)
17:34:56  * mikealjoined
17:41:50  <chrisdickinson>thl0: did you have a module that enabled es6 as a require.extension?
17:41:56  * Correnjoined
17:43:09  * kenperkinsquit (Disconnected by services)
17:43:14  * mikealquit (Quit: Leaving.)
17:43:14  * Correnchanged nick to kenperkins
17:43:18  * dominictarrjoined
17:47:13  * blobaumjoined
17:48:52  * jxsonjoined
17:49:57  * jxson_joined
17:49:57  * jxsonquit (Read error: Connection reset by peer)
17:57:56  <thl0>chrisdickinson: yes es6ify is a transform you wanna use
17:58:08  <chrisdickinson>thl0: for running in node?
17:58:11  <thl0>http://thlorenz.github.io/es6ify/
17:58:16  <thl0>nope its for browserify
17:58:35  <thl0>for runnning in node you'd do something similar except with require.extensions
17:58:49  <thl0>but be aware traceur source maps are very sketchy
17:59:42  <thl0>chrisdickinson: example of overriding required files vie extensions https://github.com/thlorenz/proxyquire/blob/master/lib/proxyquire.js#L100
17:59:54  <thl0>you'd just get the compile step in the middle
18:00:15  * mikealjoined
18:01:32  <chrisdickinson>ah, sweet
18:01:36  <chrisdickinson>asking for a friend
18:09:01  * yorickjoined
18:11:56  * jxson_changed nick to jxson
18:12:40  * timoxleyquit (Quit: Computer has gone to sleep.)
18:25:50  <Domenic_>thl0: can we make es6ify configurable what language features it supports
18:26:04  <Domenic_>like i don't want to allow `let` because what it transpiles to is crazy
18:26:07  <thl0>should be possible
18:26:30  <Domenic_>or generators
18:26:35  <thl0>just need to pass this in: https://github.com/thlorenz/es6ify/blob/master/compile.js#L14
18:26:37  <Domenic_>(as cool as they are)
18:26:50  <Domenic_>interesting
18:27:00  <Domenic_>did you see arv moved traceur proper onto GitHub
18:27:25  <thl0>yes, didn't have time yet to hook it up
18:27:36  <thl0>my fork works fine for now
18:28:55  <Domenic_>sure but how up to date is it :)
18:32:38  <thl0>Domenic_: I know ;) have been busy with scriptie-talkie
18:34:30  * timoxleyjoined
18:39:05  * timoxleyquit (Ping timeout: 252 seconds)
18:39:58  * timoxleyjoined
18:40:23  * jcrugzzquit (Ping timeout: 255 seconds)
18:44:53  * timoxleyquit (Quit: Textual IRC Client: www.textualapp.com)
18:46:14  * timoxleyjoined
18:46:33  <thl0>substack: pkrumins: ping
18:51:59  * dominictarrquit (Quit: dominictarr)
18:52:23  <pkrumins>thl0: hi, you can use the testling.preprocess field
18:53:14  * dominictarrjoined
19:03:54  * nk109joined
19:11:59  * tmcwquit (Read error: Connection reset by peer)
19:12:12  * tmcwjoined
19:13:15  <thl0>pkrumins: thanks - you read my mind, but its not exactly pre process
19:13:26  * nk109quit (Quit: laters...)
19:13:34  <thl0>it's more like a transform that needs to be passed to brwoserify
19:13:36  * nk109joined
19:13:54  <thl0>of can I just override the script it uses to bundle alltogether with preprocess?
19:14:00  <thl0>s/of/or
19:21:01  <pkrumins>o
19:22:42  <pkrumins>thl0: it's hard to tell
19:23:57  <pkrumins>i'm seeing that testling sets pre-process field itself with (browserify, [self.files, '-o', self.id + '.js']) to create the bundle if it's not set
19:24:18  <thl0>ok, that sounds hopefull
19:24:25  * jxson_joined
19:24:37  * jxsonquit (Read error: Connection reset by peer)
19:24:46  <thl0>basically I need to do something similar to https://github.com/thlorenz/scriptie-talkie/blob/master/test/browser/build.js
19:24:51  <thl0>to get the bundle
19:25:41  <pkrumins>i think i know
19:25:45  <thl0>but looks like changing preprocess to (browserify, [self.files, '-o', self.id + '.js', '--transform brfs' ]) or so should work
19:26:17  <pkrumins>you can try setting pre-process to "browserify -t brfs your_files.js -o bundle.js"
19:26:27  <pkrumins>preprocess is a string field
19:27:07  <pkrumins>thl0: i don't know how to get ithe self.id in the pre-process field though
19:27:40  <thl0>ah, so more loke 'browserify test/*.js --transform brfs -o self.id.js' ?
19:27:55  <pkrumins>i remembered something
19:28:05  <pkrumins>you've to do "./node_modules/.bin/browserify ..."
19:28:26  <pkrumins>so "./node_modules/.bin/browserify test/*.js --transform brfs -o ???"
19:28:54  * jxson_quit (Remote host closed the connection)
19:29:19  <thl0>ok that looks good, what about the ??? (i.e. where do I put the bundle)?
19:29:27  <pkrumins>good question
19:29:52  <jesusabdullah>I usually do ./public/bundle.js or similar
19:29:59  <thl0>looks like it should be whaterver '-o', self.id + '.js' is
19:29:59  <jesusabdullah>where ./public gets served by the nodjs
19:30:30  <thl0>jesusabdullah: I don't even have a public folder or does testling create that?
19:30:48  <pkrumins>no there is no public folder
19:31:03  <pkrumins>you've to get the self.id in the output filename somehow
19:31:10  <pkrumins>but i don't know how to do that via the preprocess field
19:31:33  <thl0>hm, jesusabdullah I just basically want to bundle all the js files here which are tape tests and run them: https://github.com/thlorenz/scriptie-talkie/tree/master/test
19:31:55  <thl0>but I need to bundle with brfs transform
19:32:34  <pkrumins>we've to wait for substack to find out how to do it
19:32:51  <thl0>cool no rush
19:33:15  <thl0>currently am running them locally, but wanted to get that badge up -- also good for you guys ;)
19:34:42  * jcrugzzjoined
19:35:14  <mikeal>ok
19:35:15  <jesusabdullah>hmmmm
19:35:16  <mikeal>thoughts: https://github.com/mikeal/hostproxy
19:35:16  <jesusabdullah>I see
19:35:38  <mikeal>substack: https://github.com/mikeal/hostproxy
19:36:02  <jesusabdullah>mikeal: no redirection? Or is that easy to implement on top?
19:36:12  * jcrugzzquit (Client Quit)
19:36:14  <mikeal>redirection?
19:36:24  * jcrugzzjoined
19:36:38  <jesusabdullah>mikeal: I mean, most proxies pipe to some other arbitrary application server or something, yeah? Like a balancer?
19:36:40  <mikeal>not automatically, if you want to proxy to somewhere you return a socket connected to that host
19:36:49  <jesusabdullah>I see
19:36:56  <mikeal>you would hook that up yourself
19:37:07  <mikeal>this provides the least number of features possible to do proxying
19:37:21  <mikeal>and doesn't assume you even want to use the standard ones, like adding x-forwarded-for
19:37:30  <pkrumins>mikeal: it looks similar to bouncy
19:37:32  <jesusabdullah>sure, sure
19:37:34  <mikeal>but it should be stupid fast
19:37:43  <mikeal>pkrumins: it's very similar, except I don't parse HTTP
19:37:43  * jesusabdullahstill uses node-http-proxy
19:38:01  <mikeal>lunch time
19:38:02  <jesusabdullah>way too much api surface area, but it works I guess
19:38:03  * mikealquit (Quit: Leaving.)
20:17:27  * defunctzombiechanged nick to defunctzombie_zz
20:23:26  * defunctzombie_zzchanged nick to defunctzombie
20:24:09  * jxsonjoined
20:25:17  * jxsonquit (Remote host closed the connection)
20:26:03  * jxsonjoined
20:26:30  * jxsonquit (Remote host closed the connection)
20:27:00  * jxsonjoined
20:35:28  * mikealjoined
20:43:42  <substack>mikeal: since 3.0 bouncy doesn't insert any x- headers by default
20:46:59  <substack>thl0: to use testling.preprocess you'll also want to set testling.html
20:48:30  <mikeal>mikeal: yeah, i don't want to be parsing http tho, that's what slows everything down
20:48:31  <substack>mikeal: but hostproxy looks handy
20:48:43  <mikeal>it should be on par with haproxy in socket mode
20:48:51  <mikeal>and i haven't actually optimized it yet
20:48:55  <mikeal>lots of return early functions
20:49:04  <mikeal>and some unnecessary copies as well
20:49:24  <thl0>substack: is there an example anywhere?
20:49:48  <substack>thl0: https://github.com/substack/testling-html-example
20:50:04  <substack>but there isn't a preprocess example anywhere
20:50:10  <thl0>thanks
20:50:29  <thl0>so preprocess is basically any bash script ?
20:50:45  <thl0>i.e. browserify ... -o bundle.js
20:50:59  <thl0>and then use that bundle in whatever you point html too ?
20:51:41  <substack>yes
20:52:02  <thl0>cool thanks, I'll give that a try tonight
20:52:16  <substack>preprocess is a script that gets run in a chroot jail
20:52:18  <thl0>to be sure it is called 'preprocess' or pre-process'?
20:52:30  <substack>preprocess
20:52:34  <thl0>thanks
20:54:28  * mikolalysenkoquit (Ping timeout: 260 seconds)
21:01:41  * stagasjoined
21:02:25  <dominictarr>ralphtheninja: check this out http://www.infoq.com/presentations/neo4j-graph-theory?utm_source=feedly (kinda corny, but some interesting stuff too)
21:07:48  * mikolalysenkojoined
21:10:33  <Domenic_>substack: thoughts on commondir for browserify source maps?
21:11:37  * mikealquit (Quit: Leaving.)
21:13:02  <thl0>Domenic_: substack: it should be fairly simple to do - should just be a call to https://github.com/substack/node-commondir with all resolved files
21:14:47  * timoxleyquit (Quit: Computer has gone to sleep.)
21:17:06  <substack>Domenic_: I'm not sure what the issue is?
21:17:21  * mikealjoined
21:17:23  <substack>the source map stuff is all thl0's work
21:17:23  <Domenic_>it's the source map files having really long paths in web inspector
21:17:38  <substack>oh ok
21:18:01  <thl0>substack: basically Domenic_ wants to improve the default
21:18:02  <dominictarr>just use path.relative(process.cwd(), module)
21:18:12  <Domenic_>just use commondir + https://github.com/thlorenz/mold-source-map#mold-source-map-
21:18:15  <thl0>instead of having absolute paths, use relative to common
21:18:54  <thl0>Domenic_: almost - would have to expose a mapAllFiles thing since it wouldn't be part of a transform
21:19:20  <Domenic_>mapAllFiles thing?
21:19:27  <thl0>right now I'm only exposing it per file: https://github.com/thlorenz/mold-source-map/blob/master/index.js#L83
21:20:09  <Domenic_>i was literally thinking the last step in browserify/index.js would be .pipe(mold.transformSourcesRelativeTo(commondir(allFiles)))
21:20:25  <thl0>actually that would be fine though since we could call that with entries.map(mapPathRelativeTo)
21:20:39  <thl0>that would be performing badly
21:20:53  <thl0>since it'd have to decode the source map and re-encode it
21:21:13  <mikeal>question
21:21:14  <thl0>what mold does right now, but if it is part of browserify we could optimize that step
21:21:47  <Domenic_>well maybe i should dive into it, if substack says he'd be ok with merging that feature
21:21:48  <thl0>and we should since then you can't opt out of it
21:21:55  <mikeal>is there an http client that works in the browser with browserify and works in node but when packaged for the browser doesn't include the whole shim for http.js?
21:22:30  <substack>the http-browserify shim?
21:22:32  <Domenic_>mikeal: the http shim is like 60 lines
21:22:38  <substack>yes it's pretty small
21:22:47  <Domenic_>ah no it has request and response, i lied
21:22:49  <mbalho>mikeal: browser-request
21:22:51  <mikeal>really
21:23:07  <mikeal>how big is the http shim then?
21:23:07  <Domenic_>15 of which are es5-shims lol -_-
21:23:13  <mikeal>haha
21:23:23  <mikeal>browserify should just start with an es5 shim
21:23:27  <Domenic_>mikeal: looks to be a total of ~300 lines
21:23:30  <mikeal>to avoid the duplication later
21:23:30  <substack>why does the http shim matter?
21:23:41  <substack>mikeal: that massively inflates the bundle size
21:23:55  <mikeal>how big is es5 shim?
21:24:03  <Domenic_>yeah that's the problem with testling-ci badges, they encourage you to sprinkle bits of es5-shim all over your code :P
21:24:03  <mikeal>i remember it being fairly small
21:24:34  <Domenic_>8 kb minified for just the shim
21:24:37  <mikeal>honestly, i write code assuming es5 all the time so i need that shim anywya
21:24:38  <Domenic_>(the es5 shim that is)
21:24:53  <mikeal>damn, that's bigger than i thought
21:25:10  <thl0>mikeal: you could load it in the head conditionally as well
21:25:12  <substack>mikeal: why do you want an http lib without the http-browserify shim?
21:25:14  <Domenic_>a lot of it's Date stuff I think
21:25:22  <thl0>something like < if IE --->
21:25:30  <mikeal>substack: i thought the shim was bigger
21:25:36  <thl0>or <if your browser sucks .. >
21:25:56  <substack>mikeal: also hyperquest works in browsers
21:26:13  <substack>and is tiny
21:26:16  <mikeal>that's an option
21:26:21  <mikeal>request is big
21:26:31  <mikeal>i don't know if i want to browserify all of request
21:27:08  <mikeal>does browserifying request work again?
21:27:59  <substack>Error: module "dns" not found from "/tmp/br/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js"
21:28:23  <substack>sntp?
21:29:12  * jibayquit (Read error: Connection reset by peer)
21:29:18  <mikeal>there's not dns module shim?
21:29:38  <substack>nope
21:30:53  <mikeal>it's there a web service that can give us back the dns results that supports CORS? that would be badass
21:31:30  <mbalho>why
21:32:02  <mikeal>what is that http client that TJ wrote called?
21:32:10  <mbalho>superagent
21:33:46  <mikeal>that's it
21:33:49  * no9joined
21:50:41  * ins0mniajoined
21:59:22  <thl0>Domenic_: btw in order to propagate source root you'd have to pass it to combine.create: https://github.com/thlorenz/combine-source-map/blob/master/index.js#L86
21:59:42  <thl0>the file in that case is the name of the generated file (pretty much meaningless as much as I understand)
21:59:52  <thl0>could be bundle
22:00:41  <thl0>right now we call it with no args at all https://github.com/substack/browser-pack/blob/master/index.js#L42
22:06:03  <dominictarr>mikeal: could you describe you experience trying to get started with level-*? what was confusing?
22:10:48  <mikeal>i looked at a giant list of modules
22:10:50  <mikeal>and then i gave up
22:10:54  <mikeal>:)
22:10:59  <mikeal>but i'll probably come back to it
22:11:05  <mikeal>look at pouchdb
22:11:15  <mikeal>i can require('pouchdb') and start storing data
22:11:27  <mikeal>i don't need to know that there are like 7 modules for different backends
22:11:34  <mikeal>and another for doing replication
22:12:07  <mikeal>you need a clever name for a database and nice api that surfaces all of this disconnected technology
22:12:25  <mikeal>require('catdb')
22:12:43  <dominictarr>what about "tacodb" ?
22:14:16  <mbalho>+1
22:14:21  <mbalho>to both options
22:14:41  <mbalho>i have had great success on the internet with both topics
22:16:05  <substack>http://substack.net/images/tacodb.png
22:16:39  <dominictarr>REAL TIME CATS
22:20:06  * thl0quit (Remote host closed the connection)
22:36:24  <no9>substack SAVAGE SAUCE ty
22:36:46  * stlsaintjoined
22:38:57  * ralphtheninjaquit (Quit: leaving)
22:42:10  <mikeal>substack: does browserify handle something like module.exports = function () { return require('../app').do() } so long as the module was previously required
22:45:19  <substack>that works
22:45:29  <substack>the module doesn't need to be previously required
22:45:35  <substack>it will be included in the bundle no matter what
22:45:45  <CoverSlide>it traverses the ast and picks out require statements
22:47:11  * blobaumquit (Quit: Leaving)
22:49:10  <substack>I just started a #browserify channel
22:51:06  <mikolalysenko>substack: cool, checking it out
22:52:39  * yorickquit (Read error: Connection reset by peer)
23:01:32  * nicholasfquit (Read error: Connection reset by peer)
23:01:43  * tmcwquit (Remote host closed the connection)
23:01:57  * nicholasfjoined
23:02:18  * tmcwjoined
23:06:29  * tmcwquit (Ping timeout: 256 seconds)
23:30:29  * thl0joined
23:35:01  * thl0quit (Ping timeout: 245 seconds)
23:45:41  * ralphtheninjajoined
23:47:29  <mikeal>man
23:47:37  <mikeal>globals are like a virus
23:47:46  <mikeal>once people use them in one place they just spread
23:47:56  <mikeal>because the only way to work with globals is to add more things to the globals
23:48:13  <mikeal>and eventually you've got a grunt build system to assemble your rediculous state
23:48:34  <mikeal>i forget how bad js is outside of node
23:50:50  <substack>and why people hate it
23:53:30  <mikeal>dominictarr: back to leveldb, which one of these libraries do i import and store data with?
23:53:37  <dominictarr>levelup
23:53:52  <mikeal>isnt that just a binding to leveldb directly?
23:54:04  <dominictarr>yes.
23:54:12  <dominictarr>but with a little sugar
23:54:21  <dominictarr>leveldown is the binding it self
23:54:33  <mikeal>ok, so you don't have a library yet with just disributable data structures
23:54:48  <dominictarr>what do you mean?
23:55:13  <mikeal>you were working on higher level stuff than this
23:55:27  <rowbit>/!\ ATTENTION: (default-local) mjiang@... successfully signed up for developer browserling plan ($20). Cash money! /!\
23:55:27  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
23:56:00  <dominictarr>so, levelup gives you a kv store with put, get, del, batch, createReadStream, (for ranges)
23:56:26  <dominictarr>then you can use level-sublevel to create subsections of the levelup
23:57:17  <dominictarr>then you can could start plugging the subsections together, with say, map-reduce
23:57:37  <dominictarr>or level-trigger, or just using pre/post hooks
23:57:50  <dominictarr>mikeal: what level of abstraction are you looking for?
23:58:21  <dominictarr>I'm used to playing with fairly basic building blocks from working with this stuff for months now
23:58:54  <mikeal>i needs storage and indexes
23:59:59  <mikeal>is the sort algorithm for leveldb documented somewhere?