Reading List

The most recent articles from a list of feeds I subscribe to.

Fitbit/Google need to do better

Out of nowhere, a couple of weeks ago, without ever installing any firmware update (at least intentionally), my Fitbit Charge 5 started:

  1. reporting incorrect battery numbers, swinging wildly from 40% to 90% to 77% and so on, and,
  2. turning off randomly with the only way to turn it back on being to plug it into a charger.

As a reminder, I bought this thing for $155 off Amazon back in April 2022. At the time, and I can't speak for now, there weren't any service centres present in India. I told myself I'm taking a gamble and I'd be happy if it lasts longer than a year. It has. And yet, I am unhappy.

Reports are coming in about a software update causing issues for a number of Charge 5 users, including even bricking (TechRadar, AndroidCentral). These are from July 2023 — a time where I did not face any such issues, which makes this all the more weird for me that it's happening in January 2024, presumably not as a result of a software update.

A $155 piece of equipment being useless does not inspire confidence and Google's response, and I highly doubt it applies to India, is abysmal (emphasis mine):

"Fitbit, it seems, isn't handling the issue properly for those affected. Those with broken trackers have been left out to dry. Support isn't offering to replace the device, but rather just giving a 35% discount on new hardware assuming the tracker is still under warranty – the device just launched in 2021, but Fitbit does only offer a 1-year warranty from the time of purchase. But, even then, Fitbit should be offering a free resolution to that problem, given the broken device is being caused by an update from Fitbit directly."

https://9to5google.com/2023/07/11/fitbit-charge-5-battery-bricking-update/

Troubleshooting

So far, I have tried:

  1. Restarting the device from the device itself.
  2. Restarting the device using the charging cable (three 1-second taps on the button embedded on the power end of the USB cable)
  3. Changing the watch face
  4. Updating the firmware from 188.58 to 194.91 (the problem was reported on 188.61)

I'm currently in the process of draining the battery, which is a very involved, unforgiving, and annoying task given that the device randomly turns off and has no accurate number on its battery capacity.

Right this moment, as I opened the Fitbit app to look at the firmware version, the device went offline. Perhaps there is something there to look into for Google? Maybe a sync throws the device off?

Anyhow, I managed to get it from a reported 97% to 9% through the course of the night, using the always on display feature. Plug into the charger to turn it on, and the battery is 88%. 🤡 As a battery preserving measure (<10%), the AOD seems to be automatically turned off. Perhaps a good sign that the hardware still has an accurate internal reading on the battery. Using the AOD also helps prevent the device from turning off. I am usually able to bring it back to life by tapping the screen a dozen times.

Let's see when it drains completely and what it does next.

Alternatives

I don't want to purchase a cheap, Chinese fitness band.

I also don't want to necessarily invest in a "smart" watch – something I mentioned before. Who has time to charge a watch every single day? Impossible. This rules out Apple Watch.

Garmin is an option with its vivosmart 5 (₹16,990, ~$205), but it is more expensive than even the newly released Charge 6 (₹14,999, ~$180*). Probably Garmin vivosmart 5 is worth a try if at least the device will last me three or, ideally, more years than that?

  • I also find it ridiculous how this sells for $160 plus sales tax in a very rich country, and $180 in a very poor country like India. Like-for-like, pricing, almost.

I encourage you to get in touch over email by using the following convenience link for any discussion: comment via email.

Name your useEffect functions

The title pretty much sums up the entire post, but I'll drop my two cents anyway:

  • It makes it clear what the purpose of that effect is. This means your colleagues spend less time figuring that out.
  • It's going to force you to only deal with one concern per effect rather than bundling way too many things into one.

As someone who's always reading new code at $DayJob, I have learned and realised over time that these are things that constantly frustrate me. It takes up unnecessary mental space while working through a problem. Of course until now, it didn't click for me at all that this was something you could (or should) do.

I'm going to be investing a little bit of time every time I see this to update the code. Ultimately to make it easier for me, my colleagues, and whoever gets on to these projects in the future to reason about it.

I encourage you to get in touch over email by using the following convenience link for any discussion: comment via email.

Perennial burnout

I chanced upon Garrit's toot today, which led me to Doug Belshaw's newsletter-blog. I do enjoy Doug's blog but fail to keep up for a variety of reasons. A shout-out like Garrit did on his blog helped me find myself to it proper after what's been a while.

If we are talking life/career burnout, I am always in.

Of course I stopped writing as often on this blog, but I am tempted to try and speak openly about something I do struggle with — almost always have, and always will. While I have only landed in the crash and burn scenes a couple of times (so far), I am always very aware that I'm skirting these lines and can tip over very easily.

Today I had a call with my immediate boss to discuss some measures we can put in place so I can deal with work better — away from what feels like a cocktail of depression and burnout presenting in unusual (to me) ways.

What I'm doing now to tackle things.

I have already been taking measures in my individual capacity for a while, but I think it was time to reach out and ask for some more support while I work through this process.

Here are some things I am doing, then:

  • Paired coding sessions. At least once a week, more if possible/required. Fight that isolation of working remote.
  • Changing my work environment frequently. A change of scenery keeps things interesting, I guess. I do have to give up the big screen but I'll take that over this.
  • Picking off shorter tasks from the backlog. This can help me feel more accomplished about my work day and work weeks. Balancing it better with new features.
  • Hobbies. I've been at it for a while. Just more of the same. Invest my time in hobbies that are not coding.
  • Continue to see my therapist. Keeping my emotional burden and general mental health in check so I have space to…live.
  • Talking to friends about it. Call it venting if you will.
  • Finding in-person tech events/meetups to feel a connection with coding as an activity again.

