[ Content | Sidebar ]

breaking a bone in my hand

December 7th, 2023

I broke a bone in my hand at the start of August. I was out jogging during my lunch break at work, and I tripped somehow; I’m not actually sure what happened, maybe there was some uneven sidewalk pavement, or something? At any rate, my toe got caught and my whole body pivoted around it, converting my forward momentum into downward momentum. I stuck out my hands to brace the fall; probably a good idea, given that, even with my arm absorbing some of the momentum, I still face planted pretty hard.

At the time, I honestly wasn’t sure what state I was in. My face and arms were scraped up; my legs weren’t in too bad a shape, fortunately. My glasses were holding together but they had a fair amount of blood on them, so I took them off. I was still able to walk and there wasn’t anything causing me to scream in pain, so I decided to walk back to the office and do a more thorough evaluation there.

I must have looked like I was in pretty bad shape (no surprise, given that I already knew I had blood on my face and arms), given my coworkers’ reactions; I wish I’d thought to take a picture of myself before cleaning it off, but, well, I was distracted. At any rate, with the help of coworkers, I got the blood cleaned off and got bandaids on some of the worst bits.

 

I still wasn’t completely sure what shape I was in. At first I was afraid that I might have broken my nose, my hand, and/or my glasses; but actually my glasses were surprisingly usable, and I didn’t feel any bones moving in weird ways in my nose and my hand, so maybe they were okay? (I looked at my glasses more carefully later, and there were a few small scratches, but nothing that interfered with my vision in a really noticeable way; yay Warby Parker, I guess their glasses are pretty solid! Also my Apple Watch was quite visibly scratched up; totally usable, but it made me glad that I was already planning to replace it this year.)

But, on the other hand, maybe my hand and/or nose weren’t okay; I’d gone through enough that I figured I should get things checked out. It didn’t seem serious enough to go to the emergency room, so I called Liesl and asked her to pick me up and take me to the urgent care center at my doctor’s office.

 

I was still feeling not horrible, so once I was checked in, I was pretty confident that she didn’t need to wait for me. It took maybe an hour for them to see me; by then, the adrenaline had definitely worn off. And, with the adrenaline wearing off, my nose still didn’t feel too bad, but I was starting to get a little more suspicious about my hand.

They cleaned things up, took a look, and bandaged me. And the doctor agreed that my nose seemed fine, but he also thought that my hand needed more looking at, so he had x-rays taken. The x-rays confirmed that there was a broken bone; it was in the bone that’s on the outside of my left palm (basically the part of my pinky that’s inside my palm), and was a clean break. So he put on a splint, wrapping my hand and immobilizing my hand and fingers.

And then Liesl came to pick me up, and we went to the drug store to pick up a whole bunch of bandages, so I could replace them regularly. (Or rather, so Liesl could replace them regularly! I was very glad to have her looking after me.)

 

I went to an actual hand doctor four days later; he took a look and agreed with the diagnosis. Clean break, shouldn’t actually take too long to heal. The splint got replaced with something a little less intrusive, only immobilizing the pinky and ring finger, and that second splint was possible to remove when showering. (For the first splint, I left it on and wrapped it in a plastic bag when showering.)

By then, the rest of the abrasions had almost completely healed; there had been a quite noticeble amount of blood initially but it seems like it all came from a bunch of relatively shallow surface scratches. And Liesl was great about helping me deal with wrapping things back up every morning, of course.

Having three fingers free with the smaller splint was nice, too: it made typing and driving easier. Or at least mostly made them easier: the splint on the outside two fingers was decently long, and it was curved just enough to be annoying: when typing, I had to tilt my hand a bit to avoid having the splint hit keys, and if I put my hand on its normal position when driving then the splint would activate my turn signal. Still, totally workable.

I didn’t think Tai Chi was workable at this point, though. And most of my Nei Gong exercises weren’t workable either, because they had me move my fingers / hand / wrist in ways that aren’t particularly compatible with the splint, and that in some cases might put undesired stress on my hand. But some of them were totally fine (e.g. exercises that focus solely on breathing or concentration); and, honestly, I hadn’t been spending as much time on that sort of exercise as I’d like, so I kind of appreciated having an excuse to focus on those for a month!

 

Two and a half weeks later, I went back for a follow-up appointment. I got a clean bill of health; and they switched me to a brace that left all of my fingers free. It’s actually not 100% obvious to me exactly what the role of that brace was: it did cover the place where the bone broke, but it’s not like there was tons of padding right there or anything. It had a piece of metal which prevented me from moving my wrist very much; I guess that was its main purpose?

Certainly that was a big improvement: it made typing and driving easier, partly because I could move all of my fingers and partly because the splint wasn’t hitting random things. And I started doing Tai Chi again, at least in part; I couldn’t do all of the silk reeling exercises, and there were bits of our main form that I either couldn’t quite do or had to do with quite a bit less force than normal. But ultimately, that form was still doable, as were some (but not all) of the weapons forms. Nei Gong was still about as restricted as before, though: not being able to bend my wrist really restricted the set of exercises I could do there.

I took off the brace a couple of times a day to do stretching exercises. I could definitely tell that my wrist was less mobile than it had been; in particular, I couldn’t rotate my left hand side to side (on the plane of my palm) nearly as far as I could rotate my right palm, and it hurt when I tried to push it. I’m still not entirely sure what was causing the restrictions there – the place that hurt wasn’t right where the broken bone was, I don’t think anything was shifting there – but there was a clear effect.

 

Four weeks later, I went back again; I got another set of x-rays, they were clean, so I was okayed to have the brace off most of the time. They warned me that the break still wasn’t completely healed, and in particular that I’d be at greater risk of re-breaking the bone at that location for another four weeks or so, but it also wasn’t so fragile that it needed to be coddled all the time. I decided to wear the brace while walking Velvet, in case I got tugged in a weird way, but other than that I left it off.

The nurse also made some comment like “you’ve probably already been leaving it off some of the time already”, and honestly, I wish I had; the restricted range of motion was kind of annoying, in a way that felt like I’d gone too far in terms of immobilizing it and having bits of my hand seize up in bad ways? Having said that, it had only been a couple of months, so presumably I could undo the effects by stretching it regularly.

And I increased my activities still more. I tried out push hands in my Tai Chi class; that was a mistake the first week, but a couple of weeks later it felt okay for me to do that, at least for a few minutes. And I started getting a little more forceful in the movements that I’d toned down. I was also able to basically go back to doing my normal set of Nei Gong exercises.

I also started practicing piano for the first time since breaking my hand. And I will say: before going through this, I didn’t realize how much playing piano involves rotating your hands along the plane of your palms. It makes total sense in retrospect – if both hands are playing keys near the center of your body, then they’ll both have to rotate, after all – but it’s just never something I’d thought about.

That definitely hurt some, as did the contortions that my fingers had to go through to play various phrases. But, ultimately, that’s actually an example of the kind of range of motion that I really want to recover, and it didn’t feel like I was re-injuring myself; so I tried to practice piano every day, but with a mindset of doing it in order to regain mobility, instead of doing it in order to actually improve my ability to play pieces musically. And I think it helped.

 

Now it’s a little over two months since I got the brace off, and things are pretty much back to normal. Not entirely: if I push my hands to the limit, I still feel like my left hand isn’t the way it was before. (But the flip side is that I don’t actually know what its range of motion was before!) And if I do single hand push hands with my left hand, it aches a bit; nothing that’s strongly dissuading me or anything, but it’s still there.

Honestly, though: if you’re going to break a bone in your body, this is about as easy as it can be. I broke a non-critical bone in my non-dominant hand, but my hand was usable enough that I could work by the next week, I could use all of my fingers a couple of weeks after that, and I didn’t even have a brace less than two months after breaking things. And that seems fine: in terms of potential and actual road blocks in my life, this was a pretty small road block.

One change is that it’s made me gun-shy enough about jogging that I’ve stopped doing that. And part of me is glad, because I didn’t actually enjoy jogging, but my lungs (and heart too, I guess?) really did benefit from the exercise, I think, it’s a different form of exercise than any other that I do.

Most of me says that this is silly and that I should get back to jogging: it was a fluke, I shouldn’t let that throw me. But there’s also a part of me that says that maybe it wasn’t entirely a fluke; bad luck, sure, but not that bad? The possible issues there might have been that I just wasn’t paying attention to what I was doing, or that I actually was stumbling a little more than is comfortable.

If so, part of the reason for not paying attention is that maybe I get too distracted by devices; I definitely wasn’t checking my phone when I fell, but still, maybe my phone or watch distracted me? (I was listening to a podcast, but that should be okay.) But also my pants were fitting badly (I’ve lost twenty five pounds over the last year, and I was waiting until my weight stabilized before replacing my panst), and that actually was distracting me at that time. (Since then, I’ve bought pants that fit better.) So, hopefully if I can just be present a little more when jogging, including actively paying attention to pavement irregularities, then I shouldn’t get too distracted.

Then there’s potential clumsiness. I feel like I might actually have been stumbling more than I historically had been? If that’s true and I had to guess as to why, my first guess would be tiredness; I’ve been noticeably more tired than I would like over the last few years, and while that’s been improving, I still have work to do. And in particular over the summer we got a puppy, and while she’s a great puppy, that definitely interfered noticeably with my sleep for several months.

So I’ll keep on monitoring the situation; and maybe I’ll get back to jogging at some point? Or maybe I’ll find another way to get similar health benefits; swimming would probably be an even idea, but that would require actively finding time in a way that jogging doesn’t so good luck with that. Not committing to anything one way or another right now, there are other things that are a higher priority for me right now.

returning to kittens game

November 19th, 2023

Earlier this year, I played Crank and The Barnacle Goose Experiment. And, as I noted at the time:

Ultimately, I think the lesson here is that what I really want is more Kittens Game.

So I dived back into Kittens Game. And, you know what: it’s an amazingly good game. You can see the spreadsheet there right beneath the surface; but it’s a really good spreadsheet!

 

Just the first run experience felt super well done. It would gradually lead you from material to material, from concept to concept. Over and over you’d hit the end of some particular leveling curve, but you’d realize that, in making that progress, a new leveling curve was available for you. Maybe an obvious one (starting from a new building or a new kind of metal, for example), but fairly frequently you’d get access to a new game tab, introducing you to a whole new concept.

Eventually, the curves would run out: most ways of advancing would be shut off, and the only way to get enough storage to reopen them would take multiple days, or even multiple weeks to build. And then you do your first reset; and you start over, but with each building producing slightly more quickly or providing slightly more storage. Which starts to get at what makes Kittens Game special: it’s not just about artfully designed growth curves, it’s about getting an appreciation for how those growth curves change as you play with the parameters. Yes, exponential growth beats out linear growth, but the constant factors in those equations have an effect! (With extra spice coming from the low-degree polynomials that are sprinkled into the mechanics.)

So, the second time through, you’re making progress more quickly; it’s still not a quick game, it’ll take weeks, but eventually you’ll make it to the moon and be able to start mining unobtanium. And that in turn unlocks upgrades called “metaphysics”; some of those decrease the base of the exponents. So, after resetting a second time and starting your third run through the game, you’ll start to be able to produce quite a bit more quickly, because of the extra buildings that you’ll be able to build from a given amount of a material. And, in turn, you’ll be able to make it farther into space.

 

That’s about the level of mechanisms that I’d explored the last time I played the game. But I went farther this time, and I’m glad I did. In particular, the game lets you take on various challenges: these have you restart the game with some aspect of the play space either walled off or made much more difficult to use. And playing that way provides yet another way that the game lets you understand the impact of the different systems: how they play out, how they interact, how the scaling factors have an effect.

And, of course, completing those challenges gives benefits as well. So that’s yet another mechanism that enables you to appreciate different aspects of the growth curves in the game.

 

I made it farther, but I didn’t make it to the end game exploration that the wiki talks about. Part of that is that I hit one part of the growth curve that wasn’t to my taste; I asked for advice on the Discord and got some advice for how to make faster progress, which helped, but it was still a bit of a slog.

And, in particular, even the faster version was a slog in a way that required way too much action from me. The thing about clicker games is that, well, they require clicking. Which is fun if you’re in the mood; but eventually the require less clicking and more waiting; that’s good in a different, more mellow way, because it lets you check in every hour or so while mostly doing something else.

Just operating in that last mood does require discipline: for example, I found that, if I spent too much time thinking about the game, it actually messed with my sleep, so eventually I adopted a rule that I would stop playing the game an hour before bedtime, and if I woke up in the middle of the night, I wouldn’t check on it, even if I probably had unlocked buildings. So, for all of its virtues, I can’t unconditionally recommend Kittens Game: it really does require care to have it not take over your life in an uncomfortable way.

And I’d already started to wonder if I’d reached a point where it wasn’t quite worth it: the problem with those growth curves speeding up as you improve them in various different ways is that you spend more time clicking and less time waiting! Clicking instead of waiting for 5 minutes is good, because it gives you something to do during those 5 minutes; clicking instead of waiting for an hour is maybe not so good, though, because there’s lots of other things you can do with a free hour. So, as the waiting decreased, Kittens Game would take over evenings that I had budgeted for doing something other than playing video games.

 

In particular, when I reached the place that I mentioned above where I asked the Discord for help, the answer was: reset the game every couple of hours. And, indeed, I could make progress that way; but that meant that I was contantly in the “frequent clicking” part of the growth curve.

I tried that for a while, and it was fun in its own way. (And fun in a different way from my previous experiences with the game: yet another texture that the game revealed to me.) But it was messing with my life, and it was still taking long enough that I’d be stuck in that phase for a while.

I could have shifted back to the way I’d been making progress before I’d asked for help; that would have been better for my game / life balance, but the earlier method really was a lot slower, it honestly might have taken me a year to get to the next part of the game’s design space that way. I could repeat challenges to push on some of the relevant curves; I did that for a while, it helped (and was interesting), but it didn’t really make enough progress to resolve my dilemma.

 

So I stopped. Which is fine; that happens with games that don’t have clear ending points. There’s nothing magical about the so-called “end game” in Kittens Game, after all, it’s just where the growth mechanism peter out in the current stage of development, it’s not like it’s some big narrative conclusion or anything.

And I’m definitely glad I spent the time with Kittens Game that I did: in its own way, it’s absolutely one of the best games I played this year. And it’s good in a such a different way from other non-clicker games I’ve played; and Kittens Game is a much much better clicker game than any other one I’ve played other than Universal Paperclips. (Which I definitely appreciate more now than when I first played it.)

teaching silk reeling

October 29th, 2023

