Today I learned / realized / released.

See these posts by tags here.

See only the TIL photography posts here.

Cross-ratio definitions. 18 Apr 2023

I am reading Richter-Gebert’s book (1, Richter-Gebert, 2011) and I keep on going back to the cross ratio formula. I’ll sketch some notes here for my o...

A MWE for getting video to play in Beamer. 04 Jan 2023

I forgot that I wrote a short MWE for getting videos to play in Beamer, the LaTeX presentation class, until someone forked the repository. The MWE is from 20...

Scheduling Mastodon posts with FediLab. 26 Dec 2022

I learned from Conor O’Sullivan that there is a post scheduler available for Mastodon. I was thrilled as I have been searching for a post scheduler since I ...

Mastodon cards, or PreviewCards. 03 Dec 2022

Disclosure: I’m having trouble getting preview cards to work. I’ll update this post when I figure it out. Hints? Let me know on Mastodon.

CMake: How to force reconfiguration. 29 Nov 2022

In a TIL from yesterday, I mentioned that when I’m changing around the CMakeLists.txt file, my go-to troubleshooting strategy is to delete everything in the ...

Mixing C and C++ in one file. 27 Nov 2022

I had to mix C and C++ because I was using a C library for something, and forgot the syntax. IsoCPP has the guide; the short answer is to declare C functions...

Jekyll: publish locally but not publicly. 24 Oct 2022

It takes me a few days to write longer posts and I had this idea that there’s probably a way to generate the post locally, so I could see the formatting, but...

Extract segments of video using ffmpeg. 11 Oct 2022

Cutting out a segment of video using ffmpeg is not hard, but I always forget the flags. NO MORE once I have written this today-I-learned / today-I-remembered...

Link to a pdf and open at a specific page 01 Sep 2022

I want to be able to link to a pdf, and open at a certain page. This task was straightforward and worked on my machine! From Adobe, To target an HTML li...

Keyboard shortcuts in Firefox. 24 Aug 2022

I have never learned the keyboard shortcuts for Firefox – specifically switching tabs. I get frustrated if I need to do a lot of switching. But! The...

The condition number of a sample. 15 Jun 2022

Today I learned about the condition number, \(\kappa\), of a sample \(\{ x_i \}\) of \(N\) data points, with respect to computing the variance. Previously,...

How are the days numbered for cron jobs? 06 Jun 2022

When setting up cron jobs, there is a dow field, and I did not know how the days were numbered. For instance, what is the first day of the week? Sunday is ...

TIL about updating camera firmware. 18 May 2022

I was playing around on the Nikon site and noticed I could update the firmware of my camera, from Nikon’s download page. My camera is an older model, so I j...

Compression in ImageMagick 10 May 2022

Following up on a previous post about converting images to a TIFF with a specific dots-per-inch, or DPI, for large images it may be necessary to compress the...

Octave has a symbolic computation package! 15 Apr 2022

I was happy to learn that Octave has a symbolic computation package! I last used Matlab’s version in grad school to compute analytical Jacobians. To use, ha...

Batch renaming files in Windows. 21 Mar 2022

I don’t do any development work on Windows. When a collaborator asked me how to rename a bunch of files on Windows, I didn’t know how to do it. Thankfully, ...

C++ assert with an error message. 07 Mar 2022

I forget this one frequently. To write an assert in C++ with an error message, the following works: assert(a >= b && "a was less than b"); Rele...

Horizontal spacing syntax in latex 16 Nov 2021

I typically use \quad to get more space in latex, and knew there were other space commands to use in-text, but had never remembered them past one use. Well,...

Distribution generators in C++ 11 Nov 2021

I went looking around for generators to produce normal distributions in C++. It turns out this has been a thing since C++11! and is in the std namespace. Yo...

Tikz: creating a line break in a node. 26 Oct 2021

