White backgrounds are far too bright

That’s why my browser, phone, and even this site have dark mode on. I’ve had a significant floater issue with my eyes for as long as I can remember. Everywhere I look, it’s like viewing everything through pond water. When looking left or right, the floaters shift in a sloshy manner but eventually return to center. It’s always been difficult to read text since the edges of the letters are blurred, with bright lights also being a challenge. Snowy days, clear skies, beaches, and white paper suck - they just remind me how terrible my vision is. Thankfully, this dark mode trend has helped out quite a bit. It’s much easier to ignore these issues when there’s not so much brightness everywhere.

Floaters

I’ve struggled to use an eReader, like the Kindle, with any long-term success. It turns out there is a better dark mode-enabled eReader on the market, called the Kobo. This device is capable of converting black text to white and the white background to black, while the Kindle inverts the entire screen - including images. The Kindle makes reading in this way much more difficult.

All is not well in the Kobo universe, though. Many books include their own formatting that forces the text to be black or a specific color for emphasis or notes. Text like this won’t convert to dark mode. To fix this, we need to unpack the epub with the Calibre editor and modify the CSS.

epub_example.css

/*  Comment out color formatting for all #000 */

ul.sq li p.bull
{
	margin-top: 0.5em;
	margin-left: 0.5em;
	margin-bottom: 0.5em;
/*  color: #000000; */
}

/* If your reader supports this */
@media (prefers-color-scheme: dark) {
  ul.sq li p.bull,
  ol.number li p.number,
  ul.n-sq li p.bull {
  color: white;
  }
}

Once all the color formatting has been commented out of your CSS file(s), save the epub, transfer it to your Kobo, and turn on dark mode. This should allow all the text to work as expected. With this fix in place, I’m able to read books again without constantly dreaming about ripping my eyes out of their sockets! Yay me!

Dark Mode

I’m so glad I built a calorie tracker

Sitting here, watching my fatness slowly increase, it has become obvious that something needs to change. The problem is that I have a wife who loves to bake. Every opportunity that comes up, there are a few plates of themed cakes or cookies on the table. Given my regularly scheduled extra-curricular activities, I get crazy hungry around dinner time. That’s clearly the worst time to bring out a plate of sweets.

Weight

One night a few weeks back, I smoked up and finished dinner. My wife messaged me, “I’m making an ice cream cake and cut the top of it off to make it even. You want some?” So after finishing that entire third of a freshly baked red velvet cake, I found my hand dug deep into a family-sized bag of pretzels. What’s wrong with me? That’s ridiculous.

So, this is what the plan is now. My calorie tracker is easy to modify and scale. The Remaining Calories section is a running average of my BMR over the last eight days. All that’s needed here is to subtract 500 calories from the daily total (3,500 cals [1 lb.] / 7 days) and go about my life as normal - just a bit hungrier.

Deficit

Add the calorie deficit to my increasingly less painful ability to exercise, and we’ll be back under 155 in no time. One month - tops. I’ll check back in two weeks on progress.

Updates

  • 20250421: It’s been a month and weight / fat is stable. Think I’m trading fat for muscle as I’m much more fit in comparison. I’ll come back in another few weeks with measurements / progress.

Calories

  • 20250515: Jobs done. Back to a more appropriate weight. Bumblebee tuna! 🥳

Weigh In

It’ll be used once and then live in a drawer forever

The sad thing is that the Pixel 9 is a fairly decent phone - if you stripped all the crap off of it. However, like any other consumer device nowadays, I absolutely loathe the Android out-of-box experience. They shove so much crap in your face and default everything to Google software - with no ability to delete the default apps - that it’s almost too much work to get it exactly how you want.

For me, all new Android phones get the GrapheneOS experience - with only the apps I want (link to collection). Google, Apple, Samsung, etc., can take their defaults and shovel it.

If it wasn’t for third party operating systems on Android and open source apps, I’d go back to a flip phone. That’s not just me being angry at the direction consumer tech is going. That’s an honest opinion on devices that just aren’t interesting to me any longer.

Pixel 9

Made some matcha tea

The medicine I’m on is pretty strict. It says “Absolutely no alcohol, caffeine, or fun! Ignore this and you will die from a stroke, heart attack, bleeding from the anus, or all of the above while we live stream it!”

Alcohol is easy. Haven’t touched a drink in many, many years. Coffee, however, is the only reason I’m still employed. If it weren’t for afternoon jolt of energy that sweet nectar produces, I’d be passed out in a pool of my own waste with my fingers still attached to the keyboard. The problem is that coffee started giving me wicked headaches - no doubt a conflict with the medicine.

