site mascot

matt bluelander's web log black flag emoji

About Projects Contact Support
Chat room Discord (popout)
Masto Mastodon (popout)
feed RSS feed (popout)

Index: 2020 2019 2018

2019 Index

Mr. Teal 2.0.0 Released

December 30, 2019

The big new version release of Mr. Teal is out! Too many changes to list here, go check out the release notes for the full info dump.

USLM 1.0.2 Released

December 26, 2019

Imrpoved the options and quality selection screens: the currently selected option is now highlighted. Added option to disable URL validation (for launching with non-twitch services.) Streamlined bookmark label creation. Created more legible icon. Download here: (1.1 MB)

New project: USLM (Unofficial Streamlink Menu)

December 3, 2019

This is a windows program I made for myself to use because it doesn't exist. You're welcome to use it if you want. It's basically a slightly fancier batch file - it expedites the process of watching a Twitch stream through streamlink and lets you save up to nine bookmarks. It saves your preferred quality settings and whether you want to use HLS passthrough. You can download it here: The program has been renamed USLM (Unofficial Streamlink Menu) and is available here: (1.1 MB)

Intentional Media Week: Day 0 / Planning Phase

November 16, 2019

Since I'm nocturnal, I made the executive decision to start IMW when I wake up Saturday evening instead of midnight on Saturday morning. It wouldn't make a lot of sense for it to start in the middle of my day. It'll be the first day of my weekend, so I can start it off on the right foot in the comfort of my home. Everyone's going to have their own idea of what they want to avoid and what they want to focus on, so here are my main rules for myself: 1. Podcasts are okay while I'm walking or riding the bus. That's time I couldn't really spend on anything else. I guess I could listen to an audiobook or something, but since I'll be reading books all week, I probably shouldn't split my attention like that. Plus I'd be stopping and starting listening at awkward times, in the middle of chapters, etc. Podcasts are best for an hour-long walk. 2. I also don't like reading in silence, so having music on in the background while I read is acceptable. I can also listen to music while I play games, if I don't like the in-game music. However, 3. No listening to podcasts or streams while I play games. This is a crutch I rely on way too often; neither thing would be interesting enough in its own right, but I can spend hours listening to someone play an RPG while I play another (bad) RPG. If a game is worth playing, it's worth giving my full attention. 4. If someone says "hey check out this funny video" and it's like 5 minutes long, I won't tell them no. I'm not gonna be a jerk. 5. If Shaun uploads his Bell Curve video this week, I'll watch it. It's a topic I'm interested in and not commentary about other media (well, it is, but I imagine it'll be more about the idea of the bell curve and Charles Murray himself than specifically just the book) so it's not in the category of stuff I want to avoid. Other than the above, I don't plan on watching or listening to any youtube, twitch, or podcasts. Or Giant Bomb, which is the only other place I typically watch videos. Here's the media I intend to consume instead: Books: I want to finish A Confederacy of Dunces (recently started re-reading it, but got distracted.) I read The Dispossessed recently and want to read more LeGuin, so I'll probably check out the first Earthsea book and more books in the Hainish cycle. I also found out that a couple of Haruki Murakami's early books were recently reprinted in English (they haven't been in print since the 80s and were pretty much impossible to find), so I'll check those out. I also want to read Hard-Boiled Wonderland, which is the only big Murakami novel I haven't read yet. Movies: I want to watch some of the old dumb action movies I've never seen. I haven't watched Terminator, Robocop, Die Hard, etc. There are also a few recent dramas Red Letter Media have discussed that sound interesting. (Imagine, actually watching movies instead of just watching people talk about them!) The books I should be able to find just fine on libgen. I don't know where the movies I want to watch are streaming, but I have all of my credits for Kanopy and Hoopla for this month, and I have access to Netflix and Hulu thanks to the kindness of a friend. I may be willing to sign up for Starz or something for a month. However, I also finally signed up for a VPN, so it'll be easier to obtain movies that I have trouble finding elsewhere. (I think the huge number of streaming services we have to contend with now has made internet TV just as bad as regular TV; instead of deciding to watch something and being able to do so for a reasonable price, we're stuck just "watching whatever's on" the one or two streaming services we have access to. The a la carte TV future we imagined was, as always, co-opted by capitalism and turned back into the thing we wanted to get away from. It's not a surprise that peer-to-peer filesharing is making a comeback, and as long as I can do it safely, I'm happy to jump back on board. Or back on deck, if you will. Arr, matey.) Games: There aren't really any games I can play the moment that I'm super interested in! Wish I could try Death Stranding, but that won't be out on PC for at LEAST another year. I tried Outer Wilds, but it's a first person game with a really weird, distorted, fish-eye perspective that makes me kind of motion sick. I kinda want to try Outer Worlds, and might be able to borrow that from my VPN friends, but I'm not expecting it to grab me. I debated whether or not I should forgo streaming games myself during IMW. It seems hypocritical to contribute to the type of media that I'm trying to avoid. But I figure the people watching me aren't going to have the same brain problems as me, and hey, I never play a game more intentionally than when I'm streaming and talking about it. I plan to show off The Wizard's Lair, which is a simple streamlined roguelike that reminds me of Fatal Labyrinth, which I streamed recently. Other than that, I'm not sure if anything interests me at the moment. I may finish showing off the Kingsway endings, or at the very least show off the main "good" ending. I don't really have time to stream during the workweek, so this will mainly be a Saturday-Monday thing. I plan on avoiding all non-fediverse websites. A lot of my unconscious media consumption, which I haven't really talked about, is just extremely aimless clicking around stuff I see on social media and looking at random websites. I'll read my feed, I'll post, but I won't go clicking around to anything that'll be too much of a distraction. Etc: It's not really media-related, but I want to poke around at Mr. Teal and make some progress on my VVVVVV level. My aimless media consumption has definitely contributed to dawdling on the personal projects I care about, and I want to at least do something to motivate myself to continue working on them. I recently bought all the Bloom County comics from a humble sale and wanted to use Mr. Teal to read it, but I was too annoyed at some limitations of the current version and the bugs in the 2.0 version I'm working on. So I guess it is media-related in the sense that I want to yak-shave my way to eventually reading some comics. That's all I intend to do at the moment! I'll probably post daily updates about what I'm doing, cause why not, I'll have time. It'll probably be a lot of game-streaming over the weekend and a lot of book-reading for the rest of the week, since that's the media best suited for home and work, respectively.

Intentional Media Week

November 14, 2019

An initiative by RC and matt So RC and I were talking, and we both feel like too much of what we watch and listen to is comfortable, conversational media like youtube, twitch, and podcasts that we don't engage with that deeply. There's nothing wrong with any of these, of course, but we're worried that relying too much on this kind of media and doing it automatically is inhibiting our imaginations. So, RC suggested we make a pact, I suggested some possible names, and Intentional Media Week was created. From November 16-22, we want to watch, read, and listen to media with intent. This isn't about asceticism, we're not punishing ourselves, and it's not a competition; we just feel like we could benefit from a break in routine and a widening of our view, and we're more likely to succeed if we encourage each other. Do you feel trapped in your RSS feed? Do you consume more Reddit posts than any human should? Are you feeling burned out from your MMO grind? Do you regret how many hours a day you spend refreshing social media? Then join us, friend! We'll be talking about things we read and watch and listen to on the fediverse with the #IMW tag. Talk about new books or movies you're checking out, ask for recommendations, brag about the thing you're finally working on again, commiserate, encourage. Let's All Consume Media With Intent! #IMW

I now have an e-mail address

October 24, 2019

I didn't previously have an e-mail address on the contact page. If you'd prefer to send me an e-mail instead of using the contact form, you can now reach me at


October 10, 2019

I've been taking a break from blogging for a bit to focus on other projects. Which is disingenuous, because the projects are all things that I can do while continuing to also write in a blog, and I'm actually doing less now than I have while actively blogging in the past, but shrug we live in disingenuous times. I've been streaming on a semi-regular basis over at the ol' video dump, including a full play of Phantasy Star IV which, at just over 24 hours, sets the all-time slowrun world record. Nobody is on record as having finished the game more slowly than I did. I enjoyed it, and now that the weather's getting cooler, I'll hopefully be streaming on an even more semi-regular basis in the near future. I'm chasing down a really annoying bug in Mr. Teal, but version 2.0 should finally be ready by the new year. 2.0 in 2-0-2-0. I've been trying to read a lot more, which isn't a project, but it makes my brain feel better than most other stuff I've been doing. I'm very grateful to the Library Genesis project for their valuable work in curating a digital library, since it's harder for me to find time to get to the physical library recently, and lighting conditions in my office aren't optimal for comfortable reading, so an e-ink reader with a frontlight has been a great investment. I've been struggling with a job that occupies 48 hours of my week and leaves me too emotionally and mentally drained to do much else, and leaves my life too logistically complicated to do much else too. At the same time, it's the only job I've ever had where I don't dread and resent going in to work every day, because I feel like I'm doing something that actually helps people, so I can't picture myself going back to another bullshit job with normal hours, but because I'm not up when the sun is up, I'm not welcome in society. I don't know what the solution is. Find fulfillment outside of society somehow, I guess. I haven't been playing many games other than what I've been streaming. I got a roguelike itch and have been poking around at nethack again, which was a mistake. Game blows. I briefly got re-addicted to a crappy free MMO I played for a couple months a couple years ago, but I wasn't actually addicted to or invested in the game itself in any way, it was just something to fill time and watch numbers go up while I listened to podcasts and streams. There aren't any games I'm super excited about coming out. I'm most excited about continuing to stream Kingsway, a game from 2 years ago that I've finished pretty thoroughly. I plan to go back through all the endings on-stream, this time rolling random starting characters and items to make it more challenging. It's not the most thrilling game in the world, but it's one that I like, and I like sharing it with people. It happens sometimes, I go through phases where I'm more or less interested in things. Lately it's been less. I've been really tired. But the ebb will flow again, or something.

Hoofin' It version 2 released

September 17, 2019

Version 2 of my Doom mechanical mod "Hoofin' It" is now available on its project page. See the changelog at the bottom of the page for details.

New tool: DolltrackerWB

September 15, 2019

DolltrackerWB is a small Windows utility for tracking the number of dolls you've collected in Wonder Boy for the Sega Master System. See the download on the project page.

Two new padpyght skins

August 25, 2019

I've added two new skins for padpyght, the input visualization program: 1bitsaturn and 1bitmodern. The former is meant to visualize the Sega Saturn controller (or the Megadrive controller with additional shoulder buttons; the controller that inspired this is the 8bitdo M30, which I recommend.) The latter is for more modern controllers, such as the X-box and Play Station, and includes support for two analog joysticks. You can find more information on the projects page. I also removed some unnecessary files that were in the 1bitsfc folder and made the button mapping process feel a little more natural, instead of having to map buttons in a totally haphazard order.

Q&A: Web dev pointers?

August 14, 2019

Anonymous asks:

Have you thought about making a brief guide for building the ideal site, or at least refer to existing guides for such? I realize one can just google up them HTML pages, but considering how you discuss the topic quite a bit I feel such a post would be useful for us youngsters. Hope I'm not being too burdensome with this suggestion. Cheers.

I'm flattered that you'd think of me for this! I'm by no means an expert in web design, or any kind of design, and my idea of the ideal website is pretty idiosyncratic (as you can tell by the website you're looking at) and I think personal websites should be unique, an expression of the builder's personality. So I don't think I'm qualified to write a direct tutorial or anything. However, I can talk about how I learned, and hopefully that can help inspire you to learn. First off, the web is open-source by its very nature. Find a page someone built by hand, (you can usually tell which ones are handmade by disabling javascript in your browser - it should look mostly the same afterwards. You can see a few modern examples by visiting the low-tech webring.) Right-click anywhere on the page that isn't a link or a picture and choose "view source". This will show you all of the HTML that went into building the site you're looking at. Hopefully, this should mostly be the text on the page with all kids of weird words in <angle brackets> sprinkled in here and there. If you see something that looks like ancient Egyptian calculus with nary an English sentence to be seen, you're waist-deep in javascript land, run before it's too late. You can compare the source to the page to see how everything fits together, how paragraphs and sections are designed, how people make links, and the basic structural elements of a website. Most of the actual design work, the colors and fonts and columns and whatnot, is made in what's called "cascading style sheets", or CSS. Sometimes the CSS will be built into the page, in which case you want to look at everything between the <style> tags. (my own site is one example of this.) If it's a separate file, you want to look for a line near the top that says something like <link rel="stylesheet" href="style.css">. Click on that, and it'll open the CSS file in another window. Download a local copy of the HTML file to your computer (and the CSS file, if there is one) and mess around with them. You can use notepad or whatever text editor is on your computer, or download one that's good for HTML. If you're on Windows, Notepad++ is a popular free choice. It'll highlight different parts of the code in different colors. Open the HTML in your text editor and have the site open locally in a browser. Change things, refresh the site in your browser, and see how your changes affect what the site looks like. If you don't like it, ctrl-Z and try something else. You can't break anything or do anything wrong, just experiment. Once you make enough changes that it looks different enough from the original to satisfy you, congratulations! You now have your own unique website. If you want more information about a specific HTML or CSS tag, is my bible. I always have it open whenever I'm making any design changes to a site, especially when I'm working with CSS, because it can be pretty dang unintuitive and that site has good written explanations AND a tool that allows you to see how the code works and make changes right in your browser - click the "try it" button on any element and it'll open a little live code window that you can tinker with. (addendum: you will occasionally see sites that don't use CSS at all. They add colors and font styles with tags like <body bgcolor="gray">. This is the HTML 4 way of doing it, and even though tutorial sites will tell you it's deprecated or outdated, it still totally works, and will even work better on older browsers than CSS. Some people swear off CSS completely, which I can totally understand, it can be pretty intimidating for a beginner. I like it, once you start to understand how it works, I find it's a lot easier to make big style changes to a lot of pages at once.) This is how I learned, but it's not the only right way to do it. I'm definitely the kind of person who learns best by doing. If you learn best by reading, ask someone who would know about good books on the subject. If you learn best by watching, find some good video tutorials. There's plenty of good resources out there. Just don't listen to anyone who says your site has to have bootstrap and dynamic menus and 800 fonts and be a self-contained javascript app. The important things about a website are the words and pictures on it. Once you've messed around and you have a site you like, sign up for a free account at neocities and share it with people. It'll be a perfect cozy little home for all your pictures and words. Finally, if you try to learn about this stuff and you're bored to tears by it, don't worry about it. Web design definitely isn't for everyone, and there are lots of ways to make a website without having to think about it. Blogger still has some HTML-only templates that are totally fine, and some of my favorite sites are people writing with just the basic default template. If all you wanna do is write, black text on white background with blue links is easy to do and totally valid. But if you do want a bunch of clashing colors and weird gifs and randomly scattered text, that's ok too. Do what works for you. Make the thing you want to make. I hope this is helpful, and if you have any specific questions about how to do something, my inbox is always open.

New Doom 1 mod: Hoofin' It

August 11, 2019

I made a new Doom 1 mod. It's called "Hoofin' It: A study in the effects of antimatter ballistics on demonic cyberflesh". It's a challenge mod in which all of the monsters have been replaced with cyberdemons and you have an antimatter rifle that can kill them in one shot. Check it out! (requires GZdoom)

Pokemon Go

August 8, 2019

My Pokemon Go trainer ID Please be my friend, I have several gifts I can exchange and I need items. Also does anyone know how the capturing in this game actually works? It seems like you want to throw the ball when the two circles overlap, but everything I read on the internet says you want to throw it when the inner colored circle is as small as possible, which doesn't really seem to make sense, and I feel like I get more "nice" and "great" throws when the inner ring is larger, but it still seems to happen pretty randomly.

Review: Monster Boy and the Cursed Kingdom

July 30, 2019

** Original review $30 on Steam/GOG Incredible game, one of the best adventure platformers I've ever played. Stays true to the spirit of the Wonder / Monster series without feeling old-fashioned and frustrating like those games sometimes could. Impeccable PC port, worth the wait. 100%ed it in 25 hours so there's plenty to sink your teeth into. Looks phenomenal, excellent sound design, mostly decent music with one or two jams and one or two clunkers. Felt very good to play. My only small criticism is with the UI design - radial menus were a bad choice for this game, because I'm constantly having to switch between the D-pad and the analog stick. It wouldn't be so bad, except that I frequently had difficulty shifting between forms with LT and RT, it would randomly stop responding to individual trigger presses and I had to hold both triggers to bring up the radial menu more often than I'd have liked. Made sections where you had to quickly shift from one form to another a little frustrating, but there were only a couple sections like that in the game and I never got stuck because of it. I haven't seen anyone else complain about this, so it might just be an issue with my controller. I know the review looks negative when the "con" section is longer than the "pro" section, but I don't wanna give too much detail about the good stuff because you should discover it for yourself. Just take my word that the nitpicks are incredibly minor and this game was a joy from beginning to end.

Top 5 English video game songs

July 23, 2019

Hover your mouse over or tap the dots if you just want to see the list: 5. Pumpkin Hill Theme (Sonic Adventure 2) 4. Que Sera Sera (Katamari Damacy) 3. Still Alive (Portal) 2. Momoko Ring's Theme (Final Zone II) 1. Your Reality (Doki Doki Literature Club) I recently had the thought, "you could probably count the number of good video game songs with English lyrics on one hand." So, here are my top 5 video game songs with English lyrics. I don't have five in mind as I start writing this, but I'm sure I will by the end. For inclusion on the list, the song has to be sung in English (so the opera from Final Fantasy VI doesn't count) and actually appear in the game, it doesn't count if it only appears on a supplemental soundtrack album. Also, this goes without saying, it has to have been composed for the game, so as much as I love "Jerry Was A Racecar Driver", Tony Hawk's Pro Skater doesn't count either. In addition to a numerical ranking, arbitrary numbers are fun, so I'll be assigning a rating of 1-10 for three different variables, for a maximum score of 30.

