Minko Gechev writes about JavaScript, Angular, compilers, and web tooling, with tutorials that build small compilers and frameworks from scratch.
HN commenters cite his posts for Angular tree shaking, TypeScript with JSX, and binary data over websockets, and one debates his compiler-versus-transpiler framing.
This still doesn't really answer why one would use webrtc for multi-user video conferencing - without working multicast (which I still think is a given between most pairs of randomly choosen dsl subscribers, not sure if it would be an option for webrtc anyway) - you'd need to transfer N-1 bitrate up from each N participant in the multi-user conference. Not sure that's workable for ten 720p streams of reasonable quality - let alone for more participants? Clearly there are trade-offs - but do they make as much sense for multi-user conferencing? The teamspeak model of muxing streams on the server seem to make more sense?
Edit: I see this is actually addressed in the linked article[1] - basically a webrtc gateway can be used. No mention of any support for (cryptographic) authentication and of peers and encryption of streams as far as I csn tell, though. Which makes it a bit worse than chatting over ham radio...
Edit2: Apparently webrtc is "secure" by default [2] - that is the streams are encrypted with a session key - but there's no (working) way to authenticate - or prevent/detect mitm. Obviously a gateway would need access to the (plain) streams for muxing (barring some creative N-way p2p key setup and just blasting encrypted data (eg by not supporting more than one peer to transmit - but with typical latencies this would probably dictate some form of manual "passing-the-mic" moderation).
[1]…
If we're being pedantic, then it is a compiler. It's a compiler that targets another high-level language instead of a lowered representation. Transpiler is (in my opinion) a meaningless specialization of the word compiler.
The corresponding blog post (http://blog.mgechev.com/2017/09/16/developing-simple-interpreter-transpiler-compiler-tutorial/) does seem to be educational.
Yes, it's called "tree shaking"[1], modern Angular apps can be cut down to a around 50-100k (assuming nothing heavy feature set). Find build tools that can do it, like Webpack or Rollup.
[1] http://blog.mgechev.com/2016/06/26/tree-shaking-angular2-production-build-rollup-javascript/
Library for handling binary with websockets, no commits since last year:
https://github.com/binaryjs/binaryjs/
Blog post regarding the basics of binary data + websockets:
http://blog.mgechev.com/2015/02/06/parsing-binary-protocol-data-javascript-typedarrays-blobs/
Shameless plug but hopefully helpful: http://www.jbrantly.com/typescript-and-jsx/
And more:
http://blog.mgechev.com/2015/07/05/using-jsx-react-with-typescript/
http://basarat.gitbooks.io/typescript/content/docs/jsx/tsx.html
The original blog post: http://blog.mgechev.com/2014/12/26/multi-user-video-conference-webrtc-angularjs-yeoman/