Removing bloatware from a Samsung smartphone

I recently bought a Samsung smartphone powered by Android 10 and it came with a lot of useless, pre-installed apps(not surprising, as they did this). Some of them showed ads on lockscreen (Glance), some downloaded and installed “useful” apps without my consent (Galaxy Store), some offered to donate to charity on my behalf in exchange for voluntarily viewing ads, and one offered me to route all URLs I visit through their servers to be logged, mined and sold for “Ultra Data Saving” (Samsung Max).

Animated Visualizations in Python using Matplotlib

Visualizations are a great way to convey insights from data. Animated visualizations are, in suitable cases, more engaging and better at storytelling than their static counterparts. This article is a walk-through of animating cumulative confirmed COVID-19 cases in each country per day. The final result looks something like this: Video Not Supported This animation shows the total number of COVID-19 cases till date from 22nd Jan 2020 to 10th May 2020, showing the top ten countries with confirmed cases.

Who is hijacking my NXDOMAINs

It all began a few days ago when I visited a .in domain that I knew didn’t exist and instead of getting an error page from the browser, as one might expect, I got a blank page. Well, a blank page for me because I was using an ad-blocker(uBlock Origin) otherwise I would have seen a page filled with ads. This behavior would have been easily explained if I was using ISP provided DNS server for resolving queries.

A quick guide for developing KDE Plasma widgets using bash

Long story short, I wanted to develop a KDE Plasma widget for personal use that will display the processor temperature. There are a few ways in which this can be achieved, one option would be to use QtCreator and develop a conventional widget using QML and Plasma Components, or we could develop one using Python or Ruby with PyQt and Ruby-Qt, or use the good ol’ conky. For my current task however, the needed data can be obtained from the sensors utility and it just needs to be shown by the widget.

The Python Argument Unpacking Operator(*)

This note is based on an answer I’ve given to one of my peers on an online course on data science. His question went something along the lines of: What does *point in this snippet points = [Point(*point) for point in points] do? The course has ended and the question-answer community website will soon be wiped clean for the next run of the course, so I thought I could write it down here as a future reference.

Working with Virtual Environment in Python

Learning to use virtual environments in Python is one of the most productive things I’ve learned which has a near-zero learning curve. In fact, learning a few commands will let us install multiple versions of the same library in different projects without any hassle. Virtual environment for Python can be created and managed using the module venv or virtualenv. We will be looking into how to venv as it is a standard library.

Installing Node.js CLIs locally

Many popular JavaScript development tools like angular-cli and expo-cli recommend installing them globally—using the -g or --global option of npm—in their official documentation. Global installation lets you use the tool anywhere in the machine e.g. after installing angular-cli globally, we can use the ng command anywhere in the terminal, for multiple projects. This convenience, however, is not without any costs—npm -g requires sudo i.e. npm must be run as root for performing global installations.