Bennett Clement

Tinkerer, Explorer

Tools that run my digital life

List of tools that significantly helped make my digital life better. ...

September 8, 2022

Dev Environment Setup

Setting up the tools for your development are just plainly tedious. The problem is aggravated because nobody ever remembers how they do it before. So, in my second time setting up my personal dev environment, I decided to take note of each steps that I take, just in case I need it in the future. ...

March 28, 2022


CockroachDB is a distributed SQL database that provides transactions and guarantees no stale reads and strong consistency model.

November 16, 2021

GDB Notes

A list of GNU Debugger commands

September 20, 2021

Python setup in server

Problem: I have server access but I don’t have root privileges. Pyenv # Install pyenv $ curl | bash # Follow the instruction to modify ~/.bashrc # Install the latest Python from source code $ pyenv install 3.9.7 # Check installed Python versions $ pyenv versions # Switch Python version $ pyenv global 3.9.7 # Check where Python is actually installed $ pyenv prefix /home/admin/.pyenv/versions/3.9.7 Install pip Download pip from an online repository and add the path to your bashrc....

September 6, 2021


Apache Cassandra is a distributed, wide-column store, NoSQL database. Here are some notes on it.

August 28, 2021

Peeking PayNow

PayNow QR is a unified payment across 9 banks in Singapore. It is interesting to peek at what is actually behind the QR code that power our daily payments

July 3, 2021

Kafka Basics

Kafka is a distributed append-only log that has become a de-facto standard for real-time event streaming. Motivation: As software moves from processing static snapshots of state to continuous stream of events, we need a single platform to store and stream events. Usecases: real-time fraud detection, automotive sensors, IoT, microservices etc. Concepts topic-partition-segment relationship in Kafka Topics are a stream of “related” messages / events in Kafka. We can create an unlimited amount of topics....

June 3, 2021

Kelly's Criterion

Kelly’s Criterion Assumption: You know the probability of success $p$. For an investment decision where the probability of success is $p$ If you succeed, the value of your investment increases from 1 to $1 + b$ If you fail (with probability $q = 1-p$), the value of your investment decreases from 1 to $1 - a$ Then the asymptotically optimal fraction of the current bankroll to wager is defined as $$f^* = \frac{p}{a} - \frac{1 - p}{b}$$...

May 29, 2021

Active Learning

Active Learning Active, because it is able to query instances based on past queries/response Overview Problem: Have access to lots of data, but infeasible to annotate everything. Key Assumption: if the algorithm were allowed to choose the data it wants to learn from, it could attain a higher level of accuracy while using a smaller number of training labels. Solution: The algorithm interactively pose queries (choose an instance of unlabelled data) for human to label....

May 24, 2021