Clean Code, Visual Studio, Windows 11, and a bit more on ebooks

I wanted to add some more notes about the whole Kindle, EPUB, MOBI, etc. thing that I’ve been blogging about in my last few posts. As I mentioned a few posts back, I’ve been working my way through the Clean Code learning path in O’Reilly. Since I’m probably going to lose access to O’Reilly before I’m done with that, I thought I’d buy a copy of the Clean Code book, so I could finish reading it at my leisure, and to have it for later reference. With tech books, I usually like buying a DRM-free ebook directly from the publisher, when possible. In this case, I initially had some trouble finding that, but eventually figured out that it’s purchasable through the InformIT site. I bought the Robert C. Martin Clean Code Collection ebook, which contains both Clean Code and The Clean Coder. I had a discount code, so it was about $40 total.

I copied the EPUB, MOBI, and PDF files for the book to OneDrive. There are a number of ways I can read an ebook on my iPad, if it’s DRM-free and available in multiple formats. For this one, I wound up sending it from OneDrive into my Kindle app, as a MOBI file. That method still doesn’t support EPUBs. And it will copy the file up into my Kindle library, which is nice. I don’t think I’d ever copied anything into the Kindle library that way before, but it worked fine. I also copied the PDF into GoodReader. The code listings in the MOBI version look a little weird, which is a common problem with tech ebooks, so it’s nice to have the PDF handy as an alternative.

Clean Code has some example refactorings that are fairly interesting. They’re all in Java, but I thought it might be interesting to take the original Java code for one of the examples, convert it to C#, get it working, then work through some refactoring that’s similar to what Uncle Bob does in the book/videos. I found some of the code for the examples in GitHub under the Clean Code Kata user account. (I’m not sure if that’s an “official” account for Bob Martin or his organization, but either way, the code is there.)

This idea to convert some of the examples to C# and work through them was prompted in part by a desire to set up a .NET dev environment of some sort on one of my personal machines, and to maybe experiment a bit with some of the more recent .NET stuff, like .NET 6 and VS 2022. I realized that I don’t currently have any dev stuff at all set up on my desktop PC, my MacBook, or my Lenovo laptop. The MacBook is new, so I just haven’t set any dev stuff up yet. The Lenovo was bought in 2020, and I haven’t gotten much use out of it at all. And I’ve been trying to keep the desktop PC free of any heavyweight dev tools, since I just want to keep it clean for personal productivity stuff. After going back and forth on a few possible setups, I decided to install Visual Studio 2022 (Community edition) on my Lenovo laptop. I considered just installing the .NET 6 SDK and Visual Studio Code, which would have been much more lightweight, but I’m used to using the full VS product, and I can’t see a reason not to use it. And the Lenovo is the best place to install it, since I can wipe out that machine entirely and start fresh if things get too messed up. I’ve also recently upgraded that laptop to Windows 11, so this was also an opportunity to (finally) give that a try.

Of course, I’ve had other things to do this weekend too, so I’ve only gotten as far as installing Visual Studio and git, and tweaking some settings. Maybe I’ll actually do some programming next weekend. (Or maybe I’ll get distracted by something else, and the whole thing will fall by the wayside.)

iOS notification issues and MS Authenticator issues

This is going to be a bit of a gripe post, but there might be some useful stuff in it. Or not. But it’s one of those things where writing it up might help me feel better about it, and might also come in handy later if someone has a similar problem. (Or if I have the same problem again and can’t remember some details.)

So this all started, I think, after I spent some time messing around with the new iOS 15 focus modes. I’d played around with them a bit when iOS 15 first came out, but something made me decide to mess around with them some more. To make a long story short, I tried out the “sleep” focus mode for a day or two, then decided that it wasn’t for me and went back to just using the “do not disturb” mode, scheduled to turn on at 10 PM and off at 5 AM every day.

After that, some of my notifications stopped working. I’m not sure that messing with focus is what broke notifications, but I’ve read up on the issue a bit, and it seems like that’s the most likely culprit. It seems like there’s a bug in iOS 15.2 that messes up notifications in some cases, often after you’ve messed with the focus setup. I’m pretty sure these were all notifications that would fall under the “push” category. So I wasn’t getting notifications on new emails from my Fastmail app, which was annoying but not a big deal. But I also wasn’t getting notifications on MS Authenticator, which is kind of a big problem for me.