I’m trying out matcha this week and am determined to make a decent cup. Typically, I’ll just spoon a bit of powdered matcha into a smoothie like a dirty hobo. No motivation to measure or consider how its flavor drastically changes everything it touches. People say green tea is healthy, so the more the better, right?

Apparently all that’s needed is 1 tsp. of matcha powder, sifted for clumps, a small amount of 175° water, and mixed well with a bamboo matcha wisk thing or this cool frothing wand I picked up from Amazon.

This cup turned out real good, so it looks like we have a winner!

Matcha

My kids love minecraft.

We have a home Minecraft server setup that the kids play around with every day after school. The stuff they build in their world is way beyond anything I understand, but I love how they’re creating and learning together. It’s fun to watch how excited they get over the things they make - it feels kinda familiar.

The goal for my office has always been to bathe it in cool light. The old-school arcade atmosphere is very close to my heart, so I’m constantly adding to and tweaking the feel. Since arcades no longer exist, I want my kids to enjoy a similar environment when they visit my office.

This week’s project was to do something about the recessed can lighting that’s sprinkled throughout the ceiling. Now, there’s not a lot that can be done with recessed lighting to make it cool. They’re fairly “in your face” and directional, so coming up with a coolness upgrade was a challenge that had been floating around in the back of my head for quite some time.

In my previous Minecraft Ore post, I mentioned that building anything Minecraft-related was an easy task since everything is square-based. Thankfully, there are a lot of Minecraft things on Thingiverse to download and tweak. After finding a few interesting models, I scaled one of them up to fit around the light on the ceiling, tacked it up with a little double-sided tape, and programmed a Kasa RGB light to match the Tron Light colors.

I was worried about how this would turn out, but it actually looks really cool! As soon as my kids saw it, they begged me to do the same in their bedroom.

This is a “Shroomlight.” There’s also a “Froglight” and a “Sea Lantern” that will print as soon as more filament arrives.

Shroomlight

Another Quick Design Project

Under my TV, there’s a mini-PC that we use to play various games during Family Movie & Video Game Night. These games push the external Radeon RX 7600M XT fairly hard, sometimes causing the fans to spin at maximum speed and generate a lot of noise. I’ve installed some USB fans in the back to improve air circulation, but the eGPU still gets quite hot. The idea here is to elevate it off the surface and allow air to cool the bottom as well. I’ll report back later on whether this helps at all.

Download the stl here: GPU Riser

GPU Riser

Laptop Holder

You wouldn’t know it unless I told you, but there are three laptops hidden in my office desk. Each has its own uniquely designed keyboard, mouse, and screen, making it challenging to switch from one to the next seamlessly. When working on the ThinkPad with its notorious mouse, it’s a struggle to change gears and adapt to the Framework’s trackpad and different-feeling keyboard.

All three laptops can run with their lids closed, essentially functioning as desktop PCs. The downside is they take up valuable desk space, and I’d need a separate mouse, keyboard, and screen to use them. Fortunately, work has provided me with a dock that offers USB-A, HDMI, power, and Ethernet connectivity over USB-C. This allows any of my laptops to connect and be controlled like a desktop. However, even a closed laptop still occupies a significant amount of desk space.

Enter the 3D printer to save the day! Now that I’m feeling up to tackling some projects, I’ve designed a laptop holder that attaches to the side of my desk. This solution allows me to slide the laptop into the holder and work with it as if it’s not even there.

It’s was a quick and simple project, but I dig it.

Laptop Holder

Enthesitis

The last three months have been an incredible physical, mental, and emotional challenge. It felt like a test that continually pushed the limits of what my brain and body could handle. I may have disappeared from the outside world for a while, but that time certainly didn’t go by quickly for me. Things are better now, and I’m sort of able to do normal people stuff again - with some help from a few painkillers.

One early morning in October, just before the sun came up, there was an incredible pain in my chest. It wasn’t the feeling of a heart attack, but instead more of a volcanic burning sensation of lava stuck in my upper body. It took at least an hour to be comfortable enough to try to sleep again, but things just weren’t right after that. For the week following, I was so incredibly tired that it was difficult to hold up my own body weight. In fact, I briefly wrote about it as the previous post on my blog.

Work was interesting, as I was always dizzy and tired while experiencing frequent heart palpitations. I’d sit in a meeting and make it through maybe 10 minutes until my body was nagging me to pass out. My chest was fluttering constantly, and it was difficult to concentrate on what people were saying, much less care about data and analytics. My coworkers and management are awesome, though. They were very supportive of my limitations and pushed me to take time off.

