FOB 4: A Blog

Bart Massey

Who Is "Meteor Man"?

2022-09-14 22:29:02 PDT

My wife and I have been watching The Rings Of Power. So far, we haven't been terribly enthused.

  • There's too many storylines and characters: it's hard to keep track of, and everything gets diluted. I haven't found any plot line or character yet that I am really excited to see more of, just a lot of barely-above-meh.

  • As someone who has read much of Tolkien's literary output including The Silmarillion, I still don't understand a lot of what happens in the show. It feels to me like a lot of barely-disguised move-the-plot-along fridge logic. My wife keeps asking me "why was that?" and I keep saying "I don't know." Not a good sign.

One of the classic ways to try to hold interest in a serial, one that goes way way back, is to have a Mysterious Figure for the audience to worry about. We have not one, but two here: "Meteor Man" and Halbrand. Of the two, Meteor Man is the more interesting to me, which is to say I care a tiny bit.

Sadly, I don't trust The Rings Of Power to have a satisfying identity set up for Meteor Man at this point. My suspicion is that it will be something stupid. Here's some guesses about Meteor Man's "true identity" I've seen from folks I watch on YouTube: I've ranked them in the order of my belief, although I'm not yet enthused about any of them.

  • Gandalf: This is in some ways the obvious choice: a Maiar Fire Mage, a really familiar and beloved character who is known to be friends with the Hobbits.

    This last was my initial reason for adopting this theory — in the Tolkien Cinematic Universe, as in any CU, writers can't seem to resist overexplaining trivial stuff from characters' backstories. "You know why Gandalf likes Hobbits so much, right? In the Second Age, one of them helped him and then he befriended a Hobbit clan."

    The problem with the Gandalf theory, as pointed out by Robert at In Deep Geek (an excellent YouTube channel), is that there's a bunch of hints that Meteor Man is actually evil. There's the corrupted leaf in Lothlorien as the meteor sweeps by. There's the whole "so evil the fire gives no heat" thing (that as far as I know was invented for The Rings Of Power and probably shouldn't have been, as it doesn't fit at all with Tolkien and is stupid). There's the dead fireflies, and Nori's dad breaking his leg when Meteor Man breaks a stick.

    Still, the problem with Meteor Man being evil is that we are clearly expected to trust Hobbit girl Nori's instinct that she should help him. Indeed, the writers set up a second child character, Bronwyn's son Theo, as a kind of bad counterpart of Nori who manages to steal some kind of ultra-evil Morgoth dagger. While Nori ending up doing evil and Theo doing good is exactly the kind of stupid subversion I would expect from bad writers, I hope the writers of The Rings Of Power are better than that.

  • A Balrog: This is Robert's suggestion, and it's a tricky one. It's the kind of thing the writers might do, I guess? See his video for some of the justification for why it could be so.

    However, I think there are some issues with this identification. First, I am not aware that any Balrog took human form anyhwere in Tolkien's stories; they are always described as overt monsters. Second, it appears from Tolkien lore that the Balrogs all came to Middle-Earth in the time of Melkor: there is nothing to support any falling from the sky for no reason at this point. Finally, see the argument against a truly evil being above.

    Still, as Robert repeatedly points out, we are promised a Balrog by the previews of The Ring Of Power. I suppose it could be this one. I just doubt it.

  • Sauron: I mean, why would Sauron come sailing in from the sky and crash with no knowledge of who or where he was? Why? Maybe I give the writers too much or too little credit here. Perhaps there's some truly clever explanation; perhaps the explanation will just be handwaved.

    Anyhow, Sauron is going to have to be charming and deceptive enough at some point to convince the Elves (Celebrimbor, probably) to forge The Rings Of Power. This doesn't seem like a great start. Again, see the argument above about pure evil.

  • A Blue Wizard. The Blue Wizards are really minor characters from Tolkien that we know little about. Only real arguments in favor are that they are known to go to the South, where Nori et al are.

  • Radagast. Nope. Thought about it early on, because of firefly powers. But nothing else would really make sense here that I can think of.

  • The Witch-King of Angband. I found this suggestion here.

  • Saruman. Not much fits here. Fire powers, the exact opposite of beguiling speech, etc etc.

  • "The Man in the Moon Came Down Too Soon". This website suggested this. It is both ingenious and ridiculous. Hopefully not.

  • Tom Bombadil. Makes no sense. Not even worth debunking.

  • Some newly-invented character not mentioned by Tolkien.

    No. Just… please no. If so, the writers better save the reveal for the end, because I'm quitting the minute they start adding major characters of their own invention.

  • Some character only from The Silmarillion. Basically impossible, since Amazon would not have the rights to any such character not also mentioned in The Lord of the Rings or The Hobbit.

One clue that has been much bandied about is the only words spoken by Meteor Man so far: "Mana Ure". Apparently Ure is a Quenya Elvish word for something like "fire", "heat" or "the sun". Mana is more complicated, but may be some sort of interrogative like "where?" or "what?". My theory is that "Mana Ure" is "Where's the fire?", a reference to all the rushing around he's seeing. Or maybe "Ure Mana", "Your Momma".

The one thing I take away from all this is that the writers have written themselves into a can't win situation for me. Absolutely none of the above possibilities would be anything but sad and ugly.

It would have been far better to just leave Hobbits and Meteor Man out of this one. The Hobbits can't become too famous without spoiling The Lord of the Rings anyhow, since we're told they really weren't in the old accounts. If Amazon's writers need a Meteor Man to keep the audience holding on, the series is likely unwatchable. My curiosity has certainly passed.

I'll leave you with my theory: Smaug. Someone once told me that it is never a good to leave a live dragon out of your calculations. Dragons are all about fire, they come from the sky, they are magical, they are evil but not super-evil in the same way as the other stuff in Tolkien.

This is a really stupid theory. But it's better than Tom Bombadil.

The Tedium Of Making A Blogsite

2022-09-06 22:31:50 PDT

I just spent a bunch of time cleaning up the image links in the Markdown on this GitAtom blog. The images are now all properly formatted according to the CommonMark Github-Flavored Markdown (cmark-gfm) specification.

