<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.1">Jekyll</generator><link href="https://amitsealami.com/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://amitsealami.com/blog/" rel="alternate" type="text/html" /><updated>2026-02-11T20:24:20+00:00</updated><id>https://amitsealami.com/blog/feed.xml</id><title type="html">Amit Seal Ami’s Blog</title><subtitle>Blog of Amit Seal Ami</subtitle><author><name>Amit Seal Ami</name></author><entry xml:lang="en"><title type="html">AI-Coding আর প্রোডাক্টিভিটি এর ফাঁদ - ডাটা যা বলে</title><link href="https://amitsealami.com/blog/2026/02/01/ai-coding-comprehension-debt/" rel="alternate" type="text/html" title="AI-Coding আর প্রোডাক্টিভিটি এর ফাঁদ - ডাটা যা বলে" /><published>2026-02-01T00:00:00+00:00</published><updated>2026-02-01T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2026/02/01/ai-coding-comprehension-debt</id><content type="html" xml:base="https://amitsealami.com/blog/2026/02/01/ai-coding-comprehension-debt/"><![CDATA[<p>AI ব্যবহার করে প্রোডাক্টিভিটি দুমদাম বেড়ে যাচ্ছে সবখানে শনৈশনৈ করে - এহেন দাবি নিয়ে শুরু থেকেই সন্দিহান ছিলাম। কারণ তেমন কিছু না - বছর দশেক (বা বিশেক, বা ত্রিশেক) আগে বার হওয়া সফটওয়্যার ইঞ্জিনিয়ারিং এর সাথে জড়িত কয়েকটা পেপারের মূল বক্তব্যগুলো মনে ছিলো।</p>

<p>১) সফটওয়্যার ইঞ্জিনিয়ারিং এ দৈনন্দিন কাজের সবচেয়ে বেশি সময় যায় কী করতে গিয়ে? কোডিং এ কী লেখা হয়েছে, সেটা হোক নিজের লেখা বা টীম মেম্বারের, সেটা বুঝতে গিয়ে যায় প্রায় ৭০% সময়! মাত্র ৫-১৫% সময় লাগে কোড লিখতে। পেপারটা ২০১৫ এর।</p>

<p>২) গ্লোবাল সফটওয়্যার ইঞ্জিনিয়ারিং - মানে মাল্টি ন্যাশনাল টীম গুলোর ক্ষেত্রে সবচেয়ে বেশি সময় যায় কীসে? অন্য দেশের টীম মেম্বারের রেসপন্স পেতে। কিন্তু কিসের জন্য রেসপন্স? অন্যেরা কোডে কে কী করেছে সেটা বুঝতে! এই বিষয়ের পেপারটা ২০০৮ এর।</p>

<p>৩) এবারে আসি একদম ক্লাসিক লিটারেচার এ। ফ্রেডি ব্রুকস তার মিথিকাল ম্যান মান্থ এ লিখেছিলেন সেই ১৯৭৫ এর দিকে - প্রোগ্রামিং সহজে স্কেল আপ করা যায় না, কারণ ঐ কে কী লিখেছে সেটা বুঝা বড়ই কঠিন। আর যখন কেউ টীমে ঢুকে, তখন তার সময় চলে যায় এটা বুঝতে বুঝতেই যে কই কোড আছে, কেন আছে, কই পাল্টাচ্ছে, আর কেন পাল্টাচ্ছে। দুমদাম করে নতুন কাউকে ঢুকালে সে পুরো ব্যাপারটা না বুঝেই কোডে হাত লাগাবে এটাও মোটামুটি নিশ্চিত, আর তার পরে পুরানো যারা আগে যা বুঝতো - সেটাতেও গ্যাঞ্জাম লেগে যাবে।
তা এইগুলোর কারণে AI/Vibe-Coding এর কারণে কোডের লাইনের সংখ্যা বাড়বে। কিন্তু সফটওয়্যার ইঞ্জিনিয়ারিং এ সবচেয়ে বেশি সময় লাগে মেইনটেনেন্স-এ, মানে যে কোড ইতিমধ্যেই আছে সেটার পরিবর্তন এ, আর তার সাথে নতুন কোড লেখাতে। কিন্তু জেনারেট করা কোড যদি না বুঝি আমরা, সময়ের সাথে সাথে ঐ না বুঝার পরিমাণটাও বাড়বে। এটার একটা গালভরা নামও হয়ে গেছে ইন্ডাস্ট্রিতে - <em>Comprehension Debt</em>।</p>

<p>এসব মিলিয়েই আমি ঐ প্রোডাক্টিভিটি বাড়ছে দাবি বিষয়ে সন্দিহান ছিলাম - শুরু থেকেই।</p>

<!-- more -->

<h2 id="ডাটাড্রিভেন-গবেষণা-যা-বলে">ডাটাড্রিভেন গবেষণা যা বলে</h2>

<p>এখন আসি একদম সাম্প্রতিক কিছু ডাটাড্রিভেন (মানে ফলাফলগুলো সব কাজকর্মের ডাটা এনালাইসিস করে বার করা হয়েছে) ২০২৬ এর গবেষণায়।</p>

<p>১) AI ব্যবহার করলে ভেলোসিটি বাড়ে—এটা সন্দেহাতীত ভাবে সত্যি। কিন্তু ভেলোসিটি মানেই কি প্রোডাক্টিভিটি? ভেলোসিটি তো আসলে খালি কোডের লাইন আর কমিটের সংখ্যা। সেগুলো বাড়লেই যে প্রোডাক্টিভিটি বাড়ে এমন না।</p>

<p>২) গবেষণা বলছে এই ভেলোসিটি বৃদ্ধিটাও সাময়িক। দীর্ঘমেয়াদে দেখা যাচ্ছে ভেলোসিটি তো আগের অবস্থায় চলে এসেছেই, সাথে আবার বেড়ে গেছে কোডের জটিলতা আর ওয়ার্নিং এর সংখ্যা। সেটাও কম না, প্রায় ২০-৪০%!</p>

<p>৩) এর চেয়েও বড় ঝামেলা দেখা যাচ্ছে দক্ষতা অর্জনে। AI ব্যবহার করে নতুন প্রোগ্রামিং স্কিল শেখা (যেমন নতুন লাইব্রেরী ব্যবহার করা) এবং তার পরেই সেটা ব্যবহার করায় দক্ষতা বিষয়ক কেস স্টাডি চলছে অনেক। সবচেয়ে সাম্প্রতিক গবেষণায় দেখা গেছে যারা AI ব্যবহার করে না, তাদের তুলনায় AI ব্যবহারকারীদের কাজ শেষ করতে তো সময় কম লাগেই না (মানে AI ব্যবহার করাও যা, না করাও তা। কাজ শেষ করতে একই রকম সময় লাগছে), উল্টো বিষয়ভিত্তিক দক্ষতা কমে গেছে! কারণটাও সহজ, AI ব্যবহার করার সময় তার আউটপুট বার করতেই ব্যস্ত ছিলো, কী করছে না করছে নিজেরাই খেয়াল করে নাই।</p>

<h2 id="তাহলে-কী-মানে-দাঁড়াচ্ছে-সব-মিলিয়ে">তাহলে কী মানে দাঁড়াচ্ছে সব মিলিয়ে?</h2>

<p>১) AI জিনিসটা চলেই আসছে, বাদ দেয়ার উপায় নাই। কিন্তু সেটা ঠিক মতো ব্যবহার না করলে স্বল্প সময়ের জন্য “ফিল-গুড” মার্কা কাজ করলেও, লম্বা দৌঁড়ে ধরা খাবার বিশাল সম্ভাবনা আছে। মানে প্রোটোটাইপিং এর জন্য ভালো, কিন্তু বড় সময় ধরে সফটওয়্যার চালাতে হলে ঐ কম্প্রিহেনশন ডেব্ট টার সমাধান করা লাগবেই।</p>

<p>২) AI ব্যবহার করা যেতে পারে, কিন্তু খেয়াল করে বুঝে শুনে। নাহলে AI কিছু একটা করে দিবে, আমরাও সেটা খুশি মনে নিয়ে কোডে ঢুকিয়ে দিবো না বুঝেই। কিন্তু জেনারেটেড কোডে গ্যাঞ্জাম থাকলে আর সেটা নিজেরা টের না পেলে ভবিষ্যতে ধরা খাবার সম্ভাবনা বেশি।</p>

