<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hirakjyoti Das</title>
    <description>The latest articles on DEV Community by Hirakjyoti Das (@hir4k).</description>
    <link>https://dev.to/hir4k</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2872555%2F34809751-9d81-48de-9bf8-e396fd52988a.png</url>
      <title>DEV Community: Hirakjyoti Das</title>
      <link>https://dev.to/hir4k</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hir4k"/>
    <language>en</language>
    <item>
      <title>The Missing 65-Byte File That Broke My Production Celery Setup</title>
      <dc:creator>Hirakjyoti Das</dc:creator>
      <pubDate>Tue, 07 Jul 2026 02:51:08 +0000</pubDate>
      <link>https://dev.to/hir4k/the-missing-65-byte-file-that-broke-my-production-celery-setup-2keb</link>
      <guid>https://dev.to/hir4k/the-missing-65-byte-file-that-broke-my-production-celery-setup-2keb</guid>
      <description>&lt;p&gt;There are bugs that teach you a new algorithm.&lt;/p&gt;

&lt;p&gt;There are bugs that teach you a new framework.&lt;/p&gt;

&lt;p&gt;And then there are bugs that make you question everything you know about software.&lt;/p&gt;

&lt;p&gt;This was one of those bugs.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;“It works in staging…”&lt;/p&gt;

&lt;p&gt;I had just finished implementing email notifications in my Django application.&lt;/p&gt;

&lt;p&gt;Whenever a new user signed up, a Celery task would send a notification email to the admin.&lt;/p&gt;

&lt;p&gt;The code was straightforward.&lt;/p&gt;

&lt;p&gt;@receiver(post_save, sender=get_user_model())&lt;br&gt;
def notify_admin_on_new_user(sender, instance, created, **kwargs):&lt;br&gt;
    if not created:&lt;br&gt;
        return&lt;br&gt;
    send_new_user_notification_task.delay(&lt;br&gt;
        user_id=instance.id,&lt;br&gt;
        username=instance.username,&lt;br&gt;
        email=instance.email,&lt;br&gt;
        name=instance.name,&lt;br&gt;
    )&lt;/p&gt;

&lt;p&gt;The task itself simply called Django’s send_mail().&lt;/p&gt;

&lt;p&gt;Nothing fancy.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Everything worked locally&lt;/p&gt;

&lt;p&gt;Local development?&lt;/p&gt;

&lt;p&gt;Perfect.&lt;/p&gt;

&lt;p&gt;The Celery worker received the task immediately.&lt;/p&gt;

&lt;p&gt;Emails were delivered.&lt;/p&gt;

&lt;p&gt;No errors.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;So I deployed it…&lt;/p&gt;

&lt;p&gt;Production came online.&lt;/p&gt;

&lt;p&gt;I created a new user from Django Admin.&lt;/p&gt;

&lt;p&gt;Instead of a success page, I got:&lt;/p&gt;

&lt;p&gt;500 Internal Server Error&lt;/p&gt;

&lt;p&gt;My first thought:&lt;/p&gt;

&lt;p&gt;“Redis is down.”&lt;/p&gt;

&lt;p&gt;It wasn’t.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The traceback&lt;/p&gt;

&lt;p&gt;The logs were terrifying.&lt;/p&gt;

&lt;p&gt;The first thing I saw was this:&lt;/p&gt;

&lt;p&gt;AttributeError:&lt;br&gt;
'ChannelPromise' object has no attribute '&lt;strong&gt;value&lt;/strong&gt;'&lt;/p&gt;

&lt;p&gt;That looked like an internal Celery or Kombu bug.&lt;/p&gt;

&lt;p&gt;Scrolling further…&lt;/p&gt;

&lt;p&gt;kombu.exceptions.OperationalError:&lt;br&gt;
[Errno 111] Connection refused&lt;/p&gt;

&lt;p&gt;Even stranger.&lt;/p&gt;

&lt;p&gt;Further down…&lt;/p&gt;

&lt;p&gt;URI: amqp://guest:**&lt;a class="mentioned-user" href="https://dev.to/localhost"&gt;@localhost&lt;/a&gt;:5672//&lt;/p&gt;

&lt;p&gt;Wait…&lt;/p&gt;

&lt;p&gt;RabbitMQ?&lt;/p&gt;

&lt;p&gt;I wasn’t even using RabbitMQ.&lt;/p&gt;

