CX.MT

I’ve owned the domain MT.CX for 11 years now and as of today, I’m also the proud owner of CX.MT 🎉

I don’t know what I will do with it. In the past, I’ve used MT.CX for my blog, as a url shortener, for hosting random apps I built, etc. I might use the new one for similar purposes or maybe come up with something nice.

Maybe host an app at mt.cx/foo and write about the app at cx.mt/foo. I don’t know. I’ll come up with something. I’m just excited by the fact that I own both the versions of the domain.

CX.MT
MT.CX | CX.MT as illustrated by the artist MT

As soon as I purchased the domain, I wanted to see how many domains could be reversed this way, the name and the TLDs.

For the uninitiated, TLD is the top level domain. It is typically assigned to a country. But, you can also setup your own gTLDs. Google, Microsoft, Oracle, Mohnish, etc, each have their own.

So, I went through the official listing from ICANN here: https://data.iana.org/TLD/tlds-alpha-by-domain.txt

As of today, the total stands at 1479. Since each TLD would be mapped against the remaining 1478 TLDs, we’d end up generating 2,185,962 such domains. Technically, some of them like blog.google & google.blog, com.microsoft & microsoft.com are already taken – including mt.cx & cx.mt 😁

Maybe I should form a club! 🤔 After all, there’re only about 2 million such combinations. Anyway, before I get carried away by my thoughts, thank you, Malta & Christmas Island for giving me access to this unique club!

Et tu, Gmail?

I’ve been getting a lot of spam in my Gmail inbox lately. I know for sure that someone reverse engineered Gmail’s spam detection algorithm as I’ve been getting these spam emails consistently since a while now. Not only they managed to beat their spam detection, they’ve even successfully managed to force Gmail to mark the spammy email as Important.

Let me explain. Take for instance, the following email that I received from Destiny Mastercard®

If you’re into tech and pay close attention to this email, there’re at least 42 things that scream out that this is a spam email.

#1: Jim Destiny is waiting…

Sure, Destiny is my stripper name, but, Jim? Nope, not me.

#40: It’s from a bank and it’s unencrypted. This ain’t 2005. Look at the red broken lock icon.

#41: It’s routed through a domain called storycomparison.com. It seems like it has nothing to do with the brand whatsoever. Sure, you can have domain names specifically meant to be used for routing emails, but this just seems highly unrelated.

#42 Last but not the least, check out the bottom part of the email –

Okay, since I just posted the screenshot, you won’t be able to tell, but the part that says “click here to unsubscribe” is actually an image itself. I extracted the original link to the image and it’s stored on S3. I would’ve shared the original link, but I didn’t want my blog to seem/look spammy. So, here’s another screenshot of the image.

This is the image from the email

Gmail let this spam through to my inbox. This seems like it was sent to a mass mailing list and yet, Gmail missed it. My email was likely included in the BCC. They didn’t include the “unsubscribe” link either. Sure, this was a mass mail and wasn’t technically a marketing email and that’s why Gmail didn’t care. But! It marked it as an important email.

It’s funny how the message here says it’s “Important according to Google magic”

I was having a slow Saturday and the weather has been gloomy. So, naturally, I opened the headers of the email and inspected them along with the source of the email. Of course, the headers all seemed spammy as expected. The email was send out from some random Greece based domain name that wasn’t even real (I ran a WHOIS lookup). But, this was the part that intrigued me from the email source.

IDK why folks who create spam content do this. Is it some sort of a secret signature or are they deliberately trying to be stupid? Now, I’m not saying or suggesting that they should, but what if these idiots used ChatGPT or pretty much any other AI based overlords to generate content that doesn’t look spammy? How would Gmail deal with that? Imagine using AI to beat AI. Hell, if Gmail’s spam detection fails (given that it did for a spammy looking email), would we, average computer geeks, be able to look at an email in the eye and tell that it’s spam? Would you? Could you?! What if they come up with something called SpamGPT™? I’m tellin’ ya, the possibilities are endless.

F’reals though, what is up with these spam emails getting into my inbox. It’s slightly annoying.

Running

Yesterday, I completed my 2nd 5K running race of 2023. It was a road run and it was fun.

Stats from the race yesterday:

Chip time: 41:20
Position: 868 / 1384
Pace: 13:19 / mile
Elevation gain: 15 ft
Avg Power: 124 W

