I teach Python on the Raspberry Pi 400 at the public library

After a long and tough year, I've been looking forward to once again sharing my love of Python and open source software with other people, especially middle and high school students. Before the pandemic, I co-wrote a grant to teach Python programming to middle school students usi … | Continue reading


@opensource.com | 2 years ago

Essential Characteristics of Successful APIs

If you are building an application that uses some variation of a client/server model, you need an application programming interface (API). An API is a clearly defined boundary between one process and another. A common boundary in web applications is a REST/JSON API. While develop … | Continue reading


@opensource.com | 2 years ago

I support systemd's plan to take over the world

Over the years, I have read many articles and posts about how systemd is trying to replace everything and take over everything in Linux. I agree; it is taking over pretty much everything. But not really "everything-everything." Just "everything" in that middle ground of services … | Continue reading


@opensource.com | 3 years ago

Learn the Lisp programming language in 2021

Lisp was invented in 1958, which makes it the second-oldest computer programming language. It has spawned several modern derivatives, including Common Lisp, Emacs Lisp (Elisp), Clojure, Racket, Scheme, Fennel, and GNU Guile. | Continue reading


@opensource.com | 3 years ago

Building an open infrastructure for civic participation

Open source is living through a curious moment: just like sharing movements in academia and communities once helped develop open source, open source is now inspiring the development of communities. | Continue reading


@opensource.com | 3 years ago

Play a fun math game with Linux commands

Like many people, I've been exploring lots of new TV shows during the pandemic. I recently discovered a British game show called Countdown, where contestants play two types of games: a words game, where they try to make the longest word out of a jumble of letters, and a numbers g … | Continue reading


@opensource.com | 3 years ago

Context Switching in Git

Anyone who spends a lot of time working with Git will eventually need to do some form of context switching. Sometimes this adds very little overhead to your workflow, but other times, it can be a real pain. Let's discuss the pros and cons of some common strategies for dealing wit … | Continue reading


@opensource.com | 3 years ago

Deploy Ceph in a Raspberry Pi Cluster

Ceph is an open source software storage platform that provides object, block, and filesystem storage in a unified storage cluster. I first used Ceph when I integrated it with OpenStack. At first, I was confused about why I should use Ceph since storage devices are widely availabl … | Continue reading


@opensource.com | 3 years ago

I use `exa` instead of `ls` on Linux

We live in a busy world and can save time and effort by using the ls command when we need to look for files and data. But without a lot of tweaking, the default ls output isn't quite soothing to the eyes. Why spend your time squinting at black and white text when you have an alte … | Continue reading


@opensource.com | 3 years ago

Five tips for choosing an Ansible collection

In August 2020, Ansible issued its first release since the developers split the core functionality from the vast majority of its modules and plugins. A few basic Ansible modules remain part of core Ansible—modules for templating configuration files, managing services, and install … | Continue reading


@opensource.com | 3 years ago

Visualize concurrent Python programs with VizTracer

Concurrency is an essential part of modern programming, as we have multiple cores and many tasks that need to cooperate. However, it's harder to understand concurrent programs when they are not running sequentially. It's not as easy for engineers to identify bugs and performance … | Continue reading


@opensource.com | 3 years ago

Command-line tools for feigning productivity (2018)

If you ever spent time growing up watching spy thrillers, action flicks, or crime movies, you developed a clear picture in your mind of what a hacker's computer screen looked like. Rows upon rows of rapidly moving code, streams of grouped hexadecimal numbers flying past like rain … | Continue reading


@opensource.com | 3 years ago

I use the D programming language for scripting

The D programming language is often advertised as a system programming language due to its static typing and metaprogramming capabilities. However, it's also a very productive scripting language. Python is commonly chosen for scripting due to its flexibility for automating tasks … | Continue reading


@opensource.com | 3 years ago

Open principles amplify the transformation towards a sustainabe economy

A transformation to a sustainability-oriented economy will confront all subsequent generations with enormous challenges over many decades. Given the complexity of the changes required, global and open collaboration is essential. Here are four reasons why a transition to sustainab … | Continue reading


@opensource.com | 3 years ago

Use Streamdeck on Linux

Most of us have gotten a lot more familiar with working from home this year. In my role as a developer advocate, this has meant a lot less travel and a lot more video work, including streaming on Twitch. As I transitioned to working and streaming video from home in spring 2020, I … | Continue reading


@opensource.com | 3 years ago

The twisted road through right-to-left language support (2016)

I saw Moriel Schottlender give a talk about this topic at linux.conf.au 2016 in Geelong last month and asked her to submit an article about it. When you watch her talk video and read her article, you'll see why I couldn't take proper notes to write about the talk, so I'm glad she … | Continue reading