<h2 id="references">References</h2>
<ol>
  <li><a href="https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;arnumber=4638666">Global Software Development: Who Does It? - 2015 IEEE 23rd International Conference on Program Comprehension</a></li>
  <li><a href="https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;arnumber=7181430">I Know What You Did Last Summer
An Investigation of How Developers Spend Their Time - 2008 IEEE International Conference on Global Software Engineering</a></li>
  <li><a href="https://web.eecs.umich.edu/~weimerw/2018-481/readings/mythical-man-month.pdf">The Mythical Man Month - Frederick Brooks</a></li>
  <li><a href="https://arxiv.org/pdf/2511.04427">Speed at the Cost of Quality -
How Cursor AI Increases Short-Term Velocity and Long-Term Complexity in Open-Source Projects - 23rd International Conference on Mining Software Repositories (MSR’26)</a></li>
  <li><a href="https://www.anthropic.com/research/AI-assistance-coding-skills">How AI assistance impacts the formation of coding skills - Anthropic</a></li>
</ol>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[AI ব্যবহার করে প্রোডাক্টিভিটি দুমদাম বেড়ে যাচ্ছে সবখানে শনৈশনৈ করে - এহেন দাবি নিয়ে শুরু থেকেই সন্দিহান ছিলাম। কারণ তেমন কিছু না - বছর দশেক (বা বিশেক, বা ত্রিশেক) আগে বার হওয়া সফটওয়্যার ইঞ্জিনিয়ারিং এর সাথে জড়িত কয়েকটা পেপারের মূল বক্তব্যগুলো মনে ছিলো। ১) সফটওয়্যার ইঞ্জিনিয়ারিং এ দৈনন্দিন কাজের সবচেয়ে বেশি সময় যায় কী করতে গিয়ে? কোডিং এ কী লেখা হয়েছে, সেটা হোক নিজের লেখা বা টীম মেম্বারের, সেটা বুঝতে গিয়ে যায় প্রায় ৭০% সময়! মাত্র ৫-১৫% সময় লাগে কোড লিখতে। পেপারটা ২০১৫ এর। ২) গ্লোবাল সফটওয়্যার ইঞ্জিনিয়ারিং - মানে মাল্টি ন্যাশনাল টীম গুলোর ক্ষেত্রে সবচেয়ে বেশি সময় যায় কীসে? অন্য দেশের টীম মেম্বারের রেসপন্স পেতে। কিন্তু কিসের জন্য রেসপন্স? অন্যেরা কোডে কে কী করেছে সেটা বুঝতে! এই বিষয়ের পেপারটা ২০০৮ এর। ৩) এবারে আসি একদম ক্লাসিক লিটারেচার এ। ফ্রেডি ব্রুকস তার মিথিকাল ম্যান মান্থ এ লিখেছিলেন সেই ১৯৭৫ এর দিকে - প্রোগ্রামিং সহজে স্কেল আপ করা যায় না, কারণ ঐ কে কী লিখেছে সেটা বুঝা বড়ই কঠিন। আর যখন কেউ টীমে ঢুকে, তখন তার সময় চলে যায় এটা বুঝতে বুঝতেই যে কই কোড আছে, কেন আছে, কই পাল্টাচ্ছে, আর কেন পাল্টাচ্ছে। দুমদাম করে নতুন কাউকে ঢুকালে সে পুরো ব্যাপারটা না বুঝেই কোডে হাত লাগাবে এটাও মোটামুটি নিশ্চিত, আর তার পরে পুরানো যারা আগে যা বুঝতো - সেটাতেও গ্যাঞ্জাম লেগে যাবে। তা এইগুলোর কারণে AI/Vibe-Coding এর কারণে কোডের লাইনের সংখ্যা বাড়বে। কিন্তু সফটওয়্যার ইঞ্জিনিয়ারিং এ সবচেয়ে বেশি সময় লাগে মেইনটেনেন্স-এ, মানে যে কোড ইতিমধ্যেই আছে সেটার পরিবর্তন এ, আর তার সাথে নতুন কোড লেখাতে। কিন্তু জেনারেট করা কোড যদি না বুঝি আমরা, সময়ের সাথে সাথে ঐ না বুঝার পরিমাণটাও বাড়বে। এটার একটা গালভরা নামও হয়ে গেছে ইন্ডাস্ট্রিতে - Comprehension Debt। এসব মিলিয়েই আমি ঐ প্রোডাক্টিভিটি বাড়ছে দাবি বিষয়ে সন্দিহান ছিলাম - শুরু থেকেই।]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://amitsealami.com/blog/images/ai-comprehension-debt-notebooklm.jpg" /><media:content medium="image" url="https://amitsealami.com/blog/images/ai-comprehension-debt-notebooklm.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">YouTube vs Spotify - I choose YouTube</title><link href="https://amitsealami.com/blog/2024/01/07/youtube-music-vs-spotify/" rel="alternate" type="text/html" title="YouTube vs Spotify - I choose YouTube" /><published>2024-01-07T00:00:00+00:00</published><updated>2024-01-07T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2024/01/07/youtube-music-vs-spotify</id><content type="html" xml:base="https://amitsealami.com/blog/2024/01/07/youtube-music-vs-spotify/"><![CDATA[<figure class="center">
    <img src="/blog/images/youtube-music-vs-spotify.jpg" alt="YouTube vs Spotify - Initial Image generated using Microsoft Bing Image Creator" />
    <figcaption>YouTube vs Spotify - Initial Image generated using Microsoft Bing Image Creator</figcaption>
</figure>

<h2 id="my-experience-with-spotify-premium">My Experience with Spotify Premium</h2>

<p>I have been using Spotify Premium for quite some time, for at least two years. I say at least two years because that is how far Spotify allows me to check the order history. As far as I remember, when I first subscribed to Spotify Premium, YouTube Music was not introduced yet.</p>

<p>How has my experience with Spotify been so far?</p>

<p>I ❤️ it.</p>

<p>At this point, you are probably asking: <em>hang on a minute - you literally wrote you’ve chosen YouTube, but you love Spotify? Is this clickbait?</em> 🤔</p>

<p>It is not. I love Spotify. It has great features for music enthusiasts - playlists, recommendations, offline music, etcetera etcetera. Pretty much anything you can ask for. It even shows you “scrollable” lyrics using Musixmatch! There is <strong>nothing wrong with how Spotify offers what it offers</strong>. Heck, I am pretty sure after Google <a href="https://killedbygoogle.com/">[killed off]</a> <a href="https://9to5google.com/2023/09/26/google-podcasts-YouTube-music/">[Google Podcasts]</a>, Spotify will gain even more users because of its podcasts.</p>

<p>The issue, however, is with <strong>what Spotify offers</strong> when it comes to music. Sure, both YouTube and Spotify offer the official tracks from many popular Artists.</p>

<!-- more -->

<h2 id="why-i-prefer-youtube">Why I prefer YouTube</h2>

<p>Because YouTube/YouTube Music is more open, it allows independent/popular/artists to upload covers and unofficial music tracks you can not find anywhere on Spotify. I accidentally learned this when exchanging my favorite tracks with a friend who is a music enthusiast and realized that I have been missing out on some really great tracks.</p>

<p>Case in point: Can’t help falling in Love by Twenty One Pilots.</p>

<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style>
<div class="embed-container">    <iframe title="YouTube video player" width="640" height="390" src="//www.youtube.com/embed/6ThQkrXHdh4" frameborder="0" allowfullscreen=""></iframe></div>

<p>It is a fantastic cover by Twenty One Pilots. But, you <a href="https://open.spotify.com/track/7CdYyn6uUyzysY5z7gubZq?si=1582b2145d964310">[can not find it in Spotify]</a> if you search for it. Of course it is never recommended to me, and even if you can find it using Google Search in Spotify’s web version, you <em>can not play it</em>.</p>

<p>And that is the deal breaker for me.</p>

<p>Sure, YouTube Music as a player can improve. But I am not too keen on choosing a platform that is perfect as a music player, but does not let me listen to diverse, less-known tracks, covers, and/or artists. Of course you can disagree with me. I am in fact curious to learn about your thoughts on this, so please feel free to drop a comment.</p>

<p>I still have to figure out a way to export my Spotify Playlists to YouTube Music. Somehow.</p>