&lt;p&gt;I was using Redis.&lt;/p&gt;

&lt;p&gt;Why on earth was Celery trying to connect to localhost:5672?&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Maybe Redis?&lt;/p&gt;

&lt;p&gt;I checked Redis.&lt;/p&gt;

&lt;p&gt;Healthy.&lt;/p&gt;

&lt;p&gt;I could connect to it.&lt;/p&gt;

&lt;p&gt;The Celery worker itself was running perfectly.&lt;/p&gt;

&lt;p&gt;Even manual tasks executed successfully.&lt;/p&gt;

&lt;p&gt;This made no sense.&lt;/p&gt;

&lt;p&gt;The worker clearly knew how to talk to Redis.&lt;/p&gt;

&lt;p&gt;But Django apparently didn’t.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Maybe Docker?&lt;/p&gt;

&lt;p&gt;I rebuilt every image.&lt;/p&gt;

&lt;p&gt;No luck.&lt;/p&gt;

&lt;p&gt;I deleted old images.&lt;/p&gt;

&lt;p&gt;Rebuilt without cache.&lt;/p&gt;

&lt;p&gt;Still broken.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Maybe uWSGI?&lt;/p&gt;

&lt;p&gt;I noticed uWSGI was running with multiple workers.&lt;/p&gt;

&lt;p&gt;Maybe Celery didn’t like that.&lt;/p&gt;

&lt;p&gt;I reduced it to a single worker.&lt;/p&gt;

&lt;p&gt;Still broken.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Maybe Celery 5.6?&lt;/p&gt;

&lt;p&gt;Maybe I had discovered a regression.&lt;/p&gt;

&lt;p&gt;I checked package versions.&lt;/p&gt;

&lt;p&gt;Everything looked fine.&lt;/p&gt;

&lt;p&gt;I seriously considered downgrading Celery.&lt;/p&gt;

&lt;p&gt;Thankfully, I didn’t.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The weirdest part&lt;/p&gt;

&lt;p&gt;I created an entirely separate staging deployment.&lt;/p&gt;

&lt;p&gt;Same repository.&lt;/p&gt;

&lt;p&gt;Same Dockerfile.&lt;/p&gt;

&lt;p&gt;Same compose file.&lt;/p&gt;

&lt;p&gt;Same environment variables.&lt;/p&gt;

&lt;p&gt;Same Redis image.&lt;/p&gt;

&lt;p&gt;Same PostgreSQL image.&lt;/p&gt;

&lt;p&gt;Everything worked.&lt;/p&gt;

&lt;p&gt;At this point the bug became even more frustrating.&lt;/p&gt;

&lt;p&gt;How can the same code behave differently?&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The clue&lt;/p&gt;

&lt;p&gt;Instead of looking at logs, I started comparing behavior.&lt;/p&gt;

&lt;p&gt;Inside the Django shell I ran:&lt;/p&gt;

&lt;p&gt;from celery import current_app&lt;br&gt;
print(current_app.conf.broker_url)&lt;/p&gt;

&lt;p&gt;Staging&lt;/p&gt;

&lt;p&gt;redis://redis:6379/0&lt;/p&gt;

&lt;p&gt;Perfect.&lt;/p&gt;

&lt;p&gt;Production&lt;/p&gt;

&lt;p&gt;None&lt;/p&gt;

&lt;p&gt;Now I finally had a direction.&lt;/p&gt;

&lt;p&gt;If the broker URL is None, Celery falls back to its default broker:&lt;/p&gt;

&lt;p&gt;amqp://guest@localhost:5672//&lt;/p&gt;

&lt;p&gt;Exactly what the logs showed.&lt;/p&gt;

&lt;p&gt;The traceback wasn’t the real problem.&lt;/p&gt;

&lt;p&gt;It was only a symptom.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Comparing the projects&lt;/p&gt;

&lt;p&gt;I started comparing files between staging and production.&lt;/p&gt;

&lt;p&gt;Eventually one command stood out.&lt;/p&gt;

&lt;p&gt;diff config/&lt;strong&gt;init&lt;/strong&gt;.py&lt;/p&gt;

&lt;p&gt;Production replied:&lt;/p&gt;

&lt;p&gt;No such file or directory&lt;/p&gt;

&lt;p&gt;The file simply didn’t exist.&lt;/p&gt;

&lt;p&gt;A file so small that I had never even thought about it.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The fix&lt;/p&gt;

