Posted on


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 βœ‰οΈ

Subscribe Here

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/Clang 16.0.0

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 errors. -Wimplicit-function-declaration and -Wimplicit-int warnings now default to an error as well as -Wincompatible-function-pointer-types. Packages authors need to pay attention to fix these diagnostics, especially with autoconf 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:

  • 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: βœ‰οΈ

Join our πŸ’¬ Discourse forum to discuss these or new topics. Find past issues of TMPDIR πŸ“° here. Listen to previous podcasts at πŸŽ™ Subscribe Here