I’ve been thinking about Silk Reeling for years now; and, if anything, I got even more interested in the topic during COVID, because Silk Reeling really helped my body deal with the fact that I wasn’t regularly walking to and from the train station. That got my analytical brain thinking some more about the exercises, building on the ideas that I’d written down in my earlier set of notes; I went deeper on some of of those concepts, and I also found some other lenses that I thought were useful ways to approach the exercises. I ended up picking one of those lenses, spending a couple of months going through the Silk Reeling Exercises and the Tai Chi form with tha lens in mind, and seeing what I noticed and whether / how it changed my practice.

And I think doing so really helped my Tai Chi get better? It helped me get better in touch with my body, too, and change how it works; which is, after all, the main reason why I’m doing Tai Chi, I’m not doing it just because the form is pretty.

 

Eventually some of these lenses got stuck in my brain: they seemed to be reliably useful to me, I’d gotten and was continuing to get a lot out of focusing on them. So I figured I should try to find out if they helped other people too. I’d also recently gotten the first level of teaching certification from my Tai Chi teacher; I felt like I should put it to use, but I also don’t really feel like teaching a standard intro Tai Chi course, that kind of course isn’t particularly my thing and there are enough other of his students who do that around here.

I started writing down these “silk reeling principles”, with the idea of turning it into a website. And also, while I was at it, I was writing down notes on each of the individual silk reeling exercises, subtle points on each one that had taken me a while to notice and/or get right.

It was slow, but I made some progress on this? I’ve got markdown files sitting around for each of my principles, so the basic ideas are out of my head, at least. I still haven’t made it very far with writing down notes on the individual exercises, but it’s a start.

 

Of course, having private notes doesn’t do anybody else any good. So I still need to put together some sort of script that turns the set of markdown files into a set of HTML files; conceptually easy enough, I just need to do it.

Part of the reason why I haven’t done it is that I’m too busy and/or not focused enough. But also part of the reason is that, realistically, I’m not sure that publishing those notes on a web site would do anybody any good? These exercises are pretty specific to my teacher, so the audience that would potentially benefit from my notes is pretty small. And, in general, my fellow students aren’t particularly focused on learning via reading, or on theory. So I might literally be writing something that zero people would end up interested in!

That’s not necessarily a reason not to do it: for one thing, I could be wrong, maybe more people would get something out of it, and, for another thing, writing notes down is useful to get ideas straight in my head even if nobody else reads the notes. But still, I should probably think a bit more as to what I was doing and why.

 

As I was thinking about this more, I started thinking more and more about this in terms of notes for a class. Which might be a better fit for my fellow students? I think they like a more concrete, in-person approach; my approach is still more theory-based than most of them prefer, I think, but that’s probably a manageable difference.

So I decided I’d try it as a course. I’d ended up with five main principles, so it should work fine as a five-session course. (For the record, my current list of principles is: Pay Attention to Your Body; Sink into Your Kua; Open and Close Your Kua; Pay Attention to Your Dantian; Lines of Connection.)

The principles are only useful if you actually try them out in practice; the easiest way to encourage that to happen is to put my class right before one of the regular Saturday classes, since we go through the whole silk reeling set at the start of the Saturday classes. And I can also work in some of my ideas about fine points of individual exercises, too. If I do all of that, maybe it’s a coherent “intermediate silk reeling” class; I can pitch it at people who know all the exercises, who potentially know them well enough to start leading the exercise set at the beginning of the Saturday classes, but who are getting some of the fine points wrong.

 

I sent out a message about this to the group chat for the class, and also mentioned it in class. I got some people who nodded and said that it sounded like an interesting idea, but nobody who actually committed to coming. But I’ve had that sort of experience enough to know that the next step is to be more clear about what I want to have happen; so, the next Saturday, I showed up early to class and talked to some of the people who regularly show up early and who I thought would probably get something out of my course. And when I asked those specific people directly in person, I got three of them to agree to show up 30 minutes early next Saturday to give it a try. And that in turn gave me confidence to tell the group chat that this really would be starting next week.

Four or five people came the first week; enough to make me happy, and they were actively participating in the class, which was great. But also it’s a small enough number that I was worried that only two people would show up the following week; fortunately, something like seven people showed up. Which was about the level that I stayed at for the remaining weeks; so people were voting with their feet and time to say that the course was valuable, which was great!

I also had a few people say that they wanted to come, but the timing didn’t work for them. And I was offering it at one specific Saturday class, but my teacher actually offers two Saturday classes in different locations; so there’s probably some number of people who might be interested but just weren’t going to come down to Sunnyvale for the class. Which means that there’s potentially a decent sized audience available if I want to offer the course again, as long as I’m flexible about timing / location.

 

Offering the course again is an opportunity to iterate: some things worked well, some things didn’t work so well. I’d been thinking that, in each class, I’d both be able to talk about a principle and also talk about some fine points of one or two of the individual exercises. Sometimes it worked out that way (though only one other exercise, never two), but sometimes I didn’t have time to talk about any other exercise beyond what I was using specifically to illustrate the principle for that class. And even when there was time for an extra exercise, it didn’t really fit in well with the flow of the class.

So I think I should just lean into what the course is about. It’s not about stuff like “in this specific exercise, you should kick with the side of your foot instead of the toes of your foot”, it’s more about stuff that you can use to inform many or even all of the individual exercises and when you’re doing the form. That’s what the class is best at, that’s probably something that I’m unusually good at. And I think that, for the intermediate-level students who are the main audience for the class, it reinforces a couple of meta-points that I have in mind: you shouldn’t just focus on getting the surface level moves right, you should dig beneath the surface of the moves (and of your body!); and also if you have some basic concepts in place, then there’s a lot that you can investigate on your own.

In terms of timing, next time I’ll do it once a month on a Sunday instead of trying to combine it with the Saturday class, and I’ll do it further up the peninsula. That should open it up to a wider rande of potential participants; and also one week per principle is way too short, one class a month is a significantly better cadence. (I honestly think that you should probably live with each principle for a couple of months.)

 

There’s one other covert goal that I have in mind: by now I’m decently senior among my teacher’s students, but there are a bunch of other students who are as senior or more senior than I am. And I bet that a lot of them have stuff like this to talk about too: for example, many of them teach Tai Chi classes to beginners, and I bet they’ve got some points that they like to focus on in their classes.

So it would be great if we could come together and show off ideas to each other. (C.f. the concepts of “Communities of Practice” and “Collaborative Circles”.) What I would really love is if, after these classes, we started going out to lunch together and talking about Tai Chi, and then if other people volunteered to present their own ideas once I’d finish my five principle set. No idea if that’s plausible or not, but I’d like to at least set up a context where that has a chance of happening.

I don’t have any immediate plans for the next class; it feels like a 2024 thing, probably a post-rainy-season 2024 thing? But hopefully it will happen at some point.

powerwash simulator, bastion, and venba

October 15th, 2023

Some notes on games I spent a few hours on recently:

 

I heard a surprising number of mentions of PowerWash Simulator on the Waypoint podcast, as a chill relaxing game, and it was available on Game Pass, so I figured I’d give it a try.

Or at least my memory is that it was described as a relaxing game, but I might be misremembering; I won’t exactly say it was stressful but I also didn’t find it all that chill? Too much time spent looking for spots to get complete coverage on one part of what you’re washing, and also navigating around took more time than I would have liked; my guess is that it controls better with keyboard and mouse rather than controller?

And my guess is also that the main plus of the game is that it will be happy to pat you on the head and tell you that you’ve done a good job. Which can be nice! But that wasn’t what I was particularly looking for, so I stopped after an hour or so.

 

Bastion was our VGHVI game for September, so I replayed it. It was interesting to return to it after having played Hades; the two games have, unsurprisingly, a lot in common, but, also unsurprisingly, I liked the studio’s later game quite a bit more.

And my feelings about Bastion were pretty similar to what I felt about it when I first played it a little over a decade ago: it feels like it’s probably doing things that I would like, but somehow I didn’t feel like digging into it enough to really come to an opinion about it? So I honestly have no idea whethere it’s saying anything interesting about the themes in the game or if it’s just gesturing at ideas without much substance.

It encourages you to loop through the game again after playing it; I feel like that’s the intended experience, and that I would have gotten more out of it on the second and subsequent loops. Partly because I’d be able to re-evaluate early bits of the plot and settings in light of later events; but also because I’d be able to play the game more on autopilot, and pay more attention to aspects of the game beyond the combat. Which, I think, the designers are aware of: in particular, a decent amount of the narration happens while you’re navigating through the world and (probably) fighting, and so it’s natural for the player to not be paying close attention to that the first time? An interesting choice.

But, for whatever reason, I decided not to loop through it again. Probably if I’d made the choice myself to revist the game, I would have done a second loop, but as it was I was mostly getting it out of the way for discussion before moving on to something I was more interested in.

This looping structure is also in conversation with the structure in Hades; in the newer game, the loops are shorter (especially at the start), and so of course you’re going to go through at least a few of the loops? Which, as a corollary, means that each loop in Hades reveals much less of what’s going on; those two factors combine to make it natural to keep on going for several loops instead of stopping after one. (And, to be sure, Hades gives you lots of other reasons to keep going; the loops are worked into pretty much every aspect of the game.)

Anyways, happy enough to have returned briefly to Bastion, I had a pleasant time and we had a good discussion, but I definitely didn’t dig deeply enough into the game to be able to really think about it.

 

Venba is a game about growing up as an Indian immigrant in Canada. Basically a visual novel; there’s a cooking mini game, which the game uses to tell the story.

And it’s really lovely! Not sure if I would have played it if it weren’t on Game Pass, but it was there, and I’d heard that it was both quite pleasant and short, so I gave it a try. Moving story, I enjoyed the cooking game and I thought it worked well in context. I don’t have aton to say about it or anything, just that I’m glad that it exists and that I gave it a try. And that I’m glad that Game Pass exists and makes it easier for folks to try out games like this.

changing podcast clients

October 1st, 2023

I spend a lot of time listening to podcasts; honestly, if I had to name a single most important app on my phone, I’d probably pick the podcast app I use? Which, for most of a decade, has been Castro. Originally I started using it because I really liked their visual design; and then they added a queue-focused design that did a very good job of managing how I decide what podcasts to listen to.

Basically: I subscribe to a bunch of podcasts. Some of them I want to listen to every episode ASAP; some of them I want to listen to eventually but don’t care about when; some I want to make a decision on each new episode whether or not I want to listen to it; and occasionally I’ll run into an episode of a podcast that I’m not subscribed to that I want to listen to. And Castro had a flow that handled all of those well, sending new episodes to a podcast and letting me decide whether I wanted to put them on a queue. (Or, for podcasts in the first two classes, I can bypass the inbox entirely.) And then I tell it to just play whatever’s next in the queue; and if I change my mind, I can fiddle with the queue easily, the UI for that is good too and pleasant to look at.

And Castro did other things well, too. My favorite little detail was the way they added extra functionality to the tab switching buttons at the bottom. If you’re not on the search tab and you tap the search button, then you get switched to the search tab. But if you’re already on the search tab, then it acts as a back button, bringing you back from a single episode of a podcast that you’ve been searching for to the list of all episodes for that podcast to the list of all search results to the search bar, even clearing out your prior search term for you. It sounds like a small thing but it was a really natural flow, enough so to make me actively happy every time I tapped that button, and then other apps started feel broken when they didn’t do the same thing. (I’ve started seeing it in other apps, but it’s still not a universal idiom, and most other apps don’t implement it as well.)

 

Unfortunately, Castro started stagnating a couple of years ago. It was a two-person app; eventually they sold to a company, and then they (at least one of the developers, maybe both, I can’t remember) left that company to go elsewhere. So the rate of changes slowed down; I was actually fine with that, the functionality was good, but what I didn’t like is the way bugs stayed around. There’s one bug in particular that I would see multiple times every day; it was just a fit-and-finish bug, but still, it’s the sort of thing that makes me wonder if anybody working at the company actually uses Castro and, if they do, if they actually care about fit and finish.

That was getting me annoyed, but what was actively bad was that I ran into situations where Castro stopped reliably updating podcasts. Something somewhere would remind me of a podcast, I’d think “hmm, I haven’t seen a new episode of that podcast for a while”, and then I’d go to that podcast in Castro, pull on the list of episodes, and five episodes would appear all of a sudden. To their credit, it’s great that pull-to-refresh causes a signal to be sent to their backend infrastructure to give it a kick; but still, my podcast player’s number one job is to let me listen to episodes of podcasts, and if it can’t do that reliably, that’s a regular problem.

(Side note: basically all podcast players have now switched to this sort of architecture, where crawling is done server side instead of client side. And I wish they hadn’t: it means that they’re now structurally vulnerable to problems with the server infrastructure or having their servers blacklisted, whereas if it’s done from my phone, all that it depends on is whether my phone can do HTTP requests. The latency is good for popular podcasts, but much worse for unpopular podcasts; and in the client-side world, I could just tell it to refresh all the feeds right before leaving the house or the office and that would be good enough? So personally I wish that podcast clients hadn’t made that switch; or, at the least, that they’d stuck with client-side fetching for private podcasts.)

Also, over the last couple of years I’d run into some use cases where the single queue wasn’t working so well. There were some podcasts that I only wanted to listen to during acupuncture (because I always fall asleep during acupuncture, so I wanted podcasts that I would enjoy but wouldn’t mind if I miss significant chunks of episodes); and there are a couple of podcasts that I’m listening to that do a chapter-by-chapter breakdown of The Book of the New Sun that I listen to episodes of as I finish chapters of the book. So, in both cases, I want to have a few episodes stashed somewhere, but I don’t want to have them in the regular queue. And Castro didn’t have great affordances for that.

 

Anyways, one of those times when I discovered Castro hadn’t refreshed a podcast was the straw that broke the camel’s back; so I decided to look into other podcast clients. The ones I’d heard the most about were Pocket Casts and Overcast; I figured I should give Apple Podcasts a try too, I remembered reading some articles about a major revamp that it had gone through a year or two ago.

Apple Podcasts turned out to be easy to rule out: when I did some searching to jog my memory about the changes, I ran into a bunch of articles saying that its server side podcast feed fetching infrastructure was super unreliable. Which is exactly what I didn’t want; maybe it’s gotten better since those articles were written, but I just do not want to spend time worrying about that, especially since I wasn’t hearing any active reason why Apple Podcasts was better than Pocket Casts or Overcast.

But Pocket Casts and Overcast both seemed entirely plausible. So I installed both of them and ported over my podcast subscriptions; that way I could get the feel for the new episode triage flow for both of them, and I’d be able to see if one of them was noticeably slower at getting new episodes or was dropping them entirely. And I spent a few weeks actually listening to podcasts on one of them (instead of just triaging episodes), and then a few weeks listening on the other one.

 

