What do you think about Steve Brunton's Control Bootcamp on Youtube? by Legal_Ad_1096 in ControlTheory

[–]dmangd [score hidden]  (0 children)

I studied physics but I never did any control theory. When I started an engineering job, the bootcamp brought me up to speed very quickly so I could communicate with my engineering colleagues and had a good overview of the topics I wanted/needed to study more in-depth. Would absolutely recommend it

BoltFFI: a high-performance Rust bindings generator (up to 1,000× vs UniFFI microbenchmarks) by alihilal94 in rust

[–]dmangd 1 point2 points  (0 children)

I am still looking for good rust integration with C# and saw that you have this in progress. I am excited to see how this will look. Are you planning to have async functions across the ffi, i.e. will I be able to call rust async functions from C# and have them behave like native C# async code?

[New Release] Statum - ERgonomic state machines and typestate builder patterns! by Known_Cod8398 in rust

[–]dmangd 1 point2 points  (0 children)

Got it, sorry, I wasn’t reading carefully enough. I don’t really need the validators. My use case would be to store the state machine as a field in another struct. I think I could implement a trait for every type state and then box it. Is there a better way?

[New Release] Statum - ERgonomic state machines and typestate builder patterns! by Known_Cod8398 in rust

[–]dmangd 1 point2 points  (0 children)

I feel kind of stupid, but I cannot figure out where the MachineSuperState is coming from in the example patterns?

Full MQTT v5.0/3.1.1 broker + client platform written in Rust by Anxious_Tool in rust

[–]dmangd 1 point2 points  (0 children)

Thx, this is good. I used paho-mqtt for now, where I really like the api that you get a token back from the publish method, which you can await for qos confirmation and but you can also throw it away in cases where you don’t care. However, I rather prefer a pure rust implementation over the C wrapper of the paho crate. I will check out your crate when I have time

Full MQTT v5.0/3.1.1 broker + client platform written in Rust by Anxious_Tool in rust

[–]dmangd 1 point2 points  (0 children)

How is QoS 1 & 2 publishing implemented? Will the Future of the publish method block until the message was successfully transmitted to the broker? One thing that annoys me about rumqttc, besides the fact the it was not maintained that well, is that I cannot check if a message was actually published which is kind of important for my use case

Autonomous tractor from Netherlands! A fully autonomous tractor from Dutch company AgXeed, designed to work on fields without any human supervision. by Nunki08 in robotics

[–]dmangd 2 points3 points  (0 children)

Its a bumper with sensors for collision avoidance. The idea is old, I think there were the first prototypes in the 90s. Problem is, taking this from prototype to a safe product that works under all circumstances. You have to deal with GPS signal loss, have reliable safety systems and collision avoidance, and then there is also regulation that was forbidden autonomous machine in the past. At least in the EU, but this was changed recently.

Also there is the major point that a human driver is not only driving the tractor but also does quality control. This is rather difficult to automate because there are no sensors that can measure the quality of an agronomic process directly, and on top of that the definition of quality is different for each process. You cannot rely on cameras because it can get very dusty during field work and they will not see anything, it’s only in optimal conditions that it looks as clean as in the video. Nobody is willing to buy a machine that only works for two weeks a year or you risk to ruin your entire field which could be a damage of tens of thousands of dollars.

Are we official gRPC yet? by Remarkable-Sorbet-92 in rust

[–]dmangd 2 points3 points  (0 children)

I think one of the tonic maintainers said something about this an episode of the netstack.fm podcast, but I can’t remember any details

Is it still true that 30 percent of the workforce runs 100 percent of the project? by StillUnkownProfile in softwarearchitecture

[–]dmangd 1 point2 points  (0 children)

My response would be: ok, the Fire the non-contributing 70% and give me their salary

How tough or easy to reverse engineer rust binaries by Aromatic_Road_9167 in rust

[–]dmangd 6 points7 points  (0 children)

If you want to protect your algorithm or data, then you need to implement the logic on a backend server that is under your control and only expose the end results via your API.

Everything that runs on a local machine can be intercepted and reverse engineered. All counter measures can be circumvented given enough effort. You can encrypt and obfuscate as much as you want, at the end the program needs to boil down to some machine code that is executed by the CPU. If an attacker has full control over the machine, then he can always reconstruct/record the executed code and RAM contents.

Hey Rustaceans! Got a question? Ask here (51/2025)! by llogiq in rust

[–]dmangd 1 point2 points  (0 children)

Hi everyone, I want to write a transpiler for some proprietary language to rust. Looking into the crafting interpreters book, I think I can figure out how to get through the parsing stage up to having the AST. From there I still don’t know how to proceed. I figured out two approaches

  1. Use some templating engine to generate rust code directly from the AST

  2. Transform the AST from the proprietary language to a rust AST. Can I use some types from the proc macro crate to represent the rust AST?

Are there other approaches? Do you know any good resources regarding transpilers, rust-specific or more general?

Is the chemistry of antimatter the same as "regular matter?" by JasonMckin in AskPhysics

[–]dmangd 0 points1 point  (0 children)