This was my 2nd race of 2023. I ran my first one in January. It was a trail run and it was tough. I was looking at my watch all the time to see how much farther I had to run. Every breath seemed tougher. That’s what I get for not training.

Stats from the Coyote Hills race in January:

Chip time: 53:13
Position: 220 / 289
Pace: 17:10 / mile
Elevation gain: 437 ft
Avg Power: 90 W

The Coyote Hills race was technically my 2nd race. I signed up for another race in Oct 2022, but I couldn’t attend it due to ill health.

I want to see how many miles I can cover this year. So far, I haven’t run much. In fact, I haven’t even trained for any of these races. It’s pretty clear that I need to put in more effort.

How I removed friction when switching between computers – Part 1

Alternate titles

  • Using two computers with a single set of computer peripherals
  • Using a single mouse with two computers
  • Using a keyboard/video/mouse (KVM) setup with two computers
  • Logitech MX Master 3S review

TL;DR – I got the Logitech MX Master 3S mouse with multi-device support and use it with the Keychron K3 Pro, which also has multi-device support.

My setup

I use two computers at home. My personal MacBook Air M1, and my work MacBook Pro M1. I use the Keychron K3 Pro with two Magic Mice (v2), one for each computer. I have one monitor as my main display.

The annoyance

Every time I switch between my computers to use the main display, I have to do the following:

  1. Unplug the monitor cable from my first computer
  2. Turn off my Magic Mouse1 connected to my first computer
  3. Plug the monitor cable to my second computer
  4. Turn on the Magic Mouse2 connected to my second computer
  5. Use a key combo on my keyboard to switch from first computer to second (my keyboard has multi-device support)

While this process doesn’t seem too bad, it’s still annoying and that’s something I wanted to fix.

Friction points

  1. Having 2 mice and switching between them whenever I switch computers
  2. Having to plug/unplug my monitor cable to my computers

I love my Magic Mouse 2. I think it’s a fantastic device. Unfortunately, it doesn’t have multi-device support. In order to fix friction point #1, I needed a new mouse. So I first came up with a list of non-negotiable requirements.

My non-negotiable requirements

  1. Multi-device support
  2. Rechargeable battery
  3. Wireless

After googling for a bit, I found the only mouse that checked off all of my requirements. The Logitech MX Master 3S. I went to BestBuy and picked it up.

So far, I like the mouse. I’m not a fan of using custom software to update hardware (mouse, keyboard etc). But for this one, I did install the Logi Options+ software that helps you configure the mouse. I only did it to customize the ridiculous DPI and set it to 1000. It supports up to 8000. For the monitor I use, 1000 is perfect.

(Left) Keychron K3 Pro, (Right) Logitech MX Master 3S – on the SteelSeries QcK XXL Mouse Pad 67500 (blurred the surface out a little to remove the dust on the pad)

How does the mouse fare against my requirements?

  1. Multi-device support: This is nice. It’s seamless and quick. However, the fact that the device switch button is at the bottom is disappointing. I get why they chose to put that button at the bottom. Device switching is usually the least used on a regular basis compared to other buttons on the mouse. The M720 Triathlon has the device switch keys on the side and I like them that way. I wish the next version of the MX Master brings the button(s) to the side
  2. Rechargeable battery: It has it. Also, you can use the mouse while you charge it. The charging port is on the front side of the mouse, which is obviously a good spot to put it. One of the annoyances with the Magic Mouse is that the charging port is at the bottom of the mouse and you obviously can’t use it while it is charging
  3. Wireless: I’ve noticed that my AirPods connectivity has become horseshit ever since I started using the mouse. My hunch is that there’s bluetooth interference between my AirPods and the mouse. I’m not sure about it, but I’ll definitely look into it further
  4. Bonus: The battery percentage is displayed in the bluetooth device panel on the macOS, which is very nice (wish my K3 Pro showed the battery percentage too)

Cons

  1. I’ve always used the Magic Mouse and it’s quite low on the surface in terms of the form factor. I’m so used to it that I keep knocking my new mouse off, accidentally, every now and then. I’m sure I’ll get used to it though
  2. The Magic Mouse never jitters. The MX Master 3S does sometimes. I don’t know if it is a janky bluetooth connection or something else, but it’s not a good UX. I’ve never had that issue with the Magic Mouse.

Conclusion

If you have a similar use case as mine, the Logitech MX Master 3S is not a bad mouse to pick. Personally, if Apple introduced a mouse that had multi-device support, I’d ditch this one in a heart-beat. Until then, I guess this is not a bad interim solution.