@opensource.com | 3 years ago

Solve a charity's problem with the Julia programming language

I have been writing a series of articles about solving a nice, small, and somewhat unusual problem in different programming languages (Groovy, Python, and Java so far). | Continue reading


@opensource.com | 3 years ago

Set up OpenStack on a Raspberry Pi cluster

In the year since the Raspberry Pi 4 was released, I've seen many tutorials (like this and this) and articles on how well the 4GB model works with container platforms such as Kubernetes (K8s), Lightweight Kubernetes (K3s), and Docker Swarm. As I was doing research, I read that Ar … | Continue reading


@opensource.com | 3 years ago

Get started with Fossil, an alternative to Git

As any programmer knows, there are many reasons it's vital to keep track of code changes. Sometimes you just want a history of how your project started and evolved, as a matter of curiosity or education. Other times, you want to enable other coders to contribute to your project, … | Continue reading


@opensource.com | 3 years ago

How to use Serializers in the Django Python web framework

Serialization is the process of transforming data into a format that can be stored or transmitted and then reconstructing it. It's used all the time when developing applications or storing data in databases, in memory, or converting it into files. I recently helped two junior dev … | Continue reading


@opensource.com | 3 years ago

Home Assistant for open source home automation

Home automation is a slippery slope; you have been warned! In this multipart series, I will discuss home automation using the open source project Home Assistant. This introductory article will cover my journey to Home Assistant, what the application does, and why it's important. | Continue reading


@opensource.com | 3 years ago

Visualize Python code execution with VizTracer

It's challenging to understand your Python project as it gets larger and more complex. Even when you write the entire project, it's impossible to know how it works fully. Debugging and profiling your code is essential to better understanding it. | Continue reading


@opensource.com | 3 years ago

An introduction to timekeeping in Linux VMs (2017)

Now's a good time for an introduction to timekeeping in Linux VMs. | Continue reading


@opensource.com | 3 years ago

I'm a Power User

The IBM POWER processor architecture is now over 30 years old. Although it arrived in February 1990 with a closed source operating system and closed source applications on top, it gradually embraced open source. I became a POWER user soon after it launched and an open source user … | Continue reading


@opensource.com | 3 years ago

How the Linux kernel handles interrupts

Interrupts are an essential part of how modern CPUs work. For example, every time you press a key on the keyboard, the CPU is interrupted so that the PC can read user input from the keyboard. This happens so quickly that you don't notice any change or impairment in user experienc … | Continue reading


@opensource.com | 3 years ago

The right and wrong way to set up Python 3 on macOS (2019)

There are several ways to get started with Python 3 on macOS, but one way is better than the others. | Continue reading


@opensource.com | 3 years ago

A local government migrated to open source

In 2015, the Eyüpsultan Municipality in Istanbul, Turkey, began a bold migration to adopting open source software. This involved several major changes: Linux on the desktop and major changes to the IT infrastructure, including a transition to the Zimbra email server and the Postg … | Continue reading


@opensource.com | 3 years ago

Happy 10th Anniversary, OpenStack

OpenStack has transformed the open source industry since it launched 10 years ago. It was an endeavor to bring greater choice in cloud solutions by combining NASA's Nova with Rackspace's Swift object storage and has since grown into a strong base for open infrastructure. | Continue reading


@opensource.com | 3 years ago

Making compliance scalable in a container world

Software is increasingly being distributed as container images. Container images include the many software components needed to support the featured software in the container. Thus, distribution of a container image involves distribution of many software components, which typical … | Continue reading


@opensource.com | 3 years ago

Modernize network function development with this Rust(+DPDK)-based framework

The world of networking has undergone monumental shifts over the past decade, particularly in the ongoing move from specialized hardware into software defined network functions (NFV) for data plane1 and packet processing. | Continue reading


@opensource.com | 3 years ago

Monitor Systemd Journals via Email

Modern Linux systems often use systemd as their init system and manager for jobs and many other functions. Services managed by systemd generally send their output (of all forms: warnings, errors, informational messages, and more) to the systemd journal, not to traditional logging … | Continue reading


@opensource.com | 3 years ago

An introduction to mutation testing in Python

You have tests for everything; maybe you even have a badge in your project repository stating 100% test coverage. But what are these tests helping you do? How do you know? | Continue reading


@opensource.com | 3 years ago

State-of-the-art crypto goes post-quantum

Secrecy is one of the most important functions of computer science. Should electronic secrecy suddenly collapse into total transparency, we could not engage in electronic commerce, we would be unable to communicate privately, our past communications would be globally visible, and … | Continue reading


