cleverblog.pl

Practical engineering notes from real production work.

Linux, Raspberry Pi and home automation — verified in production.

Changing the category automatically opens the selected category.

Latest articles

Articles: 25 of 25

Placeholder cover: async stream exception boundary
Python

When an Async Stream Finishes but the Run Failed: Preserving Exceptions at the Boundary

An asynchronous event stream can reach completion while its background run loop has failed. This troubleshooting note describes the exception boundary that preserves that failure, the race it addresses, and the focused regression cases that verify both failure and success paths.

.NET

Idempotency Isn't Enough: Three Retry Bugs in Pipelines with Retrying

Even with stable IDs, unique constraints and retries, a pipeline can become inconsistent after a crash. Learn how to protect artifacts and task order.

.NET

Debugging TargetParameterCountException in .NET: hidden indexer in IReadOnlyList<T>

When .NET reflection throws "Parameter count mismatch", the real cause may be an IReadOnlyList<T> indexer. Learn how to find and fix it.

Home Assistant · Linux

Flashing the CC2652P Chip Using CH9102X

Flash the CC2652P coordinator with a CH9102X USB-Serial adapter for Zigbee2Mqtt. A step-by-step guide to updating the firmware.

Linux

File Permissions in Linux (chmod)

Learn how to change file and directory permissions in Linux with chmod, using symbolic, numeric, recursive and bulk permission methods.

Linux

Managing systemd services in Linux

Learn how to start, stop and restart Linux services with systemctl, service and /etc/init.d scripts. Administrator privileges are required.

Linux

Adding your own systemd service in Linux

Learn how to add a Linux service with systemd and systemctl, then enable it to start automatically at boot. Administrator privileges are required.

Linux

Viewing logs in Linux (systemctl and journalctl)

Learn how to view Linux process logs with systemctl status and journalctl, including full logs. Administrator privileges are required.

Linux

Checking the file system on the next reboot (fsck)

Learn how to force fsck at the next reboot and configure regular filesystem checks in Linux using tune2fs.

Linux

Copying files over SSH (scp)

Learn how to copy files over SSH with SCP: from your computer to a server, back again, or directly between two Linux servers.

Raspberry Pi

Programming and Flashing CC2531 Without a Cable Using Raspberry Pi

Flash a CC2531 using only a Raspberry Pi, with no CC Debugger, UART cable or ESP. Works with any CC2531 device, including EBYTE E18-2G4U04B PA.

Domoticz

Integrating Domoticz with a Printer

Manage a system printer with scripts that send printer status to Domoticz and clear the system print queue when needed.

Domoticz

Domoticz Integration with Xiaomi Mi Temperature & Humidity Monitor

Send Xiaomi thermometer data to Domoticz automatically, including temperature, humidity and battery level.

Linux

Adding a User to a Group in Linux (usermod)

Learn how to create Linux groups, add existing or new users, and grant sudoers access. A root account is required.

Linux

Searching for Files in Linux (find and fd)

Use the Linux find command to search files by name, extension or date, then delete matches or change their permissions in bulk.

Raspberry Pi · Python

Internet Watchdog on Raspberry Pi

Monitor your internet connection with a script that restarts the router if it fails and reboots the device if the problem continues.

Raspberry Pi · Home Assistant

Installing Home Assistant on Raspberry Pi

Install Home Assistant, the free open-source home automation platform written in Python, and use it as the central hub for your smart home.

mikr.us · Raspberry Pi · Linux

Your Own OpenVPN Server on mikr.us

Run your own OpenVPN server on mikr.us and securely access your local network, home automation, file server or printer remotely.

Linux

Setting and changing a user password in Linux (passwd)

Learn how to set or change passwords in Linux for users, administrators and groups.

Raspberry Pi · Linux

Installing a MySQL/MariaDB Server on Raspberry Pi

Run a MySQL server on your Raspberry Pi, create databases and store data for your applications.

Raspberry Pi

.NET (dotnet) on Raspberry Pi

Install the .NET environment on your Raspberry Pi and start building applications in C#.

Raspberry Pi

MiniDLNA Media Server on Raspberry Pi

Build your own media server and access your movies, music and other media whenever and however you want.

Raspberry Pi · Linux

Accessing MySQL/MariaDB from outside the server

Make your MySQL or MariaDB server accessible from outside your local network.

mikr.us · Raspberry Pi · Linux

Mounting Remote WebDAV Drives in Linux

Access remote file servers, expand your storage space and gain extra room for files and backups.

Raspberry Pi · Python

Jupyter Notebook on Raspberry Pi

Writing Python scripts for Raspberry Pi can be even easier.