<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zain&#39;s Codex</title>
    <link>https://jain.rs/</link>
    <description>Recent content on Zain&#39;s Codex</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Thu, 28 May 2026 22:23:52 +0400</lastBuildDate><atom:link href="https://jain.rs/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Getting Started with Bullet Journal</title>
      <link>https://jain.rs/til/bujo/</link>
      <pubDate>Thu, 28 May 2026 22:23:52 +0400</pubDate>
      
      <guid>https://jain.rs/til/bujo/</guid>
      <description>Getting Started with Bullet Journal 01 — What you need Any notebook and pen works. Dotted grid notebooks (Leuchtturm1917, Moleskine) are popular for flexibility. 02 — Rapid logging symbols (key) The backbone of BuJo. Capture items as short phrases using bullets:
Symbol Meaning • Task × Task complete ○ Event — Note &amp;gt; Task migrated forward &amp;lt; Task scheduled (moved to Future Log) * Priority ! Inspiration / idea ? Needs research Where to put your key: inside the front cover (most accessible) or directly after the Index.</description>
    </item>
    
    <item>
      <title>Mauritius TD 4/2025: When &#34;Safety&#34; Looks Like Surveillance</title>
      <link>https://jain.rs/mauritius/icta-telecommunication-directive-4/</link>
      <pubDate>Thu, 04 Dec 2025 23:30:00 +0400</pubDate>
      
      <guid>https://jain.rs/mauritius/icta-telecommunication-directive-4/</guid>
      <description>A friend sent me this new telecommunication directive by ICTA, and after reading through it, I really went down a rabbit hole. It’s about protecting children online, which is obviously a super important goal that we all agree on.
But as I dug into the technical details of how they propose doing it, I realized it brings up a lot of complicated questions about cybersecurity, how the internet works, and the future of an open web.</description>
    </item>
    
    <item>
      <title>Self-Hosting Hledger Reports Without a Server</title>
      <link>https://jain.rs/mauritius/hledger-static-website/</link>
      <pubDate>Mon, 14 Jul 2025 12:05:58 +0400</pubDate>
      
      <guid>https://jain.rs/mauritius/hledger-static-website/</guid>
      <description>I&amp;rsquo;ve been using hledger for personal accounting for a while now, and one thing that always bothered me was accessing my financial reports when I wasn&amp;rsquo;t at my main computer. I wanted to check my balance or look at my spending patterns from anywhere, but I didn&amp;rsquo;t want to set up and maintain a server just for this.
The hledger-web command exists, but it requires keeping a server running somewhere. That felt like overkill for what I needed — just readonly access to my reports from time to time.</description>
    </item>
    
    <item>
      <title>Plain Text Accounting</title>
      <link>https://jain.rs/mauritius/pta/</link>
      <pubDate>Fri, 04 Jul 2025 12:05:58 +0400</pubDate>
      
      <guid>https://jain.rs/mauritius/pta/</guid>
      <description>Discovering Plain Text Accounting I’ve always found finance management and budgeting difficult. I don&amp;rsquo;t enjoy spreadsheets, I’ve never used Excel properly, and most budget tools felt either too simplistic or too complicated.
When I started building my house, this weakness became a real problem. I had to keep track of large expenses, plan ahead, and make sure I didn’t overspend. So I started looking for a tool that could help me do that.</description>
    </item>
    
    <item>
      <title>Browser Origins</title>
      <link>https://jain.rs/tech/browser_origins/</link>
      <pubDate>Mon, 03 Mar 2025 15:33:01 +0400</pubDate>
      
      <guid>https://jain.rs/tech/browser_origins/</guid>
      <description>Last Saturday, I attended the first Frontend.mu meetup of 2025. One of the featured presentations was on &amp;ldquo;Browser Origins,&amp;rdquo; delivered by Sandeep. The talk was very interesting, and I&amp;rsquo;d like to share what I learned from it. You can find Sandeep&amp;rsquo;s presentation here.
The Early Days The first web browser was created by Sir Tim Berners-Lee in 1990, called &amp;ldquo;WorldWideWeb&amp;rdquo; as part of his effort to develop the World Wide Web.</description>
    </item>
    
    <item>
      <title>Social Media shutdown in Mauritius</title>
      <link>https://jain.rs/mauritius/social-media-shutdown/</link>
      <pubDate>Sun, 10 Nov 2024 15:28:21 +0400</pubDate>
      
      <guid>https://jain.rs/mauritius/social-media-shutdown/</guid>
      <description>On November 1, 2024, the Mauritian population was stunned to discover that the government had imposed a partial internet shutdown amid the electoral campaign. The ICT Authority (ICTA) instructed all internet service providers to block access to social media platforms until November 11, after the general election. The move was officially justified on the grounds of national security.
Later on, the Prime Minister&amp;rsquo;s Office (PMO) Communication Cell released a press citing that the national security concerns arises from leaked audio recordings that allegedly compromised the integrity of the Republic and its international partnerships.</description>
    </item>
    
    <item>
      <title>Let&#39;s dig Fossil</title>
      <link>https://jain.rs/linux/fossil/</link>
      <pubDate>Fri, 07 Jun 2024 10:37:01 +0400</pubDate>
      
      <guid>https://jain.rs/linux/fossil/</guid>
      <description>Fossil is a distributed version control system created by D. Richard Hipp, the same person who developed SQLite. Written in 2006, Fossil was designed to support the strict development process inspired by DO-178B, a standard used in aviation software development that emphasizes safety and reliability through thorough documentation and tracking of all changes.
