Google Chrome: Stop that nagging on updates

I have Google Chrome installed on a Linux machine at /opt/google as root, so the browser can’t update itself automatically. Instead, it complains with this pop-up every time the browser is started: What I really like about this pop-up is the “you’re missing out” part. I get the same thing from the silly image gallery [...]

Google Translate, LaTeX and asian languages: Technical notes

Introduction These post contains a few technical notes of using Google Translate for translating LaTeX documents into Chinese, Japanese and Korean. The insights on the language-related issues are written down in a separate post. Text vs. HTML Google’s cloud translator can be fed with either plain text or HTML, and it returns the same format. [...]

Translating technical documentation with Google Translate

Introduction This post summarizes my insights as I worked my way through translating some technical documents, written in LaTeX, into Chinese, Japanese and Korean. The immediate approach was to feed Google Translate with the pdf documents, but not only are the results ugly, but then there are a lot of technical terms in the documents [...]

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