Pocket Casts seemed pretty solid. It was less queue focused than Castro, but ultimately there’s an Up Next queue which works fine. And its triage mechanisms are good: you can mark podcasts to automatically go into the queue, or there’s a New Releases filter that shows the most recent episodes across all podcasts, making it easy to see new episodes and to click into them to read descriptions. And you can even do triage just from the New Releases filter without clicking into episodes, because swiping right on the episode pulls up options to enqueue it and swiping left pulls up options to archive it. (Pro tip: in the settings there’s an option to control whether “queue first” or “queue last” takes one fewer press.) And you can even do triage straight from notifications, without going into the app at all: long pressing on the notification gives you options for queueing first, queueing last, and archiving.

So triaging is pretty easy. Having said that, Pocket Casts doesn’t have you always staring at your Up Next queue the same way Castro does. Which, at first, kind of bothered me, and there’s one aspect of the way the Up Next UI works that I think is not great. But, ultimately, I decided that that difference in approach that would be fine difference once my habits adjusted: Pocket Casts is more interested in filters than in queues, and filters work too.

In particular, the filters handled the Acupuncture and New Sun cases just fine. (Once I realized that I could star the next New Sun podcast episodes to listen to and configure a filter to pay attention to that.) And actually I could even use filters to act like different parts of my Castro queue – the New Releases filter lets me look at recent stuff, and I created another filter that showed all unarchived episodes from within the last month, with oldest first; that basically matches my queue, aside from the top-priority-listen-to-immediately podcasts. Once I did that, I moved away from putting everything in my Up Next queue; so now it has 5–10 episodes instead of 20–40, which honestly feels healthier. (It won’t work if I start to get a month behind in my podcast listening, but if that happens, I’ve got bigger problems!)

So: not perfect, but quite good. Probably the biggest flaw is that Pocket Casts seemed to be draining my battery a decent amount; aside from that, it’s a little hard to edit filters after creating them (it’s possible, they just split the UI in a weird way), there’s one thing about the Up Next interface I don’t like (clicking on an episode plays it immediately), I wish filters were a little more configurable, and if you add a new private podcast feed then it takes an hour or so for Pocket Casts to be able to deal with it, and the UX isn’t great during that hour. But that’s all totally manageable. And the new episode detection was rock solid, which is important. There were also some little things I liked: e.g. various parts of the chrome change color based on the podcast art, which is a nice little touch, especially in the watch app.

So, all in all, Pocket Casts felt like a noticeable upgrade over Castro. It did better on the bottom of the hierarchy of podcast needs, and arguably a little better on stuff higher up as well.

 

Overcast seemed good, too. It has multiple queues, and handles them better than any other app: it’s the only one that properly handles the “podcasts for acupuncture” case properly where it lets me go through a different set of episodes without making me touch my main queue at all.

I was pretty disturbed when I ran into a couple of instances of podcasts where new episodes were showing up in Pocket Casts but not Overcast: is this going to be a repeat of what I’d seen with Castro? But I emailed the developer and he had good answers to both of those: one was a Substack podcast, they were blocking his crawler, he was already aware of that and was talking to them about it, and it got fixed a couple of days later. And the other was a situation where I was using an old version of a feed; I’m not sure why it worked okay in other clients, but at any rate once I used https instead of http, it worked fine. And also Overcast lets you pull-to-refresh locally (well, mostly locally), so it has a short term workaround for feeds that you know to be broken, which I appreciated.

So I ended up actually being decently confident in Overcast’s feed crawling abilities. (And yay for developers responding quickly.) But, after using the app for a few weeks, I kept on being slightly annoyed by friction in the way Overcast handles triaging new episodes. The list of recent episodes in the app only shows you the podcasts, not the actual episodes, so just by glancing at it I wasn’t always sure if I’d triaged a given episode; and going from the podcast name to the episode notes took me more clicks (or long presses or something, I can’t remember) than I’d like. Also, as far as I can tell there’s no way to mark a podcast to always be added next to the queue, so triaging was more exposed in Overcast than I would have liked. It wasn’t unmanageable or anything: I ended up with a flow where I triaged by going from notifications to episode notes to adding it to the queue, and that was okay. But it was clearly a step down from triaging in either Castro or Pocket Casts; and, ultimately, I decided that it was more important to me than Pocket Casts’s battery usage.

 

So I’ve been exclusively using Pocket Casts for a month or two now, and I’m still happy with that decision. Having said that, both of those apps are good, I can easily imagine other people preferring Overcast. And, honestly, Castro is good too: feeds only get stuck maybe a couple of times a year, the other bugs that were slightly annoying me were really just cosmetic, I think Castro handles podcast chapters better than the other two apps, I like the way it lets you download the audio from Youtube videos so you can treat them as podcasts, and if you do all your podcast listening off of a single queue, then Castro handles the single queue case better than those other apps. I still think it was time for me to move away from Castro and I’m worried that it’s probably not getting actively maintained any more, but there’s also a reason why I used it very happily for so many years.

the case of the golden idol

September 17th, 2023

I don’t have anything deep to say about The Case of the Golden Idol, but it’s a very good game. It’s a puzzle game where each puzzle involves figuring out a murder, both who did it and the context behind the murder; each murder has you presented with some scenes that you can navigate through (typically representing different rooms in a house), with objects and people that you can click on to figure out what they’re holding. You’re not represented by an avatar, you’re just an abstract observer trying to piece things together, so there’s no talking to suspects or anything like that; but many of the objects in the scene and in people’s possessions include written notes, giving you an idea for how these people ended up where they are.

That’s half of the UI; the other half is the solution screen, which is presented as as some groups of fill-in-the-blank puzzles, using words that you’ve run across when poking around through the rooms. Part of the screen is, of course, the solution; that generally takes the form of a paragraph rather than just “X killed Y”, so you have to give some context and motivation. And another part of the screen is basic facts; the most common of those has you assigning names to the various people that you see in the scenes. Typically there are a couple of other panels as well, asking you to piece together some other intermediate deductions.

 

And it works really well! The solution screen does a good job of mirroring your thoughts as you navigate through the rooms. First, you’re just trying to get a sense of what’s going on: so you start encountering people, you read through a few documents, you get a sense for what the key concepts are in this murder. And that knowledge is reflected by more and more words becoming available for you to plug in on the solution screen. So, once you’ve clicked on everything, you’ve gotten all of the words, you probably know who most of the people are, and you have a sense of what to take a second look at to figure out who the remaining people are.

You enter the names you know and then figure out the last few; and the game tells you whether or not you’ve gotten all of the names correct. Then you move on to one of the other intermediate puzzles, and work on it. And by the time you’ve done all of those, you’ve looked at all the bits of writing and evidence enough times that you probably have a pretty good idea how the murder itself went down. You enter that, the game validates that (or tells you you’re wrong; and, if you’re wrong, if you were close or not close), and you feel happy.

This all adds up to a very nice bit of scaffolding for your thinking progress. And for discussion: Liesl and I ended up playing it together, so we’d talk about what we understood, what we didn’t understand, what our theories were, all in the context of that solution screen. Once we got past the first two or three puzzles, there was enough to think about that having each other there to bounce ideas off of each other was pleasant and (especially in the later puzzles) useful.

 

The puzzles are connected, with each one taking place a few days (or, eventually, years) after the previous one, with significant overlap in their casts of characters and motivations. So, as you go through the puzzles, you’re piecing together a larger picture of what’s going on. That might help you solve the individual puzzles, but each one does actually stand alone as a puzzle, until you get to the last one; that one ties together strands from its predecessors, so you end up jumping back to the earlier scenes to remind yourself of some bit of information or other.

And it’s a pretty neat story, and one that works well as a puzzle game; the twists and turns kept on pleasantly surprising me, even through to the solution of the final puzzle.

 

So, yay. Good puzzles, in a format that is new and that works well. Pleasant plot. And even though it’s a solo game by format, it works well to talk about and solve with somebody else.

tradeoffs arising from the use of generative models

September 3rd, 2023

Since the discussion around the effects of generative models doesn’t seem to be going away, I figured I’d give in and write about my point of view of this stuff. Specifically, I wanted to talk about how I see some of the tradeoffs involved.

 

Midjourney responding to the prompt “humans protesting against robots in 19th century britain impressionist style”

The first is the question of how much to worry about people being automated out of work. Which is not great; many artists, writers, and programmers quite reasonably feel threatened by that!

I’m not going to discount that worry, but it’s also not obvious to me that making it easy to produce art / writing / code is going to reduce the demand for artists / writers / coders. If something becomes easier to do, then its cost becomes lower, and so the demand for it increases. And sometimes that increased demand increases the total market enough to increase employment in that market; and not just employment of people doing whatever job in firms in those areas, but of people working specifically on the very jobs where automation is increasing.

Take programming as an example: it’s constantly getting more and more automated. If you go back to the middle of last century, people had to program by flipping switches to enter binary code into a machine. Then assemblers and linkers came along to allow programmers to think in terms of machine instructions and to let the computers turn those instructions into binary. Then higher level programming languages and compilers and interpreters came along to let people address the computer in a way that wasn’t native to the computer (and those languages went through decades of evolution). And, as programming languages were spreading, they were accompanied by the spread of libraries, frameworks, and services, and tooling to make it easier to work with all of this.

So huge amounts of labor have been automated away. But this doesn’t mean that programming jobs have shrunk correspondingly, or anything close to that; instead, the result has been software taking over more and more of the economy, with jobs growing accordingly!

Stable Diffusion responding to the prompt “humans protesting against robots in 19th century britain impressionist style”

I’m not going to say that that trend is necessarily going to continue as generative models help more people program more efficiently; but I guess my default assumption is that it will? And I’m also not sure that the market for other areas where generative models are having an effect will expand in the same way, but I also don’t see a reason to assume that they won’t.

For example, I saw some people make statements along the lines of “you should never use generative models to produce visual art, if you want a drawing in something you’re making, you should pay an artist for it”. But there are lots of people who never use custom art, whether because of financial reasons or time constraints; if some of them start using computer-generated art, then the market is larger. At least it’ll be larger in terms of the amount of new art being created; whether that will increase or decrease the amount of money spent on art, and whether it will increase or decrease the amount of money paid to human artists, isn’t particularly clear. But, again, I don’t see why the answer to either of those is “decrease”: in particular, once somebody gets used to having custom art, they might end up being unhappy with the quality of computer-generated art and being interested in paying a human at least some of the time.

 

Four Midjourney responses to the prompt “hipster robot drinking coffee in a library cafe while listening to jazz records”

So that’s the most optimistic spin on the effects of generative models on humans who do similar work. But of course, not all automation has that kind of effect; that doesn’t mean that it’s bad, though! We’ve increased the efficiency of food production many fold over the decades, and, as a result; many many fewer people now work on farms than did a century ago. Which is a good thing: it means that there’s a much larger quantity and variety of food available now than there was a century ago. And tons of jobs are still available in the economy, they’re just different jobs; personally I’d rather work as a programmer (a job that didn’t exist a century ago) than as a farm worker.

As examples of how this might play out in game production: when listening to interviews with voice actors, one thing that they regularly bring up is that some of what they do is physically strenuous and even dangerous, with barks being brought up as an example of the latter. So if we could automate the production of barks, that probably would be a good thing? AAA games in general take much longer to produce these days than in previous decades, and one culprit that I’ve repeatedly heard cited is the difficulty of producing art to the resolution standard that modern consoles and graphics cards allow; if generative models can reduce the effort required there (or, for that matter, the programming effort required for modern games), then that’s a good thing, I would think? Or if small teams were able to start shrinking the visual / audio gap between their games and AAA games, that sounds like a plus as well. And that sounds like a plus to me even if it means that there are smaller armies of artists or programmers employed in the game industry; ultimately, to me, the game industry matters to me because of the games rather than as a jobs project.

Stable Diffusion responding to the prompt “hipster robot drinking coffee in a library cafe while listening to jazz records”

I don’t want to completely discount the issue of people being put out of work by automation. But also there’s nothing sacred about the exact division of money going to people in different jobs, new jobs appear all the time and job categories shrink all the time, and that’s okay? (I would actually say that it’s an actively good thing, an economy where job categories stay the same size is a stagnant one.) And, right now, the employment levels in the United States are amazing high and have been that way for a while, even in the face of inflation and interest rate hikes that would normally push us in the other direction; it seems like an odd time to be too doomerist about employment levels.

 

Midjourney responding to the prompt “robot painting a dog while surrounded by books”. Not sure what happened to the robot…

Then there’s the moral case, with artists and authors saying that generative models are stealing their art by using it for training purposes. And I’m going to be blunt here: my moral position is pretty much the opposite of that one.

Part of the reason is that my position on copyright is actually pretty far out of the norm, in a permissive direction. My attitude is that, in general, growing the commons is good and creating a monopoly is bad; so, as a corollary I’m pretty dubious about copyrights and patents in general. Ultimately I think that copyrights and patents are a good idea, but while I can see the moral case for them, my main reason for supporting them is a pragmatic one, and it’s basically the same one as stated in the United States Constitution:

To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries

I think we get more art by giving artists a monopoly over their works in the form of copyright; but I also think that monopoly should be limited (and in particular I’m strongly against the repeated extension of copyright terms that we’ve had over the last century), and I’m also strongly on the side of allowing derivative works.

Stable Diffusion responding to the prompt “robot painting a dog while surrounded by books”

But, even if we set aside my unusual positions on this matter, I still think the obvious position to start from is to say that we should allow computers that are producing new works to be able to use old works to the same extent that we would allow humans who are producing new works to be able to use old works. And, in that light, the analogue of the statement “we shouldn’t let generative models train on works created by human creators without those creators permission” translates into “we shouldn’t let humans be inspired from works created by other human creators without those other creators’ permission”. Personally, I think that last statement is ridiculous, and if treated seriously would be a huge threat to art.

So yeah, plagiarism isn’t great. Plagiarism isn’t great when done by humans; and if somebody uses generative models to end up with work that we would call plagiarized if it were generated by a human, then fine, call the computer generated work plagiarized as well, and penalize it similarly. But the vast, vast majority of work coming out of these generative models doesn’t fall into that bucket.

And, in particular, producing work in the style of an artist isn’t plagiarism. It’s not plagiarism when done by a human (and it’s also not uncommon when done by a human!); it’s not plagiarism when done by a computer.

 

I haven’t used the term “AI” anywhere in this post, and that’s intentional. It’s a term that can be used in too many different ways and with too many overtones; when thinking about stuff like this, I find that it just gets in my way. I have no idea to what extent generative models are an important stepping stone towards an artificial general intelligence; and I’m willing to believe that AGIs do raise potential problems that are worth taking seriously. (Though, honestly, I’m not convinced by AGI doomerism, either; I just don’t feel that I have anything approaching an informed opinion about it.)

But, when it comes to generative models, my attitude is much more straightforward. In general, automation is good for society as a whole, because it produces more stuff and because it lets us level up the kinds of tasks that we take on as a society. Frequently, automation doesn’t even have a negative effect on people whose jobs are being automated. (There are more bank tellers now than before automated teller machines were invented!)