&lt;p&gt;I recreated the file.&lt;/p&gt;

&lt;p&gt;from .celery import app as celery_app&lt;br&gt;
&lt;strong&gt;all&lt;/strong&gt; = ("celery_app",)&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;Two lines.&lt;/p&gt;

&lt;p&gt;Sixty-five bytes.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Suddenly everything worked&lt;/p&gt;

&lt;p&gt;I restarted the containers.&lt;/p&gt;

&lt;p&gt;Back into the Django shell.&lt;/p&gt;

&lt;p&gt;from celery import current_app&lt;br&gt;
print(current_app.conf.broker_url)&lt;/p&gt;

&lt;p&gt;This time:&lt;/p&gt;

&lt;p&gt;redis://redis:6379/0&lt;/p&gt;

&lt;p&gt;I created another user.&lt;/p&gt;

&lt;p&gt;No 500 error.&lt;/p&gt;

&lt;p&gt;Celery received the task.&lt;/p&gt;

&lt;p&gt;The email was sent.&lt;/p&gt;

&lt;p&gt;Everything worked exactly as expected.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;What was actually happening?&lt;/p&gt;

&lt;p&gt;Celery has the idea of a default application.&lt;/p&gt;

&lt;p&gt;If your Django project doesn’t expose your configured Celery app, shared_task uses Celery’s default app.&lt;/p&gt;

&lt;p&gt;That default app has no broker configured.&lt;/p&gt;

&lt;p&gt;So internally Celery assumes:&lt;/p&gt;

&lt;p&gt;amqp://guest@localhost:5672//&lt;/p&gt;

&lt;p&gt;Every .delay() call tries to publish a message through RabbitMQ.&lt;/p&gt;

&lt;p&gt;Since RabbitMQ isn’t running, Kombu raises:&lt;/p&gt;

&lt;p&gt;Connection refused&lt;/p&gt;

&lt;p&gt;The scary ChannelPromise traceback is merely an internal consequence of that failed connection.&lt;/p&gt;

&lt;p&gt;The missing &lt;strong&gt;init&lt;/strong&gt;.py wasn’t adding functionality.&lt;/p&gt;

&lt;p&gt;It was registering my configured Celery application as the project’s default application.&lt;/p&gt;

&lt;p&gt;Without it, Django and Celery were speaking different languages.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;What I learned&lt;/p&gt;

&lt;p&gt;This bug taught me several lessons.&lt;/p&gt;

&lt;p&gt;First, don’t trust the first exception you see.&lt;/p&gt;

&lt;p&gt;The ChannelPromise error looked like the root cause.&lt;/p&gt;

&lt;p&gt;It wasn’t.&lt;/p&gt;

&lt;p&gt;It was only the messenger.&lt;/p&gt;

&lt;p&gt;Second, compare a working system with a broken one.&lt;/p&gt;

&lt;p&gt;The breakthrough wasn’t reading another stack trace.&lt;/p&gt;

&lt;p&gt;It was noticing this single difference:&lt;/p&gt;

&lt;p&gt;Working:&lt;/p&gt;

&lt;p&gt;current_app.conf.broker_url&lt;/p&gt;

&lt;h1&gt;
  
  
  redis://redis:6379/0
&lt;/h1&gt;

&lt;p&gt;Broken:&lt;/p&gt;

&lt;p&gt;current_app.conf.broker_url&lt;/p&gt;

&lt;h1&gt;
  
  
  None
&lt;/h1&gt;

&lt;p&gt;That single observation eliminated hours of guessing.&lt;/p&gt;

&lt;p&gt;Third, tiny files can have enormous responsibilities.&lt;/p&gt;

&lt;p&gt;A two-line file determined whether my application used Redis correctly or attempted to connect to a RabbitMQ server that didn’t even exist.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The moral&lt;/p&gt;

&lt;p&gt;Sometimes the bug isn’t hidden inside a thousand lines of business logic.&lt;/p&gt;

&lt;p&gt;Sometimes it isn’t Docker.&lt;/p&gt;

&lt;p&gt;Sometimes it isn’t Redis.&lt;/p&gt;

&lt;p&gt;Sometimes it isn’t Celery.&lt;/p&gt;

&lt;p&gt;Sometimes the difference between a perfectly working production system and hours of frustration is a tiny file you never noticed because every tutorial quietly included it from the very beginning.&lt;/p&gt;