Note that this list may contain spoilers for the games that are mentioned.
  1. Pumpkin Hill Theme (Sonic Adventure 2) [youtube link]
  2. Gets an 8 for thematic appropriateness. It's a hip-hop song in which the singer self-identifies as Knuckles, the character you're playing during the level where this song plays. He's describing exactly what he (and the player) are trying to do during this level like the intro to a 1970s sitcom. Not much to complain about. The only thing I take issue with is Knuckles' attitude, which feels out of character to me. Maybe it's because my primary familiarity with Knuckles comes from his titular game on the Genesis and I'm not as familiar with later games, but Knuckles strikes me as a serious, peaceful person who only fights when it's necessary to protect his home. I don't believe he'd introduce himself as "the fighting freak Knuckles" and he just feels overly aggressive for what is mostly a level about exploring and searching rather than fighting. Gets a 0 for crossover appeal. Like... I can't see this appealing to almost anyone, even big fans of the game. It's not a good hip-hop song, but I appreciate that it is a hip-hop song in a medium where that's not really a thing. I like it, but I wouldn't suggest it to anyone except as a joke. It gets a 4 for emotional impact. How emotional can you really get about a Sonic game? But the vocal songs make Sonic Adventure 2 stand out and give it a charm that really sets Sega apart from any other game developer of the time. They were going for something, you know? Blue skies in games. You could put "City Escape" in this slot and it would get exactly the same reaction. It might not be a good song per se, but it evokes Sega in the 90s, and what they represented, and that makes me emotional in a different way. Final score: 12
  3. Que Sera Sera (Katamari Damacy) [youtube link]
  4. Gets a 9 for thematic appropriateness. It is a song about exactly what you do in the game, rolling things up into a ball to make a star. It's the first time I recall a song in a video game with lyrics about what you actually do in the game, and it was refreshing and unique! It's only missing a point because it's not clear whether this song is diagetic or not. Is this the King singing? Is he serenading the Queen? Comparing her to the stars in the sky in his clumsy way? Because that would be sweet, and there are other songs in the Katamari oevure that are the King singing in-universe, so it's likely, but they didn't make it explicit. It gets a 2 for crossover appeal. Don't get me wrong, I love this song, but let's be honest, this style of jazz music is already something I wouldn't recommend to anyone I know who's not specifically into it, and a man with a very thick Japanese accent singing about how he wants to "wad you up into [his] life" is going to raise some eyebrows for anyone not familiar with the game. No disrespect, I still love it. It gets a 5 for emotional impact. This is just one of many background songs in a game that's a pretty unserious thing in the first place. Katamari never made me cry, I never felt any particular way for any of the characters, but it's still a beautiful thing that brought me joy, and each song contributed to that joy in its own way. So it gets a 5, "the coward's number." Final score: 16
  5. Still Alive (Portal) [youtube link]
  6. Yes, it was ground into dust by internet meme culture. It was still an incredible song the first time you played Portal. It gets a 7 for thematic appropriateness. It's GladOS singing about the events of the game, but the ambiguous ending makes it kind of a head-scratcher. In what form does GladOS still exist? How is she getting this message to you? What is Black Mesa? That reference would have been totally lost on anyone who hadn't played Half-Life. Also they pushed the cake joke maybe a little farther than they should've, even before the internet got ahold of it. It feels like the writers calling back to a funny joke they made, not something GladOS would necessarily focus on herself. It gets a 5 for crossover appeal. The song appeared in Rock Band, but the vocal distortion makes it a little too weird to be just a regular song that people listen to. It gets a 7 for emotional impact. Because of the way the story is mostly told by an unreliable narrator barking orders at the player character, you don't really get a chance to develop a strong emotional connection to GladOS. The song gives you a glimmer of personality that wasn't there during the game, and it leaves you wanting to learn more about her, but it doesn't really hit you hard because you're still not sure what her deal is. However, it's still sweet and charming in a way few video games ever are. Final score: 19
  7. Momoko Ring's Theme (Final Zone II) [youtube link]
  8. A legitimate jam, maybe the first truly great song composed for a video game in English. This was 1990!! It scores an 8 for thematic appropriateness, as it directly describes Momoko's thoughts about the events of the game from her own point of view. It only falls short of perfect because of how difficult it is to tell what the game is actually about, as the English script and dialogue are legendarily flat, so the song suffers for its context. It scores a 10 for crossover appeal. I listen to this song for fun all the time, and everyone else should as well. If you disagree, well, it's my list. It gets a 5 for emotional impact. Unfortunately, this song is only played as background music as portions of the game where you're playing as Momoko, which is a real wasted opportunity. No real emotional weight. It gets a 5 because it's such a good song that it made me feel an emotion about this game at all, which takes some doing. Final score: 23
  9. Your Reality (Doki Doki Literature Club) [youtube link]
  10. It gets a 10 for thematic appropriateness. It's an in-universe song that was written and composed by the antagonist, which was telegraphed very early in the story when she mentions that she's been taking piano lessons. It references the events of the game in a poetic and thoughtful way. It's not just someone directly singing about what happened like in a musical, it's a story filtered through the character's perspective and emotions. It feels real. It gets an 8 for crossover appeal. As lovely as the song is, the production is still a little rough and you can tell it's not a trained professional singer. This is a good thing for the other two categories, because the character singing is an amateur, but it might make it a little harder for a non-video game player to get into. (plus, nobody who likes the game is going to recommend the song on its own because it loses much of its impact out of context, and you should really have played the game before reading this.) It gets a 10 for emotional impact. It's similar to the ending of Portal, with the primary antagonist singing the protagonist a song over the credits, but this time, you've spent a lot of time with the character, you've really gotten to know her, and you've accepted her fate, and that makes this sincerely sweet song so much harder to deal with. It humanizes the character - literally, because it's the only time in the game you hear anyone's voice. It's totally out of left field and it hits you emotionally in a powerful way that you'd never expect. It's a perfect end note to the game. Congratulations to Doki Doki Literature club, with an impressive 28 out of 30, you scientifically have the best English song ever composed for a video game.