Next up, I want to fix the issue with switching the monitor and power cables. I don’t want to use the standard KVM (keyboard, video, mouse) setup. It just looks fugly. I want something more sleek and minimal. I will write about it when I figure something out, as a part 2 to this post.

PS: I also plan on writing about my desktop setup sometime later 🙂

Rearrange Tabs 3.0.0

Antescript: Rearrange Tabs 3.0.0 is now live on the Chrome Web Store!

Earlier today, I submitted the new rewrite of my Chrome extension, Rearrange Tabs, to the Chrome Web Store. It’s pending review at this point. Personally, I’m very excited about this release. It fixes all the known issues around key combination conflicts and performance.

Originally, I wanted to just upgrade the extension to include the changes around migrating the extension from Manifest v2 to Manifest v3. As I started working on it, I took the opportunity to rewrite the extension and roll it out as 3.0.0. It seemed like a no-brainer.

Why the rewrite?

It’s been a while since I made any changes to the extension. The last time I rolled out an update was on April 26, 2020, v2.1.7. The extension has been stable, albeit with a few performance issues and bugs. So, I wanted to address them all in the same release and just bundled all the fixes in this release.

What’s included?

1. Migration from v2 to v3

Google has been pushing extension developers to upgrade to the latest Manifest v3. Google requires all the Featured extensions on Chrome Web Store to comply with the latest Manifest. The changes were minimal for the extension and the migration guide is very well documented. That helped a lot. Good job, Google!

2. Performance

Over the years, as new features got added, the extension accrued a few performance related issues. I’ve addresses them in this release. I will talk about them in-depth in a separate post. The debugging session was fun 🙂

3. Bug fixes

There were reports of bugs in the extension. I’ve addressed the most annoying and common ones. I hope this makes the users happy and enjoy using the extension. I just hope I didn’t introduce new ones.

4. Deprecating wrap around

The extension supported go around feature since v1. When a user moved a tab to the rightmost or the leftmost position of the browser window, any further movement in that direction would push the tab around to the other side. I’ve deprecated this feature. This seemed nice in the beginning when I introduced this, but I saw myself not really using it. Also, it seemed pointless since you can still use the “Move to front” or “Move to back” functions. The push-around-to-the-other-side just felt unnecessary.

5. New Updated Page

I’ve added a new page that shows up when your extension is upgraded from 2.x.x to 3.0.0 with the necessary info around the changes.

Future

I am planning on redesigning the logo for the extension and come up with a better demo to display on the extension page on the Web Store. The current one looks outdated, which it is. It’s from 2015. It has been the same since I created it. It’s time for an update.

<3

I definitely enjoyed working on this version of the update. Hope you all like the updated version of the extension. If you haven’t tried the extension yet, give it a shot here: Rearrange Tabs 3.0.0

As always, feel free to contribute to the extension here: Rearrange Tabs on GitHub

Your contribution could be a suggestion, feature request, a pull request, or filing a bug – your effort is always appreciated.

Happy New Year 2023

Happy New Year 2023

This blog post’s introduction has been one of the toughest ones I had to write. Over the past 7 days, I think I rewrote it at least 20 times to not make it sound very sad. Finally, I chose to go with this one. Simply put, 2022 has been tough, but I think I made it through just fine.

Having witnessed many lows in 2022, I can’t help but wonder how it would’ve been if things were even worse. I am a firm believer in never giving up. I believe things can and will get worse if you give up or blame your fate instead of working on improving things that are in your control.

Nobody wishes for such a year. You make New Year’s resolutions hoping to better yourself or improve something around you or at the very least, to not make your situation worse. I made resolutions that fit one or more of these categories. What I really experienced was something else. I did end up being resilient. I learned a lot and am grateful to all the individuals that have been there for me during my tough times.

Hence, I’m grateful for the year it was.

Rewind

I don’t have a monthly breakdown of what I did in 2022, like the ones from my previous Happy New Year blog posts, but I have a few stats that I wanted to share on my blog.

Health

I did put on a lot of weight this year and I aim to lose of all of the bulk in a slow, steady, and sustainable way. But, that’s for later. I did try something new this year, Tennis. I enjoy playing tennis.

Travel

I did some light traveling this year. In August, I traveled to Seattle, WA and a few places in Montana. I loved Montana. In October, I went leaf peeping in New Hampshire.

