✍️Posts

Breaking Kakasoft USB Copy Protection

I stumbled upon a USB drive locked down with Kakasoft's USB Copy Protection software. Challenge accepted! I decided to crack this DRM protection wide open. In this article, I'll take you through every step of the process, sharing my strategies and thought process so you can break free from such flimsy defenses too.

(611 words)

Running Go code from Elixir Using Web Assembly

In this article, I will show you how to compile Go code to target WASI and run it from an Elixir host. You will also learn how to pass data to Go and get a response back using pipes.

(1025 words)

How to Use Apple Vision Framework via PyObjC for Text Recognition

Let's learn how to make use of Apple's Vision Framework from Python (via PyObjC) to detect and recognize text in images. Along the way, you will learn quite a bit about how to use PyObjC to interface with different Objective C classes, functions and methods.

(2378 words)

How to Efficiently Reorder or Rerank Items in Database

Ever wondered how Jira and Trello store the order of tasks or issues? How they can effortlessly reorder items in the database even when there are a million items? In this article, you will gain an understanding of reordering and reranking techniques and how to store order information in the database to facilitate efficient reordering.

(1718 words)

Project Write-up: Display Spotify lyrics on external display

I came across a job posting on Upwork where someone was looking for a software that plays the lyrics of a Spotify song on dual screens. I was really intrigued so I decided to give it a go. In this article I am going to talk about the whole thought process I went through while trying to figure out a solution as I think that part is often missing from programming tutorials.

(1564 words)

Setting Up Custom Root Domain using Webflow and Cloudflare

Are you trying to set up a custom root domain with Webflow & Cloudflare but it is not working? I recently did the same and faced some issues. Let me save you some time and show you how to set it up. By the end, you will have working redirection from www subdomain to your root domain.

(1014 words)

Extracting WhatsApp messages from an iOS backup

Have you ever been interested in how Apple saves the iOS backup files and how you can extract particular files from a backup? In this article, I will show you the different encryptions involved in creating an iOS backup, how to decrypt the data, and how to extract WhatsApp chats from an iOS backup.

(2185 words)

Web Automation With Selenium And Python

In this article we will take a look at how we can automate basic web interactions using Selenium. By the end of this article you will have an automated booking bot that can reserve court space for you automatically. You will also learn about XPath and how to traverse an HTML document using Python, LXML and XPath.

(2578 words)

How to get a job in big-tech (Internships/New grads)?

Are you looking to break into big-tech? In this post, I share some tips and tricks that helped me get an internship + job at Microsoft. You don't need to spend every waking minute grinding Leetcode. You can be smart and prepare for the interview a bit more strategically. Read the article to learn more.

(2321 words)

How to web scrape on Schedule using Github Actions?

I recently got to work on a web scraping project that I deployed on GitHub. The scraper runs daily on a schedule and emails the extracted data all for free using GitHub Actions! In this article, I will show you how I developed this project and how you too can make use of GitHub Actions for free.

(3110 words)

Understanding and Generating a UPC-A barcode using Python

I have always been fascinated with barcodes and QR codes. I theoretically knew how barcodes worked but I wanted to solidify my understanding by making one from scratch. In this article, I will take you on a guided tour of how barcodes work and how we can make one from scratch using Python. I will focus on Universal Product Code type A (UPC-A) for this tutorial.

(3795 words)

Setting up listmonk, an open-source newsletter & mailing list manager

Are you tired of spending tons of money for Mailchimp? Let me show you how to set up listmonk, a free and open-source newsletter and mailing list manager. We will be using docker-compose for orchestration and NGINX + certbot for automated SSL certificates. The final setup will cost you a little bit of effort and $0 in running costs as long as you don't send more than 50,000 emails.

(2739 words)

Making a Serverless eBook Stamping & Delivery Service

I recently had to make a custom ebook stamping and delivery service for Practical Python Projects book. In this article, I will explain why and how I made this service using AWS lambda as the serverless platform. I will also show you how to use S3 for file hosting, SQS for message passing, SES for automated email delivery, and PyPDF2 + Reportlab + pdfrw for PDF stamping.

(6127 words)

How to Prerender React Apps Using Prerender

I am currently working on a React based app and had to implement prerendering for SEO purposes. In this post, I will show you complete steps for running the prerender.io service on your own server and serve it via NGINX. This will help you improve your app's SEO.

(1433 words)

Setting up & Deploying JWT based auth using Flask & React

I recently had to implement JWT based auth in a React and Flask based web app. In this post, I will show you how to implement login functionality step by step and deploy the resulting web app using NGINX and Gunicorn. We will be using flask-praetorian for JWT token generation.

(4424 words)

Using Python to Post Stories on Instagram

Have you ever wanted to post stories on Instagram in an automated fashion? In this article, I will show you how to use Python and the Instagram-API-python library to do exactly that. Fasten your seatbelts and let's get started!

(503 words)

How to Listen to Trunked Police Radio (Video 2020)

If you are bummed to find out that your local PD and FD have moved to a digital or trunked mode then you aren't alone. In this post, I will show you how to use a cheap RTL-SDR dongle and the SDRTrunk software to snoop the trunked radio traffic in your area.

(202 words)

Alpha Version of Practical Python Projects Book Released!

I just released the alpha version of my much anticipated Practical Python Projects book! It has been two years in the making and I am super excited about its release. In 320+ pages we will implement 12 different projects. I wish I had access to a similar book when I started learning Python.

(861 words)

Using BaoFeng UV-5X3 HT as Police Scanner

Have you seen movies where people use a radio to track police? Maybe you have seen the movie Stranger Things and saw the main characters using a radio and an antenna for communication. In this tutorial, I show you how to use a similar portable Baofeng handheld transceiver to track the local police/fire department. It is a lot of fun!

