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.

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.

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.