I have more than a dozen accounts set up in MS Authenticator, mostly for CSP-related accounts. They all require MFA, so when I log into one of those accounts, it sends a push notification to my phone that I need to approve. And that wasn’t working. There’s a fallback, where I can get a six-digit code from the app and type that into the web browser. That’s what I’d been doing for a few days, but I really wanted to fix that.

I’d seen some advice online about fixing the notification issue by removing any app that wasn’t working, and reinstalling it. That worked for the Fastmail app, so I thought I’d try it for the Authenticator app too. Now, the Authenticator app has an option to back up its configuration to iCloud. And I had that turned on, so I thought I would safely be able to pull it back in after reinstalling the app. Well, it turns out that it’s not that simple. I did manage to pull in the backup, but for most accounts, you have to go back and redo the setup on the account anyway. You’re just pulling in a placeholder from iCloud. That was a pain, but not a huge problem, for accounts where I had my cell phone number set up as a backup. But for some of the oldest accounts, I either don’t have a backup, or I have my work desk phone set as the back up. And I’m working from home and don’t have a way to get to my desk phone. So that’s a problem.

Tomorrow, I’m going to try to find someone else with admin rights who can go in to Azure AD and set my cell phone # as my backup auth method so I can finish the setup on these accounts. I’m a little worried that I may have to bug someone at a fairly high level to do this, which could be a little embarrassing. But hey, we all screw up now and then. And this is more Apple and Microsoft’s fault than mine. (Apple’s fault for screwing up notifications in iOS 15.2, and Microsoft’s for not making it clear that the MS Authenticator iCloud backup isn’t really much of a backup.)

So the lesson here is that, before wiping out MS Authenticator, go into all of your accounts and make sure you have a good phone # and/or email address set under your backup authentication methods.

Once this is all straightened out, I need to write up a good procedure for transferring my MS Authenticator setup from one phone to another. My current iPhone just hit its three-year anniversary, so it’s time for me to start thinking about a new one. Setting up a new iPhone generally isn’t that hard these days, since you can just restore from an iCloud backup and most of your stuff will work. But there’s always some odd bits, like MS Authenticator, that trip you up. Even with all of my accounts set up correctly with backup auth methods, it’ll still take me an hour to get them all done. For each one, I basically need to open a new private browsing window, log in (using the SMS message backup option), then go to my account profile, delete the old MS Auth setup, add a new one, scan the QR code, wait for it to send a test push notification, approve that, and then finish the setup. That can take five minutes per account. I’m wondering if there’s a better way to handle this. Probably not. Most people don’t have Azure AD accounts in a dozen different domains, all requiring MFA, so my situation is not exactly a common use case that MS would have designed for.

Online Learning Resources

I have a bunch of topics I’ve been meaning to blog about this year, and just haven’t had the time to get to too many of them. A lot of my blogging recently has been more “getting stuff off my chest” blogging or “clearing out my head” blogging. But I have a few topics to cover that might be mildly useful to other people. Today’s topic is going to be an overview of online learning resources. I had to write up some notes of this stuff for work recently, since we’re doing a review of the training resources we make available in the IT department. So this post is basically repurposed from an email I sent to my boss.

I get a fair amount of use out of Pluralsight. I have my own subscription, but we also have a department subscription at work. Pluralsight is really good for .NET stuff and other Microsoft-specific programming topics. It does cover topics outside of the Microsoft ecosystem, but not as well. It’s all video training (no books).

We also have a Percipio account at work, and I’ve poked around in it a bit, but haven’t gotten much out of it. There are a lot of books and videos available, and it covers a much wider set of subjects than Pluralsight. There’s probably a lot of useful stuff in there, but it’s not that useful for me. (Percipio seems to be a rebranding of Skillsoft, which I also have access to via my ACM membership.)

I’ve also tried out LinkedIn Learning, which we have access to at work. This platform has a much wider breadth of material than Pluralsight or Percipio, and includes a lot of non-IT oriented stuff. I’m looking at the home page now, and I’m seeing stuff like “Life Mastery: Achieving Happiness and Success”. Basically, a lot of “soft skill” stuff. There’s plenty of content for programmers too though. Like Pluralsight, it’s all video (no books). From what I’ve watched, I’d say that the quality of stuff on this platform is pretty mixed. Some of it is really good, and some of it is more on the level of what you’d get from random YouTube videos. (And LinkedIn Learning is a rebranding of Lynda, which I still (I think) have access to via the Somerset County Library.)