And part of putting works of art out into the commons is that other people will be affected by those works of art, which might mean that they’ll want to have more art that is similar to your art; that’s a good thing rather than a bad thing.

notes on incident response

August 28th, 2023

When you’re on call to help run an online service and you get paged, then the page might go a few different ways. Maybe the alert is something that you’re familiar with; so you take the standard steps, you take a note to bring it up in the next retrospective in hopes that your team can decrease its frequency, and then you go back to whatever you were doing. Sometimes the alert is something odder, or the standard steps don’t work; then you dig into the logs, figure out what’s going on and how bad it is, and, after a bit of looking, you get a handle on the issue and the system goes to normal.

But sometimes that alert is a sign of something rather different. There’s a serious problem appearing that’s already starting to affect your users and where the effects could grow if you don’t get on top of it immediately. You don’t really understand what’s going on and you feel like you’re starting to lose control: an outage is brewing. I want to talk about that third situation here.

The short version of this post is: in these outage or potential outage situations, your psychology is probably working against you. The tradeoffs in an outage situation are different from a normal on-call situation and from normal non-on-call work; instead of having one or two people digging deeply into a problem, you want a team of people looking at the problem broadly. And that in turn creates a need for coordination; take that coordination role seriously as well.

 

Normally, when you’re working as an engineer, you’re trying to understand something and deal with it as efficiently as possible. You’ve got a guess as to what’s probably going on in a given situation and what to do. So you spend some time following where that guess leads, making sure that that guess is the right one. If it is, great; if not, you try out other possibilities. If you get really stuck, you’ll ask a team member for help, but you don’t want to interrupt them unless you really need to: they have work to do as well, after all, and if it’s outside of regular work hours, then they have lives to lead. So you dot your i’s and cross your t’s before asking for help.

In an outage or potential outage situation, however, almost all of that is wrong. There’s a core that remains relevant: you don’t want to make things worse, so you certainly need some level of care. But, given that constraint, your goal should be to get the situation under control as quickly as possible: fixing the problem is a higher priority than completely understanding the situation, it’s a higher priority than not bothering other people. (Don’t get me wrong: understanding is good! But, as long as you can fix the situation safely, then it’s okay if the understanding happens after the fact.)

Part of the implication here is that, in an outage situation, you should be willing to take remediative actions even when you don’t have a clear linkage between those actions and the cause of the outage. For example, if a relevant service was recently upgraded, then try downgrading it; if some feature flags were recently flipped, try setting them back to their prior state. This isn’t always the right course of action: if the service is one where upgrades are problematic for some reason, then there might be a noticeable risk that downgrading it will make things worse. But, in the normal happy case where downgrades are fast and safe, then you might want to just go ahead and do that: it almost certainly won’t make the situation worse, and it might make the situation better.

So part of the answer is that, in these uncertain situations, you want to do safe but speculative actions more often than you would otherwise. But an even bigger part of the answer is that a straight line approach of having one person dig into their best idea of what’s going on is not going to be the quickest way to reach a solution: instead, you want to take a set-based approach.

 

In our story above, the on-call is digging into their best guess as to what’s causing the problem. And that’s a good thing to do, no question! But they probably have a second and third guess as to what might be relevant; it would be great if somebody else could be looking at those possibilities as well. And, as I mentioned above, you might have some speculative remediation activities that somebody should try out. (“Have you tried turning it off and on again?”) But if the problem is mysterious enough, then none of that will work: so ideally you’d also be digging into the logs to see what unexpected bits of evidence are lurking in them, and you’ll also want to look at recently deployed changes and recent feature flags to see if they provide any clues. And there’s probably somebody in your organization who’s been around a while and has seen all sorts of things, who is unusually good at figuring out what’s going on when the system is behaving strangely; it would be great if that person were here to help.

That’s a lot of different things to try! (Which is why we call this a set-based approach: you’ve got a set of actions to undertake, and you’d like to perform as many of them in parallel as possible.) So, in this outage / impending outage situation, you need to shift out of a mindset of “the on-call will deal with this” to “we need a bunch of people looking at things and digging into different possibilities”; doing so will dramatically shrink the resolution time. And this, in turn, changes the problem into one of group problem solving and coordination.

 

Coordinating a group is hard work, and one that requires specialized skills. You could ask the on-call to switch into that coordination mode; but that kind of mindset shift is hard. So, at my current job, we have a separate rotation for this (a rotation of senior engineers and managers pulled from different engineering teams), called the “Incident Response Coordinator” (IRC) rotation. The IRC’s job is to help coordinate the response to incidents that are already serious or are showing signs that they will get serious, with the goal of getting the incident resolved safely as quickly as possible.

A big part of their job is to implement the set-based approach. Find an appropriate group of people to work on the problem; at first, maybe it’s just the on-call and the secondary, but by the time the IRC is involved, it’s usually pretty clear that we want more people to get involved. So one of the things that the IRC is doing is notifying other team members that they should join in if available, and giving those people a summary of the problem and a pointer to the Zoom meeting where people are gathering. And once they’ve gathered, make sure that they’re digging into different aspects of the problem.

Another part of the IRC’s job is to shield those people from distractions while making sure that necessary tasks get taken care of. The on-call and most of the other people working on the problem are trying to focus on understanding the problem and digging into one aspect or another of what’s going on; but if the incident is turning into an outage, then there are other things that somebody needs to do. (We should post on the status page to let users know of the issue and to keep them updated, we should check with support to get a sense of the impact and to help them answer questions coming in from users, etc.) And maybe there are other things that could be done to shield the people who are digging into the issue; for example, maybe the on call needs to spend their time really digging into some aspect of the problem but is being interrupted by a flood of alerts; if that’s the case, can we find somebody else on the team who can temporarily hold the pager?

A third part of their duties is to make sure that the flow of the response looks right. The IRC should never be actually working directly on solving the problem: in fact, if the IRC is somebody whose domain expertise would be particularly useful with the incident in question, then they should find somebody else to wear the IRC hat instead! But the IRC can make sure that the group of people working on the problem is expanding appropriately (expanding from a few team members to the whole team that owns the service in question to adjacent teams to random other engineers who are particularly good problem solvers); and the IRC can make sure that people aren’t getting so wrapped up in trying to understand the problem that they aren’t putting in potential fixes in place. (Also, as a side note: once a potential fix is in place, people should switch to trying to figure out how we can validate the fix as quickly as possible and, if the signals that we’re looking for show positive signs, how we can turn up the dials to have the fix take effect as quickly as possible. Don’t just let the autoscaler add a few nodes: double the cluster size, and if that helps, double it again!)

 

For really complex problems, I also like to have the IRC manage a list of actions and hypotheses that we’re tracking. Every time somebody comes up with an idea of some sort, stick it on the list; if somebody is at loose ends, have them grab an item off the list and put their initials next to it; once they’re done looking into it, cross it off (and add more items that are discovered as part of their investigation).

Also, make sure that we’ve got some level of notes as to what we’ve come up with. During the outage, what’s important is to solve the problem, not to understand every aspect of the problem, but the next day the team is going to want to start digging in deeper to figure out what was really going on so they can put in further safeguards for the problem in the future. So the IRC should make sure that key observations are written down somewhere, to help with that further investigation.

 

Done well, this can make a real difference: it can turn a multi-hour outage into one that lasts less than an hour or even into one that barely qualifies as an outage at all. But doing this right takes effort and skill. You need to recognize that individual engineers’ instincts will lead them to behave in ways that aren’t optimized for quickly bringing the problem to resolution; you need to instead bring in a group of people who are all working on different aspects of the problem in parallel; and you need to focus on the metric of safely resolving the situation as quickly as possible.

touching my toes

August 13th, 2023

My body is decently flexible in some way; but my hamstrings aren’t one of those ways, it’s been decades since I’ve been able to touch my toes. (At least when standing; I could barely touch the toes on one foot if sitting with only one leg extended.) Which didn’t seem like the greatest thing, and once I started doing Tai Chi and Nei Gong, it felt like something to work on.

Of course, it doesn’t help that I spend lots of time sitting down; my body is just adapting to what I’ve been asking it to do! So the first step is probably to do that less. My watch is happy to let me know when I’ve been sitting down for a full hour; I’d been thinking of that as a reminder that I should get up and walk around (which I mostly ignored, to be honest), but what if I instead think of that as a reminder to try to touch my toes instead? If I do that enough, then presumably my hamstrings will get less tight and I’ll be able to touch my toes.

 

I did that for several months; I don’t know if it was as long as a year, but I think it might have been. And: it totally did not work! I won’t swear that I didn’t make any progress at all, but, if I did make any progress, it was a really miniscule amount.

Honestly, though, I don’t know that I was taking this idea all that seriously: I wasn’t worrying too much if I was in the middle of something else when my watch told me to stand up, and I also wasn’t proactively stretching during hours in which my watch had already given me credit for standing. So I figured I’d keep going, but I’d take this idea more seriously: after all, if I stretch enough, my body has to get more flexible, right, so I must not have been stretching enough?

 

I kept on going; maybe things were getting a bit better? But then, one time, I noticed: I’d been mostly paying attention to the tightness behind my knees, but if I relax the area around my butt, sometimes I can get more bend there. Which probably isn’t so relevant if my goal is just to get my hamstring looser, but touching my toes is probably useful for other reasons? Or, even if it’s not actually useful, it’s still something I’d like to be able to do!

After playing around with this a bit more, it turned out to be pretty repeatable. I’d relax a bit and wiggle my butt some, and I’d be able to bend over a noticeable amount more. And if I kept on going, I could usually get a second extra bend. And, once I got to that stage, I could touch my toes!

 

I played around with how this felt. There’s a line that goes up my legs, over my butt, and up my back; I feel like I’m managing to disconnect from that line to some extent and rotating the rest of my body underneath it. Also, when I bend over enough, the location where I feel tightness the most changes: instead of being behind my knees, it’s more towards the inside of my thighs, fairly high up; not sure what’s going on there. And that higher up tightness is less annoying than tightness behind my knees, so if I bend over more, it actually becomes more pleasant and easier to maintain the stretch.

I can keep going once I reach my toes, too. I can touch the floor; and frequently, I can bend my fingers and make it to around my first knuckle. The bend doesn’t keep on going forever: I can’t put my hands flat or the floor or anything, and honestly my back is still depressingly close to parallel with the floor, so I clearly still have work to do. But, if I go down far enough, I do start to feel like the weight of my head is helping tug at me, and my lower back is opening up a bit; it would certainly be good if I could continue that improvement.

 

So: yay for pushing on with this, and yay for figuring out something about how my body works. I’m curious if I could have done this years ago, or if the way Nei Gong is affecting the layers of my body is important in letting my body move as I relax and wiggle. So if any of you try this out, let me know how it goes!

updating my hoa’s ccrs

July 23rd, 2023

I’ve been on the board of the HOA of the townhouse complex that I live in for the last three years; and we just passed a new set of governing documents. And there was enough going on there that I figure I might as well write down some notes on it.

 

When we first considered buying here, we looked at the CCRs. (And the Bylaws.) There was a decent amount of stuff there that made me roll my eyes (no clotheslines in your back yard? drapes must be white or off-white?), but ultimately, there weren’t any deal breakers. (In particular, they allowed us to have dogs, which wasn’t the case for all of the HOAs we looked at.) And we liked and could afford the house, so we bought here; it’s been a good choice.

Over the years, issues with the CCRs have come up occasionally. The maintenance responsibilities aren’t super clear; one board paid a lawyer to give an opinion about what the HOA was responsible for, and that gave us some clearer guidelines, but it was still too vague: having the responsibilities depend on on knowing what qualifies as “trim” wasn’t great. But they were manageable, and passing a new set of CCRs seemed like a pain, so nobody did anything about it.

 

That changed five years ago: one board member felt motivated to change things, found a lawyer, and produced a first draft. At least I assume that process was mostly motivated by the feelings of that one board member: I wasn’t normally attending board meetings so I don’t know what discussion happened there, and the board didn’t actually tell people about it in advance. (I’m basically the only person who has served as a board member who treats communication with everybody as a priority…)

And, when I saw that draft, I was not impressed. There were a several sections that felt like that person’s hobbyhorses, and I didn’t agree with most of those hobbyhorses. It was structured in a really bizarre way, with a lot of stuff being listed both in the CCRs (which requires a very difficult vote to change) and in the rules and regulations (which future boards can change on their own), which made no sense to me; I don’t know how that happened. (And some of those items really did not belong in the CCRs.) And there was stuff that probably came from the standard template that that lawyer used that traded in one set of things that made me roll my eyes for another set.

So I complained about that version. Nothing much happened with it the rest of that year, and then that person left the board; the next board did a decent job of trying to understand points of contention in that draft and seeing if they could turn it into something that had a plausible chance of passing in a vote, but that was difficult, and they gave up after a couple of meetings.

 

I came on the board pretty soon after that; I can’t remember the exact timing, but either the next year or one year later, I think? At any rate, the first year I was on the board (during my current stint, I’d been on the board once before), our liaison on our property management company every once in a while would say to us “your CCRs are really out of date, state law has changed a bunch”, and I would nod and agree, but we had a decently large crisis around our fire alarm system, and of course COVID was happening, so I had other priorities that year.

And I also had other priorities the start of the following year, but one of the things that came up then was a lot more annoying than it should have been because the CCRs were unclear about who was responsible for what. So eventually, when things calmed down, I figured that, yeah, I had enough breathing room and this was important enough that I’d start looking into getting the CCRs changed. (There were two other people on the board, but neither of them was likely to take the lead in a big project, so if it was going to happen, I would have to spearhead it.)

We decided to start from scratch: in my opinion, the draft from the earlier attempt was unusable, and it had been long enough that my assumption was that, even if we’d wanted to edit it, probably the lawyer would have charged us more like we were starting from scratch. So I searched for lawyers; we ended up going with one that our property management liaison recommended, and I’ve very glad we did, he’s been very good to work with.

 

At this point, my questions were: Is updating our CCRs even possible? How much work was this going to take? What are my goals in this process? And what should I do to increase the chances of meeting my goals?

Taking those in order: for this to be possible, we need more than half the owners in the complex to vote yes on it. (Not just more than half of a quorum: more than half of the owners have to turn in a yes ballot, not turning in a ballot for this is the same as voting no.) Which is a pretty high barrier: it takes some amount of nagging to just get people to turn in the vote for board members every year, even though the HOA can’t function without a board.

But what I was more worried about was that the CCRs (or Bylaws, I can’t remember) have this clause that says that changes to the CCRs require approval from half the mortgage lenders, and the idea that half of them would provide approval for a CCR rule change felt very far-fetched to me.