<p>If you do know a way to automate that for hundreds of tracks, please let me know!</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[Used Spotify exclusively for two+ years. Comparing playlists with a music enthusiast friend, I realized that Spotify is lacking.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://amitsealami.com/blog/images/youtube-music-vs-spotify.jpg" /><media:content medium="image" url="https://amitsealami.com/blog/images/youtube-music-vs-spotify.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">MASC’s Demo Paper got accepted to FSE! [Special]</title><link href="https://amitsealami.com/blog/2023/07/24/fse-demo-paper-special/" rel="alternate" type="text/html" title="MASC’s Demo Paper got accepted to FSE! [Special]" /><published>2023-07-24T00:00:00+00:00</published><updated>2023-07-24T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2023/07/24/fse-demo-paper-special</id><content type="html" xml:base="https://amitsealami.com/blog/2023/07/24/fse-demo-paper-special/"><![CDATA[<p>While I have published demonstration track papers previously at <a href="https://arxiv.org/pdf/1804.02533.pdf">ICSE/MobileSoft’18</a> and <a href="https://conf.researchr.org/profile/icse-2021/amitsealami">ICSE’21</a>, the ESEC/FSE’23 tool demo paper that got accepted is <em>special</em>. Note that both ICSE and FSE are top tier software engineering conferences.</p>

<p>What makes this particular publication unique is the list of authors. Syed Yusuf Ahmed and Radowan Redoy, both 4th/final year students from IIT, University of Dhaka, Bangladesh, are the first authors with me in this paper!</p>

<figure class="center">
    <img src="https://i.imgur.com/OgbgdVl.png" alt="Image is a collage of two images arranged vertically. The top image shows the status of the MASC demo paper as accepted, the bottom image shows the first page of the paper with authors from both W&amp;M and IIT." />
    <figcaption>MASC Tool Demo paper accepted at the ESEC/FSE'23!</figcaption>
</figure>

<!-- more -->

<p>This became possible through the <a href="https://amitsealami.com/blog/2023/04/30/foreign-advisor-IIT/">International Scholar Mentorship program</a> I envisioned, designed, pitched, and implemented last year with support from my advisors, Dr. Adwait Nadkarni and Dr. Denys Poshyvanyk from William &amp; Mary, and my teachers and colleagues at IIT, University of Dhaka - Dr. Kazi Sakib, Dr. Shafiul Alam, and Dr. Ahmedul Kabir. The program allows students to officially work on academic research guided by international scholars for their final, 6-credit Software Engineering project in the Bachelor’s program of IIT.</p>

<p>While it is common for students to collaborate and get involved with academic research unofficially throughout the world, <strong>this is the first program of its type in Bangladesh, especially within the SE/CS discipline, to the best of my knowledge.</strong> As far as I know and remember, this is also the first time an IIT Undergrad student’s first author paper got accepted at any top tier software engineering conference, in any track!</p>

<p>Of course, it became possible through the efforts of Yusuf and Radowan, and the reviews this paper received are testaments to that. It was a pleasure for me to guide both of them directly.</p>

<p>Yusuf will join Purdue University this Fall for his Ph.D., where he plans to work on DL/Security. Radowan had personal goals to achieve this year and aims to go for Ph.D. next year!</p>

<p>You can read more about <a href="https://amitsealami.com/MASC/">MASC here</a>. You can also take a look at its <a href="https://github.com/Secure-Platforms-Lab-W-M/MASC">open source code</a>!</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[I designed International Scholar Mentorship Program for IIT, University of Dhaka. Participant students learned and published a FSE'23 Demo Paper!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://amitsealami.com/blog/images/default.jpg" /><media:content medium="image" url="https://amitsealami.com/blog/images/default.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">It is time we talk, Overwatch 2</title><link href="https://amitsealami.com/blog/2023/07/02/giving-up-ow/" rel="alternate" type="text/html" title="It is time we talk, Overwatch 2" /><published>2023-07-02T00:00:00+00:00</published><updated>2023-07-02T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2023/07/02/giving-up-ow</id><content type="html" xml:base="https://amitsealami.com/blog/2023/07/02/giving-up-ow/"><![CDATA[<p>(Gamer rant. You may not understand all the terms, but that’s okay. You will get the gist)</p>

<p>I have been playing Overwatch for quite some time. Over Two Thousand Hours, literally - in over half a decade. Then, I decided that finally, it is time to give it up.</p>

<!-- more -->

<p>I played this game more than any other game, starting in 2016. It has compelling lore, the mechanics are awesome, and the developers are passionate. Or at least they used to be.</p>

<p>It kept changing and grew, for better or for worse, in half a decade.  “Balances” kept rolling out that fundamentally changed mechanics. Sometimes that meant you needed to learn all those pixel-precise muscle memories. Again. My main, favorite choice was Hanzo - a midrange offensive unit that has to balance between sniping abilities with slow, arc-like projectiles (basically, arrows). That means not only do you have to be good at aiming, but you need to be good at predicting too! And his lore. I really liked his lore.</p>

<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style>
<div class="embed-container">    <iframe title="YouTube video player" width="640" height="390" src="//www.youtube.com/embed/oJ09xdxzIJQ" frameborder="0" allowfullscreen=""></iframe></div>

<p>I decided to play comp for a very short time a couple of seasons ago in OW2 and then got busy - only to find that I was ranked Diamond in the Offense role. That equates to a top 10 percentile amongst all OW2 players. That’s great, especially when I am teaming up with entirely unknown people solo queuing.</p>

<p>But then Hanzo got more mechanical changes that reduced his offensive capabilities (nerfed). Sure, why not - dude is overpowered in the right hands. But here is the issue: <em>playing him right requires skills and predictions</em>.</p>

<p>I decided to play Zenyatta, a support role, this season. While being a “support” unit, his attack is projectile based, and more importantly, he can be an “extra” offensive unit if played right. Once again, I reached Diamond rank (mainly) using him. If I were only gaming, I’d not settle for anything below at least Masters rank (top 5 percentile), but I am not only gaming in life now. Gotta balance between my family, PhD, and everything else. I decided to take a pause and consider a few things.</p>

<p>Zen is getting a Nerf soon. That is understandable, really. He can also be overpowered (when played right). But this change is primarily due to the weird transition from 6v6 to 5v5 format. OW2 from OW was abrupt, unplanned, and full of broken promises developers made that they confirmed they are not going to honor. They provided valid reasons. But those reasons only means they did not need to move from OW to OW2 in the first place.</p>

<p>Which made me think.</p>

<p><strong>Why bother?</strong></p>

<p>Deep inside, I know that I am a gamer and can be competitive. But why bother re-learning all those things when games like these are “balanced” by developers every few months, often at their own flawed whims? Changes that require players to re-learn fundamental things from all over, again and again?</p>

<p>More importantly, I won’t be able to invest much time and energy in this game, improving my aim when I get bigger fish to fry. Because even if I gain theoretically perfect muscle memory, there is no guarantee that the relevant mechanics won’t be changed in future. Sure, OW2 is at the sweetspot of lore, competitive FPS, <em>super-powers</em> and strategic gameplay. I’d even say it offers the best type of fun in a competitive, fantasy-based FPS game where every second counts. You need to strategize and counter-strategize against people who are probably just as good as you or even better. But am I enjoying this learning and relearning process that’s entirely out of my hand?</p>

<p><strong>I am not.</strong></p>

<p>Should I move to another competitive FPS game instead? Well, I will again have to invest at least hundreds of hours to “get good”. Time, that I simply won’t have in near future.</p>

<p>So maybe it is time for me to give up the mantle of competitive FPS and focus on … enjoying games as they are.</p>

<p>Just games.</p>

<p><em>p.s.:</em> I took long breaks from Overwatch about 5 times now. This is the first time I am writing a post specifically about taking a perma-break. While I will miss all those fun moments,</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[I have been playing Overwatch for quite some time. Over Two Thousand Hours, literally - in over half a decade. Then, I decided that finally, it is time to give it up.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://amitsealami.com/blog/images/default.jpg" /><media:content medium="image" url="https://amitsealami.com/blog/images/default.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="bn"><title type="html">আইআইটি এবং আন্তর্জাতিক গবেষক প্রোগ্রামের আদ্যপান্ত</title><link href="https://amitsealami.com/blog/2023/04/30/foreign-advisor-IIT/" rel="alternate" type="text/html" title="আইআইটি এবং আন্তর্জাতিক গবেষক প্রোগ্রামের আদ্যপান্ত" /><published>2023-04-30T00:00:00+00:00</published><updated>2023-04-30T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2023/04/30/foreign-advisor-IIT</id><content type="html" xml:base="https://amitsealami.com/blog/2023/04/30/foreign-advisor-IIT/"><![CDATA[<p>একটা খুব ভালো খবর সবার সাথে ভাগাভাগি করি 🎉। আশা করি আমার আনন্দে আপনারাও আনন্দিত হবেন।</p>

<p><a href="http://iit.du.ac.bd/">আইআইটি</a>, ঢাকা বিশ্ববিদ্যালয় এর বেশ কয়েকজন শিক্ষার্থী গত বছর তাদের ৮ম সেমিস্টার (৪র্থ বর্ষের) ফাইনাল গবেষণাধর্মী প্রোজেক্ট সম্পন্ন করেছে Software Engineering এর গবেষক প্রফেসর ডঃ <a href="https://scholar.google.com/citations?user=gyLFs0IAAAAJ&amp;hl=en&amp;oi=ao">ডেনিস পশিভানিক</a>, সাইবার সিকিউরিটি এর গবেষক প্রফেসর ডঃ <a href="https://scholar.google.com/citations?user=Al2MvLoAAAAJ&amp;hl=en&amp;oi=ao">অদ্বৈত নাদকারনি</a> এর সাথে। সেই প্রোজেক্টের মাধ্যমে <strong>তারা গবেষণা এর ব্যাপারে জেনেছে, শিখেছে, আর কাজ অনুসারে উচ্চশিক্ষার জন্য পেয়েছে তাদের রিকমেন্ডেশন লেটার।</strong> সেই কাজ থেকে গবেষণার পেপার পাবলিশ হলে <strong>তাদের নাম তো থাকবেই অন্যতম লেখক হিসাবে</strong>!
সেই কাজগুলো সাবমিশনে ছিলো বা আছে। প্রকাশিত হলে আরেক ব্লগে আসবে। 😁</p>

<p>এটা সম্ভব হয়েছে আইআইটি এর শিক্ষকদের এবং আমার এডভাইজরদের সহযোগিতায়, এবং ঢাকা বিশ্ববিদ্যালয়ের দেশের বাইরের গবেষকদের সাথে কাজ করার স্বদিচ্ছার কারণে।</p>

<p>আজকের আলাপ এই প্রোগ্রাম কীভাবে হলো, আর প্রোগ্রাম করার সময় কী কী খেয়াল রাখা লেগেছিলো তা নিয়ে।</p>

<!-- more -->

<h2 id="২০১৯-এ-যার-শুরু">২০১৯ এ যার শুরু</h2>

<p>তখন পিএইচডিতে মাত্র ২য় সেমিস্টার চলছে আমার। ফ্যাকাল্টি হিসাবে জয়েন করেছে অস্কার শাপারো, তার এডভাইজর আবার ডেনিসেরও এডভাইজর। খেয়াল করলাম তখনই - অস্কার কলম্বিয়ার যে বিশ্ববিদ্যালয়ে ব্যাচেলরস করেছে, সে বিশ্ববিদ্যালয়ের থেকে প্রায় প্রতি বছর অন্ততঃ একজন শিক্ষার্থী সফটওয়্যার ইঞ্জিনিয়ারিংএ পিএইচডি করতে ডেনিসের ল্যাবে ঢুকে। এটা নিশ্চয়ই কাকতালীয় না, পাইপলাইন তো আছে নিশ্চিত! কিন্তু কেমন সেই পাইপলাইন? কাহিনী কী? অস্কাররে জিজ্ঞাসা করতেই সে বললো, এটা হয়েছে ডেনিসের সাথে পিএইচডি করা বেশ সিনিয়র একজনের কারণে, মারিও। মারিও ডেনিসের সাথে পিএইচডি করার পরে তার দেশে, কলম্বিয়ায়, ফেরত যায়, এবং তার সাথে কাজ করা শিক্ষার্থীরা ম্যাচ করলে (মানে গবেষণায় ভালো, উৎসাহ আছে, কাজের ধরণ মিলে - ইত্যাদি) তাদের সে ডেনিসের কাছে রিকমেন্ড করে, আর তারপরে ভর্তি কমিটির পছন্দ হলে সেই শিক্ষার্থী এখানে পড়াশুনা করতে আসে।</p>

<p>আমি ভাবলাম, ‘ব্যাপারডা ভালো, পছন্দ হৈসে। <strong>কিন্তু আরো ভালো চাই।</strong>’</p>

<p>আইআইটিতে গবেষণা হচ্ছে না এমন না; মাস্টার্স এ হচ্ছে, ব্যাচেলরস এ ৮ম সেমিস্টারের প্রোজেক্টেও হচ্ছে। টপ টিয়ার কনফারেন্স জার্নালে বছর বছর পেপার পাবলিশও হচ্ছে। কিন্তু তাতে শিক্ষার্থীদের আইআইটি কেন্দ্রিক চিন্তাভাবনা গবেষণার সাথেই কেবল পরিচয় হচ্ছে, আশেপাশেও তো তাকানো লাগবে। সেই তাকানোর জন্য যদি ভালো র‍্যাংকওয়ালা গবেষকদের সাথে কাজ করার সুযোগ মিলে, আর ভবিষ্যতে পিএইচডি করার রাস্তাটা সহজ হয় - তাহলে তো সোনায় সোহাগা! সেরকম কিছু একটাই করা দরকার।</p>

<div class="seealso">
    <i class="material-icons">info</i>
    <strong>গবেষকদের দরকার ভালো পিএইচডি গবেষক, আর শিক্ষার্থীদের দরকার ভালো গবেষণার মেন্টর আর রিকমেন্ডেশন লেটার। সুতরাং দুইপক্ষেরই এখানে চাহিদা আছে।</strong>

</div>

<h2 id="২০১৯---২০২১-এর-অপেক্ষা">২০১৯ - ২০২১ এর অপেক্ষা</h2>

<p>২০১৯ থেকে ২০২১ পর্যন্ত তক্কেতক্কে ছিলাম। সরাসরি যদি ৮ম সেমিস্টারের প্রোজেক্ট এ দেশি বিদেশি গবেষকদের মেন্টর বানাতে চাই, সেই গবেষকদের লাভ কী? এই বিষয়ে পটানো লাগলে তো আগে বলার মতো নিজের যোগ্যতা লাগবে।</p>

<p>সুতরাং, অপেক্ষায় রইলাম নিজের প্রোফাইল শক্তপোক্ত করার জন্য, যেন তারা প্রস্তাব দিলো সেটা গুরুত্বের সাথে নেয়।</p>

<p>আফটারঅল, <strong>নিজের যোগ্যতা আগে।</strong></p>

<h2 id="২০২১-এর-নকশাচাল">২০২১ এর নকশাচাল</h2>

<p>২০২১ এ হঠাৎ করেই চোখে পড়লো, ঢাকা বিশ্ববিদ্যালয় চাইছে <a href="https://en.prothomalo.com/youth/education/du-to-engage-foreign-teachers-researchers-in-academic-activities">দেশি বিদেশি গবেষকদের গবেষণা, শিক্ষকতা কার্যক্রমে</a> জড়িত করতে। আমারো মাঝে দিয়ে কয়েকটা <a href="https://amitsealami.com/publications">ভালো গবেষণা প্রকাশিত</a> হয়েছে, সাথে <a href="https://covacci.org/wp-content/uploads/2022/11/Ami_CoVA-CCI-Dissertation-Fellowship-Report-2022.pdf">২টা ডিসার্টেশন ফেলোশিপ</a>, <a href="https://www.vasem.org/coves-alumni">১টা পলিসি ফোলোশিপ</a>, একটা ডিপার্টমেন্টাল ফেলোশিপ, প্রায় এক-দেড় ডজন আন্ডারগ্র্যাড স্টুডেন্টদের আমার এডভাইজরদের তরফ থেকে মেনটরিং বা প্রোজেক্টের জন্য ম্যানেজ করা, অন্য বিশ্ববিদ্যালয়ে <a href="https://www.youtube.com/watch?v=p2OD-5WTOl8">নিমন্ত্রিত গবেষণা বক্তা</a> হয়ে কথা বলা হয়ে গেছে। আর
পিএইচডি ক্যান্ডিডেট হিসাবে আমি তখন গবেষণা সহকর্মী আমার এডভাইজরদের, এর মানে তাদের সাথে কাজ করি, তাদের কথায় না।</p>

<p>সুতরাং, এখনই সময়!</p>

<p>আলাপ শুরু করলাম, আগে আইআইটি এর শিক্ষকদের সাথে আলাপ করা শুরু। কারণ এখানের কেউ মেন্টর হতে রাজি হলো, কিন্তু শিক্ষার্থী নাই - তাহলে হবে কেঁচে গণ্ডুষ। সুতরাং আলাপ করলাম আইআইটি এর ডিরেক্টর, আন্ডারগ্র্যাড প্রোগ্রামের চেয়ার আর ৪র্থ-বর্ষ কমিটি চেয়ারের সাথে। সবার পেলাম সমর্থন, আর তারপরে এডভাইজর আর আইআইটি এর সমন্বয়ে পরিষ্কার করলাম নিচের বিষয়গুলো একটা লিখিত গাইডলাইনের মাধ্যমে। তার চুম্বক অংশগুলো অনেকটা  এরকম:</p>

<ul>
  <li><strong>প্রোজেক্টের প্রস্তাবনা</strong>: এটা হবে আইআইটির আর আন্তর্জাতিক গবেষকদের (এখানে গবেষক = প্রফেসর) সমন্বয়ে। প্রত্যেক আন্তর্জাতিক গবেষক অন্ততঃ একটা সেশন নিবেন, যেখানে তাঁরা বলবেন তাঁদের সাথে কাজ করলে শিক্ষার্থীরা কী শিখতে পারবে, আর কীসে কাজ করবে। সেই আলাপে Non-Disclosure Agreement এর ব্যাপারও থাকতে পারে, কারণ নিদেনপক্ষে গবেষণার কাজ প্রকাশ হবার আগেই সবাই জেনে যাক এটা কেউই চায় না।</li>
  <li><strong>প্রোজেক্টের বিস্তারিত</strong>:  আন্তর্জাতিক গবেষক প্রোজেক্টের কাজ, পরিধি ইত্যাদি আগেই অবহিত করবেন সেশনের আগেই। তাতে আগ্রহী শিক্ষার্থীরা সেশনের আগেই সারাংশ জেনে সিদ্ধান্ত নিতে পারবে তারা সেটায় আগ্রহী নাকি। প্রোজেক্টেটা আন্তর্জাতিক গবেষক এবং আইআইটির গবেষকেরা মিলেও সেটা করতে পারেন। তবে এটা তাঁদের ইচ্ছার উপরে, কারণ দুম করে চাইলেই দুই দেশের গবেষকেরা যৌথভাবে গবেষণা শুরু করতে হয়তো পারবেন না। শিক্ষার্থীরা শিখবে, সেই শেখা থেকে জানা, পরিচয়, তারপর যৌথভাবে গবেষণা এর সুযোগ তৈরি হবে নিজে থেকেই।</li>
  <li><strong>ম্যাচমেকিং</strong>: সেশনগুলোর শেষে শিক্ষার্থীরা যে আন্তর্জাতিক গবেষক এর সাথে কাজ করতে চায় সে বিষয়ে আইআইটিকে অবহিত করবে, এবং আইআইটি তারপরে আলাপ করবে সেই আন্তর্জাতিক গবেষক এর সাথে শিক্ষার্থীর বিষয়ে।</li>
  <li><strong>দেশের থেকেও মেন্টরিং</strong>: কোলাবোরেশন হোক বা না হোক, আইআইটি থেকে একজন গবেষক থাকবেন শিক্ষার্থীকে মেন্টর এবং/অথবা ম্যানেজ করার জন্য। শিক্ষার্থী দুম করেই একজন আন্তর্জাতিক গবেষক এর সাথে কাজ শুরু করতে গেলে নানা সমস্যায় পড়তেই (বা ফেলতেই) পারে, সেটা কমিউনিকেশন গ্যাপ হোক বা আর কিছু। সেগুলোর জন্য আইআইটির দিক থেকে একজন গবেষক থাকবেন শিক্ষার্থীর মেন্টর হিসাবে।</li>
  <li><strong>সবশেষে ফলাফল</strong>: আর অবশ্যই, আন্তর্জাতিক গবেষক সেমিস্টার শেষে ফিডব্যাক দিবেন আইআইটিকে, যেটার সাহায্যে শিক্ষার্থীকে গ্রেডিং করা হবে। কাজ ভালো হলে আন্তর্জাতিক গবেষকদের তরফ থেকে উচ্চশিক্ষায় ভর্তির জন্য রিকমেন্ডেশন লেটার, আর পেপার এ অথর হিসাবে নাম থাকার সুযোগ থাকছে। আর শিক্ষার্থীদেের কোন বাধ্যবাধকতা নেই এডভাইজরের বিশ্ববিদ্যালয়েই এপ্লাই করার জন্য, দুই পক্ষের জন্যই রাস্তা খোলা!</li>
</ul>

<p>মোদ্দা কথা, এমন একটা প্রস্তাবনা তৈরি করা হয়েছে - যেটায় সবাই জিতবে। 🙌</p>

<p>আর কলম্বিয়ার সেই পাইপলাইন এর সাথে এই পাইপলাইনের পার্থক্যটা হচ্ছে, ওখানে পাইপলাইন ব্যক্তিকেন্দ্রিক। <strong>এখানে পাইপলাইন ইনস্টিটিউট আর গবেষণাল্যাব কেন্দ্রিক। ভবিষ্যতে MoU বা আর কিছু হলে ব্যক্তি না থাকলেও পাইপলাইন থেকে যাবে।</strong></p>

<p>এইতো! গত বছর এই প্রসেসে অংশ নেয়া বেশ কয়েকজন শিক্ষার্থীদের উচ্চশিক্ষার আবেদনে রিকমেন্ডেশেন লেটার লিখেছেন আমার দুই এডভাইজর, আর আমার জানামতে তারা সবাই ভালো র‍্যাংকওয়ালা বিশ্ববিদ্যালয়ে পুরো ফান্ডিং সহ ভর্তির সুযোগ পেয়েছে।</p>

<h2 id="এরপরে-কোথায়">এরপরে কোথায়?</h2>

<p>আইআইটিতে গতবছর এটা পরীক্ষামূলক ভাবে চালু হয়েছে মাত্র ২ জন আন্তর্জাতিক গবেষকদের মেন্টরশিপ দিয়ে। এটা বড়সড় পরিসরে করতে হলে, গবেষণায় আগ্রহী শিক্ষার্থীদের সবাইকে আন্তর্জাতিক গবেষকদের মেন্টরিং এর সুযোগ দেয়ার জন্য আন্তর্জাতিক গবেষকদের একটা পুল লাগবে। আর প্রতি বছর একই গবেষক মেন্টরিং করবেন সেটা আশা করাও সম্ভব না। তবে সেই বড় পুল একজনের পক্ষে তৈরি করা সম্ভব না। আইআইটি থেকে পড়াশুনা করে তারপরে আমার মতোই পিএইচডি করছে এরকম শিক্ষার্থীর সংখ্যা কম না। আইআইটিয়ান ফ্যাকাল্টি ছিলো, এখন নিজেরাই আন্তর্জাতিক গবেষক হয়ে গেছেন এরকমও আছেন অনেকে। <strong>তাদের সবারই এগিয়ে আসা লাগবে।</strong></p>

<p>এরকম যখন একবার করা গেছে, আরো করা যাবে। খালি আইআইটিতে না, ধীরে ধীরে সব খানেই।
কিন্তু সেটা করার জন্য সবার একটু এরকম কথা বলা লাগবে, নিজের এডভাইজরের সাথে, নিজের এলামনাই বিশ্ববিদ্যালয়ের সাথে।</p>

<p>এইতো!
 🙂</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[আইআইটি, ঢাকা বিশ্ববিদ্যালয় এর বেশ কয়েকজন শিক্ষার্থী তাদের ৮ম সেমিস্টার (৪র্থ বর্ষের) ফাইনাল গবেষণাধর্মী প্রোজেক্ট সম্পন্ন করেছে ডঃ ডেনিস পশিভানিক আর ডঃ অদ্বৈত নাদকারনি এর সাথে। সেই প্রোজেক্টের মাধ্যমে তারা গবেষণা এর ব্যাপারে জেনেছে, শিখেছে, আর কাজ অনুসারে উচ্চশিক্ষার জন্য পেয়েছে তাদের রিকমেন্ডেশন লেটার। এই আলাপ প্রোগ্রাম কীভাবে হলো, আর প্রোগ্রাম করার সময় কী কী খেয়াল রাখা লেগেছিলো তা নিয়ে।]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://amitsealami.com/blog/images/default_bn.jpg" /><media:content medium="image" url="https://amitsealami.com/blog/images/default_bn.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Absolutely necessary iPad Accessories for Productivity within Budget</title><link href="https://amitsealami.com/blog/2023/04/23/ipad-accessories-I-use/" rel="alternate" type="text/html" title="Absolutely necessary iPad Accessories for Productivity within Budget" /><published>2023-04-23T00:00:00+00:00</published><updated>2023-04-23T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2023/04/23/ipad-accessories-I-use</id><content type="html" xml:base="https://amitsealami.com/blog/2023/04/23/ipad-accessories-I-use/"><![CDATA[<p>Just like you, I am a no-nonsense person. I use my iPad (Air, 4th gen) to read academic papers, annotate them and write notes on them on the fly. Or when I don’t want to carry a laptop around.</p>

<p>Since my use cases are pretty limited, I only use the accessories that I absolutely need. The ones I consider the best, and cheap ones at that. So they won’t be costing you a liver or kidney, but will do exactly what you want it to do. Here they are.
<!-- more --></p>

<div class="imgContainer">



    <div class="imgMySlides">
        <div class="imgNumbertext"> 1 / 3</div>
        <img src="https://i.imgur.com/HcU6UjS.jpg" style="width:100%" alt="TypeCase Touch in Laptop mode" />
    </div>

    <div class="imgMySlides">
        <div class="imgNumbertext"> 2 / 3</div>
        <img src="https://i.imgur.com/KWNJEbL.jpg" style="width:100%" alt="Typecase Touch in Reading Mode" />
    </div>

    <div class="imgMySlides">
        <div class="imgNumbertext"> 3 / 3</div>
        <img src="https://i.imgur.com/iTGemBq.jpg" style="width:100%" alt="TypeCase Touch in Tablet mode for Drawing" />
    </div>

<!-- Next and previous buttons -->
    <a class="imgPrev" onclick="plusSlides(-1)">&#10094;</a>
    <a class="imgNext" onclick="plusSlides(1)">&#10095;</a>
<!-- Image text -->
    <div class="imgCaption-container">
        <p id="imgCaption"></p>
    </div>
    <div class="imgRow">

<div class="imgColumn">
  <img class="imgDemo imgCursor" src="https://i.imgur.com/HcU6UjS.jpg" style="width:100%;" onclick="currentSlide(1)" alt="TypeCase Touch in Laptop mode" />
</div>

<div class="imgColumn">
  <img class="imgDemo imgCursor" src="https://i.imgur.com/KWNJEbL.jpg" style="width:100%;" onclick="currentSlide(2)" alt="Typecase Touch in Reading Mode" />
</div>

<div class="imgColumn">
  <img class="imgDemo imgCursor" src="https://i.imgur.com/iTGemBq.jpg" style="width:100%;" onclick="currentSlide(3)" alt="TypeCase Touch in Tablet mode for Drawing" />
</div>

</div>
</div>

<style>
  /* Position the image container (needed to position the left and right arrows) */
  .imgContainer {
    box-sizing: border-box;
    position: relative;
  }

  /* Hide the images by default */
  .imgMySlides {
    display: none;
  }

  /* Add a pointer when hovering over the thumbnail images */
  .imgCursor {
    cursor: pointer;
  }

  /* Next & previous buttons */
  .imgPrev,
  .imgNext {
    cursor: pointer;
    position: absolute;
    top: 40%;
    width: auto;
    padding: 16px;
    margin-top: -50px;
    color: white;
    font-weight: bold;
    font-size: 20px;
    border-radius: 0 3px 3px 0;
    user-select: none;
    -webkit-user-select: none;
  }

  /* Position the "next button" to the right */
  .imgNext {
    right: 0;
    border-radius: 3px 0 0 3px;
  }

  /* On hover, add a black background color with a little bit see-through */
  .imgPrev:hover,
  .imgNext:hover {
    background-color: rgba(0, 0, 0, 0.8);
  }

  /* Number text (1/3 etc) */
  .imgNumbertext {
    color: #f2f2f2;
    font-size: 12px;
    padding: 8px 12px;
    position: absolute;
    top: 0;
  }

  /* Container for image text */
  .imgCaption-container {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    transform: translate(-50%, -50%);
    text-align: center;
    background-color: #222;
    padding: 2px 16px;
    color: white;
    opacity: 80%;
  }

  .imgRow:after {
    content: "";
    display: table;
    clear: both;
  }

  /* Six columns side by side */
  .imgColumn {
    float: left;
    width: 33.33333333333333%;
  }

  /* Add a transparency effect for thumnbail images */
  .imgDemo {
    opacity: 0.6;
  }

  .imgActive,
  .imgDemo:hover {
    opacity: 1;
  }
</style>

<script src="/blog/assets/image-gallery.js"></script>

<h2 id="apple-pencil-20">Apple Pencil 2.0</h2>

<p>This is the only accessory that is not cheap on this list. But guess what? It is well worth the money. There are alternatives out there, but Apple Pencil beats them all when it comes to usability and usefulness.</p>

<h2 id="paper-screen-protector">Paper Screen Protector</h2>

<p>You want to use your pencil on paper, because <em>that’s natural</em>. But, the iPad screen is made of glass, made smooth for the touch. So, when you want to write notes or draw doodles you probably will experience that the pencil just glides away on the glass protector.</p>

<p>To stop that, you need to use a special screen protector on your glass that introduces juuust the right amount of friction.
Too less, and there is no point using it since it is smooth. Too much, and it will eat your Apple Pencil Nib.
You can replace the nib, but that is not convenient.</p>

<p>I tried several screen protectors till now, and stopped after finding the <a href="https://www.amazon.com/gp/product/B08VHPDKDY/">Bellemond Screen protector</a>. Another one I loved using is the <a href="https://www.amazon.com/gp/product/B07WHNJ9H8/">Mobdik Paperfeel Screen Protector</a>.
Both of them are matte, offer a paper-like scratchy surface with the right amount of friction, and come cheap - less than $10 per protector.</p>

<div class="warning">
    <i class="material-icons">error_outline</i>
    Before attaching the screen protector, watch their video tutorials. Otherwise, you won’t do it right and will ruin it. And don’t expect it to be glossy. Scratchy surface is never glossy.

</div>

<h2 id="case-wo-keyboard">Case W/O Keyboard</h2>

<p>After trying out several types of cases for iPad, I stopped after finding keyboard cases with 360-degree hinge.</p>

<p>Roughly, there are two types of cases, a case that has a keyboard, and a case that does not have a keyboard.
Fair enough, right?
Among the without keyboard cases I tried, I found the Case with Pencil Holder and Transparent back the most usable.
These types of cases are generally light, and the material is soft to protect the iPad from general bumps and drops.
It is also convenient because of the case folding, so you can place the iPad at an angle while reading and/or writing.</p>

<p>When it comes to Keyboard Cases, there are several types.</p>

<ol>
  <li>Case has a Detachable Keyboard. The case is like a portfolio, so you put the keyboard inside the fold of the case when not using it. Generally, prices are around $30.</li>
  <li>Case that has a keyboard attached and you can use the iPad like a laptop. Kinda like Magic Keyboard from Apple. Prices range from $150 to $250.</li>
  <li>Case that has a touchpad and hinge that allows you to position the iPad in versatile ways. The price is around $70.</li>
</ol>

<p>Some of the cases come with a touchpad that supports the iOS gestures.</p>

<p>I personally did not like any case with a detachable keyboard (Type 1). By design, they are made to be thin to be stored in a portfolio-style case. That means the keys need to be soft to support folding and you don’t get that much feedback while typing.</p>

<p>Of course, Type 2 and 3 are the best. At this point, it depends on personal preference. Personally, I found Type 2 to be the most useful after finding the <a href="https://www.amazon.com/gp/product/B0BL18PN6F/r">TypeCase Touch</a> case. It has a 360 hinge, so you can use your iPad like a laptop, like an iPad, place it at an angle for reading - etc. The keyboard is also solid and comes with a USB-C charger port, so that’s another convenience point for me. Did I mention that this particular case also comes with a keyboard backlight with eight different color choices? If these do not convince you of Type 3, I don’t know what will.</p>

<p>So, that’s all I use with my iPad.</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[Just like you, I am a no-nonsense person. I use my iPad (Air, 4th gen) to read academic papers, annotate them and write notes on them on the fly. Or when I don’t want to carry a laptop around. Since my use cases are pretty limited, I only use the accessories that I absolutely need. The ones I consider the best, and cheap ones at that. So they won’t be costing you a liver or kidney, but will do exactly what you want it to do. Here they are.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i.imgur.com/HcU6UjS.jpg" /><media:content medium="image" url="https://i.imgur.com/HcU6UjS.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">A Surprise Gift from VASEM with Historical Ties</title><link href="https://amitsealami.com/blog/2022/10/18/julep-cup/" rel="alternate" type="text/html" title="A Surprise Gift from VASEM with Historical Ties" /><published>2022-10-18T00:00:00+00:00</published><updated>2022-10-18T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2022/10/18/julep-cup</id><content type="html" xml:base="https://amitsealami.com/blog/2022/10/18/julep-cup/"><![CDATA[<p>Today I received a gift that relates to Southern American history and culture.</p>

<p>Engraved on the cup was this: Virginia Academy of Science, Engineering and Medicine (<a href="http://www.vasem.org/">VASEM</a>), COVES 2022 on the other side.</p>

<figure class="center">
    <img src="https://i.imgur.com/aBKe97xl.jpg" alt="COVES Fellow 2022 Julep Cup" />
    <figcaption>COVES Fellow 2022 Julep Cup</figcaption>
</figure>

<p>Of course, <a href="http://www.vasem.org/covesfellowship/meet-the-2022-fellows/">I am one</a> of the Commonwealth of Virginia Engineering &amp; Science (COVES) Policy Fellows for year 2022!</p>

<p>But why a cup? Of this rather peculiar shape?</p>

<!-- more -->
<p>An accompanying card describes it as a Julep Cup.</p>

<p>I learned that there is this Early Southern American tradition of making and gifting such engraved julep cups, usually for special occasions (weddings, births, winning a competition), which dates back to about 200 years ago. People would take it with them while hanging out with family or friends, drinking a mint julep, or something else of choice. It could also be passed on to the next generation as a family heirloom!</p>

<p>This cup was designed by <a href="https://en.wikipedia.org/wiki/John_Adam_(silversmith)">John Adam of Alexandria</a>, one of the earliest, famous silversmiths. He was also one of the people who recommended and certified the first automatic spoon-crafting machine!</p>

<p>This is a relatively small cup, but with rich historical, and cultural connections.</p>

<p>Thank you VASEM! 🙂</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[Today I received a gift that relates to Southern American history and culture. Engraved on the cup was this: Virginia Academy of Science, Engineering and Medicine (VASEM), COVES 2022 on the other side. COVES Fellow 2022 Julep Cup Of course, I am one of the Commonwealth of Virginia Engineering &amp; Science (COVES) Policy Fellows for year 2022! But why a cup? Of this rather peculiar shape?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i.imgur.com/aBKe97xl.jpg" /><media:content medium="image" url="https://i.imgur.com/aBKe97xl.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Discussing IoT, VCDPA and NextGen TVs at the JCOTS</title><link href="https://amitsealami.com/blog/2022/10/18/Amit-COVES-JCOTS/" rel="alternate" type="text/html" title="Discussing IoT, VCDPA and NextGen TVs at the JCOTS" /><published>2022-10-18T00:00:00+00:00</published><updated>2022-10-18T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2022/10/18/Amit-COVES-JCOTS</id><content type="html" xml:base="https://amitsealami.com/blog/2022/10/18/Amit-COVES-JCOTS/"><![CDATA[<p>This October, I was invited to discuss and share Cybersecurity related Policy suggestions at the Joint Commission on Technology and Science (<a href="http://dls.virginia.gov/commissions/jcots/jcots.htm">JCOTS</a>), a permanent legislative agency of the Commonwealth of Virginia. I should mention that I was hosted by the Joint Commission on Technology and Science (JCOTS), Commonwealth of Virginia to work as a Commonwealth of Virginia Engineering and Science - <a href="http://www.vasem.org/covesfellowship/meet-the-2022-fellows/">COVES Policy Fellow</a> from May to August 2022.</p>

<figure class="center">
    <img src="https://i.imgur.com/lVyOwm8.png" alt="Amit Seal Ami Discussing IoT, VCDPA and NextGen TVs at the JCOTS via Zoom, a virtual meeting platform" />
    <figcaption>Discussing IoT, VCDPA and NextGen TVs at the JCOTS</figcaption>
</figure>

<p>I discussed the Cybersecurity issues JCOTS needs to focus on, specifically related to the Internet of Things and NextGen Televisions. Furthermore, I stressed that Policymakers and Researchers need to collaborate more to create better policies for the greater public interest.</p>

<p>The JCOTS Chairman agreed and stressed that JCOTS needs to consider not only public policy creation but also enforcement as I mentioned.</p>

<p>Finally, the JCOTS Chairman on behalf of the Commission thanked me for my contributions.</p>

<p>Personally, I am happy and humbled as the Virginia Academy of Science, Engineering, and Medicine (VASEM) chose me as a COVES Policy Fellow, and JCOTS for hosting me.</p>

<p>🙏</p>

<!-- more -->

<p>I am sharing the full slides and speech, as well as the discussion at the JCOTS here.</p>

<h3 id="video-of-speech">Video of Speech</h3>

<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style>
<div class="embed-container">    <iframe title="YouTube video player" width="640" height="390" src="//www.youtube.com/embed/FBNSCZyqH9c" frameborder="0" allowfullscreen=""></iframe></div>

<h3 id="slides">Slides</h3>

<script async="" class="speakerdeck-embed" data-id="82c9c1d0ef1942a19d8bbb8e73e2579f" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[This October, I was invited to discuss and share Cybersecurity related Policy suggestions at the Joint Commission on Technology and Science (JCOTS), a permanent legislative agency of the Commonwealth of Virginia.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i.imgur.com/lVyOwm8.png" /><media:content medium="image" url="https://i.imgur.com/lVyOwm8.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Reviewing Papers: Adding a note Page after each page in PDF programmatically</title><link href="https://amitsealami.com/blog/2022/09/13/reviewing-papers-adding-pages/" rel="alternate" type="text/html" title="Reviewing Papers: Adding a note Page after each page in PDF programmatically" /><published>2022-09-13T00:00:00+00:00</published><updated>2022-09-13T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2022/09/13/reviewing-papers-adding-pages</id><content type="html" xml:base="https://amitsealami.com/blog/2022/09/13/reviewing-papers-adding-pages/"><![CDATA[<p>I had this brilliant idea of adding a <a href="https://lsc.cornell.edu/how-to-study/taking-notes/cornell-note-taking-system/">cornell style note</a> page after every single page of a paper I am reviewing. Because why not, right? Everyone loves tinkering around the reviewing process instead of actually reviewing, so … there.</p>

<p>Turns out that it is fairly simple to do this programmatically using <code class="language-plaintext highlighter-rouge">python</code> these days. You need a PyPi packaged called <code class="language-plaintext highlighter-rouge">pypdf2</code> package before, and a template style cornell page that you can generate from <a href="https://incompetech.com/graphpaper/cornelllined/">here</a>.</p>

<p><img src="https://i.imgur.com/pQaQgq2.png" alt="An image with two PDF thumbnail images side by side. The first image shows the PDF version of this website, with an arrow stretching from it to the second image. The second image is of cornel style note page." /></p>

<p>You are golden at this point. Here are the steps:</p>

<!-- more -->

<h2 id="1-setting-up-environment">1. Setting Up Environment</h2>

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nb">cd</span> &lt;your favorite directory&gt;

<span class="c"># create a virtual environment</span>
python3 <span class="nt">-m</span> venv venv

<span class="c"># activate the virtual environment</span>
<span class="nb">source </span>venv/bin/activate

<span class="c"># install the PyPDF2 package</span>
pip <span class="nb">install </span>pypdf2</code></pre></figure>

<h2 id="2-script-to-add-pages">2. Script to Add Pages</h2>

<figure class="highlight"><pre><code class="language-python" data-lang="python"><span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">argv</span>
<span class="kn">from</span> <span class="nn">PyPDF2</span> <span class="kn">import</span> <span class="n">PdfMerger</span><span class="p">,</span> <span class="n">PdfFileReader</span>
<span class="kn">import</span> <span class="nn">sys</span>

<span class="k">def</span> <span class="nf">add_pages</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">template_pdf_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
    <span class="n">input_pdf</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
    <span class="n">page_count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">PdfFileReader</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="p">).</span><span class="n">getNumPages</span><span class="p">()</span>
    <span class="n">template</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">template_pdf_path</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
    <span class="n">merger</span> <span class="o">=</span> <span class="n">PdfMerger</span><span class="p">()</span>

    <span class="k">print</span><span class="p">(</span><span class="s">"original page count: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">page_count</span><span class="p">))</span>
    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">page_count</span><span class="p">):</span>
        <span class="k">print</span><span class="p">(</span><span class="s">"adding templatr page at "</span><span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
        <span class="n">merger</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">fileobj</span><span class="o">=</span><span class="n">input_pdf</span><span class="p">,</span> <span class="n">pages</span><span class="o">=</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
        <span class="n">append_index</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">i</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
        <span class="n">merger</span><span class="p">.</span><span class="n">merge</span><span class="p">(</span><span class="n">position</span><span class="o">=</span><span class="n">append_index</span><span class="p">,</span> <span class="n">fileobj</span><span class="o">=</span><span class="n">template</span><span class="p">,</span> <span class="n">pages</span><span class="o">=</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>

    <span class="n">template</span><span class="p">.</span><span class="n">close</span><span class="p">()</span>
    <span class="n">input_pdf</span><span class="p">.</span><span class="n">close</span><span class="p">()</span>
    <span class="n">write_file</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="p">,</span> <span class="n">merger</span><span class="p">)</span>

<span class="k">def</span> <span class="nf">write_file</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">merger</span><span class="p">:</span> <span class="n">PdfMerger</span><span class="p">):</span>
    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="o">+</span><span class="s">"merged.pdf"</span><span class="p">,</span> <span class="s">"wb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">out</span><span class="p">:</span>
        <span class="n">merger</span><span class="p">.</span><span class="n">write</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
    <span class="n">merger</span><span class="p">.</span><span class="n">close</span><span class="p">()</span>

<span class="k">def</span> <span class="nf">main</span><span class="p">():</span>

    <span class="k">print</span><span class="p">(</span><span class="n">sys</span><span class="p">.</span><span class="n">argv</span><span class="p">)</span>
    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="p">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">3</span><span class="p">:</span>
        <span class="k">print</span><span class="p">(</span><span class="s">"Please specify the absolute paths to the input file and template file"</span><span class="p">)</span>
        <span class="k">print</span><span class="p">(</span><span class="s">"Format: add_comment_page input_pdf_path template_pdf_path "</span><span class="p">)</span>
        <span class="nb">exit</span><span class="p">()</span>
    <span class="n">input_pdf_path</span> <span class="o">=</span> <span class="n">sys</span><span class="p">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
    <span class="n">template_pdf_path</span> <span class="o">=</span> <span class="n">sys</span><span class="p">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
    <span class="n">add_pages</span><span class="p">(</span><span class="n">input_pdf_path</span><span class="p">,</span> <span class="n">template_pdf_path</span><span class="p">)</span>

<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
    <span class="n">main</span><span class="p">()</span></code></pre></figure>

<p>Aaand that’s all folks!</p>

<p>Code, Helper Script, <code class="language-plaintext highlighter-rouge">requirements.txt</code> for pip, and Cornell Style notepage as PDF are available in this <a href="https://github.com/LordAmit/automating-boring-tasks-using-python/tree/master/pdfs">GitHub repo link</a> as well, so get going!</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[I had this brilliant idea of adding a cornell style note page after every single page of a paper I am reviewing. Because why not, right?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i.imgur.com/pQaQgq2.png" /><media:content medium="image" url="https://i.imgur.com/pQaQgq2.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">9 Years of Brightness Controller - Experience, Gratitude and Lessons Learned</title><link href="https://amitsealami.com/blog/2022/09/12/nine-years-of-brightness-controller/" rel="alternate" type="text/html" title="9 Years of Brightness Controller - Experience, Gratitude and Lessons Learned" /><published>2022-09-12T00:00:00+00:00</published><updated>2022-09-12T00:00:00+00:00</updated><id>https://amitsealami.com/blog/2022/09/12/nine-years-of-brightness-controller</id><content type="html" xml:base="https://amitsealami.com/blog/2022/09/12/nine-years-of-brightness-controller/"><![CDATA[<p>It has been (a little over) nine years since I first started working on <a href="https://github.com/LordAmit/Brightness">Brightness Controller</a> for Linux. My goals were simple when making this,</p>

<p>a) learn Python as a programming language and</p>

<p>b) solve a pain point for me.</p>

<p>Turns out that my pain point is also a pain point for other people!</p>

<p><img src="https://i.imgur.com/qEdo7DK.jpg" alt="" /></p>

<!-- more -->
<p>Somehow, it gained attention from nice people across the Internet. It got featured in <a href="https://www.omgubuntu.co.uk/2017/05/adjust-external-monitor-brightness-ubuntu">OMG Ubuntu</a>, people suggested it on Reddit, and some suggested that it should be <a href="https://pointieststick.com/2021/09/10/this-week-in-kde-a-random-grab-bag-collection-of-stuff/">integrated into KDE</a> by Default or at least they should make something similar. <a href="https://github.com/LordAmit/Brightness/graphs/contributors">Collaborators</a> joined in and helped make Brightness Controller way better than ever possible and helped make this available across Ubuntu PPA, Arch Linux AUR, and more. Just from PPA alone, Brightness Controller has been downloaded about <a href="https://ppa-stats.sheth.io/#/?ppaName=brightness-controller&amp;ppaOwner=apandada1&amp;packageName=brightness-controller">160K times</a>! For all these, I am grateful.</p>

<h2 id="future-of-brightness-controller">Future of Brightness Controller</h2>

<p>People still email me about ideas, suggestions, and new features - such as 1) keyboard shortcuts, 2) setting brightness based on a preset on start-up, 3) making it adjust brightness and color temperature automatically like f.lux or Redshift, 4) making it not be overwritten by f.lux or redshift and 5) finally - making it compatible with Wayland.</p>

