Welcome to the 54th issue of TMPDIR, a weekly newsletter 📰 covering Embedded Linux, IoT systems, and technology in general. Please pass this on to anyone else you think might be interested. Suggestions and feedback are welcome at ✉️ firstname.lastname@example.org.
We've recently switched from Tinyletter to ConvertKit for sending this newsletter. ConvertKit is configured to watch the RSS feed on our static site and automatically send a newsletter when we push new content to the site.
Thanks for reading!
Khem and Cliff
Quote for the week
Premature optimization is the root of all evil (or at least most of it) in programming. -–Donald Knuth
LLVM 16 is a major release, Clang has been pushing the envelope for modernizing
C/C++ usage and in this effort, a bunch of warnings have been turned into
-Wimplicit-int warnings now
default to an error as well as
authors need to pay attention to fix these diagnostics, especially with
default tests which emit test functions that do not compile with clang 16. These
issues have been fixed in this release cycle which would be fine for builds
regenerating configure scripts during build. The Yoe distribution will be
switching to using clang 16.0.0 in the upcoming 2023.03 release.
Simple IoT long-term testing
We now have a month of test metrics collected from a handful of systems running Simple IoT:
Things seem stable so far.
The key to extensibility
... is loosely coupled design. What does loosely coupled mean? Lots of things but a few ideas:
- You can change one part without affecting another part
- There are simple/standard ways to interface between parts
There are many examples, but few:
And examples that are not:
- SOAP APIs
- OOP Inheritance
Sometimes coupling is needed to get performance. But otherwise, strive for loosely coupled designs.
"Loose coupling" may sound free and undisciplined, but it's the opposite -- it is the result of careful design, refactoring, and constraints.
See our community discussion for more examples.
Thoughts, feedback? Let us know: ✉️ email@example.com.