00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:04:26  * nk109joined
00:05:10  * dominictarrjoined
00:05:12  <dominictarr>http://arstechnica.com/gadgets/2012/12/portals-physics-engine-rebuilt-in-25kb-on-a-graphing-calculator/
00:05:26  * thatguydanjoined
00:06:43  <Raynos>dominictarr: stream.queue(null) === stream.end() is a horrible idea for user streams
00:07:00  <dominictarr>why?
00:07:20  <dominictarr>you want to send streams of null items?
00:08:34  <ik>works for /dev/null
00:08:42  <Raynos>dominictarr: https://gist.github.com/4237703
00:08:51  <Raynos>I do the "pass me null and I end the stream" thing too
00:09:00  <Raynos>i wasted an hour figuring out why that stream ends early
00:09:31  <Raynos>when your closer to the abstraction its obvouis your ending the stream
00:09:45  <Raynos>when your doing high level things its a pain in the ass to remember not to use the null token because its special
00:10:51  <Raynos>I'm going to revert the null === end thing in my code soon.
00:11:14  <dominictarr>well, it's pretty too late now, there is heaps of stuff that through like that now
00:11:59  <Raynos>just bump the major :D
00:12:33  <dominictarr>I thought you don't even use through, because it's not streams2
00:12:36  <dominictarr>L
00:12:37  <dominictarr>?
00:12:42  <Raynos>oh god.
00:12:48  <Raynos>I bumped the major version >_<
00:12:52  <Raynos>I have to update EVERYTHING
00:13:11  <Raynos>https://github.com/Raynos/read-stream/commit/8cfe7ae1c0a9d880e6b380f94f1ad328ce1430f6
00:14:16  <dominictarr>what do you want null for anyway?
00:14:37  <dominictarr>null is special in streams2 anyway
00:14:54  <dominictarr>if read returns null, that means there was nothing to read.
00:15:33  <dominictarr>so, it's impossible to have nulls in a streams2 stream.
00:15:44  * shykeschanged nick to zz_shykes
00:15:47  <Raynos>not unless you overwrite read
00:15:49  * zz_shykeschanged nick to shykes
00:15:59  <Raynos>put you have a point
00:16:04  <Raynos>which makes me wonder how it even works
00:16:13  <Raynos>Ah I see
00:16:21  <Raynos>null's get stripped when reading in streams2
00:16:30  <Raynos>but they don't terminate the stream
00:16:46  <Raynos>yeah null's are special :/
00:16:54  <Raynos>there is nothing I can do but accept that and don't use null's
00:17:11  <Raynos>or encode them!
00:18:06  <Raynos>no that's stupid too
00:22:01  <dominictarr>yeah, boxing nulls is silly
00:22:07  <dominictarr>use undefined
00:23:00  <dominictarr>remember we got isaacs to do a === null check, so streams support falsey values
00:23:42  <dominictarr>hmm, the good thing about null though is that it is JSONable
00:24:04  <dominictarr>maybe it would have been better to use undefined as the significant value. oh well.
00:25:21  * ircretaryquit (Remote host closed the connection)
00:25:28  * ircretaryjoined
00:25:48  <dominictarr>^ interestingly it does have a cache.
00:26:36  <isaacs>Use NaN
00:26:41  <isaacs>NaN is the perfect sigil
00:26:47  <isaacs>it's the only value that !== itself
00:26:58  <isaacs>and everyone has a reference to it
00:27:19  <substack>NaN is the "something is wrong with reality" value
00:27:21  <isaacs>alternatively, if you want the reference to be eyes-only, you can use a specific sigil object
00:27:36  <isaacs>substack: exactly, that's why it's a perfect sigil. it cannot occur in nature.
00:27:39  <substack>the value that virally infects all the values it touches
00:27:49  <substack>the floating point virus
00:28:06  <isaacs>"not only is this the end, if you try to not respect that, all your math are super pwnd"
00:28:11  <ik>that is also what null should be for boolean logic but now it is just another keyword
00:28:16  <ik>don't let the same thing happen to NaN
00:28:28  <isaacs>it is not greater than itself, but it is also not less than itself.
00:28:38  <ik>why would it be either of those things
00:28:41  <isaacs>NaN is amazing
00:28:43  <ik>4 is not greater than itself or less than itself
00:28:46  <ik>it is itself
00:28:49  <isaacs>ik: but NaN is also not itself!!
00:28:54  <isaacs>>> NaN === NaN
00:28:55  <purr>isaacs: (boolean) false
00:28:57  <ik>how could it be
00:29:04  <isaacs>>> NaN == NaN
00:29:05  <purr>isaacs: (boolean) false
00:29:12  <ik>it's not really a thing so much as a statement
00:29:17  <isaacs>exactly
00:29:23  <defunctzombie>using NaN when you don't mean to work with numbers is not very nice
00:29:24  <ik>like null should have been but now isn't
00:29:46  <ik>or like 17, but that's a lesser-known historical/mathematical fact
00:31:18  <defunctzombie>substack: that is the best quote ever
00:31:26  <Raynos>isaacs: the special signal should be `return require("isaacs")`
00:31:36  <dominictarr>isaacs is high priest at church of NaN
00:31:38  <isaacs>Raynos: hahahh
00:31:44  <isaacs>dominictarr: no i'm not
00:31:49  <dominictarr>EXACTLY
00:31:50  * isaacsis Not a Priest
00:32:02  <isaacs>:D
00:32:15  <isaacs>dominictarr: i like you. you always get my very worst jokes :)
00:34:45  <fotoverite>:D I love this room so much
00:34:53  <dominictarr>should try entering NaN into every number field, especially on your tax return
00:37:07  * yorickquit (Remote host closed the connection)
00:39:46  <CoverSlide|Work>IANAP
00:41:14  <isaacs>mm. a nap sounds nice
00:45:37  <ik>I Am Not A Nap
00:45:56  <ik>hey why does nobody else make a big deal of the fact that "IANAL" says "I Anal"
00:46:06  * ralphtheninjaquit (Ping timeout: 276 seconds)
00:47:14  * ralphtheninjajoined
00:53:24  * ralphtheninjaquit (Ping timeout: 250 seconds)
00:53:40  * ralphtheninjajoined
00:53:49  <Raynos>any recommended performance benchmarking libraries?
00:55:52  <isaacs>ik: it's kind of assumed
00:55:57  <isaacs>ik: get it? ASSumed
01:17:47  * jez0990___joined
01:18:35  * ralphtheninjaquit (Ping timeout: 260 seconds)
01:18:51  * jez0990quit (Ping timeout: 260 seconds)
01:22:37  * CoverSlide|Workquit (Quit: Lost terminal)
01:27:20  <ph0n3tic>What is considered the de-facto node promise lib? Q?
01:28:30  * shykeschanged nick to zz_shykes
01:29:54  * tilgoviquit (Remote host closed the connection)
01:31:21  * zz_shykeschanged nick to shykes
01:39:27  * shykeschanged nick to zz_shykes
01:39:38  * zz_shykeschanged nick to shykes
01:40:59  <substack>isaacs: why is http.globalAgent.maxSockets === 5
01:41:19  <substack>there are only 5 positive integers worse than that one
01:41:46  * shykespart ("Leaving...")
01:43:33  <substack>I bet code will just start working now
01:45:11  * fotoveritequit (Remote host closed the connection)
01:45:51  * fotoveritejoined
01:47:11  * tommybergeronjoined
01:51:04  * tomshredsquit (Ping timeout: 244 seconds)
02:16:20  <substack>big news: fixed a huge problem with testling-ci
02:16:25  <substack>runs crazy fast now
02:17:02  <pkrumins>confirmed
02:30:43  * tommybergeronquit (Quit: Linkinus - http://linkinus.com)
02:42:38  <defunctzombie>\o/
02:43:12  <ik> |
02:43:12  <defunctzombie>substack: don't be hating on positive integers
02:43:13  <ik> / \
02:43:17  <defunctzombie>bahaha
02:43:17  <ik>defunctzombie: ruiner
02:43:21  <defunctzombie>pwned
02:43:34  <ik>joke's on you, those were your legs
02:43:47  <mbalho>lol
02:49:37  <defunctzombie>haha
02:57:58  <mbalho>dominictarr: is there a module that does streams over plain xhr yet
02:58:17  <dominictarr>mbalho, substack has xhr-write-stream
02:58:24  <dominictarr>for sending data to the server
02:58:39  <mbalho>ahh i need the opposite
02:59:14  <dominictarr>I think you can just use xhr quite often.
02:59:26  <dominictarr>I think someone might have written sse-stream too
02:59:29  <dominictarr>Raynos, ?
02:59:35  <mbalho>oh yea chrisdickinson did
02:59:35  <dominictarr>or chrisdickinson ?
02:59:45  <mbalho>is there an sse node module?
03:00:10  <dominictarr>https://npmjs.org/package/sse
03:00:40  <mbalho>lol thanks
03:00:54  * mbalhois whippin up some mad science
03:01:09  <dominictarr>oh, https://npmjs.org/package/sse-stream
03:01:13  <dominictarr>has the server side too
03:01:19  <dominictarr>and is way more streamy
03:02:43  <mbalho>kewl ill use that
03:03:49  <substack>http://ci.testling.com/substack/hash-join
03:03:49  <substack>pow
03:03:59  <substack>pretty much everything is awesome now
03:09:52  * shuaibquit (Quit: Computer has gone to sleep.)
03:26:43  <mbalho>dominictarr: is there a module that replicates between levelups using scuttlebutt?
03:26:51  <dominictarr>yes
03:26:55  <dominictarr>level-scuttlebutt
03:27:00  <dominictarr>it's a bit crude though
03:27:12  <mbalho>ahha
03:27:20  <mbalho>oh right, the cryptic readme
03:27:24  <dominictarr>I've got it working, but havn't written demos yet
03:27:47  <mbalho>is there an in memory levelup?
03:27:58  <dominictarr>yeah, Raynos has somethnig
03:28:02  <mbalho>what im trying to do is sync a folder full of files between browser and node
03:28:18  <mbalho>in the browser i just wanna have the files be in levelup
03:28:23  <dominictarr>cool
03:28:56  <mbalho>ahha https://github.com/Raynos/level-cache
03:29:03  <dominictarr>when you replicate it assumes that you are using scuttlebutt documents.
03:30:01  <mbalho>dominictarr: 'document' meaning Model.set
03:30:03  <mbalho>?
03:30:04  <dominictarr>you'd need to keep header metadata or something to do that properly
03:30:31  <dominictarr>if you do it like that you can't use streaming
03:30:47  <dominictarr>I meant Model ~= Document
03:31:18  <mbalho>i dont see the word document in https://github.com/dominictarr/scuttlebutt
03:31:41  <dominictarr>sure, but it more or less corrisponds to a document in a document db
03:32:28  <mbalho>maybe ill roll my own logic using events
03:32:46  <dominictarr>oh, also check this out: (one sec)
03:37:17  <dominictarr>mbalho, https://github.com/dominictarr/r-edit
03:37:28  <dominictarr>scuttlebutt for collaborative editing
03:38:23  <mbalho>kewl
03:38:35  <mbalho>roll your own OT?
03:38:38  <dominictarr>no
03:38:52  <dominictarr>it uses a commutative data structure instead
03:39:06  <dominictarr>no operations get transformed!
03:39:39  <mbalho>ah
03:47:57  * tphummelquit (Quit: tphummel)
03:52:52  <mbalho>dominictarr: you use so many parlour tricks in your code its crazy to read, e.g. https://github.com/dominictarr/level-scuttlebutt/blob/master/test/script.js
03:53:02  <mbalho>dominictarr: too clever for your own good :)
03:53:26  <dominictarr>you mean returning functions?
03:54:16  <dominictarr>can you point me to a line that is problematic?
03:54:53  <mbalho>dominictarr: two examples: randomData(B = db, 'B', next) and if(--z) return
03:55:18  <mbalho>they just remind me of tricks in ruby modules
03:55:25  <mbalho>that were by programming playing code golf
03:55:28  <mbalho>programmers*
03:55:44  <mbalho>dominictarr: none of it is impossible to understand it is just dense
03:56:00  <dominictarr>hmm, well, if(--z) return is pretty standard pattern
03:56:03  <dominictarr>for node
03:56:31  <mbalho>i hadn't seen that particular flavor but yea keeping a counter is common
03:57:06  <dominictarr>yeah, I guess I do use lots of terse expressions for logic stuff
03:57:12  <dominictarr>I got that one from isaacs
03:57:49  <mbalho>i guess its the tradeoff of you being more productive vs other people reading your code being more productive
03:58:00  <mbalho>jurys out on which one is more important
03:58:38  <dominictarr>so, what does the same thing, but is more obvious?
03:59:55  <mbalho>randomData(B = db, 'B', next) would turn into two lines, i think the --z one was confusing because it was a combination of "function next()" being undescriptive and lots of variable hoisting to follow around to figure out what scope i was in
04:06:07  <jez0990___>dominictarr: i want to implement CRDT treedocs (http://hal.inria.fr/docs/00/17/76/93/PDF/RR-treedoc.pdf) - do you know if anyone has already been thinking about this?
04:06:14  * ph0n3ticquit (Read error: Connection reset by peer)
04:06:23  <dominictarr>jez0990___, yes!
04:06:31  <dominictarr>I just did something like that today
04:06:40  <dominictarr>https://github.com/dominictarr/r-edit/
04:07:05  <dominictarr>it's a little different to tree doc - not using a tree mainly
04:07:26  <dominictarr>just using sorted string keys instead
04:07:27  <jez0990___>ah :)
04:07:34  <jez0990___>did you base the design on another paper?
04:07:52  <mbalho>dominictarr: ok so why wouldnt scuttlebutt/model work for files? can't i just have keys like "filename:lastmodifiedunixtimestamp" and then if the file updates on the server set 'filename:oldtimestamp' to null and 'filename:newtimestamp' to the new file contents
04:08:14  <dominictarr>well, I thought of this approach a while ago, but it turns out someone wrote a paper on a very similar idea i think
04:08:18  <dominictarr>the logoot paper
04:08:52  <dominictarr>mbalho, do you want to update files on the browser too?
04:09:03  <mbalho>one way updating, from browser to server
04:09:31  <dominictarr>will multiple browsers ever look at the same files?
04:10:30  <mbalho>its for web apps to cache static assets so the apps work offline but also so the apps can update dependencies on a file by file basis when they are online
04:11:31  <dominictarr>oh, well if you are storing them in leveldb on both ends it doesn't matter because you'll just have the scuttlebutt versioning
04:12:05  <dominictarr>if you don't write them to disk separately, you'r fine
04:12:10  <mbalho>yea
04:12:31  <mbalho>gonna use level-scuttlebutt and see how it goes
04:13:27  <Raynos>mbalho: there is no xhr-stream module for a readable stream. you can use engine.io or sock for overkill
04:14:25  <mbalho>Raynos: im going to use sse-stream + polyfills
04:15:05  * defunctzombiechanged nick to defunctzombie_zz
04:15:23  <dominictarr>mbalho, Raynos I'm gonna get back to refining level-scuttlebutt next week
04:15:32  <Raynos>cool.
04:15:44  <Raynos>I need something to demo replication for thursday.
04:15:57  <Raynos>I want to show how you can model infinite canvas trivially with leveldb
04:16:05  <Raynos>by just doing a range query for an arbitary location
04:16:06  <Raynos>and render that
04:16:11  <Raynos>so you can teleport around and shit!
04:16:53  <dominictarr>oh, that sounds AWESOME
04:17:12  <dominictarr>brb, food.
04:17:24  <Raynos>Well really what I want do too
04:17:26  <Raynos>is zooming
04:17:31  <Raynos>and figure out how to reindex
04:17:35  <Raynos>at different zoom levels
04:17:40  * defunctzombie_zzchanged nick to defunctzombie
04:17:55  <Raynos>this could be done with buckets and indexing shapes in buckets
04:18:07  <Raynos>and then as you zoom out the pixels that can rendered are entire buckets
04:22:00  * defunctzombiechanged nick to defunctzombie_zz
04:49:02  * shuaibjoined
05:00:32  <substack>Raynos: geohashes
05:02:29  <dominictarr>Raynos, simple
05:02:34  <dominictarr>use a map reduce
05:03:42  <dominictarr>with my leveldb map stuff, you can use arrays as keys
05:04:03  <dominictarr>they will be sorted, so you can query them my bucket
05:04:35  <dominictarr>emit([country, city, neibourhood, block, street, address], value)
05:04:40  <dominictarr>etc
05:19:50  * mikealjoined
06:07:47  <substack>dominictarr: https://github.com/meteor/meteor/pull/516
06:13:44  <substack>http://github.com/substack/node-pathway
06:14:12  <substack>copies the JSONStream.parse() algorithm for matching
06:22:54  * devaholicjoined
06:28:15  * defunctzombie_zzchanged nick to defunctzombie
06:33:06  * jez0990___quit (Ping timeout: 265 seconds)
06:48:00  * defunctzombiechanged nick to defunctzombie_zz
06:49:15  * defunctzombie_zzchanged nick to defunctzombie
07:04:04  <substack>http://www.wired.com/wiredenterprise/2012/12/couchdb/
07:23:54  * mikealquit (Quit: Leaving.)
07:24:24  * defunctzombiechanged nick to defunctzombie_zz
07:32:01  * mikealjoined
07:33:50  * mikealquit (Client Quit)
07:35:01  * mikealjoined
07:35:10  * mikealquit (Client Quit)
08:21:55  * shuaibquit (Ping timeout: 240 seconds)
08:26:04  * shuaibjoined
08:38:30  * devaholicquit (Ping timeout: 264 seconds)
09:02:45  * CoverSlidequit (Ping timeout: 248 seconds)
09:04:14  * CoverSlidejoined
09:15:01  * shuaibquit (Ping timeout: 248 seconds)
09:19:07  * shuaibjoined
09:34:17  * thatguydanquit (Quit: thatguydan)
10:11:02  * dominictarrquit (Ping timeout: 244 seconds)
10:12:49  * AvianFluquit (Remote host closed the connection)
11:17:55  * yorickjoined
11:20:52  * AvianFlujoined
12:31:55  * birdbonesquit (Remote host closed the connection)
12:32:17  * ryanseddonquit (Remote host closed the connection)
12:34:39  * niftylettucequit (Remote host closed the connection)
12:34:55  * owenbquit (Remote host closed the connection)
12:40:37  * AvianFluquit (Remote host closed the connection)
12:45:49  * ralphtheninjajoined
13:12:43  * birdbonesjoined
13:13:16  * ryanseddonjoined
13:18:40  * owenbjoined
13:20:20  * niftylettucejoined
14:05:06  * shuaibquit (Ping timeout: 250 seconds)
14:09:11  * shuaibjoined
14:38:51  * devaholicjoined
14:56:58  <Raynos>Any tips of coding on flights
14:57:01  <Raynos>I have an entire day of flights
15:22:18  * shuaibquit (Quit: Computer has gone to sleep.)
15:44:35  <ik>Raynos: download a lot of things first
15:44:41  <ik>unless you'll have internet access
15:45:00  <Raynos>that is what i do
15:45:04  <Raynos>NPM INSTALL ALL THE THINGS
15:45:04  <LOUDBOT>FART KNOCKER
15:45:12  <Raynos>I also have like half of npm cached on this laptop
15:45:41  <ik>that is good
15:45:59  <ik>i do not know npm but in perl-land there is a minicpan, which lets you cache all the good bits of cpan
15:46:06  <ik>(without installing them- they are there and available to install)
15:46:11  <ik>docs are good too
15:49:03  <Raynos>now I need to figure out how to use level-scuttlebutt :p
16:10:19  * shuaibjoined
16:16:50  * shuaibquit (Ping timeout: 255 seconds)
16:20:23  * shuaibjoined
16:27:49  * AvianFlujoined
16:35:40  * defunctzombie_zzchanged nick to defunctzombie
16:53:07  * ralphtheninjaquit (Ping timeout: 252 seconds)
16:53:14  * ralphtheninjajoined
16:57:21  * jez0990_joined
17:20:30  * defunctzombiechanged nick to defunctzombie_zz
18:10:22  * defunctzombie_zzchanged nick to defunctzombie
18:50:28  * defunctzombiechanged nick to defunctzombie_zz
19:27:51  * Raynosquit (Remote host closed the connection)
19:43:12  * defunctzombie_zzchanged nick to defunctzombie
19:57:12  * ehd_joined
19:58:40  * ryanseddon_joined
19:59:09  * birdbones_joined
19:59:14  * owenb_joined
20:00:35  * ryanseddonquit (Remote host closed the connection)
20:00:35  * ec_quit (Remote host closed the connection)
20:00:35  * owenbquit (Remote host closed the connection)
20:00:35  * sveisveiquit (Remote host closed the connection)
20:00:35  * ehdquit (Remote host closed the connection)
20:00:35  * niftylettucequit (Remote host closed the connection)
20:00:38  * birdbonesquit (Remote host closed the connection)
20:01:21  * ec_joined
20:01:22  * sveisveijoined
20:02:08  * niftylettuce_joined
20:12:38  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
20:12:38  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for dedicated browserling plan ($250). Cash money! /!\
20:14:12  <pkrumins>nom
20:17:43  * owen1quit (Ping timeout: 260 seconds)
20:20:14  <substack> wooo
20:30:57  * owen1joined
20:43:12  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
20:43:12  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
20:48:03  <substack>:D
21:35:27  * jez0990_quit (Ping timeout: 252 seconds)
21:35:36  <defunctzombie>hahaha
21:35:58  <fotoverite>defunctzombie: what you hacking on these days?
21:36:14  <defunctzombie>right now I am about to reinstall my OS since I got some new SSDs
21:36:28  <defunctzombie>so backing up lots of shit and cleaning up old cruft :)
21:36:29  <fotoverite>nice
21:36:49  <defunctzombie>was migrating my website to github yesterday
21:36:56  <defunctzombie>gonna try to host off of github pages
21:37:47  <fotoverite>I'm sticking with my tumblr right now. Only posting a few times a week at the moment
21:37:57  <fotoverite>don't want to dedicate time to it unless it truly becomes a fixture
21:38:01  <defunctzombie>haha
21:38:05  <defunctzombie>I almost never post
21:38:15  <defunctzombie>but at least this way posting is as simple as doing a git push
21:38:19  <fotoverite>Yeah but mines photography
21:38:24  <defunctzombie>right
21:38:27  <fotoverite>so even less a business concern
21:38:36  <fotoverite>I really should do a coding website
21:39:01  <fotoverite>But my heart just isn't in tech posts. That's why I usually talk about communities at my talks.
21:39:22  <fotoverite>I love tech but I think there are way smarter people to explain streams then me. Like substack :D
21:39:23  <defunctzombie>my heart is rarely into writing prose, that is why I write code :)
21:43:32  <substack>hooray found this http://hackaday.com/2010/11/03/how-to-program-pics-using-linux/
21:46:32  <defunctzombie>oh noes
21:46:34  <defunctzombie>not sdcc!
21:46:51  <defunctzombie>I remember way back when I had to program pics
21:46:56  <defunctzombie>never again
21:47:21  <defunctzombie>I think I still have a copy of the mcc18 compiler around somewhere
21:50:14  * ralphtheninjaquit (Ping timeout: 252 seconds)
21:51:09  * ralphtheninjajoined
21:56:00  * ralphtheninjaquit (Ping timeout: 264 seconds)
21:57:16  * ralphtheninjajoined
22:00:33  <substack>I already have them compiled fine
22:01:04  <substack>now just getting this pickit3 to flash the 12f675
22:04:25  <substack>it's completely silly how obsessed the manufacturers are with IDEs
22:11:48  <defunctzombie>IDEs ARE THE FUTURE
22:14:35  * owen1changed nick to owen
22:14:37  * owenchanged nick to owen1
22:53:47  * Raynosjoined
23:13:24  * thatguydanjoined
23:39:30  * jez0990_joined
23:46:21  * thatguydanquit (Quit: thatguydan)
23:48:37  * thatguydanjoined
23:50:53  * Madarsquit (Ping timeout: 255 seconds)