DO-178B is a standard for developing safe and reliable aviation software. It requires thorough documentation and tracking of all changes.</description>
    </item>
    
    <item>
      <title>Exploring GitHub Repos and PRs with gh, fzf, and a touch of GraphQL</title>
      <link>https://jain.rs/devops/gh-fzf/</link>
      <pubDate>Tue, 28 May 2024 20:45:04 +0400</pubDate>
      
      <guid>https://jain.rs/devops/gh-fzf/</guid>
      <description>Have you ever been awestruck by someone&amp;rsquo;s workflow and wanted to replicate it? I certainly have. My recent awe moment was when I saw my senior colleague, Professor Peter, navigating through GitHub repositories and pull requests from the comfort of his terminal. Moreover, he maintain multiple working directories within a single Git reposioty with git worktree. He&amp;rsquo;s a real wizard.
I asked him to show me the way of the wizard, and he agreed to take me under his tutelage on the condition that he wouldn&amp;rsquo;t show me his code but would only guide me.</description>
    </item>
    
    <item>
      <title>Taekwondo: Strategy guide for different types of opponents</title>
      <link>https://jain.rs/taekwondo/opponent/</link>
      <pubDate>Wed, 27 Mar 2024 19:37:47 +0400</pubDate>
      
      <guid>https://jain.rs/taekwondo/opponent/</guid>
      <description>Walk on the mat with no fear.
Walk off the mat with no regrets.
In Taekwondo, knowing how to handle different opponents is key to winning. Each match brings a new challenge, depending on who you&amp;rsquo;re facing. Whether it&amp;rsquo;s someone taller, someone who attacks a lot, or someone you&amp;rsquo;ve never fought before, having the right strategy can make all the difference. In this guide, we&amp;rsquo;ll share tips on how to adjust your approach for various types of opponents.</description>
    </item>
    
    <item>
      <title>Using Lambda with API Gateway Tutorial</title>
      <link>https://jain.rs/cloud/lambda-apigateway/</link>
      <pubDate>Mon, 18 Mar 2024 21:18:01 +0400</pubDate>
      
      <guid>https://jain.rs/cloud/lambda-apigateway/</guid>
      <description>In this blog post, I&amp;rsquo;ll walk you through a hands-on experience of creating an AWS Lambda function and setting it up with Amazon API Gateway using Terraform.
Getting started The goal here is to replicate the AWS tutorial for creating a Lambda function triggered by API Gateway, but using Terraform for the infrastructure setup. The AWS tutorial guides you through creating a simple Lambda function that performs CRUD operations on a DynamoDB which can be triggered via an HTTP request through API Gateway.</description>
    </item>
    
    <item>
      <title>Resolving git push errors</title>
      <link>https://jain.rs/linux/git-push-error/</link>
      <pubDate>Wed, 17 Jan 2024 16:19:21 +0000</pubDate>
      
      <guid>https://jain.rs/linux/git-push-error/</guid>
      <description>Git can be tricky, especially when you get errors. It&amp;rsquo;s important to understand what these error messages mean. In this article, we&amp;rsquo;ll look at two common Git push errors and explain in simple terms how to fix them.
Error 1: Mismatched Branch Names fatal: The upstream branch of your current branch does not match the name of your current branch. To push to the upstream branch on the remote, use git push origin HEAD:main To push to the branch of the same name on the remote, use git push origin HEAD To choose either option permanently, see push.</description>
    </item>
    
    <item>
      <title>Goals 2024</title>
      <link>https://jain.rs/goals-2024/</link>
      <pubDate>Sat, 30 Dec 2023 17:57:06 +0400</pubDate>
      
      <guid>https://jain.rs/goals-2024/</guid>
      <description>To my accountability buddy,
Complete Terraform Associate (003) Certification. Complete AWS Associate Solution Architech (SAA-C002). Make correct use of 2024 Diary. Complete transaction of purchase of Land. Civil Marriage With Samanta. MSCC Talk about control version (Fossil). Migrate Hugo blog to Astro. If Astro Migration complete, then become a speaker for Frontend.mu conference, else for meetup. Be consistent with Blog Articles. Master Nix. Make house plan with help of an Architect.</description>
    </item>
    
    <item>
      <title>Understanding AWS ECS-Exec better.</title>
      <link>https://jain.rs/cloud/ecs-exec/</link>
      <pubDate>Tue, 05 Dec 2023 15:57:16 +0000</pubDate>
      
      <guid>https://jain.rs/cloud/ecs-exec/</guid>
      <description>ECS Exec simplifies the process of running commands or obtaining an interactive shell within a container, similar to docker exec. I perused the Using Amazon ECS Exec to access your containers on AWS Fargate and Amazon EC2 to understand its mechanics.
