Thursday, October 30, 2025

Happy Halloween!

It's been a ridiculous year.  No citation needed.  But, some fun stuff happened too, including two cute little pumpkins growing in our garden.  Those punkins have now joined forces to become a jack-o-witch...tern...thing!






The Not-Very-Wicked Witch of the North Planter Box


Saturday, October 18, 2025

No Kings

"No Kings" is America's whole deal, on paper.  In practice, "The Rich Do Whatever They Want" has always been the undercurrent.

We're a nation built on land stolen from other people, using enslaved people stolen from their lands.  That's how we got started.  And to this day, any time someone dares to point out that those were and are incredibly crappy things to do, there are loud and angry voices blowing back.  We must "hate America" if we are critical of the racism and kleptocratic elements it has and continues to express.

Capitalism is the nation's only real religion or culture.  Capitalism said it was lucrative and therefore fine to steal land.  Capitalism said it was profitable and therefore fine to own other humans.  What's good for the runaway rich is usually at odds with what is actually good.

In practice, America already has a bunch of feudal kings.  They're in plain sight, right at the top of the stock market.  The rich own us.  Right now, this message lives on a server owned by Google.  (Sorry, "Alphabet".  "Plain sight" is becoming less of a good place to hide, isn't it, Meta?)  Eventually, these richest of the rich will need to steal from each other, but they're not done stealing from us yet.  We still have, on paper, a government where we choose our leaders and decision-makers.

That means we still have the power to say (and act like) something besides money has importance.  We used to have a 90% tax on the richest of the rich.  That alone would be a huge improvement.  If we elect leaders who value humanity more than profit, we could start seeing decisions and laws and systems which protect individuals from corporate sleaze, instead of the other way around.

"No Kings", or "The Rich Do Whatever They Want".  Choose wisely; we only get one.

Saturday, September 06, 2025

Inner Peace at the Minnesota Genre Film Expo

Early this year, Kim and I completed "Inner Peace", an animated short film.  It's a movie that means a lot to us, and it's been selected to play in the Minnesota Genre Film Expo!

The show is on Saturday, October 4, 2025 at 10:30 PM CDT at the AMC Rosedale 14.  You can get tickets and check out the rest of the festival here:

https://mngfe.eventive.org/films/68b0ee6ae7f329ef85dd1bfe

Since it's a festival, they're selling full exposition passes and ticket bundles first.  Starting September 22nd, tickets for individual shows will be available.  (Our show contains a feature-length comedy, our short, and another live-action short.)

We'll also release our movie online, after its theatrical debut.  We hope you enjoy it!

Wednesday, May 07, 2025

AI, The Capitalism Bubble

