Hey Isaac! I was intrigued by the way Zed added extensions, and I think it turned out great! I ended up taking that pattern of WASM, WIT, and Rust traits to add interactive hot reloading in a few projects. It feels like it has a strong future in gamedev where you could load and execute untrusted user mods without having all your players getting hacked left and right.
Thank you Brian! I miss tonari, I hope you're well. Game mods seem like a great fit for Wasm! I'm excited about Wasm GC, etc., because it means you can use e.g. a lightweight scripting language like Lua to sketch a mod, with the option of using something heavier if you need that performance.
Give SolveSpace a try. It's fantastic for 2D sketches and then you can extrude/revolve/subtract these sketches into other solids to build up your part. It can export to STEP or STL and then it's an easy trip through the slicer and you're ready to print!
If you're more programming minded, try out RepliCAD. Or if you don't mind dealing with Python and its build ecosystem, there's CADQuery or Build123d
It's amazing that it works at all, but yeah the setup sounds like a total pain.
I've mostly just stuck with gaming on the Switch because it starts up fast, doesn't update excessively, and mostly just gets out of the way to let me play the game I want to play. This is only in the context of first party titles though, I can't speak as well to third party titles.
> and then gone back only to see Facebook do its ADHD reload and bury the question
Does anyone know why facebook does this? It's the most infuriating thing, like it's assuming the poor user doesn't know how to "refresh" a page so it does it for them, because clearly they got stuck on an old crusty piece of content.
It's a failure of both management, and the developers carrying out management's tasteless design/vision which leads to this sort of shit. Not the kind of world I want to live in, and I wish these organizations would get punished somehow for the shit they put out into the world.
I imagine there are lots of folks here who could answer this question. I like to assume that no individual engineer/developer/product manager is so unscrupulous as to make this sort of kafkaesque nightmare into a reality, but somewhere along the line from concept to implementation, some individual needs to demand, create or at least suggest such hostility to the user. My question is, how does this usually go? Is it a vague implicit target set by management that can only be achieved by abusing the user, giving both the engineers and managers a plausible deniability? "I'm just following orders". Or are there folks during the development phase suggesting and promoting these awful "features"? I'm guessing the answer will be unsatisfying to me, that no individual or group of individuals is really responsible, and it's just the incentive structure of the system that's emerged over time. Which just begs the deeper, but more complicated question, how did we get here?
The same technology used to foist madness upon someone is also used to insulate the creator from feedback. Its a double edge sword.
Virtually every touchpoint of society is being turned into this awful dynamic as its unregulated. All actors with power take their playbook from a familiar guy in a turtleneck on stage pointing to his users and saying " youre holding it wrong". As if every one participating in this "experiment" is indeed a willing "user"
Nice writeup and very comprehensive! I've done some ESP32 development in the past and I vowed to always use an open protocol and allow users to connect devices to their own servers, if I ever made a product based on it.
You really went through the whole reverse engineering process end to end, I know that must have been a ton of work to not only reverse engineer it but also to write everything up!
If you're running something like this and it isn't performance sensitive, you don't really need to deal with lifetimes at all. Lifetimes mostly come into play if you want to work with zero-copy parsing, or structs that borrow some things and act like a sub-view into the data you're working with.
I'm sure there are plenty of other use cases for lifetimes, but they don't come up very often when writing standard "application" code.
Good luck on finals!
reply