Here are my key takeaways:
Container Requirements: To initiate an exec into a container successfully, it&amp;rsquo;s essential to have either netstat or heapdump utilities pre-installed in the container&amp;rsquo;s base image.</description>
    </item>
    
    <item>
      <title>Containerize Nodejs App</title>
      <link>https://jain.rs/container/containerize-nodejs-app/</link>
      <pubDate>Wed, 26 Jul 2023 20:29:54 +0400</pubDate>
      
      <guid>https://jain.rs/container/containerize-nodejs-app/</guid>
      <description>In a recent technical interview, I faced a series of challenges to be completed within a strict 24-hour timeframe. One such task was to containerize a Node.js application, and I&amp;rsquo;d like to share my approach and reasoning with you.
Note I will be using the terms &amp;ldquo;containerize&amp;rdquo; and &amp;ldquo;dockerize&amp;rdquo; interchangeably, as well as referring to &amp;ldquo;Dockerfile&amp;rdquo; and &amp;ldquo;Containerfile&amp;rdquo; interchangeably.
Hello World The code was initially very simple and you can check it here.</description>
    </item>
    
    <item>
      <title>Developer Conference 2023</title>
      <link>https://jain.rs/mauritius/devcon-23/</link>
      <pubDate>Sun, 23 Jul 2023 15:28:21 +0400</pubDate>
      
      <guid>https://jain.rs/mauritius/devcon-23/</guid>
      <description>This year was a remarkable milestone for me as I had the privilege of being a speaker at DevConMU. I was ecstatic to have not just one, but two and a half sessions to share my knowledge and experiences with the audience. Allow me to explain the intriguing &amp;ldquo;half session&amp;rdquo; later on.
My journey with DevCon began back in 2019, its fifth edition, at Voila Hotel &amp;amp; Flying Dodo Brewery, Moka and the theme was inspired by &amp;ldquo;Game of Thrones.</description>
    </item>
    
    <item>
      <title>Three Tips for Attending Developers Conference 2023</title>
      <link>https://jain.rs/mauritius/prep-devcon-23/</link>
      <pubDate>Mon, 10 Jul 2023 12:05:58 +0400</pubDate>
      
      <guid>https://jain.rs/mauritius/prep-devcon-23/</guid>
      <description>This year marks the 10th anniversary of MSCC and the 7th edition of Developers Conference. It will take place for 3 days, from 20th to 22nd July at the Caudan Arts Centre. There will be 4 rooms: Andromeda, Pandora, Titan and Tatooine which will have around 30 talks. It&amp;rsquo;s a huge conference with a ton of cool and interesting things to check out.
Start your day off right by registering in the morning at the Andromeda room.</description>
    </item>
    
    <item>
      <title>Configuring AWS Application Load Balancer for Web Servers</title>
      <link>https://jain.rs/cloud/alp/</link>
      <pubDate>Sun, 02 Jul 2023 23:49:14 +0400</pubDate>
      
      <guid>https://jain.rs/cloud/alp/</guid>
      <description>I&amp;rsquo;ve attempted a Hands-on Lab on A Cloud Guru titled Use Application Load Balancers for Web Servers. In this lab, I configured an Application Load Balancer (ALB) to distribute network traffic to two EC2 instances, while also enabling sticky sessions to ensure users are consistently directed to the same server.
I approached the lab in two different ways. First, I followed the traditional method by creating a default VPC and using the legacy load balancer (using the elb subcommand).</description>
    </item>
    
    <item>
      <title>Inquisitive Insights: June 23</title>
      <link>https://jain.rs/inquisitiveinsights/june-23/</link>
      <pubDate>Sat, 01 Jul 2023 20:21:49 +0400</pubDate>
      
      <guid>https://jain.rs/inquisitiveinsights/june-23/</guid>
      <description>Welcome back to another exciting edition of Inquisitive Insights! In this month&amp;rsquo;s installment, I have handpicked an array of incredible discoveries and resources that will captivate your mind and propel you further along your tech journey.
Awesome websites cloudbite Brute.Fail: Watch brute force attacks fail in real time fossfox: work in open-source &amp;amp; get paid for it News AWS Certified: Associate Challenge openSUSE MicroOS Desktop Gnome was renamed to openSUSE Aeon, and the Plasma Desktop version is being renamed to openSUSE Kalpa Red Hat’s commitment to open source: A response to the git.</description>
    </item>
    
    <item>
      <title>Deploy WordPress With Amazon RDS</title>
      <link>https://jain.rs/cloud/wordpress/</link>
      <pubDate>Wed, 21 Jun 2023 13:46:42 +0400</pubDate>
      
      <guid>https://jain.rs/cloud/wordpress/</guid>
      <description>I aspire to become a cloud architect, specializing in AWS. To enhance my skills, I&amp;rsquo;m currently focused on learningfrom AWS Hands-on Tutorials and actively practicing their exercises.
To kickstart my learning journey, I deployed WordPress on an EC2 instance connected to an RDS instance. This practical experience allows me to solidify my cloud knowledge effectively.
Getting started First, I created an Access key for my admin user on the AWS console.</description>
    </item>
    
    <item>
      <title>Cloud Resume Challenge</title>
      <link>https://jain.rs/cloud/resume-challenge/</link>
      <pubDate>Wed, 14 Jun 2023 17:54:13 +0400</pubDate>
      
      <guid>https://jain.rs/cloud/resume-challenge/</guid>
      <description>The cloud resume challenge is a self-directed learning project created by Forrest Brazeal, a cloud architech and AWS Community Hero. It is designed to help individuals enhance their cloud computing skills and create a professional-looking resume website using various cloud technologies.