Compatibility or "security"?

July 20, 2019

I'm thinking of removing TLS from this website so it'll work in Lynx and on older computers in general. I think backwards compatibility is more important to me than the illusion of security. I say "illusion" because this site doesn't actually need to be secure; no information is collected from you except what you voluntarily type into the contact form, and that doesn't need to be encrypted because you shouldn't be entering sensitive information there anyway. As I mention on the privacy page, I only use TLS because it's easy to set up thanks to "let's encrypt" and because of theoretical man-in-the-middle attacks from hostile governments or ISPs. If I'm being honest, it's mostly because modern web browsers tend to give worrying scare-or (scare + error? I dunno, it kinda works) messages on any site that doesn't have TLS, even if it's just a plain HTML page, because the web has mutated and web browsers are more like some sort of god-awful javascript virtual machine terminals instead of a program for looking at documents. I doubt any visitors would pay any attention to a message like that, but it's still annoying to see. I guess the ideal solution would be to set up an alternative version of the site with no TLS, something like, and automatically redirect a visitor there if their browser doesn't support TLS, but I don't know to do that. That goes beyond the "one click dirt-simple script" that was the whole reason I set up Let's Encrypt in the first place, and I really don't want to have to actually learn about this shit, which is why I'm thinking of scrapping it altogether. I dunno, I'm on the fence. If you have any thoughts or suggestions, please drop me a line.