&lt;p&gt;Those are the bugs you’ll never forget.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>debugging</category>
      <category>django</category>
      <category>python</category>
    </item>
    <item>
      <title>বিট, বাইনেৰী আৰু কম্পিউটাৰে কেনেকৈ সংখ্যা বুজে?</title>
      <dc:creator>Hirakjyoti Das</dc:creator>
      <pubDate>Tue, 23 Jun 2026 09:26:47 +0000</pubDate>
      <link>https://dev.to/hir4k/bitt-baainerii-aaru-kmpiuttaare-kenekai-snkhyaa-buje-4aog</link>
      <guid>https://dev.to/hir4k/bitt-baainerii-aaru-kmpiuttaare-kenekai-snkhyaa-buje-4aog</guid>
      <description>&lt;p&gt;যদি আপুনি অপাৰেটিং চিষ্টেম, CPU, মেম’ৰী, বা নিজৰ কম্পিউটাৰ বনোৱাৰ সপোন দেখে, তেন্তে এই লেখাটো আপোনাৰ বাবে।&lt;/p&gt;

&lt;p&gt;এই লেখাটোত আমি একেবাৰে আৰম্ভণিৰ পৰা শিকিম:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decimal Number System কি?&lt;/li&gt;
&lt;li&gt;Binary Number System কি?&lt;/li&gt;
&lt;li&gt;Decimal ↔ Binary Conversion&lt;/li&gt;
&lt;li&gt;Binary Addition&lt;/li&gt;
&lt;li&gt;Carry কি?&lt;/li&gt;
&lt;li&gt;Negative Number কেনেকৈ সংৰক্ষণ কৰা হয়?&lt;/li&gt;
&lt;li&gt;Two’s Complement কি?&lt;/li&gt;
&lt;li&gt;CPU-এ কিয় এই পদ্ধতি ব্যৱহাৰ কৰে?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;মানুহে সংখ্যা কেনেকৈ লিখে?&lt;/p&gt;

&lt;p&gt;আমি দৈনন্দিন জীৱনত ব্যৱহাৰ কৰা সংখ্যা পদ্ধতিটোক Decimal System বোলা হয়।&lt;/p&gt;

&lt;p&gt;ইয়াত ১০টা digit আছে:&lt;/p&gt;

&lt;p&gt;0 1 2 3 4 5 6 7 8 9&lt;/p&gt;

&lt;p&gt;উদাহৰণ:&lt;/p&gt;

&lt;p&gt;6083&lt;/p&gt;

&lt;p&gt;এইটো আচলতে হৈছে:&lt;/p&gt;

&lt;p&gt;6 × 1000&lt;br&gt;
0 × 100&lt;br&gt;
8 × 10&lt;br&gt;
3 × 1&lt;/p&gt;

&lt;p&gt;অৰ্থাৎ:&lt;/p&gt;

&lt;h1&gt;
  
  
  6083
&lt;/h1&gt;

&lt;p&gt;6×10³ + 0×10² + 8×10¹ + 3×10⁰&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Infographic&lt;/p&gt;

&lt;p&gt;6083&lt;br&gt;
┌────┬────┬────┬────┐&lt;br&gt;
│ 6  │ 0  │ 8  │ 3  │&lt;br&gt;
└────┴────┴────┴────┘&lt;br&gt;
 10³  10²  10¹  10⁰&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Binary System কি?&lt;/p&gt;

&lt;p&gt;কম্পিউটাৰে Decimal System ব্যৱহাৰ নকৰে।&lt;/p&gt;

&lt;p&gt;ই মাত্ৰ দুটা অৱস্থা বুজে:&lt;/p&gt;

&lt;p&gt;ON&lt;br&gt;
OFF&lt;/p&gt;

&lt;p&gt;বা&lt;/p&gt;

&lt;p&gt;1&lt;br&gt;
0&lt;/p&gt;

&lt;p&gt;সেয়েহে কম্পিউটাৰে ব্যৱহাৰ কৰে:&lt;/p&gt;

&lt;p&gt;Binary System&lt;/p&gt;

&lt;p&gt;য’ত মাত্ৰ দুটা digit আছে:&lt;/p&gt;

&lt;p&gt;0&lt;br&gt;
1&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Power of 2&lt;/p&gt;

&lt;p&gt;Binary ত প্ৰতিটো স্থান 2 ৰ power।&lt;/p&gt;