Side projects

I am in the middle of a project at the moment that I’m really excited to share with everyone in Q2 of 2023.

Closing Notes

I read a quote a few days ago that stuck in my mind ever since –

People who say it can’t be done should not interrupt those who are doing it

I always want to be the person doing it and this new year, I don’t plan on changing that. Here’s to hope, faith, optimism, and hard work — Cheers! 🍻

Have a fantastic new year! Happy New Year 2023!

Argentina – World Cup 2022 Champions

Argentina have won the World Cup 2022!

Leo Messi is the greatest footballer ever to set foot on earth.

Leo Messi is the GOAT

Today has been a very exciting day. I don’t know how the entire day went by. I have been cruising through it and I love it.

Lionel Messi has just sealed his status as the Greatest of All Time. Not that he needed a World Cup to prove it, but it’s more for the rest of the world. The debate just ended this morning. He has had a phenomenal tournament and carried Argentina to victory.

This whole tournament has been fantastic. The upsets, the surprises, the entertainment, the heartbreaks, the thrillers, and the drama – this World Cup had everything. And the finals — *chef’s kiss* — what an entertainer! The perfect result.

I want to write so much about Leo, but that’s for another time. For now…

Edit: I wanted to include the following pic since it’s one of my favorite photos of the Argentina NT celebrating their victory

Telegram channel for IAM.MT

Looks like WordPress has a new Jetpack Bot that posts updates to Telegram. This is convenient for people who use Telegram and follow my blog. You can now subscribe to the channel here: https://t.me/iam_mt_blog

IAM.MT to Telegram Updates
IAM.MT to Telegram Updates

If you want to set one up for your own blog, here’s the official setup tutorial from Jetpack: https://jetpack.com/blog/publish-blog-posts-to-your-telegram-channel-automatically-with-jetpackwp-bot/

Happy New Year 2022

Happy New Year 2022, everyone!

2021 had a lot of ups and downs for me. The first six months of the year were great. I was killing it in terms of my resolutions and suddenly, everything went south. Everything I started came to a halt. I tried my best again to restart my efforts ever since and so far, it has been okay-ish. I talked briefly about it here. I plan on fixing it. Here’s an overview of my 2021 –

Overview

Health

2021 has been a polarizing year in terms of health and fitness for me. I have been the fittest and also had to deal with health issues. In terms of fitness, I set many PRs in 2021.

I was at the peak of fitness before I fell sick and had to slow down and eventually end up stopping. The good thing that came out of it is that I know when I need to slow down and what needs to be improved in my training.

Side Projects

2021 was a bit different for me in terms of side projects. I started a few and barely found time to finish them. I finished some, but most of them haven’t had any code commits in a while. I got busy with office work and so I had to delay working on them. I should manage my time better in 2022 and finish working on these projects. I’m very excited and looking forward to publish them.

Travel

I consider myself very lucky to have been able to travel a little in 2021. I traveled to Virginia in July to meet my friends from Master’s. It was a fun trip and was very happy to see my friends. I even got a chance to go on a vacation to Hawaii in December. It was a wonderful experience. I visited the Big Island and stayed at the Waikoloa Village. Learned a lot about Hawaiian culture, history, and how to pronounce the word Ukulele.

Hiking

In April, my sister’s family came to visit us and we did the Round Top, Volcanic and Skyline Trail Loop.

In May, for my birthday, my wife and I went on a 14.2 mile hike at the Coastal Trail, Palomarin Beach. It hike was tough but we both enjoyed it. It was beautiful.

For the July 4th long weekend, we drove to Redding to visit Lassen Volcanic National Park. The hike had amazing views.

Learning

I ventured into new areas of computer science and it turned out to be very interesting. I’ve read a lot of white papers, which I plan on writing about in the future. I have a few drafts around some of the interesting ones that I’ve read. I am planning on sharing my findings and thoughts around those soon.

I also spent time learning Swift and Swift UI while learning iOS development. The projects I mentioned earlier are written in Swift UI for iOS. One of the biggest advantages of Swift UI is that it removes a lot of the boilerplate code that you typically end up writing for common patterns while building UIs for iOS.

New practices

In 2021, I started practicing a few new thing such as mindfulness, daily journaling, etc. These have proved to be very powerful. They’ve had a significant impact on the way I think and behave in general. I feel grateful, thanks to these practices.

I will have a separate post talking about mindfulness and how it has had a positive impact on me.