Fortunately, our lawyer explained that this wasn’t nearly as bad as it seems: yes, mortgage lenders almost never respond, but there’s case law that says that we can treat their lack of response as a yes, as long as we wait 30 days. So mortgage lenders approval turns out to be the easy part, I just need to focus on finding 13 (out of 24) yes votes from the owners. And the lawyer’s process seemed pretty straightforward: he has a questionnaire that we’re supposed to fill out, he’ll plug that into his standard template (including specific rules that we ask for), there’s one round of reviews, and then he’ll prepare the materials for a vote, talk to mortgage lenders, and talk to the city.

 

I spent a while thinking about my goals: there’s a fair amount that I don’t like about the existing CCRs and would like to change, after all. But watching how the process had gone in the earlier attempt and seeing what the practical problems with the current CCRs had been, I decided that my first priority wasn’t actually to fix all of my pet peeves. What I really wanted was to have the maintenance responsibilities be clear (and I didn’t even care too much about the specifics of what owners were responsible for and what the HOA was responsible for: I mostly wanted clear rules), and the management company’s point that stuff should be up to date with current law made sense to me. And I cared about both of those more than I cared about fixing my pet peeves.

So, when I looked at those priorities, and I combined those with how the previous attempt fell apart because contentious changes were proposed and with the difficulty of getting votes at all, my main lesson was: I should try to avoid contentious topics, even if they’re about changes that I would like to see. There are 24 units in the HOA, and maybe I can convince 16 people to turn in a ballot if I work hard at it (but it will require work!); so I can only afford 3 no votes. And the more people argue, the greater the chance that we’ll have more than 3 no votes and/or that people will just feel uncertain about the process and will decide to not turn in a ballot at all.

Putting that all together, the story that I decided to tell folks was that our main goal here was to modernize the current CCRs. And we would explicitly try to avoid making changes to contentious areas of the CCRs: that meant that people with opinions on the CCRs (including me) would end up unhappy compared to their ideal result, but the new CCRs would hopefully still feel like an improvement over the old CCRs to almost everybody. And this also seemed like a goal that is compatible with our lawyer’s process (and in particular with the fact that we basically have one chance to ask for revisions on the draft): that goal should help limit the argument and gives a relatively clear criterion that we can use to make decisions about issues that do come up with the initial draft.

That seemed like a good approach pragmatically, but I also like it philosophically. If we want to, say, have an argument about changes to how people are allowed to rent out their units (which is one issue that came up in the last attempt), then that discussion will be a lot easier to have if we’re only having that discussion, instead of mixing it with a huge number of other changes. So what I would like us to happen is for us to modernize the CCRs (which, unfortunately, basically requires a complete rewrite), and then, in future years, we could have targeted votes on other more focused changes, changes that would only affect one or two paragraphs of the CCRs. That seems like a pretty healthy way to make changes.

 

So, with that in mind, the process was this:

1) Make sure that everybody knows that we’re talking about changing the CCRs, that our main goal is to modernize them while avoiding contentious changes, and that people will have two opportunities to provide feedback.

2) Fill out the questionnaire that our lawyer sent. (That was the first board meeting where people would have an opportunity to provide feedback.)

3) Once we got the draft, send it out to everybody, and schedule a board meeting to discuss changes to the first draft. (That’s the second opportunity for people to provide feedback.)

4) Get the second draft, schedule a vote, try to convince people to vote yes.

5) Get the mortage approval, and send it to the city.

Which was an amount and nature of work that I was willing to sign up for.

 

The questionnaire board meeting went pretty well. Two non-board-member owners attended; one quite reasonable person who didn’t have a strong opinion about the rewrite (but who supported it and our goal), and one person who was more opinionated, and who had been a major source of recent requests to the board. (And who was also the person who had been a driving force in the previous attempt to change the CCRs.) That person had reasonable enough stuff to say about questionnaire items, so the discussion was fine; and then she brought up something specific that she wanted in the new CCRs.

That specific proposed item sounded like a quite bad idea to me; so, after letting her talk for five minutes or so and not seeing the item get any particular traction from other participants, I checked with the other board members and made sure that they didn’t want to proceed with discussing the item, and then I said that she were moving on. She was annoyed (but not actively rude or anything) and left the meeting; it went smoothly after that, and we ended up with responses prepared for the questionnaire in a little less than two hours.

 

When we got to the draft, I read it a bunch and prepared a list of items that I wanted us to discuss and probably change, the other board members read it some, and one owner (not one mentioned above) prepared a pretty detailed list of changes. I thanked her and invited her to attend the board meeting about the changes, but she said that she wouldn’t do that, she didn’t do well in that kind of live discussion environment; so I said I’d bring her changes to the meeting.

And we went through all of the items that people had brought up. (I think the only non-board-member owner who attended was the aforementioned supportive person.) We came up with what seemed to me to be a reasonable set of requests to send back to the lawyer; again, it took just one board meeting and less than two hours, which was great.

I e-mailed the owner who had submited a list of changes after the meeting, basically saying “we talked about your changes, we agreed with you on these changes, we discussed the other ones but decided to not go along with your other proposed changes, and (for the ones that were larger) here’s our reasoning why we went a different way”. I was pretty happy with how that interaction had gone; I felt like we’d improved the CCRs based on her feedback, and she seemed to appreciate that.

 

So yay: we’d gone through the comment period without any big disagreements, it seemed like we were on a good track? Then two things happened. One is that one other owner emailed in comments on the draft; he did this maybe half a month after the board meeting where we were going to talk about that sort of thing, six weeks or so after we’d sent out that draft. I asked him if he really wanted us to schedule a board member for us to go over his comments; he said no, but he hoped we would make the changes he wanted anyways. Which is kind of a nonstarter!

Reading through his changes, I actually would have been happy to go along with several of them (though certainly not all of them) if they’d come up in the review period that we’d broadcasted; but they didn’t. The thing is, though, one of them did seem like it was pointing out something important that we missed (and, to his credit, he particularly emphasized that one); so I did talk that one over with the lawyer and the lawyer agreed that the clause in question wasn’t actually useful.

The other thing that came up was that our HOA liaison had one issue that he particularly wanted us to have addressed in the revised CCRs. This one at least did get brought up in a board meeting, just not the one that had been intended for that purpose; we went through a couple of rounds of email exchanges with the lawyer, but ended up not doing anything with that change.

 

So, after that, we were ready for the vote. It had gone pretty smoothly so far, I was optimistic that the vote would go well, but who knows. So we sent out the ballots, and I sent an email to everybody talking about our goals for this, the process so far, and the importance of voting.

I got some supportive emails; but also the same two people who had commented on the first draft sent out emails saying talking about what they were unhappy with about the proposed CCRs, and one of their spouses and one unrelated owner also sent a brief email supporting the concerns that those two raised. Both of them were taking the tack “we shouldn’t be voting on this now, we should do another round of changes”; I kind of rolled my eyes at that, we had a process for talking about changes, one of the two basically ignored the process and the other two just threw proposed changes over the fence while refusing to participate in the discussion? I’m not saying that the process was perfect, but if their goal had really been to get a better process leading to better CCRs, then maybe bring that up earlier instead of waiting until we’ve already sent out the vote?

Anyways, for both of them I took a pretty similar tack. Yes, the CCRs aren’t perfect, but I think they’re good enough; if we want to make it better, what I’ll propose is that we approve these broad changes and then have a subsequent vote on targeted changes that are important to people; and for the specific changes that you’ve called out as most important, here (in the least inflammatory language I could come up with) is why I either disagreed with your proposed change or why I didn’t think this topic is important enough to hold up the entire process for. (E.g. I’d do stuff like point out bits of state law that meant that a specific concern was already addressed by state law.)

 

I was kind of nervous after that. Clearly I had two, probably three no votes; and I could count on maybe 8 people to vote yes. But that leaves a whole bunch of people that I didn’t have evidence about; if almost all of them vote no or don’t vote at all, then it wouldn’t pass. (My earlier estimate was that I could get 16 out of 24 people to vote at all, so three no votes already uses up my entire buffer!)

At least there weren’t too many people who were openly complaining. So I figured that I wouldn’t worry about people being against it, but that I would worry some about people not voting at all. (Whether because they weren’t sure if it was a good idea or because they just didn’t get around to voting.)

And that seemed like something I could have an effect on. (My guess that 16 people would vote is just a guess, after all.) I obviously can’t learn how people vote before all the votes are opened, but our management organization was willing to tell me who had submitted votes. So I got the list of people who hadn’t yet submitted a vote, skipped the people who I either had reason to believe would vote no or whom I didn’t get along with on a personal level, and I emailed each the rest of the people encouraging them to vote. I didn’t actually encourage them to vote yes: I just encouraged them to turn in a ballot, and said I’d be happy to answer any questions they had.

 

And all of this seemed to work – 19 of the 24 households voted, and 16 of those households voted yes! Yay for that, always nice when things turn out well.

I did email people saying “if people were serious about wanting to make improvements to the draft CCRs, I’d be happy to make time in the next board meeting to discuss proposed further amendments”. And I got zero uptake on that offer; so yeah, I don’t think those two people really wanted to work to make the new CCRs the best they could be, probably what they really wanted was to stick with the old CCRs and were just trying to accomplish that while still trying to seem like they were participating in the process.

 

Anyways, I guess the lessons that I took out of this are:

  • Figure out what’s most important to you, and make sure to prioritize that.
  • Figure out what failure mode you’re most worried about, and make sure to prioritize that.

For the first of those, what I most wanted was to get modernized CCRs passed; I cared about that more than any particular change that I would have liked. And for the second, I was most worried about people just not voting at all: so I wanted to try to avoid having enough arguments that people weren’t sure which way to vote, and also I wanted to avoid people just not getting around to voting.

And that, in turn, meant that I tried to avoid controversy as much as possible, and to frame the new CCRs as sticking to the original CCRs as much as possible on controversial topics. That seemed like a message that I could defend while sounding as reasonable as possible, which would hopefully avoid the most argumentative negative scenarios? And also the second point meant that I should spend time pushing people actually send in their ballot; my personality is such that I normally don’t do that sort of thing, but this seemed like a situation where I should make an exception.

 

Glad my process worked; and glad that I won’t have to spend any more time thinking / worrying about this.

notes on three games

May 21st, 2023

Some notes on games I’ve played recently where I don’t have enough to say to fill up a full blog post:

Tokyo Mirage Sessions ♯FE

A few months back, I was in the mood to play something joyful. And I knew that I’d be going on a trip soon, which argued for that game being on the Switch. And it had been a few years since I’d played Tokyo Mirage Sessions; not all that many years, actually, especially given how rarely I replay games, but still, it felt my mood.

And I still love that game. The music is great, the style is great, the interactions are frequently adorable but also have their heart in the right place in ways that I don’t always see, the combat matches spectacle with a bit but not too much thinking in a way that works much better for me than most RPGs.

Having said that: there are aspects of the game I’m not thrilled with. Barry is kind of creepy; the end-of-battle camera is way too fond of Tsubasa’s breasts and Eleonora’s butt; it drags on in the last quarter or so; seeing Itsuki in his street clothes is making me think I should find something to wear instead of a hoodie when I want a light jacket. So I was happy to have replayed it, but also happy to have it end.

Still one of my favorite games.

Hi-Fi Rush

I was really excited when I saw Hi-Fi Rush. The graphics reminded me of Jet Set Radio, which is in own way one of my favorite games of all time; Hi-Fi Rush is a game that seems to take music seriously; and the initial buzz seemed good. So I was pretty sure that I’d like it, and quite possibly I’d like it a lot.

I did not, in fact, like it a lot, or very much at all. The music is nowhere near as good as that of Jet Set Radio; I could say that that’s maybe partly due to genre difference preferences, except that the music from Jet Set Radio isn’t from genres that I normally listen to? And Hi-Fi Rush is also way too earnest; probably that would be fine if I didn’t have Jet Set Radio in mind but, well, I did.

I spent a couple of hours today going through the start of Jet Set Radio just making sure that I wasn’t remembering it through rose-colored glasses. And it is definitely the case that there are aspects of the gameplay of Jet Set Radio that are not great, especially by current standards. But it’s also the case that that flaw is swamped by the game’s music and style, which remain excellent.

So I didn’t finish Hi-Fi Rush; quite rare for me, but there it was. What I really should be looking forward to is Bomb Rush Cyberfunk (and in fact I think I was probably conflating the two games); hopefully that one won’t be a similar disappointment, given that Bomb Rush really is trying to effectively be a new Jet Set Radio.

Wo Long

I actually think that I finish more games than I should. Not so much because I normally don’t enjoy the time I spend with games: Hi-Fi Rush was a pretty rare exception where the game was actively dragging on me, I’m usually pretty good at sensing out in advance whether or not I’ll like a game. But I suspect that also pushes me in a slightly risk-averse direction: I’d probably do better if I started twice as many games as I do and only finished a third of them?

I hadn’t subscribed to Game Pass: it wasn’t clear to me how much money it would actually save me, even if it costs more to buy games I’m happy to support developers, and I don’t want to have my game playing choices overly influenced by whether or not the game is in Game Pass. Having said that, if I’m going to experiment more, then having access to a pool of games that I can try out for free certainly seems like a good idea.

And I’d even been planning to subscribe to Game Pass for my next game after Hi-Fi Rush; in retrospect, I wish I’d subscribed one game earlier, but such is life. Because, for whatever reason, I was curious about Wo Long, so I wanted to give it a try, but it’s a soulslike, and my experience with Elden Ring meant that I would have been surprised if I enjoyed Wo Long enough to finish it or ever come particularly close to finishing it. But Wo Long was on Game Pass; and my experience with Elden Ring also made it quite plausible that I’d enjoy it enough to play for 10 hours or so. And if I bounced off even sooner than that, that’s fine too, if I’m not paying for it.

And it turned out basically as I expected. I think I actually kind of liked the fact that it wasn’t an open world game: that meant that I had structured situations to confront, and ones that I should plausibly be able to defeat. And that’s the way it worked: going through the body of each level was fine, and then I’d hit a boss, and that would take longer but not forever. (An hour plus or minus a factor of two, maybe?) And the combat was okay; I wasn’t awful at parrying in the game, having boss battles that were all about pattern learning and parrying wasn’t so bad.

But still, soulslikes just aren’t my thing. I can more or less deal with the difficulty (or at least I could for the first few levels of Wo Long), but it’s not a sort of challenge that I find rewarding. I don’t enjoy the leveling up system; this time I looked up a build to give me more guidance, but that didn’t help much. I still don’t think that corpse runs are all that great a mechanic.

And the bits that Wo Long added didn’t help my enjoyment. I played around with the magic system and got zero benefit from it in boss battles; though it was amusing to see the five element cycle that I’m used to from Nei Gong! And I think the game’s system of having a secondary leveling system within each level actually makes the game worse, because it holds out a benefit of an easier experience in the tougher parts of levels that you can only repeatedly reach by replaying decent-sized chunks of the level before whatever battle you would want to take advantage of that extra strength in. (Which would take enough time that I never seriously considered doing that.)

