Even heap allocations like `Box` are still just pointers, that have destructors that run when they fall out of scope, but access is just a pointer dereference, the same as you could do with unsafe.
1,186 karma · joined September 26, 2016
Even heap allocations like `Box` are still just pointers, that have destructors that run when they fall out of scope, but access is just a pointer dereference, the same as you could do with unsafe.
I actually would like to eventually play around with treating all the "hardware bits" inside of the computer, like the wifi chip, graphics card, etc., more like a distributed system than black boxes, but this generally comes down to writing a lot of the firmware myself (luckily this is a hobby/research project, so "non viable" solutions are still on the table).
The more immediate goal for me is something portable, and comparable to a palm pilot/blackberry in terms of performance and capabilities. The current hardware will likely have an ESP32C3 for wifi (32-bit RISC-V), the main D1 CPU (64-bit RISC-V), and an RP2040 (32-bit Arm Cortex-M) for keyboard and IO, so I'll be able to test out some of my "network of tiny computers that make one small computer" ideas.
If Codeium doesn't produce these when producing "verbatim enough" snippets, how is this actually better, besides avoiding a GPL boogeyman?
I get that there have been fewer (if any? I'm not aware of any) MIT/Apache2.0/MPL2.0 license violations that have gone to court than GPL violations, but this still feels like an "address the symptoms" and not "address the cause" difference.
All of the low and high code board houses will support either kicads project formats directly, or kicad supports standard Gerber format export.
I (now) know someone who ordered earlier than that, who has been trying for years to get a refund for his device.
Edit, the author, Robin Sloan, is a fiction writer. That's... a little disappointing, but still it was a wonderful story.
At least in the context of the original parent comment ("doing perfectly fine since prohibition")
Were there any organizational or policy changes after the "9 month grind" [0] tweet? Or is this still the policy of the bun/oven org?
So maaaaaybe you could have a really painful conversation with someone the moon, but not Mars.
edit: This is WITHOUT any latency introduced by the link/protocol, or if you have to then route the message from one side of the earth to the other, just time-of-flight distance calculations, so the absolute minimum possible latency.
Other 32 and 64 bit platforms support some kind of "compressed instruction" support, for example 32-bit ARMv7 microprocessors (think early android phones, original raspberry pi, etc.) also support the 16-bit Thumbv2 instruction mode, though thumbv2 support was removed in AArch64/ARMv8.
This is contrasted with a "true" 16-bit platform like msp430, which has 16-bit pointers and native 16-bit words.
RISC-V also has an optional compressed instruction set for both 32- and 64-bit platforms as well.
There are likely lower cost parts, but the REALLY cheap 32 bit parts are moving to RISC-V, see WCH's recent releases.
Edit: as a specific example, the STM32G030F6P6TR is available at $0.74 for one, or $0.45/ea at qty 1000 over on JLCPCB's part list:
https://jlcpcb.com/partdetail/Stmicroelectronics-STM32G030F6...
I put some of these on a very recent project.
postcard's zigzag encoding matches phoboslab's psuedocode.
Edit, not totally sure, but this wiki page rings a bell, and is probably where I got my impl from: https://en.wikipedia.org/wiki/Variable-length_quantity#Zigza...
Edit 2: I also explain why I do this (it compresses better) in my wire format specification: https://postcard.jamesmunns.com/wire-format.html#signed-inte...
I don't think I've ever used them, but I've ABSOLUTELY used suggested fixes from LSP/rust-analyzer tools, which fit much more into my typical workflow. For things like match statements in Rust (which need to be exhaustive), I now have muscle memory to just write an empty match statement, and trigger the first LSP/r-a suggestion, which fills the match block with placeholder items.
I guess I see LSP as my "compiler in interactive mode" interface (even if that isn't EXACTLY true).
The problem is "good vs bad" is a little domain specific. I can show something that works for embedded, but it won't be perfect for some other domain.
Definitely started as a software engineer, but in a safety critical field (avionics), at a company/team that in my opinion has an incredible "systems culture" (Garmin Avionics). During onboarding, we were taught WHY we needed to do so many things for the safety critical process.
After leaving safety critical, and going to much more start-uppy companies, and realizing that SE knowledge was not widespread, and how to put the "easy but good bits" in place quickly, is pretty much how I ended up where I am.
You might like my follow up, where I touch on this: https://cohost.org/jamesmunns/post/178752-systems-engineerin...
I have a lot more to say about how ignoring the people aspect of things is wrong for a lot of reasons.
Requirements changing are a reality. In safety critical fields, these changes are noticed by using traceability tools.
I haven't written this far yet: but you should have a process for changing things like system requirements. It should be discussed, reviewed, and approved by the relevant teams. The "downstream" documents, like software or hardware reqs, should be updated as well.
Hard to fit all the details in a single summary, but happy to answer questions
It would be someone experienced, who is still responsible for technical contribution (writing code, planing architecture, etc.)
I can still view pages when logged out, but trying to log in on an incognito window also fails (I didn't look at the console tho)
* [0]: https://downdetector.co.uk/status/twitter/
* [1]: https://api.twitterstat.us/
The main esp-rs github organization[1] is a good place to get started!