Octave: Creating images from plots for web page

This should have been a trivial task, but it turned out quite difficult. So these are my notes for the next time. Octave 4.2.2 under Linux Mint 19, using qt5ct plugin with GNU plot (or else I get blank plots). So this is the small function I wrote for creating a plot and a thumbnail: [...]

Looping on file wildcards in Octave

So I have written a function, showfile() for Octave 4.2.2 on Linux, which accepts a file name as its argument. And now I want to run it on all files in the current directory that match a certain pattern. How? So first, obtain the list of files, and put it in a variable: >> x=ls(‘myfiles*.dat’); [...]

Microsoft Windows: Atomic ops and memory barriers

Introduction This post examines what the Microsoft’s compiler does in response to a variety of special functions that implement atomic operations and memory barriers. If you program like a civilized human being, that is with spinlocks and mutexes, this is a lot of things you should never need to care about. I’ve written a similar [...]

How to edit login passwords in Google Chrome

Introduction Unlike Firefox, Google Chrome doesn’t allow editing passwords (at least not the version I have, and it seems like this feature will be added). One possible workaround is to enable Google Sync for passwords, and have those stored on the server: It’s possible to edit the passwords at passwords.google.com. If you have no problem [...]

Firefox: Stop that nagging on available updates

After upgrading to Firefox 72.0.1 on Linux, I got a tab encouraging me to upgrade Firefox (and that it couldn’t be done automatically). To make things worse, the option to turn off automatic upgrades checks has been removed from the GUI interface. Why? Call it what you want, at the bottom there’s a “let’s force [...]

Octave: Empty plots (after “figure”)

Running Octave 4.2.2 on Linux Mint 19, I got plots with nothing in them occasionally. Solution: Change the graphics toolkit to GNU Plot. Simply put, add ~/.octaverc reading graphics_toolkit(“gnuplot”) and rerun Octave. By the way, for zooming in, right-click the mouse on the first point, and left-click on the second.

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. The is also __func__ (lowercase, or it [...]

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 [...]