My favorite photo subjects

I’m attempting to pick up my camera more often and take photos of things around me. And I realized, my two favorite subjects to shoot are my pets. I’ve always liked taking photos of them as having a gray cat is the perfect gray card to have around. Having a black dog is not the same, his photos become a bit more tough against bright backgrounds.

Here are photos from today:

Heisenberg outside in the yard
Samson relaxing in the hallway


I’m working on a theme for my blog that will replace this theme because I am looking at making my blog more photo friendly.

Neck pain

In the past few weeks, my neck pain has been more of a mental burden than a physical one. I’m writing this as an exercise in therapy for myself and hopefully to remind myself (and anyone reading this) to sit upright, take breaks, and don’t take your body for granted.

I’ve been thinking about what has caused my neck pain. I sit at my computer for many hours a day, some days even after work, I’m sitting here gaming.

The main cause has been the passiveness about the position that I sit in. Whenever I am on the computer, it has been due to extending my arms too far out and leaning my neck over the keyboard to get closer to the monitor. So, moving the monitor and keyboard+mouse closer to me has helped a lot.

Next, my chair, Kristen helped me find an aeron chair from craigslist about 3 years ago. I’ve had it throughout the pandemic and as my neck pain was becoming more annoying, I never gave it a thought that maybe my chair was incorrectly adjusted. Turns out, it was a combination of my desk being too tall which caused me to lift up my chair even more and eventually not touch the floor with my feet. Dangling feet meant I had to rest them somewhere, what better place than on top of each other on top of the chair’s legs? Well, that meant my whole lower body was stiff and tense the whole time I sat on the computer. This led to fatigue in a short amount of time. So, lowering the chair and desk helped.

Taking account of how long have I been sitting in this position helps, I have gone a couple of hours in a row of just sitting here. Which just sounds bad writing it out. And it’s clearly true, I was fatiguing my whole body.

So, a few things to check:

  • Adjust height of chair, desk, and monitor.
  • Monitor should be eye level, a bit higher so you’re not looking down.
  • Mouse and keyboard should be within arm’s reach comfortable, elbows bent about 90º while resting on the arm rest of the chair.
  • Neck and back are straight, resting against the back of the chair.
  • No headrest needed, this will signal if I’m getting tired looking to rest my head should instead mean I should take a break away from the computer.
  • Feet should touch the ground comfortably.

Using styled-components with next.js

I’ve been trying to learn some typescript and as part of building something with it, I’ve also started using next.js for easier react set up. I ran into an issue where styled-components were not loading in the browser but they were not throwing an error in my editor or the build log. So after some googling, I found a page talking about including the styled-component as a plugin into the next.config.js file. Like so:

module.exports = {
  reactStrictMode: true,
  plugins: [["styled-components", { ssr: true }]],

This seemed to fix the issue for me.

Weekend project progress: routes for Larri

This morning, I started working on a simple weekend project in which the goal is a deployed API server that does one simple thing. The business logic and the API behavior isn’t too important to me because the focus of this project is actually learning more about deployment.

So far though, I’ve been only concentrating on getting a working version of the app locally.

It’s call “Larri Adda” which comes from a song about a bus stop.

The main goal is to get a DigitalOcean server and database working together properly.

What I’ve learned so far is:

  • Routing in Express is extremely flexible, it’s my first time using express.Router which is pretty powerful.
  • When using route parameters (like /user/:id), use {mergeParams: true} within the route file that expects to use route params in order to actually receive them from the parent file.
  • I’m using bits of code generated by Github Copilot which blows me away with how good it is guess what I’m trying to do!

Next on my list is to get MongoDB working with my app and I don’t want to do that today so maybe I’ll do that tomorrow 🤣

Is the Keychron Q1 a GMMK Pro dupe?

So I finished building my GMMK Pro last week (a writeup is in my drafts for that). I got an email from Keychron the same week I got my GMMK Pro shipped. I waited about 6 months after reserving the board to be able to buy the GMMK Pro so timing was a total coincidence, I think. I’ll have more thoughts on the GMMK Pro in its own post but for now, I wanted to mention the new announcement, Keychron’s Q1 board.

So far, Keychron has had great entry level mechanical boards but one of the features they’ve been lacking is the ability to use QMK for custom firmware/key mapping and the ability to buy the barebones board, without keycaps and switches.

Well, that changes with their latest announcement. Unlike most of their boards that they put through Kickstarter, this one will be available on their website some time around the end of July or early August and will start shipping in September.

The reason I’m writing this post is because the feature set for the GMMK Pro and the Q1 look oddly similar, almost like they looked at the GMMK Pro and said “how can we replicate this and make it just a tad less expensive”.

Below I have a comparison of features:

FeatureGMMK ProKeychron Q1
Layout / number of keys75% TKL – 83 keys (ANSI US)TKL – between 83 – 87 keys
Rotary knobYes, comes with all boardsNot at launch, will be added later
Price$170 barebones aluminum case option
Varies between $200-350 for additional options
$140 for base option
$170 for basic kit (keys and switches)
Case materialAluminum, polycarbonate, or brassAluminum only
Wireless / bluetoothNoNo
ANSI/ISO optionYes – not at launchYes – at launch
RGBYes – south facing RGB Yes – south facing RGB
StabilizersPreinstalled GOAT stabsUnknown at launch
Third-party stabs?Yes – but durock v2 take some
work fitting into the plate
Yes – support for both Cherry
and Durock V2
Hot swappableYesYes
QMK / VIA supportNot at launch – planned for mid-2021Yes
ColorwaysBlack and silver (known as white)Unknown but marketing page shows Blue, Gray, Gunmetal
Typing Angle6º – no legsUnknown – no legs

Hopefully this is a helpful list of features you can review and decide for yourself if the Q1 is a dupe or will have its own audience.