&lt;p&gt;2⁰ = 1&lt;br&gt;
2¹ = 2&lt;br&gt;
2² = 4&lt;br&gt;
2³ = 8&lt;br&gt;
2⁴ = 16&lt;br&gt;
2⁵ = 32&lt;br&gt;
2⁶ = 64&lt;/p&gt;

&lt;p&gt;এইবোৰ মুখস্থ কৰি লওক।&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Binary → Decimal Conversion&lt;/p&gt;

&lt;p&gt;ধৰা হওক:&lt;/p&gt;

&lt;p&gt;1101&lt;/p&gt;

&lt;p&gt;Power লিখো:&lt;/p&gt;

&lt;p&gt;1   1   0   1&lt;br&gt;
8   4   2   1&lt;/p&gt;

&lt;p&gt;এতিয়া য’ত 1 আছে সেইবোৰ যোগ কৰো:&lt;/p&gt;

&lt;h1&gt;
  
  
  8 + 4 + 1
&lt;/h1&gt;

&lt;p&gt;13&lt;/p&gt;

&lt;p&gt;অতএব:&lt;/p&gt;

&lt;p&gt;1101₂ = 13₁₀&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Infographic&lt;/p&gt;

&lt;p&gt;1101&lt;br&gt;
┌───┬───┬───┬───┐&lt;br&gt;
│ 1 │ 1 │ 0 │ 1 │&lt;br&gt;
└───┴───┴───┴───┘&lt;br&gt;
  8   4   2   1&lt;br&gt;
8 + 4 + 1 = 13&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Decimal → Binary Conversion&lt;/p&gt;

&lt;p&gt;ধৰা হওক:&lt;/p&gt;

&lt;p&gt;45&lt;/p&gt;

&lt;p&gt;Power of 2:&lt;/p&gt;

&lt;p&gt;32 16 8 4 2 1&lt;/p&gt;

&lt;p&gt;প্ৰশ্ন:&lt;/p&gt;

&lt;p&gt;32 কি 45 ত সোমাব?&lt;/p&gt;

&lt;p&gt;✔️ হয়&lt;/p&gt;

&lt;p&gt;45 - 32 = 13&lt;/p&gt;

&lt;p&gt;16 কি 13 ত সোমাব?&lt;/p&gt;

&lt;p&gt;❌ নহয়&lt;/p&gt;

&lt;p&gt;8 কি 13 ত সোমাব?&lt;/p&gt;

&lt;p&gt;✔️ হয়&lt;/p&gt;

&lt;p&gt;13 - 8 = 5&lt;/p&gt;

&lt;p&gt;4 কি 5 ত সোমাব?&lt;/p&gt;

&lt;p&gt;✔️ হয়&lt;/p&gt;

&lt;p&gt;5 - 4 = 1&lt;/p&gt;

&lt;p&gt;2 কি 1 ত সোমাব?&lt;/p&gt;

&lt;p&gt;❌ নহয়&lt;/p&gt;

&lt;p&gt;1 কি 1 ত সোমাব?&lt;/p&gt;

&lt;p&gt;✔️ হয়&lt;/p&gt;

&lt;p&gt;ফলাফল:&lt;/p&gt;

&lt;p&gt;101101&lt;/p&gt;

&lt;p&gt;অতএব:&lt;/p&gt;

&lt;p&gt;45₁₀ = 101101₂&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Binary Addition&lt;/p&gt;

&lt;p&gt;Decimal ত যেনেকৈ:&lt;/p&gt;

&lt;p&gt;9 + 1 = 10&lt;/p&gt;

&lt;p&gt;Binary ত:&lt;/p&gt;

&lt;p&gt;1 + 1 = 10&lt;/p&gt;

&lt;p&gt;কাৰণ Binary ত digit “2” নাই।&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;চাৰিটা মূল নিয়ম&lt;/p&gt;

&lt;p&gt;0 + 0 = 0&lt;br&gt;
0 + 1 = 1&lt;br&gt;
1 + 0 = 1&lt;br&gt;
1 + 1 = 10&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Carry কি?&lt;/p&gt;

&lt;p&gt;যেতিয়া আমি পাওঁ:&lt;/p&gt;

&lt;p&gt;1 + 1&lt;/p&gt;

&lt;p&gt;উত্তৰ:&lt;/p&gt;

