17 February 2020
The main feed now has two algorithms to choose from: adaptive and chronological. "Chronological" is what you'd expect from any RSS aggregator; "adaptive" is the first version of my custom recommendation algorithm. It uses a similar approach to the track selection algorithm I developed for Lagukan. It's a simple graph heuristic that makes heavy use of Datomic's sample aggregator. Basically it (probabilistically) picks something you already like, then it finds someone else who also likes that (or an RSS feed which contains the item), and then it shows you something else that they like. The algorithm keeps track of how many times you like/dislike things from particular feeds and users, so over time it'll give more weight to good sources. There are also some controls for displaying a good mix between recent and old content, making sure we don't show you the same thing over and over, etc.
So there's a good-enough algorithm in place now; however, Findka simply doesn't have enough users/data to be very effective yet. I started adding a search feature to make it easier for new users to add content they like; so far it supports podcast search (through iTunes). However, as I was pondering about the best way to bootstrap Findka through the not-much-data-yet phase, I was overcome with a Major Epiphany.
I'm going to temporarily remove everything I currently have on Findka.com, and I'm going to replace it with a personalized newsletter. On the landing page, there'll be a search bar that allows you to select content items that you like (it'll support articles, books, videos, music, movies, podcasts and video games). After selecting 3-5 items, you enter your email address. Once per week, I'll send you an email with links to 5-10 things that you might like. There'll be thumbs-up/thumbs-down buttons within the email that will take you to the website so you can rate the items you try. The links will contain an authentication code so we can connect all your ratings together. And while you're on the website, we'll ask you to use the search bar to select another 2 or 3 good content items that you recently discovered.
(This is kind of an extended version of how Gnoosic works.)
The beauty of this is that not only is it dead-simple for users; it means I can compute the recommendations offline rather than online. Read: I can do it manually if needed :). That'll allow me to develop the algorithm gradually, phasing it in as I get more users and data.
I've just posted Firebase Authentication With Clojure, which demonstrates the (front-end portion of the) authentication method I've been using for my projects. Also made some adjustments to Landing Pages (see the changelog).
I used to only read nonfiction. After all, that's more productive right? I've since changed my views on that. I do enjoy reading fiction a lot actually, and I feel like spending 30 minutes per day on it has helped me to stay more focused when I am working. This book helped me start thinking that way (it also got me to finally start exercising regularly). My brother says there are relevant studies on dopamine.