After talking with my doctors and slowly trudging through the week, things had cleared up a bit - that is, until the nightmare began. That morning started like any other. I woke up, made a smoothie, checked my email, showered, got dressed, and drove the kids to school. However, my neck was a bit tight. My neck sometimes gets tight when the room is cold, so it didn’t feel like anything out of the ordinary. It could move slightly, and the pain certainly didn’t keep me from making that short morning drive. A few hours passed, and my neck seemingly got worse and worse. Eventually, I couldn’t move it at all without severe pain. When you visit a hospital, doctors will ask you what your pain level is so they can gauge how much attention and priority you need. The neck pain went from a three to a nine real quick. I tried lying down on the floor to relax and stretch in hopes that keeping it straight would give some relief. However, I had made a huge mistake in not giving myself a way to get up. I tried to move, and the only response from my body was to scream in pure agony. My wife was way on the other side of the house and came running to my office in a panic. “What’s wrong?! Are you okay?!” she exclaimed. “Nothing. I was just trying to sit up.”

The days went on, and nothing made the pain go away. Practically everyone said that my neck needed heat, cold, rest, anti-inflammatory foods, lidocaine patches, and massage. Nothing worked. Not even a little. I tried sleeping on my bean bag chair since it cradles your entire body, but any movement whatsoever woke me up. Sleep was practically non-existent. Life had simply become only pain and sleep deprivation. I would grab sleep whenever possible, with an hour here and 30 minutes there. To this day, I’m convinced that neck pain was one of the worst things imaginable.

Weeks later, my right hip flexor started to feel weird. Suddenly, I couldn’t walk. Flexibility was gone, and now there was pain if my right leg was outstretched. In October, my average resting heart rate went from my normal 55 bpm to an elevated 115 bpm. The doctors say that when your body is in pain, your heart will compensate in a ‘fight or flight’ response. When Halloween rolled around, we took the kids Trick or Treating, but it was a slow trek getting through the neighborhoods. My eyes were focused on my watch throughout, with Garmin frequently alarming me that I was experiencing “an abnormally high heart rate.” The good news is we made it through, and the kids got their candy, so it was all worth it.

Wolvie

The following weeks brought migratory pain. My right leg would feel better, but then my back would have that pain. I’d be unable to get out of bed one week, then unable to pick up things with shoulder pain the next. Thanksgiving was quickly approaching, and my right foot began to swell like Thor’s hammer. The ankle simply disappeared behind a bloated mess of varying colors and severe pain. We had our typical large party on Thanksgiving, but after the guests left, my wife drove me to the emergency room. They gave me oxy for the pain and shoved a 4" needle into my foot to drain and test the inflammation. When I mentioned earlier that my neck was a nine out of 10 pain, well, that was reserved for the foot needle. That was, without question, level 10 pain. The doctors didn’t give me a stick to bite, so instead, my fist nearly went through their wall a few times.

I forgot to mention that my primary doctor was about as useless as my previous one. The first visit resulted in muscle relaxers as she said I probably overworked my neck. That’s possible since I exercise and may have slept wrong, but it was very unlikely. The next visit, she prescribed me more muscle relaxers and gave me a diagnosis of Sciatica. I asked, “How is it that this ‘Sciatica’ is affecting my neck, my right foot, my left and right hip, my back, and shoulders?” She said, “Oh, those are unrelated. Although I’m going to give you an x-ray for your left hip. Here’s more muscle relaxers.” It wasn’t until we went to the ER and called Kaiser’s advice line did they do tests and refer me to a Rheumatologist. Needless to say, I have a new primary and will hopefully never talk to any of these garbage people again.

Through this experience, I talked extensively to AI. It knew way more about what was happening to my body than my doctors did. Not only were the conversations highly educational, but the diagnosis Kaiser eventually came to was exactly what AI was saying months prior.

So now I’m diagnosed with Reactive Arthritis with Enthesitis. If you happen to browse Reddit for those afflicted with ReA, you’ll hear many say that no one understands this level of pain unless you’ve had it. They’re not exaggerating. There has been no worse experience in my life than standing up and having a sharp pain shoot from your foot through to your shoulder, while your body is begging you to collapse and not move at the same time. My wife has watched me scream in agony, cry in desperation, break things in anger, and beg for death in hoping for any sort of relief. Like I said, it’s been a very long holiday season, and I’m not sure when it’ll end.

Enthesitis

On that note, I’ll finish this with a funny story. During the time my primary doctor misdiagnosed and delayed care, I was sleeping maybe two hours a day - 30 minutes at a time. I was smoking quite a bit of weed in hopes of getting some sleep and pain relief. One morning after watching YouTube throughout the night, I’m exhausted and figure a 30-minute nap was possible. I reach for some weed, smoke a bunch, then put my head on the pillow. As soon as I get my body into a position where the pain isn’t awful, I start to drift off. Of course, that’s when my phone vibrates, quickly pulling me back into reality. “Ready to go?” my wife messages. Huh? Oh shit! It’s my kid’s parent-teacher conference today. “Is it 11:00 already?!?” I’m high, haven’t slept in weeks, and also feeling a bit nauseated. This was clearly not going to go well.

