00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:03  * mikealjoined
00:00:07  * ircretaryjoined
00:02:50  * thl0joined
00:04:58  <mikolalysenko>guybrush: If you spam the buttons faster than the frame rate, then it will miss them
00:05:32  <guybrush>right, though this might not be big problem actually
00:05:44  <mikolalysenko>I don't think it will be
00:06:00  <mikolalysenko>but I could maybe change it so that it buffers the next state of the input too
00:06:24  <mikolalysenko>like if you press a button and release it, then it will register for exactly one frame
00:06:41  <mikolalysenko>which now that I think about it is actually a pretty good way to do it...
00:06:58  <guybrush>i kind of had some problems with this actually
00:07:00  * sorensen_quit (Quit: sorensen_)
00:07:10  <guybrush>especially when frame-rate is unstable for some time
00:07:26  <guybrush>as its bound to raf
00:07:43  * thl0quit (Ping timeout: 264 seconds)
00:08:28  <guybrush>so i am listening for any input now, and push it onto a buffer with the tick in it
00:08:58  <guybrush>and every tick i look into the buffer and process all the controls for that tick
00:09:02  <mikolalysenko>well, the frame rate in that shell is not bound to raf
00:09:08  <mikolalysenko>it actually has two timers
00:09:18  <mikolalysenko>one which is an interval for tick, and the other which is raf
00:09:24  <guybrush>oh i misread then
00:09:31  <mikolalysenko>though the raf one drains pending ticks before rendering
00:09:39  <mikolalysenko>and the tick one is set to a fixed step
00:10:37  <guybrush>i think its better to use an accumulator instead of plain interval (since its not accurate at all)
00:11:41  <guybrush>oh wait you are doing that actually :D
00:11:53  <guybrush>sorry i should read/understand more before talking :p
00:12:48  <guybrush>haha mikolalysenko are you preparing for ludumdare? :)
00:12:53  <mikolalysenko>yes
00:12:58  <guybrush>nice
00:14:30  <guybrush>i read the rules, and it says code must be included, what if its multiplayer with serverside code?
00:14:46  <guybrush>you just host it and provide the code and thats ok isnt it?
00:14:51  <mikolalysenko>yep
00:15:03  <mikolalysenko>I did that last time anyway
00:15:08  <guybrush>ah ok
00:16:48  * pib1951quit (Remote host closed the connection)
00:18:47  * AvianFluquit (Remote host closed the connection)
00:43:53  * fallsemoquit (Quit: Leaving.)
00:44:08  * Benviequit (Ping timeout: 260 seconds)
00:46:16  * dominictarrquit (Quit: dominictarr)
00:52:36  * jxsonquit (Ping timeout: 276 seconds)
01:00:57  <mikolalysenko>hmm
01:01:23  <mikolalysenko>so maybe the right way to handle a key down is to have it return the amount of time that the key was pressed down
01:01:28  <mikolalysenko>as a scalar from 0 to 1
01:05:01  * ralphtheninjaquit (Ping timeout: 245 seconds)
01:10:59  <mikolalysenko>but doing this accurately in the browser seems very difficult, since the precision of Date.now() is not good enough
01:11:18  * tmcwjoined
01:20:33  * thl0joined
01:20:57  * jxsonjoined
01:21:26  * jibayquit (Remote host closed the connection)
01:22:57  * jxsonquit (Read error: Connection reset by peer)
01:23:37  * jxsonjoined
01:31:29  * jxsonquit (Remote host closed the connection)
01:33:07  * mikealquit (Quit: Leaving.)
01:46:26  * tmcwquit (Remote host closed the connection)
01:47:37  <guybrush>hm
01:48:36  <guybrush>right, but in the end all that matters is how much ticks elapse in your local game
01:48:48  <guybrush>not the exact nanoseconds time
01:48:49  * stagasquit (Read error: Connection reset by peer)
01:58:32  * dguttmanquit (Quit: dguttman)
01:59:37  * tphummeljoined
02:03:15  * mikealjoined
02:05:35  * thl0quit (Remote host closed the connection)
02:05:58  * wolfeidauquit (Remote host closed the connection)
02:12:05  * mikealquit (Ping timeout: 252 seconds)
02:16:51  <substack>"you can't take advantage of changes in the environment when you're planning"
02:18:40  * timoxleyjoined
02:24:32  * mikealjoined
02:26:42  <substack>http://www.youtube.com/watch?v=MMBclvY_EMA#t=22m55s
02:52:04  * kenperkinsjoined
02:59:09  * Benviejoined
03:00:27  * fallsemojoined
03:08:06  * Benviequit (Ping timeout: 256 seconds)
03:11:23  <chrisdickinson>mikolalysenko: when you're removing prefixes, are you shortening <alt-left> to 'left'?
03:12:03  <chrisdickinson>https://github.com/mikolalysenko/game-shell/blob/master/shell.js#L16-L26
03:12:42  <chrisdickinson>(meta-left and -right refer to their relative positions on the keyboard -- some browsers + os's report them as separate meta keys, some as one unified meta key)
03:18:49  * AvianFlujoined
03:28:32  * ITproquit (Ping timeout: 252 seconds)
03:32:55  * jcrugzzquit (Ping timeout: 246 seconds)
03:53:54  * _ddgbotjoined
03:54:52  * vitor-brjoined
04:12:10  * mikealquit (Quit: Leaving.)
04:25:24  * Benviejoined
04:26:59  * devaholicquit (Quit: Leaving)
04:29:05  <mikolalysenko>chrisdickinson: ah, I thought it was sending two different versions of the key command
04:29:21  <chrisdickinson>that's kind of what i figured after reading it
04:29:31  <chrisdickinson>but! nice work on that module!
04:31:21  <jesusabdullah>AvianFlu: I need to make a pit stop between here and Edinburgh to save money, wanna hang out in NYC in early May?
04:31:38  <jesusabdullah>AvianFlu: this would be RT so I'd be in NYC both before and after Scotland
04:31:57  <jesusabdullah>AvianFlu: hit me up, lemme know
04:32:04  <jesusabdullah>uhh, orite also
04:32:16  <jesusabdullah>tanepiper: is it still okay if I crash on your cough may 9th/10th?
04:32:19  <jesusabdullah>er
04:32:21  <jesusabdullah>tanepiper: couch I mean
04:32:27  <jesusabdullah>tanepiper: lemme know
04:37:33  <AvianFlu>jesusabdullah: DO EET
04:38:24  <jesusabdullah>fuck it's 1500 either way I do it
04:38:38  <jesusabdullah>but I'll still do it cause that would be sick
04:38:52  <jesusabdullah>oh, no, this saves me a few hundred bucks
04:38:53  <jesusabdullah>word
04:39:17  * mikolalysenkoquit (Ping timeout: 252 seconds)
04:42:29  * mikealjoined
04:44:28  * timoxleyquit (Quit: Computer has gone to sleep.)
04:46:26  <substack>https://www.youtube.com/watch?feature=player_embedded&v=FBXNDQuWLFI
04:46:29  <substack>LIVE
04:46:59  <substack>except I just ended it because something broke
04:49:50  * fallsemoquit (Quit: Leaving.)
04:50:38  <jesusabdullah>ohoho
04:50:46  <substack>technology is so crappy
04:50:49  <substack>where did it even go
04:56:46  <jesusabdullah>okay dudes I'm going to a bar to watch some musics
04:56:47  <jesusabdullah>bbl
05:05:37  * mikolalysenkojoined
05:12:37  * Guest89130changed nick to isaacs
05:15:57  * mikolalysenkoquit (Ping timeout: 252 seconds)
05:17:43  <substack>too many ghosts in the machine
05:18:26  * mikealquit (Read error: Connection reset by peer)
05:18:32  * mikeal1joined
05:21:34  * kenperkinsquit (Quit: Computer has gone to sleep.)
05:25:43  * kenperkinsjoined
05:27:20  * AvianFluquit (Remote host closed the connection)
05:30:52  * stlsaintquit (Ping timeout: 246 seconds)
05:31:03  * timoxleyjoined
05:31:07  * timoxleyquit (Client Quit)
05:35:44  * wolfeidaujoined
05:37:15  * kenperkinsquit (Quit: Computer has gone to sleep.)
05:44:14  * mikolalysenkojoined
05:53:37  * mikolalysenkoquit (Ping timeout: 246 seconds)
06:11:17  * defunctzombiechanged nick to defunctzombie_zz
06:19:46  * shamaquit (Remote host closed the connection)
06:21:55  * mikolalysenkojoined
06:32:17  * mikolalysenkoquit (Ping timeout: 255 seconds)
06:49:40  <rvagg>Raynos: did you ever get irisnpm up and running? I have an account but absolutely no idea what to do next to get it working
06:59:43  * fotoveritequit (Ping timeout: 245 seconds)
07:00:33  * mikolalysenkojoined
07:01:58  * wolfeidauquit (Remote host closed the connection)
07:12:24  * mikolalysenkoquit (Ping timeout: 257 seconds)
07:21:33  <Raynos>rvagg: I never got contacted with anyone
07:39:50  * mikolalysenkojoined
07:44:27  <rvagg>Raynos: shame, I tried too back when I set it up but couldn't get a response
07:47:19  * tphummelquit (Quit: tphummel)
07:50:10  * mikolalysenkoquit (Ping timeout: 246 seconds)
07:53:27  <juliangruber>is this an antipattern? https://github.com/juliangruber/jsp
08:10:44  * nicholasfjoined
08:18:38  * mikolalysenkojoined
08:23:35  * stagasjoined
08:30:51  * mikolalysenkoquit (Ping timeout: 276 seconds)
08:54:28  * jibayjoined
08:57:28  * mikolalysenkojoined
09:01:38  * dominictarrjoined
09:08:34  * ITprojoined
09:08:59  * mikolalysenkoquit (Ping timeout: 252 seconds)
09:16:37  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
09:16:37  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
09:28:03  * ralphtheninjajoined
09:29:11  * ralphtheninjaquit (Client Quit)
09:29:23  * ralphtheninjajoined
09:35:42  * mikolalysenkojoined
09:43:59  * spionjoined
09:46:35  * ITproquit (Ping timeout: 256 seconds)
09:49:39  * mikolalysenkoquit (Ping timeout: 256 seconds)
10:04:46  * ITprojoined
10:04:56  * ITproquit (Client Quit)
10:17:15  * thl0joined
10:17:23  * mikolalysenkojoined
10:22:01  * ralphtheninjaquit (Remote host closed the connection)
10:27:41  * fotoveritejoined
10:28:11  * mikolalysenkoquit (Ping timeout: 256 seconds)
10:29:37  * ralphtheninjajoined
10:38:39  * ryanseddonquit (Ping timeout: 258 seconds)
10:38:39  * Domenic_quit (Ping timeout: 258 seconds)
10:38:45  * Domenic_joined
10:46:01  * dominictarrquit (Read error: Connection reset by peer)
10:47:45  * dominictarrjoined
10:56:24  * mikolalysenkojoined
10:59:50  * yorickjoined
11:01:35  <tanepiper>jesusabdullah: shit sorry forgot to get back. No go I'm afraid - my wife has already made plans since I'll be out for most of that time, she's invited friends over - and they are crashing
11:07:47  * mikolalysenkoquit (Ping timeout: 252 seconds)
11:08:41  * wolfeidaujoined
11:09:22  * stlsaintjoined
11:09:22  * stlsaintquit (Changing host)
11:09:22  * stlsaintjoined
11:11:05  * mikolalysenkojoined
11:16:02  * mikolalysenkoquit (Ping timeout: 252 seconds)
11:18:04  * timoxleyjoined
11:29:33  * stagasquit (Read error: Connection reset by peer)
11:30:34  * jibayquit (Quit: Leaving)
11:39:08  * nicholasfquit (Ping timeout: 252 seconds)
11:45:01  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 6)
12:26:21  * defunctzombie_zzchanged nick to defunctzombie
12:37:40  * ryanseddonjoined
12:59:57  * thl0quit (Remote host closed the connection)
13:00:26  * thl0joined
13:00:34  * fotoveritequit (Quit: fotoverite)
13:00:56  * fotoveritejoined
13:09:35  * fallsemojoined
13:10:42  * kenperkinsjoined
13:15:06  * thl0quit (Remote host closed the connection)
13:20:44  * AvianFlujoined
13:26:24  * ins0mniajoined
13:31:54  * mikeal1quit (Quit: Leaving.)
13:52:31  * thl0joined
13:53:28  * tmcwjoined
14:04:37  * Domenic__joined
14:30:48  * kenperkinsquit (Quit: Computer has gone to sleep.)
14:37:37  * timoxleyquit (Quit: Computer has gone to sleep.)
14:39:35  * ins0mniaquit (Ping timeout: 245 seconds)
15:05:43  * sorensen_joined
15:05:47  * sorensen_quit (Client Quit)
15:08:31  * ins0mniajoined
15:17:57  * ins0mniaquit (Ping timeout: 248 seconds)
15:18:29  * Benviequit (Ping timeout: 248 seconds)
15:26:51  * Domenic__quit (Read error: Connection reset by peer)
15:27:08  * thl0quit (Read error: Connection reset by peer)
15:27:22  * Domenic__joined
15:27:44  * Benviejoined
15:27:52  * thl0joined
15:49:37  * dguttmanjoined
16:01:17  * jcrugzzjoined
16:11:45  * jibayjoined
16:26:40  * mikealjoined
16:38:08  * jlord_joined
16:43:17  * mikealquit (Quit: Leaving.)
16:59:11  * stlsaintquit (Ping timeout: 256 seconds)
17:05:44  * timoxleyjoined
17:13:25  * mikealjoined
17:14:09  * ins0mniajoined
17:20:03  * stagasjoined
17:23:18  * jxsonjoined
17:25:57  * defunctzombiechanged nick to defunctzombie_zz
17:48:43  * shamajoined
17:50:08  * fallsemoquit (Quit: Leaving.)
18:02:32  * fallsemojoined
18:08:22  * jibayquit (Quit: Leaving)
18:08:48  * st_lukejoined
18:09:52  <st_luke>i found some empirejs stickers in my apartment if anyone wants one, mailing them out: https://docs.google.com/forms/d/1ilug6Ae0gjk6DL1AsLpjVT6YxREfbQLmsuMoMNfYlcI/viewform
18:18:01  * mikolalysenkojoined
18:20:46  <jesusabdullah>st_luke: it sounds like I'll be making a pit stop in NYC on my way to/from dublin, I should get a sticker from you while I'm there
18:21:31  * tphummeljoined
18:23:21  * mikealquit (Quit: Leaving.)
18:26:56  <st_luke>jesusabdullah: nice
18:27:11  <st_luke>for how long
18:27:13  <st_luke>?
18:28:20  * fallsemoquit (Read error: Connection reset by peer)
18:28:39  * fallsemojoined
18:31:28  * fallsemoquit (Read error: No route to host)
18:31:41  * timoxleyquit (Ping timeout: 245 seconds)
18:32:59  * fallsemojoined
18:38:27  <jesusabdullah>st_luke: haven't bought tickets yet but I figure maybe a week on the way back? :D
18:38:28  * fallsemoquit (Read error: Connection reset by peer)
18:39:08  * fallsemojoined
18:44:52  * fallsemoquit (Read error: Connection reset by peer)
18:48:13  * jcrugzzquit (Ping timeout: 240 seconds)
18:49:02  * fallsemojoined
18:59:25  * AvianFluquit (Remote host closed the connection)
19:03:53  * jibayjoined
19:10:01  <st_luke>jesusabdullah: where are you staying?
19:11:21  * defunctzombie_zzchanged nick to defunctzombie
19:14:40  * no9joined
19:14:52  <dominictarr>ins0mnia: hey, I'm thinking about making a breaking change to observable
19:15:04  <dominictarr>what if v(function (val) {…})
19:15:16  <dominictarr>called the listener immediately with the current value?
19:21:15  <ins0mnia>dominictarr: sorry was afk, what advantage does this have?
19:21:53  <jesusabdullah>st_luke: charlie m's couch
19:21:56  <ins0mnia>if I remember correctly
19:22:08  <jesusabdullah>st_luke: I think he's in Astoria? Somewhere in Queens anyway
19:22:16  <dominictarr>just that you don't have to always do `function onChange (){…}; v(onChange); onChange(v())`
19:22:21  <dominictarr>all the time
19:22:26  <dominictarr>instead, you can just do
19:22:32  <st_luke>jesusabdullah: yeah queens is cool, i dont think i have ever been there though
19:22:33  <dominictarr>v(function (val) {…})
19:22:39  <jesusabdullah>st_luke: lol really?
19:22:47  <jesusabdullah>st_luke: goal: visit all five boroughs
19:22:52  <jesusabdullah>st_luke: even staten island
19:22:56  <ins0mnia>ah right
19:23:03  <st_luke>jesusabdullah: ive been there in grand theft auto it wasnt too interesting
19:23:29  <dominictarr>jesusabdullah: new york in just like tv, anyway.
19:23:33  <FireFly>That was my goal when I went to NY too :|
19:23:50  <jesusabdullah>ahaha
19:23:56  <FireFly>Unfortunately I managed to time my visit with Sandy rather well
19:24:05  <jesusabdullah>st_luke: I tried to ask ana which tv show nyc was most like, she said it was like all of them :(
19:24:18  <dominictarr>except friends
19:24:21  <jesusabdullah>as long as I don't run into some "rumble in the bronx" type shit
19:25:09  <st_luke>jesusabdullah: nyc is pretty safe
19:25:21  <dominictarr>since the lead levels dropped
19:25:28  <ins0mnia>dominictarr: the only thing I could think of is that different elements could have different "change" events
19:25:42  <st_luke>when i lived upstate in albany i got held up by knifepoint once, but ive never really felt like that would happen anywhere since living in nyc
19:25:56  <dominictarr>ins0mnia: what change events?
19:26:23  <ins0mnia>dominictarr: you wrote "just that you don't have to always do `function onChange (){…}; v(onChange); onChange(v())`"
19:26:31  <dominictarr>oh, right
19:26:43  <dominictarr>well, an observable is only ever one event
19:26:53  <dominictarr>it's just one value.
19:27:05  <ins0mnia>right
19:27:06  <jesusabdullah>st_luke: after o-town it's gonna take a bit to phase me
19:27:15  <st_luke>oh thats right
19:27:25  <jesusabdullah>all I was saying was
19:27:31  * no9quit (Ping timeout: 264 seconds)
19:27:34  <jesusabdullah>no way can I beat up a bunch of bad guys in suits with a ladder
19:29:56  * AvianFlujoined
19:32:28  <dominictarr>ins0mnia: I'm gonna just try it with calling back instantly, and see if it's easier
19:33:49  <dominictarr>ins0mnia: should move all the observable dom stuff into a separate module too
19:34:12  <ins0mnia>dominictarr: Yes 100% agree on this one
19:34:18  <ins0mnia>dominictarr: it feels wrong to have them there
19:36:55  <dominictarr>ins0mnia: also check out this
19:36:56  <dominictarr>https://github.com/dominictarr/dom-vector
19:37:03  <dominictarr>it's not finished/ready
19:37:33  <dominictarr>but it's for treating all the things in the dom that are points or boxes
19:37:39  <dominictarr>AS points and boxes
19:37:49  <dominictarr>with a consistent api
19:38:11  <dominictarr>so, the screen, any element, the mouse, etc, etc
19:38:26  <ins0mnia>ahh cool
19:38:27  <dominictarr>can all be treated as the same point type
19:38:48  <ins0mnia>this is cool
19:39:03  <dominictarr>instead of client{X,Y} getBoundingClientRect, and all that nonsense that doesn't make sense
19:39:55  <ins0mnia>reminds me a bit of this new "scripting" language what is it called..
19:39:59  <ins0mnia>forgot it's name
19:40:16  <ins0mnia>Raynos started working on a repo called graphics which is a port of that
19:40:33  <ins0mnia>(too many modules to remember)
19:40:37  <chrisdickinson>frp / fran?
19:40:54  <ins0mnia>no not that
19:40:58  <ins0mnia>gonna look it up
19:41:25  * yorickquit (Read error: Connection reset by peer)
19:41:32  * yorickjoined
19:41:40  <ins0mnia>yeah this http://elm-lang.org/
19:42:08  <ins0mnia>elm also treats elements as points and boxes
19:42:32  <mbalho>webgl ui is the new hotness
19:43:09  <ins0mnia>dominictarr: but yeah this is a great approach
19:43:17  * no9joined
19:43:42  <dominictarr>ins0mnia: yeah, I mean - they ARE points, so call them by their true names.
19:44:03  <ins0mnia>exactly
19:44:03  <dominictarr>it's pretty insane that the DOM isn't like this in the first place
19:44:54  <ins0mnia>very true
19:45:07  <ins0mnia>it's instance DOM still exists!!
19:45:10  <ins0mnia>insane
19:46:05  <ins0mnia>mbalho: isn't webgl like a "heavy" thing?
19:46:31  <ins0mnia>to load, render etc
19:46:37  * yorickquit (Read error: Connection reset by peer)
19:46:41  <mbalho>depends
19:46:55  <mbalho>if its supported it means your computer has a graphics card that is meant to compute graphics
19:47:08  <mbalho>but lots of times graphics applications use a lot of CPU too
19:47:18  <ins0mnia>right
19:54:18  * jcrugzzjoined
19:59:15  * Domenic__quit (Remote host closed the connection)
20:00:41  * Domenic__joined
20:01:20  <juliangruber>minimal slides and code from a live-coding talk about writing distributed chats: https://github.com/juliangruber/distributed-chat
20:01:22  <jez0990>mbalho: what's your take on CSS3D? do you think there's a good enough coverage of libs for webgl/canvas textures to match/surpass its usefulness?
20:03:02  <mbalho>jez0990: good question, i think webgl allows for lower level design which is a strength in certain situations but sometimes you want an easy high level api
20:06:42  * yorickjoined
20:11:54  <dominictarr>juliangruber: where are you giving your talk?
20:17:13  * jcrugzz_joined
20:17:14  * jcrugzzquit (Ping timeout: 252 seconds)
20:21:58  * yorickquit (Ping timeout: 246 seconds)
20:22:38  * jcrugzz_changed nick to jcrugzz
20:23:17  * mikolalysenkoquit (Ping timeout: 252 seconds)
20:29:59  * yorickjoined
20:30:19  <jez0990>mbalho: have you seen http://www.mrdoob.com/lab/javascript/threejs/css3d/ before?
20:30:42  <jez0990>it's probably the main CSS3D-only use-case I'm interested
20:31:12  <jez0990>you could browse the web in voxel space - I guess like that Go game I mentioned a couple of months back
20:31:25  <jez0990>*interested in
20:34:18  * no9quit (Ping timeout: 276 seconds)
20:34:59  <jez0990>dominictarr: have the peerconf slides / videos been released anywhere?
20:38:01  <dominictarr>substack: nearform would like to commission a logo design from you!
20:38:56  <CoverSlide>holy cow, he's gone pro with his artistry skills
20:39:43  <substack>dominictarr: excellent!
20:42:14  * kenperkinsjoined
20:42:43  <dominictarr>substack: I'll send you an email about it shortly
20:42:54  * tmcwquit (Remote host closed the connection)
20:45:00  <dominictarr>juliangruber: what is your email?
20:46:32  * jez0990part ("http://quassel-irc.org - Chat comfortably. Anywhere.")
20:47:39  * tmcwjoined
20:52:59  * thl0quit (Remote host closed the connection)
20:53:07  * thl0joined
20:56:19  * no9joined
20:59:06  <st_luke>he did an awesome job on my LLC's logo - http://substack.net/images/ht_in_et.png
20:59:46  * spionquit (Ping timeout: 246 seconds)
21:02:58  * FireFlyquit (Quit: WeeChat 0.3.9.2)
21:05:56  <dominictarr>nice
21:17:14  * thl0_joined
21:20:31  <Raynos>-> https://mail.mozilla.org/pipermail/es-discuss/2013-April/029863.html
21:20:33  <Raynos>This is interesting
21:21:05  <Raynos>ins0mnia: Elm
21:27:53  * ITprojoined
21:34:15  * thl0quit (Remote host closed the connection)
21:47:11  * st_lukequit (Remote host closed the connection)
21:52:12  * kenperkinsquit (Quit: Computer has gone to sleep.)
21:54:47  * jez0990joined
21:56:25  * spionjoined
21:56:32  <Domenic_>Raynos: agreed.
21:57:22  <Raynos>Domenic_: the problem I have is it's not the w3c's purpose to make good APIs
21:57:30  <Domenic_>why wouldn't it be?
21:57:33  <Raynos>they should just make low level things and not care about sugar
21:57:38  <Raynos>because sugar is a waste of time
21:57:41  <Domenic_>the new guard wants to make APIs that don't suck
21:57:41  <Raynos>a) they'll get it wrong
21:57:54  <Raynos>b) why don't I have a web api to generate private/public key pairs yet
21:58:05  <Raynos>they should focus on making powerful low level apis
21:58:08  <Raynos>that do useful things
21:58:08  <Domenic_>is web crypto not good enough for that?
21:58:18  <Raynos>id have to double check
21:58:28  <Raynos>I just think no effort should be spend on sugar. userland is good at that
21:58:44  <Raynos>I want powerful primitives and I want them yesterday
21:58:49  <Raynos>I dont need futures yesterday
21:59:11  <Domenic_>lol futures are a powerful primitive
21:59:19  <Raynos>no they are not.
21:59:21  <Raynos>that's not a primitive
21:59:27  <Raynos>its an unnecessary abstraction
21:59:41  <Raynos>an async API to make real streaming http requests is a real primitive
22:00:00  <Raynos>an API to apply backpressure to a websocket is a real primitive
22:00:04  <dominictarr>Raynos: comepletely agree with what you are saying
22:00:17  <Domenic_>we're working on streams
22:00:22  <Domenic_>and not the event stream BS tab wants
22:00:29  <Domenic_>but real binary streams
22:00:32  <Raynos>an API for real frigging unicode & real binary data is a primtive
22:00:47  <Raynos>I want low level capabilities
22:00:51  <Domenic_>both are coming/already specced
22:00:51  <Raynos>not sugar.
22:00:56  <Raynos>In fact I want an API to leveldb
22:01:01  <Domenic_>binary data is already in browsers, not sure why you're so confused
22:01:12  <Domenic_>yeah becaues you like leveldb's sugar better than indexeddb, we went over this
22:01:14  <dominictarr>yeah, just a way to get a packet worth off a request
22:01:20  <Raynos>Domenic_: binary data is structs
22:01:24  <Raynos>Domenic_: lawl wut
22:01:31  <Raynos>i dont like leveldb's sugar more then indexeddb
22:01:34  <dominictarr>and apply backpressure
22:01:37  <Raynos>I like the fact that leveldb is not fucking complex
22:01:48  <Raynos>indexeddb is way too fucking complex.
22:01:52  <Raynos>leveldb is trivially simple.
22:01:59  <Domenic_>sure, whatever. you think that api is better than indexeddb, for reasons of asthetic "simplicity" judgements.
22:02:03  * nicholas_joined
22:02:14  <dominictarr>simplicity is not subjective
22:02:17  <Domenic_>leveldb is not very simple if you look at the implementation
22:02:21  <Raynos>Domenic_: http://leveldb.googlecode.com/svn/trunk/doc/index.html
22:02:41  <Domenic_>it makes tradeoffs and choices that are good for its use cases
22:02:43  <dominictarr>Domenic_: the implementation isn't important
22:02:45  <Raynos>open, get, put, del, batch & iterator
22:02:51  <Raynos>No fucking version upgrade needed events
22:03:19  <dominictarr>try fitting all the indexeddb methods in a tweet
22:03:31  <Domenic_>meh. the leveldb fanaticism in here is pretty off-putting. peace-out.
22:03:32  <Raynos>I want less high level bullshit
22:03:42  <Raynos>its a waste of time
22:03:54  * jcrugzz_joined
22:03:58  <Raynos>Domenic_: you have to appreciate that lots of small low level apis enables powerful composition and experimentation in userland
22:04:03  <dominictarr>Domenic_: the point is the it takes a community to come up with a good highlevel api
22:04:14  * jcrugzzquit (Ping timeout: 255 seconds)
22:04:40  <dominictarr>we just need access to low level things with no extras
22:05:27  <dominictarr>a committee could never have come up with jquery
22:07:20  <Raynos>https://twitter.com/Raynos/status/324645221407285249
22:08:36  <dominictarr>Domenic_: the very fact that we disagree about leveldb vs. indexeddb is great.
22:08:54  <dominictarr>only history can judge what is really the best api
22:09:31  <dominictarr>all we need is more capabilities
22:09:45  <no9>Bad time to ask about an sqlite mock I suppose :)
22:10:29  <no9>Anyway does anyone know of a resonable sqlite implementation in node?
22:10:31  <dominictarr>there is a node binding, I think
22:10:38  <jesusabdullah>yeah there is
22:10:45  <jesusabdullah>idk if it's *good* per se
22:10:54  <dominictarr>https://npmjs.org/package/sqlite
22:11:07  <no9>Sweet thanks dominictarr
22:11:21  <Raynos>Aw man
22:11:22  <dominictarr>yeah - rvagg says is much slower than it should be
22:11:30  <Raynos>I'm about to have a line seperated JSON file thats a few GBs
22:11:32  <Raynos>finally JSONStream
22:11:35  <Raynos>It is time to shine
22:11:42  <Raynos>#win
22:12:05  <no9>Don't care right now just need to be able to run some tests without a browser
22:12:08  <jesusabdullah>ololo
22:12:14  <jesusabdullah>@ raynos
22:12:26  <dominictarr>Raynos: if it's line separated you can just use split
22:12:34  <Raynos>oh :(
22:12:38  <Domenic_>guys make a list of missing primitives and we can try to make sure they're in progress or planned or whatever
22:12:49  <Domenic_>like this is the first place i heard about missing gzip and passed that along and there's some work toward it now
22:12:51  <dominictarr>which is more optimised because it uses low v8's regexp and JSON.parse
22:12:59  <Raynos>Domenic_: that's a good idea
22:13:24  <Raynos>I'll ask for access to leveldb
22:13:42  <Raynos>every browser should just embed leveldb. Problems solved.
22:13:44  <dominictarr>Domenic_: anything that is on here: http://nodejs.org/api/
22:14:10  <dominictarr>Raynos: that is probably not gonna float. we can just polyfil
22:14:19  <Domenic_>Raynos: that's no good, exactly as dominictarr says.
22:14:24  <Raynos>dominictarr: if we suggest leveldb should we suggest the leveldown API ?
22:14:33  <dominictarr>it's put our effort into new capabilities
22:14:36  <Domenic_>dominictarr: so, you want assert? (slightly trolling)
22:14:49  <Raynos>a standardized assert
22:14:57  <Raynos>would actually get rid of all troll test libraries
22:15:00  <Domenic_>man what happened to userland vs. core lol
22:15:01  * AvianFluquit (Ping timeout: 245 seconds)
22:15:33  <Raynos>everything that node needs to node is in core. Including assert
22:16:01  <Domenic_>yeah. but if you're seriously talking about missing primitives i have a hard time believing assert is one of them.
22:16:04  <Raynos>Domenic_: Would you like to make a case for it being equally bad that "assert" and "futures" are in core?
22:16:14  <Raynos>assert is not one of them
22:16:16  <Raynos>tcp is :D
22:16:25  <Domenic_>how's webtrc working for ya
22:16:30  <Raynos>webrtc
22:16:32  <Raynos>is horrible :(
22:16:38  <dominictarr>Domenic_: nothing that is pure js on that list needs to be there
22:16:42  <Raynos>not as bad as indexeddb though
22:16:46  <Domenic_>you think everything is horrible, so i have a hard time taking you seriously
22:16:48  <Raynos>webrtc is actually solving a hard problem
22:16:50  <dominictarr>just the io stuff
22:16:55  <dominictarr>and crypto
22:16:57  <Domenic_>or rather you think everything you didn't build is horrible
22:16:58  <dominictarr>and zip
22:17:06  <Raynos>Domenic_: Everything I build is horrible
22:17:21  <Raynos>I respect webrtc for being hard. Its real complexity, not "lets invent some complexity"
22:17:41  <Raynos>also there's nothing wrong with it being horrible
22:17:41  * jcrugzz_quit (Ping timeout: 252 seconds)
22:17:46  <Raynos>all low level apis are going to be horrible
22:17:54  <Raynos>leveldown is horrible. it segfaults if you look at it wrong
22:17:56  <Domenic_>so what tcp things do you need that webrtc doesn't have
22:17:59  * kenperkinsjoined
22:18:33  <dominictarr>well, the main thing is streaming "XHR"
22:18:37  <Raynos>tcp is about I want to make connections to arbitrary tcp servers without the web being like "dude you cant do that. that shit is insecure"
22:18:48  <Raynos>anyway I was trolling
22:18:50  <chrisdickinson>Domenic_: missing gzip or missing inflate?
22:18:50  <Domenic_>yeah streaming xhr is being actively worked on
22:18:55  <Raynos>I need to look into public/private key pairs though
22:19:03  <Raynos>that shit is important
22:19:07  <chrisdickinson>also i actually kind of figured out the inflate bit
22:19:08  <chrisdickinson>and it's not too bad
22:19:15  <Domenic_>chrisdickinson: oh interesting, how?
22:19:17  <Raynos>need a mechanism to generate and securely store private keys
22:19:23  <chrisdickinson>prepare to barf
22:19:26  <Domenic_>haha
22:19:47  <chrisdickinson>i nih'd it: https://gist.github.com/chrisdickinson/a5feecd1906b15638d50
22:20:38  <Domenic_>wow impressive
22:20:41  <chrisdickinson>puff.c gets 0.612ms for decompressing a 1.6mb file, this implementation gets 1.449s
22:21:46  <chrisdickinson>so the first one i wrote used a lot of callbacks -- since i couldn't be certain whether the next byte was available yet or not
22:21:52  <chrisdickinson>which failed because of recursion
22:22:11  <chrisdickinson>(and if you go the setImmediate/process.nextTick route performance suffers horribly)
22:22:13  <Domenic_>looks pretty LLJS-able and thus asm.js-able
22:22:28  <chrisdickinson>tried to get emscripten setup, did not succeed
22:22:34  <chrisdickinson>but i have to keep python 2.6 around for work reasons
22:22:36  <Domenic_>although i suppose you might as well emscripten a C impl yeah
22:22:58  <chrisdickinson>so there should be roughly zero allocations going on aside from creating arguments objects
22:23:21  <chrisdickinson>next plan is to take those "call" objects and turn them into normal variables to see if that helps at all
22:23:22  <dominictarr>chrisdickinson: is it inflate or inflate2?
22:23:41  <chrisdickinson>dominictarr: inflate was the one i showed you the other date, inflate2 is the new rewritten one
22:23:52  <chrisdickinson>s/date/day/g
22:24:01  <chrisdickinson>i'll be packaging it up tonight i think
22:25:25  <chrisdickinson>there are still a few places where inflate2 hits deoptimization according to the v8 profiler
22:25:34  <dominictarr>chrisdickinson: cool. I am so proud that it uses through.
22:25:37  <chrisdickinson>:D
22:25:41  <chrisdickinson>through makes life great
22:26:07  <dominictarr>am totally gonna show off your module next time I give a streams talk!
22:26:13  <chrisdickinson>awesome!
22:28:36  <Raynos>does anyone have a filtering through stream?
22:30:24  <dominictarr>through(function (data) if(test(data)) this.queue(data)})
22:30:27  <Raynos>https://gist.github.com/Raynos/fa934f471a8a895cd565
22:30:31  <Raynos>Yeah your right its 3 lines
22:31:27  * wolfeidauquit (Remote host closed the connection)
22:35:32  <Raynos>Ok I'm falling in love with through again ( https://gist.github.com/Raynos/f514fdfa8fe6f9525cc6 ).
22:36:16  * tmcwquit (Remote host closed the connection)
22:39:58  * ITproquit (Read error: No route to host)
22:44:20  * Domenic__quit (Remote host closed the connection)
22:44:41  * thl0joined
22:45:17  * jlordquit (Quit: Lost terminal)
22:45:57  * jlord_quit (Quit: Lost terminal)
22:46:51  * wolfeidaujoined
22:49:30  * thl0quit (Ping timeout: 276 seconds)
22:51:54  * jlordjoined
22:52:02  * jcrugzzjoined
22:54:58  * yorickquit (Remote host closed the connection)
22:57:17  * devaholicjoined
23:02:50  * Guest99380joined
23:03:48  * keslajoined
23:05:00  <dominictarr>wow, windows 3.1 running in the browser http://sigilmaster.com/
23:08:12  * kenperkinsquit (Quit: Computer has gone to sleep.)
23:19:25  * stagasquit (Ping timeout: 256 seconds)
23:21:04  <dominictarr>Raynos: there needs to be a simpler way to de register event listeners
23:21:24  <Raynos>I was thinking about https://gist.github.com/Raynos/ff5032d26649fb3e51dd
23:21:33  <dominictarr>like, say, I have reconnect + mux-demux, and then I'm listening on hashchange too
23:21:45  <dominictarr>and have created a bunch of streams
23:22:18  <dominictarr>Raynos: yup. was thinking the same
23:22:36  <Raynos>an event emitter is just an object with properties that are of type event
23:22:47  <dominictarr>kinda like domains, but for deregistering events
23:22:49  <Raynos>so event is just a special case of observable
23:23:19  <dominictarr>and may want to destroy streams, or dispose of scuttlebutts
23:24:09  <Raynos>?
23:24:30  <Raynos>why would an event do IO ?
23:24:50  <dominictarr>it's about cleaning up stuff I don't want anymore
23:24:51  <Raynos>btw what do you recommend for sub levels?
23:25:03  <dominictarr>in what context?
23:25:06  <Raynos>https://github.com/dominictarr/level-sublevel ?
23:25:21  <dominictarr>yes, use it!
23:25:31  <Raynos>i just want to have "collections" or "tables"
23:25:45  <dominictarr>right - I'm experimenting with some stuff
23:25:50  <dominictarr>lemme push it
23:27:04  <dominictarr>https://github.com/dominictarr/level-twitter-example
23:27:06  * tilgovijoined
23:27:20  * stagasjoined
23:27:26  <dominictarr>the api in use https://github.com/dominictarr/level-twitter-example/blob/master/twit-schema.js
23:27:37  <dominictarr>the implementation https://github.com/dominictarr/level-twitter-example/blob/master/schema.js
23:29:01  <Raynos>that stuff is complex :D
23:29:34  * AvianFlujoined
23:29:41  <dominictarr>nonsense!
23:29:56  <dominictarr>it just generates the keys for you
23:30:07  <Raynos>Does sublevel have to mutate the db ?
23:30:14  <dominictarr>else, just create a sublevel for each type of data
23:30:34  <dominictarr>the db object?
23:30:55  <Raynos>Do recursive calls to sublevel work?
23:31:07  <dominictarr>what do you mean?
23:31:16  <Raynos>db.sublevel("foo").sublevel("bar")
23:31:20  <dominictarr>yes!
23:31:31  <Raynos>thats ~foo~bar~ right?
23:31:43  <dominictarr>~foo~~bar~
23:33:40  <dominictarr>Raynos: it pretty much has to mutate the db to get atomic updates across different sublevels to work
23:34:37  <Raynos>blargh `OpenError: IO error: ~/leveldb/LOCK: No such file or directory`
23:34:53  <dominictarr>well, hmm, I had to change the api a bit to get all the sublevel ideas working well
23:35:15  <dominictarr>and wanted sublevel to be exactly the same api as levelup
23:35:39  <dominictarr>so anything you did to levelup would _just work_
23:39:26  <Raynos>I see
23:39:35  <Raynos>dominictarr: I think SubLevel may assume that the db is already open
23:39:47  <Raynos>actually that's not even it
23:39:57  <dominictarr>no, works fine
23:40:03  <Raynos>never mind false alarm :/
23:57:36  <dominictarr>Raynos: this is also just experimential, but this gives you remote access to sublevels https://github.com/juliangruber/multilevel/pull/8
23:58:54  <dominictarr>even if plugins have added extended their sublevels
23:59:12  * kenperkinsjoined
23:59:18  <dominictarr>(note: the sublevel does have to declare what they have added)
23:59:18  * kenperkinsquit (Client Quit)