That stinks. I'm sorry. The founders could have taken part of the proceeds to at least adjust your upside with a transaction bonus. It's pretty easy to do.
Erlang's BEAM, assuming no chicanery of NIFs, will use reduction counting to eventually yield a scheduler to make sure other Erlang processes get execution time. This gives you kind of a "will eventually happen" property. It can't guarantee meeting a deadline. Just that all things will be serviced at some point.
Right GRiSP has support for creating RTOS tasks in C, IIRC.
Within BEAM itself there’s no priority mechanism, however, on a RPi3 or BeagleBone you could get about an 200 uS average response time to GPIO on Linux, even under moderate load. The jitter was pretty low too, like 10-20 uS on average, but the 99.9% tail latencies could get up to hundreds of millis.
That’s fine for many use cases. Still I now prefer programming on esp32’s with Nim for anything realtime. Imperative programming just makes handling arrays easier. Just wish FreeRTOS tasks had error handling akin to OTP supervisors.
Now Beam/Elixir would be amazing for something like HomeAssistant or large networked control systems.
Just a reminder that commonly "real-time" on stuff like VxWorks isn't hard realtime either. You test a bunch of scenarios, put in some execution CPU head-room you are comfortable with, and call it a day. With enough head-room and some more (or less, if you have money and time) hand-waving, you can more or less guarantee that deadlines will be kept.
Both the single header and the zero-allocation callouts can be desirable qualities for something used in an embedded (as in classical MCU-shaped) context.
edit: Seeing that it's also C99 makes me think that embedded applications might be what this was geared toward.
Hey! I used to work for the company that makes that logbook software. That was a great job. The CEO was an amateur pilot himself and really, really loved software product design.
It's been over a decade, but it's cool to see that software still being iterated on and pilots still loving it.
Even cooler to see someone such as yourself extending its usefulness by leveraging the data. Cheers!
You can tell that the software is created by people passionate about aviation (and also passionate about nice UX, something that most all of the Logten competitors really lack). Do you remember if my guess about using NSDate internally was correct?
"passionate about aviation" and "passionate about nice UX" definitely described Noah and the rest of the team!
Honestly, I don't remember Re: NSDate. It was many jobs and Dante's levels of burnout ago. :-)
What I remember from that time was a lot of fighting with Apple's early iCloud syncing. Because it had a habit of being incredibly fraught and flakey using SQLite-backed Core Data stuff.
Bitcask, now there's a blast from the Basho past. It always bugged me that no good secondary indexing strategy was built to make using Bitcask viable for more use cases. Everyone always wanted to use the LevelDB backend just to get at secondary indexing features (which also performance scaled inversely relative to cluster size, which was it's own problem). But having Riak exhibit consistent, high-performance was waaaaaaaay easier on Bitcask.
The CNC router's firmware? The CNC controller itself is dumb as hell. It's connected via serial to an old offline computer that's only job is to pipe G-code over RS-232. Not even to "load a program" to hold in memory on the controller. Literally to stream the commands to the machine.
If the CNC machine is not connected to a network, and (I don't know much about CNC, but I do wonder) if one can provide a generic program, then just fill in the parameters before execution, right at the machine, the secret would be confined to just the CNC machine.
Regardless, provided the CNC machine is not networked, and provided it doesn't have any solid state (only RAM), one could perhaps load a large job to overrite the previous one.
Although, perhaps the CNC machine could be used to just provide templates, with small indentations for where the holes could be punched, and additional engraving to provide a link to a document on how to use the card in case of disaster recovery.
Sometimes CNC machines are networked, sometimes not, but the idea behind saving keys like this is that you only generate the appropriate bits on disposable computers, e.g. a Raspberry Pi with an SD card you can then destroy.
It depends on how much money you want to secure, of course, so YMMV.
The infernal suspension forks on 3 out of 4 of the bikes in my garage would beg to differ, both in upfront cost and ongoing maintenance.