<p>Of these, some of them are possible (1-3), and some of them are technically impossible or simply out of my hand (4 and 5). Many of them are good to have.
Indeed, I receive new pull requests implementing new features sometimes. However, progress has slowed down due to the following:</p>

<ul>
  <li>I use a Macbook for work purposes these days, so even if I can check and run code. Even though PyQt works cross-platform, I can not test the actual Brightness Controlling function enabled by <code class="language-plaintext highlighter-rouge">xrandr</code>, the backend. It does not work anywhere except Linux, as far as I know.</li>
  <li>More importantly, I have way more on my hands than before!</li>
</ul>

<p>It seems like someone else will have to take up the mantle to do it! 😅</p>

<p>Indeed, I fixed several weird, silly bugs last weekend and completely changed the structure of the project to make it more future-proof when it comes to packaging and publishing. Before that, the last major change happened over a year ago. But that’s okay - Brightness Controller was built with several key design principles in mind. It does not do much, but whatever it is supposed to do, does it well, hopefully.</p>

<h2 id="lessons-learned">Lessons Learned</h2>

<p>I am a believer in <em>Less is more</em> and <em>Separation of Concern</em> concepts when it comes to designing and programming.</p>

<p><strong>Separation of Concern (SoC)</strong>: I tried to make sure I follow them when making Brightness Controller. If you look at the code, you will probably notice that it is badly written, long, verbose, and does not follow OOP that well. But it still follows SoC, which has helped me maintain the code base for the last decade. Therefore, if you write code, make sure you follow this principle. 😉</p>