&lt;p&gt;10&lt;/p&gt;

&lt;p&gt;ইয়াৰ অৰ্থ:&lt;/p&gt;

&lt;p&gt;Sum   = 0&lt;br&gt;
Carry = 1&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;উদাহৰণ&lt;/p&gt;

&lt;p&gt;11&lt;/p&gt;

&lt;h2&gt;
  
  
  + 01
&lt;/h2&gt;

&lt;p&gt;সোঁফালৰ পৰা:&lt;/p&gt;

&lt;p&gt;1 + 1 = 10&lt;/p&gt;

&lt;p&gt;0 লিখিলো, Carry 1।&lt;/p&gt;

&lt;p&gt;পিছৰ column:&lt;/p&gt;

&lt;h1&gt;
  
  
  1 + 0 + Carry(1)
&lt;/h1&gt;

&lt;p&gt;10&lt;/p&gt;

&lt;p&gt;ফলাফল:&lt;/p&gt;

&lt;p&gt;100&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Binary Counting&lt;/p&gt;

&lt;p&gt;0 = 0000&lt;br&gt;
1 = 0001&lt;br&gt;
2 = 0010&lt;br&gt;
3 = 0011&lt;br&gt;
4 = 0100&lt;br&gt;
5 = 0101&lt;br&gt;
6 = 0110&lt;br&gt;
7 = 0111&lt;br&gt;
8 = 1000&lt;/p&gt;

&lt;p&gt;লক্ষ্য কৰক:&lt;/p&gt;

&lt;p&gt;0111 + 1 = 1000&lt;/p&gt;

&lt;p&gt;যিদৰে:&lt;/p&gt;

&lt;p&gt;9 + 1 = 10&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Negative Number সমস্যাটো&lt;/p&gt;

&lt;p&gt;এতিয়ালৈকে আমি Positive Number শিকিলো।&lt;/p&gt;

&lt;p&gt;কিন্তু:&lt;/p&gt;

&lt;p&gt;-1&lt;br&gt;
-2&lt;br&gt;
-3&lt;/p&gt;

&lt;p&gt;কম্পিউটাৰে কেনেকৈ সংৰক্ষণ কৰিব?&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Two’s Complement&lt;/p&gt;

&lt;p&gt;আধুনিক CPU সমূহে ব্যৱহাৰ কৰে:&lt;/p&gt;

&lt;p&gt;Flip All Bits + Add 1&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;উদাহৰণ: -5&lt;/p&gt;

&lt;p&gt;প্ৰথমে:&lt;/p&gt;

&lt;h1&gt;
  
  
  +5
&lt;/h1&gt;

&lt;p&gt;0101&lt;/p&gt;

&lt;p&gt;Bits flip কৰো:&lt;/p&gt;

&lt;p&gt;1010&lt;/p&gt;

&lt;p&gt;1 যোগ কৰো:&lt;/p&gt;

&lt;p&gt;1010&lt;/p&gt;

&lt;h2&gt;
  
  
  +0001
&lt;/h2&gt;

&lt;p&gt;1011&lt;/p&gt;

&lt;p&gt;অতএব:&lt;/p&gt;

&lt;p&gt;1011 = -5&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Negative Number Decode&lt;/p&gt;

&lt;p&gt;ধৰা হওক:&lt;/p&gt;

&lt;p&gt;1011&lt;/p&gt;

&lt;p&gt;ই কি সংখ্যা?&lt;/p&gt;

&lt;p&gt;Bits flip:&lt;/p&gt;

&lt;p&gt;0100&lt;/p&gt;

&lt;p&gt;1 যোগ:&lt;/p&gt;

&lt;p&gt;0100&lt;/p&gt;

&lt;h2&gt;
  
  
  +0001
&lt;/h2&gt;

&lt;p&gt;0101&lt;br&gt;
0101 = 5&lt;/p&gt;

&lt;p&gt;অতএব:&lt;/p&gt;

&lt;p&gt;1011 = -5&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;4-bit Two’s Complement Table&lt;/p&gt;