As I feared, it was about an hour of messing about without doing much that was new or constructive or interesting.

  • I belatedly realized that I could probably leverage the site's CSS to format the images in a way "good enough" for my purposes. There wouldn't be much in the way of easy customization, but meh.

    So I went and figured out what CSS wanted me to do here, and modified my CSS accordingly. Big fun. In case you're curious, the new CSS looks like this:

    /* */ 
    p img {
        display: block;
        margin-left: 3em;
        margin-right: auto;
        max-width: 50%;
        max-height: 20ex;

    CSS is nothing if not beautiful.

    I copied that addition into GitAtom's default CSS also. It's something most folks will want, I think.

    I developed the new CSS on my development blogsite. Never a great idea to work directly on the production site. Seemed to work after a bunch of tweaking. Then I copied it here.

  • I really wanted a CSS class tag for img elements to be generated by the Python cmarkgfm package that GitAtom is using for Markdown rendering. cmarkgfm's idea of a "handy" image tag is like this:

    [![A Literal Genie maliciously granting a wish.](/media/0019-literal-genie.png
    "A 19th century etching of a Literal Genie maliciously
    granting a wish.")](/posts/dall-e-credit.html)

    That is translated by the Markdown renderer to this HTML:

    <p><a href="/posts/dall-e-credit.html"><img src="/media/0019-literal-genie.png"
    alt="A Literal Genie maliciously granting a wish."
    title="A 19th century etching of a Literal Genie
    maliciously granting a wish." /></a></p>

    I wanted HTML something like this:

    <p><a href="/posts/dall-e-credit.html"><img src="/media/0019-literal-genie.png"
    alt="A Literal Genie maliciously granting a wish."
    title="A 19th century etching of a Literal Genie
    maliciously granting a wish." /></a></p>

    See the dramatic difference? No. That's computing for ya. But getting the second thing would allow changing my CSS selector to

    img #cmark_image

    to ensure that the CSS didn't accidentally catch stuff on this site that was not part of a blog post: for example the Feed logo.

    So I filed an issue against cmark-gfm. We'll see. I may end up contributing a few lines of C code there.

  • I decided this was a good time to move all the images on the site from the /posts directory where the blog posts live to a separate /media directory. I had been planning to do it anyhow, because reasons; since I was messing with this stuff now was a good time.

    I'm hoping to someday get GitAtom to be cleverer about attached media, in particular in Atom feeds. In any case, I'm not too comfortable with the idea that the images live only in my site directory right now. Fixing it all will be in the far future though — very low priority.

  • I next got to fix all the image links in my previous posts. That's the problem with co-developing GitAtom with FOB4: retroactive changes. I did a couple of posts by hand, and got the hang of it. Then I decided to partially automate the process for the rest of the links by writing a sed script. A few minutes of fiddling around later, I had this beauty:

    s@<p align="center"><a href="\([^"]*\)"><img alt="\([^"]*\)" title="\([^"]*\)" src="/posts/\([^"]*\)" width="[^"]*" */></a></p>@[![\2](/media/\4 "\3")](\1)@

    Sorry about the long line: sed has no great way to stick line breaks in stuff.

    But of course, it wasn't that simple. I had to yak-shave by trying to get a sed mode installed for emacs. I didn't find anything good, but I now get in a really primitive sed mode when I open emacs on a .sed file.

    Of course, after all that I realized that my fancy new sed script was only good for auto-fixing exactly two more links. Ugh. Even then, I had to wrap the HTML in the Markdown so that it was all on one line, so that sed could deal with it. Totally not worth it.

    I hand-fixed the rest of the links, which were much simpler.

After all that, I wrote this post.

It's always like that. Things get very incrementally easier after every little thing like this, of course. Still, it definitely feels like pushing a boulder up a hill. Unlike the canonical example, the boulder doesn't roll back down, really. The hill is just endlessly high, and every time I look back it doesn't look like I've come any distance at all.

Enjoy my bespoke post on my bespoke blog. Otherwise I'll just feel silly.

Coding And The Ravages Of Time

2022-09-03 00:45:35 PDT

I'm very much into Rust programming (the language, not the video game) these days. The language seems kind of for real, and has some nice properties.

Back in December 2016 I participated in Advent of Code 2016. This was my second time doing AoC, I think, and I did it in Rust. This was about two years after Rust went 1.0, but it was already a very viable language. I ended up with this repository, which has over the years become one of my highest-starred Github repos.

Today I glanced at the repo for some reason and noticed that Dependabot, Github's security checker, had scattered many, many security advisories over my code. This is easy for Dependabot to do with Rust, since the libraries used all come from one place — — and security stuff is tracked really well.

security messages in a git repo

Even though a lot of these security warnings were redundant, this was still a bit alarming. I decided to see what I could do to bring my code up to 2022 standards, and eliminate the possible security issues in the process.

The good news is that this was ridiculously easier than in any other language I've worked with. Rust tools just automate the heck out of it. I eventually ended up shell-scripting most of the work. I brought all the code up to 2022 Edition, fixed all the warnings, and replaced a cryptography crate that was stale and vulnerable.

I also tried, as an experiment, just doing the minimum automated upgrades to keep things going. That was even easier, but of course I like the nicer result.

When I contrast this with my experiences with Haskell, Go, C and C++, it's just night and day. Rust is really a nice language.

Blaugust Has Concluded

2022-09-01 01:46:30 PDT

Welp. Blaugust is done.

It's been a great opportunity to get back into the blogging swing. I've gotten my software stood up shakily, I've done 31 posts over 31 days (albeit not consistently). I've met some more nice blogger people.

As I promised earlier, I'm going to scale back a little on output. I'm also going to work more on GitAtom. I've got a lot of projects to keep me busy, so it's the usual time balance thing.

Thanks again to Belghast for running Blaugust, and to Bhagpuss for inspiring me to give it a try.

In the unlikely event that you're reading this, hope you'll keep reading along.

Genre Mindless [Obligatory Games Post]

2022-08-31 01:26:03 PDT

In terms of content, the participants of Blaugust are about games, music and geek media. So far, my blog has utterly failed to fit in. But hey, I can write about these things too. I really can!

Today I was trying to recall the last game I really played hard. It doesn't happen all that often — I'm a pretty fickle gamer. Turns out it was probably Breath of the Wild. So… yeah.

I never did finish BotW. I finally beat the four thingummies and finished most of the non-combat content in the game. I spent countless hours exploring and poking around. I got the DLC, then discovered it wasn't really for me.

The sticking point with BotW is that, while I dearly loved the open-world exploration, I'm not much of a fighter. It isn't that I can't do it, although I am objectively terrible at it. I just don't like it. In terms of traditional gamer classifications, I'm discovery then puzzles then meh.

The sad fact of the matter is that games are more and more stuck on genre content. Worse yet, pretty much every genre is either fighting, puzzling, crafting or some combination of those. It's great to see some open-world exploration games, but the game designers seem unable to get beyond the idea that the purpose of a vast open world is to provide things to fight, puzzles to solve, and industries to start.

Conservative genre-mining kind of makes sense for AA and AAA titles. No taking extra risks with that kind of money. Customers who are going to pay big and in large numbers for a title want predictability and familiarity. This is even more true for the free-to-play titles: they need to be big and sticky to work at all.

Indie game devs don't have so much excuse. The phrase "indie", which after all is only shorthand for "independent", is a little weird here: Activision/Blizzard is "independent". Presumably most small game devs want to be A/B someday, or at least want that kind of money.

What I want is genre-breaking gameplay. In particular, I want to get away from the toxic parts of genre tropes: no murdering and violence, no frustrating IQ tests, no dully addictive game loops. That leaves out a lot, right there.

As a sometimes game designer myself, I've been thinking hard about this. What space have I left myself?

I don't know. It's late and I don't have answers. Let's all think about the question. There has to be something there somewhere.

Lessons Learned Week

2022-08-29 22:24:01 PDT

Apparently this is Lessons Learned Week in Blaugust. Blaugust is almost over: just a few more days.

Oh, right. Lessons learned.

  • I might as well give up on genre blogging. The things I want to write about are all over the map. It's going to be that way. I once got kicked from a blog ring about X Development for being too off-topic about X Development. I guess GitAtom needs tags and topic filters. Atom supports tags, so there's that. I'll add it to the GitAtom enhancements list. Holding your breath for anything on that list would be really dangerous.

  • Co-developing blog software is a mixed blessing. Modern freely-available blog platforms are pretty darn sophisticated. Taking a student project to a usable state while trying to do Blaugust was questionable at best. I'm relieved to be a little on top of GitAtom now, but concerned at how much I still want to do. To be fair, without this blog GitAtom would have ended its life stale and forgotten.

  • I am not a social blogger. That's an OK thing not to be. I think it would be silly to blog if I didn't want people to read my content at all. However, there's no urgency and no pressure for me there. I haven't engaged at all on the Blaugust Discord. I will try to do that here at the end, but it's probably too late. I can live with this.

  • Schedule and size are a thing. I think I'll keep blogging for sure, but probably not on a daily schedule. That turns out to be just a little more than I want to do. My goal after this month is 14+ posts per month. I really am going to start building up a queue, saving out some non-time-sensitive posts even though they're ready to go. At some point soon I'll decide on a regular posting schedule: that's a thing I've never done before.

    I want to quit with the tiny "post-for-the-sake-of-posting" posts. I don't like them. It looks like my most comfortable length so far is around 400-500 words. Not long by blog standards, but substantial. I have a few longer posts covering a topic in more depth. I feel like I can knock out 500 words in 20 minutes or so, usually. That's a fine amount of time to spend a few times a week on this hobby.

I have some other aspirations for this blog as well. That's a good topic for a future post. Another 500 words folks can read or not on a random topic on my GitAtom mess. Riveting, I'm sure.

Why Stable Diffusion Might Be The Future Of Blog Illustration

2022-08-29 18:41:24 PDT

I wrote a couple of days ago about my use of DALL-E for blog illustrations. My conclusions weren't so positive.

Today I discovered Stable Diffusion, an open(ish) source project in the style of DALL-E that you can run on your home computer.

Of course I did. The thing has only been available for a few days, and already there are reasonably easy ways to use it. My NVIDIA 2080 is barely powerful enough to run Stable Diffusion's generator: but it works.

Here's my reaction, in parallel to what I wrote previously.

  • On Business Models and Creativity… Being able to run SD at home means I just don't have to think about whether I want to generate an image. It's about 20 seconds per generated image on my box, which is fine.

  • On The Limitations Of 2022 AI… SD is quite comparable to DALL-E. So far it seems to do better in some ways and worse in others.

    The thing everybody's excited about with SD is the unclamping of limits on what can be generated. I guess that matters: I can now ask for a picture of whatever celebrity and get them. Meh.

    One thing that is cool about the interface to SD that I'm using is that it allows "image to image" transformations with text guidance. So starting with my FOB logo image

    FOB Logo

    I asked for it as a Mondrian

    FOB Logo Mondrian

    and as an Edward Hopper

    FOB Logo Hopper

    These were reasonably successful. Other experiments went pretty badly.

  • On GitAtom's Clunkiness And "Ease-Of-Use"… Because of the way the SD interface I'm using locally generates images, I can probably include them here a little faster and easier. But that is offset by the hassle and time of starting up SD in the first place.

  • On The Competition… No change. It's still just an alternative.

So… yeah. Progress marches on too fast to count.

Dinnertime. Peace, y'all.


2022-08-28 02:21:38 PDT

I am posting late today because I spent a long time being involved with THE WISE CUP. I am spelling it that way because it is a 10-letter backronym too convoluted to repeat: I'll just go with TWC from here on out, though.

TWC is an annual event run by our next-door neighbors, for the benefit of the folks on our street and friends and associates thereof. Because we have that kind of neighborhood.

TWC is a treasure-hunt-style game with geographic clues that lead teams of 2-4 people to various landmarks in our small but riche suburban town. At each stop, participants must solve a puzzle of some sort and make some observations. At the end, there is a quiz over the observations. Scoring is based on successful completion plus the quiz score. There are prize baskets for the top three finishers, plus a literal trophy cup made by my neighbor, who is quite crafty and does mosaicing. It's all a great deal of fun.

This is the third year of TWC. The first year, my wife, my sister-in-law and I won, uh, very handily vs eight other teams. Last year I was recovering from surgery during TWC, so my friend and his son filled in for me. It was, uh, even worse. This year I decided to sit out, because it seemed reasonable to give the other teams a chance. The outcome was quite a close call, but, uh, my wife + sister-in-law + son + son's partner won again.

What can you do?

Looking forward to next year's THE WISE CUP.

Why DALL-E Isn't The Future Of Blog Illustration

2022-08-26 17:07:53 PDT

If you've been following this blog (why? how?) you'll know I've been playing with the DALL-E AI art generation tool for blog illustration purposes.

I feel like I'm getting to the end of that experiment. Here's a few thoughts on why.

  • On Business Models and Creativity… In the world of modern computing an awful lot is premised on literally "pay to play". Whether it's games themselves or creative tools, organizations expect to cover their costs as well as a healthy profit by charging. This seems quite reasonable on the face of it.

    The question of whether a creativity service charge is a workable business model is thus premised on whether the chargee values the service enough to pay adequately. I'm grateful that DALL-E gave me a chance to get an answer for free. The bad news is that I am concluding that I do not value DALL-E that much.

    Pay-per-image, first of all, is deadly for me. I've been really careful with my 50 free images, as a gamer-inclined person will be with most any resource. I have skipped asking for illustrations I didn't really "need", and I've never asked for a re-render of an illustration I was unhappy with. I get to a spot where a picture was mandatory, pick the best of the four results, and call it good — regardless of whether I'm really happy with what went down.

    I'd much prefer an unlimited-use (or huge-cap use — say 5000 images annually) periodic fee model. But I'm really skeptical they could charge small enough to make it work for me on that basis. I guess I'd happily pay $10 per year for effectively-unlimited access to DALL-E. I doubt that would even come close to covering my share of the infrastructure costs.

  • On The Limitations Of 2022 AI… The premise of DALL-E and friends is just insanely aggressive. As an AI Professor, I am more than aware. The fact that this bear dances at all is nothing short of astonishing.

    That said, once the astonishment wears off, the holes become pretty apparent. The biggest problem with Magic Neural Nets is that there is little that can be done with small-scale engineering to uncover obvious systemic limitations.

    For example, since its inception (no pun intended) DALL-E has liked to put "symbols that look more or less like text" in its images. It does this the most when it is confused about what is happening. It's "clever," but it isn't something that's OK in an image that is meant to stand on its own.

    No one knows how to fix this, really. I'm not much exaggerating here. OpenAI could retrain the net heavily to get DALL-E to stop doing that. Mostly. But that big a retrain would likely induce other follow-on problems. You can't just go comment out the "generate texty stuff" code — there isn't any. What you'd really like is to get DALL-E to put real, sensible text in the places where it wants to put text. That would be a whole 'nother grand-challenge-grade AI project.

    I look at this, at the failure to faithfully utilize the art styles I've asked for, the confusion about the subject — all of which are completely understandable given the tech involved — and I think "Will I be ok with very slow incremental progress in these areas?" and I feel like the answer is no.

  • On GitAtom's Clunkiness And "Ease-Of-Use"… The friction right now for getting a DALL-E image set up for my blog is surprisingly high. Much of this is GitAtom's fault. GitAtom doesn't have any real intrinsic support for images beyond what is provided by the cmarkgfm Markdown engine I'm using. It's not great. In particular, ensuring that an image is rendered at a reasonable size pretty much eliminates using Markdown-style image links, since the width parameter of the image tag wants to be specified. It's possible that with some CSS magic I could make this smoother, but it would be a big project.

    Further, I can't just drag-and-drop my generated DALL-E image, for several reasons. I want to preserve the query text I used to get the image as the image title, which again means I'm stuck copy-pasting it into an <img> element somehow. I need to get some alt text for visually-impaired readers, which is different from the title because DALL-E is just not that good. Finally, I want the image wrapped to link to my DALL-E credits page when clicked, which means some nested magic.

    I would guess it takes me about 20 minutes to go from "I want a DALL-E image here" to "OK ready to go." That's too long.

  • On The Competition… But if not DALL-E images, where would my blog pictures come from? Hopefully, this is not too much of a mystery. I could do pretty much without pictures altogether, as I basically am doing anyhow. I could use good ol' photos, both freely-available stock photos and photos I have taken myself. I can't really afford to pay artists, but I can create my own art in my own limited primitive way.

    I ran a blog for years and years without DALL-E. I can easily survive without it going forward. "Free is a very good price." —Tom Peterson

It's been a grand experiment. I'm not saying I will never use another DALL-E image. But I'm branching out. Thanks to OpenAI for DALL-E anyhow. It's been an amazing trial.

Allowing Folks To Fail

2022-08-26 16:39:02 PDT

I got into a mild argument with someone I care about today. I had a plan about how to do a thing. Other Person thought it was a really bad plan, with too many risks. After some argument, OP won, and I did it their way. That went fine.

It reminded me, though, of a rule I've been working on following for some time now. Whenever feasible, allow others to fail.

That sounds like a horrible mistake. Let me clarify.

Let us say that I am a teacher (I am), and one of my students has a bad plan. They've found a terrible way to try to achieve an ill-thought-out goal.

As a teacher, I have an immediate obligation to try to help them. I should absolutely try to work with them to clarify their goal. I should absolutely try to help them see the issues with their plan and suggest a better alternative. Perhaps I will even need to discourage them from proceeding at all, because I cannot see a good plan even with their help. So it goes.

But I may get an argument. Or a bunch of argument. The student may be convinced that I am wrong. They may feel that the goal is clear, and that the plan will work in spite of my objections. Of course, it is now my job to persuade them otherwise… or is it?

Premise: People learn more from their failures than they learn from avoiding failure. Real consequences are more real than hypothetical ones.

Premise: I could be wrong. After all, I may be more expert than a student, but I'm far, far from omniscient. Maybe the terrible thing I've pointed out won't happen. Maybe the student will be really happy in their goal state.

SO I should always state my objections and concerns mildly, as observations and estimates. If my advice is ignored, I should default to letting the advisee go on. One of two good things will result: the advisee will learn, or the advisee will be right. In either case I have won and they have won.

The exception to this default, of course, is about consequences of failure. If I can reliably determine that a particular failure is both actually conceivable and sufficiently devastating, I need to do everything in my power to stop that. For example, dead advisees won't have learned anything; those who have ruined their lives won't appreciate the price of learning.

The good news is that if I have presented as a risk-tolerant advisor — somebody who allows advisees to fail — my occasional strong opposition will be taken much more seriously. Advisees will know it's coming from a place of goodwill and trust, not just an ego trip or argumentativeness on my part.

So I try to practice caution and humility. I won't let people go into failure blind, but I won't close most doors in front of them either.

I guess what I'm saying is that OP should have let me fail. Oh well. I was reminded of this lesson, and everything came out fine. So it goes.


2022-08-26 13:24:55 PDT

OK, so after all that talking and caterwauling and whatever, if you look at the upper-right corner of your browser you should see a Feed Icon. If you paste the address there into your Feed Reader as per usual, you should be experiencing the joys of my new Atom feed.

The process of getting this to beta was as involved as getting a major feature to beta gets. I ended up refactoring most of the GitAtom codebase. This will make future improvements easier, but yeesh. In the process of getting the feed going, I closed some other critical issues.

There was also the usual yak-shaving. Notably, I wanted to include the Feed Icon as, well, an icon. This led to the discovery of the previous-decade's initiative for a standard Feed Icon, which I would have thought would have led to a freely-licensed Feed Icon to use. Sadly, I can't figure out the licensing terms for the "standard" icons and whether they license both copyright and trademark: it all seems to be under fairly fancy open source licenses. I gave up, and drew my own CC0 Feed Icons. Hopefully I won't have trademark issues with them — seems unlikely.

There's still likely some pretty bad bugs to be fixed here. Some things are not yet tested, and nothing is well-tested. Still, nice to be able to syndicate my site at all.

Staying Power

2022-08-24 23:58:35 PDT

Sometimes my motivation to blog is as simple as not giving up.

The last couple of days have been weird. I've been made tired and messed up by them.

Still, how hard is it to type a couple of sentences here? I'm reminded of the biting lyric by the late 1980s Christian songwriter Keith Green: "Jesus rose from the grave, and you can't even get out of bed."

So I slog out some typing. I'm still a day behind. But it's better than two days behind.

Talk to you again soon.

Almost At Atom

2022-08-22 22:31:25 PDT

I said I was going to add an Atom Feed to GitAtom yesterday. And by the end of today, I almost have.

I mean, teknicully I akshually have an Atom feed now. It just doesn't do quite what I want so I am refactoring and rewriting part of it, and there are a number of bugs that it has exposed that should still maybe be squashed.

My division of labor so far, as estimated off-the-cuff:

  • 3 hours: acquiring, reading and understanding various technical specifications around Atom, XML, MIME types, etc, to get the implementation standards-conformant(ish).

  • 3 hours: acquiring, reading and understanding a bunch of Python and library stuff needed to get the implementation right.

  • 3 hours: refactoring the existing codebase into some kind of usable shape.

  • 3 hours: writing new actual code for the Atom feed.

  • 2 hours: finding and fixing bugs related to the implementation.

  • 2 hours: building a dev instance of GitAtom and some infrastructure to auto-update it.

  • 2 hours: miscellaneous, including maintaining the GitAtom repo and issues, prototyping stuff as needed, debugging, etc.

So roughly 18 hours in two days, of which about 3 were the actual implementation of the actual feature. I'm not quite done yet, but the proporations should stay about the same.

Am I motivated to program like this because I'm blogging, or motivated to blog about programming? I dunno.

Starting to burn out on this whole fire. Must finish soon.

Oops, I Forgot

2022-08-21 13:05:03 PDT

Yesterday I talked about a really great idea that I needed to share. Today I've forgotten which idea it was.


It's now "Staying Motivated Week" in Blaugust. It couldn't be more timely. Here's what's keeping me motivated in blogging right now:

  • Getting GitAtom into a truly usable state. I have a million things to do today, but instead I'm going to start by finally adding a feed to the software.

  • Getting back into the swing of blogging. I enjoy blogging quite a bit while actually doing it. I need to remind myself of that by repetition. Humans are not one-trial learners.

  • Getting things written down. There's an old adage in academia, where I live, that a thing isn't real until you write it down. It's a hard adage for me to live by.

    I have a ton of content and content ideas that I want to be up on the web in some semi-persistent form. A blog is kind of a perfect way to do that: low effort, low bar for quality, but still a better result than carrying ideas in my head and telling them to my friends.

I'm going to get the future post ideas queue going again today. It will be full of half-started blog entries. At least it will remind me what my blogging priorities are.

I can't believe I forgot.

Can't Goodpost Tonight

2022-08-20 21:54:48 PDT

I have a great blog post idea. It's a topic I have talked about a lot in the past, and it deserves to be here.

What I don't have is the will to give the post the 20 minutes of careful effort it really deserves. It's an idea that has to be got right and expressed right to be of value.

I'm tired. You get this post instead. I can't promise that you will get the goodpost someday soon: I'll try.

I think this is a common blogging thing, really. The bloggers I've followed express it all the time. With a daily blog, pacing is everything. A recurring theme on my blog is that we are all human, that I am especially human, and that humans need to respect their limitations. I envy the people who make everything they do great. I don't know how they do it. I know that will never be me.

So enjoy this meta-post. It's what I have to give. Hope you'll "tune in" (wow I'm old) going forward and see me at my best. Hope my best is OK. I'll settle for OK.

Counting Is Hard

2022-08-20 21:47:18 PDT

Turns out my last post contains an off-by-one error. I was only three posts behind.

This is one of the most common errors in computing: a fact surprising to non-computingists, I think. Computers are supposed to be really good at counting things. They are. The problem is that we humans need to let the computer do the counting. When we try it ourselves, we inevitably get close but no cigar.

Turns out that the manual blog-post-numbering I was doing as I manually made Markdown files for my post was off by a bit here and there. Fixing it turned into a half-hour mess of renaming files and editing their contents to make GitAtom happy again.

The obvious solution is to fix my GitAtom blog software to do post numbering for me. That's hard, and I'll have to think about (a) what I want to happen, and (b) how to make it happen in the Python codebase. Again, maybe (a) is the surprising part: it turns out that figuring out exactly what we want the computer to do is arguably the hardest part of software development.

The computer is a real-life Literal Genie. The computer will (software bugs notwithstanding) do the most annoying version of exactly what we tell it to do. With great power comes great failure, mostly.

A Literal Genie maliciously granting a wish.

For now, I'll just wade on manually and try to avoid mistakes. Like that ever worked.

I'm A Steamed Ham, But…

2022-08-20 21:16:15 PDT

Steamed Hams

I got my Amateur Radio Technician license about 20 years ago, testing in along with a very good friend. The FCC knows me as KD7SQH, but you probably do not, since I've barely done any ham radio since then. I got the license for a purpose — to communicate in the Black Rock Desert during a rocket launch event, and once it served its purpose I set it aside.

I'm now getting involved in an amateur radio thing, and so I decided to upgrade to my General License. A couple of Sundays ago my friend and I went down and passed that test: my friend went ahead and passed the Amateur Extra test as well. I will be taking that test shortly with every expectation of passing.

With the upgrade, the next logical thing to do is to buy a real radio setup for my home. My hand-held transceiver worked for its purpose, but long-distance stuff requires more than an HT.

The sad truth is that when I think about the cost and time commitment of going there, I've pretty much decided to forego this plan for now. I'm somewhat budget-constrained at the moment: I'm also constrained by the hundred-foot fir trees surrounding my house, which while beautiful and wonderful make for unique setup challenges if I'm to get anywhere.

The fact of the matter is that the last thing I need in my life right now is to add another half-assed hobby to the dozens of those I already have. I may try participating in one of my local Amateur Radio Emergency Service groups in some capacity — that is a fine and noble endeavor. But I wouldn't need equipment for that right away: I can wait and see what I need and what I want to do.

Oh for the funds and time. Maybe someday. Maybe.

I've Fallen Behind, and I Can't Catch Up

2022-08-20 21:16:15 PDT

For the last few days, my life has been consumed by doing final setup and then leading the Rust-Edu Workshop. I'm really happy with how it turned out. Who knew that inviting a bunch of brilliant, creative and really friendly people to work together on a common interest would go so well? As a completely unbiased observer, I'd give the event a 9.8/10: the 0.2 was all me.

That said, it looks like I am now four posts behind this Blaugust. My grand ambition of maintaining a queue failed early: it's now just a struggle to get back to parity again.

Please look forward to three extremely short blog posts, even by my standards, as I try to maintain some semblance of being able to blog "regularly."

I am exhausted and suffering from stress recovery, but I'll be fine in a bit. Thank you for your patience.

The Remarkable Work Of Bill Wurtz

2022-08-17 00:03:26 PDT

Bill Wurtz is a guy on YouTube.

Bill Wurtz is a remarkable creator on YouTube.

Bill Wurtz is most famous for history of the entire world, i guess (mildly NSFW). It is rightly celebrated.

Bill Wurtz makes short music videos like old macdonald.

Bill Wurtz more commonly makes "normal length" music videos like Mount St. Helens is about to Blow Up, which is perhaps my favorite.

Bill Wurtz writes all of his own music, performs all his own instruments, does all his own animation.

Bill Wurtz is an international treasure.

Bill Wurtz is a favorite of Charles Cornell.

Bill Wurtz may not be for you. If not, I don't understand why.

I really like Bill Wurtz.

In Before It Was Cool: Appreciating Webcomic Creators

2022-08-15 22:18:47 PDT

Let's start this with a note I posted on an obscure Discord back in February…

In 2006 I started following this obscure webcomic that finished in 2015. It was a cute romantic comedy: not the kind of thing I usually read, but it was fun. Last week I got an update from them to check out their upcoming movie trailer. I thought it was a joke at first, but nope, it was real.

That was my introduction to the AAA title linked above. I ended up really enjoying the movie and can recommend it. It was a weirdly successful cross between a Hallmark Channel movie and an oddball webcomic.

I've been following webcomics since the web became a thing. Arguably before that: I used to follow Dilbert on Usenet through the Brad Templeton's Clarinet service back before Scott Adams bailed on the fanbase that made him. (I suggested "a clueless intern" to Adams as a character in an email a month or two before Asok entered the strip. Probably just a coincidence…)

I currently follow about 80 webcomics using, although most of those are not currently active. A couple of my student friends created with a bit of help from me: one of them got me into webcomics on a much bigger scale 20 years ago.

So all this hipster cred-building is my way of saying…

Thank you. Thank you to the creators that made and continue to make webcomics. You folks are amazing. I have been but a happy parasite, for the most part, on your success.

Thank you. Thank you to the webcomic tool and infrastructure creators that have made my webcomic experience so smooth and special. Some of you are my friends. All of you have my respect.

Back when I had a full-time blog before, I'd post my current webcomic list every few years. Probably time to do that again. This is edited both for taste and to show only currently-running strips. It's enough.

I haven't included links, because exporting them is a bit troublesome right now. Again, you can type titles at Piperka or Comic Rocket.

  • The Bouletcorp
  • Dead Winter
  • Dicebox
  • Dinosaur Comics
  • Existential Comics
  • Gunnerkrig Court
  • Guthrum
  • Magefront
  • The Order of the Stick
  • Outsider
  • Skin Deep
  • Spacetrawler
  • Terminal Lance
  • The Wandering Ones
  • Widdershins
  • XKCD

Creative Appreciation Week

2022-08-14 23:26:15 PDT

I sat down tonight to figure out enough Bevy to be able to participate in the upcoming Bevy Game Jam.

I failed. I failed to motivate myself sufficiently. Looks like it would probably take me 10 or 20 hours to get to where I'm comfortable with the framework, and I just don't feel like spending that right now.

It made me think, here in Blaugust Creative Appreciation Week, about the hells of complexity and weirdness that modern digital creators put themselves through to get stuff built. When I was a boy, the bar for creating on a computer was so low, and any creative output was highly regarded. Nothing is easy anymore, and expectations are so high now.

Dozens of great games will be built for the Bevy Game Jam this year. Each one will be many thousands of lines of clever code, with crazy amounts of art, music, modeling and other creative assets.

Thank you, those people! Wish I could be one of you. Maybe someday soon.

Reconstructing My Blogging History

2022-08-14 00:05:15 PDT

For many years I had a primary blog I self-hosted using the Drupal CMS. It was called "Project Resolution" because it started with a New Year's Resolution, and "FOB" for "Friends of Bart" — a name with quite a bit of history.

My blog collapsed not so much because of lack of will on my part as because the underlying blog framework collapsed. I got wedged in the state where I couldn't keep blogging with the existing Drupal because my Drupal version had become too stale (security holes and software rot), couldn't manage to upgrade Drupal to a newer version in spite of extensive efforts, and couldn't manage to extract my content and move it to a new platform in spite of efforts that included writing a bunch of bespoke code for that purpose. All of this provided the impetus for the creation of the GitAtom platform I am using now.

I did manage to dig much of the content out of Drupal as HTML or Markdown, but haven't yet posted it anywhere. I should do this in the next day or two so that I know what's up.

I have had other blogs as well. I had a Ghost instance up to blog EVE Online stuff; I'm not even sure myself what the current status of that content is. I think I blogged there for about a year around 2018? I have had various blogs for Google Summer of Code back when I was participating there, although they were very light on content.

Notably, I have a super-secret blog. As far as I know, only one very close friend knows of it. It doesn't have much content, but it contains things that were on the one hand sensitive enough that I was afraid to have them associated with me (especially pre-tenure), but on the other ok enough that it wouldn't be an absolute disaster if it got out.

Cartoon ghost with nonsense caption.

Things that I decided I didn't want on the Internet at all are squirreled away in that directory I talked about last post. Thoughts that must never, ever be on the Internet are not on any computer anywhere: I'm not silly.

You can also find many years of my comments on Reddit, or even dig my old Usenet days out of the Usenet archives to a certain extent.

So… yeah. I obviously like to write stuff and publish it. I'm not sure why I let blogging go for so long. Good to be back.

Stuff Not Blogged

2022-08-13 00:02:35 PDT

A future blog post here will cover — as thoroughly as I can manage — my old and dormant blogs. I have had a bunch.

I'm too tired to do a post that detailed and careful tonight. Instead, I want to talk about a weird side thing I've been doing.

One thing I learned long ago is to carefully read anything I am about to post on the Interwebs to make sure it actually belongs there. I think think twice and then often cut once. Since 2006, I have saved some 440 files, 109,000 words of text that I wrote and then "threw away". Most anything complex is there.

109,000 words is a lot. I have no idea how it piled up like that.

  • The longest single piece, an Ingress leveling guide written in HTML in 2013, is only about 3800 words, even using an inflated notion of word length.

  • Nearly the same size is the second-place piece: a transcript of a conversation on Hangouts with my friend Sergey in September 2014 while his hometown of Mariupol, Ukraine was being shelled by Russians. Dammit. I hope Sergey is OK in the current conflict. I know he got out of Mariupol years ago, but last I heard his parents were still there. So scary; so sad.

  • The third-place piece is a PDF draft, of all things, in which I rant in 2008 about why I am quitting the GPL. Spoiler alert: I calmed down a bit and didn't actually quite quit using the GPL. That said, I still stand by most of my unpublished writing.

  • At the other end of the spectrum, a lot of these pieces are just little snippets like this from August 2016:

    I know, right? It's been a good seven years since the SLC Police charged a gay couple with public kissing.

    Anyway, that could have happened anywhere in the US in 2009. Right?


    I have no recollection what prompted me to write that. It was probably in response to some Reddit thing. Anyhow, I clipped it instead of posting it, and there it is.

I keep all of this in a directory called blog. The intent is that I go back and mine it for future blog posts.

Someday I'll do that. For today, just thought I'd point out what might be a bit of a novel approach.

On Blogs, Blog Commenting, and GitAtom

2022-08-12 00:13:20 PDT

The problem of commenting on blogs is bigger than many non-bloggers realize, I think.

I wrote a blog for many years in the now-distant past. My blog collapsed for technical reasons that I will cover in a future post. (I have written many blogs. This was just the big one.)

Perhaps the largest non-technical problem I had was dealing with blog comment spam. I got a high enough pagerank back then that I'd get on the average of a spam comment or two a day. Real comments were pretty rare except on one vaguely viral post.

The spam I was seeing looked like it had been generated by an extremely low-paid human. I had enough captchas and whatnot in place to make it hard-ish for a bot to comment, and the comment content seemed to be vaguely customized.

For me as a casual blogger this constant drip of spam was painful. I eventually shut off comments. Now I'm up again on GitAtom, which lacks any comment facilities. What should I do?

My cousin uses some free version of Disqus for blog comments. I could conceivably set that up. I have no idea how well it would cut the spam down; I have mixed feelings about Disqus itself. There are various open source alternatives around. I could look into those, I guess.

There's various friendzone / pre-approval things I could do. I really do like the world to be able to legit comment though.

I've thought about taking advantage of Gmail's decent spam filtering. I could request that comments be sent by email to some dedicated Gmail account, then either manually or automatically forward them to GitAtom if they missed the filter. A lot of work, but might be worth it.

What do you think? Post your answer below… Nah, just kidding. You can always email me if you like. I'll try to pass on the good stuff here.

A Brief Introduction

2022-08-11 01:19:54 PDT

Apparently this is the week in Blaugust where we are supposed to introduce ourselves. Indeed, this week is perhaps almost over.

I'm dead tired and need to go to sleep. I will introduce myself as briefly as possible: no stories, no extra stuff.

I can do this, I know I can.

I'm Bart Massey. I've lived most of my life in Oregon, except for a couple of years in Tennessee when I was in early grade school. I spent the first part of my life in Portland, and after the Tennessee thing ended up in North Bend. Upon graduating high school I spent a year at Oregon State University, then four years at Reed College, graduating with a physics degree in '87. I spent two years working full-time at Tektronix, doing UNIX admin, open source tools and digital signal processing. Then I went back to grad school at University of Oregon, where I got my thesis MS CS in programming language implementation doing concurrent logic programming, then my PhD CS doing artifical intelligence. Slightly before graduation I got a job at Portland State University, where I've been a CS prof for over 20 years now. If you do the math, you'll find I'm 58.

I have a loving wife who I've been with continuously since high school, and one adult son who works as a software engineer here in Portland.

My hobbies include reading, programming, making music (piano and a little guitar and voice), playing poker, and too many other things to list. I am low A Tier at trivia and worthless at athletics and related pursuits. I am a poor follower of Jesus, but not a participant in any religion; I am not the least bit evangelical.

I like to explore and create. I am more than usually lazy and disorganized, with few time management skills.

That is about as small a wall of text as I can manage for now. I expect I'll be telling you more regularly.

Building A Queue For Blaugust

2022-08-09 22:49:04 PDT

I restarted blogging as part of Blaugust. The soft goal of Blaugust is to blog every day during the month of August. That is an achievable schedule for me; nonetheless, I already fell behind this month, though I have now caught up.

I am also working ahead a bit. The conventional solution to the problem of regularity in the web publishing world is to build a "queue" or "buffer" of upcoming posts. A buffer famously cannot match rates, but is great at smoothing irregularities. Readers like regular posts, while writers like irregular writing.

GitAtom doesn't currently have any explicit support for queueing. Because of the way the platform works, it is straightforward to write posts ahead and put them aside for later. This is the main thing that is needed. However, the process of pulling queue entries and posting them should arguably be automated based on intended posting frequency. If I don't have the time or will to write a post on a given day, I probably also don't have the time or will to interact with my blog at all that day.

Sigh. Added to the issue list.

Blogging Blog Framework Development

2022-08-08 10:35:01 PDT

When I made the decision to blog on GitAtom a week ago, I knew that dogfooding GitAtom would be both a great way to improve GitAtom and a giant pain. Both the improvement and the pain have exceeded my expectations. I've posted a half-dozen new GitAtom issues and closed a bunch of them. I've engaged with some "hard" issues and emerged, if not victorious, at least kind of satisfied.

Hopefully FOB4 has become easier to read as the result of my efforts. It has also become easier to blog with, for what that's worth. I'm afriad that FOB4/GitAtom remains more creator-friendly than reader-friendly.

Adding an Atom feed is the penultimate can't-live-without-it reader improvement on my list. I will try to find time in my currently-insane schedule (more because of my laziness and disorganization than because I have more than a person should be able to do) to get a feed up over the next few days.

(The ultimate must-have feature is allowing some kind of commenting. More about that in a future blog post.)

Sadly, I think the whole GitAtom hairball is due for some fundamental rethinking. I don't want to do that rethinking — I just want to blog. I don't want to document the GitAtom architecture extensively, re-architect it, document that, and re-implement/refactor big pieces.

I would switch blog software in a second if someone told me of the right platform. Unfortunately, I don't know of anything super-close to what GitAtom provides for blogging.

Such are the woes of a geek who blogs, I guess. Thanks for listening.

General License

2022-08-08 00:28:44 PDT

Passed my Amateur Radio General Class examination today. (My friend Keith passed both General and Extra. I'll do extra soon too.)

I didn't do as well as I hoped on the test. Ah well, passing is passing.

Should be doing voice on HF reasonably soon.

Scoring Jeopardy!

2022-08-07 23:29:19 PDT

At RustConf Friday I had dinner with a bunch of really cool people. I especially enjoyed talking to a couple that was seated with me; we chatted for several hours. One was a tech geek like myself (except smarter and harder working, I suspect). The other was a school nurse in a rough major city. You don't get to meet IRL heroes that often. It seemed like we had a lot of common interests and topics…

Ah, yes. I was talking about Jeopardy!, wasn't I? (The bang [!] is part of the name, if you didn't know. Game shows.) Somehow the topic came up, and I mentioned my "scoring system" for playing along at home.

There is a standard scoring system used by those aspiring to become Jeopardy! contestants. Coryat Scoring is a system developed for comparing contestant skill. Reportedly many home players try to get some minimum average Coryat score before trying to get on the show.

I don't have any strong ambition to be a Jeopardy! contestant. It would be pretty cool, but I'm just not willing to put in the work. For me, trivia is supposed to be relaxing fun. For someone aspiring to Jeopardy! greatness, there's not so much fun to be had.

Unfortunately, Jeopardy! recycles a bunch of topics. A lot. See how many episodes you go without seeing one or more of the following:

  • A question that is easy if you have memorized the US Presidents and Vice Presidents, their sequence numbers, and their dates in office.

  • A question that requires you to know the capitols of the 50 US states, or vice-versa.

  • A question that requires you to distinguish between Luxembourg, Lichtenstein, and Monaco.

  • A question about the life and works of Jane Austen and/or the various Brontë sisters.

  • A question involving Robert Frost or Robert Burns.

  • A question asking about a European mountain range.

I could go on (oh could I), but you get the idea. To be solid at Jeopardy, it's not enough to just know actual trivia. You need to first survey this body of knowledge by digging through gobs of old game records and trying to see what the "Clue Crew" (who writes the questions) is up to. You then need to memorize quite a bit of information to cover this gap. Sounds like a lot of work for a lazy person like me.

What I take pride in is my knowledge of actual "trivia trivia". The kind of stuff that you would never be able to predict or prepare for by study; you just have to know. I know what a finial is, what Matthias Rust did, what Hanlon's Razor says and who (probably) coined it. I didn't learn these things by studying, but by learning and remembering.

Sooo… Here's how I score Jeopardy! when playing at home:

  • I may only score on questions that are not correctly answered by the in-game contestants. This includes regular questions not correctly answered by any of the three, and Daily Double questions not correctly answered by the contestant tasked.

  • I give myself one point for each such question that I get correct. I do not subtract for those I get wrong: I allow myself to guess freely.

  • If I answer before a player attempts a question, I may change my answer after they fail.

  • Final Jeopardy is scored separately. I give myself an "Ace" if I get Final Jeopardy and the other players do not.

It is very rare that I score zero in a game. I would say my average is around 3-4. The other night I scored 10 plus an Ace.

Am I proud of that? Of course I am. But I'm also concerned. The quality of contestants had definitely seemed to slip during the last two years, for obvious reasons. But I was expecting it to come back, and with a few notable exceptions, I don't feel like it has. The clues seem like they're getting easier, and yet we still seem to get a lot more games with a lot of unanswered or incorrectly-answered questions than we did a few years ago.

The quality of clue-writing has also seemed to me to be declining lately. It is much more often that a clue seems to be ambiguously or just poorly worded. It is much more often that my wife and I stare at a wall-of-text clue hoping to just understand what the question is. For a while, there was a very strong reliance on things not interestingly related to trivia questions (don't get me started on Celebrity Before and After), although thankfully it seems to be winding down a bit.

Anyhoowww… I was talking with this nice person at the dinner and mentioned my scoring system and she looked at me astonished and said "I though I was the only one who scored like that!"

So that was cool.

A: It's the GOAT of gameshows, but also a course of constant friction and confusion: dangerous people on a dangerous show.

Q: ?

A Token Post: Rust-Edu

2022-08-07 00:19:18 PDT

So I've had my last two days completely consumed by RustConf 2022. In particular, I'm somehow leading something called Rust-Edu which is intended to get the Rust programming language into academia.

tl;dr: I've already missed a Blaugust blog post.

This is a blog post to backfill yesterday's void. Tomorrow I will write one to fill today's void, and another for tomorrow.

So it goes.

Moving Forward With FOB4

2022-08-04 18:39:02 PDT

Still fighting the technical demons here, but while I do that I thought it would be good to say what this blog should be about…

  • Technology: I am a technologist — a computer scientist, software developer, and hobbyist. I sometimes know things, and want to share them.

  • Creativity: I like to make and build interesting things — writing, music, electronics, etc. Sharing that seems fun too.

  • Opinion: As someone voted Most Opinionated in my High School class (seriously), I sometimes want to share my opinions with the world.

  • Miscellaneous: So much miscellaneous.

I hope you will enjoy some of it once I get good and rolling.

On DIY-ing A Blog Site

2022-08-03 19:53:55 PDT

This week my posts are kind of obsessed with process. Sorry: it's a boring way to start Blaugust. But it is what it is: I need to understand how to make my blogging process more permanent, and I'd like to keep a record of successes and failures.

So… much of yesterday was spent fixing GitAtom issues. I closed an issue or two and fixed some minor bugs. This site seems usable now for blogging, if a little fragile and weird.

I'm not yet sure whether choosing GitAtom was the right choice. Something like Ghost that I have used in the past might have been better. It offers many of the advantages of GitAtom, along with a fully-developed and polished experience.

GitAtom offers two things that I don't know how to get otherwise:

  • Low-friction Git-backed Markdown blogging with remote publishing. Lots of systems offer some subset of these features. I know of none that offers the whole package.

  • Absolute zero lock-in. By maintaining blog content in 100% standard open formats, and code as fully open-source extremely simple Python, GitAtom ensures that both repairing the existing codebase and migrating content elsewhere are easily achievable.

    I have built code to extricate my old blog content from the clutches of an ancient version of Drupal when I could no longer maintain or upgrade my site. blog-escape is incomplete and ugly, and does a poor job. I don't want that experience again.

What GitAtom doesn't offer is an Atom feed.

Yes, I know. Being easily able to provide an Atom feed was one of the big selling points of storing all the content in Atom syndication format. The code never got written. The Atom feed files being saved by GitAtom appear not to be RFC compliant, which will need to be fixed before trying to generate a feed from them.

So now I have two projects.

  1. Blog daily for Blaugust.
  2. Fix my blogging tool — in particular by adding an Atom feed.

Will admit to discouragement, but it has to be done. Onward.

P.S. — While trying to find blog-escape above I Googled "bartmassey blog rescue". I got a hit for this book, which confused me mightily for a moment. Needless to say, I am not the Bart Massey who wrote this book with an oddly relevant keyword.

The interwebs are weird.

A History Of FOB

2022-08-02 19:49:47 PDT

A couple of decades ago, I had a bunch of students who had all done substantial research work: I think about eight of them? One or two MS and a bunch of undergrads. The opportunity came up for the students to present at a University-wide student research Poster Contest. I generally don't like Poster Sessions; I think they're kind of a bad cross between a presentation and an article. But I thought it would be fun to flood the thing, so I brought the whole bunch of 'em — each with a lovely poster. (Coincidentally, so did one of our Physics profs. It was kind of hilarious, actually. Between the two of us I think we had about half the presenters.)

Anyway, if you're going to bring a team, you need a team uniform. So I had hats made. I designed a "Friends Of Bart" FOB logo and Keith Packard and I rendered it in SVG using our Nickle programming language.

FOB Logo

We looked ever so stylish.

Cartoon of a man labelled Bill with brown hair and glasses wearing a backwards bill cap.

That day the FOB "brand" was born. I've been using it ever since.

DALL-E Images On This Site

2022-08-02 18:49:47 PDT

I have been using DALL-E to generate some of the images for this site. These images are captioned with the prompt I gave DALL-E to produce them: I then selected the best of the four given choices.

Many thanks to OpenAI for the Beta DALL-E access. Hope this will be fun for everyone.

New Blaugust, New Blog

2022-08-01 18:20:33 PDT

I decided to take a shot at Blaugust 2022 this August. Sadly, I don't have a blogging tool I'm really happy with at this point.

I'm going to try to dogfood GitAtom as my blogging tool. GitAtom was written by my students to make Keith Packard and I happy. Sadly, it wasn't quite completed, and needs quite a lot of work. Nonetheless, I'm going to see if it can work for the month, and fix it as I go.

More tomorrow. Wish me luck!

[ Created with GitAtom ]