December 26, 2022

Learning how to learn

Learning How to learn by Barbara Oakley has been the most popular course on Coursera and it is free. She has also publish “A mind for Numbers” which is the book version of the course. A user has posted his notes on the course for the curious minded when the NYtimes article landed on Hacker News. Below are the user’s notes in full form. Original notes can be found here. Read more

December 19, 2022

Git Stash: deep dive

git-stash is a powerful subcommand in Git, that stores changes in a hidden place. Staged or unstaged changes or untracked files are stashed in a stash stack and the working directory is reverted to the last commit. It is useful when changes made to a branch is not ready to be commited and there is a need to switch to another branch. error: Your local changes to the following files would be overwritten by checkout: index. Read more

November 25, 2022

Why Am I a Hindu

Why am I a Hindu is written by Shashi Tharoor in which he write about the history of Hinduism and dispel many of the misconceptions of the Hinduism faith. At the same time, as a Hindu, I appreciate the fact that Hinduism professes no false certitudes. Its capacity to express wonder at Creation and simultaneously scepticism about the omniscience of the Creator are unique to Hinduism. Both are captured beautifully in this verse from the 3,500-year-old Rig Veda, the Nasadiya Sukta or Creation Hymn: Read more

November 11, 2022

Comments on the Consultation Paper on proposed amendments to the ICT Act for regulating the use and addressing the abuse and misuse of Social Media In Mauritius

On 14 April 2021, the Information and Communication Technologies Authority launched a Public Consultation on the proposed amendments to the ICT Act for regulating the use and addressing the abuse and misuse of Social Media in Mauritius. The plan was to set up a National Digital Ethics Commitee with an enforcement unit empowered to take down and censor social media posts and a local proxy server to act as an intermediary which will segregate traffic to and from social media sites, decrypt information and, analyse and store data for investigations purposes. Read more

November 7, 2022

Facebook's new tool

TIL about Facebook (or Meta)’s new tool allowing people to check if the former has their contact information such as phone number and email address, even if they have never handed them over, and delete the data. Facebook collects data about non-users via a user’s address book when permission is granted. Data collected are: names, phone numbers and email addresses. These information are processed to: check if the numbers or email addresses belong to users. Read more

October 14, 2022

Judo: History, Theory, Practice

The meaning behind the Kodokan’s motto—“The Most Efficient Application of Strength,” as Jigoro Kano put it—consists of the following. Assume that a person’s strength is measured in some sort of units. An opponent’s strength is ten, yours is seven. If your opponent pushes you with all his might, you won’t be able remain standing, even if you resist with all your might. You’ll either fall or step back. This is opposing strength with strength. Read more

October 13, 2022


TIL about nb which is a command line and local web note-taking, bookmarking, archiving, knowledge base application. It is written in bash and even has a Go implementation.

October 12, 2022

Learning Namespaces: Unsharing is caring

Learning bits from Linux Containers the Hard Way workshop. Linux namespaces are spawned by using either the clone or unshare system calls. unshare command is a Bash wrapper to the unshare system call. $ unshare --help Usage: unshare [options] [<program> [<argument>...]] Run a program with some namespaces unshared from the parent. Options: -m, --mount[=<file>] unshare mounts namespace -u, --uts[=<file>] unshare UTS namespace (hostname etc) -i, --ipc[=<file>] unshare System V IPC namespace -n, --net[=<file>] unshare network namespace -p, --pid[=<file>] unshare pid namespace -U, --user[=<file>] unshare user namespace -C, --cgroup[=<file>] unshare cgroup namespace -T, --time[=<file>] unshare time namespace -f, --fork fork before launching <program> --map-user=<uid>|<name> map current user to uid (implies --user) --map-group=<gid>|<name> map current group to gid (implies --user) -r, --map-root-user map current user to root (implies --user) -c, --map-current-user map current user to itself (implies --user) --map-auto map users and groups automatically (implies --user) --map-users=<outeruid>,<inneruid>,<count> map count users from outeruid to inneruid (implies --user) --map-groups=<outergid>,<innergid>,<count> map count groups from outergid to innergid (implies --user) --kill-child[=<signame>] when dying, kill the forked child (implies --fork) defaults to SIGKILL --mount-proc[=<dir>] mount proc filesystem first (implies --mount) --propagation slave|shared|private|unchanged modify mount propagation in mount namespace --setgroups allow|deny control the setgroups syscall in user namespaces --keep-caps retain capabilities granted in user namespaces -R, --root=<dir> run the command with root directory set to <dir> -w, --wd=<dir> change working directory to <dir> -S, --setuid <uid> set uid in entered namespace -G, --setgid <gid> set gid in entered namespace --monotonic <offset> set clock monotonic offset (seconds) in time namespaces --boottime <offset> set clock boottime offset (seconds) in time namespaces -h, --help display this help -V, --version display version For more details see unshare(1). Read more