1bitsfc for padpyght

July 16, 2019

I've reorganized the project page a bit, and added a minimalist super famicom-themed skin for padpyght called 1bitsfc to the new "Misc." section.

Skull Timbrels

July 9, 2019

I've released a music replacement mod for Doom 1 featuring the music of Bull of Heaven. It's called Skull Timbrels.

Muse Dash music

June 24, 2019

A rhythm game came out a few days ago called Muse Dash and I'm pretty into it. My review:

Best impulse purchase I've ever made on Steam. This is a simple but satisfying rhythm game with only two "notes" in the same vein as Taiko Drum Master. Good range of difficulties, even beginners should have fun unlocking all the songs and completing the challenges on easy. The base game comes with 46 tracks, and most of them are certified bangers. Maybe the best rhythm game soundtrack I've ever heard. Unbelievable value for 3 bucks. (original review here)

I wanted the soundtrack in Mp3 format, so I downloaded and converted this youtube playlist. You can download the zip file here. 638 MB, 137 tracks. This link will expire after 100 downloads or 7 days so share/back this up if you're interested. You can also use youtube-dl and ffmpeg/LAME to download and convert it yourself. Feel free to contact me if you have any questions about this file.


June 21, 2019

Debate about licenses, such as minute differences between the GPL, the LGPL, the AGPL, the MIT license, etc etc are, for most people, legal role-playing. Which is fine if that's something they have fun with, and I'm not here to tell people what they should or shouldn't care about. But if they haven't considered not worrying about it, it may be worth a try. Nothing I make is good enough or well-known enough for people to want to rip me off, I make stuff because I like to, and I hope someday people will get value from what I do. Yes, it's unpaid work, and yes, it would be nice if people would contribute funds if they get value from my work, but if they don't, there's nothing I can do. I don't have money. I likely will never have a significant amount of money. I can't afford to hire a lawyer. I'll never be high-profile enough to get help from the EFF. The legal system isn't my friend, copyright laws aren't there to help me, they exist to ensure the continued entrenchment of capital and the marginalization of people like me. This is something all right-thinking people are starting to realize about criminal law, but a lot of people still hold out hope that the civil legal system can work for them. I wish I could share their optimism. This isn't to say people shouldn't get paid for the work they do, quite the opposite; everyone should get a basic income that allows them to work on whatever they want, and work of great value to society should be rewarded. However, the legal system as it exists now has no interest in making sure I'm paid for my work, so I've decided to be realistic about it. Time spent worrying about licenses that won't protect me and that I'll never be able to enforce is time better spent making things. This is why I release everything unlicensed/CC0 - I'm never going to take anyone to court, so there's no point worrying about the legal document I would use in my defense if I ever take anyone to court. Thinking about the legal system can, against all odds, be interesting. It's an arcane set of rules that nobody really understands that secretly dictates everything that happens to us. Like any good TTRPG, finding ways you could theoretically use the rules to your advantage can be an interesting exercise. If you find it interesting and want to spend time thinking about it, go for it. But if it's a source of stress, you may want to ask yourself what you're really getting out of it.[2] Someday we'll have a legal system that works for us, but until we do, I see no reason to try to work within it. [1]: GNU/General public live-action roleplaying [2]: Naturally, my experience isn't universal, and some people without money may find themselves lucky enough to get the support they need to defend themselves in court. I assure you, this rant isn't about you, get a lawyer, you deserve for your work to be protected.

Care work

June 21, 2019

How do you shut off your empathy just enough that you're not ground into dust by the infinite pain you're vicariously experiencing without shutting it off entirely and becoming totally numb and unable to care about anyone? Is a happy medium possible? How does anyone do this long-term? I don't want either of these things to happen but over time one or the other seems inevitable.

Response to koopiq

June 15, 2019

koopiq wrote:

Hello I'm testing your captcha, don't mind me
Test successful. Thanks for your interest.

The web is a black hole

May 2, 2019

I recently rescued a 10-year-old video from the memory hole: it's a supplemental video for the show Mythbusters in which one of the hosts, Jamie, talks about what's in the toolboxes he uses in his production studio, M5 Industries. The video was originally only posted on, and unlike the M5 tour videos from a year earlier, no one had mirrored it on youtube or anywhere else. I thought it was gone for good. I managed to find it via the Wayback Machine. I had the URLs for the video pages thanks to some old forum threads. However, the wayback machine, as useful as it is, isn't the best way to find old media files. Archived pages full of unstyled text and broken images is the expectation. I decided to give it a shot anyway. After poking around, I found a version of the site that exposed the URL of the media files in a plainly-readable format. The videos themselves weren't archived, but luckily, they were still sitting around unused on the CDN that uses. I was able to grab the highest-quality versions of the 5 Mp4 files it was split into and join them together into the version that I uploaded to youtube. I'm glad that the video gets to live on in a form other than my memory and a bunch of dead links scattered across old forums. However, the difficulty I had finding the file demonstrates just how much of a black hole the modern web is for anyone interested in preserving its history. Even the oldest archived version of the site from 2008 does not have anything resembling a video URL when you look at the source, just an unparsable mess of javascript and SWF embed variables: Unparsable javascript code Maybe the wizards working on youtube-dl could figure out how to get a video out of this garbage, but not me. And of course, nobody should be expected to put in the work to figure out the internal workings of a terrible dead website for such a niche thing that so few people are going to care about. The only way I was able to save it is that I got lucky and found a version of the site from 2014 that, for whatever reason, is built so that the URL of the video file is visible in the source code, and miraculously those files still exist. Of course, this was the web in the late 2000s, and it's gotten much worse since then. Websites are increasingly built in a way that they're not even documents that can be displayed by a browser, they're virtual machines that display text and images in a completely proprietary format that won't display at all without javascript, which makes it impossible for the wayback machine's bots to automatically archive. Take, for example, any recent snapshot of It's nothing. It's a white screen. It's not a website, it's a javascript program you have to run on your computer that simulates the experience of looking at a website. And this is how the vast majority of the modern web is built now. The upshot is that we have to be proactive. We can't rely on the wayback machine to keep the web's history around like we used to. I'm not saying we need to slavishly devote our lives to manually backing up everything on the internet, but if you see something you think might be important later, and stands a chance of going away, it might be a good idea to save it. Use, which is sometimes able to convert a javablob into a document. Learn about and promote HTML-only versions of websites, if available. Take screenshots. Save videos with youtube-dl. Mirror the media files on Don't let corporations control our history.

What's been up? April 2019 edition

April 16, 2019