The Challenge and Its Structure The challenge revolves around building a serverless web application that serves as a personal resume or portfolio website. It provides a structured format, guiding participants through a series of tasks and milestones to complete the project successfully.</description>
    </item>
    
    <item>
      <title>Experimenting with OpenSUSE MicroOS and i3 window manager: Day 1</title>
      <link>https://jain.rs/linux/microos-i3/</link>
      <pubDate>Tue, 13 Jun 2023 15:59:02 +0400</pubDate>
      
      <guid>https://jain.rs/linux/microos-i3/</guid>
      <description>Immutable desktops have gained significant traction in recent years due to their stability and security advantages. If you&amp;rsquo;re interested in exploring immutable distributions, you can refer to this comprehensive list on GitHub that provides a curated selection of options: https://github.com/castrojo/awesome-immutable#distributions.
Two distribution caught my attention: Fedora Sericea and Greybeard(not on the list yet). Fedora Sericea is a variant of Fedora Silverblue, while Greybeard is an experimental project based on openSUSE MicroOS Desktop.</description>
    </item>
    
    <item>
      <title>Inquisitive Insights: May 2023</title>
      <link>https://jain.rs/inquisitiveinsights/may-23/</link>
      <pubDate>Fri, 02 Jun 2023 11:11:50 +0400</pubDate>
      
      <guid>https://jain.rs/inquisitiveinsights/may-23/</guid>
      <description>Hey there, I am starting a new monthly series called Inquisitive Insights which will be a gateway to the exciting world of tech. I&amp;rsquo;ll be sharing the coolest and most intriguing discoveries which are related to my interests and career. Whether you&amp;rsquo;re a coding whiz or a curious beginner, this series is designed to entertain, inform, and inspire you on your tech journey.
In each edition, we wil have a collection of awesome git repositories, stream of tech news, fascinating blog posts, and tutorials to sharpen your skills.</description>
    </item>
    
    <item>
      <title>/usr Merge</title>
      <link>https://jain.rs/linux/usr-merge/</link>
      <pubDate>Sat, 20 May 2023 17:56:03 +0400</pubDate>
      
      <guid>https://jain.rs/linux/usr-merge/</guid>
      <description>While browsing lwn.net, I came across this article mentioning Debian&amp;rsquo;s decision to delay the implementation of the /usr merge. The article prompted me to dive deeper into the topic and explore its significance.
What is /usr merge? The /usr merge (also known as /usr move) entails relocating specific directories, including /bin, /sbin, and /lib from the root file system (&amp;quot;/&amp;quot;) to the /usr directory. This restructuring aims to streamline the system architecture and improve versatility.</description>
    </item>
    
    <item>
      <title>Neovim Config Switcher</title>
      <link>https://jain.rs/linux/neovim-config-switcher/</link>
      <pubDate>Thu, 20 Apr 2023 10:12:07 +0400</pubDate>
      
      <guid>https://jain.rs/linux/neovim-config-switcher/</guid>
      <description>Neovim version 0.9.0 has been released and one of it&amp;rsquo;s new feature is the introduction of the environmental variable $NVIM_APPNAME.
Setting $NVIM_APPNAME makes Neovim look for its configuration directory in $XDG_CONFIG_HOME/$NVIM_APPNAME instead of $XDG_CONFIG_HOME/nvim. 1
Here&amp;rsquo;s an example to give you a better idea.
We have the NvChad&amp;rsquo;s config.
$ ls .config/NvChad init.lua lazy-lock.json LICENSE lua To make Neovim use this particular configuration file, we set the env variable $NVIM_APPNAME and open nvim.</description>
    </item>
    
    <item>
      <title>Deploy Arch Linux microVM with Firecracker</title>
      <link>https://jain.rs/linux/firecracker/</link>
      <pubDate>Mon, 10 Apr 2023 20:24:16 +0400</pubDate>
      
      <guid>https://jain.rs/linux/firecracker/</guid>
      <description>Firecracker is a virtual machine monitor that leverages KVM to rapidly launch Linux guest VMs. Its key advantage is its ability to quickly start up VMs.
Firecracker was created by AWS with the aim of boosting the speed and efficiency of AWS services such as AWS Lambda and AWS Fargate. Written in Rust, Firecracker is licensed under the Apache version 2.0.
Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models</description>
    </item>
    
    <item>
      <title>Firefox with Tab Style Tree</title>
      <link>https://jain.rs/linux/firefox-tst/</link>
      <pubDate>Tue, 14 Mar 2023 18:04:33 +0400</pubDate>
      
      <guid>https://jain.rs/linux/firefox-tst/</guid>
      <description>As someone who often finds myself with multiple Firefox windows open and dozens of tabs across them, managing my browsing history can be challenging. I struggle to keep track of how I ended up on a particular page, as I frequently open links in new tabs without bookmarking them. As a result, the number of tabs I have open can quickly become overwhelming.
