There are, fundamentally, two steps do doing anything:
First, you do the thing. This part is difficult. It takes a lot of time, and often, it requires you to repeatedly fail at doing the thing. It is uncomfortable for many people. Additionally, doing the thing requires time, energy, money, connections, and know-how. These things can be hard to come across, especially if you don't know where to look.
Second, the thing has been done. In this part, you have whatever artifacts arise from doing the thing. In many cases, they nominally last forever. This is usually the part other people see. It's easy to have done something. There's no more room to mess it up or make a fool of yourself with it.
Let's go through a concrete example of this. Let's say I decide to write a novel. First, I do the thing, I write the novel. This takes me many months or even years. Through the process, I find it necessary to scrap sentences, paragraphs, and even entire chapters because they don't fit into my overall vision of the book. I have to suffer through editing and revisions to make this story the best it can be.
Now, once that's all done, I have done the thing. I wrote the novel. I can show it off to friends or family members. When they point out parts they don't like, I can easily ignore the idea of going back and changing it because writing the novel is no longer in my present; it's in the past. There's no more to be done. Also, this is the part where I make could money from the book. Making it was expensive, but having made it is profitable.
I really want to emphasize the change in verb tense here. At some point, anything you do moves from the present to the past. Over the course of my life, I've learned not to care about having done things, but rather only about doing things. It seems like other people disagree with me.
The way I just described it, doing things sounds awful. The present is where everything bad about doing things lies. It's where you encounter all the challenges and setbacks of doing work. Perhaps worse, it requires moving through uncharted territory. You don't know up front how what you're doing will turn out.
On the contrary, having done things sounds pretty great. You have an artifact to show off. You can put it on your resume. It demonstrates that you possess Skills. Having done a thing, you know everything about it. There's no uncertainty left, there's no way to fail, and it sucks.
Anything I've done is an empty shell of what it was when I was doing it. As an example, take code. Code, the artifact of having coded, is basically worthless. It is inflexible and brittle. If it is within an organization, it is only a cost. Sure, it provides valuable capabilities, but the code itself, the artifact, might as well be a cask of radioactive waste.
The most valuable thing that comes out of coding is the understanding. Understanding can only be developed by doing. You can read as many books as you want, or listen to every podcast in the world, but if you've never coded then you cannot understand how to do it. Even more, the specific knowledge accrued by a small team within an organization working on a specific project is incredibly valuable. This lets them maintain (or even replace) the radioactive waste that is code. It's far too common of a story that code is forgotten and now untouchable, silently causing problems forever.
The point of this example is that the valuable part of the process is not, in fact, having done. The value lies in doing. I believe that this is true for all things.
I regularly have this discussion with my father. In it, we both seem to talk past each other, and I think this is why. It goes something like this:
I then usually try to steer the conversation away from the subject. I think he fundamentally misunderstands what I want: I want to be doing, but he thinks I want to have done.
Under this lens, our disagreement makes sense. If I only wanted to have done the thing, then AI would be a good tool for the job. In fact, it might just be the perfect tool. AI's one job is to skip past the doing and go straight to having done. This is why bosses love it so much. These are the people who hate doing so much that they have employees to do all the doing for them, while they get to benefit from their having done. If doing is only a cost, then AI is surely cheaper.
I, however, do not want to have done. I think having done things is stupid. I want to be doing things. Under this lens, AI destroys the entire thing I like. In the same way I would not want AI to enjoy scenic hike through a national park for me, I do not want AI to write code for me, or to do my homework for me, or really anything else.
This focus on doing is what makes me myself, I think. If writing this blog were a matter of having done it, I would no longer be doing it. It's a terrible amount of energy to waste on something like this (hint: it's not a waste). If making my Balatro mod were a matter of having done it, then I would not be fixing all of the tedious bugs that continue to arise in it. If going to University were a matter of having done it, then ChatGPT would be doing my homework. None of these things are true.
So, to wrap this all up, I want you to do something. I want you to make something. Fail at it, and show me the work-in-progress anyways. To do things you have to let a part of yourself die, that part that cares about having done things. It will be hard and it will be good.
Some links:
Until next time,
- BakersDozenBagels
Heya! Just like last time, here's this week's MotW:
Meow meow meow nya mrrrraw nya mrrp meow nya prrrr wrrrrauwvvwww pbrrrrrr uauo nya~
Developed by @wingedcatgirl
[ GitHub Repository ]
Minty's Silly Little Mod is a silly little mod that adds a lot of kitties to the game, nya. For this one, I think the name alone says most of what you need to know. The mod isn't gigantic or all that invasive, and it adds a bunch of playful Jokers to your game.
This mod also adds synergies around 3s, including making them their own suit. It's easily the best implementation of an extra suit I've ever seen. They have proper support, and everything that triggers off of a 3 also sees the rank, so it's much easier to pivot into them.
My personal favorite part of Minty's Silly Little Mod is its Blinds. It adds new Small and Big Blinds with very small effects. They're not enough to cause major problems, but they do occasionally provide an interesting wrinkle that makes gameplay way more engaging.
Thanks for reading! Have a nya week, everykitty!~
Until next time,
- BakersDozenBagels
I recently joined the team to help curate a mod of the week on the Balatro CLAMS Discord server. I'm mirroring my first showcase here so anyone who wants to read it doesn't have to join:
Hello, and welcome back! Let's all gather 'round the family computer, because something exciting is coming down the tubes. It's a mod we've featured before, but this time with a proper showcase, direct to digital...
Developed by @theonegoofali
[ GitHub Repository ]
TOGA's Stuff is playful and toylike without sacrificing the challenge that keeps Balatro engaging in the long run. Many of the mod's effects are on the sillier side, often leaning into the retro-cyber aesthetic. Plus, there's a lot of room to explore builds that simply don't work in vanilla. Oftentimes, I find myself pivoting just to explore what a particular build can make happen.
The mod pushes you to build a diverse deck with lots of different Enhancements. In particular, its modded Minecraft–inspired alloying system allows you to combine weak Enhancements into stronger ones, and there are a ton of synergies for cards held in hand. I appreciate how this pushes me away from trying to optimize my play and into simply having fun with it.
Also of note, TOGA's Stuff comes with a powerful configuration menu built-in. Think the sillier Jokers are too gimmicky? I might disagree, but you're free to customize an experience that's fun for you. You can also tune the power level of the mod up or down to fit your personal tastes.
Thanks for reading! Some online privacy tips for y'all to close this out:
Note that I made a few slight adjustments to fit this format better. I hope you can forgive me for that. Also, I'm not writing the showcase every week, so you'll only find some weeks' mods here.
Until next time,
- BakersDozenBagels
I spent four and a half hours yesterday making a Docker container. I needed to consult with multiple friends for help, and it ended up being six lines of Dockerfile. I hate devops so much.
I like to play Archipelago. I also like to play Factorio. Luckily, there's an implementation so I can use Factorio as a slot in an Archipelago multiworld. Unfortunately, the implementation is cursed. I also want to play on this slot with friends, which makes things harder.
For the previous seed, I ran the setup for this on my server. It ended up being a horrible script calling into old versions of software that I had to manually restart quite often. In short, it was massively painful. My goal was to make a Docker image for the configuration so it would Just Work next time.
First, let's go over how you normally set this up. The Archipelago server needs to connect to the modded Factorio instance to run the game. For most games, this is fairly easy, but because modding Factorio is weird, you can't just spin up an internet connection within the game. Instead, you need a dedicated server and an external program to interface with it. I'll collectively call these two the container ship to avoid confusion.
Because of file locking issues, the Factorio instance within the container ship and the one you play on must be distinct. Additionally, on Windows, the non-portable standalone installation and the Steam installation cannot coexist. This is a constant source of frustration for new people running Factorio in an Archipelago seed.
The container ship's Factorio instance must then be started by the Archipelago Factorio Client (the other half of the container ship). This client connects to the Archipelago server, and drives the container ship so the game functions as expected. Finally, you can run Factorio and connect to localhost to play the game. Yay!
The Archipelago half of the container ship really wants control over the Factorio half. It's what starts the Factorio process, and usually also what kills it. It does this so it can use the RCON connection to send and receive commands. This is mostly fine, but it lead me to some problems.
Running the Archipelago client headlessly within the container ship is a right pain. If the method to do so is documented anywhere, I wasn't able to find it. To make it worse, the most recent release of Archipelago removed it as a separate executable. In a graphical environment, you'd run the launcher, which then opens the client window. Instead, I had to dig through Archipelago's source code to divine how to run the client via the launcher from the cli headlessly. And then, as a cherry on top, if a config file is broken, it'll try to open a file picker anyways.
Internally, my container uses a preexisting Factorio server as a base to construct the full container ship out of. This base image was highly annoying to work with. First, the entry point into the container is a script. That's normal, but it meant I had to modify the script to call the Archipelago side of things instead of Factorio directly (remember that Archipelago wants total control of Factorio, so it starts it itself).
The base container also does some wacky things with users and permissions. The attached volume for saves and configuration is owned by user 845, which means that putting stuff in there requires elevated privileges. This isn't the end of the world, and ideally I'll have at least the Archipelago mod updated automatically from within the container, but it is a pain.
Anyways, I got the thing made. It only takes a touch of configuration to run, which I provide a sample of in the project's README. Maybe next I'll cook up a runner for Balatest tests. That one seems like it'll be a whole pile of nightmares, though. We'll see.
Until next time,
- BakersDozenBagels
This weekend has been wild. I'm glad all the craziness is done today (Saturday), or I'd be in a bad spot from the anxiety. I'm glad I have tomorrow to relax.
For the past couple of weeks, I've been procrastinating on my English assignment. It's not something gigantic, but it is a solid chunk of work that I hadn't been doing. It was due yesterday, and the anxiety from it was creeping into everything else I was doing. Of course, anxiety doesn't override executive dysfunction, so I kept putting it off until I had maybe six hours left before the deadline.
I did end up getting it done, but that means I skipped dinner yesterday as well as the weekly game night. Neither is a gigantic deal, but they're both good sources of spoons. I already feel like I'm running on empty half the time. I really need to be more proactive about my work to avoid some of this in the future.
This morning, I went to the No Kings protest. It was really cool to see how many people turned out. I'm living in a relatively small city, so I was surprised when about a thousand people were there.
A not great thing was the amount of young people there. It was only a ten minute drive from my university, but a vast majority of the protesters were at least twice my age. I feel like I could be the catalyst for change here, but I'm already so low on spoons from everything else. I'll try to make a difference where I can going forward.
Immediately after the protest, I played with my school's band. It wasn't the best performance ever, but it was pretty good. I joined the band on a whim a couple months ago, not really expecting a whole lot out of it. I guess I forgot how good it feels to play music.
I used to play the trombone in high school, so that's what I'm playing now. It's amazing how quickly it came back to me. I haven't even been practicing that much, only two hours a week. The hardest part by far has been remembering how to read the pitches on my sheet music.
So, I might have lied about the weekend being over for me. I do still have a project/exam to do for my graphic design class. I'm not worried about it, though. My plan is to get it done tonight and have nothing for tomorrow.
This graphic design class is totally useless for me, by the way. All it is is making charts in Excel. More specifically, which buttons to click to get a particular chart, or sometimes a closely related chart because the professor doesn't know the difference. Maybe she just doesn't care, or maybe she wants to make the class easier on us. I can't really tell.
I do want to highlight one specific thing from lecture. When demonstrating one of the formulas (which must have been COUNTIF because we don't use anything else in this class), the professor mistyped something. There are several ways in Excel to fix this. For example, pressing esc will revert the input. You could also confirm the input (tab or enter) and undo (with mouse or ctrl+z). Neither of these is what the professor did. Instead, I watched in horror as she closed Excel and reopened it. For the record, I'm not mad that someone doesn't know how to use a program. I'm mad that someone who's been using it for years and is teaching a class on it doesn't know about the existence of undo.
That's about all I have to say for now. I will add one more short-term plan I have: I want to add GoatCounter (or my own version of it) to this website. I'm more than a little bit curious where, if anywhere, I get traffic. I don't want a whole lot of data, just pageviews. I'll send an update here if and when I get around to it.
Until next time,
- BakersDozenBagels
So I've made a new blog page. I already had one (it's still there), but the format there is very restrictive (turns out writing on a narrow topic about a game you hate isn't fun), and I haven't felt the impulse to add to it in a while. This page is "Blog2" only to keep links to that page where they are.
Speaking of this page's URL, it might look a bit weird. It's like that to allow me to add pagination later if I want to, something I can't do for the old blog without changing links. I don't know if or when it will matter, but I want to keep myself open for the future.
Mostly I've been busy with university for the past few months. The workload has been a lot, and I've been struggling to find a good way to escape. There are a few highlights, though:
A few weeks ago I did my school's game jam. The theme was "The Elements", and mine was one of two(!) submissions. I had a lot of fun making this game. My roommate did the music, but I did everything else: the code, the art, the gameplay, etc.
The game is an hour-long incremental with way too many currencies (one per element). You combine simple ones to get the more complex ones. It's live if you'd like to play it. Send me an email if you do play it, it'll make my day ☻
There are a couple of things that I want to fix in a post-jam version of the game when time permits. Primarily, I want to make the layout mobile-friendly, but there are a few other quality-of-life changes I want to implement before calling it done. When I get around to making that version, I'll post about it.
I set up SSL for my nginx server. That's what runs cdn.gdane.net, and it's primarily where I host files too big to send through Discord. Some other stuff lives on that server, too, though. One day I should post about the behind-the-scenes architecture of this site, since it's kind of nutty.
I went home to see my family. We played games, and I got to see my one-year-old nephew. I deeply hate the drive (two hours each way), but I enjoy the company.
I've started actually using an RSS aggregator day-to-day. I'm self-hosting Miniflux, and following a few blogs, mostly the remnants of who I was following on Cohost. I'm trying to replace the time I would be spending on YouTube with reading. So far, it's going quite well, although I'm looking for a bit more to read. Actually reading blogs is a big part of the reason I want to try writing a blog again.
Here's a highly disorganized list of things I want to do in the near future:
Finish Bakery 3.0
Update Increlemental
Containerize a Factorio Archipelago server
Write about my server architecture
Fix up my latest Quaver chart and push it for rank
I hope to put more here soon, although I'm a bit anxious I won't keep up with it. If I don't it's not a huge deal; the stakes are low. Thanks for reading what I have to write.
Until next time,
- BakersDozenBagels
Questions? Comments? Email me at business@gdane.net. I'd love to hear from you!