Hello! For no reason, here's some things I've been up to, presented as a numbered list:

  1. Donor thanks
  2. First off, many thanks to NJ for their generous donation! Not the state of New Jersey, a person with the initials NJ. I'm using their initials so they know I'm thanking them without compromising their anonymity. If New Jersey wants to give me some money too, though, I wouldn't turn it down.
  3. Baba is good
  4. I had a fantastic run with the game Baba Is You, a sokobon-style tile-based puzzle where you can change the rules by pushing blocks of text around. I've played for about 40 hours, and I think it's the best puzzle game I've ever played. It's easier to learn by doing than it would be for me to explain it, so I recommend checking out the free jam version and see if you like it. It serves as a good demo for the final game. If you get to the end and feel like you want more, I couldn't recommend the game strongly enough.
  5. Too much of a good thing
  6. However, I felt like I needed to take a break because I played so much in such a short amount of time that it brought back an unpleasant type of dream I've experienced through most of my life, as I described on cybre space:
    I took a break from Baba for a few days because I started having dreams that were just nonsensical puzzles that my brain got stuck in an endless loop trying to solve. It's not the game's fault, I just played too much in a short period of time. Will get back to it soon, but I hope I didn't lose all of my puzzle solving ability. I've had these endless loop dreams since I was a kid. They're unpleasant and always leave me feeling unrested. This is the first time in awhile though. The earliest one I remember is from when I was a tween, the dream was about two wizards in opposing towers having a wizard's duel. They would throw fireballs at each other but their towers were far enough apart that they could always take cover behind a parapet and be unscathed. This back-and-forth went on for hours. When I woke up, I felt not only like I didn't get any sleep, but I also felt physically ill. I didn't know the term "ad nauseam" then, but when I encountered it, it immediately made sense.
  7. Hacking1: Mr. Teal 2.0
  8. I've been hard at work on the next Mr. Teal release, and I think the 2.0 release should be coming before the end of the month. I've been thinking about the features I want for the eventual 3.0 release for awhile now, and the 2.0 release will be a big stepping stone on that path. Not going to speculate about a timeline for the 3.0 release, since I don't even know if I'll be able to pull it off with my programming ability, but I'm hopeful.
  9. Hacking2: QB64 1.3
  10. The new version of QB64 was released a few days ago! It seems like a good release. Being able to press ctrl-shift-G to jump directly to a line with a compiler error is a small but welcome new feature. None of the other features are that relevant to my use, but I'm grateful for the people working on it and I'm glad it's continuing to be supported. It now has a function in Windows that supports out of the box dragging and dropping files onto the program window, so I may add a feature to Mr. Teal that lets you import a folder that way similar to how you can drag a folder onto the icon. It's not a high priority feature though. I made my first ever useful contribution on Github, a minor fix regarding the in-program documentation. I know the whole point of open source software and Github is that I should have been able to just make the fix myself, upload it as a suggested program revision, and then the developers would have just had to approve the upload instead of having to do it themselves, but I'm a tiny nervous sparrow and didn't want to accidentally do something wrong.
  11. Hacking3: The Hacker And The Ants
  12. I reread The Hacker And The Ants by Rudy Rucker, which along with the Sega Genesis version of Shadowrun was my first introduction to "Cyberpunk" as a concept. It's a very good book, and it helped spur my early interest in programming - it's extremely well-written, and presents programming concepts in a way that makes them seem exciting, and really captures the magic of getting a program to work like nothing else I've ever read. It's realistic - Dr. Rucker is the author of The Transreal Manifesto (PDF link) and is a proponent of sci-fi authors using their lived experiences as a foundation for their writing, and mixing fantastical elements into autobiography. As such, it's not as stylish as most of the early cyberpunk, like Neuromancer (another book I like but didn't experience until much later) but it's extremely accessible and has a high degree of verisimilitude. Unfortunately, transreal writing had an unfortunate side-effect with this book: since the main character is partly autobiographical, and written from a male perspective in the largely male-dominated world of professional programming, the book is peppered with casual misogyny. The "2.0" release of the book in 2003 dials back a lot of the sexism, which is commendable - many authors are too precious to go back and cut the toxic bullshit out of their older work - but some parts of it still leave a bad taste in my mouth. It's written in the first person, and all the female characters are clearly just window dressing for the protagonist and don't have any agency of their own. None of them affect the plot in a serious way. Female hackers are presented alongside male ones without comment, as if they just belong there, which is good, but I wish some of the women were more important to the story. That said, if you can get past this aspect and are interested in programming at all, it's a great, easy little read.
  13. Hacking4: Side-note: on "hacking"
  14. The Hacker And The Ants uses the word "hacking" as a synonym for programming, which I appreciate. The protagonist mentions that the word had taken on nefarious connotations, but was always just used by programmers to refer to programming. I think this is pretty accurate for the time frame it was published, 1994. The word has had a lot of ups and downs since then, and it's mostly come back around as a positive term, as more people realize the image of the nefarious black-clad hacker breaking into your computer and pwning all of your files is largely based on bullshit. I think the word nowadays is used to refer to tech-conscious people who focus on security, and isn't inherently programming-related. I like it as a term for coding though, because that's what it feels like: looking at code, hacking out pieces, dropping them in somewhere else, cutting through a nest of spaghetti code with a big cleaver to get to whatever's causing your issue. Programming isn't what it used to be. The modern tech boom has turned programming into kind of a rock star job. A common image is the tech bro making high six figures working for giant corporations to make software that hurts us. I'm very glad for the burgeoning community of everyday open source programmers working together to make cool things, which is one of the things I've seen a lot of since I joined Mastodon. There's still a lot of toxicity in that community and a lot of shitty ideas tied up with it, but hacking on a small scale has become more accessible to a lot of people, and positive communities are forming around it. It makes me wish it was something I had more aptitude for, so I could make positive contributions to something, but I'm happy watching from the sidelines and hacking away at my own small projects. I use BASIC to make software for Windows, which is something that automatically disqualifies me from any serious hacking communities, and I wish there wasn't so much elitism out of that community. I wish there was more support for anyone interested in programming, regardless of their chosen language and operating system, but on some level I understand. Windows is an OS with a lot of problems, but it's what I grew up with. I never had any formal experience with any of the alternatives. I've managed to teach myself some of the core concepts by messing around with Cygwin, but ultimately UNIX-based systems are a totally different paradigm that I'm totally lost in. That's why there's no Linux port of Mr. Teal - it relies heavily on Windows/DOS/Powershell commands for manipulating files, and I would have to have a much better understanding of their Linux equivalents for the program to have any use at all. It's something that I'd like to learn someday, but between working full-time in an unrelated field and wanting to work on my own projects, it's not something I've had time for. It's inevitable, though: I've already back-graded to Windows 7 after some fucking awful experiences with Windows 10, and support for 7 isn't much longer for this world. I can keep using 7 for awhile after it's no longer supported, but eventually I'm going to have to move on, and after 10 I don't see Windows on a trajectory towards improvement. I might be forced to learn Linux. Which I want to do, it's just a little overwhelming. There are so many different versions of Linux that all handle things their own slightly idiosyncratic way. Asking what the best version to learn is will get you a thousand different answers on any given day, and to an outsider, they all sound plausible. Hardware support is on another level from where it was the last time I decided to seriously give Linux a shot, in the mid-2000s, but it's still not painless. More hardware than ever will just work, but the ones that don't just work are still going to involve heavy research and troubleshooting to get to work correctly. It's frustrating how much mental energy I'm expected to spend just getting basic functionality that I'm used to having in Windows, and anyone who complains is largely treated with scorn and mockery. The whole "git gud" mentality that lingers in pretty much any heavily male-dominated hobby is super discouraging to anyone who wants to learn anything. That said though, there are a lot of good people out there who are very helpful, and the community is becoming more tolerant all the time (Linus himself apologizing for some of his shitty behavior and stepping aside from the project is a good bellwether of where attitudes are heading) and I look forward to the day that more people of all types from all backgrounds can proudly call themselves hackers.
  15. I Am The Greatest Player.
  16. I didn't write about this at the time, but I've finally done something I've been wanting to do a long time: I finished The Guardian Legend! It's a game from the Nintendo Entertainment System released in 1988 that I had and played as a kid, and even though it captured my imagination, it was too difficult for me to finish at the time. Since going back, I've gained a new appreciation for the game design, and I think it's my favorite NES game. I highly recommend anyone into vertical shooters and Zelda-style adventure games to check out a ROM. Final score screen. 'You Are The Greatest Player'
  17. False Mario memories
  18. I finished Super Mario Brothers 3, my other favorite NES game, for the first time in awhile. In doing so, I learned that a "fact" that I thought I knew about the game since I first finished it 25ish years ago turns out not to be true: In Bowser's castle, there are two different paths that lead to two slightly different versions of the Bowser fight: two different Bowser fights I was convinced for my entire life that one of the versions of the Bowser fight is fake, a trap in which the fight is impossible to win. I didn't remember the particulars, but I thought it was the version on the right, without the visible gap at the bottom of the pit. I thought that either the bricks were unbreakable, or making Bowser break the bricks reveals that the bottom of the screen isn't actually a pit. I thought that the only way to get out was to let Bowser kill you, and start the level over, but taking the other path. It was so ingrained in my memory that I take the middle path instead of the top path that I never actually tested this. It turns out this is totally made up. You can finish the game via either route. I even mention this in my 2008 Let's Play (warning: old video, bad audio) as if it's common knowledge. I have no idea where I got this. I have very vivid memories of fighting bowser and being unable to finish the game. I mean, I guess they're not THAT vivid, since I can't remember exactly how it happened. But "one of the Bowsers is fake" has been something I haven't questioned since I was a kid. The only thing I can figure is that I got some sort of rare glitch, and I thought the game was supposed to be that way, but I can't find anyone else talking about it. There are some weird ways you can glitch the stage, but the only way to make the level unwinnable is by clipping into a wall that you can't escape from and having to let time run out. It's interesting that one of the glitches prevents Bowser from shooting fire, because one of the fake facts that I remembered about the fake Bowser fight is that you know you're on the wrong path if you don't see any fireballs - not during the actual fight, but in the corridors leading up to it. It's possible this is misremebmered information from one of the maze levels in Mario 1 - one of the ways you know you're on the wrong path is if the fireballs disappear. Anyway, if anyone has any idea why I might think this, please get in touch. I think it was just typical childhood jumbling of half-memories and rumors about video games. In the days before the internet it was very difficult to get concrete information about games, and they were bursting with mystery. It's one of the things that makes me a little sad about what games have become - practically no mystery isn't easily solvable with a simple google search. For now, I have to conclude that this mystery is just in my head, and never had anything to do with the actual game.
  19. A new challenge appears
  20. Using savestates, I spent a couple hours exploring Bowser's castle, testing different weird things I might have done as a kid that might cause it to glitch out. I didn't find anything, but it did give me an idea for a pretty dumb and potentially pretty fun challenge run of the game involving the Bowser fight. I could just use a savestate at Bowser's castle, but I think I might stream another run through the game, because it's been awhile, and hey, it's Mario 3. Any excuse to play that game again is a treat.