To tackle this issue, I started searching for a Firefox extension that would help me organize my tabs in a more hierarchical and structured way.</description>
    </item>
    
    <item>
      <title>Refined ChaptGPT Prompt</title>
      <link>https://jain.rs/ai/chaptgpt-prompt/</link>
      <pubDate>Sun, 19 Feb 2023 20:32:47 +0400</pubDate>
      
      <guid>https://jain.rs/ai/chaptgpt-prompt/</guid>
      <description>Well-written prompts can be invaluable in guiding individuals towards refined and insightful responses. With carefully crafted language, prompts can encourage individuals to think more critically, creatively, and in-depth about a topic or idea. Below is a collection of prompts designed for a variety of situations and for the purposes of amusement.
Research prompts Can you provide me with a long and well-thought-out comprehensive yet simplified guide of [SUBJECT], that only includes offline information that you are certain is true and excludes any speculation or uncertainty?</description>
    </item>
    
    <item>
      <title>Switching to Neovim</title>
      <link>https://jain.rs/vim/neovim/</link>
      <pubDate>Sat, 31 Dec 2022 14:41:08 +0400</pubDate>
      
      <guid>https://jain.rs/vim/neovim/</guid>
      <description>I&amp;rsquo;ve been using Vim for almost 4 years now - I&amp;rsquo;ve began my journey by reading Mastering Vim Quickly, which I highly recommend, to upskill and become more confident in using Vim. The book is a fine balance between explanations, examples and tips.
I&amp;rsquo;ve tried sublime, vscode and vscodium(vscode without Miscosoft telemetry) with the Vim extension which were, however, clunky to use. Though I liked the vscode/vscodium interface, I missed Vim&amp;rsquo;s keyboard and text centrism, and editing effiency.</description>
    </item>
    
    <item>
      <title>Learning how to learn</title>
      <link>https://jain.rs/books/learning-how-to-learn/</link>
      <pubDate>Mon, 26 Dec 2022 11:12:02 +0400</pubDate>
      
      <guid>https://jain.rs/books/learning-how-to-learn/</guid>
      <description>Learning How to learn by Barbara Oakley has been the most popular course on Coursera and it is free. She has also publish &amp;ldquo;A mind for Numbers&amp;rdquo; 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&amp;rsquo;s notes in full form. Original notes can be found here.</description>
    </item>
    
    <item>
      <title>Git Stash: deep dive</title>
      <link>https://jain.rs/devops/git-stash/</link>
      <pubDate>Mon, 19 Dec 2022 18:33:35 +0400</pubDate>
      
      <guid>https://jain.rs/devops/git-stash/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Why Am I a Hindu</title>
      <link>https://jain.rs/books/why-am-i-a-hindu/</link>
      <pubDate>Fri, 25 Nov 2022 21:58:19 +0400</pubDate>
      
      <guid>https://jain.rs/books/why-am-i-a-hindu/</guid>
      <description>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:</description>
    </item>
    
    <item>
      <title>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</title>
      <link>https://jain.rs/privacy/icta-comments/</link>
      <pubDate>Fri, 11 Nov 2022 20:22:07 +0400</pubDate>
      
      <guid>https://jain.rs/privacy/icta-comments/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Facebook&#39;s new tool</title>
      <link>https://jain.rs/til/fb-removal/</link>
      <pubDate>Mon, 07 Nov 2022 19:23:52 +0400</pubDate>
      
      <guid>https://jain.rs/til/fb-removal/</guid>
      <description>TIL about Facebook (or Meta)&amp;rsquo;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&amp;rsquo;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.</description>
    </item>
    
    <item>
      <title>Judo: History, Theory, Practice</title>
      <link>https://jain.rs/books/judo/</link>
      <pubDate>Fri, 14 Oct 2022 12:52:36 +0400</pubDate>
      
      <guid>https://jain.rs/books/judo/</guid>
      <description>The meaning behind the Kodokan&amp;rsquo;s motto—&amp;ldquo;The Most Efficient Application of Strength,&amp;rdquo; as Jigoro Kano put it—consists of the following. Assume that a person&amp;rsquo;s strength is measured in some sort of units. An opponent&amp;rsquo;s strength is ten, yours is seven. If your opponent pushes you with all his might, you won&amp;rsquo;t be able remain standing, even if you resist with all your might. You&amp;rsquo;ll either fall or step back. This is opposing strength with strength.</description>
    </item>
    
    <item>
      <title>nb</title>
      <link>https://jain.rs/til/nb/</link>
      <pubDate>Thu, 13 Oct 2022 11:01:14 +0400</pubDate>
      
      <guid>https://jain.rs/til/nb/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Learning Namespaces: Unsharing is caring</title>
      <link>https://jain.rs/container/namespaces/</link>
      <pubDate>Wed, 12 Oct 2022 12:46:50 +0400</pubDate>
      
      <guid>https://jain.rs/container/namespaces/</guid>
      <description>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] [&amp;lt;program&amp;gt; [&amp;lt;argument&amp;gt;...]] Run a program with some namespaces unshared from the parent. Options: -m, --mount[=&amp;lt;file&amp;gt;] unshare mounts namespace -u, --uts[=&amp;lt;file&amp;gt;] unshare UTS namespace (hostname etc) -i, --ipc[=&amp;lt;file&amp;gt;] unshare System V IPC namespace -n, --net[=&amp;lt;file&amp;gt;] unshare network namespace -p, --pid[=&amp;lt;file&amp;gt;] unshare pid namespace -U, --user[=&amp;lt;file&amp;gt;] unshare user namespace -C, --cgroup[=&amp;lt;file&amp;gt;] unshare cgroup namespace -T, --time[=&amp;lt;file&amp;gt;] unshare time namespace -f, --fork fork before launching &amp;lt;program&amp;gt; --map-user=&amp;lt;uid&amp;gt;|&amp;lt;name&amp;gt; map current user to uid (implies --user) --map-group=&amp;lt;gid&amp;gt;|&amp;lt;name&amp;gt; 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=&amp;lt;outeruid&amp;gt;,&amp;lt;inneruid&amp;gt;,&amp;lt;count&amp;gt; map count users from outeruid to inneruid (implies --user) --map-groups=&amp;lt;outergid&amp;gt;,&amp;lt;innergid&amp;gt;,&amp;lt;count&amp;gt; map count groups from outergid to innergid (implies --user) --kill-child[=&amp;lt;signame&amp;gt;] when dying, kill the forked child (implies --fork) defaults to SIGKILL --mount-proc[=&amp;lt;dir&amp;gt;] 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=&amp;lt;dir&amp;gt; run the command with root directory set to &amp;lt;dir&amp;gt; -w, --wd=&amp;lt;dir&amp;gt; change working directory to &amp;lt;dir&amp;gt; -S, --setuid &amp;lt;uid&amp;gt; set uid in entered namespace -G, --setgid &amp;lt;gid&amp;gt; set gid in entered namespace --monotonic &amp;lt;offset&amp;gt; set clock monotonic offset (seconds) in time namespaces --boottime &amp;lt;offset&amp;gt; set clock boottime offset (seconds) in time namespaces -h, --help display this help -V, --version display version For more details see unshare(1).</description>
    </item>
    
    <item>
      <title>Bash Builtin Colon</title>
      <link>https://jain.rs/linux/bash-builtin-colon/</link>
      <pubDate>Wed, 14 Sep 2022 21:19:25 +0400</pubDate>
      
      <guid>https://jain.rs/linux/bash-builtin-colon/</guid>
      <description>: 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&amp;rsquo;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 :.</description>
    </item>
    
    <item>
      <title>Capture ASCII photo via mplayer</title>
      <link>https://jain.rs/linux/mplayer/</link>
      <pubDate>Wed, 31 Aug 2022 20:30:13 +0400</pubDate>
      
      <guid>https://jain.rs/linux/mplayer/</guid>
      <description>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&amp;rsquo;s break it down:</description>
    </item>
    
    <item>
      <title>Bash builtin Read</title>
      <link>https://jain.rs/linux/bash-builtin-read/</link>
      <pubDate>Tue, 30 Aug 2022 10:04:15 +0400</pubDate>
      
      <guid>https://jain.rs/linux/bash-builtin-read/</guid>
      <description>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 &amp;lt;options&amp;gt; &amp;lt;arguements&amp;gt; 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.</description>
    </item>
    
    <item>
      <title>About Me</title>
      <link>https://jain.rs/about/</link>
      <pubDate>Sat, 27 Aug 2022 19:40:27 +0400</pubDate>
      
      <guid>https://jain.rs/about/</guid>
      <description>Hey there! I&amp;rsquo;m Jain Ramchurn. I am an open source enthusiast and experienced user of GNU/Linux with a focus on continuous learning. My area of expertise is in cloud computing, where I have the most experience with Amazon Web Services (AWS).
