3 open source tools that make Linux the ideal workstation
In 2021, there are more reasons why people love Linux than ever before. In this series, I'll share 21 different reasons to use Linux. Today, I'll share with you why Linux is a great choice for your workday.
read more
Why choose Plausible for an open source alternative to Google Analytics
Taking on the might of Google Analytics may seem like a big challenge. In fact, you could say it doesn't sound plausible… But that's exactly what Plausible.io has done with great success, signing up thousands of new users since 2018.
Plausible's co-founders Uku Taht and Marko Saric recently appeared on The Craft of Open Source podcast to talk about the project and how they:
read more
Why the success of open source depends on empathy
Open source development's collaborative innovation and community ethos have changed the world. In The Open Organization, Jim Whitehurst explains that success in open source is found by "thinking of people as members of a community, moving from a transactional mindset to one built on commitment." However, there is still a barrier at the core of the open source development model: Frequently, it lacks human empathy.
read more
3 ways to play video games on Linux
In 2021, there are more reasons why people love Linux than ever before. In this series, I'll share 21 different reasons to use Linux. Today, I'll start with gaming.
read more
Integrate devices and add-ons into your home automation setup
In the four previous articles in this series about home automation, I have discussed what Home Assistant is, why you may want local control, some of the communication protocols for smart home components, and how to install Home Assistant in a virtual machine (VM) using libvirt.
read more
Why simplicity is critical to delivering sturdy applications
In the previous articles in this series, I explained why tackling coding problems all at once, as if they were hordes of zombies, is a mistake. I'm using a helpful acronym explaining why it's better to approach problems incrementally. ZOMBIES stands for:
Z – Zero
O – One
M – Many (or more complex)
B – Boundary behaviors
I – Interface definition
E – Exercise exceptional behavior
S – Simple scenarios, simple solutions
read more
A guide to planning the next 50 years of your career
In the first and second articles of this series, I presented my review of Professor Lynda Gratton's book, The Shift: The Future of Work is Already Here. Those articles outlined the factors Gratton says will impact work in the future and the work environments those forces will likely create for us.
read more
A hands-on tutorial of SQLite3
Applications very often save data. Whether your users create simple text documents, complex graphic layouts, game progress, or an intricate list of customers and order numbers, software usually implies that data is being generated. There are many ways to store data for repeated use. You can dump text to configuration formats such as INI, YAML, XML, or JSON, you can write out raw binary data, or you can store data in a structured database.
read more
A guide to understanding Linux software libraries in C
Software libraries are a longstanding, easy, and sensible way to reuse code. This article explains how to build libraries from scratch and make them available to clients. Although the two sample libraries target Linux, the steps for creating, publishing, and using these libraries apply to other Unix-like systems.
read more
Get started with distributed tracing using Grafana Tempo
Grafana's Tempo is an easy-to-use, high-scale, distributed tracing backend from Grafana Labs. Tempo has integrations with Grafana, Prometheus, and Loki and requires only object storage to operate, making it cost-efficient and easy to operate.
read more
How to implement business requirements in software development
In my previous articles in this series, I explained why tackling coding problems all at once, as if they were hordes of zombies, is a mistake. I'm using a helpful acronym to explain why it's better to approach problems incrementally. ZOMBIES stands for:
Z – Zero
O – One
M – Many (or more complex)
B – Boundary behaviors
I – Interface definition
E – Exercise exceptional behavior
S – Simple scenarios, simple solutions
read more
Improve your productivity with this Linux automation tool
AutoKey is an open source Linux desktop automation tool that, once it's part of your workflow, you'll wonder how you ever managed without. It can be a transformative tool to improve your productivity or simply a way to reduce the physical stress associated with typing.
This article will look at how to install and start using AutoKey, cover some simple recipes you can immediately use in your workflow, and explore some of the advanced features that AutoKey power users may find attractive.
read more
Defining boundaries and interfaces in software development
Zombies are bad at understanding boundaries. They trample over fences, tear down walls, and generally get into places they don't belong. In the previous articles in this series, I explained why tackling coding problems all at once, as if they were hordes of zombies, is a mistake.
ZOMBIES is an acronym that stands for:
read more
Convert audio files with this versatile Linux command
I work with media, and when you work with any kind of media, you learn pretty quickly that standardization is a valuable tool. Just as you wouldn't try to add a fraction to a decimal without converting one or the other, I've learned that it's not ideal to combine media of differing formats. Most hobbyist-level applications make the conversion process invisible to the user as a convenience. Flexible software aimed at users needing control over the fine details of their assets, however, often leave it up to you to convert your media to your desired format in advance.
read more
How I build and expand application development and testing
In my previous article, I explained why tackling coding problems all at once, as if they were hordes of zombies, is a mistake. I also explained the first ZOMBIES principle, Zero. In this article, I'll demonstrate the next two principles: One and Many.
ZOMBIES is an acronym that stands for:
read more
Use Mac-style emoji on Linux
Linux provides an amazing desktop experience by default. Although advanced users have the flexibility to choose their own window manager, the day-to-day flow of Gnome is better than ever since the GNOME 3.36 improvements. As a long-time Mac enthusiast turned Linux user, that's huge.
read more
My handy guide to software development and testing
A long time ago, when I was but a budding computer programmer, we used to work in large batches. We were each assigned a programming task, and then we'd go away and hide in our cubicles and bang on the keyboard. I remember my team members spending hours upon hours in isolation, each of us in our own cubicle, wrestling with challenges to create defect-free apps. The theory was, the larger the batch, the better the evidence that we're awesome problem solvers.
read more
Generate QR codes with this open source tool
QR codes are an excellent way to provide information to people without the trouble and expense of printing it. Most people have smartphones that support QR code scanning, regardless of the operating system.
read more
3 wishes for open source productivity in 2021
In prior years, this annual series covered individual apps. This year, we are looking at all-in-one solutions in addition to strategies to help in 2021. Welcome to the final day of 21 Days of Productivity in 2021.
Here we are, at the end of another series. So let's talk about the things I want to see more of in 2021.
Disconnectingread more
How to teach open source beyond business
When I was a university student, I didn't understand the fuss about open source software. I used Linux and open source software but didn't really understand the open source model, how to contribute to projects, or how it could benefit my future career. My development experience consisted mainly of homework assignments and a large final project required for my degree.
read more