Mr. Teal 1.9.3 released

April 10, 2019

Newest version of Mr. Teal is available on its project page. See the changelog for information about what's new.

Mr. Teal: new comic archive

April 4, 2019

An archive for Pictures for Sad Children has been added to the Mr. Teal project page.

The war on the poor

March 21, 2019

Here are some of the ways poor people are being targeted and excluded from public life in the US:

Non-poor people don't need to carry backpacks. Their car is a giant backpack that they're never more than a few minutes from. Poor people need some way to carry around the things they need to get through the day. Here's some of the things I have in my backpack on any given day: my cell phone charger, my kindle, a book, my laptop, my laptop charger, handheld gaming devices, food, water, prescription medicine. I may have other things, some of which are very important. I don't have a car. I can't just lock these items in the trunk of my car when I need to keep them safe; I have to keep them on my person. Policies that exclude people with backpacks from public spaces, or require them to hand over their backpack to an employee, are abusive and discriminatory against the poor. I'm not handing my backpack, with many important and expensive belongings, over to a random underpaid employee with no oversight. If my medicine goes missing, I won't be able to get more. I can't take that risk. I don't care that you have security cameras; even if the employee didn't go somewhere they knew there were no cameras, such as a restroom, to rifle through my backpack, I would still have to file a police report, wait for them to review the security camera footage, and hope that the employee still has my medicine and didn't sell it or throw it away. I have less reason to trust you (the business or organization, not the individual) than you have to trust me, because you're in a position of power over me. Security cameras don't do me any good.

US society is designed for people who drive cars. If you drive your car to a quote-unquote "public" area, like a park or outdoor theater, you know that, if you need to, you can get in your car and drive home anytime. If you're in your city or town, you're probably never more than a few minutes away from your home (barring traffic jams and accidents.) Society is designed to accomodate you. I have to wait on an inadequate public transportation system. Sometimes I have to wait hours for the bus to show up. My city doesn't have public restrooms or water fountains. This is a de facto ban on the poor. It prevents poor people from engaging in public life the same way people with cars can. The only public institution that provides restrooms and free water is the library, and their hours are limited, and that's ONE location in an entire city. This shouldn't be the only institution that poor people can rely on. Perversely, the most needy in society are the ones who are expected to spend additional money to have their basic needs met if they want to engage in public life. The bus terminal in my city has restrooms, but they're locked, intended to be used only by the bus drivers. What few parks remain in my city used to have drinking fountains and public restrooms, but the fountains have been removed and the restrooms locked. The bus terminal has removed almost all of the seating, and installed metal spikes on all available surfaces to discourage sitting. Charleston, West Virginia, is trying as hard as it can to push me into the shadows, keep me from engaging in my community, prevent me from interacting with my fellow humans. My society has deemed me unworthy of public life because I have the audacity not to drive a car. My life and liberty, and the life and liberty of my comrades, is being stripped away, and we are not welcome to pursue happiness. I know it's not just here, it's all over the US. We're being isolated and driven apart. Our communities are being destroyed. What kind of a life is this? Why are we doing this to ourselves? Everyone is so lonely and tired. Can't we come together, friends?

Just zip it

March 20, 2019

A .rar file can only be opened by winrar. A .7z file can only be opened by 7-zip. But anything can open a .zip file. It's been around long enough that it's a universal extension, and everything can handle it. If you need to compress data, unless you're working with several gigabytes where better compression methods have a noticeable impact on file size, don't complicate things. Just zip it. It's good enough. UPDATE Mar 21 2019: Per the article posted at The Internet Archive blog, ZIP is Broken, Except itís Not, Except it Is, I feel compelled to offer the following disclaimer: the zip format may not be the best choice if you need to compress more than a couple gigabytes of data. Read the article for more information.

You should play Hypnospace Outlaw

March 18, 2019

Not writing a review, because I don't know if I can explain why Hypnospace Outlaw is great without spoiling it, but I 100% recommend it. My GOTY so far. If you look at the description and screenshots and think it looks like something you'd want to play, I guarantee you won't be disappointed.


March 15, 2019

The three randomizers (named colors, video game names, and demon names) have been added to the projects page.

A flaw with my CMS

March 13, 2019

Oops. I realized that there's a problem with my blog format. Permalinks... uh... aren't permanent. In the RSS feed I've been linking to each entry's "permalink" on the homepage, and (even if I waited until 2020 before I archive the front page) eventually those links won't work anymore. So, change of plans. The homepage will only show the most recent 5 entries. All 2019 entries will go on the 2019 index page, just like the 2018 index. Those links should stick around forever, assuming I don't post so much content in a year that I have to break a page up into multiple parts or risk destroying someone's bandwidth and CPU (somehow I doubt this is likely.) The homepage will just be a preview of the current year's index. I hate having a big list of links at the top of the most recent content, but I don't know how else to arrange it without... ugh... columns. I suppose having a slug at the end of each entry which links back to the top makes it tolerable, it just looks really ugly and not clean. Maybe I should make a CSS button that shows or hides the index, but I don't want to rely too much on fancy CSS tricks. Oh well, this works for now. You may also notice that I prettied up some other stuff. Each entry is now separated by a dividing line, and instead of a browser tooltip, mousing over a header link makes (permalink) appear off to the side, which should make the purpose of the link more obvious. Also, header/permalinks are no longer underlined. I think underlines are an important visual cue for when something's a link, but having the header of an article look so similar to links within the article felt wrong. It's the same color as the other links, and it's underlined/changes color/shows a tooltip when you hover over it, so I think that's a good compromise.

Living a 1.0 life

March 13, 2019

The 1.0 release of a piece of software should stand on its own as a functional, useful program that's as bug-free as the developer can possibly get it. If it never gets another update, it's still useful, in perpetuity, at least until another program comes along that does it better. Any release beyond 1.0, including bug fixes and new features, should not impede a user of the 1.0 software in any way. They should be able to go on using the software as they always have. They should be able to ignore the new features, or not update at all if they don't want them. If they DO update, the transition should be seamless. Any new functionality should be additive, not transformative, and ESPECIALLY not destructive, unless a feature of the program was catastrophically flawed in some way, and needs to be patched out temporarily or permanently to avoid putting the user at risk. I use an RSS reader for Windows called FeedDemon. It's the most functional program of its type I've ever used. The final version of the program is 4.5, and it was released in 2013. The website warns you that the program's no longer being updated, as if that's a fundamentally bad thing, and it drives me bananas. Finishing a program is GOOD. A final release is GOOD. I never have to worry about the program auto-updating and breaking my workflow. I don't have to worry about the developers stripping out functionality because they decide users don't want it anymore. I don't have to worry about it being fucking disrupted. I'm going to keep using FeedDemon forever, or at least as long as I use an OS it'll run on. It's as close to perfect as a piece of software can get. It's okay to say something's finished. No artist or creator is 100% happy with what they make. No novelist is happy with the final edit of their book. When a painter looks at their work hanging in a gallery, all they can see are the flaws. If you don't stop yourself, you can refine and polish a thing forever. Let it go. It's okay. Learn from it. Use what you've learned when you make the next thing. There's an insidious philosophy in software development that's creeping into other types of work: that once you put something out there, it's a failure if it's not constantly changing. With digital distribution, other types of data are looking more like software. We can download patches for our ebooks. Games, once a relatively stable type of software, are becoming massive, unwieldy masses of broken code constantly being poked and stretched into a shape resembling a whole. Everything is a service. For all we know, silent changes are being made to videos we watch on Netflix all the time. How would we know? No one has a copy of the original. The best thing we have is humans' notoriously shoddy memory. Amazon made headlines a few years ago (ten is a few, shut up) when they removed copies of 1984 from Kindles because of some licensing snafu, a move everyone recognized as ironically Orwellian. We called them out, we yelled about it, but this has become the norm. Kindles by design are supposed to be connected to the Amazon servers whenever you turn them on, and they silently replace the books on your device with different versions. What's being changed? Probably just typos, OCR errors, formatting bugs, but who can say for sure? This is the new normal. Our phones update automatically, killing features that we once used, rendering software we paid for unusable. People shrug. That's the price of progress. Apple and Samsung release software updates for their phones that intentionally hamstring old hardware. People shrug. Who cares? They get a new phone every two years anyway. They get a slap on the wrist. Yawn. 5 million dollars. A fraction of a fraction of a fraction of a percent of their net worth. They're going to keep doing it, of course. People feeling like their old phones are bad is a core tenet of their religion/business model. Meanwhile, phones have reached a point where they're good enough for most people, new features are mostly meaningless, and what new technologies are being advertised are mostly absurd, often to the detriment of current functionality (like putting a giant hole in the screen.) But it's too late now. You can't put this beast back in its cage. It's out, and it's hungry, and it's going to devour everything. Apple has to keep selling new phones every two years. Not only that, they have to sell even more phones than they sold last time. Every phone has to do record-breaking numbers, and they'll make sure you buy one, by any means necessary. So yeah. Finish your project. Be happy with its imperfection. It's good for the planet and good for your soul. Change is good, but not the exclusion of everything else. If you become obsessed with always doing more, making it better, iterating and disrupting, the anxiety will eat you alive.

