<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wasi's Log</title><link>https://wasi0013.com/</link><description>Recent content on Wasi's Log</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 14 Sep 2026 13:21:03 +0600</lastBuildDate><atom:link href="https://wasi0013.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Engineering spatial control in generative AI with micro-composition and stacking iterative line-art</title><link>https://wasi0013.com/2026/09/14/are-generative-models-the-next-paintbrush/</link><pubDate>Mon, 14 Sep 2026 13:21:03 +0600</pubDate><guid>https://wasi0013.com/2026/09/14/are-generative-models-the-next-paintbrush/</guid><description>&lt;p&gt;Is it possible to draw a deterministic abstract piece of &amp;lsquo;artwork&amp;rsquo; from scratch without an expensive generative AI image model, relying entirely on a chat window? If you feed a complex conceptual prompt into Gemini, ChatGPT, or Claude, the output is almost always a chaotic, non-deterministic mashup that ignores spatial logic. I discovered that by abandoning complex one-shot prompts and instead using an iterative, spatial-stacking technique, you can almost constrain the model&amp;rsquo;s hallucinations close to your original vision.&lt;/p&gt;</description></item><item><title>Data Visualization Challenge: The Struggle to Visualize thousands of Zettelkasten Notes and How I Solved It</title><link>https://wasi0013.com/2025/09/22/data-visualization-challenge-the-struggle-to-visualize-thousands-of-zettelkasten-notes-and-how-i-solved-it/</link><pubDate>Mon, 22 Sep 2025 19:42:32 +0600</pubDate><guid>https://wasi0013.com/2025/09/22/data-visualization-challenge-the-struggle-to-visualize-thousands-of-zettelkasten-notes-and-how-i-solved-it/</guid><description>&lt;p&gt;When I started taking &lt;a href="https://zettelkasten.de/"&gt;Zettelkasten&lt;/a&gt; notes in Obsidian, I never thought about scale. I just kept writing, linking, and letting the ideas grow. I initially kept all my work and personal notes together. All the notes on parenting, hobbies, personal projects, study, client projects, document on small nuances, design decisions, fragments of architectural studies, and reflections on engineering problems in one place. The notes helps me a lot, it makes me productive.&lt;/p&gt;</description></item><item><title>Detecting and Fixing Data Quality Problems in Data Pipelines and ML Systems</title><link>https://wasi0013.com/2025/09/21/detecting-and-fixing-data-quality-problems-in-data-pipelines-and-ml-systems/</link><pubDate>Sun, 21 Sep 2025 19:22:41 +0600</pubDate><guid>https://wasi0013.com/2025/09/21/detecting-and-fixing-data-quality-problems-in-data-pipelines-and-ml-systems/</guid><description>&lt;p&gt;Early in my career, I built many web scrapers, some of these early scrapy scrapers used to aggregate product pricing data from multiple e-commerce websites. The initial dataset looked complete, and basic analysis suggested reliable trends. Once I integrated the data into a dashboard for decision-making, inconsistencies appeared due to slight differences in HTML structure across sites. These hidden issues caused subtle quiet failure, but the impact stacked up quickly after weeks. This was a nice example of the hidden risk of poor data quality problems in data pipelines.&lt;/p&gt;</description></item><item><title>Notes on Solving Math Equations in Python with SymPy and Today’s LLMs</title><link>https://wasi0013.com/2025/09/20/notes-on-solving-math-equations-in-python-with-sympy-and-todays-llms/</link><pubDate>Sat, 20 Sep 2025 16:27:26 +0600</pubDate><guid>https://wasi0013.com/2025/09/20/notes-on-solving-math-equations-in-python-with-sympy-and-todays-llms/</guid><description>&lt;p&gt;Back in my early computer science studies, I had jot down notes on solving math problems. Most of them were scratch work, scattered examples of equations, and the occasional attempt to generalize a pattern. Those notes were never meant for anyone else, but looking back now, they captured the foundation of how I learned to connect mathematics with code.&lt;/p&gt;</description></item><item><title>My notes on Cloudflare Pages for Deploying Fast, Secure Websites in minutes</title><link>https://wasi0013.com/2025/09/19/my-notes-on-cloudflare-pages-for-deploying-fast-secure-websites-in-minutes/</link><pubDate>Fri, 19 Sep 2025 21:03:25 +0600</pubDate><guid>https://wasi0013.com/2025/09/19/my-notes-on-cloudflare-pages-for-deploying-fast-secure-websites-in-minutes/</guid><description>&lt;p&gt;I’ve been using Cloudflare Pages for a while and recently decided to jot down my setup process and workflow in a note. Deploying websites often involves juggling build steps, configuration, and waiting for updates to propagate. &lt;a href="https://pages.cloudflare.com"&gt;Cloudflare Pages&lt;/a&gt; simplifies much of that, but it’s not magic, you still need to understand your build and routing.&lt;/p&gt;</description></item><item><title>Deskflow in Action: How I Share My Mac Keyboard and Mouse with Linux</title><link>https://wasi0013.com/2025/09/18/deskflow-in-action-how-i-share-my-mac-keyboard-and-mouse-with-linux/</link><pubDate>Thu, 18 Sep 2025 07:27:40 +0600</pubDate><guid>https://wasi0013.com/2025/09/18/deskflow-in-action-how-i-share-my-mac-keyboard-and-mouse-with-linux/</guid><description>&lt;p&gt;My desk setup used to look tidy, but working with both a &lt;strong&gt;&lt;a href="https://amzn.to/4ml5Dpy"&gt;Mac mini M4&lt;/a&gt;&lt;/strong&gt; and a &lt;strong&gt;Linux laptop&lt;/strong&gt; turned it into a daily annoyance. Each device had its own keyboard and trackpad, and I constantly found myself reaching back and forth, adjusting to different layouts and shortcuts. It wasn’t just inconvenient; it broke my focus whenever I had to switch machines.&lt;/p&gt;</description></item><item><title>My Neovim workflow in 2025: LSP, autocompletion, and fast navigation</title><link>https://wasi0013.com/2025/09/17/my-neovim-workflow-in-2025-lsp-autocompletion-and-fast-navigation/</link><pubDate>Wed, 17 Sep 2025 15:59:34 +0600</pubDate><guid>https://wasi0013.com/2025/09/17/my-neovim-workflow-in-2025-lsp-autocompletion-and-fast-navigation/</guid><description>&lt;p&gt;I’ve primarily used &lt;strong&gt;&lt;a href=""&gt;VS Code&lt;/a&gt; and &lt;a href=""&gt;Vim&lt;/a&gt;&lt;/strong&gt; over the years. Both have served me well, but recently I decided to transition from Vim to &lt;strong&gt;&lt;a href="https://neovim.io"&gt;Neovim&lt;/a&gt;&lt;/strong&gt; to take advantage of modern features like built-in LSP, asynchronous plugins, and advanced autocompletion.&lt;/p&gt;&#10;&lt;p&gt;In this article, I’ll share my &lt;strong&gt;personal Neovim workflow in 2025&lt;/strong&gt;, optimized for speed, navigation, and productivity. This setup is specifically tailored on my &lt;strong&gt;&lt;a href="https://amzn.to/46ayoAJ"&gt;Mac Mini M4&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Fix Python 3.12 Segmentation fault (Core dumped) in Ubuntu</title><link>https://wasi0013.com/2023/10/17/fix-python-3-12-segmentation-fault-core-dumped-in-ubuntu/</link><pubDate>Tue, 17 Oct 2023 06:44:19 +0600</pubDate><guid>https://wasi0013.com/2023/10/17/fix-python-3-12-segmentation-fault-core-dumped-in-ubuntu/</guid><description>&lt;h3 id="bug"&gt;Bug&lt;/h3&gt;&#10;&lt;p&gt;When I installed and ran Python 3.12 in Ubuntu for the first time, I got a Segmentation fault (Core dumped) error. I downloaded the latest release from the &lt;a href="http://python.org/downlaod"&gt;official website&lt;/a&gt;. and built Python from the source using the below command:&lt;/p&gt;</description></item><item><title>Tiny Django Tips - Use cycle instead of boring "if else" in template tags</title><link>https://wasi0013.com/2022/08/21/tiny-django-tips-use-cycle-instead-of-boring-if-else-in-template-tags/</link><pubDate>Sun, 21 Aug 2022 06:30:34 +0600</pubDate><guid>https://wasi0013.com/2022/08/21/tiny-django-tips-use-cycle-instead-of-boring-if-else-in-template-tags/</guid><description>&lt;p&gt;Often we need to do alternate things in every steps of a django template for loop while doing things in a loop in a django template. For example, let&amp;rsquo;s say you want to create a widget similar to the following image&lt;/p&gt;</description></item><item><title>TIL - Find the git commit that deleted a file in a git repository</title><link>https://wasi0013.com/2022/07/17/til-find-the-git-commit-that-deleted-a-file-in-a-git-repository/</link><pubDate>Sun, 17 Jul 2022 16:41:29 +0600</pubDate><guid>https://wasi0013.com/2022/07/17/til-find-the-git-commit-that-deleted-a-file-in-a-git-repository/</guid><description>&lt;p&gt;At first, I was using the following command:&lt;/p&gt;&#10;&lt;h2 id="method-1-using-git-log-file-path-filter"&gt;Method 1: using git log file path filter&lt;/h2&gt;&#10;&lt;p&gt;We can use the below command to search git log for commits that touches an specific file&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git log --all -- deleted_file.example --oneline&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Obviously, instead of &lt;code&gt;deleted_file.example&lt;/code&gt; we will have to write the exact name/path of the file that we are looking for. So, if we are searching for &lt;code&gt;main.py&lt;/code&gt; it will be &lt;code&gt;git log --all -- main.py&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Setup Nginx Reverse Proxy to access PostgreSQL database remotely</title><link>https://wasi0013.com/2021/11/15/setup-nginx-reverse-proxy-to-access-postgresql-database-remotely/</link><pubDate>Mon, 15 Nov 2021 01:16:31 +0600</pubDate><guid>https://wasi0013.com/2021/11/15/setup-nginx-reverse-proxy-to-access-postgresql-database-remotely/</guid><description>&lt;p&gt;In this tutorial, we will be discussing how we can leverage the power of Nginx to create a reverse proxy for our PostgreSQL server. This will allow us to access our PostgreSQL database from remote servers. So for example, let&amp;rsquo;s say you have an app hosted in a vps and you would like to access the app db from your local computer. Then if you setup the nginx reverse proxy on your vps server, you will be able to connect to postgres db directly from your local computer&amp;rsquo;s &lt;a href="https://www.pgadmin.org/download/"&gt;Pgadmin4&lt;/a&gt; app by using your vps ip address and port!&lt;/p&gt;</description></item><item><title>Vim from Scratch Day 2</title><link>https://wasi0013.com/2020/02/11/vim-from-scratch-day-2/</link><pubDate>Tue, 11 Feb 2020 03:22:32 +0600</pubDate><guid>https://wasi0013.com/2020/02/11/vim-from-scratch-day-2/</guid><description>&lt;p&gt;In &lt;a href="https://wasi0013.com/2020/02/04/beginning-vim-from-scratch/"&gt;Day 1&lt;/a&gt;, we learned how to install vim, we also learned the basic navigation shortcuts of vim. Today, we will learn a few more basic vim commands.&lt;/p&gt;&#10;&lt;h3 id="more-navigation"&gt;More Navigation&lt;/h3&gt;&#10;&lt;p&gt;some more navigation to ease up scrolling&lt;/p&gt;&#10;&lt;h4 id="page-navigation"&gt;Page Navigation&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;^U&lt;/code&gt; - Go Up Half a Page (CTRL + U)&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;^D&lt;/code&gt; - Go Down Half a Page (CTRL + D)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="cursor-navigation"&gt;Cursor Navigation&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;zt&lt;/code&gt; - Put Cursor to the top&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;zb&lt;/code&gt; - Put Cursor to the bottom&lt;/li&gt;&#10;&lt;li&gt;zz - Put Cursor to the middle of the screen&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="introducing-help---your-best-vim-buddy"&gt;Introducing Help - Your best vim buddy&lt;/h3&gt;&#10;&lt;p&gt;In Normal mode you can use a command to get help. Just type &lt;code&gt;:h&lt;/code&gt; It will open up vim&amp;rsquo;s help text. You can even search for specific help by specifying what you need, for example:&lt;/p&gt;</description></item><item><title>Beginning Vim From Scratch</title><link>https://wasi0013.com/2020/02/04/beginning-vim-from-scratch/</link><pubDate>Tue, 04 Feb 2020 03:08:50 +0600</pubDate><guid>https://wasi0013.com/2020/02/04/beginning-vim-from-scratch/</guid><description>&lt;p&gt;This year, I am going to explore and learn the basics of &lt;code&gt;vim&lt;/code&gt;. Each day, I aim to learn a few vim commands and post them as a series of blog articles.&lt;/p&gt;&#10;&lt;h2 id="day-1---installation-navigation--how-to-quit-vim"&gt;Day 1 - Installation, Navigation &amp;amp; How to quit vim&lt;/h2&gt;&#10;&lt;h3 id="installation"&gt;Installation&lt;/h3&gt;&#10;&lt;p&gt;check if it is already installed? &lt;code&gt;vim --version&lt;/code&gt; or install it using the following command if you are using ubuntu:&lt;/p&gt;</description></item><item><title>Tweaking Data Personalization settings of your Google Account to minimize your shared data</title><link>https://wasi0013.com/2019/12/26/tweaking-data-personalization-settings-of-your-google-account-to-minimize-your-shared-data/</link><pubDate>Thu, 26 Dec 2019 02:28:17 +0600</pubDate><guid>https://wasi0013.com/2019/12/26/tweaking-data-personalization-settings-of-your-google-account-to-minimize-your-shared-data/</guid><description>&lt;p&gt;Ever wondered how Google knows what you are looking for? Or, had a creepy feeling that Google knows more about you than you know yourself? If so, read on!&lt;/p&gt;&#10;&lt;h2 id="download--backup-all-your-google-data"&gt;Download &amp;amp; Backup all your Google Data&lt;/h2&gt;&#10;&lt;p&gt;Before, I begin, I think it will be fun to know, what data Google already collected about you. Your daily activities in Google Products can be seen here:&lt;/p&gt;</description></item><item><title>How to read Data Matrix using Python in Linux</title><link>https://wasi0013.com/2019/12/17/how-to-read-data-matrix-using-python-in-linux/</link><pubDate>Tue, 17 Dec 2019 01:54:59 +0600</pubDate><guid>https://wasi0013.com/2019/12/17/how-to-read-data-matrix-using-python-in-linux/</guid><description>&lt;p&gt;In this article, I&amp;rsquo;m going to introduce you to an interesting python module named &lt;a href="https://github.com/NaturalHistoryMuseum/pylibdmtx"&gt;pylibdmtx&lt;/a&gt;! This library is written based on the libdmtx library. You can install it in Ubuntu by using the following command:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install libdmtx0a&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now that you have the library installed let&amp;rsquo;s install pylibdmtx. I&amp;rsquo;m assuming you already have python 3 installed. If not go to &lt;a href="https://python.org/download"&gt;https://python.org/download&lt;/a&gt; and install it right away!&lt;/p&gt;</description></item><item><title>PyCON Dhaka 2016 - A Wonderful Memory</title><link>https://wasi0013.com/2019/10/15/python-profiling-pycon-dhaka-2016/</link><pubDate>Tue, 15 Oct 2019 01:43:44 +0600</pubDate><guid>https://wasi0013.com/2019/10/15/python-profiling-pycon-dhaka-2016/</guid><description>&lt;p&gt;Every year, python enthusiasts from all around the world organize a conference to spread knowledge, learn from each other and make lasting connections. Python Community affectionately calls this national python conference as PyCON. PyCON Dhaka 2016 was probably the 2nd PyCON in Bangladesh. I was lucky to attend this one (missed the first one)&lt;/p&gt;</description></item><item><title>How to download a file from a website link using Python script or, code snippet</title><link>https://wasi0013.com/2019/10/04/how-to-download-a-file-from-a-website-link-using-python-script-or-code-snippet/</link><pubDate>Fri, 04 Oct 2019 21:33:01 +0600</pubDate><guid>https://wasi0013.com/2019/10/04/how-to-download-a-file-from-a-website-link-using-python-script-or-code-snippet/</guid><description>&lt;p&gt;In this article, I’m going to demonstrate some code snippets that you can utilize to download files from the Internet using Python. Before we begin, you might be wondering why go through all the hassles of writing scripts to download files when you can simply click and download it by opening it on a browser!&lt;/p&gt;</description></item><item><title>How to Check Web page for SEO Using Python</title><link>https://wasi0013.com/2019/03/23/how-to-check-web-page-for-seo-using-python/</link><pubDate>Sat, 23 Mar 2019 21:14:44 +0600</pubDate><guid>https://wasi0013.com/2019/03/23/how-to-check-web-page-for-seo-using-python/</guid><description>&lt;p&gt;Website SEO aka Search Engine Optimization is important for every modern website. However manually validating SEO criteria is quite cumbersome. It is possible to automate most of the SEO checks using python.&lt;/p&gt;&#10;&lt;p&gt;In this article, I&amp;rsquo;m going to demonstrate some ideas using basic python code snippets. These scripts will work as** a good starting point** for writing tools that can provide insights about Website SEO. We can take help of various python libraries that are available in pip however we will be using &lt;a href="https://github.com/kennethreitz/requests-html"&gt;requests_html&lt;/a&gt; for now.&lt;/p&gt;</description></item><item><title>TIL - Renaming a Git Branch</title><link>https://wasi0013.com/2019/03/16/til-renaming-a-git-branch/</link><pubDate>Sat, 16 Mar 2019 08:01:00 +0600</pubDate><guid>https://wasi0013.com/2019/03/16/til-renaming-a-git-branch/</guid><description>&lt;p&gt;To rename a &lt;a href="https://git-scm.com/"&gt;git&lt;/a&gt; branch locally type the following:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git branch -m &amp;lt;new_branch_name&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="example-of-renaming-a-local-git-branch"&gt;Example of renaming a local git branch&lt;/h4&gt;&#10;&lt;p&gt;Let&amp;rsquo;s say we had a branch &lt;code&gt;patch_stikcynavbar&lt;/code&gt; and we want to fix the spelling then we just type:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git checkout patch_stikcynavbar&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git branch -m patch_stickynavbar&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="example-of-renaming-a-remote-git-branch"&gt;Example of renaming a remote git branch&lt;/h4&gt;&#10;&lt;p&gt;First, we rename the branch locally. Then, we push the renamed branch to &lt;a href="https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches"&gt;remote&lt;/a&gt; and afterwards we delete the old branch. So&lt;/p&gt;</description></item><item><title>Setup Real Time Login Alert using a Telegram Bot in Linux VPS</title><link>https://wasi0013.com/2019/03/05/setup-real-time-login-alert-using-a-telegram-bot-in-linux-vps/</link><pubDate>Tue, 05 Mar 2019 00:07:37 +0600</pubDate><guid>https://wasi0013.com/2019/03/05/setup-real-time-login-alert-using-a-telegram-bot-in-linux-vps/</guid><description>&lt;p&gt;In this article, We are going to setup linux vps login alert based on PAM using Telegram Bot. I am assuming you already have a &lt;a href="https://en.wikipedia.org/wiki/Virtual_private_server"&gt;vps&lt;/a&gt; and know how to use ssh to login.&lt;/p&gt;&#10;&lt;h2 id="1-create-a-telegram-bot-and-get-the-access-token"&gt;1. Create a Telegram Bot and Get the Access Token&lt;/h2&gt;&#10;&lt;p&gt;To create a Telegram bot, we will need a telegram account.&lt;/p&gt;</description></item><item><title>Recommended Books for Beginners to Learn Ethical Hacking</title><link>https://wasi0013.com/2019/02/28/recommended-books-for-beginners-to-learn-ethical-hacking/</link><pubDate>Thu, 28 Feb 2019 02:12:08 +0600</pubDate><guid>https://wasi0013.com/2019/02/28/recommended-books-for-beginners-to-learn-ethical-hacking/</guid><description>&lt;p&gt;In this article, I&amp;rsquo;m attempting to raise your curiosity to learn ethical hacking so that you can get the basic idea of Computer Underground. These books are hand picked and by no means a complete list of all the hacking books you need to master the art of ethical hacking:&lt;/p&gt;</description></item><item><title>It's been three years already...</title><link>https://wasi0013.com/2018/12/29/its-been-three-years-already/</link><pubDate>Sat, 29 Dec 2018 01:16:30 +0600</pubDate><guid>https://wasi0013.com/2018/12/29/its-been-three-years-already/</guid><description>&lt;p&gt;Three years ago, I lost one of the most precious gifts of my life&amp;hellip; My mother (I call her &amp;lsquo;Ammi&amp;rsquo;)&lt;/p&gt;&#10;&lt;p&gt;She had an amazing personality, she was jolly. She was kind to all and never distinguished people in different types or categories. People used to be very fond of her as she treated them with kind words &amp;amp; hospitality.&lt;/p&gt;</description></item><item><title>The Term "Good Programming" - in a nutshell</title><link>https://wasi0013.com/2018/12/25/the-term-good-programming-in-a-nutshell/</link><pubDate>Tue, 25 Dec 2018 16:35:26 +0600</pubDate><guid>https://wasi0013.com/2018/12/25/the-term-good-programming-in-a-nutshell/</guid><description>&lt;p&gt;Nowadays the term &lt;strong&gt;Programming&lt;/strong&gt; is becoming very popular! Specially among those who are involved in any profession related to Computer Science or, Web Development &amp;amp; Design. Most of them do programming more or less everyday! But, not everyone who code is a good programmer!&lt;/p&gt;</description></item><item><title>কিভাবে পাইথনের বেসিকস শিখবো?</title><link>https://wasi0013.com/2018/11/19/learn-python-basics/</link><pubDate>Mon, 19 Nov 2018 01:53:58 +0600</pubDate><guid>https://wasi0013.com/2018/11/19/learn-python-basics/</guid><description>&lt;h2 id="বসক-থক-ইনটরমডয়ট-লভলর-পইথন-পরগরমর-হসব-নজক-গড়-তল"&gt;বেসিক থেকে ইন্টারমিডিয়েট লেভেলের পাইথন প্রোগ্রামার হিসেবে নিজেকে গড়ে তোলা&lt;/h2&gt;&#10;&lt;p&gt;শুরুতেই বলে রাখি, কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ আয়ত্ত করা সোজা কথা না। কারণ, আমি নিশ্চিতভাবেই বলতে পারি, প্রোগ্রামিং এর বিভিন্ন নতুন কনসেপ্ট গুলো বুঝে আত্মস্থ করা এবং সেটাকে কাজে লাগানো অনেক কঠিন, এটাই স্বাভাবিক তা না হলে আপনি অবশ্যই &lt;a href="https://www.imdb.com/title/tt4481414/"&gt;গিফটেড&lt;/a&gt; ;)। যদি সি এস ই বা কম্পিউটার সায়েন্স রিলেটেড সাবজেক্ট ব্যাকগ্রাউন্ড না থাকে তাহলে তো কথাই নাই শেখার পথটুকু আরো দুর্গম/কঠিন বৈকি। কিন্তু তবুও,&lt;/p&gt;</description></item><item><title>How to run Multiple Terminal Sessions on Linux VPS Server</title><link>https://wasi0013.com/2018/10/25/how-to-run-multiple-terminal-sessions-on-linux-vps-server/</link><pubDate>Thu, 25 Oct 2018 21:36:17 +0600</pubDate><guid>https://wasi0013.com/2018/10/25/how-to-run-multiple-terminal-sessions-on-linux-vps-server/</guid><description>&lt;p&gt;&lt;img src="https://wasi0013.com/wp-content/uploads/2018/10/maxresdefault.jpg" alt="maxresdefault"&gt;&lt;/p&gt;&#10;&lt;p&gt;In this article, I will introduce you with one of the handy tool for your vps servers. It is an extremely useful app for maintaining multiple terminal sessions through just one window! This Command Line Utility is called &lt;strong&gt;Screen.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>How to create a .torrent file to share files or directories with a self hosted Private Tracker in Linux</title><link>https://wasi0013.com/2018/10/21/how-to-create-a-torrent-file-in-linux/</link><pubDate>Sun, 21 Oct 2018 14:50:31 +0600</pubDate><guid>https://wasi0013.com/2018/10/21/how-to-create-a-torrent-file-in-linux/</guid><description>&lt;h2 id="what-is-torrent-file"&gt;What is Torrent File?&lt;/h2&gt;&#10;&lt;p&gt;A &lt;a href="https://en.wikipedia.org/wiki/Torrent_file"&gt;Torrent File&lt;/a&gt; contains metadata of file system and directories that you want to distribute using the BitTorrent File Distribution System. Along with the meta data it also contains list of trackers. The Network location of trackers are noted in the tracker list.&lt;/p&gt;</description></item><item><title>Learn Fundamentals of Computer Programming Using Python - Python Workshop 2018</title><link>https://wasi0013.com/2018/10/15/learn-fundamentals-of-computer-programming-using-python-python-workshop-2018/</link><pubDate>Mon, 15 Oct 2018 22:10:36 +0600</pubDate><guid>https://wasi0013.com/2018/10/15/learn-fundamentals-of-computer-programming-using-python-python-workshop-2018/</guid><description>&lt;p&gt;Last September 2018, I have organized a Free for All Basic Python Workshop in Premier University Chittagong. It was two day Workshop where numerous python enthusiasts participated spontaneously!&lt;/p&gt;&#10;&lt;h2 id="slides-of-day-1"&gt;Slides of Day 1&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://slides.com/wasi0013/lfocpup1#/"&gt;&lt;img src="https://wasi0013.com/wp-content/uploads/2019/03/screenshot-from-2019-03-05-14-08-04.png" alt=""&gt;&lt;/a&gt;&#10;*&lt;a href="https://slides.com/wasi0013/lfocpup1#/"&gt;https://slides.com/wasi0013/lfocpup1#/&lt;/a&gt;&#10;*&lt;/p&gt;&#10;&lt;h2 id="slides-of-day-2"&gt;Slides of Day 2&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://wasi0013.com/lfcpup2/"&gt;&lt;img src="https://wasi0013.com/wp-content/uploads/2019/03/lfcpup2.png" alt=""&gt;&lt;/a&gt;&#10;&lt;em&gt;&lt;a href="https://slides.com/wasi0013/lfocpup2#/"&gt;https://slides.com/wasi0013/lfocpup2#/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Python Nested List Comprehension for...in goes from left to right!</title><link>https://wasi0013.com/2018/09/29/python-nested-list-comprehension-for-in-goes-from-left-to-right/</link><pubDate>Sat, 29 Sep 2018 18:59:33 +0600</pubDate><guid>https://wasi0013.com/2018/09/29/python-nested-list-comprehension-for-in-goes-from-left-to-right/</guid><description>&lt;h2 id="the-confusion"&gt;The Confusion&lt;/h2&gt;&#10;&lt;p&gt;**Scenario: **You were asked to write the equivalent list comprehension of the following code:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;j&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Before, starting with the above one we try the simplest one:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We already know the syntax of list comprehension is as follows:&lt;/p&gt;</description></item><item><title>TIL - How to extract 7z compressed file?</title><link>https://wasi0013.com/2018/03/19/til-how-to-extract-7z-compressed-file/</link><pubDate>Mon, 19 Mar 2018 00:54:00 +0600</pubDate><guid>https://wasi0013.com/2018/03/19/til-how-to-extract-7z-compressed-file/</guid><description>&lt;p&gt;It&amp;rsquo;s pretty simple, in ubuntu you will need a package called: &lt;code&gt;p7zip-full&lt;/code&gt;, You can install it from apt using the following command:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get install p7zip-full&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will enable the &lt;code&gt;7z&lt;/code&gt; command for you. Using that command you can extract the 7z compressed file. For example let&amp;rsquo;s say you have a file &lt;code&gt;my_file.7z&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Contact</title><link>https://wasi0013.com/contact/</link><pubDate>Wed, 28 Feb 2018 19:57:05 +0600</pubDate><guid>https://wasi0013.com/contact/</guid><description>&lt;p&gt;Hi there! Thanks for gifting me your attention.&lt;/p&gt;&#10;&lt;h2 id="looking-for-my-services"&gt;Looking for my services?&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Consultancy -&amp;gt; &lt;a href="https://www.upwork.com/services/product/development-it-wasi-1472001960779612160"&gt;book an appointment&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Idea to MVP | App architecture | Tools, algorithm and technology suggestions&lt;/li&gt;&#10;&lt;li&gt;Pair programming | code review&lt;/li&gt;&#10;&lt;li&gt;Scripting &amp;amp; automation | Web Scraper optimization | Crawling strategy | bypass difficult anti-bot challenges&lt;/li&gt;&#10;&lt;li&gt;Web | backend | API | Chat bot development&lt;/li&gt;&#10;&lt;li&gt;Gemini | OpenAI | ChatGPT | LLM based tools&lt;/li&gt;&#10;&lt;li&gt;Data mining &amp;amp; analysis&lt;/li&gt;&#10;&lt;li&gt;Technical content | Ghost writing (&lt;a href="https://www.upwork.com/freelancers/~016b32a604a2f4b842?s=1017484851352698996#:~:text=Work%20history"&gt;check out the reviews&lt;/a&gt;)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;a href="https://calendar.app.google/hTzSbFbiuJmeCCJA6"&gt;Let&amp;rsquo;s have a chat&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hello World! - A Brief History of Time</title><link>https://wasi0013.com/2017/12/28/hello-world-a-brief-history-of-time/</link><pubDate>Thu, 28 Dec 2017 00:43:35 +0600</pubDate><guid>https://wasi0013.com/2017/12/28/hello-world-a-brief-history-of-time/</guid><description>&lt;p&gt;A few days ago, I &lt;a href="https://www.quora.com/What-are-all-the-programming-languages-you-know-and-how-difficult-are-they/answer/Wasi-Mohammed-Abdullah"&gt;answered&lt;/a&gt; a question on Quora. I thought it worth sharing! Let me walk you through those first few years of my programming career! Its been a lot of fun!&lt;/p&gt;&#10;&lt;h3 id="when-did-i-start-programming"&gt;When did I Start Programming?&lt;/h3&gt;&#10;&lt;p&gt;I started coding from 2012. It was the year when I enrolled for my Bachelors on &lt;a href="http://puc.ac.bd"&gt;Premier University Chittagong&lt;/a&gt; My first Computer was a Pentium III desktop with a 15 inch CRT monitor, 80 GB HD and, 512 MB Ram. I used to call it Ancient Karl. I have upgraded it with a brand new mother board, Dual Core CPU, 160 GB HD &amp;amp; 1 GB ram later!&lt;/p&gt;</description></item><item><title>Making a Stand Alone Executable from a Python Script using PyInstaller</title><link>https://wasi0013.com/2017/10/03/making-a-stand-alone-executable-from-a-python-script-using-pyinstaller/</link><pubDate>Tue, 03 Oct 2017 12:29:54 +0600</pubDate><guid>https://wasi0013.com/2017/10/03/making-a-stand-alone-executable-from-a-python-script-using-pyinstaller/</guid><description>&lt;p&gt;There are plenty of tools available for converting &lt;a href="https://www.python.org/"&gt;python&lt;/a&gt; script into &lt;a href="https://en.wikipedia.org/wiki/Executable"&gt;executable&lt;/a&gt;. For example, check out:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://www.pyinstaller.org/"&gt;PyInstaller&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://pypi.python.org/pypi/py2exe/0.9.2.0"&gt;py2exe&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;For Python 2, I used to prefer py2exe. It is a neat tool that does the trick by making a stand alone executable from python script. The one problem I faced was, py2exe used to support only python 2! Then I moved on to PyInstaller. Now the good thing is, py2exe now provides support to Python 3 as well! I might share my py2exe experience as well but, that will be in another article.&lt;/p&gt;</description></item><item><title>Dreamcatcher IT - The Journey Begins !</title><link>https://wasi0013.com/2017/05/16/dreamcatcher-it-the-journey-begins/</link><pubDate>Tue, 16 May 2017 05:20:04 +0600</pubDate><guid>https://wasi0013.com/2017/05/16/dreamcatcher-it-the-journey-begins/</guid><description>&lt;p&gt;Today, I&amp;rsquo;m pretty excited! In the name of Almighty Allah, we are starting a new venture! Stand up and chase your dreams. Life is meant to be a challenge where we all have to struggle or fight with the things we want to earn. Obstacles, challenges, rough time will come. We will stand strong and overcome all cause its our dream and we are passionate about it! Wish us luck and keep us in your dua.&lt;/p&gt;</description></item><item><title>How to take Password input in Python</title><link>https://wasi0013.com/2017/04/03/how-to-take-password-input-in-python/</link><pubDate>Mon, 03 Apr 2017 22:44:11 +0600</pubDate><guid>https://wasi0013.com/2017/04/03/how-to-take-password-input-in-python/</guid><description>&lt;p&gt;Did you know? There is a &lt;a href="https://www.python.org/"&gt;python&lt;/a&gt; module in Python Standard Library called &lt;a href="https://docs.python.org/2/library/getpass.html"&gt;getpass&lt;/a&gt;. The purpose of this library is to securely take input from user!&lt;/p&gt;&#10;&lt;p&gt;The module is very handy for sensitive inputs such as passwords / keys or any kind of credentials.&lt;/p&gt;</description></item><item><title>When to use Abstract Class in Python?</title><link>https://wasi0013.com/2017/01/03/when-to-use-abstract-class-in-python/</link><pubDate>Tue, 03 Jan 2017 23:06:36 +0600</pubDate><guid>https://wasi0013.com/2017/01/03/when-to-use-abstract-class-in-python/</guid><description>&lt;p&gt;In this article, I would like to answer a common question that pops up in mind whenever we start to &lt;a href="https://realpython.com/python3-object-oriented-programming/"&gt;learn Object Oriented Programming in Python&lt;/a&gt;.  But before we begin exploring the use case, first lets briefly discuss about what really is an abstract class in python:&lt;/p&gt;</description></item></channel></rss>