I can’t imagine what the teachers thought of me, but I can certainly tell you what was going on in my head: “This chair is ridiculously uncomfortable!” “How long have I been sitting here?” “It’s only been nine minutes?!?” “I’m 100% going to pass out.” “If I lay down on the floor pre-emptively, will that be weird?” “What if I collapse on the floor? Will I wake up with ambulance people staring at me?” “Will the kids at school make fun of my son for having the dad that blacked out and had 911 called on him?” “It’s only been 13 minutes?!” “You don’t need to explain the times table to me, dude. I got it. Let’s move on!” “Oh cool! My wife is paying attention.” “Fuck, this chair is hurting my hip. Why are we sitting in the kid’s chairs?” “Is he staring at me?” “Just nod and smile.” “Not that big.” “Don’t say anything. It’ll come out weird and way off-topic.” “Getting dizzy. Here it comes. Deep breath. Don’t panic.” “Wow. That was close!” “It’s been 18 minutes? Is this a fucking joke?!?”

Things are okay enough that posts will start coming in semi-regularly. Just need to get past the hips, shoulders, neck, right foot, knees, elbows, wrists, fingers, and back pain, then we’ll be golden. Some sleep and headache relief would be nice too.

Rest

Life after cancer has been an incredible challenge. Some weeks are good and others not so much. These last few weeks have been real rough, though.

Everything was going well. I was waking up early every morning to work out, was eating right, getting a decent amount of sleep, then suddenly everything went to crap.

On Saturday, I woke up and felt like my body weighed 3x, the world was spinning, and my head was killing me. We went grocery shopping on Sunday and I barely remember going. People probably thought I was pretending to be a zombie early for Halloween.

When it was time for work, it was difficult to concentrate and focus on any task, but that disconnected feeling would come and go with no real explanation why. When working with data and numbers all day, this condition is “sub-optimal.” I was watching my health metrics go from perfection to WTF real quick, and there was no explanation why.

I’ve been using the Oura Ring to track my overall well-being for years. It gives a nice 0-100 number that provides an idea of how your day is going to be. I usually score in the 90’s and can feel the difference when it dips into the 80’s. It quickly dropped hard into the 30’s and it scared the hell out of me.

30

Turns out that I was dehydrated. This wasn’t apparent until I peed a dark orangish-red. Honestly this came as a shock, because I monitor my maximum fluid intake as to not damage my remaining kidney. My heart rate was now between 80 and 100 while at rest, my blood pressure spiked, my body temperature was now averaging +3° over baseline, I couldn’t sleep, couldn’t eat, my muscles were cramping, and everything felt fuzzy. This is what those on dialysis feel like. It’s an awful feeling that I certainly don’t recommend any of you try - even if it trends on TikTok.

Usually kidney issues happen slowly over time. However, there are rare “acute” cases where immediate attention is needed. At times, my brain was begging me to call the doc and get hooked up to something - fast. “I don’t care what tubes and pipes you gotta inject me with, but it’s gotta be better than this” is all that repeated in my head.

10loss

There is a silver lining to all this. I’ve lost some weight and body fat %, but I’m also slowly starting to recover and feel better every day. My health metric has since increased from 30 to 48 and I’m starting to get some okay sleep and a little appetite.

There is so much I want to get done with personal projects, work projects, and working out. This hit me hard from out of nowhere and caused those plans to be on hold until things are back to normal. I took a few days off from work to chill and focus on recovery. Thankfully I work for an outstanding company and have a great team that is not only sympathetic, but also push me to rest when my stubbornness says otherwise.

I’m not going to be touching a computer much, but I did manage to make an update to the Exercise Timer how-to, and plan on updating the Health Dashboard soon. Lots of really neat updates were made and I’m excited to share them with y’all.

See you soon.

Automate Coupon Clipping

My wife spends a non-negative amount of time scrolling the local grocery store app and “clipping” coupons. That’s lost time that we could be spending together or complaining about how expensive our food has become. So obviously, this was an opportunity to make our lives more efficient and save a bunch of cash with some Python web-scraping.

Numerous projects like this already exist, but they’re all fundamentally reliant on selenium / playwright to get the job done. Since I’ve talked at length about both of those web-scraping tools, it would be unnecessary to cover the details in this post. However, here’s a screenshot to show you how cool and exciting solving problems like this can be.

Automate Coupon Clipping

Discussion here: https://x.com/cmcwain/status/1841953888964116607