00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:10  * ircretaryjoined
00:01:36  * sz0joined
00:13:34  * sz0quit (Ping timeout: 245 seconds)
00:14:44  * oncenullquit (Remote host closed the connection)
00:15:20  * oncenulljoined
00:16:16  * onc3nulljoined
00:16:17  * oncenullquit (Read error: Connection reset by peer)
00:18:06  * yoshuawuyts1quit (Ping timeout: 276 seconds)
00:19:40  * sz0joined
00:27:46  * thlorenzjoined
00:28:00  * anvakajoined
00:32:28  * thlorenzquit (Ping timeout: 265 seconds)
00:32:51  * anvakaquit (Ping timeout: 256 seconds)
00:58:52  * dguttmanquit (Quit: dguttman)
01:10:23  * onc3nullquit (Remote host closed the connection)
01:10:29  * thlorenzjoined
01:10:40  * oncenulljoined
01:11:00  * oncenullquit (Remote host closed the connection)
01:11:24  * oncenulljoined
01:13:12  * pfraze_joined
01:13:49  * yoshuawuyts1joined
01:14:04  * oncenullquit (Read error: Connection reset by peer)
01:16:10  * oncenulljoined
01:16:39  * jxson_joined
01:16:43  * oncenullquit (Remote host closed the connection)
01:17:03  * pfrazequit (Ping timeout: 256 seconds)
01:18:55  * yoshuawuyts1quit (Ping timeout: 264 seconds)
01:19:46  * jxsonquit (Ping timeout: 255 seconds)
01:21:17  * jxson_quit (Ping timeout: 265 seconds)
01:39:38  * dguttmanjoined
01:55:19  * dguttmanquit (Quit: dguttman)
02:26:21  * yoshuawuyts1joined
02:28:10  * reqsharkquit (Quit: Be back later ...)
02:28:55  * anvakajoined
02:31:11  * yoshuawuyts1quit (Ping timeout: 246 seconds)
02:33:36  * anvakaquit (Ping timeout: 258 seconds)
02:37:09  * dguttmanjoined
02:46:40  * dguttmanquit (Quit: dguttman)
03:01:30  * shamaquit (Remote host closed the connection)
03:02:19  * dguttmanjoined
03:03:07  * dguttmanquit (Client Quit)
03:07:33  * andrewdeandradequit (Ping timeout: 256 seconds)
03:28:56  * andrewdeandradejoined
03:33:19  * thlorenzquit (Remote host closed the connection)
03:36:00  * andrewdeandradequit (Remote host closed the connection)
03:36:10  * andrewdeandradejoined
03:49:44  * andrewdeandradequit (Remote host closed the connection)
03:49:51  * andrewdeandradejoined
03:56:55  * tilgoviquit (Ping timeout: 265 seconds)
04:01:14  * andrewdeandradequit (Ping timeout: 256 seconds)
04:14:02  * tilgovijoined
04:14:29  * domanicjoined
04:15:36  * yoshuawuyts1joined
04:19:18  * phatedquit (Remote host closed the connection)
04:20:10  * yoshuawuyts1quit (Ping timeout: 258 seconds)
04:25:52  * anvakajoined
04:33:11  * knownasilyaquit (Quit: Connection closed for inactivity)
04:33:54  * thlorenzjoined
04:39:12  * thlorenzquit (Ping timeout: 256 seconds)
05:06:41  * pfraze_quit (Remote host closed the connection)
05:15:19  * ir2ivps8quit (Remote host closed the connection)
05:17:07  * phatedjoined
05:17:14  * jjjohnny_joined
05:18:08  * ralphthe1injajoined
05:26:57  * ralphtheninjaquit (*.net *.split)
05:26:58  * jjjohnnyquit (*.net *.split)
05:35:36  * ir2ivps8joined
06:06:44  * jxsonjoined
06:08:43  * anvakaquit (Read error: No route to host)
06:09:07  * anvakajoined
06:10:19  * fotoveritequit (Quit: fotoverite)
06:16:55  * yoshuawuyts1joined
06:22:06  * yoshuawuyts1quit (Ping timeout: 276 seconds)
06:23:19  * thlorenzjoined
06:28:34  * thlorenzquit (Ping timeout: 256 seconds)
06:30:25  * phatedquit (Remote host closed the connection)
06:49:14  * yoshuawuyts1joined
06:50:40  * andrewdeandradejoined
06:57:25  * rhiaroquit (Ping timeout: 264 seconds)
07:00:12  * andrewdeandradequit (Remote host closed the connection)
07:00:26  * andrewdeandradejoined
07:07:14  * contrahaxquit (Quit: Sleeping)
07:15:03  * rhiarojoined
07:22:57  * andrewdeandradequit (Remote host closed the connection)
07:23:07  * andrewdeandradejoined
07:25:31  * andrewdeandradequit (Remote host closed the connection)
07:25:39  * andrewdeandradejoined
07:29:01  <guybrush>substack, maybe im doing something wrong but with keyboot "most of the time" the load-event of the iframe does not fire
07:29:44  <guybrush>is this a known problem maybe? im trying to figure out, will create an issue if i cant fix it
07:40:59  * phatedjoined
07:43:53  * peutetrejoined
07:45:38  * phatedquit (Ping timeout: 256 seconds)
07:45:39  * jxsonquit (Remote host closed the connection)
07:49:21  * yoshuawuyts1quit (Ping timeout: 240 seconds)
07:51:11  * andrewdeandradequit (Remote host closed the connection)
07:51:50  * andrewdeandradejoined
07:55:02  * andrewde`joined
07:57:23  * andrewdeandradequit (Remote host closed the connection)
08:02:11  <guybrush>so when i put the iframe.setAttribute into a requestAnimationFrame or process.nextTick it works all the time
08:03:56  * andrewde`quit (Remote host closed the connection)
08:04:04  * andrewde`joined
08:09:41  * andrewde`quit (Remote host closed the connection)
08:09:58  * andrewde`joined
08:12:25  * thlorenzjoined
08:16:55  * domanicquit (Ping timeout: 255 seconds)
08:17:19  * thlorenzquit (Ping timeout: 245 seconds)
08:17:32  * yoshuawuyts1joined
08:23:57  * andrewde`quit (Remote host closed the connection)
08:24:17  * andrewde`joined
08:27:21  * andrewde`quit (Remote host closed the connection)
08:59:59  * peutetre_joined
09:03:38  * peutetrequit (Ping timeout: 272 seconds)
09:19:26  <guybrush>ok this only works in chrome
09:19:39  <guybrush>in firefox it only works when i just call cb(iframe)
09:20:05  <guybrush>also i found a bug in page-bus i think
09:20:19  <guybrush>ff only
09:28:37  * tilgoviquit (Ping timeout: 264 seconds)
10:01:16  * thlorenzjoined
10:06:44  * thlorenzquit (Ping timeout: 256 seconds)
10:26:00  * null_radixquit (Ping timeout: 256 seconds)
10:26:05  * ngoldmanquit (Ping timeout: 252 seconds)
10:26:26  * joepie91___joined
10:26:26  * joepie91___quit (Changing host)
10:26:26  * joepie91___joined
10:26:27  * mafintoshquit (Ping timeout: 252 seconds)
10:26:42  * yoshuawuyts2joined
10:27:06  * gausbyquit (Ping timeout: 272 seconds)
10:27:17  * joepie91quit (Ping timeout: 256 seconds)
10:27:22  * rhiaro_joined
10:27:56  * yoshuawuyts1quit (Ping timeout: 265 seconds)
10:28:05  * rhiaroquit (Read error: Connection reset by peer)
10:28:48  * rom1504quit (Remote host closed the connection)
10:28:51  * gausbyjoined
10:29:01  * rom1504joined
10:29:05  * joepie91___quit (Excess Flood)
10:31:10  * joepie91___joined
10:31:10  * joepie91___quit (Changing host)
10:31:10  * joepie91___joined
10:32:56  * ngoldmanjoined
10:33:00  * yoshuawuyts2quit (Ping timeout: 276 seconds)
10:34:11  * mafintoshjoined
10:37:47  * rhiaro_changed nick to rhiaro
10:38:13  <guybrush>so i think the iframe issue is ah browser-bug
10:38:16  <guybrush>it works in canary
10:38:39  <guybrush>anyway i documented it here: https://github.com/substack/keyboot/issues/13
10:39:25  <guybrush>this is a game-stopper for firefox it seems: https://github.com/substack/page-bus/pull/1
10:57:23  <substack>merged
10:57:45  * null_radixjoined
10:58:03  <guybrush>also please push new version in hyperboot on keyboot.org with updated page-bus dependency :D
10:58:40  * yoshuawuyts2joined
10:59:00  <guybrush>im now finally back to working on my p2p-lobby for games thing WITH keyboot authentication
10:59:36  <substack>nice
10:59:39  * peutetre_quit (Quit: ...)
10:59:59  <guybrush>its proofofconcept anyway, but i hope to get people excited enough to push it further
11:03:47  <substack>it's up
11:03:52  * peutetrejoined
11:03:59  <substack>2.1.1 bb97767728059f13a356d8f3f951b23d417f164727f8ae232ce39e0735ae02ef
11:08:52  <guybrush>sweet the error is gone, but still the load event doesnt fire
11:09:19  <guybrush>though in chrome it works now all the time
11:09:51  <guybrush>but maybe im doing something wrong
11:13:27  <guybrush>anyway, im going to load games/apps via webtorrent i think
11:13:52  <guybrush>or maybe build on webtorrent but put it in idb too
11:14:22  <guybrush>also i will try to use signalhub for now
11:15:42  <substack>sounds pretty great
11:16:09  <guybrush>i am a crypto-noob, would it be valid to just tweet the fingerprint of the pubkey from keyboot to prove that im the twitter-user?
11:16:38  <guybrush>ah sure tweets dont have CORS enabled
11:16:49  <guybrush>but with gists it would work
11:17:22  <guybrush>ah i would have to publish a signed message
11:19:05  <guybrush>then when i connect to peers an pretend to be a github-user i would just send a link to the gist and the other peers can check via my public-key
11:19:35  <guybrush>users can just publish signed messages on their homepage too
11:20:01  <guybrush>like user.neocities.org/signedmessage.txt
11:21:14  <guybrush>it could even be like user.neocities.org/signedmessage{1-n}.txt for multiple keypairs on multiple browsers
11:30:39  <guybrush>ah of course neocities has no cors enabled
11:48:39  * toddselfjoined
11:49:26  * toddselfquit (Client Quit)
11:50:19  * thlorenzjoined
11:55:54  * thlorenzquit (Ping timeout: 265 seconds)
11:56:32  <guybrush>substack, would it be better to add a feature to keyboot.org, so users can store data in it (indexeddb) or would it be better to host my own hyperbooted keyboot for that?
11:57:29  <guybrush>basically i need a store for the apps, but i want to enable users to put the lobby into their website
11:59:34  <guybrush>but maybe i should just not store the apps on the client
11:59:47  <substack>whichever you like
12:00:06  <substack>but I think keyboot is better just storing keys
12:00:17  <substack>storing data should be a completely different service
12:00:26  <guybrush>right
12:00:46  <guybrush>but it would work exactly like keyboot :p
12:00:57  <substack>for data?
12:00:58  <guybrush>just with the extra-feature to store data
12:01:22  <guybrush>i.e. more than just keypairs
12:02:46  <guybrush>but really im not sure anymore
12:03:11  <guybrush>the only thing i get with this is, that people can embed the lobby/game into their website
12:04:54  <guybrush>well i think im thinking too much into things that are not necessary
12:10:37  * peutetrequit (Quit: ...)
12:11:15  <guybrush>ooooh after thinking a bit about it i see what you mean
12:11:34  <guybrush>keyboot has to be only keys and auth nothing else
12:11:51  <guybrush>so other services can depend on it, or rather allow the user to login with it
12:12:18  <guybrush>it shouldnt do anything else but auth
12:12:45  * peutetrejoined
12:12:47  <substack>yes
12:13:04  <guybrush>i see, now i need a service like keyboot but for data
12:13:19  <guybrush>where you can login with keyboot
12:14:42  <guybrush>and it will have to be bound to a domain
12:15:12  <guybrush>so i can use the same indexeddb everywhere and access it with page-bus
12:15:35  <substack>yes that would be very useful
12:16:00  <substack>might be useful: https://www.npmjs.com/package/idb-content-addressable-blob-store
12:16:13  <guybrush>ooh yes
12:17:10  <guybrush>the only thing i dont like with this is, that i have responsibility for hosting the domain
12:17:43  <guybrush>its not so bad since the user has a offline-version through hyperboot anyway
12:17:45  <guybrush>but still
12:18:19  <guybrush>who knows in 10 years i get merried and my wife forces me to shut down the domain :p
12:18:58  <guybrush>well it will do for a proofofconcept for now :D
12:31:48  <guybrush>i guess https://casboot.org would be the right name
12:32:03  <guybrush>for contentadressablestore
12:32:53  <guybrush>then my lobby-thing could depend on keyboot+casboot
12:34:36  <guybrush>and the lobby-thing could be hosted anywhere, but you would have to grant permissions to both services (key and cas)
13:00:44  <guybrush>so after thinking a while about it, having lots of services that do all 1 thing might not be so convenient/easy for users
13:01:14  <guybrush>wouldnt it be easier to have 1 thing where you can enable/disable features per domain?
13:02:27  <guybrush>rather then having to configure permissions for all the services separately
13:09:22  <guybrush>i guess the bad thing with this would be that it will end up like jfhbrook's hoarders :DD
13:17:40  * peutetrequit (Quit: ...)
13:30:51  <guybrush>substack, would i make a hardcoded chunksize?
13:30:55  <guybrush>for casboot
13:31:42  <guybrush>or just `var cb = casboot(url); cb.createWriteStream(); cb.createReadStream(); cb.exists(); cb.remove()`
13:32:01  <guybrush>after calling casboot(url) you have to grant permission just like keyboot
13:33:13  <guybrush>when permission is granted you just get a idb-content-addressable-blob-store through page-bus-rpc
13:33:18  * thlorenzjoined
13:33:48  <guybrush>well this is really to make haha
13:34:40  <guybrush>btw if anyone else wants the domain just tell me, i would host it but actually i would prefer someone else to host it :p
13:34:53  * peutetrejoined
13:35:14  <guybrush>but after thinking more about it, this would open a lot of possibilities for all sorts of apps
13:40:20  * peutetrequit (Quit: ...)
13:57:32  * peutetrejoined
14:05:10  * thlorenzquit (Remote host closed the connection)
14:06:48  * thlorenzjoined
14:08:45  * Jan____joined
14:11:43  * thlorenzquit (Ping timeout: 265 seconds)
14:45:55  <jjjohnny_>mikolalysenko: ndarray question
14:46:33  <jjjohnny_>i have an image, and I want to shift it to the left, and have the left part shifted off moved to the right side
14:47:25  <jjjohnny_>in array ops, i want to shift and push
14:52:22  * reqsharkjoined
14:56:35  <jjjohnny_>like ndarray-translate but the runoff wraps around
15:06:00  * thlorenzjoined
15:10:53  * thlorenzquit (Ping timeout: 250 seconds)
15:11:51  <guybrush>jjjohnny_, there is cwise, or you could use lo/hi and ndarray-ops.assign
15:13:32  <guybrush>i guess the simplest thing would be to take ndarray-translate code and modify it?
15:14:06  <jjjohnny_>guybrush: reading it
15:14:18  <jjjohnny_>translate + ops assign
15:14:24  <guybrush>right, its pretty fast
15:14:55  <jjjohnny_>a two step. translate both ways and copy
15:15:09  <guybrush>though typedarray.set() is a little bit faster, but most of time not worth it since you dont have a pretty api then
15:15:17  * pfrazejoined
15:15:30  <guybrush>and you drop out of the ndarray-ecosystem
15:16:06  <guybrush>and yeah cwise would be another option i guess
15:17:28  <jjjohnny_>cwise is for optimization?
15:18:01  <guybrush>mhh its like arrIN->cwise->arrOUT
15:18:11  <guybrush>and you can define operation for every element in the array
15:18:17  <guybrush>thats how i see it
15:20:09  <guybrush>so.. you can for example make a function translateXneg1(a,b), translteXpos1(a,b)
15:20:55  <guybrush>thats what in my head anyway, im sure mikolalysenko knows some tricks i cant even think of :D
15:22:17  * yoshuawuyts2quit (Ping timeout: 265 seconds)
15:23:18  <guybrush>this is a good example for cwise https://github.com/scijs/cwise#apply-a-stencil-to-an-array
15:24:00  <guybrush>basically you can look at some elements of the inputArray and set an element according to this in the outputArray
15:25:28  <jjjohnny_>i see its like building step by step ops for complex jobs
15:25:31  <guybrush>so for example if you want to move your image into some direction you would just look at the element in the opposite direction
15:25:37  <guybrush>yeah right
15:25:45  <guybrush>its good for automata-stuff
15:26:04  <jjjohnny_>look at the lement in the opposite direction?
15:26:25  <guybrush>yeah like you want to move the image in -Y
15:26:40  <guybrush>then you would look at the element at +Y
15:26:46  <guybrush>and just copy it
15:27:10  <guybrush>that is offset [0,1]
15:27:30  <guybrush>and when you want to move it like 2pixel down and to pixel to the left
15:27:40  <guybrush>you would look at offset [2,2]
15:27:47  <jjjohnny_>ah
15:28:24  <guybrush>and i think cwise wraps automatically (like that what you want)
15:28:39  <guybrush>though im not exactly sure now
15:29:47  <guybrush>and its really very fast
15:30:09  <guybrush>but i guess it will be not much faster than with the lo/hi approach
15:30:25  <guybrush>its basically fun anyway to play arround with it, the api is boss
15:32:14  <jjjohnny_>thanks!
15:32:47  <jjjohnny_>wait can you explain stride?
15:35:19  * peutetrequit (Quit: ...)
15:38:08  <guybrush>sure ndarray is a flattened array so when you do arr.get(x,y,z) it will do arr[x*stride1+y*stride2+z*stride3]
15:39:27  <guybrush>so for example when you have 128*128 array it will do arr[x*128*128+y*128+z*1]
15:39:49  <guybrush>that is row major order
15:40:07  <guybrush>by changing the stride you could do for example column-major order
15:40:27  <guybrush>which is important regarding cache-obliviousness
15:42:19  <jjjohnny_>hm
15:42:41  <jjjohnny_>is there a way to have 4 qudrant lookups?
15:42:51  <jjjohnny_>arr.get(-10, 100)
15:43:26  <guybrush>hm i think i dont understand
15:43:35  <guybrush>-10 would look at 90 then?
15:44:49  <guybrush>so, if you want to do something that operates on a larger area or volume of the ndarray you wouldnt use arr.get/set
15:45:00  <guybrush>since you would have to calculate the index everytime
15:45:28  <guybrush>you will always want to use cwise for that (or ndarray-ops which uses cwise)
15:45:36  <jjjohnny_>like if I wanted to looke at my values as positions on a 4 quadrant graph
15:46:06  <jjjohnny_>take an image, arr.get(0, 0) would be the center pixel
15:46:27  <guybrush>ah now i understand what you mean
15:46:37  <jjjohnny_>this would be fun for sinusoidal and fractal stuff
15:48:08  <guybrush>hm i cant think of a cool way to do that
15:48:31  <guybrush>i mean you would always have to translate into coords
15:49:00  <jjjohnny_>yeah, easy enuf i guess
15:49:04  <guybrush>but im not sure, mikolalysenko would know something cool regarding this for sure
15:49:08  <jjjohnny_>lol npm WARN deprecated [email protected]: This image could offend some and has unclear licensing. Use baboon-image instead.
15:50:06  <guybrush>baboon is more colerfull anyway :p but less feminine
15:50:15  * yoshuawuyts2joined
15:50:56  * fotoveritejoined
15:52:16  * shamajoined
15:53:13  <guybrush>jjjohnny_, are you doing something cool with ndarray? :D
15:53:37  * yoshuawuyts2quit (Read error: Connection reset by peer)
15:53:56  <jjjohnny_>for this installment, using it to show the shifting of audio waveforms
15:54:07  <guybrush>omg nice
15:54:17  <jjjohnny_>with actual shifting of the audio behind the scenes
15:54:19  <guybrush>please post when you get something running
15:54:45  <jjjohnny_>oh i have a stream capable web audio node, visualizer, loops and slicing
15:55:23  <guybrush>sounds crazy
15:55:33  <jjjohnny_>the ultimate sampler synth coming soon
15:55:42  <guybrush>do you use the webaudio api?
15:55:47  <guybrush>sounds really nice
15:56:07  <jjjohnny_>i practially rewrote the web audio api in javascript
15:56:13  <guybrush>nice :DD
15:56:26  <jjjohnny_>mostly based on module jsynth
15:56:44  <jjjohnny_>you web audio?
15:56:58  <guybrush>i poked at it but really nothing more
15:57:36  * peutetrejoined
15:58:29  <guybrush>i just recently discovered http://maximecb.github.io/Turing-Tunes/
15:59:37  <guybrush>its also js implementation of synthesizer
15:59:54  <guybrush>not using webaudio
16:00:49  <jjjohnny_>pretty neat
16:01:02  <guybrush>though i think im pro-webaudio
16:01:15  <jjjohnny_>i have aspirations of great generated music
16:01:26  <jjjohnny_>or of great rando remjixes of any song ever
16:02:11  <jjjohnny_>wierdly, when I copy this example https://www.npmjs.com/package/ndarray-gaussian-filter
16:02:21  <jjjohnny_>i get an image rotated to the left
16:02:33  <guybrush>this is really good source of information for generating music http://cgm.cs.mcgill.ca/~godfried/rhythm-and-mathematics.html
16:03:09  <guybrush>i really like especially this http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf
16:03:24  <guybrush>its on my todo-list for quite some time now to use this :D
16:04:01  <guybrush>lol gauss is not for rotation i think :p weird
16:05:37  <jjjohnny_>yeah
16:06:02  <jjjohnny_>ima look at this euclidian rhythms
16:06:20  <guybrush>its awesome! i tried it out in LMMS
16:06:24  <guybrush>it really works :D
16:06:38  <guybrush>i mean it sounds good, better than just random chords
16:06:48  * thlorenzjoined
16:06:56  <jjjohnny_>i have a module you can describe beats with array jus like that
16:07:39  <jjjohnny_>time.beat([,,,,,,,1], cb) for instance would play only on the 8th interval
16:08:11  <guybrush>sounds like a good api
16:08:17  <jjjohnny_>where timer = synopationModule(@bpm)
16:08:35  <jjjohnny_>and you can cut up the intervals as well
16:08:52  <jjjohnny_>timer.beat([[,,,,1],,,,,,,1], cb)
16:09:06  <guybrush>ah ok nice
16:09:08  <jjjohnny_>timer.beat([[,,,,[,,,,,1]],,,,,,,1], cb)
16:09:14  <guybrush>hahaha :D
16:09:35  <guybrush>do you plan to make a userinterface for that or just code-api?
16:09:40  <jjjohnny_>each sub array slices it's parent intervals by subarray.length
16:09:41  * peutetrequit (Quit: ...)
16:09:52  <jjjohnny_>most code now, but I am working on interfaces
16:10:08  <jjjohnny_>interfaces is where I am at currently
16:10:17  <jjjohnny_>i am so ambivalent about interfaces
16:10:21  <jjjohnny_>they are so hard
16:10:26  <guybrush>oh another crazy thing is making sound on the gpu
16:10:45  <jjjohnny_>yeah i looked at that
16:11:14  <guybrush>https://www.shadertoy.com/view/MdSXzG this is so nice
16:12:04  * thlorenzquit (Ping timeout: 265 seconds)
16:12:33  <guybrush>it uses some random texture and makes the terminator-image + sound!
16:13:16  <jjjohnny_>ndarray needs it own playground like that
16:13:43  <guybrush>yeah requirebin is already pretty great, cant think of something much better :D its close to perfect
16:14:27  * guybrushgets some coffee &
16:14:51  <jjjohnny_>true, but it is not realtime
16:15:11  <jjjohnny_>it recompiles edits and rewrites the program
16:16:03  <jjjohnny_>mikolalysenko: save-pixels seems to be rotating the baboob image -90 degrees
16:22:48  * pfrazequit (Remote host closed the connection)
16:26:20  * yoshuawuyts2joined
16:26:26  * thlorenzjoined
16:29:04  * pfrazejoined
16:30:33  <jjjohnny_>cwise offset does not wrap around
16:49:46  <jjjohnny_>look at these two
16:49:52  <jjjohnny_>http://requirebin.com/?gist=eb9cf363dfb98c55ed4b
16:49:55  * yoshuawuyts2quit (Read error: Connection reset by peer)
16:49:55  <mikolalysenko>jjjohnny_: to rotate the image you can just transpose it
16:50:07  <jjjohnny_>http://requirebin.com/?gist=eb9cf363dfb98c55ed4b
16:50:10  <mikolalysenko>var arrRotate = arr.transpose(1,0)
16:50:50  <jjjohnny_>mikolalysenko: i dont want to rotate, but I was noticing that for some reason baboon is being rotated
16:50:54  <mikolalysenko>yeah
16:51:09  <mikolalysenko>that is actually a bug in the baboon-image module
16:51:17  <mikolalysenko>need to fix that, but it has some cascading effects
16:51:49  <jjjohnny_>http://requirebin.com/?gist=29a228efdc9e3cf63778
16:51:52  <jjjohnny_>http://requirebin.com/?gist=eb9cf363dfb98c55ed4b
16:51:56  <jjjohnny_>compare those two pls mikolalysenko
16:52:03  <jjjohnny_>one works one doesnt
16:52:07  <jjjohnny_>for shifting
16:52:14  <mikolalysenko>there are many ways to do shifting
16:52:25  <mikolalysenko>though one of those is gonna go out of bounds
16:52:33  <mikolalysenko>you can also shift by using slicing
16:52:36  <jjjohnny_>i am going for wraparound shifting
16:52:39  <mikolalysenko>ah
16:52:46  <mikolalysenko>that isn't supported in ndarray
16:52:55  <mikolalysenko>have thought about this, but it would add a lot of complexity
16:53:13  <jjjohnny_>yeah i figure tranlate1, translate2, add em together
16:53:42  <jjjohnny_>but those examples of cwise seem buggy. the offset breaks when I removed the second array arg, tho I am not referencing it in the body
16:53:42  * yoshuawuyts2joined
16:53:51  <mikolalysenko>yeah
16:53:56  <mikolalysenko>that isn't the right way to do it I think
16:54:37  <jjjohnny_>(btw lena will come out rotated -90 as well)
16:54:44  <mikolalysenko>you can use one of these two modules:
16:54:44  <mikolalysenko>https://www.npmjs.com/package/ndarray-translate
16:54:44  <mikolalysenko>https://www.npmjs.com/package/ndarray-translate-fft
16:54:53  <mikolalysenko>both baboon and lena have the same bug
16:55:05  <mikolalysenko>because the bug is actually in ndpack-image which is what emits the code for storing them
16:55:19  <mikolalysenko>this needs to be fixed, but multiple things depend on that so there are cascading changes
16:55:34  <mikolalysenko>will get done, just need to remember to do it when I got some free time
16:55:46  <jjjohnny_>ah cool
16:55:49  <mikolalysenko>the workaround for now is easy, you just transpose it
16:55:53  <jjjohnny_>translate-fft does wraps!
16:55:56  <mikolalysenko>yes
16:56:00  <mikolalysenko>and it also does fractional shift too
16:56:05  <mikolalysenko>with correct sinc interpolation
16:56:38  <jjjohnny_>i haven;t even begun using ndarray magix on audio files, always been antipcating doing so
16:57:03  <jjjohnny_>gausian blur the remix
16:57:12  <mikolalysenko>yeah
16:57:27  <mikolalysenko>if you want to get fancy/technical you can do the fft/blur in one pass
16:57:31  <mikolalysenko>by combining the two multipliers
16:57:48  <jjjohnny_>like in a cwise op?
16:57:50  <mikolalysenko>yes
16:58:09  <mikolalysenko>the shift is just the same thing as multiplying by: e^(i omega t)
16:58:13  <mikolalysenko>where omgea = frequency bucket
16:58:17  <mikolalysenko>and t = amount to shift by
16:58:28  <mikolalysenko>there is a cool table of these, let me dig it up
16:58:47  <mikolalysenko>http://en.wikipedia.org/wiki/Multiplier_%28Fourier_analysis%29#Further_Examples
16:59:03  <mikolalysenko>fft basically turns convolution -> multiplication
16:59:10  <mikolalysenko>so gauss blur -> multiply with filter
16:59:19  <mikolalysenko>same for translation, differentiation, etc.
16:59:48  <mikolalysenko>generally differential operators become polynomials in frequency land
17:00:22  * thlorenzquit (Remote host closed the connection)
17:01:08  * thlorenzjoined
17:03:17  <jjjohnny_>translate-fft not working
17:03:52  <jjjohnny_>http://requirebin.com/?gist=b868563d1eecc4578880
17:07:47  <jjjohnny_>mikolalysenko: on the topic of FFTs, how do I revert the frequency bin to amplitude?
17:08:08  <jjjohnny_>say, analyze amp data, get freq data, change freq data, revert to amp
17:16:02  <mikolalysenko>jjjohnny_: found two things wrong with that
17:16:07  * yoshuawuyts2quit (Read error: Connection reset by peer)
17:16:17  <mikolalysenko>1. baboon needs to be a float64array for translate-fft to work reliably
17:16:23  <mikolalysenko>(or at least an array of float type)
17:16:38  <mikolalysenko>2. you need to specify a coordinate for the z component for the translation to work right
17:16:43  <mikolalysenko>here is a cleaned up gist: https://gist.github.com/mikolalysenko/5a913f90f6b45f392c45
17:17:03  <mikolalysenko>this is really a problem in ndarray-translate-fft though
17:17:06  <mikolalysenko>it should be nicer
17:17:15  <jjjohnny_>ah sweet
17:17:18  <mikolalysenko>regarding converting ffts back to time domain, it depends on the data
17:17:49  <mikolalysenko>if you have the real/imaginary part of the fft you can do it using an inverse fourier transform
17:18:01  <mikolalysenko>if you only have the amplitudes of the signal, then you need to reconstruct the phases
17:18:11  <mikolalysenko>this is known as decorrelation and it is a hard problem in ai/signal processing
17:18:28  <mikolalysenko>the problem is that you are missing half the information in a signal if you only know amplitudes
17:18:38  <mikolalysenko>you also need to know what the phases are in order to get the full signal back
17:18:46  <mikolalysenko>however for audio processing you can often do a dumb trick
17:19:03  <mikolalysenko>over short time scales audio signals are mostly periodic anyway, so just guess random phases
17:19:06  <mikolalysenko>and then do an inverse fft
17:19:21  <mikolalysenko>this usually works 'well enough' and sounds ok
17:19:34  <mikolalysenko>but it is mathematically not the right thing to do and won't give you exactly the same signal back
17:19:39  <jjjohnny_>I would be doing analysis of the amp data with ndarray-fft
17:19:47  <mikolalysenko>for images or amplitudes with large windows it also fails
17:19:54  <mikolalysenko>but for tiny windows it is ok
17:20:00  <jjjohnny_>does that do inverion?
17:20:04  <mikolalysenko>yeah
17:20:09  <mikolalysenko>you pass it -1
17:20:26  <mikolalysenko>https://github.com/scijs/ndarray-fft#requirendarray-fftdir-x-y
17:20:28  <mikolalysenko>set dir = -1
17:20:30  <mikolalysenko>for inverse fft
17:20:42  <mikolalysenko>all it does is change an exponent
17:20:55  <mikolalysenko>and applies a scaling
17:21:19  <mikolalysenko>also regarding ndarray-translate-fft, if you want to try making it better I'll accept a pr
17:22:41  <mikolalysenko>it is using some legacy stuff from older ndarray versions
17:23:01  <mikolalysenko>or if you just open an issue on ndarray-translate-fft to remind me that it sucks I can fix it later
17:24:34  * jjjohnny_quit (Ping timeout: 255 seconds)
17:44:30  * phatedjoined
18:04:22  * jxsonjoined
18:23:21  * joepie91___changed nick to joepie91
18:35:22  * andrewde`joined
18:37:33  * andrewde`quit (Remote host closed the connection)
18:40:15  * peutetrejoined
18:40:45  * contrahaxjoined
18:43:18  * peutetrequit (Client Quit)
18:43:54  * tilgovijoined
18:49:08  * peutetrejoined
18:56:34  * peutetrequit (Ping timeout: 256 seconds)
19:04:19  * Jan____changed nick to jan____
19:13:08  <terinjokes>and my coworkers have found StickerConstructorSpec and hexbin :)
19:16:18  <terinjokes>thanks ogd
19:41:55  <kumavis>trying to build a transform stream, but feel like im doing it wrong
19:42:30  <kumavis>there's an async initialization process so i need to buffer input until that completes
19:43:07  <ogd>kumavis: that should 'just work' with streams2
19:44:15  <kumavis>i've been using the streams3 api via readable-stream
19:44:30  <kumavis>maybe thats a possible source of some of the confusion
19:44:46  <ogd>kumavis: i use duplexify and through2 for 99% of streams stuff i do
19:44:59  <kumavis>how do i buffer input / signal that I'm ready to process
19:45:02  <ogd>kumavis: i am waiting on streams3 cause rvagg told me iojs hasnt finalized it yet or something
19:45:09  <kumavis>fair enough
19:45:39  <ogd>kumavis: so you would do e.g. var stream = duplexify()
19:45:46  <ogd>kumavis: and then return stream; in the same tick
19:46:11  <ogd>kumavis: and then later when you have a readable or writable source (depending on what you are doing) you can call stream.setReadable or stream.setWritable to attach another stream
19:46:29  <ogd>kumavis: and duplexify will buffer data written to it in that interval (in the case of using setWritable later)
19:46:44  <kumavis>hmm ok ill take a look at duplexify
19:47:09  <kumavis>im mostly wrapping trumpet
19:47:35  <kumavis>and this modules handles some async init process and configuring of trumpet
19:47:49  <kumavis>for a specific use case
19:48:03  <ogd>kumavis: yea so return a duplexify instance and when trumpet is ready to stream.setReadable(trumpetStream)
19:49:13  <kumavis>hmm do i only need to set readable? reading docs now...
19:49:33  <ogd>kumavis: depends on what youre doing
19:49:37  <ogd>kumavis: you can do either or both
19:49:48  <kumavis>module consumer will set input and output
19:50:56  <kumavis>modules itself just configures trumpet -- i was originally just returning the trumpet transform stream, but had to make a change to allow async init, and needed a way to buffer input until that completed
19:51:02  <kumavis>but since trumpet is duplex
19:51:11  <kumavis>i would jsut set both, correct?
19:51:36  <ogd>kumavis: yea
19:51:59  <kumavis>ok awesome
19:57:27  * pfraze_joined
20:14:08  * tilgoviquit (Ping timeout: 264 seconds)
20:18:53  * domanicjoined
20:21:13  * jxson_joined
20:22:24  * jxson__joined
20:22:24  * jxson__quit (Remote host closed the connection)
20:24:58  * jxsonquit (Ping timeout: 256 seconds)
20:25:49  * jxson_quit (Ping timeout: 265 seconds)
20:25:59  <domanic>calvinmetcalf, wow I haddn't understood why they do the 3 way dh until just now
20:35:42  * jxsonjoined
20:50:11  * pfraze_quit (Remote host closed the connection)
20:51:43  * pfraze_joined
20:55:06  * jxsonquit (Remote host closed the connection)
21:01:21  * pfraze_quit (Remote host closed the connection)
21:04:55  * ladekjaerquit (Ping timeout: 250 seconds)
21:05:04  * substacktopic: Unofficial browserling/testling mad science channel. For official help /join #browserling
21:07:21  * jinji-isr__joined
21:07:37  * pfalleno1joined
21:08:03  * yorick_joined
21:09:34  * ladekjaer_joined
21:09:42  * ladekjaerquit (Ping timeout: 250 seconds)
21:09:42  * {slurp}1quit (Ping timeout: 250 seconds)
21:09:42  * jinji-isr_quit (Ping timeout: 250 seconds)
21:09:42  * domanicquit (Ping timeout: 250 seconds)
21:09:44  * pfallenopquit (Ping timeout: 250 seconds)
21:09:44  * yorickquit (Ping timeout: 250 seconds)
21:09:44  * chrisdickinsonquit (Ping timeout: 250 seconds)
21:10:13  * ladekjaer_quit (Changing host)
21:10:13  * ladekjaer_joined
21:12:07  * chrisdickinsonjoined
21:26:43  * tilgovijoined
21:40:56  * jxsonjoined
21:45:26  * jxsonquit (Ping timeout: 256 seconds)
21:48:00  * yorick_changed nick to yorick
22:06:11  * sethvincentjoined
22:23:15  * jumanjijoined
22:23:23  <jumanji>hey guys where can I find open source repo
22:23:39  <jumanji>nvm https://github.com/pkrumins/stackvm
22:23:54  <jumanji>man looks like last update was 5 years ago
22:37:14  * thlorenzquit (Remote host closed the connection)
22:45:56  * domanicjoined
22:52:26  <jfhbrook>substack: someone sent me a PR with one of these bastards in it https://david-dm.org/ and I'm thinking, isn't this a bad thing to enforce?
22:52:43  <jfhbrook>substack: like, is it really so bad if your dependencies are stale, if they still work as-advertised?
22:52:54  <jfhbrook>substack: I feel like you could properly commisserate on that one with me
22:56:20  <domanic>jfhbrook, yeah I don't like david-dm either
22:56:49  <jfhbrook>It might actually be useful to have alerts on like a subset of deps
22:56:58  <jfhbrook>like, okay I'm testing against an ultra stale version of express, fine
22:57:13  <jfhbrook>but upgrading the test runner? ehhhhh who cares?
22:57:48  <jfhbrook>yeah, like I got this PR where the dude put a lot of good work into it but it's not as atomic as I'd like
22:57:54  <jfhbrook>it upgrades a bunch of deps including the test runner, and adds that badge
22:58:06  <jfhbrook>and he upticked versions and wrote the changelog
22:58:13  <jfhbrook>so I have to undo all that
22:58:19  <jfhbrook>and then redo it
22:58:29  <jfhbrook>cause I'm persnickety about my changelolg and release process
23:01:21  * wao_changed nick to wao
23:03:30  <jfhbrook>domanic: how do you feel about writing tests for your dependencies?
23:03:49  <jfhbrook>domanic: like, "I know I'm using my dependency like x and so I want to test that it in fact does do x cause I don't trust the authors to not fuck it up"
23:04:04  <jfhbrook>the PR comes with such tests and my instinct is to nuke them
23:04:06  <domanic>jfhbrook, also, their logo is a mustash, and http://carles.buzz/the-contemporary-conformist/
23:04:34  <domanic>jfhbrook, what is it for?
23:04:41  <jfhbrook>the tests?
23:04:45  <domanic>yeah
23:04:56  <jfhbrook>so the PR adds custom mime type support to ecstatic
23:05:00  <domanic>I guess if you don't trust your deps, pin them
23:05:15  <domanic>hahaha... I think that is overkill for a static server
23:05:18  <jfhbrook>and the tests make sure that the APIs for mime do what's expected---that you can in fact register extensions against them
23:05:29  <jfhbrook>well to be fair static fileservers are no joke
23:05:44  <jfhbrook>I say that not only as someone that made a first cut of one, but as someone that's been merging mad pull requests ever since
23:06:01  <jfhbrook>some of them have fixed some pretty crazy stuff like memory leaks and xss attack vectors
23:06:05  <jfhbrook>hold on lemme see if this link works
23:06:15  <jfhbrook>http://legal.nodejitsu.com/trademark.html/%3C!doctype%20html%3E%3Chtml%3E%3Cscript%3Ealert%28%27xss%27%29%3C/script%3E%3Cp%3Ehello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20worldhello%20world%3C/p%3E.html
23:06:20  <jfhbrook>YEAH
23:06:22  <jfhbrook>click that and ololo
23:06:31  <jfhbrook>quick, before the server shits itself
23:06:34  <jfhbrook>as it's definitely done
23:09:13  <jfhbrook>I'm not a contemporary conformist because I'm too stubborn and also too insecure to change how I act and dress, which is exactly as I did in college, which is more or less how I did in high school
23:09:29  <jfhbrook>the only thing that's changed is, I have slightly cooler shirts because I don't shop at value village much anymore
23:09:30  * jxsonjoined
23:09:32  * jxsonquit (Remote host closed the connection)
23:10:10  * jxsonjoined
23:18:58  <domanic>jfhbrook, so do you really need to test your deps or do you just need to pin them?
23:19:14  <domanic>oh yeah, they want them always up to date...
23:21:14  <jfhbrook>Me, I pin that shit and wait until I need new feats
23:21:16  <jfhbrook>but yeah
23:21:39  <mikolalysenko>does anyone have a picture of a bunch of rats in a grid?
23:21:45  <mikolalysenko>like a "rat matrix"?
23:21:52  <mikolalysenko>also a stack of rats in a row would be good
23:21:57  <mikolalysenko>like a "rat vector"
23:22:04  <mikolalysenko>or generally more pictures of rats
23:22:28  <mikolalysenko>(sorry to butt in)
23:32:20  * dguttmanjoined
23:35:02  * sethvincentquit (Ping timeout: 244 seconds)
23:38:12  * thlorenzjoined
23:43:34  * thlorenzquit (Ping timeout: 245 seconds)
23:57:18  * shamaquit (Quit: (╯°□°)╯︵ɐɯɐɥs)