@opensource.com | 3 years ago

UFCS – The feature that makes D my favorite programming language

Back in 2017, I wrote about why the D programming language is a great choice for development. But there is one outstanding feature in D I didn't expand enough on: the Universal Function Call Syntax (UFCS). UFCS is a syntactic sugar in D that enables chaining any regular function … | Continue reading


@opensource.com | 3 years ago

Exploring Algol 68 in the 21st century

In the preface to his excellent textbook Algol 68: A First and Second Course, Andrew McGettrick writes: "This book originated from lectures first given at the University of Strathclyde in 1973-4 to first-year undergraduates, many of whom had no previous knowledge of programming. … | Continue reading


@opensource.com | 3 years ago

Open Source Accounting Software

Over the last six months, I have been working on GoDBLedger, an open source accounting system that I feel addresses some of the issues that plague current accounting software solutions. Even in my first year as a graduate accountant, the software frustrated me because I have seen … | Continue reading


@opensource.com | 3 years ago

Recovering audio from a lost format with open source

Back in the early 2000s, we made a family decision to upgrade the living room stereo. The equipment in place at the time was based on a collection of gear that I had purchased some 20 years earlier when I first had a steady post-university income. | Continue reading


@opensource.com | 3 years ago

A guide to Terraform for Kubernetes beginners

When I build infrastructure, I do it as code. The movement toward infrastructure as code means that every change is visible, whether it's through configuration management files or full-blown GitOps. | Continue reading


@opensource.com | 3 years ago

Program IoT systems using Python with this VSCode plugin for RTOS

The pervasiveness of the Internet of Things (IoT) means nearly every product, from refrigerators to pocket watches, can connect to a network. For that to happen, all these products must have an embedded computer running a networking stack, and some of these products are almost im … | Continue reading


@opensource.com | 3 years ago

Best practices for teams using Git

Git is very useful for helping small teams manage their software development processes, but there are ways you can make it even more effective. I've found a number of best practices that help my team, especially as new team members join with varying levels of Git expertise. | Continue reading


@opensource.com | 3 years ago

Modern alternatives to essential Linux command-line tools

In our daily use of Linux/Unix systems, we use many command-line tools to complete our work and to understand and manage our systems—tools like du to monitor disk utilization and top to show system resources. Some of these tools have existed for a long time. For example, top was … | Continue reading


@opensource.com | 3 years ago

How to sell open source software: Guacamole case study

In 2010-2011, Mike Jumper started the Guacamole project, a multi-protocol gateway that allowed admins to securely serve up desktops remotely. The client interface ran in the browser, so it was a lightweight, easy-to-use replacement for some older remote access solutions. The proj … | Continue reading


@opensource.com | 3 years ago

How to know if you're ready to switch from Mac to Linux

It's been almost two years since I switched from Mac to Linux. I used Apple for about 15 years before my move and was a complete Linux newbie when I installed my first distribution in summer 2018. | Continue reading


@opensource.com | 3 years ago

Who is the glue person on your team? – Opensource.com

Here's a test: how long do you think it would take for your organization to kickstart a brand new effort? A few days? A week? How ready would your teams be—do they already know how to roadmap, align, prioritize, and coordinate with each other? Are your teams successfully ending a … | Continue reading


@opensource.com | 3 years ago

Never forget your password with this Python encryption algorithm

Many of us use password managers to securely store our many unique passwords. A critical part of a password manager is the master password. This password protects all others, and in that way, it is a risk. Anyone who has it can pretend to be you… anywhere! Naturally, you keep you … | Continue reading


@opensource.com | 3 years ago

Open standards guide us in a world of change

As I write this article in my home office in Beaverton, Oregon, a Portland suburb, I'm relying (and reflecting) on years of work that went into standards like TCP/IP, HTTP, NTP, XMPP, SAML, and many others, as well as open source implementations of these standards from organizati … | Continue reading


@opensource.com | 3 years ago

Open Source Project to Run UI on Linux Arm Built in Android Studio

Creating a great user experience (UX) for your applications is a tough job, especially if you are developing embedded applications. Today, there are two types of graphical user interface (GUI) tools generally available for developing embedded software: either they involve complex … | Continue reading


@opensource.com | 3 years ago

Linux Distributions for Gaming

Gaming on Linux got a thorough kickstart in 2013 when Valve announced that their own SteamOS would be written on top of Linux. Since then, Linux users could realistically expect to play high-grade games that, in the past, required the purchase of a Windows computer or gaming cons … | Continue reading


@opensource.com | 3 years ago