Alias Creation in Windows Using Python

One thing I’ve missed in Windows post my switch from Linux is the ability to create aliases for commands. In Linux, you can create an alias for a command by adding the following line to your .bashrc or .bash_profile file - alias ll='ls -l' This would allow you to use ll instead of ls -l in your terminal. In Windows, you can create a similar alias by creating a batch file and adding it to your PATH environment variable. ...

February 17, 2025 · 2 min · Abhiram R

Focus mode - A "kutty" chrome extension

By now you’ve seen a lot of stuff being built using ChatGPT. A lot, Jerry. A LOT. I’ve built a few apps and extensions as well, but this is the first I’m writing about. Over the last 3-4 years, “building” software on any scale has seen quite a radical shift. Here’s an image to scale - So when I first tried to build a Chrome extension for a company hackathon in 2022, I took around 12 hours, pulling an all-nighter. I looked up documentation, Stack Overflow answers, sample blogs and trudged through the whole process - The way god intended it. And finally completed…something. The end result was something that did the job I wanted but it looked absolutely horrendous and I had to hand-wave over the UX because I had no time before the presentation. ...

January 29, 2025 · 4 min · Abhiram R

Timeline charts

I’m not feeling all too well but I didn’t want to break my streak of writing. So today I’m writing about a non-Python related topic - Timeline Charts. I was doing a profiling activity for work and I was scratching my head for a way to represent the info so as to explain it easily. Then I got to thinking, how does Google build all those charts to track page loads and API runtimes in Developer tools? ...

November 20, 2024 · 2 min · Abhiram R

Dataclasses

19th Nov 2024 I was trying to write an article on Dataclasses1 and I looked up an example on the official website2 Easy enough on the face of it, but it led me into quite a rabbit hole. A dataclass allows for the creation of “special methods” for a class when the annotation @dataclass is sighted. So if I have a class “Superhero” with the annotation : @dataclass class Superhero: """ A class of superheroes and properties about their appearance in Marvel movies """ name: str superpower: str appearances: int = 0 def beckon(self): print(f"{self.name} with the super power - {self.superpower} has appeared in Marvel movies {self.appearances} times") superhero = Superhero("Aquaman","Underwater breathing",2) superhero.beckon() It effectively means that : ...

November 19, 2024 · 3 min · Abhiram R

Making your first blog with mkdocs

Now, why do this? What’s wrong with Medium and Substack and Blogger and Wordpress and all the tens of websites out there? Nothing. You could totally just create a blog there and publish. That’s why Content Management Systems exist - so you could focus on the content and not on the management . But if you’re like me and want some more control over how you publish your blogs, customize them etc. , you will find this and the other upcoming articles in this category interesting. ...

November 16, 2024 · 4 min · Abhiram R

LC Num 21

21. Merge Two Sorted Lists First I didn’t understand the problem I think. In the sense that I accepted the inputs as two lists and returned a list - Python list. Then I read it and realized they want the operation in Linked lists. i took some time to recall how to move along a list and finally figured it out. The other thing that gave me a minor ankle break was when the test case was two empty lists. ...

April 15, 2024 · 2 min · Abhiram R

Enabling Spark History Server Standalone

I’ve been using Spark for close to 2 years now but because I’ve always used it largely on clusters at work, I’ve never really had to struggle with the minutae of enabling monitoring pages like the Spark History Server UI etc. Now that I’m exploring some advanced concepts in Spark, one of the first things I learnt was enabling the Spark History Server locally i.e on a Standalone installation. Let’s assume that our Spark installation’s version is 2.3.2 and we’ve extracted the binary into /opt/spark-2.3.2-bin-hadoop2.7. ...

December 27, 2021 · 2 min · Abhiram R

Learning how to use FFMpeg

What is FFmpeg? In their own words, FFmpeg is “A complete, cross-platform solution to record, convert and stream audio and video.” I’ve been recording Bangpypers videos for the last few months and I haven’t really had access to a proper solution to edit videos and audio that I could have got for free/ low-cost. A good friend of mine, Vinay Keerthi, (who incidentally presented the webinar under discussion) told me to chuck GUI based fronts for editing them and told me to try FFmpeg, the CLI tool directly, which these tools probably use in the background anyway. ...

December 6, 2020 · 4 min · Abhiram R

Custom CSS Jupyterlab Ext

Jupyterlab is a definite improvement on the older IPython notebook interface - both in features and in appearance. There is now even an in-built “Dark Theme” that can be enabled. But is that all? As we know, Jupyterlab is a browser based app and is ipso facto, written on a base of HTML, CSS and Javascript. So if we want to change the appearance over and above what we get out of the box with jupyterlab, we can. Now, it is possible to make any CSS changes by hacking into the internals of the notebook, but thanks to a nifty Jupyterlab extension by Adam Wallner, we don’t have to. ...

December 10, 2019 · 3 min · Abhiram R

Setting Up Python3.8 and Jupyterlab

I’m using Ubuntu 16.04 on this machine, so that’s what the steps of installation here will be for. But this installation shouldn’t largely vary on any distro that’s 14.04 and higher. Step 1 - Download Python source code Binary installations are available for Windows and Mac but you can either install Python3.8 on Ubuntu using “apt” or download and install from source. I did the latter. Obtain the gz file from here. ...

November 7, 2019 · 2 min · Abhiram R