Socrates ushered in a new age in philosophy.  Academics categorize what came before as "pre-Socratic".  He thought about thinking, argued about arguing, and taught about teaching.  My type of fella.  (Let's acknowledge his exposure to Eastern philosophy as well; nothing human happens in a vacuum.)  Author of a new age, yes; author of any texts at all, no.  Socrates took issue with the written word.

Everything we now know about this person's thoughts come from the writings of his students, and their students.  But to Socrates himself, the written word feels like a trap.  Yes, we can write our words down, but once on the page, they are dead.  Knowledge and wisdom are living things -- practiced, unfinished, and inextricable from the minds which carry and share them.

I don't need to entirely agree (I write, using words) but as I gain some small living wisdom myself, I concede that he has a point, and it's an important one.

Human animals do a lot of neat tricks.  We're perhaps not as novel as we think, but in some ways we're also a bigger deal than we give ourselves credit for.  Let's keep looking at "the written word" but expand the scope a bit to include written music.  Staves, bars, notes, any and all markings on a page you might see in front of a musician.

Even to someone experienced and skilled enough to sight-read any piece of music, there is a difference between interpreting the symbols and hearing the music.  The experience of the sound waves dancing their way across the nerves in our heads is something more rich and more alive than can be adequately captured in written glyphs.  That difference can be staggering -- a lay person may perceive only gibberish of dots and lines on the page, but be moved to tears when hearing a performance of those same notes.

It is a marvelous human trick to translate dormant markings into living music.  When the notes were first scribed, they served as a record, however incomplete, of a human's ideas and experience.  It's shorthand.  It takes practiced work to capture music onto paper, and it takes more practiced work to turn it back into music.  Human minds inject a bit of themselves into each step of the process.  Tuning systems and instrument craft refine over time; what we hear today is not identical to what Bach heard, but nonetheless we get to overlap to a meaningful degree with that specific human experience.

Words in any non-musical language are no different.

The words themselves are indeed dead, but if we take a leap where Socrates refused, we might trust that those who care to read them may breathe life in again.  The original intent may be distorted; it may even become unrecognizable due to translation mistakes or cultural shifts or typos.  Those of us who embrace the written word trust that some future human animal (even simply future versions of ourselves) will be able to either bring what is written alive again, or leave it behind in favor of other thoughts and ideas, which themselves will also ultimately decay and/or find new life.

So, what do poor old Socrates and the potentially-hollow written word have to do with "Artificial Intelligence"?

Large Language Models and various related techniques are what's dominating AI research (also funding) at the moment.  You might have heard these things called "autocorrect on steroids" or "overgrown predictive text" or something to that effect.  Those words feel hollow to AI engineers, but are still fair comparisons.  These models ingest as much written information as the tech companies can collect (steal) and run it through loads of statistical analysis.  Some percent of the time, the word "quite" is followed by the word "often".  Writings which contain the word "Socrates" are more likely to also contain the word "Plato" than "Florida".  Sentences which contain the word "sentence" are sometimes near sentences which are "examples".

A neat parlor trick these programs can do with all those rules about words is to synthesize a coherent-ish conversation.  When a human animal reads the "AI-generated" words (or hears a machine turn text into speech) we do what we always do when we read or hear: we receive and imbue the words with meaning from our own experiences, and breathe life into otherwise-inert material.  It's a convincing trick, because it is tailor-made for a human recipient's brain to assemble the pieces into something real.  After all, the words aren't generated out of thin air, they're made of human writing.  Chopped-up human words, statistically puzzle-piece matched up and Frankensteined back together, ransom-note style.

It's worth noting that this goes well beyond written words.  Different models chop up and rearrange our sounds and images and program code too, among other things.  But it's conceptually the same trick, trained on and working with different data.

It's smoke and mirrors.  We blew the smoke, and we glimpse ourselves in the mirrors.

Which leads nicely to the next point: all of this is computationally expensive.  Ridiculously computationally expensive.  Computers got smaller and faster and cheaper for decades, and they continue to do so, in a manner of speaking.  But in order to simulate a manner of speaking, it takes a whole lot of computers using a whole lot of electricity, sourced principally from a whole lot of burning fossil fuels.  These are incredibly wasteful tricks.  The smoke and mirrors produce a lot of actual smoke.

A rational decision-maker might pause and think, maybe this isn't the best use of those vast amounts of energy.  Maybe our resources ought to be spent making sure we don't kill ourselves off by polluting and altering the climate, here on that one world where we all live.  Maybe we should direct our brightest problem-solving minds toward any of the many pressing problems the planet and its inhabitants are facing.

But that's rational thinking.  Instead, we tech folks imagine a boot so big that we feel compelled to start licking it now.  We pretend that the smoke and mirrors are real thoughts.  A chat bot can pass a standardized test; we might as well entrust it with our life decisions!  We suppose that being good at rearranging words is somehow the same as thinking through plans of action which will have consequences, intended and otherwise.  And we pour all this treasure and energy into what could be the next big thing with the next big profits.  Any other consequence is not worth chasing or even contemplating, apparently.

With 24-hour news cycles, on through social media, and now on through generative content, we've offloaded far too much of our thinking.  We refrain from embracing our own humanity.  Socrates saw the danger right away: the written word truly has gotten us into trouble, letting us shirk our own minds' responsibilities.  It's gone on for so long that human intelligence seems to have fallen out of fashion.

None of this is automatic; everything I've babbled about here is a choice.  Any of us could at any moment turn all this new noise off, and work at rebuilding the living knowledge we've allowed ourselves to lose.  Perhaps ironically, the written word would be one of our best allies in such efforts.

When an interesting question enters my head, I do as many of us do and reach for a search engine.  If it's real knowledge or wisdom I'm after, though, I'm honestly a lot better off if instead I go to a library and do some research the old-fashioned way.  Turning dead words back into human knowledge, without the screens of capitalism running interference, feels novel and refreshing at this point.  Maybe that could catch on.  Much crazier things have happened.

Tuesday, April 08, 2025

Enduring the Term, Part 1: Protest

If we hope to live in a democratic society, we need to act like citizens of a democratic society.

This last Saturday, millions of Americans across all 50 states participated in "Hands Off" protests.  At least a thousand of us did so near a library right here in Plymouth, Minnesota.  (Realistic estimates I've seen online could be double that, but crowd numbers are not something I obsess over.)  Most of the biggest protests happened at state capitols, including a beautiful event over in St. Paul, but for those of us out in the 'burbs, these satellite protests are great for civic participation without the transportation headaches.

If you haven't been to a protest before, but you're not happy about [insert today's fascist nightmare here], then you need to find one, and attend it.  You are not alone; the crooks strip-mining our civilization just want you to feel like you're alone.

"But I want no part of politics; it's stupid."
"It's just another pendulum swing, there's nothing we can do about it."
"I'm too busy to go to a protest."

None of these are valid excuses.  There are no valid excuses.  Your family, your friends, your city, your nation, don't need your excuses.  They need you to stand up.

A bald eagle flew overhead as we protested.  Most of us, myself included, were not equipped with real cameras, and I was not there to snap pictures anyway, but I did manage to just barely capture the auspicious moment:

It won't win any photo contests, but there's our national bird, gracing us with its inspiring and patriotic presence as we stood united against tyranny.

Using state-of-the-art technology, we can bring out additional detail:


(It should be obvious, but since reality has become more absurd than satire:  The first two images are real, cropped from a photo I took at the Hennepin County Library.  The third image is a little joke.  The sign is spelled correctly and the eagle has the correct number of talons, because I didn't use AI tools.)

Back to the topic at hand - protesting.
You should do it.
Yes, seriously.
Yes, you.

We saw hundreds of signs, and the vast majority of them were hand-made.  It is a vitalizing thing to witness so many local people fed up and fired up, and making the decision not to remain silent about it.  These folks put ink to cardboard, and put themselves on the streets along with their words.  You don't need a sign, you don't even need to chant.  Just being there means you are literally standing up for what is right.
 
Posting online about the harm being done by the fools in power is all well and good, but our message has to exist in the real world too.  (I do see the irony in blogging that.  Have no fear -- I give this same advice to people I physically interact with.)  There is a big difference between scrolling past a political op-ed headline and driving by your community members and neighbors lining the streets in protest.
 
We met and chatted face-to-face with many people from our area, including our state senator.  Living in a democracy, for real, means having nonzero contact with your representatives.  That is its own entire topic unto itself, but the point here is that we were all actively being each other's community.  For us it was a boost to run into the lady from the ballot sheet, and for her it was a boost to see so much engagement from her constituents.
 
Every supportive honk was met with cheers.  The occasional Trumper driving back and forth with their mass-produced lawn sign and their windows rolled up, was peacefully booed and mocked.  Living in a democracy means we the people have a responsibility to participate in local and national politics.  It means protesting, it means debate.  It means showing support, it means showing resistance, and it means showing up.

What did we mean to accomplish?
Why did we bother?

Are the Muskrat and Dictator Don and the forgettable third stooge going to see that millions of citizens have gathered to speak out against their kleptocracy, and suddenly change their ways?  Are the oligarchs going to see the crowds of Americans who are not okay with oligarchy, and then just give up?
 
Of course not.
 
This is about those freaks, but it's not for them.  It's for us.  It's for everybody.  It's for the neighbors as they drive by - they know first-hand that they live in a politically-active community, a neighborhood where people care about each other.  It's for anyone who catches even a few seconds of the news coverage; citizens in every state organized these protests.  1400+ locations, 3,000,000+ people.  It's for the many folks who still somehow think that they "don't have any political stance".  It's about standing up for good, and standing up against evil.  That's not politics, that's basic human decency.  It's real, if (and only if) we make it real, with our selves.
 
The bajillionaires eagerly participate in setting up and/or burning down the agencies and laws that make up our nation.  What's good for them is bad for literally everybody else.  So, if we want to live in a country we can admire or take pride in, we non-bajillionaires need to participate too.  The only thing necessary for the triumph of evil is that good people do nothing.  This time right now, this is that.

If you've attended protests, rallies, or marches before, keep doing so.
If you haven't, make it a point to go to one.
Do it for yourself; do it for all of us.

Finally, it appears there's one more update on the bald eagle who joined us at the protest.  All that talk of the weaselly Musk-rat appears to have made it hungry:
 

Wednesday, February 12, 2025

GitLab Pages + NameCheap registrar + Let's Encrypt certs

Nerd Alert:  This post is purely in the hope of saving someone (my future self included) a whole lot of time and anxiety.  It's another one of those really specific combinations that cause trouble, which I keep seeming to find.

The short story:

A Record@35.185.44.232
TXT Record@gitlab-pages-verification-code=...
A Recordwww35.185.44.232
TXT Record_gitlab-...-code.wwwgitlab-pages-verification-code=...
CNAME Recordwwwmyusername.gitlab.io.
  • mysite.com and www.mysite.com had to be separate domains in GitLab Pages.
  • The second TXT record is most of the host value GitLab Pages suggests, but ends at "www".
  • That last CNAME record, I had to add after setting up letsencrypt on www.mysite.com.  (There was no such trouble with plain mysite.com.)
GitLab is amazing, its Pages service is wonderful, and its documentation is even mostly pretty good.  NameCheap is what it says on the tin, domain names for not much money.  Its "clever" DNS config is not my favorite, but it's better than how the entire management UI is broken about every odd time I try to use it.  Let's Encrypt (letsencrypt.org) is half of how web certificates should have worked in the first place (the second half is decoupling identity from encryption, but I won't go down that road).

Anyway, GitLab Pages itself says one thing, its documentation says another, and neither match up to NameCheap's DNS tools.  I had a variation of these settings which worked for domain verification but LetsEncrypt still failed.  I never learned what part was mistaken or why either, since no actual errors are reported; the UI and email report literally say "something went wrong".  Gee thanks.  But, the settings above worked, so I'm preserving them in a public place.

My final note, about the CNAME record, makes me wonder whether in 3 months I'll have trouble again when the letsencrypt cert renews.  But, I'll cross that bridge when I come to it.

OK, that's all.  I hope it saves somebody some headaches!

Wednesday, December 18, 2024

How To Fix: YouTube Videos With Incorrect Aspect Ratio

As I've babbled about before, one of my pet peeves is to find images and videos being displayed incorrectly -- that is, in a shape other than the one for which it was originally created.  Just as the world was starting to settle on 16x9 being the shape of pretty much everything, phones and now even laptops began carving out gruesome holes and corners in their displays, to say nothing of the proliferation of hideous portrait-mode videos...  But, that is a rant for another day.

Today, I'm sharing a hack which takes just a few seconds for fixing the many many YouTube videos floating around (plenty of which are otherwise quite nice) which incorrectly squash or stretch the image.

When you come across such a video, hit F12 or otherwise open your browser's developer tools.  Don't let that phrase frighten you!  The wonderful thing about the web (which corporate bullies at best ignore and at worst go to great lengths to hide) is that there is no meaningful difference between a viewer and a developer.  There never was and never should be.

Use the DOM inspector and element picker to find the <video> element.  YouTube's code updates properties of this element constantly, so making any changes here won't do us any good once we resize the window or use full-screen etc.  So what we want to do is pick the next element upwards in the food chain, the <div> which contains the <video>.  Simple enough!

When we select it, we can see that this <div> element has a few CSS (style) rules already.  We're going to add one as follows:

transform: scalex(0.75) !important;

...And that's it!  You can close the dev tools, toggle fullscreen and back, and the video which was being stretched out will now be presented in its intended, correct shape.

The fine print:

Scaling the X dimension to 75% is a number I pulled out of thin air which happens to look about right for 4:3 images being displayed at 16:9.  Occasionally, you'll encounter videos for which you'll want different values than 0.75, or maybe even to use scaley() instead of scalex().  But most of the time, this is going to be (approximately) the right way to fix a stretched image.