Resolutions

In 2021, I couldn’t stick with all of my resolutions. I had to abandon a few, but I’m not disappointed by it. I’m happy with the outcome of the effort I put in.

In 2022, I think I might take it easy on my resolutions for a bit. I will wait a little before coming up with new resolutions.

And with that, here’s to a much better year ahead – 2022! Cheers!

Personal Knowledge Management

I have a habit of documenting ideas, thoughts, learnings, etc. Naturally, I tend to try out a lot of note-taking applications in an effort to find the perfect app. Over the years, I’ve used a lot of note-taking apps. Every single time, I saw myself coming back to the default Notes.app that ships with macOS/iOS. It’s simple and always fit my requirement perfectly well. Most features offered by other apps are just feature bloat that I never used.

As I documented information, I learned that this process had a name, Personal Knowledge Management. Before the pandemic started, around late 2019, I started researching and learning more about Personal Knowledge Management and was quickly sold on the idea as it was more or less similar to what I had been doing.

Personal knowledge management (PKM) is a process of collecting information that a person uses to gather, classify, store, search, retrieve and share knowledge in their daily activities and the way in which these processes support work activities.

https://en.wikipedia.org/wiki/Personal_knowledge_management

Personally, for me, PKM has proved to be helpful in capturing ideas and thoughts, organizing, extracting insights and producing better ideas.

After I started practicing PKM, I realized that using the basic Notes.app wasn’t going to cut it. That’s when I discovered the tools for thought, specifically RoamResearch.

Tools for thought

Roam Research Logo

I use RoamResearch for PKM. Roam describes itself as A note-taking tool for networked thought. I love the tool due to its amazing feature set. I initially tried Roam for a month in early 2020 and it blew my mind. I instantly switched my plan from a monthly plan to Believer plan (their version of a long term subscription – 5 years) since I knew I was going to use it on a daily basis. Roam has a feature called “backlinks” and it is an absolute game changer. You can link different pages by using square braces like so [[example]]. Roam also allows you to backlink blocks. You can think of it as a way of linking different bullet points in various sections of the text like so ((example)). Seeing Roam’s success, a lot of other apps copied this functionality and you can now implement your own PKM in one of these alternatives available in the market. There are a few free open source alternatives (clones literally) such as AthensResearch, Logseq, Foam, Obsidian etc.

Zettelkasten

Zettelkasten

There’s an amazing PKM technique called Zettelkasten. It’s a way of managing your thoughts and ideas. I could never completely implement it in the original way, but I do have my own way of doing it. It’s slightly different, yet it yields good results. At a very high level, the idea behind Zettelkasten is that you document your understanding of a concept or a thought and try to create a repository of linked information. Linking these bits of information is the key here. Any new finding or information going into this repository will have to have at least one link with the existing information in some way. More the links, the easier it is to cultivate a brand new idea or thought. If there’s no link, it doesn’t go in. Over time, you’ll see new ideas pop up due to this technique as you discover different pieces of information in your repository linking with other ideas in your repository that you initially didn’t intend to link with. Finding such pattern feels magical. I’ve experienced that a few times and it is mind blowing.

After a while, you’ll see that what you’ve been doing is basically cultivating ideas by gathering information and linking them together.

I’m fascinated by how our brains work and how the tools we use work. It almost seems like humans are prone to building tools that don’t necessarily align with the way our brains work. UX designers have been battling with creating interfaces that make it intuitive to work with. We’ve only been iterating on the existing interfaces.

Typically, human brains take a top-down, depth-first approach to learning. It’s only natural to start thinking about something and when something else related to it pops up, we starting digging into it and the process goes on. In order to really understand a concept, you need to understand the basic concepts that contribute to the parent concept. Learning any related concepts is a bonus. Wikipedia is built on this idea.

When it comes to coming up with ideas, naturally, we take a bottom-up approach. We first come up with individual thoughts and then later link them together to build a cohesive and coherent idea. The tools for thought that I mentioned above facilitate with this sort of thinking by using the backlinks feature. These tools can be used to implement a system to learn, which aligns with the way our brains naturally think.

Let me know if you find any of these tools useful or if you know of any other interesting techniques to document information.

Inversion

A while ago I was reading about mental models and came across this article about Inversion. The following sentence from that article intrigued me –

Avoiding stupidity is easier than seeking brilliance

FS Blog