Through my membership in ACM, I have access to the O’Reilly learning platform (formerly Safari), which is, I think, the best one out there for programming topics. They have basically every programming-related book that gets published by any of the major publishers (and some minor ones). It used to be just an ebook platform, but they’ve adding a lot of video content too. And the ACM access used to be to just a subset of the full Safari library, but it’s now the full library, which is awesome. (See previous mention here.)

Outside of paid learning platforms, there’s a lot of free stuff out there now. Microsoft has a lot of stuff at Microsoft Learn and Channel 9. And all of their conferences went virtual (and free) in 2020. Both Build and Ignite had some good content last year. Ignite is already scheduled for March 2-4 this year, and will be free and virtual.

In terms of my own current online learning, I’m trying to finish a course on ASP.NET Core Fundamentals on Pluralsight. I’ve been really busy at work though, and haven’t watched any of it in more than a week. (And yes, I know, I could watch it at night or on the weekend, but I’ve been either tired and/or busy on weeknights and weekends lately too. But that’s a subject for an entirely different blog post.)

managing long-term reminders, take three

Back in November, I had a problem at work, where all of my long-term reminders in Outlook were unexpectedly deleted. The details on that can be found here, with some follow-up here. I’d managed to move all of the tasks to Planner, but I wasn’t really happy with it. At the beginning of this year, I revisited things and decided to delete them from Planner and re-create them in To Do. I still wasn’t 100% happy, but To Do was close enough that it would be workable.

Well, today, I launched To Do and got a message saying “Your account is incompatible with To Do”. Apparently, Microsoft has decided to no longer support using To Do in an environment with on-premises Exchange. Some detail on that can be found here. So I had to print my To Do list to PDF, then re-enter it back into Planner. I’m not real happy about that, and I still don’t really like Planner.

I’d like to switch to Todoist, but that’s now officially on the forbidden list at my company, for some reason. Trello is allowed, but that’s not quite what I’m looking for. Remember The Milk isn’t on either the approved or forbidden lists, so maybe I could try that?

I generally resist combining personal and work stuff into a single account/system, but maybe for this I should consider it. I won’t be storing any proprietary or sensitive data in my reminders system, just basic notes like “renew this SSL cert by this date.” I use Evernote for all of my personal reminders, and that’s probably good enough for the work stuff too, though I’m not really comfortable with the idea. Oh well. I’ve spent too much time on this stuff today, so I should really just stop. Planner is good enough for now, even if I don’t really like it.

 

new Lenovo laptop

The new laptop that I ordered on Sunday showed up today. It’s a Lenovo Flex 5, from Costco. I don’t have much to say about it yet. It’s about what I expected. It seems to be pretty solid, but it’s definitely from Lenovo’s consumer side rather than their business side. It’s got a touchscreen, and it can be folded all the way back so it can be used as a tablet. It didn’t come with a pen, but it appears to support pen input. I don’t know much about Windows 10’s pen support, but I might look into it, just out of curiosity.

The keyboard is okay, but not great. And the layout is sensible, but of course it’s at least slightly different from my other two current laptops (my personal MacBook Air and my work HP laptop), so I’m going to be stumbling on key locations, but that’s life. The camera works, but apparently can’t be used with Windows Hello. (That’s fine. I don’t really need that.) It’s also got a fingerprint reader that I haven’t tried to set up yet.

The laptop didn’t have too much bloatware on it. During setup, Lenovo gives you the option to install a few things that you really don’t need, so I appreciated the opportunity to decline those. I did have to uninstall two separate McAfee products though. I got a few essentials installed on it today (Evernote, 1Password, Firefox, Notepad++, and a few other things). And I got it updated to Windows 10 Pro (from Home). I’ll probably install some dev tools on it tomorrow and/or over the weekend. And maybe Steam too, so I can play some games.

I have a couple of other topics I wanted to blog about too, but they’re totally unrelated to this, so I may write them up separately later or over the weekend.

SharePoint, React, Laptops, and so on

I mentioned a while back that I’m trying to learn about the (relatively) new SharePoint Framework (SPFx), for a project at work. I’ve made some progress with that, but I still have a way to go. I’ve done 5 of the 8 modules in this course from Microsoft. And I’ve watched a couple of Pluralsight videos, one from Sahil Malik and one from Danny Jessee. I’ve been doing that mostly on work time, since it’s specific to a work project.

