The ultimate C printf debug line

The simplest way to add printf statements that say “I was here”: printf(“File %s, Line %d\n”, __FILE__, __LINE__); The output is then simply e.g. File bulktest.c, Line 120 So make sure everything is committed into the git repo, and bombard the code with these lines. Compile and run.

Add-on icons vanished after Firefox upgrade

Don’t get me wrong: I didn’t upgrade Firefox. It upgraded itself suddenly into Firefox 68.o Quantum. How did I notice? Not because it became any better, but because suddenly things stopped working. And I got logged out from several sites. For example, my Adblocker and other add-on suddenly vanished. Checking the add-on settings, the relevant [...]

KiCad PCB layout: Adapting the footprint’s pads to match track width

Introduction It just so happened that I went for a pair of 0.8mm thick wires, with 0.2mm between them, in order to achieve 90Ω differential impedance on a 1 mm thick FR4 board. No wonder PCBnew (KiCad’s layout program) refused connecting these wires to a USB SuperSpeed receptacle’s footprint, with its 0.4 mm side pads, [...]

Linux / X-Windows: Which process owns this window?

Once in a while, there’s a piece of junk on the desktop, and the question is who should be blamed for it. The short answer is: $ xwininfo and fetch the window’s ID from the line at the beginning saying e.g. xwininfo: Window id: 0x860000a “xclock” And next, fetch the alleged process ID: $ xprop [...]

Making a snapstot of a full Ubuntu / Mint repository on the local disk

What’s that good for? This isn’t about maintaining a local repository that mirrors its original, following along with its changes. The idea is to avoid the upgrades of a lot of packages every time I want to install a new one with apt. Maybe I should mention that I don’t allow automatic upgrades on my [...]

apt / dpkg: Ignore error in post-install script

You have been warned This post shows how to cripple the installation of a Debian package, and make the system think it went through OK. This might very well bring your system’s behavior towards the exotic, unless you know perfectly what you’re doing. In some few cases, like the one shown below, it might actually [...]

ImageMagick convert to scale jpgs

Instead of using my scanner, I put my cell phone on some kind of stand, and shot a lot of paper documents (voice activation is a blessing). But then the files are unnecessarily large. Don’t need all that resolution. So $ for i in * ; do convert “$i” -scale ’33%’ -quality 75 “smaller/scan_$i” ; [...]

When mplayer plays a black window (or: Cinnamon leaking GPU memory)

The incident All of the sudden, playing videos with Mplayer opened a black window. Sometimes going fullscreen helped, sometimes it didn’t, sometimes with video playing but without OSD. ffplay worked, but somewhat limping. Setting: Linux Mint 19 on an x86_64, with a couple of fanless GeForce GT 1030 graphics cards and Cinnamon 3.8.9. Mplayer’s output [...]

Cinelerra 2019 notes

Cinelerra is alive and kicking. I’ve recently downloaded the “goodguy” revision of Cinelerra, Nov 29 2018 build (called “cin” for some reason), which is significantly smoother than the tool I’m used to. Notes: There are now two ways to set the effects’ attributes. With the good-old magnifying glass (“Controls”) in with the gear (“Presets”), which [...]

Solved: netcat (nc) doesn’t terminate at end of transmission

Introduction I often use netcat to transmit chunks of data between two Linux machines. I usually go something like $ pv backup-image.iso | nc -l 1234 on one machine, and then maybe # nc 10.1.2.3 1234 > /dev/sdb1 This is an example for using another machine to write data into a USB disk-on-key, because writing [...]