I think that's it. It seems to help a little. The proverbial jury is still out.

How do you handle the almost-burned-out stage? What are some things you would do?

I encourage you to get in touch over email by using the following convenience link for any discussion: comment via email.

A desktop computer

I've made little noise about this subject, but I have. If you do not know, I had been itching to get a gaming computer. Using my family member's laptop to game was inconvenient. Of course, apart from the fact that it barely ran any game I wanted to play because of poor heat management plaguing small form factors.

Over the last two weeks, I put together a full rig: a big monitor I can use for gaming as well as for coding, and a PC that I can offload, well, intensive gaming to.

Here's some thoughts.

Ergonomics!!!

Three exclamation marks, indeed.

Honestly? There's no comparison. I can't go back. I shudder thinking I might have to use just the MacBook on some days — maybe I'm traveling or just out at a café for a change of scenery. Maybe the power's been out too long and I need to rely on just my laptop battery.

How did we convince everyone just a laptop is okay for full-time work?

While I already used a stand/riser for my laptop so the screen was at eye-level, the screen was still tiny at 13.3 inches. Cue squinting and bending forward at times.

New monitor.

A 13″ screen size gave me very little space to manoeuvrer things. I frequently found myself lost and having to create space and take it away based on what I was doing.

VSCode felt like running a car from a few decades ago at least – no real quality-of-life to go with it.

Okay, I'm not a car woman so maybe that reference is not great. But you get it, right?

Now, with a 4k 28″ monitor, font size is great, and there's space to keep multiple things open. No longer do I have to hide the left and right sidebars in my code editor. It just always is like that. Truly a blessing! I'm so happy. The laptop just sits tucked away in the corner, giving me space to keep other things in the main area of the desk. It's no longer incredibly busy and fragile – is this tricky hand movement going to have my laptop in a short fall to the desk surface?!

Oh, the monitor has something called HDRi – intelligent HDR. I don't think it's the "real" thing. But whatever, it wasn't important to me. Both Windows and macOS let me turn on a toggle that puts the monitor in this mode. It looks awful. And to top it off, I lose control of the brightness of the screen when HDR is on. No surprise, us coders mostly do like dark rooms, and this blows right into it. Not good!

I was worried about buying the wrong monitor but this one holds up really well despite falling in "The Bad Zone" here. No return policy, so I'm excessively glad.

ChatGPT.

While someone I recently met on Hinge (as a friend) helped me 90% of the way with putting my config list together, I asked a ton of questions from ChatGPT to get up to date with what's going on in the PC world.

What's M.2? If it's using PCIe 3.0/4.0 underneath for data transfer anyway, why make M.2? What's an M-key M.2 slot and what's an E-key M.2 slot? What do the "CL" numbers in RAM specs mean?

And so on.

It was super helpful. Obviously I still ran everything by my friend, but a lot of these explanations were critical in me not feeling like an idiot for way too long.

Mechanical keyboards.

I understand people like them, but these are not for me.

At the store, I tried red switches and brown switches. Brown felt firmer, nicer… I might even buy one one day for coding. But I have this Magic Keyboard that I recently threw money at, so I'm not tempted to buy anything just for coding anytime soon.

For gaming, I went with red switches at first. They were quiet enough, bit tactile, and required very less force to actuate them. Perfect! Until it came to billing when I asked for the keyboard to be removed. I just didn't like the layout of the keyboard, the shape of the keys, the elevation of the whole thing as it slanted high to low from top to bottom. It just isn't…me. I like a flat keyboard with a reasonable travel and being able to shift my fingers around with the least effort possible. Chiclet keyboards is just where it is for me. Keyboards are very personal, and I'm super glad I didn't buy one. A shout out to Chris and Dani for being a voice of reason.

Windows 11.

I'm not a big Windows user. My "usage" is limited to tweaking a few settings and hitting those sweet, sweet little icons that launch games. That's it!

Windows 11 feels so much different, but remains…Windows. How do you change your username from the Settings app? You can't. You need to open up the Control Panel app that still exists in 2023. Great job, Microsoft!

OneDrive is still forced into your desktop. Sneaky little thing is they hide this icon into the little expandable space for your tray icons that you can open up. By default. Defaults matter and are an indication of what you want to do as a company.

Centered icons didn't feel like home, so I moved to the classic left sided layout. There's "deep" indexing that's now native (or I am late to the scene) to the OS so that's another great thing. No need for Everything.


Well, there you are. Some random thoughts on this whole experience.

I encourage you to get in touch over email by using the following convenience link for any discussion: comment via email.

ESLint as a learning resource

I've been doing some AWS/serverless stuff at work recently. If you've been following me long enough, you know I switched paths about 6 months ago. A couple of hiccups here and there, but it's been going well.

Today, and not for the first time, I picked up some education from an ESLint rule page.

no-await-in-loop tells us how to optimise our code and when not to use parallelisation. It took just two minutes of reading, too.

I love little educational moments like these – especially when they are sandwiched between the start and completion of a task.

I encourage you to get in touch over email by using the following convenience link for any discussion: comment via email.