Skip to footer navigation.

Oatmeal

A digital pillow fort

Pixelated photo taken in a cemetery. Pink background.

Blustery Saturday afternoon walk.

Something something something, week notes

I’ve finished my little exploratory jaunt through the writings of Sally Rooney this week. I’ve left aside one of her novels for some other time, Beautiful World, Where Are You. Some authors have clear habits, or projects.” Rooney strikes me as such an author. Naming either seems a bit trickier, though. Something something something, what do normative friendships between people entail, something something something how is morality constructed by other peoples’ perceptions, something something something.

Now I’m reading The Ministry of Time by Kaliane Bradley. I was kinda hesitant to reading this one purely because of the word ministry” being in the title. The last book I read that had a title including that word was a miserable slog that I found terribly disagreeable. This book is neither a slog nor terribly disagreeable.

I spent some time this week writing swift using swiftUI. Compared to using webby things, the entire ecosystem of dev tools around swift and apple is oppressive and exhausting, but I’m worried that the accessibility feature I live and die by on macOS is being eroded away, dripping out of the operating system, so, I figured I’d try my hand at re-implementing it from scratch. Dear reader, it is not going great for me, but I’ve got enough working that I know it is possible if I keep plugging away. Onward.

Evidently my children don’t like the edges of brownies. They each prefer gooey centers. I, as a parent, have failed…gross.

In reply to: Common Cyborg | Jillian Weise | Granta

They like us best with bionic arms and legs. They like us deaf with hearing aids, though they prefer cochlear implants. It would be an affront to ask the hearing to learn sign language. Instead they wish for us to lose our language, abandon our culture and consider ourselves cured. They like exoskeletons, which none of us use. They would never consider cyborg those of us with pacemakers or on dialysis, those of us kept alive by machines or made ambulatory by wheelchairs, those of us on biologics or anti-depressants. They want us shiny and metallic and in their image.

In reply to: The rise of end times fascism, from The Guardian

Second, we counter their apocalyptic narratives with a far better story about how to survive the hard times ahead without leaving anyone behind. A story capable of draining end times fascism of its gothic power and galvanizing a movement ready to put it all on the line for our collective survival. A story not of end times, but of better times; not of separation and supremacy, but of interdependence and belonging; not of escaping, but staying put and staying faithful to the troubled earthly reality in which we are enmeshed and bound.

Pixelated photo of a child in a rain coat next to a moose mural. The moose’s antlers are made from hardware store supplies.

Pixel moose

leibovitz

Folks what that haunt me (positive) on the Fediverse may have seen me sharing progress shots from this, but here I am, and I have made another camera application for the web. Leibovitz combines a lot that I learned making my other camera applications into one, hopefully less clunky package.

With leibovitz you can either take new photos, or upload any image file and apply filters to it. The UX to toggle between the two modes is a bit clunky, but I’ve tried to be sparing with the UI to leave as much room as possible for the image preview. That meant dropping some buttons and making heavier use of a floating pallet than I’d normally like.

You can apply blur, adjust color contrast, fiddle with the white balance, setup chromatic tinting,” and select between a few different dithering modes! On browser and device combos that support it you can also change the focus — but I’ll caveat that I don’t actually have a device that supports this feature, so the implementation is mostly there on a hope and a prayer after reading the docs for it all. It should also work offline after initial load, but no promises about how well that’ll work across browser and device combos since the whole service worker api thing seems to be weird weird weird in how it is actually implemented and supported across the various browsers.

A colorful, pixelated photo of a road through a cemetery on a sunny day. The image has a bright yellow border.

Cooking a new camera application.

Late March Snow

The forecast predicted snow, but even with that knowledge I held out hope that it wouldn’t. The shade over the window in the bedroom doesn’t close all the way. It always stops short of totally covering the window with about an inch further to go. It is too short. When I woke up this morning there was a flat grey line of light streaming into the room through the gap left by the too short shade. So, I spent some time shoveling this morning. Probably sooner than I ought to have since it’s still coming down. It’s 80ish degrees Fahrenheit 5 hours south in New York right now.

Reading

A friend who lives in New York recommended that I read any book whatsoever by Sally Rooney. I usually read most anything anyone recommends to me that I haven’t already read, so I read Normal People, and pretty much immediately fell in love with it. This compulsion to read whatever folks recommend to me is why I gave Brandon Sanderson so many chances…but it usually pays off more than it doesn’t.

Now I’m working my way through Rooney’s other books, random articles I find, interviews — the books are short so I’ve been trying to slow myself down — forcing myself to read other stuff in between each of them.

So far, I’ve broken up my desire to read everything Rooney’s ever written all in one go with The Difference Engine, by William Gibson and Bruce Sterling and Emily St. James’ Woodworking. Still mid-flight with Woodworking. The Gibson and Sterling book was fine. I’m struck by how Gibson seems to only have one story that gets told and retold in different formations.

What I like most about the two books I’ve read so far by Rooney is that they push me to have a different perspective on my own interiority. A long time ago I watched, and then re-watched a documentary called The Beetle Queen Conquers Tokyo over and over again because I loved how it made me notice the super small pieces of the world all around me. It was a catalyst for me that shifted my perspective from big things to teeny tiny little things. Normal People and Conversations with Friends have done something similar for me with how I relate to myself thinking about myself.

Rooney’s books, so far, are also not the kind of books that I am drawn to and read for the stories they tell, or the characters they house, but because I love the act of reading them.

Playing

I haven’t been playing much, though someone very kindly gifted me a bunch of TTRPG-inspired/styled video games for my birthday, so I have a bunch of new games to check out. The collection included Disco Elysium and Citizen Sleeper, both of which I’ve only heard great things about.

My partner has been replaying all of the Crash Bandicoot games. They’re so brutally hard. My kids got a new Pokémon game from the library — the library having a catalogue of Nintendo Switch games is pretty awesome — that has been fun to watch. I assumed that my kids wouldn’t like the stealth mechanics in Pokémon Legends: Arceus. How wrong I was. This seems to be their most favorite of all the Pokémon games they’ve played.

Making

I’ve been making myself weird veggie sushi rolls for lunch lately. If I have all the ingredients already prepped from the night before I can usually pull a roll together in like a minute’s time, so I actually have enough time to eat lunch before my next meeting consumes all my attention.

I recently revisited a project I started a long time ago in C, sandborb. It extends a tiny embeddable HTTP server so that it can be easily scriptable from Lua. My goal with the project is that if anyone else wants to pick it up they won’t have to touch any of the C, and can just live in lovely Lua land. If anyone tries to use it let me know and I can improve the documentation a bit and sand down the roughest edges…and fix the build script so that it doesn’t have a dependency on the weird way homebrew installs Lua on macOS.

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.

« Future Page 1 of 213 Past »