This article is intended to discuss the pros and cons of Kindle Paperwhite 10th Generation based on my research and personal experience after using one for about a month.
Note: In the rest of the article, the term Kindle refers to Kindle Paperwhite (10th gen).
I had been hankering to purchase a Kindle for a really long time and once I graduated university, I decided now is the time. But in the back of my mind, I always had this question, “Do I actually need one?” because during my days at the university I always had preferred printed copies over…
Interacting with people with similar goals like ourselves is a fruitful experience because it is easy to connect with others and we get to learn a lot from those interactions. A few weeks ago, I had the opportunity to join the ScholarX mentoring program as a mentee where I met many young adults with similar aspirations and career goals. Five of us had a very fun yet meaningful conversation with our mentor.
Before diving into my experiences, let me give a brief background.
Parallel programming has become an inevitable skill that all programmers should master. Threads running in parallel typically use shared resources for several reasons such as communication and coordination. Thread synchronization is a technique to avoid race conditions when these shared resources are manipulated concurrently by multiple threads. In this article, we will compare the two approaches to achieve thread synchronization: Lock-based vs Lock-free thread synchronization.
The lock-based synchronization is a historically popular way to avoid race conditions. The idea is simple. The segments of code where shared resources are accessed are identified as critical sections. A critical section is protected…
In the first three articles of the sorting algorithms series, we discussed selection sort, insertion sort, and bubble sort. We also did theoretical performance analysis using amortized time complexities. The following table summarizes their time complexities.
In the first two articles of the sorting algorithms series, we looked at Selection Sort and Insertion Sort. Bubble sort is another simple sorting algorithm that is easy to understand and implement. The idea is to compare the adjacent elements and swap them if they are in incorrect order. Let’s use an example to understand how bubble sort works.
Suppose the array to be sorted is (8, 4, 3, 9, 1), the following diagram illustrates how bubble sort performs several iterations until the array is completely sorted.
In the previous article, we looked at selection sort. Insertion sort is a simple sorting algorithm that is very similar to selection sort. Given an array of elements to be sorted, insertion sort works as follows:
Let us look at…
Selection sort is one of the basic sorting algorithms which is easy to understand and implement. The idea is simple: given an array of elements to be sorted,
For a new user, the Linux environment is not as user-friendly as Windows. It would take some time to become familiar with the terminal and terminal commands. I remember myself struggling to even traverse through the directories and doing a google search for everything.
Here is a list of some basic Linux commands that would be useful for beginners.
A. To Create a File
For example, if we want to create a text file named mytext, then:
B. To Edit a File
After editing the file, use
ctrl + x to save the changes…
Introduction to Cache Memory
Majority of the modern-day computers have three levels of cache memories namely L1, L2, and L3 caches. Often, L1 and L2 caches reside on-chip while L3 cache resides off-chip. These cache memories play an important role in creating the illusion of having a fast main memory. But, why do they have to create such an illusion?
There has always been a significant gap between the performance of the CPU and the main memory, and as a result, the main memory has become a performance bottleneck. The rate at which CPU processes data is much higher than…
A Computer Science Research Student who loves to do Research, Write and Travel