Posted on


Welcome to the 76th issue of TMPDIR, a weekly newsletter 📰 helping teams build connected, data-intensive products by exploring the latest open source Linux and IoT technologies, workflows, and best practices. Please pass this on to anyone else who is interested in unlocking the power of open source.

Suggestions and feedback are welcome at ✉️

Subscribe Here

Thanks for reading!

Khem and Cliff

Quote for the week

Simplicity is the art of hiding complexity. -- Rob Pike

🎙️ Podcast Embedded Open Source Summit Recap

Khem attended EOSS and shares some of his thoughts about the event.

Listen here ...

What is in Simple IoT, and how we can make it smaller

Using a neat tool, we can see what is taking up space in the SIOT Go binary:


The good news is if we can get the store moved to Jetstream, the Influx client, sqlite, and protobuf can all be removed (yellow), which is a significant chunk of the current binary:


Perhaps pprof (cyan) can also be removed from distributed binaries.

Small is important when distributing updates to edge systems.

The SIOT code is adding up (green).

discuss here ...

Leave the code better than you found it

Some helpful thoughts from Khem on why upstreaming fixes makes your life easier in the long run:

read here ...

Principles of simplicity

A discussion about one of my favorite topics:

Listen here: Principles of simplicity Go Time episode

Rob Pike had this great talk, “Simplicity is complicated”, where he says “Simplicity is the art of hiding complexity.” He goes on to give garbage collection as an example, where under the hood, the garbage collector is extremely complex, but to the users it’s really simple.

Rob's original talk on YouTube

Go is often described as a simple language. It is not, it just seems that way. Rob explains how Go's simplicity hides a great deal of complexity, and that both the simplicity and complexity are part of the design.

This is the essence of good software design -- we do hard stuff so someone's life can be simpler. This does not always mean that we make things simple for ourselves. In some cases, we build a complicated subsystem that makes other more frequent tasks easy. One example of this is the Simple IoT store -- it is fairly complicated and took a lot of work to create, but creating new SIOT clients is pretty simple because the store does a lot of the hard work.

Thoughts, feedback? Let us know: ✉️

Join our 💬 Discourse forum to discuss these or new topics. Find past issues of TMPDIR 📰 here. Listen to podcasts at 🎙