September 14, 2022

Bash Builtin Colon

: is a shell builtin command inherited from the Bourne Shell. It does nothing beyond expanding arguments and performing redirection and has return status zero. : is a no-op operator similar to true and false. In fact, command true and : both use the same function int colon_builtin() underneath. Parameter expansions Shell’s parameter expansions are used to check and modify parameters. Below illustrated how : is used in parameter expansion by setting a default value combined with :. Read more

August 31, 2022

Capture ASCII photo via mplayer

Mplayer Mplayer which stands for movie player for linux and supports most video and audio formats. Its manpage is really long. Check this page for a tips and tricks for mplayer and the FAQ from multimedia.cx is a compilations of questions and answers from the #mplayer IRC channel. Capture photo using mplayer into PNG file You can capturing video and then convert the frame into png or other formats. $ mplayer -vo png -frames 3 tv:// Let’s break it down: Read more

August 30, 2022

Bash builtin Read

The bash read command is a built-in utility that read text from the standard input. Bash Read Syntax The syntax for read command is: read <options> <arguements> The read command reads a line from the standard input and split it into fields, assigning each word to an arguement. If there are leftover words, they are assigned to the last arguement. $ read user_input this is my text $ echo $user_input this is my text $ read var1 var2 var3 there are 3 arguements $ echo $var1 there $ echo $var2 are $ echo $var3 3 arguements $REPLY $REPLY is the default variable used by the read builtin. Read more

August 24, 2022

Web License

TIL CERN developed its own open-source licence and the Web version 3.0 was the first and also last one release by CERN of Open Source software before W3C at MIT took over and then release WWW(HTTPD) version 3.1 under the MIT licence.

August 24, 2022

People Kernel Org

TIL about people.kernel.org which is a collection of individual blogs authored by Linux kernel developers. It is powered by WriteFreely and federated via ActivityPub. For now, the service is available to high-profile developers and maintainers of the Linux Kernel.

August 24, 2022

Journaling in vim

I came across this interesting post called journaling in vim by Danish Prakash which uses built-in functionality in Vim to make a painless digital journal workflow. The write-up is clear and I’ve been able to set up my workflow. Following is what I’ve learned during the process. Vim templates Vim templates allow you to specify a template to be used for new files with a certain extension. A template is a . Read more

August 10, 2022

Kernel Newbies

TIL about kernelnewbies. It is a community of aspiring Linux kernel developers who work to improve their Kernels and more experienced developers willing to share their knowledge. You can follow a tutorial for creating your first kernel patch, or read about Linux kernel Hacking. You can further learn about kernel subsystem as well.

August 8, 2022

Terraform Theory

Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services. Terraform codifies cloud APIs into declarative configuration files. Terraform helps you manage all of your infrastructures as code and construct it as and when needed. Here are its key main features: A console that allows users to observe functions The ability to translate HCL code into JSON format A configuration language that supports interpolation A module count that keeps track of the number of modules applied to the infrastructure. Read more

August 2, 2022

Ego Is the Enemy

Pick up a book on a topic you know next to nothing about. Put yourself in rooms where you’re the least knowledgeable person. That uncomfortable feeling, that defensiveness that you feel when your most deeply held assumptions are challenged — what about subjecting yourself to it deliberately? Change your mind. Change your surroundings… An amateur is defensive. The professional finds learning (and even, occasionally, being shown up) to be enjoyable; they like being challenged and humbled, and engage in education as an ongoing and endless process. Read more

August 2, 2022


TIL about Nala, a front-end for libapt-pkg. It is written in Python and uses the python-apt api. Installation Nala is the testing and sid repos for Debian. So a simple apt is sufficed. Installation via Repository echo "deb https://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null More details here Features Parrallel downloads - downloads 3 packages per unique mirror by defaults Fetch - get the fastest mirror History - print summary of transactions and manipulate history with nala history undo <ID> or nala history redo <ID>

August 1, 2022

Bash Shortcut: Ctrl and Alt keys

Commands for moving Ctrl + a: move to the beginning of line Ctrl + e: move to end of line Ctrl + f: Move forward a character Ctrl + b: Move back a character Alt + f: Move forward to the end of the next word Alt + b: Move back to the start of the current of previsous word Commands for Manipulating the History Ctrl + n: Fetch the next command form the history list (same as Down arrow) Ctrl + p: Fetch the previous command form the history list (same as Up arrow) Alt + <: Move to the first line in the history ALt + >: Move to the end of the input history ( the line currently bein entered) Ctrl + r: begins a backward search through command history Alt + p: Search backward through the history using a non-incremental search for a string supplied by the usser Alt + n: Search forward through the history using a non-incremental search for a string supplied by the usser Alt + . Read more

Powered by Hugo & Kiss.