So, if I’d bought the game, I would have been annoyed! But I didn’t, so it was totally fine; I played through most of five missions, I had a decent time with those missions, but I realized that I wasn’t enjoying the boss of the fifth mission enough to spend another evening making it through that battle, and I stopped. We’ll see how much Game Pass affects my playing in the future, but I was happy with my choice of it in this instance.

vampire survivors

May 14th, 2023

(If you really want to go in blind, don’t read this post, just play the game; it’s quite good! But I want to talk in some detail about how the mechanics of Vampire Survivors unfold because I found that unfolding process to be surprisingly interesting.)

 

I’m quite impressed with the way Vampire Survivors is constructed. It starts out as a game where you’re attacking and avoiding enemies; the gimmick is that you only control your movement, you don’t control your attacks, your weapon just attacks on its own, at whatever speed and in whatever direction is characteristic to that weapon.

As you defeat enemies, they drop gems, and if you can pick up enough gems without getting killed, you’ll level up. That lets you either upgrade your weapon (changing its characteristics, maybe it fires two bullets at once or fires more frequently); get a new weapon (that fires in addition to your first weapon); or get / upgrade an accessory that improves your character somehow (e.g. one that recovers health periodically, or one that decreases the delay at which your weapon fires).

As time proceeds, the numbers of enemies increases, and at some point, you’re unable to dodge enough, and your health drops to zero. So you think “I should get better at dodging, while still placing myself in the right location to be able to attack enemies and to be able to pick up gems”, and play again. Which is a fun loop!

 

As you’re doing this, you also occasionally break open lamps on the level; sometimes the lamps drop an item that heals you, but most of the time they drop a gold piece. (And sometimes, if you’re lucky, the lamps drop bags with 10 gold pieces in them instead.) You can’t use the gold during the level, but at the end of the run, one of the options is to go into a shop where you can buy permanent power-ups.

So Vampire Survivors is in dialogue with roguelites: the money mechanism is like the mirror in Hades, for example. There are quite a bit more things to buy in Vampire Survivors compared to Hades, however, and some of them seem quite expensive; clearly there’s got to be a better way to get that gold?

As you play, you’ll occasionally run into tougher monsters, and when you defeat these minibosses, they drop a chest; that chest gives you an immediate weapon/accessory level increase, but it also gives you a hundred gold or so. (And, occasionally, it’ll level up three or even five items, and give you more than three or five times as much gold.) The chest gold drops turn out to make the money you make from light sources almost irrelevant; and, with that amount of money, you can see how you’ll be able to buy one or two of the permanent power-ups every run.

 

That turns the core gameplay loop into more of a spiral than a simple loop: as you buy the permanent power-ups, you’ll survive longer and longer. But that’s not the only way in which the core gameplay loop changes between runs: most of the time, as you finish a run, you’ll get one or more achievements. And these achievements aren’t just cosmetic: they give you effects in game.

For examples, the initial achievements reward you for getting your character to a specific level in a single run; by doing so, you unlock specific accessories. Also, you can use your gold to unlock new characters; each character has a different starting weapon, and if you survive long enough with a given character within a single run, you’ll unlock that character’s starting weapon permanently. Both of these have the effect of expanding the possibility space within a run, giving you more options as you level up. (Though you’re only presented with three, or occasionally four, choices each time you level up, so this can be a little frustrating if you’re looking for a specific upgrade and keep seeing other ones! But even that can be good, it gets you out of ruts.)

So that’s the way the loop unfolds: you play more and more, and you both increase the possibility space (by unlocking more options) and increase your ability to explore the possibility space (by buying permanent power-ups). And you don’t have to go too far until the game morphs in a way where it’s no longer about increasing your skill at dodging enemies, it’s about discovering what’s out there in the possibility space. The game helps you with this, too: the achievements menu lists locked achievements, including their unlocked criteria and their rewards, so I’d generally start each run with an idea for what achievement I was going to try to get on that run.

 

That possibiity space continues to expand. As you survive longer and longer, you’ll level up more and more; if you’re like me, you’ll probably go wide, mostly acquiring new weapons and new accessories, but the game only lets you get six of each, so then you’re forced to go deep. (With an extra nudge from achievements that encourage you to go deep on weapons.) Once you level up a weapon enough then, if you’re lucky, the next time you get a chest from a miniboss, that weapon will evolve into a different form. And that evolved form is quite powerful, usually shooting very frequently and with some sort of new power, and doing so in a particularly theatrical way (These aren’t permanent changes: like the standard in-run level ups, you have to earn them every run. But that gives you something to look forward to. And also a bit of a mystery: initially, it isn’t completely obvious what triggers the evolutions.)

These evolved weapons are quite good at cutting through enemies. The game throws periodic challenges at you (the aforementioned minibosses, some rings of flower enemies that constrict your movement, a huge wave of skeletons); once you evolve your first weapon, those challenges won’t seem so hard! Then they’ll get hard again, but you’ll evolve more weapons; and, at some point, the screen will be covered with enemies and bullets from your weapons, and you won’t really be able to tell what’s happening but you’ll be clearing out everything around you.

And then you’ll hit 30 minutes, and an indestructible enemy will appear and will kill you. But doing that (actually, you don’t even have to make it all the way to 30 minutes) will trigger an achievement that unlocks a new level. And that level has harder enemies (and an interestingly different physical layout that will cause you to rethink your approach), letting the difficulty curve grow to match your increased powers. (But the earlier level is still there if you want something that’s more chill; I’d generally try out new characters on the first level, for example.)

With this, you’ve got the basic ingredients for what a run looks like. You try to get a good mixture of weapons to keep you alive in various circumstances (some that clear out enemies near you, some that do more damage but in ways that are less controlled), you try to pair them with a range of accessories to keep you alive and increase your offense in different ways, and you structure your acquisition and leveling up of weapons and accessories so that you’ll be able to unlock evolved forms of weapons quickly enough to survive the increasingly aggressive waves of enemies. And all of this is mediated by random drops during your level up opportunities, so you can’t guarantee in advance what a given run will look like.

 

As you make your way through the achievements, you’ll unlock more maps, and that gives rise to more possibilities. Each map after the first comes with a couple of relics; they’re pretty far away from your initial position, so it will take a few runs until you’re strong enough to be able to reach them, but each relic opens up a whole new mechanism. Some of the mechanisms are cosmetic (e.g. one that lets you select the music), but some are more significant.

One relatively early relic shows you the weapon evolutions. It’ll show you the full recipe for evolutions for weapons that you’ve already evolved; for other weapons, it shows question marks in part of the recipe. That way you at least know that the weapon can be evolved (because not all of them can be), and how many items you need to evolve it. (Usually a weapon evolution requires one weapon and one accessory, but some are more complex.)

This gives you a nudge towards one way to expand your knowledge: to try to discover all of the weapon evolutions. So I’d have a list in my head of all of the accessories that I knew about that I hadn’t yet linked to any evolution, and every time I got a new weapon, I’d try it out will all of those accessories. And this turned out to be surprisingly satisfying: there was a period in the middle of my time with the game where this was on the edge of getting a bit much and I was wondering if everything really would match up; but as I got further down the checklist of unlocking all the weapons, I’d start putting more and more of the evolutions together, and it all tied up nicely in a bow at the end.

Another important relic unlocks the arcana mechanism. Arcana are cards that you draw, one at the start of the level, one at about 10 minutes in, and one at about 20 minutes in, affecting your gameplay in significant ways, of a quite different flavor than the accessories do. Often, they apply to a specific set of weapons, giving them extra powers (e.g. their bullets might bounce multiple times); sometimes they cause your attributes to change significantly on a timed basis; one of the arcana gives a whole new damage mechanism, keyed off of both specific weapons and off of one of your attributes. So these open up further options for build customization and create new sets of synergies.

 

I’ve been playing Kittens Game again recently, and actually it ends up having a fair amount in common with Vampire Survivors. The basic mechanics are completely different: one’s an action game, one’s a clicker. But in both cases, those mechanics are relatively superficial: they’re pleasant enough, they give you something for your fingers to do, but they become routine pretty quickly.

But, in both cases, those basic mechanics change in significant ways. And what I enjoy and find interesting about those games is how that possibility space of mechanical behavior plays out: the experience of exploring it and coming to sense with it.

And I think that both of those games do a particularly good job at progressively unfolding that possibility space. They don’t dump all of the possibilities on you at once, but at any given time they’re showing you enough to give you short term goals while also giving you an idea about possibilities that are unattainable in the short term but give you something to work towards in the medium term. And occasionally, as you make progress on those medium term goals, the game will expand the possibility space in surprising and significant ways: you didn’t know it, but you were only getting started, there’s more richness to explore.

pentiment

April 22nd, 2023

(If you’re super sensitive to spoilers, there are some mechanical spoilers in this post. Nothing you won’t hear in many podcasts discussing the game, but I figured I should warn people just in case.)

Pentiment is an unusual game. Which is, I suppose, obvious: it’s a game about life and murder in a small medieval town and its attached monastery; this would be unusual enough even as an indie game, but the studio that has made it is one that normally makes significantly larger games, and the studio is now owned by Microsoft!

But Pentiment is unusual in a more fundamental way as well. It’s a mystery game; so you’d expect to be wandering around town, talking to people, and uncovering clues, with the goal of building an airtight case during the trial. And there will probably be surprises that will happen during all of these phases, so be prepared for that.

And you do indeed spend time wandering around town, talking to people, and uncovering clues during Pentiment. It’s focused a little more on the people as individuals and as members of a community than on the people as givers of clues, but still: the bones of a detective game seem like they’re there.

 

The first sign that there’s something unusual going on in this aspect of the game is that the game doesn’t give you time to investigate all of those leads. This is the opposite of games like Phoenix Wright, where the game won’t let you progress unless you’ve found every clue.

And, as you poke at those clues, the differences only increase. Maybe you think that one person probably actually did the stabbing, but they were goaded to it by another person. Maybe you learn about people who are suspicious and whom you potentially dislike quite a bit, who have definitely done bad things and who might have a motive for this killing, but you’re having a hard time linking them directly.

Then you have to make a decision as to whom to accuse of the murder. You probably won’t be ready for it; you probably won’t be comfortable with how you made your choice, even if you are ready for it. The case you present isn’t about solving a puzzle: it’s about constructing a story that you’re least unhappy about, given the options.

Now that I type that out, in many ways that’s not dissimilar to our current court system, at least some of the time? Detectives have too many cases to investigate and not enough time; prosecutors make decisions in part on what feels right to them narratively, whether or not that is the best fit to concrete facts on the ground; and they’re trying to construct a story that twelve jurors find believable. I’m sure that, much of the time, prosecutors’ cases are more solid than the cases you come up with in Pentiment; but I’m also sure that, much of the time, they’re quite a bit less solid.

 

So: an unusual detective game, to the extent that it’s not actually clear to me that it fits within the genre. Maybe Pentiment is better classified simply as a visual novel? You do spend a lot of time talking to people: learning about their lives, learning about the forces that are in play (between the town and the monastery, between different groups in the town, etc.), learning about medieval Europe. It turns out that people in medieval Europe are still people, towns are still towns; I appreciated how the game showed people as people, instead of as medieval caricatures.

And there’s the plot around the protagonist. Some aspects of which I rather liked, other aspects of which I was not so sold on. In Act 2, in particular, the protagonist’s feelings felt odd in a way that I didn’t understand; it got explained eventually, but it left a bad taste in my mouth for a while. But I did like the plot in general; quite a bit better than most video game plots, and the way the game displayed the protagonist’s conflicting desires was well done.

And the visual aesthetics were distinctive, generally in a pleasant way. Pentiment leans into the literary nature of the protagonist’s work with the different scripts that are used to show characters speaking; neat idea, though I’m not so sure why they added in constant typos and corrections.

 

Nice to see this kind of experiment, and it was an experiment that I quite enjoyed playing. An unusual topic paired with an unusual mechanical approach, both successful; I’d like to see more of this.

yakuza 4

March 19th, 2023

When playing Yakuza games, I’d started to wonder how they’d keep the series going both from a narrative point of view and a mechanical point of view. Kiryu was trying to stay out of the Tojo Clan, but something would come up that would threaten the entire clan that only Kiryu could deal with, so he’d get pulled back in, and that would be the hook for another game; was the series really going to keep up those crises for game after game?

With Yakuza 4, they’re giving one potential answer: you start off controlling a character who is new to the series, rather than Kiryu, and in fact spend a while with that character. You’re still in Kamurocho (which I fully approve of, to be clear), but the character you’re playing isn’t even a Yakuza member.

He does have interactions with Yakuza members, to be sure; and, soon enough, one thread of interactions with them gets more and more important, getting closer to Tojo clan business. (Current business, but also relating to an event from decades back.)

And then we change point of view characters, to somebody else with a different perspective on that same event and to the current repercussions. The game ends up having four point-of-view characters; you spend significant time with each of them, and then all four end up working together in the last part.

 

And yes, the last of those characters is Kiryu; and yes, what is going on does end up affecting the core of the Tojo Clan. So the game hasn’t given up on all of its narrative formula; but it is at least trying to avoid doing more of the same.

Which is, to some extent, refreshing? It’s ultimately, a problem that series have: when a series does something interesting that grabs you, then there’s pressure to do more of the same. But it’s hard to keep things fresh as the series progresses; and games can get mechanically stale and/or write themselves into narrative corners by doing that. (And this problem isn’t unique to games, books also have a habit of going stale as sales successes lead to series getting extended.)

 

So the upshot is: I enjoyed playing Yakuza 4, and I was glad that it was doing something different. But it also didn’t have the same spark earlier games in the series had; yay for not retreading the same narrative ground, doing that wouldn’t have been any better, but making a different choice doesn’t mean that the series will be able to recapture the magic.

Also, the game was really weirdly balanced; on normal difficulty, I found the normal enemy encounters even more boring than normal in this series, but I found the boss battles frustratingly difficult for the first half of the game; eventually I got enough better that the boss battles were just somewhat-more-than-normally annoying instead of excessively so, but still, it felt off. Which wouldn’t have been so bad, except for one decision the game made that I do not understand at all: for whatever reason, the game doesn’t let you change the difficulty level without starting your entire playthrough over. (If you lose in a battle enough times, the game will offer to lower the difficulty for you, but then the difficulty level will go right back up after a battle; I’m glad it at least does that, but that’s not nearly enough.)

 

Two games left for me to play in the main franchise; I’m curious how those games will handle their narrative.

choosing a mastodon server

March 12th, 2023

One more thing that I was thinking about when switching away from Twitter: what Mastodon server should I choose? And what are the criteria I should use to make that decision?

 