If you go by the face value of it, it might seem like there isn’t much to it. More often than not, we tend to focus on making sure we improve certain features of a project we are working on. Instead, if we take the following approach, we can get to a safer outcome –

  • Define the problem – what is the outcome that you’re trying to achieve?
  • Invert it – what would guarantee the failure of achieving this outcome?
  • Finally, consider solutions to avoid this failure

This is a great way to start projects and progress through them.

Moving past chaos

The last few months have been chaotic for me. They could’ve been better, but I managed to accidentally introduce confusion, making them chaotic.

I started way too many personal initiatives and ended up finishing none. These weren’t necessarily tech projects, just some personal initiatives around health, managing time, growth, etc. Not all of these initiatives were left unfinished due to my unwillingness to complete them. Some were interrupted by work-related stuff, health-related stuff, unexpected events, etc.

One major area that lacked progress is my blog. It’s funny really, ’cause I have around 30 drafts and none of them are even close to being published.

I just got back from a much needed break and I feel humbly motivated. During the break, I got a chance to calm down, take a step back and look at the whole picture to figure out what the problem is and how to fix it.

I won’t discuss the initiatives here except for the one about fixing my blog. I tried to transform my blog into something that it wasn’t and in hindsight, it’s clear that it was terrible idea. I haven’t paid much attention to it since a while now. I want to add more fresh content to my blog. I’m excited and feel motivated to move past this chaos.

Happy New Year 2021

Last year, when I wrote the “Happy New Year 2020” post, COVID-19 had just begun its course. Very few people in the world were aware of the full glory of the havoc it was about to wreck on the world. Looking back at that post, I just smile at how oblivious I was to what was brewing in December 2019.

2020 was brutal. My heart goes out to all families that have lost family members due to COVID-19, directly or indirectly. There have been a lot of cases where people couldn’t even stay with their families to say final goodbyes to their loved ones. Just thinking about all of it, saddens me.

In 2020, I’ve learned a lot about many things in life such as passion, being grateful, the kind of person I am, etc. On March 11th, when WHO declared the COVID-19 outbreak as a global pandemic, most companies let their employees Work From Home (WFH). Very soon, I got frustrated being cooped up in the house all day.

One afternoon, around mid-May, I received a marketing phone call from my bank. The bank employee asked me how I was doing, to which, I answered – “Not so great”. I said so because I was just frustrated staying home all day. He asked me if I was sick. I said, “No”. He then asked me if I had lost my job. I said, “No”. That was it. Those two questions just changed my perspective of the whole situation. I realized how grateful I was.

2020 in review

  • January: Most of January, I was in India with my Dad. I had a great time in Hyderabad and I am grateful for the trip. Celebrated Sankranthi at home. Also, started growing my hair long
  • February: Watched Super Bowl with friends. Had a lovely Valentine’s day dinner with my wife. Attended Vir Das’s stand up with friends, in San Francisco
  • March: Started WFH
  • April: Washed my hands so much that my skin started peeling off. Learned to make Hakka Noodles
  • May, June: Sindhu made me a homemade cake for my birthday. It was awesome. Played a lot of board games. Sindhu even wrote a post about it here
  • July: Visited my cute little nieces. Decided to improve my health and stay fit. Started running and functional training
  • August, September, October: Comparing the health data from my previous years, these were the months that I had exercised the most. Also, experienced the worst wildfire impact in California. The orange pic below is an actual photo I took with no filter
  • November: Went hiking at Lands End. Moved to a new apartment. Celebrated Diwali
  • December: My sister and her family came to visit and I had a lovely time with my nieces. Celebrated my 5th wedding anniversary

Resolutions

Last year, I didn’t really have any resolutions. However, this year, I’m working on a few resolutions that I will share over the coming few months.

Hope

Everyone is hopeful that the world will be back to normal with the vaccines being out. From what I have read, it looks like the world might return to normalcy by summer. Hopefully, that’s the case.

To all the essential and healthcare workers – Thank you!!

Here’s to a new year filled with hope, good health, happiness, and positivity! Cheers! 🎉

reMarkable 2

I am a big fan of handwritten notes. I write down a lot while reading, brain-storming ideas, working on code, working on side projects etc. Naturally, I end up going over a lot of notebooks. I have some at work and some at home. To give you an idea, at work, it takes me around 1.5-2 months to finish an entire notebook. At home, it is usually around 3-4 months. That’s approximately 8-10 notebooks per year.

