00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:05:04  * Domenic_quit (Remote host closed the connection)
00:05:33  * CryptoQuickquit (Ping timeout: 240 seconds)
00:06:21  * thl0joined
00:16:49  * kenperkinsjoined
00:21:14  * ralphtheninjaquit (Quit: Lost terminal)
00:24:29  * thl0quit (Remote host closed the connection)
00:27:57  * nicholasfquit (Read error: Connection reset by peer)
00:28:16  * nicholasfjoined
00:40:31  * fallsemoquit (Quit: Leaving.)
00:59:59  * marcello3djoined
01:00:35  * mikealquit (Quit: Leaving.)
01:00:41  * defunctzombie_zzchanged nick to defunctzombie
01:02:31  <Raynos>:D
01:04:37  * marcello3dquit (Ping timeout: 248 seconds)
01:11:25  <jesusabdullah>you would say that
01:15:38  <substack>jesusabdullah: did you see https://github.com/substack/exterminate
01:17:57  * mikolalysenkoquit (Ping timeout: 248 seconds)
01:21:52  * Domenic_joined
01:25:59  * mikolalysenkojoined
01:32:48  <jesusabdullah>No, I don't really follow the github stream
01:33:06  <jesusabdullah>does it work?
01:36:06  <substack>yes
01:36:18  <jesusabdullah>using parts of https://github.com/chjj/tty.js perhaps?
01:36:24  <jesusabdullah>screenshots?
01:36:52  <jesusabdullah>using it as your regular term?
01:39:40  <jesusabdullah>substack: height does not go all the way down
01:39:47  <jesusabdullah>substack: this is a dealbreaker
01:40:34  * thl0joined
01:42:13  * ins0mniaquit (Ping timeout: 240 seconds)
01:43:13  * mikolalysenkoquit (Ping timeout: 240 seconds)
01:46:07  <mbalho>in linux if i wanted to get an event when a usb device was plugged in how would i get notified?
01:46:25  <mbalho>parse stdout of dmesg ?
01:46:36  <substack>jesusabdullah: known issue, not hard to fix
01:47:07  <substack>mbalho: that'd probably be the most reliable way
01:47:24  <substack>or hook into whatever files dmesg is parsing
01:48:01  <mbalho>substack: do you know if dmesg shows the mount point?
01:48:10  * st_lukejoined
01:48:28  <substack>mbalho: linux only mounts usb devices if you're using a service that does that
01:48:38  <substack>I have that "feature" turned off because I hate it
01:48:41  <mbalho>ahh
01:49:09  <substack>if I want to mount a device I'll run the mount command myself
01:49:19  <mbalho>you sound like ever linux user ever :)
01:49:22  <mbalho>every*
01:50:16  * st_lukequit (Remote host closed the connection)
01:50:30  * ins0mniajoined
01:52:36  * tmcwjoined
02:02:02  * mikolalysenkojoined
02:09:06  <Raynos>substack: whats the point of exterminate?
02:10:44  <mbalho>html5 + command line
02:11:53  * ins0mniaquit (Ping timeout: 240 seconds)
02:14:14  <jesusabdullah>really what I want, is a terminal that doesn't piss me off
02:14:28  <jesusabdullah>and so far almost every terminal pisses me off in one way or another.
02:15:07  <jesusabdullah>gnome-terminal is "tolerable"
02:15:29  <substack>Raynos: so I can display images in the terminal and turn off all the "features" that bug me about gnome-terminal
02:16:04  <jesusabdullah>I would probably base a terminal off the same base thinger that gnome-terminal uses
02:16:14  <jesusabdullah>as you may know there is an entire family of terminal apps that use this
02:16:33  <jesusabdullah>xfce's terminal app, for example
02:16:36  <jesusabdullah>I believe Sakura as well
02:16:44  <substack>jesusabdullah: it was *much* easier just to use shux
02:16:47  <substack>which just uses pty.js
02:17:10  <substack>and then I copied the vendored version of tty.js from headless-terminal and hacked it a little to turn some of the annoyances off
02:18:52  <jesusabdullah>substack: I need semi-translucency, nice colors, right-click urls, sane scrolling, preferrably easy theming
02:19:14  <jesusabdullah>substack: a nice-to-have is an audible bell that doesn't require dark magicks
02:20:01  <substack>jesusabdullah: you can use css for all that
02:20:28  <jesusabdullah>for some of it
02:20:30  <substack>for translucency you'll need to figure out what the api is to query the background image
02:20:52  <substack>unless you care about overlapping translucency
02:21:02  <jesusabdullah>I'm okay with pseudo-transparency
02:21:15  <substack>https://github.com/substack/exterminate/blob/master/static/index.html
02:21:30  <jesusabdullah>thing is, if a terminal app doesn't already have most of these things I'm really not all that interested
02:21:59  * marcello3djoined
02:22:13  <jesusabdullah>oh, and normal gui ux, I don't need a "pure" "minimal" ux
02:22:14  * dominictarrjoined
02:24:56  * tmcwquit (Remote host closed the connection)
02:25:38  <jesusabdullah>vte, that's what the gtk widget is called
02:28:51  <jesusabdullah>oh yeah, termite was the one that really grinded my gears
02:32:27  * douglaslassancejoined
02:32:28  * douglaslassancechanged nick to Asterokid
02:34:16  <jesusabdullah>shit, evilvte sucks too
02:34:31  <jesusabdullah>if configuration requires a recompile you're doing it wrong.
02:36:03  * nicholasfquit (Read error: Connection reset by peer)
02:36:26  * nicholasfjoined
02:37:10  <mmckegg>dominictarr: extracted as promised https://github.com/mmckegg/level-match-map
02:37:24  * thl0quit (Remote host closed the connection)
02:39:42  * nicholasfquit (Read error: Connection reset by peer)
02:39:50  <dominictarr>mmckegg: why have you passed in `postID: post` but currentPage as null and comments as empty array?
02:40:08  * nicholasfjoined
02:41:23  <mmckegg>dominictarr: It's a tribute to json-context mostly. It could probably be a separate params array.
02:41:29  <mmckegg>*should
02:42:05  <dominictarr>no, i mean, it's not clear from the example whether that needs to be there to work?
02:43:41  <dominictarr>in the example, you request the current_page, and then the comments - it looks like?
02:44:03  <mmckegg>yes that's correct. not quite sure what you mean
02:44:18  <mmckegg>oh wait.. I see what you are saying.
02:44:50  <mmckegg>yeah the only thing that matters is postId,
02:45:16  <mmckegg>it is very confusing. so much for being clever :D
02:46:00  <dominictarr>no, this looks great!
02:46:35  * nicholasfquit (Read error: Connection reset by peer)
02:46:56  <dominictarr>it lets you have many-to-one relational data
02:47:02  * nicholasfjoined
02:47:56  <mmckegg>yeah that's the idea, just made some changes to read me. does that make it clearer?
02:48:05  <mmckegg>(example)
02:48:18  <dominictarr>I see now, you initialize comments: [], because you use it later
02:48:31  <dominictarr>yes!
02:48:53  <mmckegg>yeah, the reason I recycled the object was because that's the way it works when using it in the original module it was extracted from.
02:49:09  <mmckegg>It's so one matcher can set params that the next can pick up on
02:50:24  <mmckegg>contextdb basically just adds json-query on top of this stuff so you don't have to manually map the matchers to the result, if that makes sense.
02:50:41  <dominictarr>this is nearly sql!
02:50:59  <mmckegg>haha, yes that's basically the idea.
02:51:02  <mmckegg>but steaming sql.
02:51:30  <dominictarr>yes, also, you could use tail: true ? and have realtime sql?
02:52:02  <mmckegg>i wrote it to replace mysql in my current project so that makes a lot of sense :)
02:52:09  <mmckegg>yes
02:52:34  <dominictarr>aha, that is great
02:53:08  <dominictarr>so, in the example, you could also do each createMapStream in parallel
02:53:21  <mmckegg>yeah that's right
02:53:42  <mmckegg>that gives me an idea for the other module actually.
02:55:24  <dominictarr>I've been thinking what it would be like if you could just do createQueryStream('post', 'post_comment')
02:55:36  <dominictarr>and get back one stream
02:56:47  <mmckegg>that makes a lot of sense actually. although internally it's still different ranges, so it would be combining those.
02:57:03  <dominictarr>yes, but it would do that under the hood
02:57:24  <mmckegg>I think I may just do that. Would make the example a lot clearer too.
02:57:39  * nicholasfquit (Ping timeout: 252 seconds)
02:58:13  <dominictarr>so you just say SELECT * FROM posts JOIN comments WHERE posts.id == comments.postId AND post.id = 356
03:00:25  <mmckegg>do you think joins should be explicit, or just based on shared params like now?
03:03:59  <dominictarr>hmm, I mean, you are specifying a relation here, but you have that model in your head
03:04:27  <dominictarr>this is a level below the sql level of abstraction
03:06:51  <dominictarr>there is still a bit of boilerplate here
03:07:11  <dominictarr>like, how you have to specify the ref: post
03:07:29  <dominictarr>is that used later, in the db?
03:07:37  <mmckegg>yeah in contextdb
03:08:14  <mmckegg>the ref is the name of the index.
03:08:21  <mmckegg>It's what we're using to query
03:08:27  <mmckegg>is that clear from the example?
03:08:43  <mmckegg>the type and id constraints could be anything
03:11:19  <mmckegg>it could be var matchers = {post: {type: 'post', id: {$param: 'postId'}} potentially, not sure if that's really better though.
03:13:17  <dominictarr>hmm, what if it was {one: {type: 'post', id: {$param: 'postId'}], many: {type: 'comment', postId: {$param: 'postId'}}}
03:14:07  <mmckegg>then createMatchStream(['one', 'many'], {postId: 'post-1'}) ?
03:15:10  <dominictarr>or {one: {type: 'post'}, many: {type: 'comment'}, where: {equal: ['id', 'postId']}
03:15:20  <dominictarr>}
03:16:00  <dominictarr>clearly, you have to prespecify the schema
03:16:30  <dominictarr>so, you need to pre-specify the schema, because it needs to be indexed
03:16:43  <mmckegg>so the one and many are instructions, not names?
03:16:52  <dominictarr>yes
03:17:18  <mmckegg>hmm, this could be interesting, but doesn't work so well with what I wrote it for.
03:17:24  <dominictarr>ah
03:17:58  <mmckegg>this is it in action: https://github.com/mmckegg/contextdb (sort of)
03:20:11  <dominictarr>I'm looking at that now
03:22:18  <dominictarr>how come in context db it's $query and in level-map-match it's $param?
03:22:34  <mmckegg>just to make it confusing...
03:22:46  <mmckegg>$query is using json-query
03:23:06  <mmckegg>rather than just direct key params
03:23:21  <mmckegg>that came first, but I didn't want to include json-query in match-map
03:23:51  <mmckegg>in match-map you can use $query if you specify queryHandler in options.
03:24:22  <dominictarr>hmm
03:24:29  <mmckegg>so the idea is you have an instance of contextdb on the server for every currently connected user. this syncs with their local json-context instance. any changes they make are pushed back, and any changes from other users are pushed to.
03:24:40  <mmckegg>It's tough when you
03:24:58  <mmckegg>you're building this stuff to use asap, and try and make it make sense to other people :D
03:25:04  <dominictarr>yes
03:25:45  <mmckegg>and of course there's usually way better ways of doing it that you realize later.
03:26:06  <mmckegg>reinventing your own wheels is fun.
03:26:06  <dominictarr>I think this has great potential, but currently it's api contains quite a bit that depends on internal implementation details
03:26:35  <dominictarr>oh, but you need a knew kind of wheel when you are on a new kind of road!
03:26:57  <mmckegg>yeah, too tangled up with itself?
03:27:10  * shamaquit (Remote host closed the connection)
03:27:12  <dominictarr>no, I wouldn't call it tangled
03:27:49  <dominictarr>it's more that you are telling the computer what to do,
03:27:59  <dominictarr>rather than telling it want you want
03:28:39  <mmckegg>ah right. any suggestions?
03:28:44  <dominictarr>It's not obvious what it's gonna do, from first glance
03:28:44  <mmckegg>quick ones.
03:29:18  <mmckegg>I was thinking about doing some sort of diagram thing, but you know it's too late when you're doing that :D
03:29:30  <dominictarr>createMatchStream(['post, 'post_comment'], {postId: 'post-1'}) will help alot
03:30:24  <mmckegg>yeah I totally agree. that is the way it's used everywhere anyway.
03:30:42  <dominictarr>I read somewhere some one said the best advice they every recieved was "don't write classes ending in er"
03:31:32  <dominictarr>he said that was a sign to rethink what you are really doing
03:31:56  <dominictarr>so, just thinking about this out loud
03:33:41  <dominictarr>so, basically you are saying "I want to be able to retrive posts and post_comments by their postId"
03:34:24  <dominictarr>rather than instructing the database to setup infrastructure to match on these things
03:34:36  <mmckegg>The interesting thing about this is that was a concept that evolved. it came out of trying to make json-context stuff work with leveldb….
03:34:46  <mmckegg>It wasn't supposed to be a query thing, but now that it is.
03:35:06  <dominictarr>ha
03:35:15  <dominictarr>yeah, sometimes it does that
03:35:30  <mmckegg>What you're saying makes a lot of sense. will give it some thought.
03:36:06  <dominictarr>it's because people call SQL dbs "relational" databases
03:36:14  <mmckegg>I'm just afraid I'll be rehacking the whole thing again :D
03:36:39  <mmckegg>I mean, I have a product that depends on this stuff.
03:36:44  <dominictarr>don't rush, just think about it -- I feel that it's more likely it will become another layer
03:36:50  <dominictarr>on top of this
03:37:03  <mmckegg>ok that sounds comforting
03:37:28  <dominictarr>as I was saying -- "relations" is actually an idea from mathematical logic
03:38:18  <dominictarr>SQL does not _own_ relational, it's just one crude implementation of "relational"
03:38:38  <dominictarr>data still has relations, whether you like it or not
03:40:12  <jjjjohnnny>its only natural
03:40:46  <jjjjohnnny>how do i do cos^-1() in js?
03:40:59  <substack>I forget how nice it is to ride a bicycle at night compared to the daytime
03:41:03  <substack>no traffic at 2am
03:41:37  <jjjjohnnny>substack: its only 8pm dawg
03:41:55  <substack>I'm just planning on it
03:41:57  <jjjjohnnny>and yr not on a bike, yr on a ball
03:42:08  <substack>quit spying!
03:42:27  * fallsemojoined
03:42:36  <substack>you are no james bond, assuredly
03:43:05  * Domenic_quit (Ping timeout: 246 seconds)
03:44:25  <jjjjohnnny>the james bond is the love between substack and his robots
03:44:36  <jjjjohnnny>how do i do cos^-1() in js?
03:45:19  <mmckegg>dominictarr: I think the level on top is a good idea, make this part nothing much more than indexing, then specify relational stuff in another layer.
03:46:51  <dominictarr>absolutely
03:48:25  <jjjjohnnny>u mean... relatively
03:49:20  <substack>>> Math.acos(0)*2
03:49:21  <purr>substack: (number) 3.141592653589793
03:50:35  <mmckegg>dominictarr: does this make sense? https://gist.github.com/mmckegg/0d72f7f04610aa9f1467
03:51:14  <jjjjohnnny>math.acos does not seem to be return the correct angle
03:51:18  <jjjjohnnny>is it in radians?
03:51:39  <dominictarr>https://gist.github.com/mmckegg/0d72f7f04610aa9f1467#file-gistfile1-js-L10 could also be data.value.type == 'comment', right?
03:51:56  * Domenic_joined
03:52:05  <mmckegg>yes. what do you think makes this clearer?
03:52:18  * mikolalysenkoquit (Ping timeout: 257 seconds)
03:53:01  <jjjjohnnny>cos^-1(.25) should == 75.5 degrees
03:53:09  <dominictarr>yes, because I don't know how the data.matcher gets there (although you know, of course!) but I do know what data.value should be
03:53:30  <jjjjohnnny>math.acos(.25) = 1.318....
03:53:37  <mmckegg>ok, also I don't know how the matcher gets there, so this makes it easier :)
03:54:57  <jjjjohnnny>hold let me figger it out on muh ohwen
03:55:39  * mikealjoined
03:55:50  <dominictarr>would it be possible to have createMatchStream[{type: 'comment', id: 'post-1'], {type: 'comment,' postId: 'post-1'}]) ?
03:56:20  <substack>>> Math.acos(0.25) * 180/Math.PI
03:56:20  <purr>substack: (number) 75.52248781407008
03:56:44  <mmckegg>would involve some indexing magic, but it might be possible.
03:57:05  <mmckegg>Would probably make a lot more sense. the realtime is easy, it's just how to deal with indexing.
03:57:20  <dominictarr>yes, it would require you to figure out which ref has that index
03:57:37  <dominictarr>but to the reader, the meaning would be clearer
03:57:48  <dominictarr>hmm, maybe
03:58:35  <mmckegg>if it could get rid of having to define matchers altogether would be good. What about sql style? Define index params… then just query at will?
03:58:36  <dominictarr>maybe you shouldn't think about it like that… instead, make the matcher a 'template for a query'
03:59:31  * mikealquit (Client Quit)
04:02:09  <dominictarr>hmm, actually, when I think about it as query templates it makes a lot more sense
04:03:19  <mmckegg>gives me an idea. will give it a try
04:03:22  * blakmatrixjoined
04:03:41  <dominictarr>mmckegg: what if you had a convention where documents always have a type filed
04:03:50  <dominictarr>field
04:04:14  * fallsemoquit (Quit: Leaving.)
04:04:18  <dominictarr>and foriegn keys are always of the form ~type_ed
04:04:29  <dominictarr>i mean $type_id
04:04:31  * marcello3dquit (Remote host closed the connection)
04:04:35  <dominictarr>$type
04:04:42  <dominictarr>$type_$id
04:05:23  <mmckegg>so tables and primary keys?
04:05:54  <mmckegg>one thing I've been trying to handle is a matcher that refers to multiple types.
04:06:04  <dominictarr>yeah, basically
04:06:18  <mmckegg>so that's why I left types out
04:07:07  <dominictarr>match: { type: ['fruit', 'vege'] }
04:08:05  <dominictarr>that would create a combined index that is both fruit and vege
04:09:58  <dominictarr>hmmm
04:10:14  <dominictarr>so, with same properties
04:10:23  <dominictarr>man I can't type right now
04:10:35  <dominictarr>so, with some properties,
04:10:46  <dominictarr>you index by the VALUE
04:11:05  <dominictarr>but with other properties, you index by the key
04:11:33  <mmckegg>dominictarr: https://gist.github.com/mmckegg/a724840b5acc6c45efad playing with the template idea.
04:11:40  <dominictarr>so, on posts, you create records like this
04:12:02  <dominictarr>post!post-id -> doc_post_id
04:12:30  <dominictarr>but with comments you create an index like this:
04:13:06  <dominictarr>post_id!post-id!comment-id-> doc_comment_that_refers_to_post_id
04:13:24  <dominictarr>or you could make it
04:13:35  <dominictarr>post!post-id!comment-id
04:14:41  <dominictarr>which would mean that a request {start: 'post!post_id', end: 'post!post_id!~'} would get you the post, and then the comments!
04:16:42  <dominictarr>mmckegg: +1 that looks really good!
04:17:00  <mmckegg>dominictarr: so maybe we are talking about a view that includes multiple matchers with some sort of shared key (relation) … that could be a layer above.
04:17:27  <dominictarr>yes
04:18:13  * jcrugzzquit (Ping timeout: 240 seconds)
04:19:40  <mmckegg>thinking about the matcher name… do you think they could be called something else? something along the lines of 'indexes' or 'queryTemplates'
04:20:38  <dominictarr>well, it IS an index
04:22:01  <mmckegg>Also, they are now very different from what I'm calling matchers in the json-query world. I'll try rolling with index. Think match-map still makes sense?
04:22:47  <dominictarr>actually, I don't see where the 'map' part comes from
04:22:55  * mikolalysenkojoined
04:25:13  <mmckegg>what about match-index?
04:25:41  <mmckegg>or filter-index
04:33:31  * mikolalysenkoquit (Ping timeout: 264 seconds)
04:34:45  <dominictarr>or query-index? match-index seems fine…. or maybe just level-index
04:34:46  <dominictarr>?
04:35:00  <dominictarr>oh, by the way, what does the index look like in the database?
04:37:43  <mmckegg>um… $ref~SHA1hashOfIndexedParams~key
04:38:06  <mmckegg>dominictarr: or something like that.
04:39:32  <mmckegg>the advantage of using a hash is we preserve value type … e.g. integer, boolean etc.
04:40:21  <mmckegg>but we loose the ability to do partial index queries.
04:40:25  <dominictarr>$ref~$hash(value)~$key
04:40:26  <dominictarr>?
04:40:31  <mmckegg>yep.
04:40:35  <dominictarr>what is key/$key ?
04:41:09  <mmckegg>what are you referring to?
04:41:19  <dominictarr>at the end of the index
04:41:26  <dominictarr>$ref~SHA1hashOfIndexedParams~key
04:41:50  <dominictarr>is that just the key of the document?
04:41:57  <mmckegg>ah yes that's all
04:42:08  <mmckegg>just whatever it is in db
04:42:11  <dominictarr>right - hmm
04:42:22  <mmckegg>id != key
04:42:30  <mmckegg>id just some field.
04:42:42  <dominictarr>what do you use for keys?
04:42:47  <dominictarr>if not id?
04:43:00  <mmckegg>Well i use id...
04:43:04  <dominictarr>right
04:43:08  <mmckegg>but this module doesn't care
04:43:11  <dominictarr>right
04:43:19  <mmckegg>actually I'm using id!timestamp
04:43:26  <mmckegg>the other way
04:43:30  <mmckegg>timestamp!id
04:43:51  <mmckegg>to sort by date as pretty much everything I ever need should be sorted that way.
04:44:20  <mmckegg>sorry I take that back, I'm doing some stuff with incrementing numbers.
04:44:22  <dominictarr>hmm I think if you did $ref~indexParam!key and padded numbers,
04:44:39  <dominictarr>then you could do partial indexes, because it would be sorted
04:44:53  <dominictarr>as long as ! is never in a indexParam
04:45:06  <dominictarr>or use \x00 as the split
04:45:22  <mmckegg>hmm, but then you have to worry about the order of the keys
04:45:25  <dominictarr>never putting \x00 in a key is a more reasonable demand
04:45:40  <mmckegg>which explodes my mind, had enough of that with mysql
04:46:05  <dominictarr>well, the order of the indexParam will affect it first
04:46:35  <dominictarr>only items with the same indexParam would be sorted by keys
04:46:37  <mmckegg>with the has I can use alphanumeric key order.
04:46:40  <mmckegg>hash*
04:47:22  <mmckegg>Oh I mean order of the params in the key sorry
04:47:24  <dominictarr>right -- because you are requesting items always with the same hash
04:47:59  <mmckegg>yeah, anything tagged $index: true ends up in the hash.
04:48:14  <dominictarr>you can have multiple indexes?
04:48:20  <dominictarr>per object?
04:48:37  * dguttmanquit (Ping timeout: 248 seconds)
04:48:38  <mmckegg>yeah, overlapping, whatever floats your boat
04:49:09  <dominictarr>hmm, interesting.
04:49:19  <dominictarr>I'll think about this more…
04:49:32  <mmckegg>I'm trying to make the indexes 1:1 the data needed to render the final page.
04:49:43  <dominictarr>I'm gonna go back to sleep now… nearly 5 am here
04:49:52  <dominictarr>mmckegg: yup - that is a good plan
04:50:02  <dominictarr>night
04:50:05  * dominictarrquit (Quit: dominictarr)
04:56:50  * dguttmanjoined
04:59:39  * mikolalysenkojoined
05:00:53  * dguttmanquit (Read error: Connection reset by peer)
05:14:30  * mikolalysenkoquit (Ping timeout: 256 seconds)
05:14:58  * marcello3djoined
05:17:13  * Domenic_quit (Ping timeout: 246 seconds)
05:19:34  * marcello3dquit (Ping timeout: 248 seconds)
05:27:47  * Domenic_joined
05:29:09  * timoxleyquit (Quit: Computer has gone to sleep.)
05:39:40  * timoxleyjoined
05:40:50  <Asterokid>Hey. When trying to browserify.bundle a source with syntax error. Causes my server to crash... Try to catch error or revert to using the callback, but nothing does... as soon as I bundle... BAM... server goes down... Any idea?
05:41:29  <substack>Asterokid: what version of browserify?
05:41:58  <Asterokid>substack: 2.5.1
05:42:10  <substack>best to upgrade
05:42:17  <Asterokid>good idea
05:42:19  <Asterokid>:D
05:42:38  <substack>the latest is 2.8.1
05:43:14  <Asterokid>substack: let me try this
05:43:27  <substack>ok I can seem to duplicate this bug
05:44:14  <Asterokid>substack: fixed :)
05:44:20  <chrisdickinson> node's zlib is going to drive me crazy ):
05:44:32  <Asterokid>substack: is it a bad habit to hard specify my versions?
05:44:41  <substack>Asterokid: not at all
05:44:43  <substack>it's very wise
05:44:53  <substack>I typically let the patch version float but peg everything else
05:45:09  * mikolalysenkojoined
05:45:15  <Asterokid>substack: cool thx for the help
05:54:36  * mikolalysenkoquit (Ping timeout: 245 seconds)
05:55:10  * wolfeidauquit (Remote host closed the connection)
06:02:20  * timoxleyquit (Quit: Computer has gone to sleep.)
06:21:04  * mikolalysenkojoined
06:25:41  * Domenic_quit (Ping timeout: 248 seconds)
06:29:26  * timoxleyjoined
06:35:33  * mikolalysenkoquit (Ping timeout: 256 seconds)
06:45:27  * mikealjoined
06:47:34  * timoxleyquit (Quit: Computer has gone to sleep.)
07:01:56  * wolfeidaujoined
07:06:47  * mikolalysenkojoined
07:17:05  * mikolalysenkoquit (Ping timeout: 245 seconds)
07:18:53  <Raynos>If I were to submit a talk to nodepdx
07:19:00  <Raynos>what do you think would be interesting / worthwhile
07:19:47  <substack>it's more about what YOU think is interesting
07:20:08  <substack>if you don't think something is interesting you can't give a very interesting talk about it
07:24:03  <Raynos>true
07:24:13  <Raynos>but I cant think of anything node specific
07:24:17  <Raynos>that I find innovative atm
07:24:31  <Raynos>i guess i should build a leveldb based distributed query engine in JS :D
07:24:41  <Raynos>but i dont know whether ill finish or even do that
07:26:51  <substack>how does SIGWINCH even work I have no idea
07:27:39  <substack>HOW IS SIGWINCH SENT? HOW TERMINAL GET RESIZE SIGNAL
07:27:39  <LOUDBOT>BUT DID YOU SEE HOW I COMBINED THE TWO THREADS INTO ONE? IT WAS LIKE A CONVERSATIONAL JOIN
07:27:44  * Asterokidquit (Quit: Linkinus - http://linkinus.com)
07:31:54  <Raynos>Maybe I have become less mad sciencist
07:32:08  <Raynos>maybe I feel like my projects need to proof themself more before i talk about them
07:34:23  <substack>you could give a talk about what mistaken ideas you've had
07:34:30  <substack>that would be really valuable
07:38:24  <Raynos>a lot :D
07:38:38  <Raynos>I think my biggest mistake is using unproven ideas in production
07:43:08  <substack>I try to prove them on contexts that don't matter first but not always
07:43:31  * mikolalysenkojoined
07:59:09  * mikolalysenkoquit (Ping timeout: 245 seconds)
08:05:19  * defunctzombiechanged nick to defunctzombie_zz
08:09:25  <jesusabdullah>Raynos: are they still taking submissions? Do you know the deadline?
08:09:30  * jesusabdullahmight have a proposal
08:10:57  <Raynos>its 8th april
08:19:05  * mmckeggquit (Quit: mmckegg)
08:25:17  * mikolalysenkojoined
08:34:53  * stlsaintquit (Ping timeout: 240 seconds)
08:37:58  <jesusabdullah>Raynos: I see.
08:38:01  <jesusabdullah>Raynos: thanks
08:40:24  * mikolalysenkoquit (Ping timeout: 264 seconds)
08:41:00  * CoverSlidequit (Ping timeout: 264 seconds)
08:42:13  * CoverSlidejoined
09:06:41  * mikolalysenkojoined
09:09:59  * dominictarrjoined
09:10:05  * dominictarrquit (Client Quit)
09:10:57  * ralphtheninjajoined
09:22:04  * mikolalysenkoquit (Ping timeout: 245 seconds)
09:47:09  <wolfeidau>substack: That https://browserling.com/ has a bit of an odd loading pattern are you retrieving the images after the JS loads or something?
09:47:38  <substack>I don't think so
09:48:00  <substack>oh it's possibly because the js code is in the <head> instead of the <body>
09:48:05  <substack>so maybe yes
09:48:20  * mikolalysenkojoined
09:48:22  <wolfeidau>substack: takes 8.37s to load for me in Australia
09:48:46  <wolfeidau>3.6s before any images start loading
09:49:33  <wolfeidau>substack: o no compression at the moment, which your probably aware of
09:51:45  <wolfeidau>Yeah DOMContentLoaded: 3.59s according to Chrome
09:52:29  * blakmatrixquit (Quit: Leaving.)
09:58:16  * dominictarrjoined
10:03:24  * nk109joined
10:03:44  * mikolalysenkoquit (Ping timeout: 245 seconds)
10:11:03  * nk109quit (Quit: Computer has gone to sleep.)
10:12:22  * ins0mniajoined
10:18:47  * nicholas_joined
10:22:55  <dominictarr>ins0mnia: hey whats up?
10:24:13  * thl0joined
10:25:18  <ins0mnia>dominictarr: hey dominic! all good, stressing as hell these days with a deadline I have :(
10:25:33  <dominictarr>bummer
10:25:47  <dominictarr>when is your deadline?
10:25:59  <ins0mnia>dominictarr: not being employed has upsides, but downsides as well
10:26:05  <ins0mnia>dominictarr: April 1st
10:26:19  <ins0mnia>dominictarr: So I'm kissing easter goodbye this year
10:26:37  <ins0mnia>wouldn't be the first time though :)
10:26:51  <substack>?
10:27:09  <dominictarr>oh, right - okay, I'll leave you to it - just wanted to talk through an idea
10:27:34  <dominictarr>on the verge of rewriting scuttlebutt to not be in-memory.
10:27:39  <ins0mnia>dominictarr: shoot, I'm haven't started working yet
10:27:45  <substack>!
10:27:56  <ins0mnia>dominictarr: oh
10:28:04  <substack>dominictarr: maybe with async callback hooks?
10:28:10  <dominictarr>yeah,
10:28:14  <substack>so you could decide exactly how in-memory it should be
10:28:31  <dominictarr>so set(key, value) would be like put(key, value, cb)
10:28:51  <dominictarr>it would just be a replication thing for leveldb, really
10:29:08  <dominictarr>and you could use it with any querying plugin from leveldb, etc
10:29:36  <dominictarr>slash map-reduce, indexing etc plugin
10:30:08  * mikolalysenkojoined
10:30:41  <dominictarr>so, the thing that I am not 100% happy with is how to handle concurrent updates to a single instance of the database
10:31:28  <dominictarr>which will probably not happen very often - but will happen eventually, and is a case that needs to happen to be consistent
10:31:31  * spion_joined
10:31:41  <dominictarr>a case that needs to be handled, I mean.
10:32:43  <substack>well isn't the point of scuttlebutt that it's eventually consistent?
10:32:53  <substack>so you don't need to care about being notified with a callback response
10:33:29  <substack>for get() that's more tricky if it needs to read from disk
10:33:29  <dominictarr>yes, well if an update comes in from another node while you are saving something how do you want to show that?
10:33:56  <substack>you should call a non in memory scuttlebutt by a different name
10:34:02  <dominictarr>yes, I will
10:34:08  <substack>excellent
10:34:18  <dominictarr>but it's the same idea… more like, scuttlebutt's big brother
10:34:23  <substack>since there is a legitimate niche for in-memory and not in memory verions
10:34:32  <substack>both of those need to exist
10:34:40  <dominictarr>yes
10:35:21  <substack>ALSO
10:35:31  <substack>SIGWINCH is some crazy unix black magic
10:35:41  <dominictarr>what is SIGWINCH?
10:35:58  <substack>it's a signal used to trigger terminal resize events
10:36:19  <substack>but I can't find any docs about how the remote shell queries the geometry after getting a SIGWINCH
10:36:22  <substack>BUT
10:36:23  <dominictarr>I have wondered why they can't just use an escape code
10:36:33  <substack>I did read some stuff about using escape codes for queries
10:36:41  <substack>I wrote some logic in charm reading spec sheets
10:36:46  <substack>so it could be using that mechanism
10:37:02  <ins0mnia>dominictarr: does this also entile it can potentially be easier to cleanup/destroy a model (remove a model and its history, given that it's not in use)
10:37:05  <substack>so once exterminate has this it will be "good enough" to replace gnome-terminal for me
10:37:13  <dominictarr>… I guess it might be something to do with the fact that terminals where originally a physical device, and weren't resizable
10:37:18  <substack>dominictarr: also exterminate got a cursor earlier today
10:37:35  <dominictarr>substack: SWEET!
10:37:59  <substack>https://github.com/substack/exterminate/blob/master/browser.js#L64-L77
10:38:28  <substack>it's really ridiculous how little code this all is turning out to be
10:38:48  <substack>there is some really powerful abstraction at play here that we've all been taking completely for granted
10:39:12  * ralphtheninjaquit (Ping timeout: 264 seconds)
10:39:14  <substack>I think that abstraction is called require()
10:39:34  <dominictarr>nice - just updated
10:39:36  <substack>plus how html is a whole rendering engine that we just take completely for granted
10:40:07  <dominictarr>yes, man I was looking at how the lua module system worked
10:40:10  <dominictarr>mental
10:40:33  <dominictarr>we need to get the node require distributed out to other languages
10:40:47  <substack>creationix already fixed it for lua
10:40:59  <dominictarr>oh, luvit has node style?
10:41:01  <substack>luvit just uses a simple copy of how it works in node
10:41:02  <substack>yep
10:41:07  <dominictarr>that rules!
10:41:09  <substack>aka "the correct way"
10:41:16  <dominictarr>does it use node_modules?
10:41:26  <substack>it uses something like node_modules
10:41:40  <substack>lua_modules or some such
10:41:45  <dominictarr>ah that is silly
10:42:04  <dominictarr>if it used node_modules you could put lua modules in npm
10:42:19  <substack>thinking about what you were saying yesterday, a node-based operating system would be really great
10:42:21  <dominictarr>or use a standard npm as your package manager
10:42:36  <substack>it could just be chrome OS + npm + exterminate
10:42:46  <dominictarr>yup, exactly
10:42:46  <substack>you don't really need much else, just enough to bootstrap it
10:42:47  <substack>in fact
10:42:54  <substack>maybe once exterminate works really relia bly
10:42:56  <dominictarr>substack: you need a wifi manager
10:43:09  <substack>that can be done on the command-line
10:43:13  <substack>and chrome os already has one
10:43:30  <substack>but maybe we can just convince chrome os to ship with npm and exterminate
10:43:33  <substack>that would be easier
10:43:38  <substack>I already know some folks
10:44:16  <dominictarr>yes
10:44:42  <dominictarr>then there would be a desktop js os to compete with ff os
10:45:00  <substack>gnome is already headed this direction
10:45:05  <substack>using js for its desktop apps
10:45:11  <dominictarr>and if you could install apps with npm too
10:45:11  <substack>but they completely botched the module system
10:45:33  <dominictarr>by using a 'normal' one, you mean?
10:45:42  * mikolalysenkoquit (Ping timeout: 252 seconds)
10:45:51  * ins0mniaquit (Ping timeout: 245 seconds)
10:47:20  <substack>yep
10:47:55  <dominictarr>ah, that is a shame.
10:47:57  <substack>in other news browserify is starting to become a very effective vehicle for getting people thinking about modularity along the correct avenues
10:48:08  <dominictarr>that is great
10:48:33  <substack>and that the module system we can use for browsers doesn't need to completely suck
10:49:14  <dominictarr>^ the problem with node.js's hipster reputation is that people don't take us seriously on this, unless they are on the inside
10:51:41  <substack>node.js's reputation is colored too much by ruby-esque libs like socket.io and express still
10:52:01  <substack>and not as the low-level systems programming runtime that it rightfully is
10:52:12  <substack>with very narrow, focused long-tail libraries
10:52:58  <dominictarr>yes
10:53:20  <dominictarr>so a node/js/npm os would have to be built in the unix spirit
10:53:33  <dominictarr>but with node_modules instead of $PATH
10:53:56  <substack>something like that
10:54:13  * ins0mniajoined
10:54:13  <substack>I actually think replacing $PATH should look like this: http://modules.sourceforge.net/
10:54:24  <substack>you can load different modules into your shell
10:54:37  <substack>module load node-0.8
10:54:39  <substack>for instance
10:54:58  <dominictarr>does that use subshells?
10:55:01  <substack>would modify $PATH, $LD_LIBRARY_PATH
10:55:03  <substack>yes
10:55:10  <substack>or you can source it
10:55:22  <substack>it just modifies env vars
10:55:31  <dominictarr>right - making subshells just like a scope
10:56:32  * ralphtheninjajoined
10:57:02  <dominictarr>what if you had a /node_modules
10:57:43  <dominictarr>and $PATH was just $HOME/node_modules;/node_modules
10:57:54  <juliangruber>dominictarr: will look at your pull request tonight
10:57:58  <juliangruber>dominictarr: level-peek looks nice
10:57:59  <dominictarr>but if you needed to get a special arrangement
10:58:39  <dominictarr>you can just install those modules into a node_modules over there, and the starting point of the node_modules tree there
10:58:57  <dominictarr>juliangruber: there is some weirdness about reverse ranges
10:59:06  <juliangruber>yes, I saw that
11:00:38  <dominictarr>juliangruber: You shouldn't merge it, but I think it's more helpful to show what I did, and why it didn't work nicely
11:00:58  <dominictarr>an option to hash the files too
11:01:19  <dominictarr>although, that won't work if you want to append to them
11:03:32  <juliangruber>dominictarr: what's the basic idea? I thought you'd want to replace timestamps with chunk numbers
11:03:52  <dominictarr>I did, but timestamps are so much simpler
11:04:29  <dominictarr>maybe, merge it when we sort out the reverse range stuff in levelup/down
11:04:55  <dominictarr>but, I want file hashes to make a file replication thing,
11:05:28  <dominictarr>ala dropbox, distributed deployment, etc
11:08:17  <dominictarr>substack: exterminate feels way smoother than iTerm2 (recommend best term for mac)
11:08:52  <substack>not sure why that is
11:09:08  <substack>exterminate is just some hacky thing
11:09:14  <dominictarr>maybe because chrome is so optimized
11:09:25  <substack>highly possible
11:09:36  <substack>optimized for hacky apps
11:10:04  <dominictarr>it just feels that the characters turn up on screen faster after i press them
11:10:20  <dominictarr>purely subjectively
11:10:46  <substack>it seems the same as gnome-terminal here
11:11:04  * mikolalysenkojoined
11:11:23  <substack>I should probably hack up the inline html part now
11:11:38  <substack>I want to use that for the talk I'll give in LA on thursday
11:11:49  <dominictarr>what is the talk on?
11:11:58  <substack>browserify v2 and you (nix)
11:12:27  * spion_changed nick to spion
11:13:05  <dominictarr>ta
11:13:06  <dominictarr>ha
11:15:01  <substack>hah I have an idea for how to query the window size too
11:15:15  <substack>there is a way to query the cursor position
11:15:18  <substack>using ansi codes
11:15:39  <substack>and a cursor position stack
11:16:30  * jibayjoined
11:17:04  <substack>oh I guess the problem is actually how to tell bash what the geometry is
11:26:06  * jcrugzzjoined
11:29:19  * mikolalysenkoquit (Ping timeout: 264 seconds)
11:45:29  * defunctzombie_zzchanged nick to defunctzombie
11:46:00  * AvianFlujoined
11:46:05  * ins0mniaquit (Ping timeout: 246 seconds)
12:23:01  <juliangruber>substack: playing tetris in exterminate :O
12:42:18  <substack>published 0.4.0
12:42:36  <substack>you can now render html inline with `exterminate render file.html`
12:46:41  <dominictarr>from within the current exterminate?
12:51:11  * fallsemojoined
13:01:06  <dominictarr>substack: jesusabdullah is there a name for a haskell (or something function) that turns fun([1, 2, 3, 4, 5, 6], 3) ==> [[1,2,3], [4,5,6]] ?
13:02:11  * thl0quit (Remote host closed the connection)
13:06:37  * timoxleyjoined
13:11:45  * ins0mniajoined
13:13:40  * AvianFluquit (Read error: Connection reset by peer)
13:14:15  * AvianFlujoined
13:15:29  * FireFlyisn't aware of a name for that function
13:15:41  * spionquit (Ping timeout: 246 seconds)
13:15:53  <FireFly>I'd probably name it `splitEvery` or something
13:18:00  * Domenic_joined
13:26:21  * yorickjoined
13:26:42  * mikealquit (Quit: Leaving.)
13:33:20  * tmcwjoined
13:34:24  <dominictarr>FireFly: ended up calling it `group`
13:36:27  * thl0joined
13:54:07  * timoxleyquit (Quit: Computer has gone to sleep.)
13:57:12  * Domenic_quit (Ping timeout: 264 seconds)
14:14:35  * ins0mniaquit (Ping timeout: 245 seconds)
14:23:33  * Domenic_joined
14:29:00  * AvianFluquit (Read error: Connection reset by peer)
14:29:33  * AvianFlujoined
14:32:41  * AvianFluquit (Read error: Connection reset by peer)
14:33:18  * AvianFlujoined
14:34:15  * marcello3djoined
14:37:49  * timoxleyjoined
14:42:24  * spionjoined
14:51:40  <defunctzombie>substack: for browserify transforms, if I specify a transform for the bundle, it seems that it is not applied to subsequent modules only to my local files
14:52:05  <defunctzombie>substack: I would have expected any transform I specify on a bundle to apply to all files in the bundle (including any modules)
14:52:09  <defunctzombie>marcello3d: ^
15:03:43  <marcello3d>substack: alternatively, if there was a clean way to get a list of all the filenames bundled in a bundle without having to call browserify.deps separately (which requires a bunch of duplicate code from browserify.bundle to build the opts parameter, and repeats all the work)
15:34:38  * CryptoQuickjoined
15:43:37  * CryptoQuickquit (Ping timeout: 240 seconds)
15:43:37  * mikealjoined
15:47:31  * mikealquit (Client Quit)
15:51:39  * CryptoQuickjoined
15:57:54  <marcello3d>(my solution: monkeypatch browserify.deps)
16:02:50  * mikealjoined
16:04:35  * ins0mniajoined
16:12:14  * sorensenquit (Quit: Bye!)
16:12:15  * sorensen_changed nick to sorensen
16:16:14  * jcrugzzquit (Ping timeout: 245 seconds)
16:35:10  * mikealquit (Quit: Leaving.)
16:41:25  * marcello3dquit (Remote host closed the connection)
16:41:59  * marcello3djoined
16:42:53  * dguttmanjoined
16:46:23  * marcello3dquit (Ping timeout: 245 seconds)
16:57:49  * shamajoined
17:05:24  * kenperkinsquit (Quit: Textual IRC Client: http://www.textualapp.com/)
17:06:09  * kenperkinsjoined
17:06:36  <dominictarr>hij1nx: yo, when do you arrive in dublin?
17:09:47  * mikealjoined
17:12:42  * thl0quit (Remote host closed the connection)
17:16:29  * marcello3djoined
17:17:06  * dguttmanquit (Quit: dguttman)
17:17:47  * thl0joined
17:20:25  <Raynos>dominictarr: https://github.com/Colingo/split-every
17:20:30  * thl0quit (Remote host closed the connection)
17:21:37  * marcello3dquit (Remote host closed the connection)
17:22:34  <dominictarr>Raynos: https://github.com/dominictarr/pull-stream/blob/master/throughs.js#L108-L135
17:23:05  <dominictarr>MAKING EVERYTHING STREAMS AGAIN
17:23:05  <LOUDBOT>IT'S LIKE THERE IS THIS INTELLIGENT DESIGN
17:23:16  <dominictarr>AND IT'S CALLED STREAMS
17:23:17  <LOUDBOT>MY SPECTRUMS, LET ME SHOW YOU THEM
17:23:17  * dguttmanjoined
17:27:43  <dominictarr>Raynos: I'm totally going into stream everything mode again, pull-streams are simple enough that they great for even simple stuff!
17:27:47  * thl0joined
17:27:51  * thl0quit (Read error: Connection reset by peer)
17:28:22  * thl0joined
17:28:31  * thl0quit (Remote host closed the connection)
17:28:38  * thl0_joined
17:31:15  * dguttmanquit (Quit: dguttman)
17:33:40  * Domenic_quit (Remote host closed the connection)
17:35:05  <mbalho>Raynos: ooh did you see https://hacks.mozilla.org/2013/03/webrtc-data-channels-for-great-multiplayer/
17:35:40  * shuaibjoined
17:43:09  * marcello3djoined
17:47:56  <Raynos>mbalho: nope but its badass
17:54:02  * mikealquit (Quit: Leaving.)
17:59:41  * dguttmanjoined
18:00:16  * Domenic_joined
18:03:02  * spionquit (Ping timeout: 246 seconds)
18:08:29  <jjjjohnnny>whoa
18:22:12  * dominictarrquit (Quit: dominictarr)
18:23:33  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
18:24:45  * thl0_quit (Read error: Connection reset by peer)
18:24:49  * Domenic_quit (Read error: Connection reset by peer)
18:25:37  * Domenic_joined
18:25:43  * thl0joined
18:37:41  * tanepiperquit (Ping timeout: 246 seconds)
18:38:37  <jjjjohnnny>THE SUPERKNOB COMETH
18:38:37  <LOUDBOT>WELL STRETCH OUT MY ASSHOLE AND CALL ME DHOSS
18:40:36  <hij1nx>dominictarr: i leave here tomorrow night, red-eye to dublin arriving at 9am
18:42:19  * tanepiperjoined
18:46:26  * tanepiperquit (Ping timeout: 246 seconds)
18:46:47  * tanepiperjoined
18:49:34  * mikolalysenkojoined
18:56:15  * shuaibjoined
19:08:23  * shamaquit (Remote host closed the connection)
19:18:45  * fotoveritejoined
19:19:09  * mikolalysenkoquit (Ping timeout: 245 seconds)
19:23:09  * jcrugzzjoined
19:24:18  * marcello3dquit (Ping timeout: 245 seconds)
19:39:30  * marcello3djoined
19:44:36  * spionjoined
19:55:46  * tilgovijoined
19:58:46  * ralphtheninjaquit (Ping timeout: 245 seconds)
20:00:28  * ralphtheninjajoined
20:05:27  * robertjd_quit (Ping timeout: 245 seconds)
20:05:38  * niftylettucequit (Ping timeout: 272 seconds)
20:05:45  * ryanseddonquit (Ping timeout: 276 seconds)
20:05:52  * ehdquit (Ping timeout: 245 seconds)
20:05:53  * gozalaquit (Ping timeout: 248 seconds)
20:06:20  * sveisveiquit (Ping timeout: 255 seconds)
20:06:36  * notalexgordon_quit (Ping timeout: 240 seconds)
20:06:41  * Raynosquit (Ping timeout: 252 seconds)
20:08:08  * jez0990quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
20:18:18  * ralphtheninjaquit (Ping timeout: 272 seconds)
20:18:48  * ralphtheninjajoined
20:29:22  <juliangruber>defunctzombie: you didn't publish eve, right?
20:29:32  <defunctzombie>juliangruber: the event thing?
20:29:39  <defunctzombie>juliangruber: nope, cause the name was taken
20:29:41  <juliangruber>yup
20:29:42  <defunctzombie>juliangruber: need to rename
20:29:48  <defunctzombie>to dom-events or something
20:31:33  <jesusabdullah>eventz
20:31:35  <jesusabdullah>with a z
20:31:54  <defunctzombie>haha
20:34:19  <juliangruber>I installed it as a git dependency now
20:34:24  <juliangruber>eventz is nice though
20:34:54  <jesusabdullah>oh and drop the second e ;)
20:34:58  <jesusabdullah>evNtz
20:35:26  <juliangruber>my little cousin would really like that!
20:36:05  <defunctzombie>wow
20:45:44  * mmckeggjoined
20:54:28  * jan____quit (Changing host)
20:54:28  * jan____joined
20:55:20  * tilgoviquit (Remote host closed the connection)
21:01:32  * mikealjoined
21:03:06  <wolfeidau>mbalho: That webrtc stuff is going to rock for people working with data visualisations and stuff, being able to hack on models independent of a server will be awesome
21:03:14  * st_lukejoined
21:05:12  * duncanbeevers_quit (Remote host closed the connection)
21:05:13  * owenbquit (Remote host closed the connection)
21:05:13  * pikpikquit (Remote host closed the connection)
21:15:47  * timoxleyquit (Quit: ["Textual IRC Client: www.textualapp.com"])
21:18:49  * timoxleyjoined
21:20:24  * Raynosjoined
21:20:32  <Raynos>defunctzombie: https://github.com/Colingo/element
21:20:41  <Raynos>I made some performance fixes to Component/domify
21:20:50  <Raynos>im going to PR dom to use it
21:22:35  <defunctzombie>Raynos: https://github.com/shtylman/domify/commit/e09818213d23e21c4aeb974d9d171c5b80faa3fb
21:22:37  <defunctzombie>seen that?
21:22:51  <defunctzombie>I like the document fragment approach I think
21:22:58  <Raynos>oh
21:23:01  <defunctzombie>cause in most cases you don't want the array crap
21:23:04  <Raynos>the document fragment approach is a pain to acceh
21:23:30  <defunctzombie>and in the case where you do want an array, you can get that from the fragment
21:23:47  <Raynos>never mind
21:23:55  <Raynos>i agree that fragment is better
21:24:05  <Raynos>but it should return either Element or Fragment
21:24:24  <Raynos>defunctzombie: I did a similar thing with https://github.com/Raynos/fragment/blob/master/index.js
21:26:50  * ehdjoined
21:27:04  * notalexgordon_joined
21:27:23  * duncanbeevers_joined
21:27:31  * ryanseddonjoined
21:27:47  <Raynos>Ok fixing element
21:29:21  * owenbjoined
21:30:23  <Domenic_>oh interesting i was just coming here to ask about element
21:30:25  <Raynos>defunctzombie: tryme doesn't render document fragments because of stupid instanceof checks -.-
21:30:30  <Domenic_>i used/contributed to domify back in the day
21:30:47  <Raynos>Domenic_: The main addition is caching of strings to avoid touching innerHTML
21:30:56  <Domenic_>i think it was important for my use case that it be a single element
21:30:56  <Raynos>i just didnt bother to PR into domify because FUCK COMPONENT
21:31:02  * dominictarrjoined
21:31:19  * sveisveijoined
21:31:24  * Raynos_joined
21:31:29  <Domenic_>yeah i think i wanted it to throw for >1 element
21:32:52  <Raynos>defunctzombie: +1 for index http://tryme.jit.su/Colingo/element/examples/ !
21:32:52  <Domenic_>https://github.com/Colingo/element/commit/82ca5607ebd9fc5e4a01495f436cfe8137218ff1
21:33:11  <defunctzombie>nice
21:33:14  <Raynos>Domenic_: that's a pain
21:33:14  * pikpikjoined
21:33:24  * niftylettucejoined
21:33:42  <defunctzombie>this is why I just use doc fragment
21:33:54  <defunctzombie>doc fragement is great
21:34:00  <Domenic_>this was the biggest one https://github.com/Colingo/element/commit/1a1827de25bf3c45255531094cc2435fc48fcd26
21:34:01  <defunctzombie>cause it can be treated as a single element
21:34:11  <Domenic_>because then my app needed no wrapper div for its main widget
21:36:47  * robertjd_joined
21:37:05  <Raynos>defunctzombie: https://github.com/shtylman/tryme/pull/9
21:37:06  * jibayquit (Quit: Leaving)
21:37:27  <Raynos>Domenic_: body support is still there
21:38:31  * gozalajoined
21:40:04  <Domenic_>yeah the tests seem solid still
21:41:38  <Raynos_>defunctzombie: thanks :d
21:41:40  * Raynosquit (Quit: Page closed)
21:42:07  * Raynos_changed nick to Raynos
21:46:26  <Raynos>Domenic_: https://ci.testling.com/Colingo/element
21:46:31  <Raynos>the body thing fails in IE9
21:46:33  <Raynos>not sure why :(
21:46:33  * nicholas_quit (Remote host closed the connection)
21:48:02  * mikealquit (Quit: Leaving.)
21:48:53  * timoxleyquit (Quit: Computer has gone to sleep.)
21:49:06  <defunctzombie>Raynos: how is element different than domify?
21:49:12  * mikealjoined
21:49:33  <Raynos>defunctzombie: caching
21:49:44  <Raynos>it caches every html string and only uses innerHTML once
21:49:55  <defunctzombie>hm
21:50:06  <Domenic_>i needed it for ie10 so no worries for me :)
21:50:25  <Raynos>cloneNode(true) is way faster then innerHTML
21:50:38  <Domenic_>spurious failures in testling-ci are unfortunate
21:50:54  <defunctzombie>don't like the caching personally
21:51:09  <Raynos>man zuul is a dependency tree disaster
21:51:19  <defunctzombie>yea
21:51:20  <defunctzombie>https://github.com/Colingo/element/blob/master/index.js#L55
21:51:22  <Domenic_>substack: pkrumins: I think if a browser outputs nothing to the console, but the majority of browsers do, you should retry the empty-console browser once.
21:51:24  <defunctzombie>that else doesn't have to exist
21:51:24  <Raynos>defunctzombie: its a massive performance gain over triggering the browsers HTML parser a shit ton
21:51:30  <Raynos>its basically template pooling
21:51:41  <Raynos>it'll make typeahead a shit ton faster
21:51:44  <Raynos>which is why im doing this
21:51:45  <defunctzombie>yes, buy if someone does string building and calls elements
21:51:57  <defunctzombie>then you keep growing this cache
21:52:04  <defunctzombie>personally I don't like caching in lower level libs
21:52:09  <defunctzombie>too many assumptions are made
21:52:19  <defunctzombie>which turn out to be not what you want at some point
21:52:23  <Raynos>but thats how typeahead and I use it
21:52:34  * timoxleyjoined
21:52:38  <substack>Domenic_: we already retry 3 times
21:52:38  * dominictarrquit (Quit: dominictarr)
21:52:45  <defunctzombie>I would build any cache on top of this and not into this
21:52:56  <Raynos>this assumption works great if you call things with static tempalte strings
21:52:58  <substack>Domenic_: the problem is the sandbox launcher gets into a really inconsistent state and fails
21:53:05  <Raynos>defunctzombie: ok I want to optimize typeahead to avoid innerHTML usage
21:53:09  <Raynos>because it has static html strings
21:53:12  <Raynos>where should that be done?
21:53:21  <defunctzombie>which typeahead?
21:53:27  <Raynos>your one
21:53:34  * defunctzombiepulls up the code
21:53:46  <substack>long-running code is hard
21:53:54  <substack>short-running code is so much easier
21:54:04  <defunctzombie>Raynos: what innerHTML usage?
21:54:34  <defunctzombie>Raynos: do you have a perf problem currently?
21:54:34  <Raynos>defunctzombie: https://github.com/shtylman/typeahead/blob/master/typeahead.js#L26
21:54:39  <Raynos>that indirectly calls innerHTML
21:54:47  <defunctzombie>yea
21:54:50  <defunctzombie>that is on creation tho
21:54:54  <Raynos>yes
21:54:55  <defunctzombie>are you making a million of these?
21:54:57  <Raynos>so if I create
21:54:59  <Raynos>one typeahead
21:55:02  <Raynos>for every comment thread
21:55:06  <Raynos>on my forum / feed thing
21:55:11  <Raynos>then yeah
21:55:12  <Raynos>O(N)
21:55:31  <defunctzombie>document.createElement('ul').className = 'typeahead hidden' ;
21:55:31  <defunctzombie>done
21:55:35  <defunctzombie>can't be any faster
21:55:37  * timoxleyquit (Client Quit)
21:58:08  <defunctzombie>Raynos: I will take all sorts of improvements to that code
21:58:12  <defunctzombie>Raynos: it was ported from bootstrap
21:58:15  <Raynos>:P
21:58:18  <defunctzombie>and I didn't like some of it in the first place
21:58:22  * ralphtheninjaquit (Ping timeout: 272 seconds)
21:58:26  * ralphthe1injajoined
21:58:28  <defunctzombie>I just needed the component to be separate
21:58:32  <st_luke>does anyone use mercurial?
21:58:42  <defunctzombie>st_luke: no
22:00:02  <defunctzombie>st_luke: I used it at my old company
22:00:13  <defunctzombie>st_luke: I was not happy with it over git
22:00:17  <Raynos>defunctzombie: how the heck do you debug shit with zuul?
22:00:31  <defunctzombie>Raynos: debug what?
22:00:38  * wolfeidauquit (Remote host closed the connection)
22:00:47  <defunctzombie>Raynos: I only use zuul to run tests
22:00:51  <defunctzombie>Raynos: and look at console output
22:02:32  * shamajoined
22:05:27  * evboguejoined
22:09:09  <defunctzombie>Raynos: zuul was created cause mocha has some boilerplate for browser testing and no one had a tool yet, they just kepy copying the css and mocha.js around which is retarded
22:09:22  <Raynos>:D
22:09:34  <Raynos>aw man
22:09:52  <Raynos>its ok ill fix dom later maybe
22:11:01  <st_luke>defunctzombie: did you take zuul from ghostbusters
22:11:09  <substack>https://github.com/substack/node-browserify#bonfile-function-file-id-parent-
22:11:10  <defunctzombie>st_luke: yep
22:11:32  <defunctzombie>substack: nice
22:11:38  <defunctzombie>substack: do you expose the ready event too?
22:11:44  <defunctzombie>marcello3d: ^
22:12:02  <defunctzombie>substack: we use the file stuff to do watching in enchilada
22:12:14  <defunctzombie>substack: cause some bundles are too slow/large to rebundle on refresh only during development
22:12:21  <defunctzombie>substack: and it lets you do live reloading easier
22:12:28  <defunctzombie>substack: so this is a big help
22:12:41  <marcello3d>is that b.on('file') thing new or did I somehow miss it?
22:12:50  <defunctzombie>marcello3d: new
22:13:03  * defunctzombiethinks
22:13:05  <substack>ready event?
22:13:32  <substack>marcello3d: 5 minutes old
22:14:55  <defunctzombie>substack: I guess ready isn't that interesting since you can just get all those file events
22:15:08  <defunctzombie>substack: yea, the _ready thing which lets you know when the bundle has resolved iirc
22:15:23  <defunctzombie>or maybe that doesn't happen until later
22:15:39  <defunctzombie>probably not important
22:16:01  <substack>I can't imagine what use _ready would be externally
22:16:41  <defunctzombie>either can I right now :)
22:17:18  * wolfeidaujoined
22:17:23  <substack>I just want somebody to write watchify
22:17:36  <substack>that is exactly like how browserify --watch used to work
22:17:40  * gwenbelljoined
22:17:56  <defunctzombie>substack: we kinda have that in enchilada, maybe you can convince marcello3d to separate that out
22:18:10  <marcello3d>don't need watchify with enchilada
22:18:18  <defunctzombie>right
22:18:24  <defunctzombie>but you already know how to do it ;)
22:18:36  <marcello3d>not really, don't know how browserify cli works
22:18:44  <marcello3d>not going to learn it :)
22:18:46  <defunctzombie>haha
22:19:16  <substack>browserify filename.js > bundle.js
22:19:17  <substack>is how
22:19:24  <substack>there is nothing to learn
22:19:34  <substack>unless you start getting fancy
22:19:36  <marcello3d>yea, but if it's watching, that wouldn't work
22:19:50  <marcello3d>if I'm going to support browserify cli, I'd want to support the fancy options
22:21:00  <st_luke>http://actresseswithoutteeth.tumblr.com
22:21:05  * defunctzombiedoesn't believe if CLI watch mode because I don't believe in manual build steps
22:21:21  <defunctzombie>st_luke: KILL IT WITH FIRE
22:22:03  <marcello3d>I'm not trying to be a dick, I just would rather write less software than more
22:22:33  <defunctzombie>+1
22:22:52  * defunctzombiecan't wait until software writes itself
22:23:10  <marcello3d>trust me, you can
22:23:29  <marcello3d>that just opens up a whole new can of worms
22:23:59  <defunctzombie>haha
22:24:18  <substack>I'm just going to make a tiny patch to bin/cmd.js in browserify so that external modules can hackishly require() it to get the bundle object
22:24:20  * tmcwquit (Remote host closed the connection)
22:25:10  * AvianFluquit (Remote host closed the connection)
22:26:02  <defunctzombie>substack: how's that bitcoin doing?
22:26:13  <substack>~$8
22:26:42  <defunctzombie>haha
22:27:12  * thl0quit (Remote host closed the connection)
22:28:19  <st_luke>i thought they were way more than that now
22:29:30  * timoxleyjoined
22:29:45  <defunctzombie>st_luke: he has 0.1 BTC
22:30:09  <st_luke>not bad
22:30:12  <defunctzombie>so 9 USD
22:32:55  <st_luke>theres really no polite way to eat rice cakes in public
22:37:39  <defunctzombie>st_luke: you get a place yet for node philly?
22:37:50  <st_luke>defunctzombie: no when is that again
22:38:03  <defunctzombie>april at some point
22:38:06  <defunctzombie>end iirc
22:38:40  <st_luke>gotta do that
22:40:27  * Domenic_quit (Remote host closed the connection)
22:42:11  * tilgovijoined
22:43:45  * AvianFlujoined
22:57:53  <jesusabdullah>hello Mr. Flu
22:58:05  <mbalho>sup fluski
22:58:19  <jesusabdullah>AvianFlu: will you be on irc later tonight I wanna ask you things about stuff (waitpid)
22:58:32  <jesusabdullah>AvianFlu: but I'm driving rounde towne today
22:58:34  <AvianFlu>yeah most likely
22:58:37  <jesusabdullah>word
23:00:17  * marcello3dquit (Remote host closed the connection)
23:00:51  * marcello3djoined
23:03:03  <st_luke>taco conf 2013 shirt - http://cdn.shopify.com/s/files/1/0184/2380/products/barfm_1024x1024.jpg?909
23:04:53  * yorickquit (Remote host closed the connection)
23:05:27  * marcello3dquit (Ping timeout: 252 seconds)
23:06:36  * marcello3djoined
23:06:57  * marcello3dquit (Remote host closed the connection)
23:07:28  * marcello3djoined
23:12:54  * CryptoQuickquit (Ping timeout: 245 seconds)
23:13:09  * marcello3dquit (Ping timeout: 252 seconds)
23:17:39  <mbalho>lol
23:18:15  <jesusabdullah>hah, barf m
23:18:27  <jesusabdullah>haha, even better
23:19:05  * gwenbellquit (Quit: Computer has gone to sleep.)
23:20:25  * rvaggquit (Ping timeout: 256 seconds)
23:21:32  * dools_quit (Ping timeout: 256 seconds)
23:21:33  * jjjjohnnnyquit (Ping timeout: 256 seconds)
23:21:39  * jjjjohnnnyjoined
23:21:43  * doolsjoined
23:26:02  * rvaggjoined
23:29:16  * Raynos_joined
23:29:32  <Raynos_>Is there a streaming json formatter?
23:29:43  <Raynos_>I have 8MB of JSON and everyhting I use is choking on it -.-
23:37:36  * thl0joined
23:37:47  <Raynos_>Is there a useful thing for finding the byte size of something?
23:41:53  * thl0quit (Ping timeout: 240 seconds)
23:42:25  * mikealquit (Quit: Leaving.)
23:42:28  <st_luke>Raynos_: stat?
23:50:53  * Domenic_joined
23:54:01  * nk109joined
23:55:32  * Domenic_quit (Ping timeout: 272 seconds)
23:59:26  * Domenic_joined