My first question: do I care about the local timeline of the server in question? Mastodon lets you watch a firehose of all the posts on a given server; if I pick a server that’s targeted enough to my interests, maybe I’d enjoy that.

My answer to whether or not I care is “no”. On Discord servers that I’m on, I generally don’t enjoy the random chatter; Mastodon posts are different from Discord chatter, but still, that kind of thing isn’t something that I’m particularly looking for? Also, if I ever change my mind about this, I can always look at local timelines for a given server through the web interface, or create an account there if I really want to look at it through a client.

 

A related question: do I want to pick a server because it feels like a cool place to have as my address? I do notice when I see gamedev.place or mathstodon.xyz addresses, after all.

The problem with that is that I have multiple fairly strong interests; and I get new interests not that infrequently. So would I want to be on a server associated with video games, or with programming (and, if so, one specifically with agile or with some other aspect of programming), or one reflecting my developing interest in Tai Chi and other internal arts, or one that reflects the fact that I used to be a mathematician, or that I currently live in the Bay Area?

So no: even though I do like those addresses, I don’t want to pick one.

 

What about moderation? Moderation is important, different servers have better or worse moderation policies, and different servers do a better or worse job of interpreting their policies.

Honestly, I don’t really know how to start analyzing this one. I don’t have a well-formed opinion about what’s important to look for, or what policies are subtly important in either good or bad ways. And I’ve heard a few stories about Mastodon moderation that make me nervous about site owners retaliating against people they don’t like, or removing posts that make them uncomfortable even though they’re saying important things.

All of this pushes me towards servers that are large and generic: that feels like a way to have a relatively professional moderation team with relatively standard practices? I’m not saying that there aren’t problems with standard moderation practices, but fortunately I have historically been out of the fire of problems in that area. And figuring out what site would have better policies and practices for enforcing those policies feels like a noticeable amount of work.

 

Finally: do I even want a shared server at all? Maybe I want to run my own server; or, if I’m not up for that, pay somebody else to run that for me.

For me personally, the answer is that a personal server would obviously be better in many ways. The way Mastodon address has a username and a domain is just like the way an email address has a username and a domain; I switched away from using somebody else’s domain for my email and web presence to using my own domain a couple of decades ago, and the reasons why that would be preferable apply just as well to Mastodon as they do to email.

The problem is that, for email, there are a bunch of providers who will run the server for me at a reasonable rate; for Mastodon, the ecosystem isn’t so well developed. I thought about running my own server, but I’m hesitant to do that for a couple of reasons: it’s not clear to me that it would fit within the memory/cpu of the server that’s running this blog and my other random projects, and also the more stuff that I run there, the more exposed I am to security vulnerabilities. (Not that I have any reason to believe Mastodon is particularly insecure, but still: it’s software, vulnerabilities will be discovered.) I could mitigate that by running it on a different server and restricting the access between that server and my main server, but that costs money, and takes time to administer.

ALternatively, I could pay somebody else to run a Mastodon instance for me. When I first heard about that, the numbers I heard made me think that those services cost about $20/month; that would would be fine if it were important to me but it seems like a bit much otherwise for now? Looking at masto.host pricing, though, I could probably do just fine on the $6/month or the $9/month plan, so actually this option is more viable than I thought. (Assuming that I trust masto.host to do a good job of running instances and to stay in business…)

So, honestly, maybe I will go that route. And it also wouldn’t shock me if, in two years or five years or whatever, Google ended up including something compatible with Mastodon within Google Workspace; it seems like something that would be noticeably more efficient to run if you could amortize the work across a ton of different users, after all.

 

At any rate, I decided to make the most boring choice and just sign up for a mastodon.social account. I was already leaning that way and then I discovered that I’d signed up for an account with them back in 2016; I’d completely forgotten about that, but my account was still there, just waiting for me to use it.

So I’ve been active as @davidcarlton@mastodon.social for the last four and a half months; and I’ve been very happy with that choice. Hopefully at some point over the next five years I’ll switch away and have an address that ends in bactrian.org, but this has been fine for now.

crank and the barnacle goose experiment

March 5th, 2023

I saw a bunch of people positively mentioning The Barnacle Goose Experiment on Twitter at the end of last year, so I gave it a try. I ran into a game breaking bug, so I stopped playing while waiting for that bug to be fixed; but playing it did remind me that I like clicker games. And somebody pointed me at Crank while I was waiting, so I gave that a try.

 

And it’s okay? Good enough that I was glad to have played it; there’s the loop that I like, of starting with one resource that requires clicking, then improving and automating the production of it, then being able to produce other resources, and looping through that repeatedly, all the while balancing different kinds of efficiency improvements.

And Crank also has its own bit of special sauce: you’re traveling through space, exploring solar systems and fighting enemies.

Having said that, it’s not great. There weren’t all that many different loops of stuff to do, and I ran out of interesting decisions while I still had a good amount of exploring to do in the star map. And the exploring in the star map isn’t all that interesting: it’s nice as an ingredient of the game, but if it’s the only thing you have to do, it gets boring.

I’m still happy to have played Crank: it was pleasant enough for most of my time with the game, and it didn’t take me all that long to make it through the whole game. And it is a genre that I enjoy, after all, so even a game that doesn’t show me anything unexpected in the genre is still fun.

 

The Barnacle Goose Experiment (which I did finish, once the aforementioned bug was fixed) is quite a bit more unusual. You start off with your base material that you can get via clicking (three of them instead of one of them, this time); and then you create more items by mixing your existing items. So it has a much, much wider range of resources than most clicker games, but also a much, much smaller set of production loops for the individual resources.

Each resource can be made from other resources via recipes (generally multiple recipes), and also many resources automatically produce other resources (I can’t remember if this is a real example or not, but stuff like cats automatically produce hair periodically). And also there are locations that speed up the production of some classes of resources, and there’s a mechanism that lets you speed up the different types of automatic production.

Typing that up, it sounds like a decent amount of loops? But, when I played it, honestly the location mechanism and the speed up mechanism just didn’t matter. I think what’s going on there is that it’s just not the sort of game where you need exponential growth of resources: it’s not like you start off using 10 of a resource to make an item, then 100 of that resource, then 1000 of that resource. Instead, the recipes all take (I think) at most four of any given resource, and by far the common case is that they take one or two of the resources that are part of the recipe, and a recipe typically requires two to four resources in total.

 

So Barnacle Goose is really about the loop of discovering a recipe that leads to a new resource, then trying to find as many recipes as you can that use that new resource, seeing what resources are produced by those recipes, and repeating. There’s other stuff in there (items to wear, music you can play, letters you can read), but that’s the core of it.

Which, unlike Crank, really is a new take on the genre. (Or at least new to me, I don’t claim to have an exhaustive knowledge of the genre!) But, it turns out, I didn’t find this amount of breadth to be as satisfying as having a smaller number of well-designed loops that get your hands dirty with exponential growth. I’m happy to have played it, though, it was pleasant enough and it’s always good to see something new.

 

Ultimately, I think the lesson here is that what I really want is more Kittens Game. So I’ve started it over again from scratch (and I’m trying out the app version instead of the in-browser version); hopefully I’ll manage to avoid having it be a constant tax on my attention for the next year…

(And maybe the other lesson here is that I should try experimenting with one of these games myself? If anybody has a good theme idea for a clicker game, let me know!)

norco

February 20th, 2023

I wish I had more to say about NORCO. I could blame that on me being almost three months behind on my blogging but, honestly, it isn’t that: I just don’t usually have that much to say about games if I can’t find a mechanical hook as an entry point. And, mechanically, NORCO is a standard point-and-click adventure game; they do a solid job of that aspect of the game, but just in a table stakes way. (And, for what it’s worth, in a way that didn’t interfere with enjoying the story, at least for me: there are puzzle aspects here but they’re pretty light.)

So, really, it’s the aesthetics: the visuals, the story, the vibes. The visuals are lo-fi art that’s done quite well. I was going to say that it’s not in a nostalgic pixel art way, but, thinking about it more, I’m honestly not sure: I just didn’t play enough games from the heyday of point-and-click adventures to have a feel for the art style back then, so for all I know NORCO’s art style is actually pretty similar? I dunno; it works for me.

In terms of the story: it’s a story of people that are on the down-and-out side of an economy that’s producing a larger spread between winners and losers, set in a near-future SF context with a magical realism slant. The economic aspects don’t resonate as directly with me as they do with many people, but it’s clearly a story that fits in our times; and I do like SF that comes from an unusual angle.

And it feels like a game that’s unusually well grounded. I’ve never been to Louisiana, so I don’t actually know what areas near New Orleans feel like, how industrial decay plays out there. But the game felt true to me: not just that it’s telling a story of our times, but it’s telling a story of our times in that specific location, of how economic changes would manifest there.

 

So: I’m pretty confident in saying that NORCO is a good game, and I’ll recommend it to anybody who likes narrative games. I just wish I were better at writing about this sort of thing.

(If I really wanted to get better at that, I’d get into a routine of writing about every book I finish, not just every game I finish…)

what i got out of twitter

February 18th, 2023

One problem with being unusually behind on my list of blog posts to write is that, sometimes, events in the world overtake my posts before I actually write them. I normally solve this problem by not writing about events in the world in the first place; but, a few months back (when Elon Musk bought Twitter), I thought it would be useful to write a post saying what I was getting out of Twitter, to help organize my thoughts about whether to go somewhere else and, if so, where that would be. But then he started kicking journalists off the service, and that got me switching my posting to Mastodon; and then he stopped allowing third party clients, and that got me to stop reading Twitter entirely. So here I am, not having even looked at my Twitter timeline for I don’t know how many weeks, and I still haven’t written this post.

But Twitter was a weird / amorphous enough place that maybe that’s still interesting, or at least still useful to me somehow, to think about what I was getting out of that weirdness? I’m not sure, but at any rate, some thoughts on the matter.

 

Some of what I got out of Twitter was keeping track of what friends were up to. Some of those friends are relatively close friends; not many of them, both because I honestly just don’t have very many close friends at all, but also because a fair number of those close friends aren’t / weren’t on Twitter. A decent number of them are people that I met through games blogging a decade and a half ago; and a decent (but smaller) number of them are current or former coworkers. And there are probably a few that don’t fall into any of those categories.

And then there’s the converse of that: Twitter was a space for me to post things that friends of mine might be pleased to see, but that people who aren’t my friends wouldn’t particularly care about. Stuff like vacation pictures, or a mention of something that I liked in a book that I’m reading.

 

Then, moving out a circle: there are people who are involved with an area that I’m interested in but whom I’m not friends with in any sense. (Most of these people have no reason to know that I exist.) The boundaries between this and late 200x game blogger circle are somewhat blurry, some of the games people I follow fit better into this category; and I follow some amount of software developers that fit into this category, too. Typing this up, it’s actually weird that I didn’t end up following many (any?) Tai Chi / Internal Arts people on Twitter; if I were still on Twitter, I’d probably look for them, but Twitter is probably also a medium that just doesn’t fit well with that area of interest.

In a related vein there are the public intellectuals I follow: people who say things that are interesting to learn / think about, but who don’t write in an area that I’ve got a specific interest in. (Other than the area of “politics”, but that’s a pretty generic one: yes, I live in a society.) E.g. some Atlantic columnists fell into this category, or when the war on Ukraine started, I saw a couple of people get retweeted into my timeline who seemed pretty well-informed / informative, so I followed them.

 

The last broad group of people that I followed on Twitter are those who are more on the artistic side. It took me a while to start following visual artists on Twitter, but I finally did maybe four years ago, and doing so was a good choice: I was happy to be regularly seeing art that I liked. And, it turns out, that you don’t have to follow very many visual artists on Twitter to get a large effect in that regard, because they retweet each other All The Freaking Time: you can follow two people whose art you like and see stuff (a decent proportion of which will be to your taste) from like fifty different artists every week.

I also follow some number of podcasters and authors; they fit into this category, too. (They don’t retweet other folks nearly as often as the visual artists do; which is just as well because I don’t need a constant massive stream of podcast / book recommendations!)

And then there’s cute stuff: We Rate Dogs in particular, Buitengebieden is also pretty nice.

 

So that’s the taxonomy of whom I follow on Twitter. Which is also pretty closely related to the question of what I was getting out of Twitter: each of those categories can be thought of as one way to answer to that question.

And the answers were pretty good! People are sometimes cynical about Twitter and the internet in general, and I am in fact one of those people, but honestly: I’m pretty sure that Twitter, overall, was a strong positive for me. (Until it, at least from my point of view, basically fell apart.) But there were definitely ways in which my experience with Twitter wasn’t great.

Broadly speaking: I think Twitter overemphasizes negative feelings, it overemphasizes cultural divisions, and it especially overemphasizes the intersection between those two. (Look at this horrible thing that a member of an outgroup is doing!) It’s not that I want to completely live within a bubble or anything: bad things exist, and sometimes it’s useful for me to learn about bad things that I wasn’t previously aware of. But also: the internet is global, and part of that means that random bad stuff from anywhere in the world (and certainly anywhere in the US) can just show up in my feed. Having compassion for all beings is good, but I don’t actually think it’s healthy to have negative news from all over the country to be put in my face disproportionately?

And I also don’t think it’s healthy for me to see so many negative messages about culture war outgroups. It’s not that I disagree with the messages that are being signaled to me here: if you pick a random culture war flashpoint, you can probably imagine what side I’ll come down on that, and you’ll not only probably be right about what I think, it’ll also probably be the case that my opinion about that is pretty strong, and I’m not actually particularly open to changing it. But I also don’t know what’s being helped by having that feeling be constantly reinforced: I think it would be much healthier to have those feelings be relatively rarely actively reinforced, and for me to find common points of humanity / agreement with people on whom I have strong disagreements on specific issues.

 

It’s not like I seek out that sort of negative content, so how did it show up in my feed? A little bit of it is from the “public intellectual” class that I mentioned above: one danger of people embracing the public intellectual lifestyle is that they sometimes start to opine on all sorts of random stuff, and also that they sometimes start picking fights with other public intellectuals. And I really just do not care about that or like seeing that: if you’ve got something to say yourself, then say that, but the fact that somebody has interesting things to say on a fairly frequent basis does not give me any interest in their random beefs, or in their opinions about some topic of they day that’s outside their area of expertise.

But that’s only a small portion of the problem; by far the largest problem was retweets, especially quote tweets. It’s really easy to see something stupid or bad come across your Twitter timeline, usually with somebody else commenting negatively on it, and to then pass that on; a decent number of people that I follow (including people from most of the classes I mention above) like to pass things like that on. And it was bad, it did not help my experience on Twitter.

 

