00:00:08  * ircretaryjoined
00:01:37  * mcollinajoined
00:03:13  * st_luke_quit (Remote host closed the connection)
00:03:45  * yorickquit (Remote host closed the connection)
00:06:32  * mcollinaquit (Ping timeout: 268 seconds)
00:51:52  * defunctzombiechanged nick to defunctzombie_zz
01:06:43  * jcrugzzquit (Ping timeout: 276 seconds)
01:15:43  * mikolalysenkojoined
01:17:35  * fallsemoquit (Quit: Leaving.)
01:38:16  * fallsemojoined
01:42:32  * defunctzombie_zzchanged nick to defunctzombie
01:57:08  * Kesslerquit (Remote host closed the connection)
02:17:56  * defunctzombiechanged nick to defunctzombie_zz
03:07:45  * fotoveritequit (Quit: fotoverite)
03:20:20  * timoxleyjoined
03:28:02  * vitorpachecojoined
04:00:06  * fallsemoquit (Quit: Leaving.)
04:21:29  * jcrugzzjoined
04:29:51  * jcrugzzquit (Ping timeout: 268 seconds)
04:36:42  * thl0joined
04:41:13  * vitorpachecoquit (Ping timeout: 256 seconds)
04:45:46  <jesusabdullah>pbbbt
04:45:52  <jesusabdullah>long fucking day
04:46:01  <jesusabdullah>how did I get involved in politics again?
04:53:34  * mikolalysenkoquit (Ping timeout: 256 seconds)
05:35:44  * jcrugzzjoined
05:40:17  * jcrugzzquit (Ping timeout: 248 seconds)
05:59:24  * mikolalysenkojoined
06:04:25  * mikolalysenkoquit (Ping timeout: 276 seconds)
07:04:54  * fotoveritejoined
07:19:15  * defunctzombie_zzchanged nick to defunctzombie
07:36:34  * defunctzombiechanged nick to defunctzombie_zz
07:54:27  * thl0quit (Remote host closed the connection)
08:06:55  * shuaibquit (Ping timeout: 268 seconds)
08:08:20  * shuaibjoined
08:21:43  * mcollinajoined
08:55:56  * mcollinaquit (Remote host closed the connection)
09:15:29  * shuaibquit (Ping timeout: 246 seconds)
09:18:39  * shuaibjoined
09:28:07  * shuaibquit (Ping timeout: 264 seconds)
10:06:32  * mcollinajoined
10:10:54  * mcollinaquit (Ping timeout: 256 seconds)
10:18:04  * Domenic_quit (Quit: Connection closed for inactivity)
10:58:19  * yorickjoined
10:58:20  * timoxleyquit (Quit: Computer has gone to sleep.)
11:18:03  * jcrugzzjoined
11:44:59  * ins0mniajoined
12:20:39  * timoxleyjoined
12:51:31  * fotoveritequit (Ping timeout: 264 seconds)
13:58:52  * fallsemojoined
14:05:00  * defunctzombie_zzchanged nick to defunctzombie
14:13:05  * fallsemoquit (Quit: Leaving.)
14:24:19  * jcrugzzquit (Ping timeout: 268 seconds)
14:25:00  * crankquit (Read error: Operation timed out)
14:32:49  <defunctzombie>Raynos: https://github.com/Raynos/after/commit/8397d6fd5fb20852eb70fcf0ddd24361a2b8e394
14:32:55  <defunctzombie>Raynos: I disagree with the result stuff
14:33:02  <defunctzombie>what if there are multiple results
14:33:09  <defunctzombie>we talked about this a while back
14:34:37  <defunctzombie>Raynos: also, it will only capture the last result
14:34:47  <defunctzombie>this change sucks I htink
14:36:17  * mikolalysenkojoined
14:38:25  * Kesslerjoined
14:42:38  * fallsemojoined
14:57:20  * AvianFlujoined
15:21:48  * st_lukejoined
15:22:56  * crankjoined
15:30:47  * defunctzombiechanged nick to defunctzombie_zz
15:45:22  * st_lukequit (Read error: Connection reset by peer)
15:49:43  * jcrugzzjoined
15:59:29  * Kessler_joined
16:01:35  * Kesslerquit (Ping timeout: 240 seconds)
16:08:58  <mikolalysenko>ugh. so I just discovered that accessing methods defined using Object.defineProperty breaks v8's optimizer :(
16:09:14  <mikolalysenko>it bails out with "Unsupported syntax!"
16:09:34  <mikolalysenko>which means I have to rewrite ndarray again since the new version has properties...
16:10:29  * thl0joined
16:16:04  * thl0quit (Ping timeout: 276 seconds)
16:19:55  * jcrugzzquit (Ping timeout: 256 seconds)
16:28:16  * rannmannquit (Ping timeout: 268 seconds)
16:44:01  * rannmannjoined
16:44:59  * shuaibjoined
17:04:06  * jcrugzzjoined
17:18:53  * Kessler_quit (Ping timeout: 246 seconds)
17:20:38  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
17:24:55  * AvianFluquit (Read error: Connection reset by peer)
17:25:14  * rook2pawnjoined
17:25:31  * AvianFlujoined
17:57:13  * jcrugzz_joined
17:57:14  * jcrugzzquit (Read error: Connection reset by peer)
17:58:34  * yorickquit (Remote host closed the connection)
18:00:33  * fotoveritejoined
18:04:02  * st_lukejoined
18:22:37  * thl0joined
18:23:14  <jjjohnny>i thought all streams had ended and destroyed properties
18:23:47  <jjjohnny>mikolalysenko: any ideas for audio stream compression in JS?
18:25:52  <mikolalysenko>jjjohnny: depends on what you want to do with it I guess. you could write a realtime encoder I suppose, but not clear that it is a high priority
18:28:08  <jjjohnny>mikolalysenko: there is in the wild an ALAC decoder in JS, but no encoder
18:29:35  <mikolalysenko>yeah, the decoder makes sense because it is easier to implement and probably more useful for most applications
18:29:54  <jjjohnny>but do you know any EZ techniques de/compressing?
18:30:11  <mikolalysenko>well, decoding stuff is almost always much easier
18:30:14  <jjjohnny>like, could I use an FFT to get decent (30%) compression?
18:30:20  <mikolalysenko>fft doesn't compress stuff
18:30:38  <mikolalysenko>it changes it into a different basis
18:31:09  <jjjohnny>i thought perhaps the freq domain was smaller
18:31:12  <mikolalysenko>no
18:31:22  <jjjohnny>or couple be paired with an algorythm for making it so
18:31:25  <mikolalysenko>the frequency domain is the same size as the time domain
18:31:42  <mikolalysenko>the idea is that if a signal is sparse in the frequency domain you can throw out many coefficients
18:32:02  <mikolalysenko>the general idea behind most encoders is that you convert your signal into some basis where it is sparse, then throw out tinier coefficients
18:32:28  <mikolalysenko>what basis you pick is totally arbitrary, and it is usually selected based on heuristic/experimental stuff
18:32:49  <mikolalysenko>that is the simple way to do lossy compression anyway...
18:33:05  <mikolalysenko>there is a slower, but better and more sophisticated method based on compressed sensing
18:33:24  <mikolalysenko>the way that works is that you measure a projection of signal into a random uncorrelated low dimensional basis
18:33:48  <mikolalysenko>then you reconstruct an as-sparse-as-possible image of the signal in some arbitrary basis
18:34:11  <mikolalysenko>for compressed sensing encoding is trivial, but decoding requires solving large linear programs
18:34:32  <mikolalysenko>but it has the advantage that the same encoding is compatible with many possible choices of reconstruction bases
18:34:45  <mikolalysenko>and that the resulting signals are much smaller
18:35:02  <jjjohnny>does this differ much for a lossless style?
18:35:12  <mikolalysenko>lossless encoding is a totally different ball game
18:35:26  <mikolalysenko>and anyway once you encode a signal with a lossy compression you'd still do lossless encoding afterward
18:35:45  <mikolalysenko>there are really only two different algorithms for lossless encoding at the end of the day:
18:35:57  <mikolalysenko>1. entropy encoding (like huffman/arithmetic encoding)
18:36:10  <mikolalysenko>2. run length encoding (ie lzma style compression)
18:36:24  <mikolalysenko>the details make a big difference though
18:36:56  * thl0quit (Remote host closed the connection)
18:36:57  <mikolalysenko>in a normal video/audio codec you typically do a lossy compression to get them into a sparse basis
18:37:11  <mikolalysenko>then you post process with lzma/gzip/whatever
18:37:32  * thl0joined
18:37:37  <jjjohnny>would gzipping alone do any good, if I could do that in JS?
18:37:51  <mikolalysenko>probably some good, but it won't be earth shattering
18:38:00  <mikolalysenko>to get acceptable audio compression you need a lossy codec
18:38:20  <mikolalysenko>basically raw pcm data is the same as storing audio in wave files
18:38:35  <mikolalysenko>and even if you gzip them they will still be enormous
18:38:55  <jjjohnny>yeah im working with 32 bit, but probably gonna convert to 16 to stream up to the server
18:42:19  * thl0quit (Ping timeout: 276 seconds)
18:42:31  <jjjohnny>192 kbps is full 32 bit tho huh
18:43:21  <jjjohnny>the futute can stream 192 up and down all day so maybe I should go for that and to hell with compressions
18:43:26  <jjjohnny>future
18:44:16  <mikolalysenko>maybe, but there is nothing stopping you from doing some sort of real time compression
18:44:46  <mikolalysenko>as a dumb example, you could do a short time fourier transform and then just threshold the frequencies below some magnitude to 0
18:44:49  <mikolalysenko>and stream that
18:44:56  <mikolalysenko>that is basically how mp3 works
18:47:44  <mikolalysenko>they also use audio masking to selectively remove some frequencies
18:47:50  <mikolalysenko>http://en.wikipedia.org/wiki/Auditory_masking
18:48:43  <mikolalysenko>anyway, that is stuff like a black hole of crazy tweaks and heuristics and hacks
18:49:00  <mikolalysenko>and there is probably no ultimate answer to the best lossy audio compression algorithm
18:49:21  <jjjohnny>yeah i dont like lossy
18:49:25  <mikolalysenko>I'd probably just try to port something standard like ogg to js and see if you could that to work
18:49:28  <jjjohnny>and i like all the freqs
18:50:05  <jjjohnny>im writing socket connection and throughput testers as we speak
18:50:19  <jjjohnny>hopefully 32 or 16 bit streams will be doable
18:50:36  <jjjohnny>and tests shall bear that out client by client
18:51:01  <mikolalysenko>yeah. on a local network it should be fine
18:51:23  <mikolalysenko>you can get acceptable voip using netcat and /dev/microphone
18:51:54  <mikolalysenko>(I know this works because I used this technique to jerry rig a walkie talkie once on a long car ride, but that is another story)
18:52:24  <mikolalysenko>we had two vans and a wirless router set up
18:53:41  <jjjohnny>if onlyi t was all local
18:54:14  <jjjohnny>still may end up offering a downloadable nodejs proxy for my web app
18:54:56  <jjjohnny>for local features and enhancements
18:58:43  * ehdquit (Ping timeout: 264 seconds)
19:00:58  * fallsemoquit (Quit: Leaving.)
19:06:18  * ehdjoined
19:12:34  * missinglinkjoined
19:13:25  <jjjohnny>chrome still doesnt play wavs right https://developer.mozilla.org/en-US/demos/detail/simon-scats/launch
19:15:55  <jjjohnny>firefox will supports MPEG 4, H.264, MP3 and AAC on mobile, windows and FF OS
19:17:52  <jjjohnny>fuckit even the stream audience has to use html5
19:18:35  <jjjohnny>firefox gonna take a dip in usage when my appshit hits the streams
19:26:45  <jjjohnny>module.surgery
19:28:38  * heathquit (Read error: Connection reset by peer)
19:29:56  * heathjoined
19:33:40  * jcrugzz_quit (Ping timeout: 260 seconds)
19:53:42  * snojjoined
20:03:38  * clone1018changed nick to SammyTheShark
20:07:58  * SammyTheSharkchanged nick to clone1018
20:10:16  * mikolalysenkoquit (Ping timeout: 268 seconds)
20:15:34  * mikolalysenkojoined
20:19:26  * jibayjoined
20:34:14  * snojquit (Ping timeout: 256 seconds)
21:00:52  * calvinfoquit (Ping timeout: 256 seconds)
21:08:14  * yorickjoined
21:10:22  * mcollinajoined
21:11:08  <jez0990>mcollina: ping
21:11:16  <mcollina>hi jez0990
21:12:12  <mcollina>how are u?
21:12:33  <jez0990>hey, I'm good! yourself?
21:13:35  <jez0990>I'm just trying to do that "if" code... can you tell me where withArgs and yields come from in your test -> db.approximateSize .withArgs("pos::friend::", "pos::friend\xff") .yields(null, 10) ??
21:13:49  <mcollina>Fine ;). In Paris with my girlfriend
21:14:01  <mcollina>they come from sinon-chai
21:14:20  <mcollina>better, directly from sinon
21:14:36  <mcollina>at that point, db.approximateSize is a sinon spy
21:14:54  <jez0990>riight, another rabbit hole :D
21:15:00  <jez0990>thanks
21:17:15  <mcollina>jez0990: I got this with testling
21:17:26  <mcollina>$ testling
21:17:26  <mcollina>Error: ENOENT, open 'os'
21:18:00  <jez0990>yeah, you need to npm install git@github.com:jez0990/level-test.git
21:18:30  <jez0990>and within that you can npm install git@github.com:jez0990/level-js.git
21:18:52  <jez0990>I should've just put them in the package.json :P
21:18:56  <mcollina>Yep
21:19:05  <mcollina>do it :)
21:19:47  <mcollina>is there any other problem apart from approximateSize with level-js?
21:20:56  <jez0990>two of the tests: "a basic triple store with two triple inserted with the same predicate should remove one and still return the other" and "a basic triple store should del the triples using a stream" fail because things can't seem to delete from level-js
21:21:48  <jez0990>I haven't looked into that yet though, it may not be a problem with level-js at all
21:23:42  <mcollina>That's fine! All the JOIN stuff is passing right now?
21:24:16  <mcollina>(I'm offline for some time!)
21:26:27  * snojjoined
21:27:09  <jez0990>mcollina: using my level-js modifications only those two tests fail, but I'm trying to replicate exactly the same functionality in queryplanner.js using an if(window === undefined) and getting different results :/
21:28:08  <jez0990>I think the sinon.stub must be doing something magic, but I don't understand how that all works yet
21:33:36  * st_lukequit (Remote host closed the connection)
21:38:09  * missinglinkquit (Ping timeout: 248 seconds)
21:53:36  * snojquit (Ping timeout: 246 seconds)
22:00:50  <jesusabdullah>whoa, esri is publishing open source node stuff https://github.com/Esri/Terraformer
22:00:53  <jesusabdullah>very interesting
22:13:00  * missinglinkjoined
22:15:43  * mcollinaquit (Remote host closed the connection)
22:25:30  * yorickquit (Remote host closed the connection)
22:26:38  * calvinfojoined
22:28:23  <Raynos>defunctzombie: your still in SF?
22:31:25  * missinglinkquit (Ping timeout: 246 seconds)
22:33:47  <jjjohnny>I updated this to work in the browser https://github.com/NHQ/since-when
22:35:09  <jjjohnny>timering
23:05:20  * ins0mniaquit (Read error: Operation timed out)
23:10:59  * mcollinajoined
23:15:53  * mcollinaquit (Ping timeout: 268 seconds)
23:19:44  * fallsemojoined
23:45:19  * soldairjoined
23:47:14  * st_lukejoined
23:54:47  * st_lukequit (Remote host closed the connection)