Welcome to johnbintz.com

Papagayo: All the fixes

Jun 05, 2020

With the animation I’m working on I want some help breaking down the lip movements that Bamboo is going to have to make while talking. I saw that Synfig has support for loading Papagayo lip sync files so I took a look at the 2.0, C++ version of the project and saw it was quite abandoned.

I decided to incorporate a bunch of the great fixes to the software over the years, as well as a tweak of my own, to the all-the-fixes branch on my forked repo. And, to make sure it’s working as intended, I created a lip sync from my animatic audio in the forked version:

animatic audio save it

…and loaded it into Synfig:

load it see in properties

I’m not looking to become a hardcore maintainer of Papagayo. I just want it working well enough for my animation work. If you want to help keep it going, pull requests are best!

Update: I found the Python-based 1.x fork called Papagayo-NG which seems better maintained and has AppImages. I may try this one out as well. The project is also more active than the original one.

Synfig Notes 1: The Setup

Jun 03, 2020

Some notes as I work on my first decent sized animation in Synfig and I get the app ready to go for smooth production work.

Sandstorm static hosting proxying and Not Found handling with nginx

May 09, 2020

I host all my sites on Sandstorm using Hugo and hugo-sandstorm. This is super convenient for a couple reasons:

However, there are limitations:

I was solving the latter 2 for a while with HAProxy, but after setting up the site for Rabbit with 1000 Repos and realizing I wanted to shift pages and sections around as the dust settles on this hit new comic, I wanted 404 pages so folks could still find what they were looking for.

Here’s the nginx config I eventually came up with. You’ll still have to put the site’s public ID as a TXT record into your domain name as indicated in your static config setup, and make sure the Host header is sent along correctly so Sandstorm can do the DNS lookup correctly:

# redirect http to https without wildcards
server {
  listen 80;

  server_name ~^.*\.johnbintz.com$;

  return 301 https://johnbintz.com$request_uri;

# serve subdomainless from sandstorm
server {
  listen 443 ssl;

  # let's encrypt certificates go here

  server_name ~^johnbintz.com$;

  location / {
    proxy_set_header Host johnbintz.com;
    proxy_pass https://the-sandcats-url-sandstorm-static-publishing-gives-you;
    proxy_intercept_errors on;
    error_page 404 /404/;

Then, if you’re using Hugo, create content/404.md with the contents of your 404 page. In the event of a missing page, the user will be handed the content of this 404 page, and receive an HTTP 404 Not Found header in response, so search engines will do the right thing, and it’s way better than the blank Cannot GET /this-page-does-not-exist page you get normally with Sandstorm static publishing.

Root Board Game: Player Guide

Apr 26, 2020

I love the board game Root. It’s my favorite board game of all time. I love the RPG, too. I’ve been been working on making a one page player guide I use when I teach the game. You should buy the game, then use my player guide for when you want to help teach the game faster.


Windows 10 ISO to USB drive on Linux

Apr 22, 2020

I’m building a streaming/gaming PC and got Windows 10 Home because some games are just not fans of Wine yet. :( Making a USB flash drive to install Windows 10 from, however, was tricky, and it was all due to the size of the installer file Windows 10 uses, install.wim. In recent Windows 10 ISOs it’s larger than 4GB, so it won’t fit onto a FAT32 filesystem. FAT32 filesystems are easily booted and read by most motherboards, and in order to use these larger ISOs, there’s an NTFS shim you can install.

With my combo of an older MSI motherboard, using WoeUSB with that shim from the Rufus project, and the ISO for Windows 10 1909, and a perfectly acceptable 16 GB USB flash drive that I’ve used for countless Linux installs, I could make the installer boot, but it would fail on install.wim with no details as to what’s going on except for error code 0x8007000D. This was with both Legacy Boot and Secure Boot enabled, and the file size on the USB drive matched the file size in the mounted ISO.

I forgot how much fun it is to work with Windows.

After trying to use either WoeUSB’s GUI or command line with the 1909 ISO, I decided to hunt down an older ISO where install.wim is smaller than 4GB. I ended up getting the 1709 ISO from this site so I could build the USB drive using a FAT32 filesystem. It installed from there, and after logging in Windows Update seems happy and it activated and everything, so I guess it’s safe and OK? Microsoft only offers the absolute latest ISO on their site, or I could’ve ordered Windows on a USB drive, but I’ve been burning Linux images for years now with no problems, so how hard could this have been?

I’m also wondering why Microsoft can’t, like, make install.wim smaller. Does it all need to be in one big file? (no). Is this a way to get folks to upgrade to newer computers that can better handle the NTFS boot process? (probably). Would the Microsoft media manager tool have magically worked right, despite this being, like, a solved problem technically? (also probably) Do they just have a ton of old USB drives from conferences they’re trying to unload on us who want to build after-market PCs to legally install Windows on? (this is the likeliest scenario)