Image for post
Image for post

Hello, this is a simple post on getting started with CLion and CMake. I am taking a module in school which uses these tools. I thought i would share some findings i discovered along the way as i tried to set up my PC.

(1) CLion

CLion is an IDE for cross-platform development in C++ language. We can think of Clion to be similar to intellij in Java or Webstorm for Javascript programming.

Extra CLion Configurations for Windows

If your computer is on Windows, then you need to perform an additional configuration step on CLion to set up the environment: Cygwin, MinGW, WSL or Microsoft Visual C++…

I have a genuine passion for learning about the history of the place of my ancestors’ origin: China. In my free time, I will engross myself in reading books that enable me to gain a deeper insight of China’s illustrious past - how it tumbled from a celestial empire to a country marred by foreign powers attacks and eventually re-ascend as a modern day smart nation.

However, I do acknowledge that some hard-core history books might be dry especially when one first begins to explore this field…it may feel as if the books are just bombarding one with a ton…

Image for post
Image for post
A splendid view of the Forbidden City from a hill peak in Jing Shan Park, Beijing (Photo taken in 2019 on a slightly hazy summer day).

Written with reference to ReactJS Documentation and various online resources.

(1) Introduction

Big Overview of ReactJS

  • A JavaScript library for building user interfaces.
  • Component based: Each component has its own set of variable values to maintain, otherwise known as states. Smaller components can be composed to form complex UIs. For eg, the Welcome Landing Page forms the big outer component. It could be composed of smaller components such as Search Bar Filter, Page Buttons, Navigation Bar. Each of these components have to display a certain set of values and respond to users’ actions. These are managed by the components’ individual states.
  • Functional…

A Big Overview (not going into the tiny details) of CS4224 — A module taken in NUS.

Image for post
Image for post

** Note that some figures are taken from my school’s lecture notes

The topics covered include:

Data Fragmentation: How to partition the data and decide which database shard should contain which part of the data?

Data Storage: How does databases perform reads and writes? What is the underlying data structure used to store data?

Data Concurrency: Each server might receive more than one transaction concurrently. How do we know what order to perform them? How do we ensure this ordering of transactions is maintained across different replica sites and executed in isolation of one another?

Data Reliability: This section deals…

This article is meant to be a summary post of the original Raft paper published as seen below. However, it will not include the sections on managing cluster membership and log compaction for now (Perhaps future edits to this article will include it).

Some figures below are also taken from my school’s lecture notes.

Link to the Raft Research paper:


  • A consensus algorithm is one that allows a cluster of machines to work together as a coherent group that can survive the failure of some of its members.
  • It is a fundamental general-purpose abstraction used in distributed systems: It…

Felt an urge to write this post so that i can look back and read this post.

Image for post
Image for post
  1. First of all, I need to realise that I am not stupid.
  2. I just need to calm down and have lots more confidence in myself especially when i am faced with a uncertain situation or challenge. I need to change my mindset and mentality. Remember the time in year 1 when my brain decided to shut down during the first programming in lab exam and i scored 15/100 (for my program being able to compile)? The questions were doable but i was so…

CS4225 Summary (Hadoop Related Tools)

Performance Guidelines for Big Data Tools

  • Linear Scalability: More nodes can do more work at the same time. Linear on data size and linear on computer resources.
  • Minimise the amount of I/Os in hard disk and network. Minimum sequential, random IOs
  • Memory working set of each task/worker. Larger memory working set -> High probability of failures.

What is Hadoop?

It is a framework that manages big data storage in a distributed way and processes it parallely.

Components of Hadoop:

  1. Storage Unit of Hadoop
  2. Processing Unit of Hadoop
  3. Resource Management Unit of Hadoop (YARN)

Distributed File System (HDFS) (Storage unit of Hadoop):

HDFS is specially designed for storing huge datasets on commodity machines…

Starting out with CockroachDB….

Image for post
Image for post
A pathway along Wei Ming Lake at Peking University, Beijing. This photo was taken by me on a rare occasion when Beijing experienced snow (literally fell down from the sky).

(1) What does Cockroach DB offer?

A recount of my interview questions…

When will you use NoSQL and SQL?


  • SQL is designed for vertical scaling where we increase the computation power of a single server machine. This means that we are limited in this aspect. If we want to scale horizontally, then it involves much more effort in partitioning, sharding, clustering etc. SQL joins have bad time complexity.
  • On the other hand, with NoSQL, we can simply add one more node as per needed.

Acid Compliance:

  • SQL ensures ACID compliance.
  • NoSQL may compromise on ACID. For eg, lazy writes… follows the BASE consistency model, which means: Basic Availability: This means that while the database guarantees the availability of…

CAP Theorem

  • Consistency: every read receives the most recent write or an error.
  • Availability: every request receives a response that is not an error.
  • Partition tolerance: the system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes
  • CAP theorem implies that in the presence of a network partition, one has to choose between consistency and availability.
  • CAP is frequently misunderstood as if one has to choose to abandon one of the three guarantees at all times. …


This is a repository of my thoughts on my personal life, my random interests & notes taken down as I navigate my way through the tech world!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store