My biggest problem is storage. I am not a fan of storing these notes long term, since most of the notes are only useful at the time of my brain-storming. I usually store just the pages with notes I like to hang on to and throw away the notebook. I’ve always hated doing that.

I digitize my handwritten notes every now and then to store them permanently. This system has been working out ok for me so far. I was hoping to improve this process.

reMarkable 2

In order to solve this problem, I got the new reMarkable 2. I pre-ordered it in early March and after a lot of waiting, got it mid-October. After using it for two months, here are my thoughts.

reMarkable 2 and its Marker with eraser

What I like

I primarily use if for reading pdfs (love the highlighting and notes feature) and writing notes. What I like about it is that it has a distraction-free setup. The limited browsing access is something I really like. The display is great and the writing experience is just enjoyable. The sound that the marker makes while writing emulates the feel of writing on paper. The marker’s writing latency is just too good. It almost matches the Apple Pencil 2.

Writing experience on reMarkable 2

Also, the fact that it’s just a linux box open with the SSH interface, makes it more appealing to me.

The handwritten notes to text conversion feature in the reMarkable 2 tablet works well. I do have to make some changes to the final text, but that’s more easier than writing everything down again from the scratch.

What I don’t like

The price point of $399 (+ $49 for the pencil) seems high for what it offers and might not be right for everyone. I wish it was around $199. I do feel the marker is a bit heavy, but, it doesn’t bother me too much.

Its feature set is perfect for my usage and that was exactly what I was looking for.

Final Thoughts

I think the reMarkable 2 is a fantastic device and I like it. But, I don’t think it is meant for everyone. If you are like me who likes to write a ton, then it might for the right device for you. If you don’t care about the writing experience or are not bothered by the distractions an iPad ships with, then getting an iPad might be a better option.

10,000 Active Users

My Google Chrome extension, Rearrange Tabs, hit the major milestone of 10,000 active users! I never expected this to happen and it goes without saying that I am elated.

I started the project so that I could move tabs around in the browser without having to use my mouse and to satiate my obsessive compulsiveness to arrange my tabs in a particular order. I decided to open source the code so that other users would benefit from it and maybe even build something better. To my surprise, I saw users contributing back to the project and adding new features, which was really cool. That’s the beauty of Open Source.

5.5 years later, the extension has now reached 10,000 active users. The fact that so many users actively use it and like it, makes me feel good.

Thanks to all the contributors of the project. Cheers to all of you and the extension’s userbase! 🥳 🎉

PIT Score

Starting a new project and not finishing it can be quite a discouraging experience. If it ends up becoming something you tend to do often, you lose the motivation to pursue new ideas and that can be bad.

How many times have you started a project and felt like you should’ve picked another one? What if you have a technique to figure out which idea/project to pick next? You should pick the one that you’re more inclined towards. But, how do you get clarity around this inclination?

It’s extremely important to have clarity on why you want to work on a project, how interested you are, and which technology you want to use. I’ve come up with a technique that I use myself for getting this clarity. It’s simple really.

PIT Score

PIT stands for Purpose Interest Technology. I consider these three as the key factors that provide clarity on which idea to pick next. I’ve tried this technique with a few ideas/projects now and I’m pleased to inform you that it has worked really well.

Who is it for?

  1. Do you enjoy working on side projects in your spare time?
  2. Do you have a lot of ideas that you want to work on, but never get around to?
  3. Do you have trouble prioritizing your ideas?

If you’ve answered “Yes” to the above questions, this technique is for you. Although, it is not entirely just for people that fall in to this category.

How does it work?

The technique itself is fairly straight forward. You assign a certain inclination value for each of the key factors, for each of your ideas and calculate the PIT score of each idea and sort them by the score. Here’s how it is done.

I’ll be using the following list of ideas to explain and demonstrate the technique:

  1. Learn Machine learning
  2. Build a web UI for a CLI tool
  3. Write a fun new game

Step 0: Define inclination values for each factor and assign scores

Each of the key factors i.e. Purpose, Interest, and Technology, need a pre-defined set of values that denote your inclination towards the corresponding idea.

Even though you can update these later, it will be rare.

For Purpose, your inclination values could be:

  • Personal use
  • Learning new technology
  • Help solve a problem for others

For Interest, your inclination values could be:

  • Very interested
  • Interested
  • May be with some external motivation

For Technology, your inclination values could be:

  • Very familiar
  • Sort-of familiar
  • Unfamiliar

