Welcome to the 48th 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 email@example.com.
Thanks for reading!
Khem and Cliff
Last release of the year. This release has minor updates to Clang C/C++ compiler to 15.0.6, Rust is updated to 1.66.0 and major fixes to support musl without LFS64 APIs. It also exposed casses where we needed python3targetconfig to use target python instead of host python. XFCE is upgraded to 4.18 and systemd to 252.4
This will allow third-party Rust libraries to be used from its C++ codebase. Right now, the Rust toolchain is being added to its build system, so it might be few months before rust code starts to trickle in for chromium. This is being done to support simpler and safe code. Only one-way interop c++ -> rust is planned to be supported.
This release improves both the user and developer experience in that log-in is
preserved so if you reload your browser or the SIOT backend, you don't have to
re-login. We've also integrated
elm-watch so when changes are made in the UI
Elm code, the UI is updated in real-time without a full page reload. This is
especially important with the SIOT UI as the node tree maintains state and you
don't have to navigate to the node to see the changes. This allows you to
quickly iterate on changes and see the effect immediately. This is state of the
art UI tooling which is made possible in part by the simplicity of the Elm
- upgrade frontend to elm-spa 6 (#197)
- apply elm-review rules to frontend code and integrate with CI (#222)
- changes so user does not have to log in if backend or browser is restarted
- frontend: store JWT Auth token in browser storage
- frontend: store JWT key in db
- use air instead of entr for watching Go files
during development. This allows
siot_watchto work on MacOS, and should also be useful in a Windows dev setup.
See the Hot reloading the Simple IoT UI video for a demo of these changes.
The Technology Trajectory
Technology follows a trajectory from inception, growth, maturity, decline, and finally obsolescence. Understanding where a technology is on this curve is important when deciding when to adopt a technology. We discuss this topic more in a blog post and podcast episode.
We have used Variscite SoM's in a number of products, so exiting to see a new one based on the i.MX93 CPU which includes a machine learning NPU (Neural Processing Unit). NXP and the various SoM suppliers do an excellent job of supplying compute for lower volume applications. Throughout the component shortage, when rPI CM4 modules were not available, Variscite was still quoting lead times in the ~20 week range. (this is a sample of one part, so not sure if consistent across their entire product line.) I also checked status of i.MX parts in Digi-key/Mouser, and many were still stocked throughout the shortages. It appears we may be nearing the end of the tunnel on component shortages but it reminds us of the maxim -- if you are building an industrial, long-lived product, you are probably best off buying from companies who are industrial suppliers. Buying from companies that are primarily in the consumer space is risky.
Quote for the week
Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away. – Antoine de Saint – Exupery
Thoughts, feedback? Let us know: firstname.lastname@example.org.