SPFx relies on a number of related technologies, some of which I know and some of which I don’t. (And the ones I know, I don’t necessarily know that well.) So I decided to start digging into some related stuff, on my own time. I know pretty much nothing about React, and it looked interesting, so I decided to start learning that. I’ve watched one short Pluralsight video, that just gives an overview without getting into specifics. And now I’m working through a four-hour video course that goes into a little more detail. There’s a whole skill path for React on Pluralsight that would take about 40 hours to watch, if you went through it all. (And of course it would be much longer than that, if you actually followed along and worked through projects on your own.)

I got side-tracked off of React at one point when I was watching one of the Pluralsight videos on my old ThinkPad, and the battery suddenly died. I’ve had that laptop since 2011, and it’s starting to show its age. I’d only been watching the video for about 30 minutes, and the battery should have had a full charge when I started. So I started thinking about either replacing the battery on it, or just getting a new laptop. Replacing the battery on that particular model is really easy. And there were a bunch of options for a replacement battery on Amazon (though most of them looked kind of sketchy). But I started thinking about how old the laptop was, and how iffy off-brand replacement batteries can be. And I also started wondering if that laptop was going to be able to handle some the stuff I’m going to want to try out soon, like WSL 2. I’ve been hearing about that for a while, and it’s now been released as part of the Windows 10 2004 update. The old ThinkPad, surprisingly, has been able to keep current with Windows 10 updates so far, up to version 1909. But I have my doubts about whether or not it’s going to be able to deal with 2004. So, reluctantly, I started shopping for a new laptop.

This is a pretty common thing with me: I start trying to learn a new technology, and I get side-tracked shopping for a new laptop, or some new piece of software, or something. Anyway, I spent way too much time on that yesterday. This morning, I finally settled on the Lenovo Flex from Costco, for $750. It’s a bit of a compromise, since I’ll need to upgrade it to Windows 10 Pro, but I can still do that for $40 with my Microsoft company store access, which should still be good for the next week or two. Also, it’s a 2-in-1, which I don’t really need or want, but most Windows laptops seem to be touchscreen 2-in-1 models now, so I’ll give it a try. On the positive side, it’s got 16 GB of RAM, a 512 GB SSD, and an AMD Ryzen 7 CPU. (I haven’t really been keeping up with CPU news lately, but it looks like the AMD Ryzen 7 4700U is pretty good.) So I think it should be able to handle my fairly modest needs. I always feel a little guilty when I spend money on new hardware, but I’m trying to remember that, this year, I’ve spent nothing at all on travel, and I’m not likely to. If I’d gone to WonderCon this year, that would have cost me well over $1000, for hotel and airfare alone.

I was going to remark that I’d made it through a whole post without referencing COVID-19, but the travel comment above kind of does reference our current situation, so I guess that’s not true. COVID-19 definitely did affect my laptop shopping. In normal times, I probably would have gone out to Costco yesterday to see what laptop models they had on display. And I might have taken a trip to Best Buy too. Costco is still open, but I don’t really want to go there unless I have to. And Best Buy of course is still closed. So I settled on a mail-order laptop from Costco. They have a good return policy, if I need it.

SharePoint, Somerville, and so on

A little follow-up on some subjects from yesterday’s post:

I complained a bit yesterday about the “hundreds of files” pulled in on a new “Hello World” SharePoint Framework project. I checked today, and it’s actually more than 50,000 files, totaling up to about 500 MB. Scary. I’ve also been a little worried about all the security warnings issued by npm when scaffolding a SPFx project. Apparently that’s all fine though and I should just ignore them, according to this blog post. I guess none of the stuff that npm is checking is actually ever deployed to SharePoint, so it’s fine.

NJTV News tonight had a segment on restaurant and retail reopenings that spent some time talking about Somerville. I guess we’re likely to go ahead with the plan to close down Main Street to car traffic a few nights a week that I mentioned yesterday. I’ve still got some reservations about that, but nobody asked my opinion. (Yeah, I know, I could start attending town meetings. They’re virtual now, so I don’t even need to leave my couch. I’m still probably not going to do it though.)

One other benefit of having “attended” Microsoft Build this year: They’re letting attendees buy some stuff from the Microsoft company store. They’re only allowing purchases of digital goods, so no discounts on Surface hardware or anything like that. But I did pick up a few things at bargain prices. I got a Windows 10 Pro license for $40, and used it to upgrade my desktop PC from Home to Pro. And I got a one-year extension on my Microsoft 365 Family account for only $20. (That’s usually $100/year. I get the Home Use Program discount, which makes it $70/year. So $20 is really low.) And I got a two-year Xbox Live Gold sub for $50. (That’s usually $10/month or $60/year.)