Mr. Teal: new comic package

March 12, 2019

A new comic package is available on the Mr. Teal project page: Listening to 11.975 MHz. I also cleaned up the comic packages section a bit, made it easier to see which packages were part of which comic, and added content warnings where I felt they'd be helpful.

Skewed priorities

March 9, 2019

30,000 people in the US die in traffic accidents every year. Every study in the world confirms that cities with more robust public transit have fewer traffic fatalities. And yet Americans are fine with ten 9/11s a year as long as they don't have to look at any scary poor people.

New syndication option

March 6, 2019

The site I was using to auto-syndicate blog updates was being wonky - it seemed to be changing the date on every entry to whatever the date of the most recent entry was, which I don't know how that would behave if someone was actually subscribed to it. So I decided to switch to a non-automated but also non-broken solution: I signed up for an account on, a specialized mastodon instance for bots and general-purpose users which I thought would be appropriate for this sort of thing. The feed link in the navigation bar has been updated to the atom feed, which you can plug into your syndication platform of choice, or of course you can just follow the account from your Mastodon or other activitypub-powered social media account (although be advised that this action is not anonymous.) I still need to figure out how to make a script that parses the front page and generates a syndication file automatically, but this should do until then. It's not seamless, and I'm sure I'll occasionally forget to update the bot when I post an entry, but I'm already logged into mastodon all the time anyway, so quickly switching accounts and posting a link shouldn't be too much of an ask, ADHD willing.

Mr. Teal 1.9.2 released

March 5, 2019

A new version of Mr. Teal is available on its project page. I added support for annotations with line breaks. Previously, all line breaks were ignored and including them would result in ugly run-on sentences. Now they're displayed, but because line breaks aren't treated as text for the purpose of drawing the background, this can make them difficult to read while the comic is displayed. This is why I also added a new command; you can press B to view the alt text and image information by itself on a solid black background. You can then use the arrows to navigate to the next or previous image as usual, or press any key to return to the comic. I think it's possible to extend the text background to the line breaks (or at least fudge it) but until I figure it out this seemed to be the best workaround. I also finally added a help screen, so you can press H or ? while you're viewing an image to see the keyboard commands. I made it a little more obvious what setting a directory as default does, and I changed the key to return to the main menu to the escape key. (Why did I pick L??) Also did a little housekeeping. Source is no longer on github, mostly because it's such a small project I don't want to deal with git. Plus it's been so long that I totally forgot how to use it. Cleaned up some outdated URLs and version numbers, updated the readme, and replaced whatever license I had in there with the unlicense. Finally, I added a new comic to the packages section: Pixel, a comic by Chris Dlugosz that ran on and off from 2002 to 2012. The idiosyncratic style of the commentary is what prompted me to figure out how to handle multi-line text files to begin with. I wish I had figured this out when I added Opplopolis, since what I ended up with is kind of an ugly compromise. I'll have to go back and re-do those at some point.

Review: The Wizard's Lair

February 15, 2019

