Marc Gallant

Hi, I'm Marc. I like robotics, software, science fiction, badminton, guitar, baseball, and teaching. I do not like mushrooms.

2023-08-05 Level 7
2023-02-17 Defaults
2023-02-15 Algorithm Illustrations

Level 7

While I was working in Germany, my workplace had a small English language library. It was mostly stocked with donations, containing what I estimate to be a few thousand books. Luckily for me, it had a sizeable science fiction section, with some authors dominating the collection (presumably favourites of the donors) and scores of out-of-print books from the 1950s to the 1980s. I had a lot of time to read, as I was living by myself in a foreign country and took the tram to work every day. So often on my lunch break, I found myself browsing through the science fiction section, essentially judging the books by their covers.

One thing interesting is the books never changed. Over a year of visits, there were never any new books in the science fiction section. I came to enjoy this lack of option paralysis. Books that I had earlier skimmed over quickly became prime candidates as I read my way through the section. As a result, I read many books that I wouldn't have given a second glance had I had access to the tome of a large public library. One such book was Level 7 by Mordecai Roshwald.

Level 7 is a speculative fiction novel written in 1959, not far after the start of the Cold War. It is about a military officer (whose nationality is never specified) that receives orders one day that require him to enter an underground complex. Shortly afterwards the complex is closed and sealed (to the surprise of the officer) and he is ordered to push buttons that he later learns was his direct participation in nuclear war. The whole war lasts about three hours and then the protagonist is faced with living the remainder of his life on the bottom (seventh) level of the underground complex.

This book is terrifying. I can't imagine reading it at the time of its publication, when its events were a very real possibility, at least more so than today. I can feel the claustrophobia setting in page by page, and with it, the anxiety of the inhabitants. As clues trickle in that reveal the state of humanity and the likely fate of the entombed survivors, it's clear that perhaps those who remained on the surface were the lucky ones.

Several years later I happened across the book at a used book store and bought it at once. Upon re-reading it, I fell into a kind of stupor that I recalled from my first time through. I don't know if I'll read it again.

In some ways this story gives the most realistic picture of nuclear war that I have read in any work of fiction.
Linus Pauling


When I first started developing in Linux, I went all in on the tools and configuration rabbit hole. I heavily configured my .vimrc with all the latest plugins. My tmux.conf had a clock and weather. My .zshrc was full of aliases and plugins. And the crown jewel of my setup was my heavily configured i3 window manager (sans desktop environment, of course). And so on. Everything was under version control and could be configured and installed via scripts. Based on countless reddit subreddits and blog posts, I certainly was not alone. I was zipping around the command line, window splits, sessions, etc.

My setup became more of a hobby then any sort of notion of productivity. That isn't to say I didn't enjoy it. Whether it was learning of new tools on unixporn or tweaking the colours in my .Xresources, heck I was having fun with it. So what if switching between monitors required a custom script or connecting to wifi required puttering around on the command line. Everything was so lightweight!

Eventually I was issued a laptop at work where I was a little more restricted as to what I could do with it. At the same time, I had moved onto other hobbies and wanted to try something a little different. I decided to have a go at really learning the default Gnome desktop. And by defaults I mean just that, I didn't tweak any keyboard shortcuts or any other settings. Rather I learned not only how things were provided out of the box, but also how the desktop was designed to be used (i.e., the Gnome philosophy). It was actually kind of enlightening. At first it was kind of like moving around with one hand behind my back. But to be honest that's what learning vim was like until I stuck with it. And there's something to be said with being able to hop onto anyone else's machine and feel right at home. And although I've toned down the configuration and plugins, I'm still right at home on the command line.

Now, several months later, here I am looking ahead at the new features and improvements in the next Gnome release.

Algorithm Illustrations

I often like to draw illustrations to help communicate an algorithm I am explaining, designing, or implementing. For example, perhaps I am teaching someone how a Kalman Filter works using the popular example of a one-dimensional robot driving towards a wall. For this task I want to use simple program(s) that can do the following:

  • Draw lines, arrows, shapes, and other simple geometries
  • Easily align the different geometries with snapping, guides, and distributing tools
  • Is not overburdened with many features and tools I'll never use
  • Label different parts of the illustration with mathematical symbols or equations, preferably using LaTeX
  • Edit the math/LaTeX after I've put it in the image to update symbols or fix mistakes
Here's the Kalman Filter illustration that shows the kind of detail I usually include.

Back when I was using a Mac for everything, my preferred solution was a combination of Omnigraffle and LaTeXiT, which worked wonderfully. But I've sinced moved on to Linux and prefer to use open source software when possible. A good illustrating solution eluded me until recently, when I found it in LibreOffice Draw with the TexMaths plugin (with which I made the above illustration). Success!