Belonging to India, I am very used to seeing random websites being blocked. However, today was particularly scary because the MITM (Man In The Middle attack) happened over HTTPS. I visited usebottles.com over HTTPS and was served with the following page. Notice the padlock in the address bar. Checking into it, the certificate is valid and signed by Cloudflare . Further Exploration and Hypothesis…
Over time, how I develop applications in python has changed noticeably. I will divide the topic into three sections and see how they tie into each other at the end. Development Packaging Usage Development Under development, the issues I will focus on are the following: Dependency Management Virtualenvs and managing them Historically, the way to do dependency management was through requirements.txt…
Ideas The clipboard is a basic yet integral part of every environment. Over time, I have had quite a few ideas regarding clipboards. I have implemented the following ideas currently: Clipboard Swap Inspired by vim’s registers, I thought about implementing something similar on a system level for Xorg. My current implementation basically swaps the contents of the clipboard with another…
Back when I first learnt tmux, I realized it was a really valuable tool. Soon afterwards, I found myself in need of wanting to make a split only to find out I wasn’t in tmux. This would lead to: Killing the running process. Starting tmux. Restarting the previous process. In pursuit of an ideal solution, I added a tiny script in my scripts directory which was called by my bashrc. Current…
The Goal Insert Mode Normal Mode Inspired by vim, I wanted to create a layer on top of my keyboard which worked like a shortcut layer. So, to start off, I found out about XKB 1 . XKB is the Xorg Keyboard Extension which tells Xorg on how to react to input from keyboard. After reading through some source code, I found out that Xorg has support for function keys F1 - F35 2 . The general idea here…
Often times I find myself needing to modify the selection in a substitute command in a non-trivial way. From a recent example, I needed to convert the numbers in the id of the div s to hexadecimal after decrementing them by 1. Basically, I had to convert <div id="someprefix1"> ... </div> <div id="someprefix2"> ... </div> <div id="someprefix3"> ... </div> <div id="someprefix4"> ... </div> ... <div…
A few weeks ago, I needed to create a Google Account since my college teachers have decided to use Google Classroom (yes, they are violating Google’s TOS by not using a Google Education Suite.). I have ditched all Google Services quite a long time ago and made my previous account dormant (There are a few YouTube videos hosted with it so I didn’t delete it). Thus, I decided to create a…
Introduction The aim of setting up CI/CD is to automatically build the app on every commit and send the APK. I looked into Gitlab CI/CD for this purpose since Sonzai is already hosted on Gitlab. Build Stage To get started, I needed to choose a docker image in which the repo would be built. After looking around a bit, I found that the react-native-community has an official Docker image , the source…
Getting Started I initiated a repository for the plugin. cd ~/repos/ git init vcf.Vim I use Vim-plug for package management in Vim and added that to Vim-plug Plug '~/repos/vcf.Vim/' Next, I exported all my contacts into a Virtual Contact File. Filetype Detection To get started I needed Vim to assign a filetype to VCFs. A small autocmd is enough to take care of that. By convention, filetype…