These are some examples that I’ve come up with. They can be customized and changed per your needs.

Assign a score to each of these inclination values. You need to be careful with assigning scores since they make or break this technique. You can set up a scale for yourself and assign a score from that scale. In the current example, I’ve used a scale from 1 to 10.

Some example scores are –

Purpose:

NameScore
Personal use10
Acquire new skill5
Help solve a problem for others1

Interest:

NameScore
Very interested10
Interested7
May be with some external motivation2

Technology:

NameScore
Very familiar9
Sort-of familiar6
Unfamiliar2

These are just values that I’ve come up with. These are extremely subjective. So, you’d have to define these values appropriately, according to you. For instance, the scores you’d assign to “Unfamiliar” technology or “Acquire new skill” purpose, might be completely different from the scores I’d assign myself. As you’ll see, these scores play a crucial role in computing the PIT score.

Step 1: Apply PIT values to your ideas

For each of your idea, populate the Purpose inclination, Interest inclination, and Technology inclination values.

IdeaPurposeInterestTechnology
Learn Machine learningAcquire new skillInterestedSort-of familiar
Build a web UI for a CLI toolHelp solve a problem for othersVery interestedUnfamiliar
Write a fun new gamePersonal useInterestedVery familiar

Step 2: Calculate

This is by far the easiest part. You substitute the scores for each of the values and calculate the PIT score of each of your ideas using the following formula:

PITscore = Pscore + Iscore + Tscore

Here’s how the table would look like –

IdeaP scoreI scoreT scorePIT score
Learn Machine learning57618
Build a web UI for a CLI tool110213
Write a fun new game107926

Step 3: Sort

Sort the ideas by the PIT score in descending order. Voila! Your projects are now sorted by a score that provides clarity on which idea you’re most likely to finish once you start. This is due to the inclination you have towards the project or the idea.

IdeaP scoreI scoreT scorePIT score
Write a fun new game107926
Learn Machine learning57618
Build a web UI for a CLI tool110213

This sorted list provides clarity around the friction you’d face in order to start a project.

Higher the PIT score, lower the friction.

As you have probably noticed, even though the interest level is “Very interested” for the project “Build a web UI for a CLI tool”, the PIT score ended up being pretty low. This is due to the fact that the technology is “Unfamiliar” and the purpose is “Help solve a problem for others”, the scores of which are pretty low in the given example. Just by looking at the original list and assuming that you would want to start with that project would’ve been a mistake. On the other hand, “Write a fun new game” has the highest PIT score, even though the interest level is only “Interested”.

A spreadsheet can be a convenient option to maintain this list and the scores. Bonus, use spreadsheet functions to automate the calculation and sorting process. This is what I currently do. Building a simple web page to handle this would be really easy, but, it had a very low PIT score 😉 and so I avoided it.

Important

In order for this technique to work, you need to be careful while picking the scores for the inclination values.

Extensibility

You can extend this technique to add more factors to your ideas, finer-grained inclination values, and better scoring.

Applying this technique to my personal list of projects surfaced a lot more information about my projects. I was happy with the outcome.

Safe way to calculate the mid in a range

Given a range, calculating the mid is a straight forward process.

mid = (low + high) / 2;

But, there’s a problem with this line. Adding two large positive numbers can result in an overflow, if the sum is more than the max positive number.

One way to fix it is to use the following:

mid = low + ((high - low) / 2);

This’ll prevent the expression from overflowing to a negative value. I’ve read this line in random code so many times and wondered why anyone would want to write it this way instead of the simpler and more straight forward way I mentioned in the beginning of this blog. It wasn’t until I read this lovely blog post that I understood the reason behind it.

North

I got an email this morning, with the subject “North + Google” from North. According to the email, Google had acquired them. A quick Google search about the company pleasantly surprised me that it was Thalmic Labs. I didn’t realize Thalmic Labs changed their name to North.

I still remember getting excited when I received one of their very first few devices back when they launched and were still small. It was called Myo armband. It seemed really promising.

I played around with it for a few days and wrote a tiny application to track hand gestures and control my OS with the gestures. It was fun. Then, I got busy with other things and completely forgot about the product and the company. I knew they had potential.

I am quite happy for them and believe that Google will use North’s resources wisely. For me, personally, reading the email reminded me of how much I enjoy working on fun side projects. I am glad that hasn’t changed one bit even today!