<p><strong>Less is More</strong>: The reason why Brightness Controller works is that it is created to contain no nonsense. I could’ve tried to force in lots of fancy functionalities over time. Do you know what that would mean? More Bugs! No one wants that. Hence, making it simple is better in the long run!</p>

<p><strong>Third Party APIS is a Pain</strong>: Things keep changing outside the scope of Brightness Controller. For example, Wayland will possibly replace <code class="language-plaintext highlighter-rouge">xrandr</code>-supported displays soon in Linux entirely, and I do not see anything at this point that can be used as the backend for Brightness Controller in Wayland.</p>

<p><strong>If It ain’t Broken, Don’t Fix it</strong>: Self-explanatory, to be honest. 😉</p>

<p>Anyway, that’s all I wanted to talk about. Have fun people.</p>

<p>Brightness Controller will always be free. Free as in free beer, and free from any type of data tracking whatsoever. Heck, I have no way of knowing how many people are using it right now. It solved my problem, and I hope it solved yours too and <em>gave your eyes some relief</em>.</p>]]></content><author><name>Amit Seal Ami</name></author><summary type="html"><![CDATA[9 Years of Brightness Controller - Experience, Gratitude and Lessons Learned']]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i.imgur.com/wiz4ZKv.jpg" /><media:content medium="image" url="https://i.imgur.com/wiz4ZKv.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>