* Original review $3 on steam £2 on itch (DRM-free, includes steam key) This recommendation comes with a big caveat: as other reviews have pointed out, there's no "rest" command, so the only way to get your health back if you don't have any potions is by repeatedly mashing the "wait" button or walking back and forth, which would take several minutes and make the game unbearably tedious in the later levels when you have a ton of health. I used the free program JoyToKey to map one of the buttons on my controller to press the "wait" button 30 times a second, and this allows you to get health back at a reasonable rate. This function should be in the game, but I'm glad I was able to find a way around this problem, because other than that, I really like it. It's a short-ish minimalistic roguelike - I finished it in 8 hours (5 hours on Steam, 3 hours with the version, which is identical but doesn't have those hot cheevos) which for the asking price is totally fine. It's pretty chill, and there's not a lot to the combat, but I found exploring the levels, discovering things and figuring out strategies consistently rewarding. The game I'd most compare it to is Fatal Labyrinth on the Genesis, which is my favorite roguelike, but this game's even more streamlined - there aren't even any ranged combat options, no rings to equip, no magic wands. Combat is essentially just math - the enemies have almost no variation other than their damage numbers, so it just comes down to whether you have the equipment and stats to deal with them, and if not, whether you have scrolls and potions that can help. It's about as basic as an RPG can get. Despite this, I found it a pleasant experience. It's a good game to kick back and play while you relax and listen to some podcasts. If you're looking for a minimal roguelike RPG you can play with a controller, and you're willing to install JoyToKey, and you like games you can play with a podcast or stream on in the background, this is well worth the $3 asking price.

I'm not reading the wiki

February 12, 2019

If I'm interested in a game but I'm having trouble in it, and I look for help, and the most common advice I see is "read the wiki", I'm no longer interested in playing it. A wiki isn't a substitute for a manual or tutorial. A game that offloads the responsibility of teaching onto the community isn't a game I want to play. Why do we write manuals? To make sure the player has enough information. A good manual gives the player the tools they need to learn how to play the game on their own. It's not there to tell them everything. A big part of playing games is discovery, and when it comes to what you tell the player and what you let them discover on their own, it's crucial to find the right balance; you want the player to feel empowered to learn and discover without feeling frustrated at the mental roadblocks they face on the way. Imagine you really like the game Myst, and you recommend it to a friend, and your friend starts playing it on your recommendation, and your friend can't really make heads or tails of it, so they report back to you and say they're not having fun, and ask if you have any advice. You'd ask them what part they're stuck on, what they're not understanding, and try to give them some general pointers, work with them, emphasise things they maybe hadn't been considering. Help them look at things in a new light. You love Myst, and you want your friend to have a good experience with it, so you try to guide them as best you can. What you wouldn't do is give them a link to gamefaqs and say "Oh, read the walkthrough, that'll tell you what to do." Because you know that's not a good experience. That's more information than they should have. When a player reads the wiki, they're not getting the carefully curated guide that would be in a manual or tutorial, they're getting an unfiltered dump truck of whatever the existing player base wants them to know. And like any passionate internet fanbase, the amount of information they want to share is "all of it". They're excited to share their discoveries with anyone willing to listen, which robs the curious player of the joy of discovery that made the community fall in love with the game in the first place. A wiki is a valuable tool for players who want it, but I don't want it. I want a little noob nudge in the right direction, not an express ticket to Pwnertown.


February 10, 2019

When I changed my site to a blog-first layout, some of my non-blog projects were made inaccessible. Some of these have now been restored on the projects page.

An accidental joke

January 28, 2019

On one old episode of The Simpsons, Homer, the safety inspector at a nuclear power plant, had to suddenly look busy when the boss came into the room, so he jumped out of his chair, pointed at one of his co-workers, and instructed him to "be more safe!" Then, for contrast, he looked at another of his co-workers and said "safe enough." Since I always watched with closed captioning, I caught something most people probably missed: the captioners misheard Homer's second line, and instead of "safe enough", they captioned it as "safen up". At the time, I thought this would have ruined the joke for anyone who wasn't listening or couldn't listen to the dialogue; to me, the joke was the juxtaposition between the two co-workers, both of who were standing around doing nothing, and the totally arbitrary decision that one of them needed to be more safe, but the other one was adequately safe. I thought it was a little sad that somone who was hard-of-hearing would have missed out on that, and I was sure the line would have fallen flat. But now, I think "safen up" has its own appeal. "Safen" is a pretty funny word. The act of becoming more safe. Safening. I have a kid on the way so I safened all my electrical outlets. It's a word you use when you have no idea what you're doing, when you have only a vague sense of what does or doesn't make something safe. That's pretty good by itself. But it also juxtaposes nicely with "be more safe" in a different way: instead of deciding arbitrarily which co-worker needed to be more safe and which one was safe enough, he determined that BOTH of them needed to be more safe; scrambling to come up with something different to say for the second case, he said the same thing, except more poorly, and using a word that probably isn't real. I dunno, there's something to it. I wonder how I would have reacted if I didn't hear the dialogue and "safen up" was my only experience with it. I bet I would have laughed just as much. Edit: as usual, every word of every episode of The Simpsons has been picked apart again and again, and the debate re: the actual line still rages on. Argue all you want; the words that he says are "safe enough", despite appearing as "safen up" in both the closed captions and DVD subtitles. You'll have to show me a script or confirmation from one of the writers that "safen up" is the actual line before I'll believe it, and if that's the case, then we can chalk the confusion up to a bad line read by Dan Castellaneta.

Lost e-mails (update)

January 27, 2019

Update: e-mail situation fixed. Communications can resume as normal. Additionally, I realized that the site doesn't look THAT bad on mobile, so instead of having a mobile view option I just added some PHP that detects if you're on a mobile device and tweaks the layout accordingly.

Lost e-mails

January 26, 2019

When I registered this domain, the e-mail settings didn't change over, because hover's control panel is a useless piece of shit javascript blob that for whatever reason isn't accepting the change. As a result, I lost a a week of e-mail. I'm sorry. I'm going to migrate everything off hover, but in the meantime, if you sent me anything since monday, please send it again. The contact form is working again, or you can send it to rather than the address listed on the contact page. I'm very sorry.

Blog exclusive: VVVVVV level sneak peek

January 23, 2019

Thanks for reading my blog! It probably means you're interested in stuff I make. I haven't finished making anything in awhile, but I've been putting a lot of work into a VVVVVV player level over the last few weeks, and I thought maybe giving a little preview will motivate me to continue. It's a little different from most player-created VVVVVV levels - rather than being concerned with difficult platforming challenges (there are a couple, but they're not too bad) the main focus is on exploration and dumb jokes. It's called Abscondemonium, and it's a fun little trinket hunt in which you're robbing a bank. You can download the file here (right-click and save,) and play it in either your purchased copy of VVVVVV, or use the totally free and totally awesome Make and Play edition. The way you import levels depends on the platform, so download the appropriate version for your computer and follow the instructions. (On windows you probably want to put it in the c:\Users\[name]\Documents\VVVVVV folder.)

A new home

January 21, 2019

If you're reading this, hopefully you're aware that the blog has a new name and a new URL. I'd been wanting to move away from using my name as the domain name for awhile, mostly because I don't like it and don't really identify with it, but also just in case I ever need to say it aloud, it's a little easier to understand and remember because it's actual words. I had recently begun using the Blue Lander as my avatar over on cybrespace, and I thought it'd be funny to see if was available and cheap, and it was. I guess it's still not a phrase that rolls off the tongue or anything, but it's better than before. The transition went pretty smoothly, no issues getting the TLS sorted out like the last time I tried this. The old domain should be forwarding here soon, just going to take a bit for all the DNS to update. So yeah, new coat of paint, same gripping content as before!

Tape talk

January 18, 2019

When artists sell cassette tapes on Bandcamp, I wonder whether it's an actual analog recording, or if they're just recording the digital files to tape. "What does it matter? You wouldn't be able to tell the difference." Oh, I know, it's just. It's kind of silly to get a physical cassette tape if it's going to be exactly the same as the FLAC files I can download. Like, what would be the point? "What would be the point of doing it any other way if you couldn't tell the difference?" I mean... you know, sure, listening to tapes when there are way more convenient options is inherently silly. I know that. It's not a rational thing in the first place. That's why no one sells tapes anymore. But if someone was GOING to sell tapes, wouldn't you think that means they care enough about it to go all the way? Like, they're probably nostalgic for analog music the same as me, so wouldn't they want to do it right? "You know the chances they didn't record digitally in the first place are close to zero, right?" W... what do you mean? There are still analog multi-track recorders... "Yeah, and a good one is going to be super expensive and way harder to use than a computer. You really think an independent solo artist selling tapes on Bandcamp is going to have access to that?" But... if there's no analog recording, then selling a tape really is just a pointless gimmick. "Wouldn't it be a pointless gimmick anyway, if you wouldn't be able to tell the difference?" But... but I like tapes. "Why?" ...shut up, me.

How do I RSS?

January 17, 2019

Okay, things are looking good. Got some PHP going for the menus, got a mobile mode working (which is just the page with no CSS, because trying to make a website layout that looks good on both computers and mobile devices without javascript is basically impossible. Best to just have no style information at all and let the phone figure out how to deal with it.) The only thing Hugo was doing for me that I can't do myself, at least so far, is create an RSS/XML/Atom/JSON/XHTML feed for people to subscribe to and see updates in their blog reading software of choice. I'm using a site called Politepol to generate a feed based on my HTML tags, and when it works it works, but it seems to not work about three quarters of the time. If you're reading this and you can help me figure out how to do this (or tell me what the difference between RSS, XML, Atom, JSON and XHTML is, seriously they all look exactly the same) then please drop me a line.

Mario ideas

January 16, 2019

Okay, so the concept of "lives" shouldn't exist, obviously. That's one thing Odyssey did right. But you still need a good reason to collect coins, so:

Some super power-up ideas, off the top of my head:

I like this a lot better actually

January 8, 2019

Every blog entry having its own page added a veneer of importance I wasn't comfortable with for many of my entries. Sure, it's useful for linking to a specific entry instead of just a wall of text, but being diligent about permalinks should accomplish the same thing. I'd much rather have all of the entries for a year all glommed together. It makes me feel better about just shitting out a totally garbage thought and calling it a post. Lucky you! This entry is a test to see if I can use pre tags to format text with linebreaks instead of having to use p tags or br tags everywhere. That was always my least favorite thing about html. It disrupts the writing process to have to pause to insert tags every time I want to start a new paragraph. I remember the pre tag not really being suitable for this sort of thing, since it would have weird behavior like not respecting page width and running off into the bounds, but maybe now that CSS is a thing I can use that to whip the pre tag into shape.

Okay, it's not a new blog...

January 8, 2019's an old blog with a much easier workflow. The idea is that composing a new blog entry is as simple as opening the index.html file, adding the new entry at the top and hitting save. I want to at least have permalinks for every entry, which makes things a lot uglier. I hate it. I hate having to wrap every paragraph in a dumb p tag. I hate having to make sure I copy and paste the date/title/permalink code in the right place. I hate having to manually place the "top" button. But for now I think this is the solution that presents the smallest barrier to entry re: actually writing. I don't have to load up a command line utility and generate a page and upload it to the right placee and make sure the media files are in the same place. Everything in one folder. No muss, no fuss. End of the year comes around, I take everything and dump it all into a 2019 folder. If we're still around. Still, I really wish I just had a big "write a blog" button on my desktop I could push and it pops up a box and fills in the date and has a box that says "title" and a box that says "post" and I just write it and click post and it all just happens. You know what had that? Livejournal. Livejournal was pretty rad, once upon a time. But I can't just someone else's infrastructure. And this seems like the best solution for now. seems interesting, but as far as I can tell there's no way to adjust things like background color and font size, and you need javascript to post, and the post itself has javascript on it. There's, which is my favorite minimal text-sharing platform, but there's no way to edit, or have a collection of links, or any kind of continuity. Good for one-shot text shares, but not suitable for a blog. As far as I can tell, the type of blog I want doesn't exist. Ah well, this will do for the moment.

New Year, New Blog

January 8, 2019

I like hugo but it's too much of a pain in the ass to go through the whole process of generating a single static page for each and every entry. What's the need? It's not like I post that many images, and when I do, it's usually not large. A single page with all of my entries for 2018 would almost certainly be under a megabyte, at least after I thumbnail-ized the occasional large image I posted. That's like a quarter the size of the average javascript blob, so I don't know why I'm worried. Old content has a bunch of broken links now, but I'll clean it up later.

No Copyright 2018-2020 | Privacy Policy
Mobile | Desktop | CGA mode