Delete songs from HDD while listening to them on audacious

I digitalized my old CD music collection a (very) long time ago. And the other day ,listening to it, I stumbled over some tracks I did really not like. I used to simply ignore them (unless I was willing to stand up and press the next track on my Hi-Fi), but the time has come to... delete them!

In this post I want to share a small script that can be bound to any key combination on your keyboard. When a song comes up that you don't like, simply invoke it and it will not only move the current song to the trash (you don't want to listen to it forever, right?) but also delete it from Audaciou's playlist.

TMUX: useful key-bindings

Continuing my TMUX series, this post will show you some useful keybindings which will make you much more productive, not only when working with TMUX, but also while configuring it to your liking.

How to create tasks on FreeRTOS

FreeRTOS is a great tool for those of you who want to get the most out of their microcontrollers and do something more than blink a LED. It enables you to run several tasks concurrently (i.e. simultaneously, but no in parallel) and do things like, while one process is waiting for your I²C interface to finish (the task is blocked) let different process take advantage of the waiting time to do work.

In this post we will take a look at how to create two simple FreeRTOS tasks that run concurrently on Arduino, although this is perfectly applicable to any other microcontroller you have lying around.

Run FreeRTOS on Arduino UNO (ATMega328P)

On one hand we have FreeRTOS, an awesome tiny operating system you can run on almost any microcontroller in order to run concurrent processes. It is also great to learn how more complex operating systems, say Linux, work under the hood. And on the other hand we have Arduino, a small, low-cost and user-friendly microcontroller development board.

So, why not combine both? Let's have a look at it.

Supercapacitors VS Batteries
image by Adafruit

By now you have probably hear about supercapacitors and: an alternative to batteries, with ultra short charge times and high output-power peaks.Be assured that this is true, and that you can already buy supercapacitors for a relatively low price. 

However, supercapacitors are usually misunderstood, as they do not substitute batteries but offer a functionality for which most applications used to resort to them: short term (i.e. less than 1 minute) power  storage. Also, do not confuse supercapacitors with graphene-based ultracapacitors, which do in fact have the potential to make chemical batteries obsolete.

In this post I will cover the main differences between supercapacitors and batteries (e.g. lead-acid and LiPo/LiIon batteries), and show you a quick equivalence formula to compute how big a supercapacitor must be to replace a given battery.

How to program Arduino with Atmel Studio

Arduino is a fun entry point for those of you who want to program microcontrollers. It comes in two parts: the Arduino development board itself, and the Arduino IDE, a very easy to use notepad-like environment where you can write your code.The Arduino board itself is nothing more than a development board for an ATmega328P microcontroller with some nice extras, while the Arduino IDE takes care of making programming a microcontroller a kid's game.

However, the IDE can sometimes get in the way of a more advanced programmer, as it ads a lot of extra code we sometimes do not want (o prefer to do our self). The remedy is to program the ATmega328P with Ateml Studio 7, just as if it were a regular microcontroller. But for that, we first need to tell it how to "talk" to the Arduino to program it.

rsync: copy files the intelligent way

You probably heard about last Friday's massive cyber attack that affected millions of outdated machines that still run Windows XP, but also newer version. Luckily the pandemic got halted almost by sheer luck (read more at hackaday).

Anyway, it could have affected any of us (maybe dual-boot?), which alerted me of the fact that I had not backed up my files for quite some time now. This gave me two options. Either plug in my external backup HDD and copy everything with my file browser (overwriting old files), or do it the intelligent way: an incremental update to my backup with rsync to only copy modified files.