Doing One Thing, Well: The UNIX Philosophy

The Unix operating system has been around for decades, and it and its lookalikes (mainly Linux) are a critical part of the computing world. Apple’s operating system, macOS, is Unix-based, as are Solaris and BSD. Even if you’ve never directly used one of these operating systems, at least two-thirds of all websites are served by Unix or Unix-like software. And, if you’ve ever picked up a smart phone, chances are it was running either a Unix variant or the Linux-driven Android. The core reason that Unix has been so ubiquitous isn’t its accessibility, or cost, or user interface design, although these things helped. The root cause of its success is its design philosophy.

Good design is crucial for success. Whether that’s good design of a piece of software, infrastructure like a railroad or power grid, or even something relatively simple like a flag, without good design your project is essentially doomed. Although you might be able to build a workable one-off electronics project that’s a rat’s nest of wires, or a prototype of something that gets the job done but isn’t user-friendly or scalable, for a large-scale project a set of good design principles from the start is key.

Continue reading “Doing One Thing, Well: The UNIX Philosophy”

Pinging the Depths of a Rain Barrel

Rain barrels are a great way to go green, as long as your neighborhood doesn’t frown upon them. [NikonUser]’s barrel sits up high enough that he has to climb up on an old BBQ and half-dangle from the pipe to check the water level, all the while at the risk of encountering Australian spiders.

Arachnophobia, it turns out, is a great motivator. At first, [NikonUser] dreamed up a solar-powered IoT doodad that would check the level and report the result on a web page. He battled the Feature Creep and decided to build a handheld device that pings the water level with an ultrasonic sensor and displays it on a 7-segment.

Everything is contained in a water-resistant box and driven by an Arduino Pro. The box is mounted on a piece of scrap lumber that lays across the top of the barrel. This allows the HC-SR04’s eyes to peer over the edge and send pings toward the bottom. It also helps to keep the readings consistent and the electronics from taking a swim.

Operation is simple: [NikonUser] reaches up, sets the plank across the barrel, and pushes the momentary. This activates the Arduino, which prompts the HC-SR04 to take several readings. The code averages these readings, does a little math, and displays the percentage of water remaining in the barrel.

Interested in harvesting rain water, but not sure what to do with it? You can use it for laundry, pour it in the toilet tank instead of flushing, or make an automated watering system for your garden.