A lot of Tech Giants offer seemingly free services to millions (or even billions) of users. The operational cost for such massive services is definitely not cheap. So, how are they paying the bills? There is a common saying, “if you are not paying, then you are the product”. The companies earn profit from the targeted advertising business. The services track users and collect as much information from the users as possible. This information is then (indirectly) sold in the form of highly targeted advertisements.
Gorm is a popular ORM library in Golang that supports the most commonly used Relational Databases. In this article, I want to talk about a subtle problem in the unique index support for Gorm. For more context, let's first briefly discuss Database Indexes and how Gorm supports them. Feel free to skip the next few sections if you already know about them, or you are not interested.
SQLite is one of the most popular embedded relational database. The SQLite native libraries or language bindings are available for most popular languages. SQLite files can be accessed either interactively or using shell scripts using the command-line utility.
I started using Pocket in 2018, and since then, I became one of the top 5% of there userbase (according to one email I received). But recently, I decided to switch to Instapaper. I had several reasons for making the move that I'll talk about in this post.