I don’t know if I’ll actually get much use out of the Xbox Live Gold account. As I mentioned recently, I’ve had the Xbox for a year now, and I barely use it, except as a DVD/Blu-ray player. I’ll have to keep an eye on the Games with Gold stuff and see if they have anything I’m interested in. I really want to start playing video games again, but there’s so much other stuff to do too.

Xbox follow-up

Now that I’ve had my Xbox for a few weeks, I thought I should post a follow-up. I’m mostly using it to play Bejeweled, to be honest. I played Mass Effect for about a half-hour, and haven’t gotten back to it. Ditto for Stardew Valley. I want to get back to both of those, but right now, War and Peace is more of a draw for me. It helps that I can read War and Peace outside, or at work, or on the train. It’s been nice out the last few weekends, so I’ve been sitting outside on Division Street and reading a lot. (Can’t do that with an Xbox.) I’m about 25% of the way through War and Peace.

It’s funny, if you look at a site like How Long To Beat, a lot of modern video games take about as long to complete as it takes to read War and Peace. (According to my Kindle, it’s maybe a 40-50 hour book.) I won’t look down on or argue with anyone who chooses to play the Mass Effect trilogy over reading War and Peace, but I think I’ve turned into more of a War and Peace kind of guy as I’ve gotten older.

And since E3 is done, maybe I should take a moment to review the Xbox news out of that show.

  • Everybody continues to push into subscriptions, including Microsoft, with the new Xbox Game Pass Ultimate, for $15/month. I guess that’s great if you play a ton of games, but it’s definitely not for me.
  • The next gen Xbox looks interesting, and should be out near the end of 2020. Given that I seem to gravitate towards games like Bejeweled and Stardew Valley, that don’t exactly push the current gen hardware, I’m not likely to jump on the next gen bandwagon any time soon.
  • I’m glad to see that the next gen Xbox will continue to support backwards compatibility with older games, from the original Xbox, Xbox 360, and Xbox One. The headline in the linked article says “Microsoft ends Xbox backward compatibility,”  but that’s a little misleading. The article itself says that “Microsoft is winding down new additions to its Xbox backward compatibility catalog,” and “Microsoft is now committing to get every Xbox One game running on Scarlett, alongside games from all four generations of Xbox.” So that should be cool, and a good reason to (eventually) buy a next gen Xbox.

On a somewhat related topic, I enjoyed this article on the “slow death of the strategy guide”. It’s an excerpt from this book, which is currently just $3.82 for the Kindle version, so might be worth picking up. I’ve got strategy guides for a bunch of games, including several that I never got around to playing. Some of them are pretty cool, with lots of art and screenshots. Some people consider using strategy guides as cheating, but I always found that they added to my enjoyment of a game, making it easier for me to keep track of where I was, how the game worked, and whether or not I was on the right track. Generally, they helped me manage the more annoying stuff without getting in the way of the fun stuff. Since most games don’t even come with an instruction manual anymore, I wish more of them had good official (or unofficial) hard-copy strategy guides available. But I guess there’s not much of a market for that anymore.

Hardware in, hardware out

OK, here’s one more Xbox follow-up post (previous). The vertical stand was delivered on Memorial Day. I was kind of surprised about that, since (1) it’s a holiday, and (2) all the streets around my apartment are closed off on Memorial Day for the big bike race. But, somehow, the Amazon delivery guy found somewhere to park, then schlepped a box full of packages down Main Street. He hit my apartment building right as I was about to go out and wander around a little. If he’d shown up five minutes later, I would have missed him. (It’s possible someone would have let him into the building though, since one of my neighbors was hanging out right in front of the building watching the race.) So, again, it would have been more convenient for everyone if Amazon just used the USPS, but it’s fine.

I promised myself several years ago that I wouldn’t bring in any new tech without getting rid of an equivalent amount of old tech. So I took some time today to get rid of a bunch of stuff. There’s a monthly electronics recycling drop-off for my county, in Hillsborough, so I went over there today with a bunch of stuff. I got rid of:

  • an old HP desktop PC (with the drives removed),
  • an old Toshiba HD-DVD player,
  • a very old VCR,
  • my Dad’s old Sony CD changer,
  • my old MacBook (with the drive removed),
  • an old Apple TV,
  • an old Roku box,
  • an old Samsung tablet,
  • and my old Automatic adapter.