So that’s what I liked out of Twitter, and also a bit about what I disliked. And it also goes a decent ways towards explaining why I left Twitter when I did. I wasn’t one of the people who left as soon as Musk took over: for a while, I had a “wait and see” attitude, trying to figure out what he’d do and what effect that would have on my experience with the site. But when he banned a bunch of journalists, it started to be clear how the experience would be negative: I couldn’t count on a whole class of people that I was interesting in to actually still be present on Twitter, and also enough other people had had enough at that point that quite a few of my friends and members of subgroups that I was interested in jumped ship to Mastodon at the same time. So Mastodon got better while Twitter got worse, and it was pretty clear to me which side of that divide I would enjoy more; so I stopped posting on Twitter and started posting on Mastodon.

Even after that, though, I was still reading Twitter. But then Musk kicked third party clients off the service, which meant that it was impossible for me to see just the tweets from people that I was actively interested in: instead, if I wanted to keep on reading Twitter, I had to deal with an experience that was very strongly shaped by Twitter’s idea of what I should see. And, as I said above, Twitter promotes a bad and harmful idea of what to see; I have zero desire to see that. (And that’s setting aside the significant more basic usability deficiencies of Twitter’s app compared to apps like Tweetbot.) So I’ve completely stopped reading Twitter: I don’t pull up the app for nostalgia or anything to try to see what’s still there, the idea of doing that doesn’t even come to mind.

 

With Twitter no longer a serious option, though, the next question is where to get the benefits that I listed above? For friend stuff, I can actually imagine a different universe where I started using Facebook for that; but Facebook’s algorithm is as bad as Twitter’s (albeit in different ways), and in particular Facebook actively works against my goal of letting me reliably see what my friends are saying. So it’s a nonstarter.

I can also imagine a world where I spent more time interacting with friends through group text, or other chat-like spaces. And I do exchange text messages regularly with some of my family members, and there is one Discord and one Signal group that I’m part of that fit into that category as well. Maybe I should seek out this kind of thing more? Though one caution for me there is the volume of messages – I’m a member of about ten different Discords, and I have notifications disabled for almost all of them, because informal group spaces sometimes lead to a lot of chattiness, and I just don’t care about chattiness from people that I have no social ties with other than that we’re both a fan of some specific thing.

Fortunately, enough of my friends moved to Mastodon that it does a decent job of checking “ambient friend chatter” checkbox. (Both in terms of chatter I see and that I produce.)

 

Moving out a circle: the specific groups that I’m interested in (games stuff, programming stuff) have also largely decided that moving to Mastodon is a good thing. For more general public intellectual stuff, my experience is more mixed: some of them have moved, some of them haven’t, and some of them do automated cross posting, which isn’t a great reading experience. I can see why people who are explicitly looking for a broader audience would still have Twitter as their primary home; I wish they wouldn’t, but if they’re depending on a general audience for subscriber numbers, then they kind of have to be where that audience is, I guess. And if they like fighting with other people on Twitter, then, honestly, it’s probably healthy for me to not be following them any more! Though there is one specific public intellectual I can think of who did move to Mastodon, and who liked to make fun of random people saying stupid stuff on Twitter but who basically doesn’t do that at all on Mastodon; so the environment here does make a difference.

Really, though: my preferred way of reading what people in this category have to say isn’t through Twitter or Mastodon at all. Sometimes their short thoughts are interesting, but in a lot of cases the main effect of seeing their short stuff is feeling like I’ve got a parasocial relationship with them; that’s not healthy, I’d rather stay away from that. What I mostly want is their more thought-out stuff; and, for that, blogs are a much better format! (And hey, I never stopped writing on my blog, and it’s not like I’ve ever stopped using a feed reader, either. Blogs are good, y’all.) I’ve actually been really happy seeing Substack show up: it’s been nice how Substack has revitalized that kind of writing, and if it helps some people make a living, I’m all for that, too. (Incidentally, Substack blogs do come with RSS feeds, so if you want to read them but don’t want them to show up in your mailbox, you can (usually) do that.)

I do think that Mastodon is currently a little less good for me in terms of discovering new people to read. Mostly I prefer not having quote-retweets, but it can sometimes be useful to see somebody riffing in a positive way off of the posts of somebody else whom I don’t follow. Plain boosts/retweets give some of that, though; probably the real issue here is that just not enough people have moved to Mastodon yet.

 

The last category, of art stuff and cute stuff, is the category that I miss the most. Last time I checked, none of the visual artists I followed on Twitter have made it to Mastodon, which is unfortunate, and my feed is less cheerful as a result. And We Rate Dogs is one of the accounts that I miss the most here. (Buitengebieden made it over, at least.) I think probably the answer there is that I should get back into the habit of checking Instagram, because most of the artists I followed on Twitter also post there? Not my favorite site, though. And I should probably consider subscribing to more of their Patreons, too. Even if I do that, though, I’ll still miss the large volume of retweets that I’d see of other artists’ work; sigh.

 

Anyways: if you’re thinking of making the move to Mastodon, then please consider this a nudge to do so! I like it quite a lot here: there are more than enough people to make it a fairly lively place, and there’s a lot less gratuitous negativity that shows up in my feed. (And, once I moved over, I realized that a huge fraction of the boosts of culture war news articles that I was seeing came from exactly two people that I followed; I ended up unfollowing one of them and turning off boosts from the other one, and that solved that problem quite nicely.) There are definitely friends from Twitter whom I miss; I hope more of you will show up here.

marvel snap

January 29th, 2023

I don’t have a lot to say about Marvel Snap. It’s well done; it’s got an honest monetization strategy, where money gives you cosmetic stuff and unlocks the possibility to earn some cards in the current season. (And that earning is done in a deterministic way, it’s not a random draw.) Or at least that’s the way the monetization strategy worked when I was playing it; with games like that, you can never tell how it will change!

You build a deck to play with (like Magic or Netrunner or Hearthstone), but in Marvel Snap, the deck is only 12 cards, and a game (usually) only lasts 7 rounds and takes maybe five minutes; I appreciate how nice and tight that is. So you build your deck around one or two synergies; and then the randomness in the play comes from drawing, from your opponent, and from the environment.

And it’s fun? I played for a while, coming up with a couple of decks with synergies that I wanted to play with. And there were clearly more synergies available: I couldn’t build a deck that did anything great with destroying cards, but I’m pretty sure that, as I unlocked more cards, a deck built around that would be playable. (And I appreciated the game nudging me to try that out through its challenge system.)

I didn’t keep going, though it’s not hard to imagine an alternate world where I did. I don’t care about the theming (I didn’t mind it, it just didn’t do anything for me), and I didn’t dig deep enough to find combos that really surprised / pleased me, or to feel like I had a great sense of how to respond to randomness. And, if I wanted to go deeper, I’d probably want to spend money to get the paid cards for each season; the amount of money that a season past cost seemed fair (I’ve certainly spent enough money on Netrunner cards), but I wasn’t enjoying the game enough to want to go deeper. Still, the time I spent with it was pleasant enough.

pushing forward

January 22nd, 2023

Ever since I started doing Tai Chi and Nei Gong, I noticed ways in which parts of my body were farther forward than they probably should be; and this keeps on happening to me! So I figured I’d make a list of parts of my body where this has occurred; partly for my amusement, but maybe other people will find that some of these same things are happening to them.

 

My head

When teaching us Wu Ji, my Tai Chi teacher told us to raise the crown of our head; and, when doing that, my head would move back as well. So, at least from the point of view of that exercise, my head was normally too far forward. When thinking about that and watching other people, I noticed that, wow, a lot of people, myself included, really do have our heads hunched forward. (While staring at computer screens, while looking down at phones while walking, but also just in general.) And I also saw a few people who seemed to naturally not have their heads so far forward, and whose necks seemed like they were just going up on their own; those people certainly looked more graceful to me, and their head position felt healthier as well.

It took me a while to retrain my head and neck, though. But, once I started doing the Nei Gong version of Wu Ji more (which has a similar instruction around your head positioning), my head positioning did get better: I have a distinct memory of one time when I was working on relaxing my pelvis while sitting into my Kua, and that set up a stretch along my spine that was actually pretty strong in my neck, and all of a sudden my neck got yanked back a bunch. I won’t swear that my head was in an ideal position after that (in fact I’m pretty sure it wasn’t), but it did improve the situation.

(Since it will come up again, and it’s not a term that non-internal-arts folks are necessarily aware of: your Kua is the crease between your hips and your legs. And Tai Chi and Nei Gong both make a point of having you sink into your Kua when lowering your body, instead of directly using on your knees / thighs / buttocks.)

My shoulders

When I was having back issues, I learned about the Gokhale Method, and it helped a bunch. She talks about your head and neck positioning, but she also notes that the hunch of your head extends down into your shoulders as well, so for many of us, our shoulders and arms are too far forward.

She recommends a specific version of shoulder rolls to retrain your shoulders to hang in a better location; and, after trying that for maybe a couple of weeks, my shoulders really did get retrained to sit further back. Which was pretty neat, I’m not used to having such a simple exercise have such a clear effect so quickly. If you want to try this one out yourself, I gave more details in an earlier blog post.

My knees

Sometimes, when doing Tai Chi or Silk Reeling, my knees (especially my right knee) feels uncomfortable. Which is probably in part a sign that my knees aren’t 100% in great shape; they’re not doing horribly or anything, but they’re a little bit vulnerable to being overstressed.

My Tai Chi teacher talks a lot about knees, and how getting your positioning wrong can lead to knee problems. A big part of what he talks about is the direction in which your knees are pointing (they should generally be pointing in the same direction as your feet, even when you’re turning your torso away from your feet); that took me a bit of time to be aware of, but I thought I was getting reasonably good at it.

But, paying more attention to what was associated with my knee pain: when I was sinking down, I was sometimes sinking forward into my knees. For example, the Silk Reeling set we do has a “knee rotation” exercise, and in that one, I was often leaning into my knee when rotating it. And that was making my knee hurt.

So what I should actually do is sink into my Kua during that exercise and similar movements, keeping my weight squarely over my feet instead of sending it forward into my knees. When I started doing that, my knees felt a lot better.

In some ways, that actually made me feel glad that my knees were a little iffy: it’s not bad enough to be disabling in any way, and it helps me by giving me a warning sign for some kinds of posture problems.

My torso

When I saw myself in videos of my Tai Chi class last year, I noticed that I seemed to be standing kind of high. So I decided to work on going lower; it went fine for a while, but then my right knee started to feel pretty uncomfortable.

That might just be a sign that my body isn’t strong enough to go that low; but as noted above, knee pain can be a sign of posture problems. So I thought about my posture more.

And, when I thought about it, I realized that, when sinking down, I was also angling my torso forward. (In retrospect, my teacher had been warning me about this sometimes.) I think what was going on there was a bit of a subconscious interplay of fears and desires: on the one hand, I wasn’t sure that my legs and knees were up for sinking down low, so part of my brain resisted that idea. But also I wanted to go down low, and another part of my brain measured how low I was by how low my head was. So that meant that, when lowering myself, I’d subcounsciously tilt my torso forward: that would get my head low, so I’d feel like I was sinking, but my legs didn’t have to sink as much.

This was, of course, counterproductive: both because I was fooling myself and because, by tilting forward, it would put more pressure on the front of my body, which would in turn make my knees hurt! Once I realized I was doing that, I stopped leaning forward so much and experimented with lowering my legs more using my Kua; and, sure enough, I could go lower without making my knees hurt too much.

Though, even after realizing that, I had to keep on experiment with it. Partly I needed to train myself to be aware of when I was subconsiously leaning forward; but also I needed to be more aware of how the lines of force were transmitting gravity down my legs. It’s a little hard to describe, but it’s possible to move things so those lines of force mostly bypass your knees; when I did that, I could go lower while still feeling stable in my knees.

My eyes

At some point, when meditating, I realized that my eyes were pulled forward: when I relaxed them, they would move physically back in my eye sockets. Not clearly useful behavior even when my eyes are open, though I suspect it affects how my eyes focus. But at any rate it seems pretty pointless when my eyes are closed.

My shoulders, again

A few months back, I went to a Nei Gong workshop, and we spent a significant amount of time on stretching out our arms and shoulders, in a way that focused on the fascia in particular. At the end of that workshop, my shoulders felt more open; and I realized that the natural resting position of my shoulders (at least if I relaxed them) was a bit farther back then it had been! So, while the Gokhale shoulder rolls got my shoulders closer to the right position, there was clearly still room for improvement there.

My head, again

A month or two back, I realized that, if I relax my neck, my head will float up and back and my neck will expand upwards. I like the resulting head positioning, and certainly having an expanded neck is good, so I’m trying to do this whenever I think of it, to retrain my head and neck to the right position.

This raises two questions: how long has it been the case that this will happen if I relax my neck, and (assuming that it hasn’t always been the case), what have I done to cause my neck to react this way? I don’t know what the answer is to the first of those questions; but if it’s a relatively recent development, then maybe the answer to the second is the acupuncture treatments that I’ve been taking (my doctor mentioned my neck as being a problem area when I started acupuncture, and has more recently said that it has loosened up), maybe it’s some of the specific Nei Gong exercises I’ve done over the last few months, maybe it’s both.

Good outcome, at any rate, and one that encourages me to find more ways to relax and open up space in different parts of my body.

My torso, again

I was working recently on getting my liquid center of gravity at the right height while doing the Nei Gong version of Wu Ji. Sometimes it got stuck at around my diaphragm, but I could make it past there by relaxing my muscles. After doing that, it almost made it to the right level, but it usually ended up just a little bit high, more like navel hight rather than Dantian height.

After playing with that a bit, I realized that the very bottom of the front of my torso was tense in a way that seemed related, but it was harder to relax. And, experimenting more, that tenseness came from me leaning slightly too far forward; if I dialed my tilt back, the tenseness went away and the liquid center of gravity went to the right place.

Nice to have that dialed in; I already knew that I wanted to lean forward a little bit to remove tension from my lower back, but I hadn’t previously noticed that subtle tension from leaning forward. The window where I don’t get tension in either direction is actually pretty small, but it’s easy enough to find now that I’m aware of it.

That doesn’t mean that I’ve solved all of the problems I have around tilting in Wu Ji, though: I still have a habit of locking my torso and legs together more than I should, and it also can take me a while to get my weight descending to my Yongquan in a way that feels properly rooted. I can usually get it to feel good eventually, but it takes me a while; maybe I should come back to this post in a couple of months and add a section on my legs…

Final thoughts

Clearly, there’s something going on that makes me stretch my body parts too far forward; and, based on the number of entries here, I expect to continue finding new examples of this over the coming years! I wonder if almost everybody has this problem, or if some people get pulled back too much, or if lots of people are nicely centered.

If I wanted to do armchair psychologizing, I would say something about how this is a sign that I’m not properly rooted in the present, that I spend too much time trying to focus on the future. And maybe that’s even true? I do feel more stable and relaxed when I correct the issues mentioned here; most of that feeling is physical, of course, but I think it has a mental effect as well.