What are Makefiles and Why should anyone use them?

Makefiles are one of the most useful tools I’ve been working with. I can say that it can be useful for lots of projects (with any language). What is Makefile? Makefiles are essentially a place where you can store your most frequently used commands in one place. They make repetitive tasks easier by creating short commands. Let’s take a look at sample file: install_packages: pip install -r requirements.txt generate_deps: pip-compile requirements....

July 19, 2024 · 5 min · 907 words · Amir

Setting Up Caddy for Reverse Proxy is dead simple

I’ve recently found Caddy as a tool to assign urls to my docker services and I’m quite happy with it. I’ve done other reverse proxies like Nginx and Traefik in the past but they are too complicated for my needs. Let’s start. Let’s say that you want to assign your url like newservice.amirpourmand.ir to a service in a VM with a public IP address. I’ll go you through it. Also, It has multiple benefits....

July 3, 2024 · 3 min · 533 words · Amir

How to Record Google Meet Session With OBS Studio

Some days ago, I wanted to record a Google Meet session as a podcast and I didn’t want to pay for just recording the call, neither to google nor third party services. Here’s how you can do it step by step. First, install OBS Studio (which is available on all OSes) and open it up. Before recording anything, you should set your Base Canvas Resolution. Otherwise, you may end up with odd resolutions which are hard to edit....

May 19, 2024 · 2 min · 367 words · Amir

Browser Extensions I use

Here are some most important chrome extensions I use almost on a daily basis. All of them can be installed on chromium browsers. But, they may not be available on Firefox or other browsers. Bitwarden Bitwarden is the first thing I install on every browser. It saves all my passwords on all my devices. I rather not depend on Google to save my passwords since It limits my options to just use same-old Chrome....

March 12, 2024 · 2 min · 366 words · Amir

A Great Combination of Jupyter + Conda + Docker

I’ve always wanted a clean local environment to install python packages in it. To me, it should have multiple requirements: 1- Installing packages should be easy enough. I mean I just want to use pip install that and not worry about anything else. 2- Switching between python environments should be easy. If I happen to need multiple environments in my system, I want to be able to easily switch between them....

December 8, 2023 · 3 min · 588 words · Amir

Useful Linux Commands and Scripts

I’ve been working for some time with Linux and I feel that sharing some scripts and also tools I frequently use can be helpful. Search History history | grep seach_string or Ctrl+R. Search Log files In order to search a folder to see if a string exists in the whole folder: grep -ir "string to search" . Show File and Folder Size To analyze file size, there are several ways....

December 5, 2023 · 4 min · 707 words · Amir

How to Sync Obsidian between Android, Windows and Mac via GIT

Introduction I’ve tried many tools and tutorials to sync my obsidian notes between android and windows. They all have the same problems: Some need subscription service (Obsidian Sync) which I’m not willing to pay Some can’t handle editing the same file (Sync via GoogleDrive, Dropbox and …) Others need complicated setup and maintenance. My Solution This solution takes some time (at most 10 minutes) to setup. But, once it is finished, it works perfectly....

January 16, 2023 · 6 min · 1251 words · Amir