I have a strong preference for tiling window managers, i3 , over desktop environments. My preference for open source software extends to my choice of operating systems, where I use Arch-based distros on my laptops and Debian on my servers, trust GrapheneOS for privacy and security on my mobile device.</description>
    </item>
    
    <item>
      <title>Web License</title>
      <link>https://jain.rs/til/web-license/</link>
      <pubDate>Wed, 24 Aug 2022 17:48:46 +0400</pubDate>
      
      <guid>https://jain.rs/til/web-license/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>People Kernel Org</title>
      <link>https://jain.rs/til/people-kernel-org/</link>
      <pubDate>Wed, 24 Aug 2022 16:30:55 +0400</pubDate>
      
      <guid>https://jain.rs/til/people-kernel-org/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Journaling in vim</title>
      <link>https://jain.rs/vim/journaling/</link>
      <pubDate>Wed, 24 Aug 2022 08:14:10 +0400</pubDate>
      
      <guid>https://jain.rs/vim/journaling/</guid>
      <description>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&amp;rsquo;ve been able to set up my workflow.
Following is what I&amp;rsquo;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 .</description>
    </item>
    
    <item>
      <title>Unix CLI Conventions Over time</title>
      <link>https://jain.rs/unix/cli-conventions/</link>
      <pubDate>Wed, 10 Aug 2022 21:26:43 +0400</pubDate>
      
      <guid>https://jain.rs/unix/cli-conventions/</guid>
      <description>Awesome blog post explaining how the syntax of Unix command line has varied over the years, and in different subcultures.</description>
    </item>
    
    <item>
      <title>Kernel Newbies</title>
      <link>https://jain.rs/til/kernelnewbies/</link>
      <pubDate>Wed, 10 Aug 2022 20:49:06 +0400</pubDate>
      
      <guid>https://jain.rs/til/kernelnewbies/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Terraform Theory</title>
      <link>https://jain.rs/devops/terraform-theory/</link>
      <pubDate>Mon, 08 Aug 2022 15:45:30 +0400</pubDate>
      
      <guid>https://jain.rs/devops/terraform-theory/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Ego Is the Enemy</title>
      <link>https://jain.rs/books/ego-is-the-enemy/</link>
      <pubDate>Tue, 02 Aug 2022 21:17:40 +0400</pubDate>
      
      <guid>https://jain.rs/books/ego-is-the-enemy/</guid>
      <description>Pick up a book on a topic you know next to nothing about. Put yourself in rooms where you&amp;rsquo;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.</description>
    </item>
    
    <item>
      <title>Nala</title>
      <link>https://jain.rs/til/nala/</link>
      <pubDate>Tue, 02 Aug 2022 20:57:11 +0400</pubDate>
      
      <guid>https://jain.rs/til/nala/</guid>
      <description>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 &amp;#34;deb https://deb.volian.org/volian/ scar main&amp;#34; | 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 &amp;gt; /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 &amp;lt;ID&amp;gt; or nala history redo &amp;lt;ID&amp;gt; </description>
    </item>
    
    <item>
      <title>Bash Shortcut: Ctrl and Alt keys</title>
      <link>https://jain.rs/linux/bash-movement/</link>
      <pubDate>Mon, 01 Aug 2022 21:30:17 +0400</pubDate>
      
      <guid>https://jain.rs/linux/bash-movement/</guid>
      <description>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 + &amp;lt;: Move to the first line in the history ALt + &amp;gt;: 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 + .</description>
    </item>
    
    <item>
      <title>Emulators in browser</title>
      <link>https://jain.rs/linux/browser-emulators/</link>
      <pubDate>Mon, 01 Aug 2022 20:54:20 +0400</pubDate>
      
      <guid>https://jain.rs/linux/browser-emulators/</guid>
      <description>Virtual x86 Virtual x86 emulates an x86-compatible CPU and hardware. It is written mainly in Rust,Javascript and C - source code can be found here.
