I assume it to be equivalent because of LEDBAT's eager backoff, but it'd still be a cool thing to read
745 karma · joined June 12, 2019
I assume it to be equivalent because of LEDBAT's eager backoff, but it'd still be a cool thing to read
- Is BBRv2 still modeled close to the PID equation, in a way that expanding the equation as shown by BBRv1x [0] is still possible, and we can tune for different target parameters?
- How tunable is BBRv2? For example, say I'm doing some voice chat app, and in my use case an increased sensitivity to ECN is presumably better (I read somewhere that Facetime does this, but regardless of that, let's just assume it's true for a moment). Can I tune that? Or disable ECN-awareness entirely? Is there any good reference material on the parameters BBRv2 exposes?
- I never saw any version of BBR be compared to TIMELY [1] which is also from Google. Even though I assume TIMELY would be worse given that it only takes RTT into consideration, it'd still be cool to see
- BBR is great for clients, but ultimately dependent on trusting other clients in the network to be well behaved, else the game-theoretical fairness doesn't work out. What is the SOTA algorithm for AQM on middle-boxes nowadays, and preventing bad clients from hogging link capacity?
Questions aside though, it's great to see more algorithms leveraging ECN as a signal. Good stuff, kudos to the researchers!
Is that not pretty much what Rust's procedural macros are? [0]
Except for the fact that they do not allow emitting invalid token streams (which is something you don't want anyways), it can do any arbitrary manipulation of source code, but in a way that is integrated with the compiler and less prone to breaking the program.
[0] https://doc.rust-lang.org/reference/procedural-macros.html
Discord was pretty much unrivaled in voice-chat quality for a long time, and to this day it's only "real" competitors in technical prowess in this space that come to mind are Apple's Facetime and Google's Duo.
Both Facetime and Duo have bespoke algorithms for this kind of thing: Duo for example leverages SOTA ML to correct audio gaps in the call[0], while Facetime leverages ECN on their custom adaptive bitrate algorithm so that the call is more resilient to noisy networks (couldn't find a good reference for this second one).
Keep in mind that both Google and Apple have highly-qualified teams working exclusively on networking protocols, and yet still there was a time a while ago where Discord pretty much had the best call quality experience around (GMeet is still wonky to this day).
The only thing about this that was "solved" in 2005 is shoveling packets over UDP, or at most, if you wanted to be really fancy, just shoveling them over SCTP instead.
I think you're severely underestimating how much knowledge of networks it takes to build something to par that level of quality. The only thing you can point at back in 2005 is Skype, and they do not come even close. You also seem to be equating difficulty with complexity, which even though they are at times correlated, is still a false equivalency.
[0] https://ai.googleblog.com/2020/04/improving-audio-quality-in...
We're eager to know!
I wouldn't even call Rust "hipster" anymore. It's already been embraced and rolled out to production by big companies working on hard techinical problems (Cloudflare, AWS, Discord), as well as the crypto community.
I think the reasons from steering away from hipster languages for these critical projects are roughly the same ones we use to justify not using hipster crypto for critical, real-world applications
This pattern can be seen in several places and frameworks like Spark & company, and it's also pretty much the foundational idea behind processing data with Joyent's Manta[0]. It always pretty much boils down to "serialize a function, and send it somewhere, to run on the data locally".
Some of these frameworks do it only through native functions (Spark runs serialized JVM procedures, and for Python functions I believe it shells out to an actualy Python interpretes), others are completely agnostic to this and work with binaries (Manta).
It'd be pretty hard to do, and have a lot of overhead, if all of those "functions" that I'm shuffling around are, at the lower bound, 130MB in size.
I understand that a lot of this can be done directly at the Julia layer for Julia things (much like Spark does with JVM things), but it kinda limits the applications of this nonetheless.
https://www.bloomberg.com/news/articles/2019-07-29/capital-o...
Quote:
Capital One Financial Corp. said data from about 100 million people in the U.S. was illegally accessed after prosecutors accused a Seattle woman identified by Amazon.com Inc. as one of its former cloud service employees of breaking into the bank’s server.
While the complaint doesn’t identify the cloud provider that stored the allegedly stolen data, the charging papers mention information stored in S3, a reference to Simple Storage Service, Amazon Web Services’ popular data storage software.
There are legitimate use cases for "running naked", but now we're doomed to jerry-rigging some BS ephemeral self-signed certificates in order to use any QUIC client that follows the official spec.
Also I may be wrong again, but it is for TLS, that even with all the simplifications and major changes on TLS 1.3, that we only have proofs of correctness for certain subsets of the spec, and specific modes of operation (theres a version of the protocol targeting IoT for which this work has been done, but I can't remember the name)
- https://obs.camera/ (which seems to be the most promising)
- https://www.newtek.com/software/ndi-camera/ (mentioned in a forum)
- and EpocCam https://www.kinoni.com/ (from the answer below)
I'll leave these here for people who stumble upon this answer, but if you were talking about another alternative I'd love to know about it. For now I'll give OBS.Camera a go and see if I like it. Thanks!
I've been looking for something that does this for a while now, WFH on the Mac Mini without a camera or mic is just dreadful :(
Remote: Yes, but also ok with working on-site
Willing to relocate: Yes
Technologies: C, Golang, Rust, Python, Elixir, Racket, Clojure, Kafka, Redis, Presto, Hive, Spark, AWS, GCP, Docker
Experience:
- Previously Lead SRE at a healthcare startup, working on Platform Engineering, focusing on our cloud architecture's security and compliance aspects because we store a lot of sensitive patient information;
- 3 to 4 years of AWS experience, but prefer GCP by a mile;
- Compiled Languages: Strong C and systems background, but now prefer Rust and Golang, having used mostly the latter for work;
- Interpreted Languages: Plenty of previous experience with Python, but nowadays prefer Elixir. Also dabbled with Racket (and Clojure which is technically compiled), Lua, and Julia;
- Solid experience with Systems Engineering & Architecture, especially distributed systems;
- Good background of close interaction with Data Science teams, and helping raise the bar when it comes to putting things in production;
- Passionate about Programming Language Theory, compilers, and the more formal/philosophical aspects of Computer Science;
- Previous experience with managing people and projects, with excellent reviews and feedback from my peers;
- Looking for Tech-Lead or similar positions in areas of R&D, Platform, or SRE, and to help with pushing forward strategic projects of high technical difficulty;
Résumé/CV & Contact: https://www.linkedin.com/in/luizberti
However, if I get to make a teeny tiny feature request (Nat, if you're out there...) it would be about this:
> What if I don’t want to develop in a browser?
> If you prefer, you can open a codespace in GitHub and then connect to it in VS Code.
I really kinda wish I could do the oposite, kinda like how Google Drive's Colaboratory (essentially Jupyter Notebooks on Drive[0]) do: I would launch a CodeSpace on GitHub, and it would handle all of the UI and automation bits, but I would keep the "environment" hosted somewhere else (i.e. a Docker container exposing a CodeSpace agent/headless VSCode through localhost:8080 that my browser talks to)
All of the gears seem to be already in-place for this to be possible given:
> How is Codespaces different from VS Code?
> Codespaces sets up a cloud-hosted, containerized, and customizable VS Code environment. After set up, you can connect to a codespace through the browser or through VS Code.
The reasons for this are several:
- I bought a beefy computer for a reason, and want to use it. I don't want to pay boatloads of money to Azure to have equal firepower to what I currently have idling;
- From an SRE perspective, your code, several times needs to be "inside" your infrastructure to run properly (because of roles, latency, you might be running Data Loss Prevention solutions, what have you), and this allows me to point the CodeSpace to a dedicated instance I have running inside a VPN on my own infrastructure;
- There are more, but I don't want to make this too long and I'm failing to recall some of them.
So to sum it up: I think this is a potentially great feature, as long as it doesn't come coupled with the need to buy Azure instance time. This would (and I'm asserting this purely from my own gut, without a shred of evidence) probably lead to increased adoption for this feature, and as a corollary lead to selling more Azure instance time for those who do not want the hassle, without crippling those who actually need to keep some things "in-house".
Like this https://blog.ipfs.io/2020-02-14-improved-bitswap-for-contain...
Note that this is also similar to Kraken[1] from Uber, and Dragonfly[2] from Alibaba. Facebook also does container and artifact distribution using BitTorrent, but I can't find a good reference to it.
I've had many frustrations like these, because if you're on the lower tiers of GSuite you pretty much have to DIY using their API. But, if you choose to bite the bullet and pay up, your life will be way better in many of these aspects.
Also other things about the "GSuite way" just diverge philosophically from the standard IT operation playbooks, if you haven't already, I suggest giving the BeyondCorp paper[3] a read. Most of their IdP-related products build on top of these concepts, rather than plain "directory-management style" ITOps.
[1] https://latacora.micro.blog/gripes-with-google/
As for perl, it does come "with the system" more often than Ruby, but also not as much as bash.
Even if it did, I reckon bash is something that nowadays people are more accustomed to than perl, and would consider it more of a no brainer.
My script is here if you wanna check it out https://github.com/luizberti/templ
If you try using awk or sed, you will need to figure out a magical way to escape whatever arbitrary value you are trying to replace, so you don't break sed's regex or awk's syntax.
M4 was one of the last things I tried, and it was an utter disaster. If any of M4's magical characters collides with the syntax of the file you're trying to template: tough luck. And there is no way to escape your file for M4 either, it's syntax doesn't support that.
I eventually discovered that Bash 4.4+ has some built-in functions for "dumb" string substitution[1], which is exactly what's missing from the default POSIX tools.
Since then I wrote this little wrapper around that functionality, as a simple, single-file, dependency-free Bash script. If you find something like that useful, it's on the link below:
[0] https://github.com/luizberti/templ
[1] https://www.tldp.org/LDP/abs/html/string-manipulation.html
Remote: Yes, but also ok with working on-site
Willing to relocate: Yes, and also in the process of getting EU citizenship which might facilitate the process (but no ETA on that yet). I'm also ok with relocating to NA.
Experience:
- Currently Lead SRE at a healthcare startup, working on Platform Engineering, focusing on our cloud architecture's security and compliance aspects because we store a lot of sensitive patient information;
- 3 to 4 years of AWS experience, but prefer GCP by a mile;
- Solid experience with Systems Engineering & Architecture, especially distributed systems;
- Good background of close interaction with Data Science teams, and helping raise the bar when it comes to putting things in production;
- Passionate about Programming Language Theory, compilers, and the more formal/philosophical aspects of Computer Science;
- Previous experience with managing people and projects, with excellent reviews and feedback from my peers;
- Looking for Tech-Lead or similar positions in areas of R&D, Platform, or SRE, and to help with pushing forward strategic projects of high technical difficulty;
Résumé/CV & Contact: https://www.linkedin.com/in/luizberti
glibc is GPL licensed, and the GPL explicitly forbids statically linking to it unless your code is GPL too.
Thus any non-GPL project has it's license tainted by the GPL if you statically link it.
It's not a technical limitation, it's a legal one.
Remote: Yes, but also ok with working on-site
Willing to relocate: Yes, and also in the process of getting EU citizenship which might facilitate the process (but no ETA on that yet). I'm also ok with relocating to NA.
Technologies:
- Currently Lead SRE at a healthcare startup, working on Platform Engineering, focusing on our cloud architecture's security and compliance aspects because we store a lot of sensitive patient information;
- 3 to 4 years of AWS experience, but prefer GCP by a mile;
- Solid experience with Systems Engineering & Architecture, especially distributed systems;
- Good background of close interaction with Data Science teams, and helping raise the bar when it comes to putting things in production;
- Passionate about Programming Language Theory, compilers, and the more formal/philosophical aspects of Computer Science;
- Previous experience with managing people and projects, with excellent reviews and feedback from my peers;
- Looking for Senior/Head/Tech-Lead positions in areas of R&D, Platform, or SRE, and to help with pushing forward strategic projects of high technical difficulty;
Résumé/CV & Contact: https://www.linkedin.com/in/luizberti