Show HN: Wsq – WebSocket task queues
wsq.rocksDo I understand this correctly.
This is some "on the fly" computation?
Like, people could add computing power to a process just by surfing to a webpage?
Not exactly, it is a task queue that allows workers to be run in the browser.
If you could break your problem up in to lots of small isolated tasks it could be used like that
Based on a quick inspection (WS opened, binary frames going over it, and CPU utilization), this appears to be the case.
A very interesting way to do distributed computing!
Btw, if anyone is wondering why the workers run so slow when in a background tab, it is because most browsers throttle setTimeout's to run max once a second when the browser window looses focus. (web workers does not have this problem but for the demo i figured it would be fun to watch the workers do their thing)
is this something like dnode? I used dnode for RPC style programming between an Arduino and web server: https://github.com/embeddednodejs/ch_8_entering_the_cloud/bl...
possibly your lib could make the setup nicer.
also, how would you add custom events to the tasks, e.g. process data from a "button", "slider", ...
The animation makes the browser tab so jaggy I can barely scroll down to read more.
Found the problem and pushed a fix, should me much smoother now.
It was Firefox's SVGPathElement::getPointAtLength implementation that was slow, working around it by caching all the calls to it.
That sucks. I'm using d3.js to animate svg elements, runs smoothly on my machine, what browser/os are you on?
FF Nightly on Windows, I also checked on my laptop running Linux and the same thing happens so I guess it's related to the browser specifically.
Yep, I can reproduce it on OS X with FF 42.0 as well. Going to see if i can find what's causing the low framerate.
On Ubuntu it's fast in Chrome and slow in Firefox.
Are you using libchan js implementation jschan to multiplex streams ?
No I'm using https://github.com/maxogden/multiplex
Didn't know about jschan, would be interesting to see a performance comparison between the two.