Node.js IoT – Create Local Module for CPU Sensor

CPU Sensor Local Module

We’re back and ready to do some refactoring of our CPU sensor so we can learn about Node.js modules and how to create them.  Building small, focused modules is one of the key tenets of the Node.js philosophy as summarized in The Node Way:

Building small, single-purpose modules is at the heart of the Node.js philosophy. Borrowing from Unix, Node.js encourages composing the complex and powerful out of smaller, simpler pieces. This idea trickles down from entire applications (using the best tool for the job vs. a full suite) to how the tools themselves are built.

Continue reading


While I napped, we got a new apt – Debian apt command cheat sheet

aptI’m now awake, everyone!  I must have been asleep (and perhaps you were too) since the Debian apt ecosystem now includes an “apt” binary that vastly improves the way we interact with the Debian package management ecosystem.  You can now use the single apt executable instead of apt-get, apt-cache, etc. for many common use cases.  These are groundbreaking changes for the better! My hope is that this post will accelerate your productivity whether you are using Ubuntu, Raspbian, or one of the many other other Linux distros based on Debian.

Scenario: You want to install the cowsay package because you know that a Linux system is not complete without it. 🙂


Given this context, let’s get started using the new, simplified apt binary:

apt update

Updates the local APT package index, a database of available packages available from the central Debian repositories configured for your machine.  It is a good idea to run this command periodically, especially before installing packages or doing upgrades.  You will probably need to add a “sudo” before this command since higher privileges will be required to complete this operation.

apt list cow*

List all packages (whether installed on your system or not) containing the word “cow” followed by anything.  If you run “apt list cow", it will only find packages with an exact match of “cow”.

apt search cow

Searches for “cow” in both package names and descriptions and returns the package name and a brief description.  Note that you don’t need to use a wildcard with this command since it will find “cow” contained in strings such as “cowsay” and “cowbell”.

apt show cowsay

Shows package details including a detailed description. You can use wildcards, but this command works best if you specify the exact package name obtained from a command such as apt list above.

The following commands will most likely need to be prepended with “sudo“.  I am not including “sudo” to avoid line noise so we can focus on the essence of each of the commands.

apt install cowsay

Installs the cowsay package. As a bonus, the new apt command also includes a progress bar in your terminal so you can more easily visualize progress.

apt remove cowsay

This command will remove the cowsay package.  I’m not sure why you’ve ever want to remove this very essential package though. 😉

apt full-upgrade

This command upgrades your system by removing, installing, and upgrading packages.  This is typically the command most people will want to run to get their systems up to date.  It is often used with the “apt update" command and can be combined into one command as follows if you want to show off your command line prowess:

sudo apt update && sudo apt full-upgrade

apt upgrade

This command upgrades your system by installing and upgrading packages.  It will automatically install, but will not remove any packages.  The apt full-upgrade discussed previously will be the command of choice for most in doing upgrades.


With these simple commands above as a reference, you should be able to accomplish 99% of what you need to work with packages in the Debian Linux world.  Spread the word about these new apt command options.  They are quite handy!

Follow @thisDaveJ on Twitter to stay up to date on the latest tutorials and tech articles.

Related Articles

Beginner’s Guide to Installing Node.js on a Raspberry Pi


Node.js IoT – Build a Cross Platform CPU Sensor

cross platform cpu sensor

I took a little hiatus in our series to take my family on a trip to Japan with layovers on each end of the trip in China which included a ride on the Shanghai Maglev Train, the fastest train in the world.  We had a fantastic time, and it was a great educational experience for the kids.  It is also good to be back home!

We are back again with our Node.js IoT tutorial series and ready to continue developing our “CPU sensor” as CPU loading/utilization is a “sensor” we can measure, record, and ultimately stream to other locations.  Today, we will expand our CPU sensor and make it cross platform—and learn more about Node.js in the process. In future tutorials, we will harness the power of Node.js to interact with physical sensors that live outside of our computing environment.  Continue reading