Apr 16: What's been up? April 2019 edition Apr 10: Mr. Teal 1.9.3 released Apr 04: Mr. Teal: new comic archive Mar 21: The war on the poor Mar 20: Just zip it Mar 18: You should play Hypnospace Outlaw Mar 15: Randomizers Mar 13: A flaw with my CMS Mar 13: Living a 1.0 life Mar 12: Mr. Teal: new comic package Mar 09: Skewed priorities Mar 06: New syndication option Mar 05: Mr. Teal 1.9.2 released Feb 15: Review: The Wizard's Lair Feb 12: I'm not reading the wiki Feb 10: Projects Jan 28: An accidental joke Jan 27: Lost e-mails (update) Jan 26: Lost e-mails Jan 23: VVVVVV level sneak peek Jan 21: A new home Jan 18: Tape talk Jan 17: How do I RSS? Jan 16: Mario ideas Jan 08: I like this a lot better actually Jan 08: Okay, it's not a new blog... Jan 08: New Year, New Blog
Hello! For no reason, here's some things I've been up to, presented as a numbered list:
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.
Newest version of Mr. Teal is available on its project page. See the changelog for information about what's new.
An archive for Pictures for Sad Children has been added to the Mr. Teal project page.
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?
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.
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.
The three randomizers (named colors, video game names, and demon names) have been added to the projects page.
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.
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.
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.
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 botsin.space, 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.
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.
Recommended ✔ Original review $2.99 on steam £1.99 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 itch.io 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.
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.
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.
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.
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.
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
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 lander.blue 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!
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.
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:
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.