00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:08:05  * jxsonquit (Ping timeout: 248 seconds)
00:31:28  * jcrugzzjoined
00:36:01  * No9quit (Quit: Gone to join the choir invisibule)
00:36:44  * crankjoined
00:42:10  * mikealquit (Quit: Leaving.)
00:43:45  * soldairquit (Ping timeout: 250 seconds)
00:50:43  * jcrugzzquit (Ping timeout: 260 seconds)
00:55:00  * jolissjoined
00:55:00  * jolissquit (Client Quit)
01:12:36  * mikealjoined
01:16:38  * mikealquit (Ping timeout: 240 seconds)
01:29:16  <thl0>Raynos: \o
01:29:34  <Raynos>thl0: DID YOU WIN THE INTERNET
01:29:45  <thl0>huh?
01:29:47  <Raynos>thl0: write a gchat bot that sends me a message every hour "DID YOU FINISH NSTART YET >:("
01:30:05  <thl0>working on it :)
01:30:17  <thl0>Raynos: here is the crud that configurate and promfig remove: https://github.com/thlorenz/testlingify/commit/0b02b7ab2ecf9b685c81459f8583537ca3c2e4cd
01:30:42  <thl0>Raynos: so gitify is now solid including user config
01:30:55  <thl0>I'll integrate that into nstart
01:31:19  * thl0changed nick to thlorenz
01:35:18  * jolissjoined
01:36:14  <Raynos>nice
01:36:30  <Raynos>serious though there is no excuse to not finish nstart this weekend on my part
01:47:43  <thlorenz>Raynos: good point, well I'll try to get gitify in there by the time you wake up tomorrow (I have the east cost advantage)
01:48:41  <thlorenz>Raynos: btw I did have a kind of a bot going - didn't I spam your activity feed like crazy w/ all those test repos created essentially for tools to support nstart?
01:50:42  <Raynos>thlorenz: my company tag bot spams WAY harder then you
01:51:27  <thlorenz>Raynos: yep mine too at this point, I unsubscribed myself from half our projects -- couldn't see the forrest for the trees ;)
01:51:43  <Raynos>i cant get our bot to shut the hell up
01:51:52  <Raynos>i just want to ban it from my feed
01:52:17  <thlorenz>well you could just unfollow me, but that wouldn't be very nice now would it?
01:52:53  <thlorenz>oh you said our / i read your (y)
01:53:49  <thlorenz>yeah mbalho 's girlfriend's company needs to allow us to ignore organizations from our feed until we select that organization ;)
01:56:08  <thlorenz>Raynos: are these tests supposed to run already?
01:56:17  <thlorenz>I get Error: Cannot find module '../index'
02:07:29  * joliss_joined
02:08:39  <Raynos>thlorenz: oh
02:08:52  <Raynos>thlorenz: https://github.com/Raynos/nstart/blob/master/test/index.js#L6
02:08:54  <Raynos>tests are trolls
02:09:29  <thlorenz>ah, ok
02:09:35  * jolissquit (Ping timeout: 260 seconds)
02:09:42  <thlorenz>Raynos: about to commit some preliminary gitify integration
02:09:57  * mikealjoined
02:10:06  * mikealquit (Client Quit)
02:10:08  <thlorenz>we need to come up with a way though to centralize config as much as possible (which is why you can pass config into gitify)
02:10:32  * jolissjoined
02:11:34  <thlorenz>Raynos: https://github.com/Raynos/nstart/blob/gitify/create.js#L106
02:11:53  * joliss_quit (Ping timeout: 245 seconds)
02:12:59  <thlorenz>Raynos: or nstart has no config besides the templates since the tools already configure themselves -- let me know what you think
02:13:30  * joliss_joined
02:15:07  * jolissquit (Ping timeout: 256 seconds)
02:15:08  * joliss_changed nick to joliss
02:16:02  <thlorenz>Raynos: but if we do configure stuff with nstart we can do it simply with configurate and promfig
02:16:37  * wolfeidauquit (Remote host closed the connection)
02:17:01  <Raynos>thlorenz: Not sure tbh
02:17:26  <thlorenz>Raynos: we'll see - maybe you play with it and let me know tomorrow if I can help
02:17:41  <Raynos>ok
02:33:45  * mikolalysenkoquit (Ping timeout: 264 seconds)
02:38:30  <rvagg>streams2 question -- how best to deal with an end() on a writable? doesn't look like there's a _write(null) called, should I just do a this.on('finish', ...) ?
02:40:34  * mikealjoined
02:44:54  * mikealquit (Ping timeout: 240 seconds)
02:46:47  * dominictarrquit (Quit: dominictarr)
02:47:39  * jxsonjoined
02:48:27  * dominictarrjoined
03:11:40  * jxsonquit (Remote host closed the connection)
03:18:52  * dominictarrquit (Quit: dominictarr)
03:22:27  * dominictarrjoined
03:29:45  * mikolalysenkojoined
03:33:25  <dominictarr>rvagg: I think it's called _flush
03:33:55  * mikolalysenkoquit (Ping timeout: 240 seconds)
03:34:12  <rvagg>dominictarr: transform streams have that http://nodejs.org/docs/latest/api/stream.html#stream_transform_flush_callback
03:34:23  <dominictarr>oh..hmm
03:41:10  * mikealjoined
03:45:34  * mikealquit (Ping timeout: 246 seconds)
03:47:46  * thlorenzquit (Remote host closed the connection)
03:56:52  * defunctzombie_zzchanged nick to defunctzombie
03:57:49  * thlorenzjoined
03:57:55  * thlorenzquit (Remote host closed the connection)
04:03:30  * joliss_joined
04:04:14  * jolissquit (Ping timeout: 240 seconds)
04:04:14  * joliss_changed nick to joliss
04:05:53  * chiguaijoined
04:08:16  * jolissquit (Ping timeout: 240 seconds)
04:09:06  * jolissjoined
04:11:55  * mikealjoined
04:16:03  * mikealquit (Ping timeout: 245 seconds)
04:22:08  * jxsonjoined
04:26:47  * jxsonquit (Ping timeout: 260 seconds)
04:27:53  * ralphtheninjaquit (Ping timeout: 256 seconds)
04:36:52  * timoxleyjoined
04:37:10  * wolfeidaujoined
04:39:04  <timoxley>say I have n streams, how would best pipe them into another stream such that their complete data appears in the order they were piped
04:40:30  <timoxley>i.e. I'm concatenating files. what is the best way to pipe fs.createReadStream(a) fs.createReadStream(b) into c in sequence
04:41:59  * wolfeidauquit (Remote host closed the connection)
04:42:32  * mikealjoined
04:42:48  * calvinfoquit (Quit: Leaving.)
04:46:49  * mikealquit (Ping timeout: 246 seconds)
04:55:24  * wolfeidaujoined
05:03:08  * mikolalysenkojoined
05:19:30  * defunctzombiechanged nick to defunctzombie_zz
05:21:57  * defunctzombie_zzchanged nick to defunctzombie
05:27:32  * jolissquit (Quit: joliss)
05:29:30  <rvagg>timoxley: I'd probably react to 'end' on each source stream to pipe the next one, just make sure you pipe all but the last stream with { end: false } though
05:29:42  <rvagg>a module for it sounds like a neat idea tho
05:30:32  <timoxley>rvagg: it seems like something that should be trivial if you're not a streams dummy
05:30:53  <rvagg>it's the auto-end that pipe does that's the tricky bit
05:31:12  * mikolalysenkoquit (Ping timeout: 256 seconds)
05:31:34  <rvagg>var dst = fs.createWriteStream(); fs.createReadStream('foo').on('end', function () { fs.createReadStream('bar').pipe(dst) }).pipe(dst, { end: false})
05:31:36  <rvagg>that's crazy
05:31:52  <rvagg>must be an easier way
05:31:57  <timoxley>agree
05:51:28  <timoxley>rvagg let's call in the big guns. cc dominictarr
05:52:43  <dominictarr>timoxley: there is a module for that
05:52:52  <timoxley>aha of course
05:53:00  <dominictarr>I think there is one called kat, and one called stream-stream ?
05:53:12  <dominictarr>my fent, and floby, respectively, if I recall.
05:53:31  <dominictarr>it's much easier with streams2, also, I tihnk
05:54:16  <dominictarr>a.pipe(c, {end: false}); a.on('end', function () { b.pipe© }) //guessing?
05:54:52  <dominictarr>oh, that is what rvagg said!
05:58:42  <timoxley>dominictarr: thanks, stream-stream is pretty much exactly what I'd envisioned
06:00:29  <timoxley>somebody needs to do something magic with travis-ci to have it parse/run readme examples, with some kind of optional setup code that isn't necessarily listed in the readme.
06:01:01  <substack>that sounds fragile
06:01:16  * mikealjoined
06:01:34  * mikealquit (Client Quit)
06:02:04  <timoxley>substack: sure but examples that don't work are just broken. fragile > broken perhaps?
06:02:08  <jesusabdullah>nah, just write something that parses examples out into code, and then pipe that to whatever the fuck
06:02:28  <timoxley>even better
06:02:42  <jesusabdullah>each code block is a "test"
06:03:08  <timoxley>only problem is that having assert code in the readme sucks
06:04:20  <timoxley>not sure how to get around that without some kind of magic parsing of // => comments into assert statements but then we're starting to think like a ruby developer
06:04:57  * mikealjoined
06:05:19  * mikealquit (Client Quit)
06:06:03  * mikealjoined
06:11:53  * defunctzombiechanged nick to defunctzombie_zz
06:13:50  * defunctzombie_zzchanged nick to defunctzombie
06:17:40  <dominictarr>chrisdickinson: ping?
06:33:50  * chiguaiquit (Ping timeout: 240 seconds)
06:37:06  * mikealquit (Quit: Leaving.)
06:40:16  * chiguaijoined
06:42:22  * calvinfojoined
06:46:19  * chiguaiquit (Quit: chiguai)
06:54:08  * defunctzombiechanged nick to defunctzombie_zz
06:56:21  * blobaumjoined
06:58:52  * wolfeidauquit (Remote host closed the connection)
07:00:04  <chrisdickinson>dominictarr: pong
07:00:59  <dominictarr>chrisdickinson: oh, hey. I'm gonna go get food - brb
07:01:06  <chrisdickinson>cool
07:09:03  * shamaquit (Remote host closed the connection)
07:11:20  * timoxleyquit (Remote host closed the connection)
07:18:50  * mikealjoined
07:28:00  * jibayjoined
07:50:59  <dominictarr>chrisdickinson: hey
07:51:02  <dominictarr>back,
07:51:23  <dominictarr>so… I've had this weird idea recently...
07:51:52  <dominictarr>in git (and in other secure + distributed systems)
07:51:59  <dominictarr>you have a tree of hashes
07:52:15  <dominictarr>where each object is identified by it's hash
07:52:40  <dominictarr>and objects contain pointers to other objects, simply by including their hashes in their bodies
07:53:31  <dominictarr>…we are calling these CYPHERLINKS….
07:53:57  <dominictarr>(because it sounds cool)
07:54:16  <dominictarr>- anyway, so git is based on cypherlinks,
07:54:28  <dominictarr>but so is bit torrent
07:54:35  <dominictarr>and bitcoin
07:55:02  <dominictarr>and even couchdb uses a cypherlink to version documents
07:55:49  <dominictarr>now, previously… I'd been working on… and other people have been working on… ways to build git like databases for arbitary data
07:56:05  <dominictarr>i.e. build on top of the git idea..
07:56:23  <dominictarr>but then this week, my thinking has reversed!
07:56:39  <dominictarr>instead of building on top of the git idea - build under it.
07:56:57  <dominictarr>build a foundation for creating arbitary git-like systems
07:57:49  <jesusabdullah>dominictarr: people have done that with bitcoin, storing arbitrary data in the hash chain I mean
07:58:03  <dominictarr>jesusabdullah: exactly
07:58:03  <jesusabdullah>dominictarr: but giving it a "git-like" api could be cool
07:58:22  <jesusabdullah>ugh I hate being poor
07:59:01  * vitorpachecoquit (Ping timeout: 248 seconds)
07:59:02  <dominictarr>so, the new idea isn't to build git for X
07:59:59  <dominictarr>but to build a system cypherlinked databases
08:00:08  <dominictarr>that could be used to create git
08:00:16  <dominictarr>but also all sorts of other things
08:00:48  <dominictarr>chrisdickinson: jesusabdullah the interesting part here is that with cypherlinks -
08:00:57  <dominictarr>you can never create a cycle
08:01:02  <dominictarr>it's not a graph database
08:01:07  <dominictarr>it's a tree database
08:02:45  <dominictarr>and also, if you know a hash - you can validate the document that hashes to it… and every document it cypherlinks to, recursively
08:02:47  * yorickjoined
08:04:01  * defunctzombie_zzchanged nick to defunctzombie
08:08:37  * calvinfoquit (Quit: Leaving.)
08:08:49  * wolfeidaujoined
08:11:02  <jesusabdullah>huh
08:12:35  <dominictarr>one thing this gets you, like in git,
08:12:42  <dominictarr>it really easy replication
08:12:55  <dominictarr>if you blog was build with cyphertrees,
08:13:20  <dominictarr>then a reader could check it out like git, and make comments, and share it with your friends
08:13:32  <dominictarr>~ via sneakernet ~
08:13:47  <dominictarr>and the friends could comment on it...
08:13:48  * defunctzombiechanged nick to defunctzombie_zz
08:13:58  <dominictarr>and then share it back - like a pull request -
08:14:30  <dominictarr>thing is, a pull request is just adding some branches to the cyphertree
08:15:10  <dominictarr>but the git repo is the SET of all the commits, trees, blobs...
08:15:29  <dominictarr>(trees=snapshot of directory, blob=snapshot of a file)
08:16:18  <dominictarr>but the important thing here isn't the particular way that git does it
08:16:35  <dominictarr>but rather the links and set of immutable objects
08:55:48  * timoxleyjoined
09:25:33  <st_luke>dominictarr: git just calls them refs
09:25:50  <dominictarr>st_luke: boring!
09:26:04  <st_luke>I kinda like it cause its short & sweet
09:26:15  <st_luke>but git also uses toilet metaphors
09:26:30  <st_luke>porcelain & plumbing
09:26:43  <dominictarr>also… there are many things called "refs"
09:27:01  <dominictarr>but: call it any thing
09:27:21  <st_luke>is cypher accurate though?
09:27:47  <st_luke>you could just call them toilets
09:27:50  <dominictarr>more accurate than "hyperlink"
09:28:41  * whit537quit (Read error: Connection reset by peer)
09:30:29  <dominictarr>st_luke: related: http://en.wikipedia.org/wiki/Cypherpunk
09:31:30  <st_luke>i guess its accurate enough
09:31:31  <st_luke>http://i.imgur.com/7Na4XmH.gif
09:32:18  * whit537joined
09:35:21  <st_luke>http://imgur.com/IH3E25i
09:35:30  * dominictarrquit (Quit: dominictarr)
09:44:29  * ins0mniajoined
10:02:06  <rvagg>substack: you alive?
10:03:15  <st_luke>rvagg: im doing a talk on leveldb tomorrow from a users perspective but im not gonna watch the recently lauded talk you gave until after, so I dont steal any of your material
10:03:54  <rvagg>st_luke: I don't mind if you steal any of my material, it's cool and I'm not protective about it
10:04:10  <rvagg>I wonder which talk that is that was lauded
10:04:30  <st_luke>i think the engine yard one?
10:04:33  <substack>rvagg: yep
10:04:33  <st_luke>whichever one was put on youtube
10:04:33  <rvagg>if it's the one in dublin then I'm not sure that should be lauded, it was one of my first on leveldb and I was badly jetlagged
10:04:47  <rvagg>substack: https://github.com/rvagg/node-libssh/ wondering if you'd consider giving up 'ssh' in npm
10:04:54  <substack>absolutely
10:05:04  <rvagg>substack: it's pretty similar to what you were aiming for, uses libssh
10:05:15  <st_luke>oh rvagg did you get something together for that?
10:05:18  <st_luke>oh I'm kinda excited
10:05:33  <st_luke>like 6 months ago I was screwing around with that but didnt feel like doing native ssh stuff
10:05:51  <rvagg>it's been a pain in the backside but I have the basics working, enough to support what I want to do atm I think
10:05:56  <rvagg>see examples, they are functional
10:06:00  <rvagg>and kind of fun
10:06:01  <substack>rvagg: ok you're maintainer for ssh now
10:06:08  <substack>just bump the major
10:06:14  <rvagg>substack: will do, ta muchly
10:06:39  <st_luke>rvagg: oh that's nice dude
10:06:40  <st_luke>really good
10:06:46  <st_luke>I really like that
10:06:48  <substack>st_luke: oh goodness I should finish what I'm working on then
10:06:57  <substack>it directly addresses leveldb from the user perspective
10:07:04  <substack>I'll publish what I have right now, one sec
10:07:06  <st_luke>substack: interesting
10:07:10  <st_luke>I can include it in the talk on monday
10:07:27  <st_luke>to ze germans in hamburg
10:13:54  <substack>st_luke: with this module you can do stuff like this:
10:13:55  <substack>curl -sg 'http://localhost:4000/?sort=["repos"]&map=[["username","repos"]]&limit=10&order=desc'
10:13:59  <substack>and you get results like this:
10:14:06  <substack>["substack",428],
10:14:06  <substack>["maxogden",310],
10:14:07  <substack>...
10:14:09  <rvagg>published as 'ssh' in npm now, cheers substack
10:14:14  <substack>rvagg: woot!
10:14:50  <rvagg>substack: check out the examples, lots of fun: https://github.com/rvagg/node-libssh/tree/master/examples
10:15:13  <st_luke>substack: is it on github?
10:17:38  <substack>not yet
10:17:58  <substack>oh and you can do regex keys
10:18:13  <substack>I sent dominictarr a patch for level-search to make those work
10:18:33  <substack>so you can have a ?filter=["location",/\boakland\b/i]
10:19:04  <st_luke>its cool to see everyone getting excited over making leveldb stuff
10:19:27  <substack>DIY database
10:19:28  <st_luke>"science is fun, science is play" - oliver sacks
10:20:06  <substack>and the regexes are safe
10:20:18  <substack>star-height <= 1
10:51:37  <rvagg>http://24.media.tumblr.com/55269a1d1c392223681dd171bf2b2bf2/tumblr_mpsi8dy1im1ry46hlo1_r1_500.gif
11:03:51  * st_lukequit (Remote host closed the connection)
11:13:49  * yorickquit (Ping timeout: 276 seconds)
11:39:41  * yorickjoined
11:51:06  * ralphtheninjajoined
11:58:27  * st_lukejoined
12:43:40  * st_lukequit (Remote host closed the connection)
12:49:50  * st_lukejoined
13:21:28  * vitorpachecojoined
13:22:04  * st_lukequit (Remote host closed the connection)
13:32:14  * jibayquit (Remote host closed the connection)
13:33:39  * thlorenzjoined
14:29:23  * st_lukejoined
14:46:17  * mikealquit (Quit: Leaving.)
14:54:17  <st_luke>juliangruber: that location thing is cool :)
14:54:17  * whit537_joined
14:57:26  * whit537quit (Ping timeout: 240 seconds)
14:57:26  * whit537_changed nick to whit537
15:04:13  * mikealjoined
15:04:47  * mikealquit (Client Quit)
15:22:17  * mikealjoined
15:24:11  * mikolalysenkojoined
15:28:15  * jibayjoined
15:32:33  * brianloveswordsquit (Excess Flood)
15:34:52  * brianloveswordsjoined
15:39:22  * dguttmanjoined
15:46:13  * st_lukequit (Remote host closed the connection)
15:50:31  * dguttmanquit (Quit: dguttman)
15:52:00  * dguttmanjoined
15:52:47  * vitorpachecoquit (Ping timeout: 260 seconds)
16:04:20  * dguttmanquit (Quit: dguttman)
16:10:14  * vitorpachecojoined
16:11:20  * ralphtheninjaquit (Quit: Reconnecting)
16:11:26  * ralphtheninjajoined
16:35:32  * thlorenzquit (Remote host closed the connection)
16:48:02  * intabulasjoined
16:56:23  * gwenbelljoined
16:56:24  * dguttmanjoined
16:56:41  * jcrugzzjoined
16:58:49  * shamajoined
17:04:18  * defunctzombie_zzchanged nick to defunctzombie
17:08:39  * dguttmanquit (Quit: dguttman)
17:43:32  * timoxleyquit (Remote host closed the connection)
17:45:23  * defunctzombiechanged nick to defunctzombie_zz
17:56:41  * calvinfojoined
17:56:58  * mikealquit (Quit: Leaving.)
17:58:53  * gwenbellquit (Read error: Connection reset by peer)
18:00:10  * AvianFlujoined
18:09:20  * thlorenzjoined
18:09:45  * mikolalysenkoquit (Ping timeout: 264 seconds)
18:15:08  * mikealjoined
18:37:16  * defunctzombie_zzchanged nick to defunctzombie
19:00:43  * defunctzombiechanged nick to defunctzombie_zz
19:06:42  * defunctzombie_zzchanged nick to defunctzombie
19:07:45  <jden>WE'RE GONNA NEED A BIGGER CHOPPER
19:07:46  <LOUDBOT>INDIVIDUALLY NO COLLECTIVELY YES
19:08:36  * mikealquit (Quit: Leaving.)
19:10:23  * AvianFluquit (Read error: Connection reset by peer)
19:12:16  * AvianFlujoined
19:16:59  <thlorenz>paul_irish: anything we can do about this? https://twitter.com/thlorenz/status/356129941609390081
19:22:14  * dominictarrjoined
19:27:45  * jcrugzzquit (Ping timeout: 264 seconds)
19:37:23  * xyxnechanged nick to nexxy
19:48:04  * intabulasquit (Ping timeout: 246 seconds)
19:48:13  * jolissjoined
20:04:04  * mikealjoined
20:08:14  * mikealquit (Ping timeout: 240 seconds)
20:15:28  * calvinfoquit (Quit: Leaving.)
20:15:52  * calvinfojoined
20:21:09  * whit537quit (Quit: whit537)
20:21:11  * defunctzombiechanged nick to defunctzombie_zz
20:31:42  * jolissquit (Quit: joliss)
20:36:42  * whit537joined
20:46:59  * defunctzombie_zzchanged nick to defunctzombie
20:48:26  <chrisdickinson>dominictarr: sorry i missed your idea last night -- i had just gone to bed
20:49:16  <chrisdickinson>(there's one more git type -- tags -- that can arbitrarily reference any other object type)
20:49:21  <chrisdickinson>(including tags themselves, i do believe)
20:50:04  <chrisdickinson>i think the hardest part will be coming up with a way of sharing refs/pointers to the "heads" of documents
20:50:49  <chrisdickinson>also, weirdly enough it basically acts like object graphs in dynamic languages, with the included problems of GC, etc
20:53:15  * jxsonjoined
21:02:22  * rannmannquit (Remote host closed the connection)
21:10:57  * jxsonquit (Remote host closed the connection)
21:36:03  * jibayquit (Quit: Leaving)
21:40:45  * dguttmanjoined
21:43:07  * thlorenzquit (Remote host closed the connection)
21:48:13  <dominictarr>chrisdickinson: exactly - especially the GC.
21:48:41  <dominictarr>yeah, so essentially, the tags heads are mutable
21:48:48  <dominictarr>tags/heads
21:48:58  <dominictarr>because they just point to the root of the tree
21:49:09  <dominictarr>but you can define that via a query or traversal
21:49:59  <dominictarr>you could create a signed object that's purpose is to point to the root object
21:50:15  <dominictarr>… it could point to the previous root also,
21:50:25  <dominictarr>then you have a chain of changes
21:50:47  <chrisdickinson>when you say "root", you mean the tip of each branch?
21:50:56  <dominictarr>yes
21:50:59  <chrisdickinson>cool
21:51:33  <chrisdickinson>the "signed object" bit is what tag objects represent in git
21:52:01  <dominictarr>hmm, you can reassign a tag, though, can't you?
21:52:10  <chrisdickinson>it creates a new object
21:52:19  <chrisdickinson>it can have the same message but the tag will have a different hash
21:52:24  <chrisdickinson>there are really two kinds of tags in git
21:52:28  <chrisdickinson>one that's like a ref
21:52:31  <chrisdickinson>and one that's an actual object
21:52:47  <chrisdickinson>when you do `git tag -m 'womp'` you're creating the latter
21:53:24  <dominictarr>hmm, and it's signed with your ssh key?
21:53:44  <chrisdickinson>ah, no -- sorry, not signed, but it's content addressable like anything else
21:53:55  <chrisdickinson>signing is a different concept but there is a representation in git for that
21:54:11  <dominictarr>ah, just checking
21:54:11  <chrisdickinson>`git commit -S`
21:54:19  <dominictarr>ah, interesting.
21:54:33  <chrisdickinson>also git tag -s
21:54:45  <dominictarr>so yeah, you could combine these root commits into a chain like in bit coin
21:54:52  <dominictarr>a shared chain
21:57:02  * dguttmanquit (Quit: dguttman)
22:03:28  * jxsonjoined
22:03:45  * dguttmanjoined
22:04:09  * whit537quit (Read error: Connection reset by peer)
22:12:33  * dguttmanquit (Quit: dguttman)
22:13:44  * rannmannjoined
22:17:43  * defunctzombiechanged nick to defunctzombie_zz
22:33:27  * defunctzombie_zzchanged nick to defunctzombie
22:43:15  <isaacs>dominictarr: i didn't realize you wrote curry
22:43:19  <isaacs>dominictarr: do you still use it?
22:44:28  * jxsonquit (Remote host closed the connection)
22:59:46  * whit537joined
23:04:27  <dominictarr>isaacs: no, I gave it to another guy last week
23:05:33  * ins0mniaquit (Ping timeout: 264 seconds)
23:06:00  <dominictarr>(with the instructions to bump the major version)
23:09:31  * No9joined
23:10:22  * jcrugzzjoined
23:12:27  <isaacs>dominictarr: i see
23:13:13  <dominictarr>isaacs: unfortunately, I wrote new modules ~2 orders of magnitude faster than people adopt the old ones :(
23:14:03  <isaacs>haha
23:14:14  <isaacs>it always bugged me that curry can only do the args in order
23:14:40  <isaacs>but i guess a `reorderArgs(fn, newOrder)` function would fix that
23:15:08  <isaacs>dominictarr: why the long list and eval stuff? just to avoid mucking wiht arguments?
23:16:13  <dominictarr>I havn't looked at the new version - after writing it I decided that it's easier to not to use stuff like that
23:16:19  <dominictarr>it adds alot of indirection
23:16:30  <dominictarr>and you can write those things in just a few lines
23:16:43  <dominictarr>easier to put them at the top of the file instead of importing them.
23:18:25  * jcrugzzquit (Ping timeout: 246 seconds)
23:19:51  * defunctzombiechanged nick to defunctzombie_zz
23:26:11  * shamaquit (Remote host closed the connection)
23:33:08  <isaacs>dominictarr: oh, i see, in your example, it was curry(fn,[left],[right])
23:33:33  <isaacs>dominictarr: but not like fn(1)(2)(3) === fn(1,2,3)
23:34:09  <dominictarr>yeah. the new one is more text book currying, though.
23:34:24  <isaacs>ight
23:34:32  <isaacs>i wrote _ify a long time ago
23:34:51  <isaacs>adn actually, it solves a common problem with curring cb functions, that you can't set the 2nd arg, for instance
23:35:31  * evboguejoined
23:35:50  <isaacs>writeDataToFile = _(fs.writeFile, _, data, _)
23:36:14  <isaacs>would be like: function writeDataToFile(file, cb) { fs.writeFile(file, cb) })
23:36:42  <dominictarr>isaacs: ah, I remember that one
23:36:44  <isaacs>er: function writeDataToFile(file, cb) { fs.writeFile(file, data, cb) })
23:37:15  <isaacs>so it's not relying on arity being accurate
23:37:36  <dominictarr>this stuff is mainly useful as an exercise, more than for reuse.
23:37:54  <isaacs>yeah
23:37:58  <isaacs>i dunno
23:38:05  <isaacs>currying is actually quite nice sometimes
23:38:44  <isaacs>the name of _ify is unfortuate, though
23:38:48  <dominictarr>If you have a case where you have a class of functions with consistent signatures
23:38:48  <isaacs>because Underscore
23:38:52  <isaacs>and lodash
23:39:03  <dominictarr>… like say, assertions
23:39:19  <dominictarr>that are always assertion(actual, expected, optional...)
23:39:37  <dominictarr>you can use currying in quite interesting ways
23:39:56  <dominictarr>but if you import it just to use once…
23:40:12  <dominictarr>then that adds a lot of in direction
23:40:16  <isaacs>yeah
23:40:20  <isaacs>its gotta pay its rent
23:41:34  * thlorenzjoined
23:43:08  * kumavisjoined
23:43:33  <isaacs>dominictarr: i think it'd be fun to write something significant with this already loaded.
23:43:43  <isaacs>dominictarr: i wonder how it'd change my approach, just knowing it's there.
23:54:54  * jxsonjoined
23:59:15  * evboguequit (Read error: Connection reset by peer)
23:59:33  * jxsonquit (Ping timeout: 264 seconds)
23:59:40  * dominictarrquit (Quit: dominictarr)