(1052 words)

Working With Messy Data Using Pandas in Python

Have you ever had to process some messy data? I recently worked on a project where I had to tame some messy data using Pandas in Python. In this short tutorial, I will teach you some data wrangling basics that will help you process most datasets you will ever encounter in the wild.

(1031 words)

5 Lessons From my Microsoft Internship

My Microsoft internship ended on 31st August. I had a wonderful time there and learned a lot of useful tips/lessons. In this article, I share 5 lessons that helped me the most. If you want to improve your internship/job experience make sure you read this.

(1046 words)

Interview With Justin Duke

I sat down with Justin Duke, an engineer at Stripe, and talked about tech, startups and time management. Justin runs two startups and manages two weekly newsletters (along with a plethora of other things). Come learn about how he does it all!

(336 words)

Understanding and Decoding a JPEG Image using Python

We all use JPEG images every day and almost every software supports JPEG but most of us don't know how the JPEG compression algorithm works under-the-hood. Come with me on an adventure where we uncover and understand the JPEG algorithm and then write some Python code to decode a JPEG image.

(6964 words)

Reverse Engineering Nike Run Club Android App Using Frida

After using apktool for reverse-engineering android apps I learned about Frida. Ever wondered how you can use Frida to snoop around Android apps? Learn how to do that in this step-by-step tutorial where we take a look at the Nike Run Club app.

(2716 words)

Let's Reverse Engineer an Android App!

I had always wondered how Android apps are reverse engineered. If you have ever wondered the same then this article will guide you through the whole process. We will be unpacking, modifying, repacking, and installing an Android APK.

(3210 words)

9 Tips For Better Scripting Experience

Learn about some general scripting tips that will help you level up your scripting game. I learned them the hard-way but you don't have to.

(1831 words)

Why I Moved Away From Wordpress.com

I recently moved pythontips.com from Wordpress to Hugo. I talk about the rationale for doing so and what benefits (if any) I have observed after this migration.

(1583 words)

Migrating from Wordpress.com to Hugo With Comments

If you are thinking about migrating from WordPress to Hugo (or any other static site generator) you can learn from my experience. I talk about the steps I took. You will be able to preserve the comments and SEO.

(1549 words)

Docker attach vs exec & When to Use What

I have been working quite a lot with Docker for my current project. If attach & exec have been giving you some trouble then this post will teach you the difference b/w both. You will also learn about when to use what.

(417 words)

Account Hacked, Send $2000 in Bitcoin

A friend recently received an email from a Hacker demanding $2000 in Bitcoin. In this article you will learn how the hackers get the emails and passwords of unsuspecting users and whether you should actually send them $2000 or not.

(1070 words)

Software Engineering Within SpaceX

Have you ever been curious about how Software engineering within SpaceX works? I did some research and compiled my notes in this article. There are also some insightful comments from the readers at the bottom.

(1349 words)

Setting Up Passwordless SSH and Alias For Remote Login

Whenever I set up a new server I make sure I set up passwordless SSH login. It makes it easy to get into a box without typing in the password every single time. Learn about how you can do something similar for your servers.

(496 words)

Making Generative Portraits Using Processing

Do you know what generative algorithms are? I talk about how I used generative algorithms and Processing to make portraits for my advanced studio projects class.

(481 words)

First Step into the World of Generative Art

Have you used Processing before? It allows you to create sketches using programming. Take a look at some looping GIFs I made using Processing. I will share some resources that you can use to make your own perfectly looping GIFs.

(141 words)

My Internship Experience at ASAPP

In summer 2019, I interned at a communication startup called ASAPP in NYC. I talk about my experience and what I learned during my time there.

(705 words)

Python mind-teaser: Make the function return True

I came across this teaser on Reddit. It took me some time to figure out the solution. Look at the question and see if you can figure it out on your own before looking at my detailed writeup.

(519 words)

Running Staticman on Hugo Blog With Nested Comments

No blog is complete without comments. There are a lot of options out there which allow you to add comments to your static blog. In this article, I talk about how to setup Staticman for your Hugo blog. Process is similar for other static site generators.

(2238 words)

Setting up dev environment for SciPy

Someone recently reached out and asked me how to setup a dev environment for SciPy. Read this article to find out how.

(362 words)

Golang: Check if a key exists in map

I have been working with Golang quite a lot. This is my first time working with it professionally. I share some methods for checking key existance in maps in Golang.

(469 words)

Speeding up Python code using multithreading

Oftentimes people complain about Python being slow without realizing that there are simple solutions to their problems. Learn about how to leverage multiprocessing in Python and speed up some of your scripts by 10x or more.

(457 words)

Running Python in the Browser

I wasn't aware about the different solutions for running Python in the browser so I invited Shaun from Anvil to give us a run-down of what is available out there.

(1809 words)

Looking for a Single in New York City

I am moving to New York for the summer and, therefore, I am looking for a single in the city. If you have any leads please send them my way!

(153 words)

Extracting Data from Nike Run Club & Visualizing It

I have been using Nike Run Club for years. I liked using it but was super unhappy with the fact that I wasn't officially allowed to export my data. I went ahead and reversed their API. Learn about how you too can extract your data from NRC.

(438 words)

Creating Offline Custom Style Maps With tileserver-gl

Tileserver-gl is an amazing project that allows you to make custom styles for maps. Learn about how to make beautiful styled map posters using tileserver-gl. The best part? It is completely open source!

(1484 words)

6 Tips Before You Write Your Next Bash Cronjob

I spent the full summer writing Bash cronjobs for a research project. I had to learn far too many things the hard way. I am hoping that this article will help you spend less time stumbling around and more time producing useful results.

(765 words)