So I guess I’m officially giving up on a few things, like ever watching a VHS video tape or an HD-DVD again. I think I really need to purge my CD collection soon too. I have way too many CDs, and they’re not organized really well. Honestly, I have a lot of stuff to purge, but I’ll save that for another post.

Back to the Xbox: After saying that I wasn’t going to sign up for any subscription services, I went ahead and signed up for a year of EA Access. It’s only $30. I will probably go in and turn off recurring billing on it, to force myself to make a decision about it in a year, rather than letting it auto-renew. I downloaded Mass Effect and Bejeweled 3, but that’s it so far.

Honestly, I’ve been playing Bejeweled more than anything else. I think I first played Bejeweled on my Toshiba e310, which would have been in 2002 or thereabouts. (I could be wrong; it might have been on one of my Palm units. Either way, I remember it being grayscale, and playing with a stylus.) It seems kind of silly to use an Xbox One for something that ran fine on a handheld in 2002, but, hey, I like playing it.

I’ve also started playing Stardew Valley. That’s interesting so far, but I’m not convinced it’s as great as a bunch of people seem to think. I may need to give it some time to grow on me.

I’ve also committed myself to reading War and Peace this summer, so that may cut into my video gaming a bit. Either way, I should have more than enough stuff to keep me busy this summer.

More Xbox silliness

OK, here’s another post nobody needs, in my continuing series about unnecessarily buying an Xbox One.

First, on the subject of Amazon’s hapless delivery system: I still don’t have the vertical stand for my Xbox, but Amazon made one more delivery attempt last night. Around 9:15pm, I got a call from a number that Verizon’s Call Filter identified as “possible spam,” so I dismissed it. But a few seconds later, I got a text message from somebody identifying himself as an Amazon delivery driver named Luigi, asking how to get into my building. So I’m guessing the call I rejected was also from him. I texted back, saying that I could let him in, if he was here, but then I got nothing further back, other than a presumably automated message saying that my order couldn’t be delivered. Now I see at least three things wrong with this: (1) having people out delivering packages at 9:15pm on a Saturday night, (2) sharing my cell phone # with random delivery drivers, and (3) said delivery drivers calling and texting me, and then not bothering to wait around for an answer. It’s possible that item 2 isn’t really an issue; they may route the calls/texts through an app that doesn’t actually expose my number to the driver. Still, I don’t recall agreeing to be contacted on my cell # at all for this stuff. (But I’m sure I did at some point. Nobody reads the terms and conditions anymore…)

On to the Xbox itself: I’ve got the thing set up, and I’ve mostly figured out how to use it. (As I’ve sometimes joked in the past, this means that my job is now done, and I can stop using it. This tends to happen to me with consumer electronics. Figuring out the user interface is more fun for me than actually playing games.) I’ve bought just one game: Lumines Live, which is one of the old “backwards compatibility” games, and cost $5. This is definitely not a game that shows off the Xbox One at all, but I was a big fan of the original Lumines game on PSP.  It’s still a fun game, and it was worth $5, I guess.

There are multiple subscription services available on the Xbox that you can sign up for, including XBox Live GoldGame Pass, and EA Access. I don’t really want to sign up for any of them, but I’m starting to waver. In looking around for some cheap games to buy, I thought about maybe buying the original Mass Effect trilogy. Mass Effect 2 and 3 are currently on sale for $6 each via the current Xbox backwards compatibility sale. But Mass Effect 1 isn’t. I think that’s because it’s included with Game Pass, so they don’t sell it separately, maybe? Anyway, only ME 1 is included with Game Pass, but all three are included with EA Access. Also, I can pick up dodgy-looking used copies of ME 1, 2, and 3 from my local GameStop, or from a used game store that’s about a block away from my apartment. That would cost about $5 per game. So I don’t know. This is one of those things where I have too many options and I never manage to make a decision. The backwards compatibility sale ends tomorrow, so if I’m going to buy ME 2 and 3 that way, I should go ahead and do it. I don’t want to sign up for Game Pass or EA Access, because I’ll probably either lose interest in the games or get too busy to do any gaming about a week after I sign up. The smart thing to do would be to sign up for a month of Game Pass, play ME 1 for however long it takes me to get tired of it, then cancel it.

I’m going to start reading War and Peace next week, as part of a Goodreads group read, so I should really just give up on the idea of playing video games. I think that will keep me busy enough. (And the Kindle version was free!)