The following OS are supported:
Arch Linux Damn Small Linux Buildroot Linux ReactOS Windows 2000 Windows 98 Windows 95 Windows 1.01 MSDOS FreeDOS FreeBSD OpenBSD 9front Haiku Oberon KolibriOS QNX JSLinux JSLinux which enable you to run Linux or other operating system in your browser. The emulator is based upon on TinyEMU You can learn about the techinical implementation here.</description>
    </item>
    
    <item>
      <title>Guides &amp; resources to learn Vim</title>
      <link>https://jain.rs/vim/guides/</link>
      <pubDate>Mon, 01 Aug 2022 17:28:30 +0400</pubDate>
      
      <guid>https://jain.rs/vim/guides/</guid>
      <description> Vimtutor At least one Vim trick you might not know A Vim Guide for Advanced Users Vim Tips for the Intermediate Vim User </description>
    </item>
    
    <item>
      <title>Vimgolf 5f1e0217becb80000692b9c4</title>
      <link>https://jain.rs/vim/vimgolf-5f1e0217becb80000692b9c4/</link>
      <pubDate>Mon, 01 Aug 2022 15:36:23 +0400</pubDate>
      
      <guid>https://jain.rs/vim/vimgolf-5f1e0217becb80000692b9c4/</guid>
      <description>Link: http://www.vimgolf.com/challenges/5f1e0217becb80000692b9c4
Rural post Simple challenge to remove all but the post code on each line
Start file RD 5 Gore 9775 RD 6 Gore 9776 RD 7 Gore 9777 RD 1 Great Barrier Island 0991 RD 1 Greta Valley 7387 RD 1 Greytown 5794 RD 1 Hamilton 3281 RD 2 Hamilton 3282 End file 9775 9776 9777 0991 7387 5794 3281 3282 Solution: .,$norm $bd0j Explanation: .,$ - every line from current one till end of file norm - normal mode $ - go to end of line b - go to start of word d0 - delete till start of line j - move one line down RECAP Ranges: Here are the most interesting ranges you can use: * &amp;lt;number&amp;gt; - Any number &amp;lt;number&amp;gt; in your range refers to a line number.</description>
    </item>
    
    <item>
      <title>Vimgolf 5ba020f91abf2d000951055c</title>
      <link>https://jain.rs/vim/vimgolf-5ba020f91abf2d000951055c/</link>
      <pubDate>Sun, 31 Jul 2022 20:46:27 +0400</pubDate>
      
      <guid>https://jain.rs/vim/vimgolf-5ba020f91abf2d000951055c/</guid>
      <description>http://www.vimgolf.com/challenges/5ba020f91abf2d000951055c