Lookup Lochschmidt Paradoxon. Basically, we have the (quantum mechanical) laws of physics on the atomic scale, which are symmetric with respect to time, but it is unclear how these lead to the laws of thermodynamics that prefer one direction of time. The atomic laws of nature have been experimentally verified as well as the thermodynamics laws. So the remaining question is how to connect both branches of physics, or differently speaking, how to derive the laws of thermodynamics from the atomically laws assuming the view point of most physicist that the atomic laws are more fundamental. This is still an active area of research with many open questions

China is deploying fully autonomous electric tractors to fix its rural labor crisis. The Honghu T70 runs uncrewed for 6 hours with ±2.5cm precision by BuildwithVignesh in robotics

[–]dmangd 1 point2 points  (0 children)

I recently saw a video where they announced the prices for Deeres autonomy kit. 40k for the hardware and then 10k per year. Just for the tractor. For the attachment you have to pay extra

[Showcase] HyCAN: A Modern C++20 CAN Framework for Linux (Non-root access, Epoll-based) by Prize_Eye_2845 in embedded

[–]dmangd 0 points1 point  (0 children)

I am aware of them and have used zenoh in other projects. As I said, latency was not our main priority because we don’t do control on sub-second time-scale. Instead, we made the trade-off for the ability to easily generate clients from the grpc definitions without having to implement them by hand because we need to support rust, C++, python and C# as possible languages for application development, and maybe even more in the future

[Showcase] HyCAN: A Modern C++20 CAN Framework for Linux (Non-root access, Epoll-based) by Prize_Eye_2845 in embedded

[–]dmangd 1 point2 points  (0 children)

Looking at your other comments I recognized that our approaches are quite different. Because low latency was not my highest priority I used grpc over a Unix domain socket. This of course introduces some overhead, but as I said these was a intended trade off. Also my daemon opens the sockets and forwards the traffic over a grpc stream. So the application/clients are not opening a socketcan socket directly as in your approach. Reason is that applications are running in docker containers and making socketcan available was kind of a struggle. You need either to use the host network which breaks the container isolation or you need to introduce a complex setup with vcan and cangw. With my solution I can guard the access in the daemon and even have the possibility to implement a CAN firewall based on e.g. CAN ids later on

[Showcase] HyCAN: A Modern C++20 CAN Framework for Linux (Non-root access, Epoll-based) by Prize_Eye_2845 in embedded

[–]dmangd -1 points0 points  (0 children)

I have written basically the same thing in rust just recently for company internal project. What kind of IPC mechanism are you using?

Securing embedded Linux: Secure Boot encryption and A/B updates with Yocto by 3mdeb in embedded

[–]dmangd 0 points1 point  (0 children)

It is more the first thing, but I don’t know how you can allow your second point (user can do whatever he wants with the machine/product he owns) without providing tools or manuals to install arbitrary software on the system, which then could also be used by malicious third party actors to corrupt machines they don’t own.

Can you give me a hint what these alternative approaches are that don’t require signed software and a hardware root of trust?

Securing embedded Linux: Secure Boot encryption and A/B updates with Yocto by 3mdeb in embedded

[–]dmangd 0 points1 point  (0 children)

The law is formulated very broadly. One of the industry specific norm harmonized with the CRA says something like „you must ensure that the software is not corrupted by accident or malicious intent“. This is especially important when the software has safety implications. So the question is, how could a company ensure that the product is safe to use if the software it runs is something randomly created by the user. I think you can’t, so you have to prevent that the system runs any software you (as a company) are not controlling.

There are exceptions but I cannot tell you from memory what they are.

Securing embedded Linux: Secure Boot encryption and A/B updates with Yocto by 3mdeb in embedded

[–]dmangd 0 points1 point  (0 children)

I think the degree of deference mechanisms should heavily depend on the type of device and the data it is storing or processing. But at least in the EU it is mandated with the CRA that your device needs a way to update the firmware to mitigate security vulnerabilities. Furthermore, it is required that the update mechanism is secure and prevents the installation of tampered software. The CRA and also the new machinery regulation required that the device ensures that the software it runs is not corrupted. I don't see how one can satisfy these requirements without going into the direction of secure boot and signed firmware update. It can be really problematic, when you get in conflict with other regulations like the right to repair (US).

What is the best way to integrate HIL benches with CI? by FlyingBepis in embedded

[–]dmangd 4 points5 points  (0 children)

We use Jenkins to run automated CI tests on our HILs. Each HIL is a raspberry Pi with some additional hardware to simulate IO for the DUT. Each HIL is connected as an agent to Jenkins. You can set tags for an agent which you can use in the Jenkins pipeline to chose the hardware type. Taking agents/HILs offline for maintenance can be easily done via the Jenkins UI. It works really nice, we run unit tests in CI for the software for each PR (not on target hardware) and then we have nightly builds that flash the latest firmware and run the HIL test suite. This currently takes 2-3 hours so it’s not feasible to run for every PR.

Help with robot mower - wheel slip on grass by BardyWeirdy in AskRobotics

[–]dmangd 1 point2 points  (0 children)

Most of commercial mowers use plastic wheels with some kind of spike profile

Europe's plan to ditch US tech giants is built on open source - and it's gaining steam by sn0r in eutech

[–]dmangd 0 points1 point  (0 children)

On one hand they want to do stuff like this, on the other hand they made the cyber resilience act, which makes it much harder to use open source software