What does the Open-Closed Principle mean for refactoring?
In his 1988 book, Object-Oriented Software Construction, professor Bertrand Meyer defined the Open-Closed Principle as:
read more
Monitor your home's temperature and humidity with Raspberry Pis and Prometheus
Data is beautiful. As a #CitizenScientist, I enjoy gathering data and trying to make sense of the world around me. At work, we use Prometheus to gather metric data from our clusters, and at home, I use Prometheus to gather data from my hobbies. This article explores how to take an application—a Python script that gathers temperature and humidity data from a sensor—and instrument it to provide data in a model that Prometheus can gather.
read more
5 hidden gems in Python 3
Python has made a name for itself in the world of programming for being easy to learn, easy to read, and reasonably easy to debug. It's seen as a good starting language because it can usually resolve complex concepts such as data types on the programmer's behalf. It's considered easy to read because its syntax is simple and it enforces predictable formatting. And it's easy to debug because not only does it catch many errors on its own, it also integrates with advanced tools like GNU Debugger (gdb.) And that was its reputation before Python 3.
read more
Japan at a crossroads: How open organization principles aided the country's economic resurgence
At the start of the millennium, Japan was at an economic crossroads. Japanese firms urgently needed to rethink their business strategies and approaches in order to adapt to changing geopolitical and market conditions. In The Business Reinvention of Japan, author Ulrike Schaede describes how Japan succeeded in doing this.
read more
5 Rust tools worth trying on the Linux command line
Linux inherited a lot from Unix, which has been around for a half-century. This means most of the tools you use in your Linux terminal probably either have a very long history or were written to emulate those historical commands. It's a point of pride in the POSIX world that tools don't need constant reinvention. In fact, there's a subset of Linux users today who could run a version of Linux from before they were born without having to learn anything new. It's tried, true, and reliable.
read more
How different programming languages read and write data
In his article How different programming languages do the same thing, Jim Hall demonstrates how 13 different languages accomplish the same exact task with different syntax. The lesson is that programming languages tend to have many similarities, and once you know one programming language, you can learn another by figuring its syntax and structure.
read more
Use VS Code to develop in containers
Coding and testing inconsistencies are a risk when you have multiple developers with different development environments working on a project. Visual Studio Code (VS Code) is an integrated development environment (IDE) that can help minimize these issues. It can be combined with containers to provide separate development environments for each application alongside a consistent development environment.
read more
Use XMLStarlet to parse XML in your the Linux terminal
Learning to parse XML is often considered a complex venture, but it doesn't have to be. XML is highly and strictly structured, so it's relatively predictable. There are also lots of tools out there to help make the job manageable.
read more
Open source sustainable cities, AI on Arduino, supply chain security, and more
Open source made it into a lot of news headlines last month. Read on to learn about some of the major advances.
Stanford unveils open source sustainable cities software80% of Americans live in cities, and 70% of the world's population is expected to be urban dwellers by 2050. Thanks to the Stanford National Capital Project, city planners and developers have a new open source tool to help improve urban wellbeing.
read more
Set up temperature sensors in your home with a Raspberry Pi
It's HOT! I suppose I can't complain too much about living in paradise, but when my wife and I moved to Hawaii last fall, I didn't really think too much about the weather. Don't get me wrong, the weather is lovely pretty much all the time, and we keep our windows open 24/7, but that means it is pretty warm in the house right now in the middle of summer.
read more
Reading and writing files with Python
Some data is meant to be temporary, stored in RAM while an application is running, and then forgotten. Some data, however, is meant to be persistent. It's stored on a hard drive for later use, and it's often the stuff that a user cares about the most. For programmers, it's very common to write code to read and write files, but every language handles this task a little differently. This article demonstrates how to handle data files with Python.
read more
What is XML?
XML is a hierarchical markup language. It uses opening and closing tags to define data. It's used to store and exchange data, and because of its extreme flexibility, it's used for everything from documentation to graphics.
Here's a sample XML document:
read more
Explore waterways with this open source nautical navigation tool
If you're traveling by boat down your local waterway or sailing around the world, you can bring great navigation software with you and maintain your commitment to open source software. OpenCPN is free and open source software developed by sailors. It serves as the primary navigation interface for vessels with full-time helm-visible navigational suites. The software is written in C and released under a GPLv2 license.
read more
A new open source operating system for embedded systems
There's a growing demand for embedded operating systems, and it's best when the one you build upon is open source. The RT-Thread project's R&D team has spent three years of research and intensive development to arrive at the project's latest offering: RT-Thread Smart.
read more
What you need to know about security policies
A security policy is a set of permissions that govern access to a system, whether the system is an organization, a computer, a network, an application, a file, or any other resource. Security policies often start from the top down: Assume nobody can do anything, and then allow exceptions.
read more
Troubleshooting bugs in an API implementation
As distributed and cloud computing adoption increase, things are intrinsically getting harder to debug. This article shares a situation where you would expect a library to safeguard against different versions of an API. However, it didn't and it caused unexpected behavior that was very hard to debug. This might be a useful example of how ripping out layers of abstractions is sometimes necessary to get to the root cause of a problem in a systematic manner.
read more
Apply lean startup principles to your open source project
There are a lot of benefits to starting an open source project. In general, open source projects benefit from collaboration, adoption, transparency, lower ownership costs, development best practices, more contributors and reviewers, and better quality.
read more
Encrypt and decrypt files with a passphrase on Linux
Encryption and security for protecting files and sensitive documents have long been a concern for users. Even as more and more of our data is housed on websites and cloud services, protected by user accounts with ever-more secure and challenging passwords, there's still great value in being able to store sensitive data on our own filesystems, especially when we can encrypt that data quickly and easily.
read more
3 reasons Quarkus 2.0 improves developer productivity on Linux
No matter how long you work as an application developer and no matter what programming language you use, you probably still struggle to increase your development productivity. Additionally, new paradigms, including cloud computing, DevOps, and test-driven development, have significantly accelerated the development lifecycle for individual developers and multifunctional teams.
read more
Lessons in openness from Japan's "business reinvention"
In The Business Reinvention of Japan, Ulrike Schaede explores Japan's approach to economic development in the late 20th and early 21st century. Her thesis is that this approach—what she calls an "aggregate niche strategy"—offers important lessons for the West by balancing the pursuit of corporate profit with social stability, economic equality, and social responsibility and sustainability.
read more