What methods are there to connect an external (USB) drive or memory stick to a Linux box most conveniently?
They use a “real database”. They use “nice object-oriented libraries”. They use “nice C++ abstractions”. And quite frankly, as a result of all these design decisions that sound so appealing to some CS people, the end result is a horrible and unmaintainable mess.
Building open-source software from source is not necessarily hard: after
make is fairly easy. But dealing with the tools and
dependencies can be tedious, in particular, if you don’t use them
all the time.
In this post, I want to describe how to use Docker containers as
convenient, clean-room build environments.
QR codes are a two-dimensional equivalent of barcodes: a graphical encoding of information, which in practice means a string of about 4000 alpha-numeric characters (upper-case only) or a little less than 3000 arbitrary bytes.
So, how then are QR codes able to perform magic, such as automatically opening web pages, or sending text messages, or even dealing bitcoin? The answer is: they can’t.
Let’s try to understand what’s going on.
Sharing files across computers on a local, “informal” (home) network is a recurring desire. Yet, at least in the Linux world, one that does not have an obvious, canonical, default solution. Email, cloud storage, or using an USB stick all seem shockingly common.
In a moment of nostalgia, I picked up my copy of “The Art of UNIX Programming” by Eric S. Raymond (esr) and flipped through it again. It’s a book I’ve had since when it came out in 2004, and that I’ve always been quite fond of. I was looking forward to a review of “the way the future was”, as viewed from the early 2000s. So, it came as a bit of a surprise to me to find that the book seems to have aged rather poorly.
Containers are not usually associated with GUI applications, but there may be times when one might still want to run such a program inside a container, for example to isolate the application’s dependencies. Installing a GUI application in a container means that not only the application, but also all its specific dependencies are encapsulated inside the container (respectively, the container image), and can therefore reliably be removed from the system in a single step.
The primary challenge is to let a container communicate with the host’s display system, so that it can create GUI windows on the host. A GUI application will likely also need to share files with the host system, which in turn requires the appropriate user permissions.
In praise of what? Pic? Pic? Pic, the old diagram generation “little language” and half brother of roff (or troff or groff), from the days when Unix was young? Yes, indeed, that pic.
In a previous post, I explored the possibilities of running a GUI application inside a Docker container. In the current post, I will continue where we left off before, adding some details to make the process more convenient.
There are problems playing the pysolfc solitaire game on the latest release of Linux Mint 21 (Vanessa).
The game requires the
formatter module from the Python
Standard Library, which had been deprecated since Python 3.4,
and has been removed in Python 3.10.
An easy, but ad-hoc workaround goes as follows: