Ranking: BM25+

Introduction The BM25+ is a ranking algorithm used to rank text documents based on a relevance score. It is used in search engines to determine which documents are the most relevant given a terms query. The algorithm implemented is based on the Improvements to BM25 and Language Models Examined paper. Implementation An index can be used to index the terms and the documents in which the terms occur: [term: apples] - doc1, doc2, doc3 [term: grapes] - doc2, doc4 When a user queries using the apples term then doc1, doc2 and doc3 is returned....

June 3, 2024 · 3 min · Denis Nutiu

The Linked List

Introduction A linked list is a fundamental data structure which consists of Nodes that are connected to each other. Other variations are: Double linked list Circular linked list (circular buffer) The Singly Linked List To visualize the data structure, if you want to store two integers 10 and 20 you will have a 2 node linked list that will have: [Node 1, Value 10] -> [Node 2, Value: 20] -> [null]...

April 17, 2024 · 5 min · Denis Nutiu

Implementing cat with Kotlin Native

Introduction Hello! 👋 In this article we’ll implement the cat command utility which is used in many Unix like systems like Linux and macOS. To implement it, we’ll use kotlin and to drop the Java Virtual Machine (JVM). We’ll build a binary directly with Kotlin Native. In the end, we’ll get an executable that we can simply run on our Linux or macOS box. What is cat? The catutility which has purpose of concatenating files....

December 24, 2023 · 5 min · Denis Nutiu

Learning Kotlin

Introduction Hello everyone! 👋 The year of 2023 has come closely to an end, and I want to write a short article about my experience with Kotlin and what other programming languages I’ve tried this year. Outside work, I like experimenting with new programming languages and technologies. I don’t usually build side projects in the languages and frameworks that I use full time at work because I don’t find it fun....

December 11, 2023 · 4 min · Denis Nutiu