Com(m)a Trouble Someone was real stupid when placing his commas. Can you fix it?
Start file ,0,1,2,3,4,5,6,7,89 ,1,2,3,4,5,6,7,8,90 ,2,3,4,5,6,7,8,9,01 ,3,4,5,6,7,8,9,0,12 ,4,5,6,7,8,9,0,1,23 56,7,8,9,0,1,2,3,4, 67,8,9,0,1,2,3,4,5, 78,9,0,1,2,3,4,5,6, 89,0,1,2,3,4,5,6,7, 90,1,2,3,4,5,6,7,8, End file 0,1,2,3,4,5,6,7,8,9 1,2,3,4,5,6,7,8,9,0 2,3,4,5,6,7,8,9,0,1 3,4,5,6,7,8,9,0,1,2 4,5,6,7,8,9,0,1,2,3 5,6,7,8,9,0,1,2,3,4 6,7,8,9,0,1,2,3,4,5 7,8,9,0,1,2,3,4,5,6 8,9,0,1,2,3,4,5,6,7 9,0,1,2,3,4,5,6,7,8 Solution: &amp;lt;C-V&amp;gt;Md6E.0p{EPZZ Explanation: &amp;lt;C-V&amp;gt; - visual mode M - Go to the first non-blank characterwise d - delete selected text 6E - Move to the end of the 6th line below .</description>
    </item>
    
    <item>
      <title>CLI vs GUI</title>
      <link>https://jain.rs/linux/clivsgui/</link>
      <pubDate>Tue, 26 Jul 2022 15:18:47 +0400</pubDate>
      
      <guid>https://jain.rs/linux/clivsgui/</guid>
      <description>In the Beginning.. Was the Command Line. - Neal Stephenson.
A dark screen with a blinking cursor. With a few keystrokes, you can hack the world.
On the command line, you must know what you are doing. With a GUI, you can guess. You can guess a lot, actually, and just poke around all you want because most GUIs come with an undo feature.
There is no &amp;ldquo;undo&amp;rdquo; on the command line.</description>
    </item>
    
    <item>
      <title>Da3mons</title>
      <link>https://jain.rs/quotes/daemons/</link>
      <pubDate>Tue, 26 Jul 2022 15:17:26 +0400</pubDate>
      
      <guid>https://jain.rs/quotes/daemons/</guid>
      <description>There&amp;rsquo;s a saying - &amp;lsquo;The devil is at his strongest while we&amp;rsquo;re looking the other way.&amp;rsquo;
Like a program running in the background silently. While we&amp;rsquo;re busy doing other shit.
Daemons, they call them. They perfom action without user interaction.
Monitoring, logging, notifications, primal urges, repressed memories, unconscious habits.
They&amp;rsquo;re always there, always active.
You can try to be right, you can try to be good, youcan try to make a difference.</description>
    </item>
    
    <item>
      <title>Serial Terminal in Proxmox</title>
      <link>https://jain.rs/proxmox/serial-terminal/</link>
      <pubDate>Tue, 26 Jul 2022 15:17:16 +0400</pubDate>
      
      <guid>https://jain.rs/proxmox/serial-terminal/</guid>
      <description>Serial terminal Configuration on the host Add a virtual serial port to the VM qm set &amp;lt;VMID&amp;gt; -serial0 socket (or)
echo &amp;#34;serial0: socket&amp;#34; &amp;gt;&amp;gt; /etc/pve/qemu-server/&amp;lt;VMID&amp;gt;.conf Configuration on the guest Configure the terminal Enable a serial console systemctl enable serial-getty@ttyS0.service systemctl start serial-getty@ttyS0.service Instruct grub2 to send the boot messages on the serial port by editing /etc/default/grub and adding: GRUB_CMDLINE_LINUX=&amp;#34;quiet console=tty0 console=ttyS0,115200&amp;#34; run update-grub afterward. Allow password-less root login on the serial console TIPS</description>
    </item>
    
    <item>
      <title>Sapiens</title>
      <link>https://jain.rs/books/sapiens/</link>
      <pubDate>Tue, 26 Jul 2022 15:16:30 +0400</pubDate>
      
      <guid>https://jain.rs/books/sapiens/</guid>
      <description>Sapiens: A Brief History of Humankind beautifully written by Yuval Noah Harari is an bold,engaging, and provocating book. Below are excerpts and paragraphs which filled me with a sense of wonder and changed the way I think.
Sapiens and Tolerance Tolerance is not a Sapiens trademark. In modern times, a small difference in skin colour, dialect or religion has been enough to prompt one group of Sapiens to set about exterminating another group.</description>
    </item>
    
    <item>
      <title>Ready player one</title>
      <link>https://jain.rs/books/ready_player_one/</link>
      <pubDate>Tue, 26 Jul 2022 15:16:18 +0400</pubDate>
      
      <guid>https://jain.rs/books/ready_player_one/</guid>
      <description>&amp;ldquo;Here&amp;rsquo;s the deal, Wade. You&amp;rsquo;re something called a &amp;lsquo;human being&amp;rsquo;. That&amp;rsquo;s a really smart kind of animal. Like very other animal on this planet, we descended from a single-celled organism that lived millions of years ago. This happened by a process called evolution, and you&amp;rsquo;ll learn more about it later. But trust me, that&amp;rsquo;s really how we all got here. There&amp;rsquo;s proof of it everywhere, buried in the rocks. That story you heard?</description>
    </item>
    
    <item>
      <title>Projects</title>
      <link>https://jain.rs/projects/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://jain.rs/projects/</guid>
      <description>qdir Quick Directory Generator
git-cz A simple commitizen written in Rust
revq CLI to search and filter GitHub pull requests
kouran CLI tool to view power outages in Mauritius
conze CLI for viewing and comparing holidays across countries
cloud-resume-challenge The Cloud Resume Challenge on AWS
Linux mirrors in Mauritius Linux mirrors hosted in Mauritius</description>
    </item>
    
  </channel>
</rss>