How do you create two more more lines of text in one TikZ node? You need to include an align option, and use double backslashes. \node[draw, align=left] {Th...

Extracting submatrices in Eigen (C++). 23 Jun 2021

Whenever I needed to copy a submatrix in Eigen (the matrix library in C++), I would just walk through it with two for loops like it was 1998. BUT recent ex...

Size limits for Twitter card images 14 Jun 2021

I relearned today that if you’re using an image for a Twitter card, the largest that image size can be is 2 MB. (I have some posts from 2018 on Twitter cards...

std::filesystem in c++17 14 Jun 2021

I was thinking that maybe C++ had some support for paths by now … something like Python. And it does, std::filesystem! It is in C++17, and a little funky to...

Track down bad links with Linkchecker 25 May 2021

There’s this neat little tool to track down dead links in websites that I used a couple years ago and then somehow forgot about, LinkChecker. Install with ...

Remembering how to install Docker in 2021. 24 May 2021

I’ve been transitioning over to a machine with Ubuntu 20.04 on it, tried to install Docker with sudo apt install docker and remembered, slowly, that is not...

A UV filter for your lens. 20 May 2021

[photography] A quick note, I was rather late in getting UV filters for all of my lenses. They are a lot less expensive than lenses, and many people use them...

Custom image width in Markdown / html. 05 May 2021

Today, I wanted to change the width on an image, in a webpage, that was written in Github-flavored Markdown. Like, groan. I had read this page at some pre...

2D rotations in Eigen (C++). 03 May 2021

Eigen, the matrix library in C++, is so cool. Having written some of these functions during the 00s in my own code, agonizing about whether I got the subsc...

How to create a montage in ImageMagick. 02 May 2021

Supposing you want to see a whole directory of images, resized and smooshed together into one image. (Having a crash? New section.) This is easily done in ...

Selecting GPUs in PyTorch. 14 Apr 2021

I have a weird configuration, one older GPU that is unsupported by PyTorch and one newer GPU that is supported by PyTorch. With Docker, I was able to specify...

YAML is weird. 15 Mar 2021

Igal Tabachnik had a shitpost about YAML on Twitter. I didn’t totally get it, so I keep reading and was rewarded with not only understanding the shitpost, bu...

Cleaning up after docker. 09 Feb 2021

I was working on my personal computer and got a low disk space warning while playing around with some Docker images. So I went back to this blog post, Keepi...

Freezing a file in git. 05 Feb 2021

I wanted to freeze a file in git, so that when someone commits, this file is not updated. The file is a user log file, so while we’re testing, it gets bigger...

Launch a GUI application with Docker. 02 Feb 2021

Something that occasionally happens is there’s a version of software that is not compatible with your OS. Ok, just launch it with Docker! Well, not so fast,...

Using Image Magick to create watermarks. 23 Jan 2021

I wanted to add some small text to images, and got on this kick of using ImageMagick create small watermarks on a directory of images. Here’s the steps to d...

Using Image Magick for batch jobs. 26 Dec 2020

I love Image Magick and have been trying to learn more about it so I can use it more frequently. In particular, I resize directories of images so that I can...

Documentation in FastAI, nbdev. 16 Oct 2020

You’re going to find some utterly newbie / neophyte - python / FastAI stuff in the TIL section (I don’t know, maybe I need more slashes?!) in the coming week...

Blacklight, a website privacy inspector. 02 Oct 2020

[This is more last week I learned …] about a new tool called Blacklight. The gist of Blacklight is, Who is peeking over your shoulder while you work, wat...

FastAI has docker containers! 15 Sep 2020

There’s been some discussion on Twitter about FastAI and Docker containers, so I went looking yesterday in the fastai section of GitHub to see if there were ...

Installing MS Teams client on Ubuntu. 09 Sep 2020

If you are unlucky enough to have to use Microsoft’s Teams, and you use Linux, I am crying with you. This is how I got the desktop client to install. (The ...

StatCounter: moving on from the big G. 07 Sep 2020

I have been wanting to get rid of Google Analytics on my website. One, I am trying to reduce the Google-influence in my life, and two, I have to disconnect ...

How to get RSS set up on non-post pages. 02 Sep 2020

I am a new user of RSS, and I wanted to set it up on my website. The template I use allows this easily in an atom.xml file for blog posts. But I have longe...

Jekyll upgrade. 29 Aug 2020

(This is a ‘Today I Realized’.. post) I couldn’t get my website to generate locally with jekyll serve, which is a pain. I was playing around with another Je...

Differences in AprilTag libraries. 24 Aug 2020

I’ve been working with two different AprilTag libraries. AprilTags are a 2D bar code used in robotics research mainly, originating from Edwin Olson’s lab (p...

Rotating a video by 90 degrees. 23 Aug 2020

I needed to do some video processing, as the videos were rotated 90 degrees. Turns out this is not a problem for ffmpeg! First, strip the sound, ffmpeg -i...

Image Magick has a C++ API 21 Aug 2020

I discovered today that Image Magick has a C++ API! I’ve been using Image Magick’s command line tool more and more to do various tasks. Some of these things...