Skip to footer navigation.

Oatmeal

A digital pillow fort

mkv no more

My previous post included a video. I made that video with OBS which outputs .mkv video files.

I wanted to do my best to ensure that folks with a variety of devices and browsers would be able to watch the video if they wanted to, so, I converted it into a few different formats.

Here’s the bash script I wrote to do that. It relies on ffmpeg.

#!/bin/bash

# Won't work if ffmpeg isn't installed
if ! command -v ffmpeg &> /dev/null; then
    echo "ffmpeg is not installed. Please install ffmpeg to use this script."
    exit 1
fi

# Needs a .mkv file to work on
if [ $# -eq 0 ]; then
    echo "Error: Please provide a .mkv file as argument"
    echo "Usage: $0 <input.mkv>"
    exit 1
fi

INPUT_FILE="$1"

# Make sure the file actually exists and is the right format, .mkv
if [[ ! -f "$INPUT_FILE" ]] || [[ "${INPUT_FILE##*.}" != "mkv" ]]; then
    echo "Error: '$INPUT_FILE' is not a valid .mkv file"
    exit 1
fi

# Say my name, say the name you'd like the output files to have
read -p "Enter the desired output base name: " OUTPUT_BASENAME

# Convert to MP4 (H.264 + AAC)
ffmpeg -i "$INPUT_FILE" -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k "${OUTPUT_BASENAME}.mp4"

# Convert to WebM (VP9 + Opus)
ffmpeg -i "$INPUT_FILE" -c:v libvpx-vp9 -b:v 1M -c:a libopus "${OUTPUT_BASENAME}.webm"

# Convert to Ogg (Theora + Vorbis)
ffmpeg -i "$INPUT_FILE" -c:v libtheora -q:v 7 -c:a libvorbis -q:a 5 "${OUTPUT_BASENAME}.ogv"

# Check that all the output files exist before announcing your success
if [ -f "${OUTPUT_BASENAME}.mp4" ] && [ -f "${OUTPUT_BASENAME}.webm" ] && [ -f "${OUTPUT_BASENAME}.ogv" ]; then
    echo "Conversion complete! Files generated:"
    echo "${OUTPUT_BASENAME}.mp4"
    echo "${OUTPUT_BASENAME}.webm"
    echo "${OUTPUT_BASENAME}.ogv"
else
    echo "Error: Some output files are missing!"
    [ ! -f "${OUTPUT_BASENAME}.mp4" ] && echo "Missing: ${OUTPUT_BASENAME}.mp4"
    [ ! -f "${OUTPUT_BASENAME}.webm" ] && echo "Missing: ${OUTPUT_BASENAME}.webm"
    [ ! -f "${OUTPUT_BASENAME}.ogv" ] && echo "Missing: ${OUTPUT_BASENAME}.ogv"
    exit 1
fi

Once the video was converted into all 3 formats, .mp4, .webm, and .ogv, I then pointed at all 3 within one <video> tag, like so:

<video controls="" poster="/_assets/_images/2.jpg" preload="none" width="640" height="360">
    <source src="/_assets/bin/video/skwak.mp4" type="video/mp4">
    <source src="/_assets/bin/video/skwak.webm" type="video/webm">
    <source src="/_assets/bin/video/skwak.ogv" type="video/ogg">
    <p>Your browser does not support the video tag. You are rad as hell. </p>
</video>

The notable bits in that markup are setting the poster and setting preload="none", together what they do is make sure that the browser doesn’t try to fetch anything unless a person explicitly asks for it, and set an image to fill the element so that it doesn’t look sad and empty.

Skwaking Week Notes

I’d never thought about adding playlists to my website, but then I did it and now I wanna add more. While I wait to put together another playlist, here’s the song that I’m listening to right now — Lady Lamb’s Crane Your Neck.”

We had a few big snows, so the kids spent extra time at home and we’ve done a fair bit of sledding and shoveling. There was a bunch of frozen rain after one of the snow storms, so the snow had a crunchy, slick sheet of ice on top of it. The sled fucking flew across the surface of the snow. It was nuts. Like warp speed for sleds. The kids agreed that it was much too fast for sledding.

Reading

I finished a handful of books since my last update. Notable items from the list include TJ Klune’s Under the Whispering Door and The God of Small Things by Arundhati Roy.

Under the Whispering Door is, if you’ve seen either Dead Like Me or Pushing Daisies, essentially those two shows smooshed together…but this is very positive. I liked both of those shows almost as much as Wonderfalls. Under the Whispering Door is very much, but also very quietly, a book about grief — I do think the ending slightly undercut this, but I enjoyed it. Defo a cozy” read.

I’m still in the midst of The God of Small Things, but, essentially, Arundhati Roy is blowing my mind. More thoughts to come.

Playing

Sable. I’ve been playing Sable. The art is really lovely, and it runs as good as I need a thing to run on the Steam Deck. It also hides some of its performance issues behind an intentionally stuttering animation style. When I picked up Sable it was entirely because of the visual aesthetic — I am please that I’m finding the story compelling, and the sound track provided by Japanese Breakfast is a treat!

Thanks to a Jillian mentioning it in a recent now” page update, I’ve been playing a fair bit of Isle of Arrows. After seeing it, I joked that I felt compelled to either play or make a tower defense game, and then so many folks said why not both” I also fiddled with making my own.

Making

I made a very basic auto-battler tower defense game, but am not super cozy sharing it…at least not yet. The vibes of it are bad. Shooting lil’ dots as they try to navigate a narrow, procedurally generated path is leaving me with some ick. But, I made it. It has 2 phases. During the first phase you’ve got a limited amount of currency to purchase and place various types of towers that all have different abilities/effects. Once you’ve placed your stuff you click run” and the game plays itself for a bit — little dots of varying speed and ability (some can shoot back) try to navigate down the path. After all the little dots are either done marching or massacred a new level is generated and you repeat the loop. You loose if you loose all your money, and you loose money when the dots escape. Here’s a link to a screenshot that I couldn’t get to be under 1 MB, so I’m not gonna inline it into an already heavier than normal blog post.

I’ve also been working on a longer term, slightly more unhinged project.

Here’s a video where I talk about that project a bit more. Please note, I may end up re-hosting this video on a peertube instance once I figure out where which one to sign up with. For now, it is on my website itself, which may be a bit slow. The project builds off of the f.awk — and aims to be a mostly workable scheme, but implemented in awk.

In reply to: The politics of accessibility – Brian DeConinck

A devastatingly perfect blog post.

The core concept of digital accessibility is that everyone, including people with disabilities, should be able to access information and accomplish tasks via computer independently.

Continuing later,

This is an intensely political statement, backed by decades of protests and lobbying and litigation. And that’s important context for understanding everything else that’s happening now.

Styrofoam cups and awk

I like writing these posts for my website, but I’ve sat down to write this one like 11 times and it either takes on a tone of totally encompassing dread and dystopian navel gazing or I feel like I’m burying my head in the sand and ignoring reality as it happens around me.

…I finished reading Victor LaValle’s The Changeling. It was engaging, and I was interested in where it was going, but I found that where it went wasn’t interesting. The dialogue and prose were lively and contemporary, which is what really kept me going with the book. I’ve started The Phoenix Keeper by S.A. MacLean as well as Jiro Taniguchi’s The Walking Man — that one as part of a bookclub!

The Walking Man had me from the jump because it opens up with some birding. The Phoenix Keeper is a bit more YA than I usually lean, but I’m enjoying it — I think it’d make a really great animated series.

I’ve been poking at two programming projects — one was thoroughly and totally ill-advised. The fun one: I’ve been fiddling with making a sort of generic starting point that I could use to make card games. I was inspired to do this when I came across Cuttle, which is sorta like MTG or Netrunner but with a normal deck of cards.

What I’ve got so far is pretty basic. Here’s a demo with 4 decks of cards. Each deck is shuffled, and I’m tracking which card belongs to what deck. I am modeling a few different layers of abstraction, but I think I need to add in a box” or something, so that you can move an entire deck around more easily. Click and drag to move the cards around. Right click to flip the cards over. It currently doesn’t play nicely with touchscreens, but I can add that in someday soon!

The ill-advised project: inspired by John Earnest’s implementation of lil in awk, Lila, I set out to make a non-trivially sized program using awk. Enter f.awk! It is a really basic implementation of forth in awk. It is missing conditional branching, It sort of supports conditional branching, but does have support for user-defined words!

I learned a lot of awk doing this…and I guess I feel more comfortable using awk, but I also find myself reeling from the lack of any useful developer tooling. JavaScript and the browser have me spoiled, I guess? If I was clever I wouldn’t implement forth directly in awk, instead I’d implement a simple virtual machine using awk, and then implement the forth using the virtual machine’s byte code…but there is only so much brain power I can exert on such a silly project.

This morning I read a blog post, Keeping the seat warm between peaks of cephalopod civilisation. I liked this quote:

Birds are just little Napoleons, exiled on their St. Helena of deep time, before they make their vengeful return. Octopus patiently biding their time until the fish clear off again. And here we are, just keeping the seat warm.

While I never really used the phrase deep time” in grad school doing the Art History thing, I was trying to write something about landscape paintings that included major geological features, and how they relate to Timothy Morton’s thinking around hyper objects…things so humongously distributed in time that we struggle to really even perceive them, like climate change and a styrofoam cup.

Also, check out my blogroll. It slaps. Well, it is just a list of links…but those links are rad.

Year in review, 2024

As a treat, I figured I could write a year in review kinda thing, too. In no particular order here are some reflections organized into some mostly sensical categories.

Health

Since recovering from my brain bleed and the subsequent repair procedures, this year I’ve enjoyed getting back into a routine of exercising. I’ve never been one to track numbers, or reps, or distances — I mostly exercise because I enjoy doing it. This year I got back into going for regular short runs, very long walks (sorry aging dog, I know those aren’t always your fav. (she can keep up, but I think she gets bored?)), and both lifting or rowing. I’ve also started to play a lot more squash. I’ve always really enjoyed games like squash and tennis, but hadn’t had opportunity to play either since leaving home for college…a billion million trillion years ago. Now, though, I live within walking distance of a community center with squash courts, and that has been a blast. I look forward to more squash in 2025.

Reading

I have 43 books on my reading list for this year.

Of course, my favorite read was Villette by Charlotte Brontë…but that shouldn’t count because I’ve read it like 20 times and it is my favorite book ever.

My favorite first-time read, I think, would have to be The Adventures of Amina al-Sirafi by Shannon Chakraborty. It was really fun, and a book that, when I finished I was immediately excited to re-read and to see if there was a sequel (there isn’t one…yet!). Other stand out titles include Arkady Martine’s Teixcalaan series, Le Guin’s The Other Wind, Radiance by Catherynne M. Valente and Robin Sloan’s Moonbound.

I also re-read This is How You Lose the Time War by Amal El-Mohtar and Max Gladstone, in it, I noticed a passage where a character recommends a book to another character…the first time through this book I hadn’t noticed that section, or thought much about it. This time round I looked that book up. It is real! It is a real book! I read it — it was a little tricky to find a copy, but I read it and it was really good! Travel Light by Naomi Mitchison is a cross between an Icelandic family saga, a travel story by Tove Jansson, wrapped in the sensibilities of Le Guin. I was really really struck by it, and I think that the review of it that is given by a character in This is How you Lose the Time War is absolutely spot on. It pairs really well with Moonbound, too.

Family

My partner and I blew right by our 12 year anniversary, which seems kinda crazy, especially as our peers and friends seem to all be getting married and having kids now.

We went on our first international trip as a family. It went like 1000% times better than I ever imagined. We had such a great time and…while I still don’t love traveling, I’m really excited to bring the kids more places in the future.

My younger kid used 2024 to totally and completely fall in love with dinosaurs. He easily knows more about dinosaurs than anyone else I know. I’ve also learned so much about dinosaurs, especially because he falls asleep every single night by listening to the same dinosaur documentary-style Yoto card. We set up a research station” that has a working microscope, a globe and a ton of his favorite books at it as the center to his discovery.

In 2024 my older kid went from being a veracious reader to an unstoppable, up til 1 AM under the covers, reading while walking to school, what do you mean we can’t go to the library a 3rd time this week!?” reader. My partner and I have been careful to temper this reading habit with ample application of mandatory family Mario Party and Mario Kart time.

Also starting to navigate what it is to have aging parents more and more.

Work

Left an old job. Took a new job. The biggest learning in doing this has been that I much prefer to work in smaller places, so I’m pretty pleased with where I am right now…but growth growth growth!” seems to be the name of the game wherever you look, so, who knows.

I’ve started to do the calculous about what it’d look like to go freelance — I’m far too cowardly to actually do it, right now, but I continue to think about it.

I have yet to determine what I want to do when I grow up…but I think I’m starting to get there?

Friends and fun

Originally I had two categories. One for fun. One for community. I like this alteration.

I made a concerted effort to have more fun this year. My natural proclivities lean towards…let’s go with anxiety?…so fun is something I’ve always sort of struggled with. To go a little against my natural grain, I sought to figure out a way that I could play more video games, make more space to be with friends, and to make sure I was showing up to exercise as a joyful activity and not like another chore to be checked off from a list.

I can’t really see a video game on a TV, and the rest of the family monopolizes our aged, but much loved Nintendo Switch, so I recently invested in a Steam Deck, and this has been a really positive experience! I still have to fiddle and futz with settings to make text big enough to read, and I probably hold the thing unhealthy close to my face, but, it has made playing video games (which is honestly something I absolutely adore to do) a treat and I’m really excited to maybe play some co-op games in 2025 now that I’m not always baffled and confused by what I’m trying to see through a blurry haze.

The next two items are interesting inverses of one another. I turned engaging with friends into a conscious chore, and I made exercise something to do for fun, not to get it done with. As a way to engage with friends more intentionally, I set up a few group chats with some friends this year, and I set myself reminders to engage with those chats regularly if they started to go quiet. This has helped me to feel more connected to friends, most of whom live away. In the coming year this is something I’d like to continue doing, and do more with friends I’ve met online. For exercise I tried to make more time for it. In the past, I’d always feel guilty for exercising instead of doing something with the kids, or doing chores, or more work. This year I practiced letting that all go…I didn’t always succeed, and still find myself simultaneously on slack as I run up some hill, but…progress.

Looking ahead

This next year is slated to be…something. I’m nervous because I don’t know what that something is, just confident in my assessment that it’ll be something.

« Future Page 1 of 213 Past »