&lt;p&gt;0000 =  0&lt;br&gt;
0001 =  1&lt;br&gt;
0010 =  2&lt;br&gt;
0011 =  3&lt;br&gt;
0100 =  4&lt;br&gt;
0101 =  5&lt;br&gt;
0110 =  6&lt;br&gt;
0111 =  7&lt;br&gt;
1000 = -8&lt;br&gt;
1001 = -7&lt;br&gt;
1010 = -6&lt;br&gt;
1011 = -5&lt;br&gt;
1100 = -4&lt;br&gt;
1101 = -3&lt;br&gt;
1110 = -2&lt;br&gt;
1111 = -1&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;CPU কিয় এই পদ্ধতি ব্যৱহাৰ কৰে?&lt;/p&gt;

&lt;p&gt;ধৰা হওক:&lt;/p&gt;

&lt;p&gt;5 - 3&lt;/p&gt;

&lt;p&gt;CPU-এ ইয়াক লিখিব পাৰে:&lt;/p&gt;

&lt;p&gt;5 + (-3)&lt;/p&gt;

&lt;p&gt;অৰ্থাৎ CPU-ক মাত্ৰ Addition কৰিব জানিলেই হ’ল।&lt;/p&gt;

&lt;p&gt;Subtraction ৰ বাবে পৃথক Hardware নালাগে।&lt;/p&gt;

&lt;p&gt;এইটোৱেই Two’s Complement ৰ আটাইতকৈ ডাঙৰ সুবিধা।&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;আমি আজি কি শিকিলো?&lt;/p&gt;

&lt;p&gt;✅ Decimal Number System&lt;/p&gt;

&lt;p&gt;✅ Binary Number System&lt;/p&gt;

&lt;p&gt;✅ Power of 2&lt;/p&gt;

&lt;p&gt;✅ Decimal ↔ Binary Conversion&lt;/p&gt;

&lt;p&gt;✅ Binary Addition&lt;/p&gt;

&lt;p&gt;✅ Carry Concept&lt;/p&gt;

&lt;p&gt;✅ Binary Counting&lt;/p&gt;

&lt;p&gt;✅ Negative Numbers&lt;/p&gt;

&lt;p&gt;✅ Two’s Complement&lt;/p&gt;

&lt;p&gt;✅ CPU কিয় Two’s Complement ব্যৱহাৰ কৰে&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;আগলৈ কি?&lt;/p&gt;

&lt;p&gt;এইবোৰ বুজিলে আপুনি Nand2Tetris ৰ পৰৱৰ্তী অধ্যায়ৰ বাবে সাজু।&lt;/p&gt;

&lt;p&gt;য’ত আমি শিকিম:&lt;/p&gt;

&lt;p&gt;NAND Gate&lt;br&gt;
    ↓&lt;br&gt;
NOT Gate&lt;br&gt;
    ↓&lt;br&gt;
AND Gate&lt;br&gt;
    ↓&lt;br&gt;
OR Gate&lt;br&gt;
    ↓&lt;br&gt;
XOR Gate&lt;br&gt;
    ↓&lt;br&gt;
Half Adder&lt;br&gt;
    ↓&lt;br&gt;
Full Adder&lt;br&gt;
    ↓&lt;br&gt;
ALU&lt;br&gt;
    ↓&lt;br&gt;
CPU&lt;/p&gt;

&lt;p&gt;এটা মাত্ৰ NAND Gate ৰ পৰা সম্পূৰ্ণ Computer বনোৱাৰ যাত্ৰা এতিয়াই আৰম্ভ হৈছে।&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>computerscience</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How django helped me to build an edtech startup in 3 days...</title>
      <dc:creator>Hirakjyoti Das</dc:creator>
      <pubDate>Mon, 07 Jul 2025 04:51:46 +0000</pubDate>
      <link>https://dev.to/hir4k/how-django-helped-me-to-build-an-edtech-startup-in-3-days-3h6</link>
      <guid>https://dev.to/hir4k/how-django-helped-me-to-build-an-edtech-startup-in-3-days-3h6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9du9ef7xi17rrhi8ux0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9du9ef7xi17rrhi8ux0.jpg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
Hi&lt;/p&gt;

</description>
      <category>django</category>
      <category>startup</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>Wow the quickie posts are working 😍</title>
      <dc:creator>Hirakjyoti Das</dc:creator>
      <pubDate>Wed, 21 May 2025 06:27:43 +0000</pubDate>
      <link>https://dev.to/hir4k/wow-the-quickie-posts-are-working-pg3</link>
      <guid>https://dev.to/hir4k/wow-the-quickie-posts-are-working-pg3</guid>
      <description></description>
      <category>productivity</category>
    </item>
  </channel>
</rss>
