Category: Code

  • Keyboard, Tauri, Games

    Keyboard, Tauri, Games

    এই ১৫ দিনে বেশ কয়েকটি ভিন্ন ধরণের কাজ করেছি, যা বেশ উপভোগ করেছি।

    TL-DR: Avro with GO and Rust, Learning Tauri, Making Game etc.

    ১। অভ্র

    ১.১। বড় ভাইয়ার কম্পিউটারে অভ্র কী-বোর্ড সমস্যা করছিলো। amar ৪ বার লিখছে ৪ রকম আউটপুট আসছিলো। চ্যাটজিপিটি + ম্যানুয়াল চেষ্টা করেও লাভ হয়নি।

    তাই Rust & Go দিয়ে ai দিয়ে খুবই তুচ্ছ লেভেলের অভ্র বানিয়ে দিয়েছি, তাতেও সমস্যা মেটেনি।

    ***

    ১.২। অভ্র Pascal দিয়ে বানানো। অন্য ল্যাংগুয়েজে বানাতে চাইলে কয়েকটি উপায় আছে।

    ১। অভ্র’র রিপো mugli/Avro-Keyboard তে গিয়ে রিভার্স ইঞ্জিনিয়ারিং করা।

    ২। mugli/libavrophonetic গো লাইব্রেরি ব্যবহার করা।

    ৩। omicronlab/avro-pad থেকে কোড নেয়া।

    ৪। banglatext.com এর সোর্স কোড থেকে js.download ফাইলটির কোড ব্যবহার। (অবশ্যই অনুমতি নিয়ে।)

    প্রতিটিরই সুবিধা/অসুবিধাজনক দিক আছে। সে এক অন্য আলোচনা।

    ***

    ১.৩ । আমার মত হচ্ছে- কেউ চাইলে দীর্ঘ অনেক বছর এক ল্যাঙ্গুয়েজ নিয়েই কাজ করতে পারে, ব্যস্ত থাকতে পারে। সেটি বেশিরভাগ ক্ষেত্রেই JS / php / python । কিন্তু আরো ২-৩ ল্যাঙ্গুয়েজের রানটাইম ও প্যাকেজ ম্যানেজারের নাম, খুবই ব্যাসিক Syntax এবং নিয়ম-কানুন, কোড রান ও বিল্ড করার পদ্ধতি শিখে ফেলা উচিত।

    এতে বিভিন্ন আলাদা ধরণের জিনিস নিজে করা সহজ হয়, নিজের জগতের বাহিরের অন্য অন্য জগতের মজার ও ভালো জিনিসগুলো উপভোগ করা যায়।

    রাস্টের চেয়ে গো সহজ লেগেছে + বাস্তবজগতে বেশি কাজেরও মনে হয়েছে।

    ২। Tauri

    একটানা দীর্ঘক্ষণ বসে থাকা- কিংবা আরো খারাপ- একটানা দীর্ঘক্ষণ কম্পিউটারে বসে কাজ করা তো নানারকম ক্ষতিকর। তাই Pomodoro রুল/টেকনিক ফলো করা উচিত।

    এরকমই একটি Pomodoro সফটওয়্যার হচ্ছে Stretchly। সেটি Javascript + Electron দিয়ে বানানো। সাইন ১২৮+ এমবি! ছোট্ট কাজের জন্য এত এমবির সফটওয়্যার ইন্সটল করার কোনো মানেই হয় না।

    আমি গত ১ বছরে অনেকবার Tauri এর সুনাম শুনেছিলাম। তাই Tauri-তে কোনোরকম তাড়াহুড়া + ai দিয়ে কনভার্ট করে দেখলাম- ৫৫ এমবি মাত্র!

    আর শুধু Go দিয়ে বানিয়ে সেটি মাত্র ৮ এমবি হয়েছে। GoModoro Timer

    edited: 15 Aug

    অ্যান্ড্রয়েডের জন্য apk বানাতে গিয়ে NDK, JAVA SDK ডাউনলোড করতে হলো। Windows 11 এর Developer mode চালু করতে হলো। (Android SDK আগেই ডাউনলোড করা ছিলো, যেহেতু কাস্টম রম ফ্ল্যাশ করার সময় লাগে।) তারপর tauri android build কমান্ডের পর Gradle ডাউনলোড হলো।

    ৩। গেমস

    Tauri শেখার উপায় হিসেবে Match the pairs গেম বানিয়েছি।

    এইসব বুদ্ধির খেলা বাচ্চাদের / কম বয়সীদের জন্য উপকারী হতে পারে।

    কম্পিউটারের জন্য

    ব্রাউজারে / মোবাইলে খেলার জন্য

    আরো অনেক কিছু। যেমন আজ সকালেই quran.bid লিংক রিডাইরেকশন।

  • DeleteThing

    আমরা যখন Github, Vercel, Netlify, Cloudflare এ কোনো রিপো/প্রজেক্ট ডিলেট করতে যাই, যখন পপ-আপ/ডায়লগ আসে, যেখানে প্রজেক্টের নাম/”delete my project” ইনপুট করতে হয়, টাইপ না করলেও অন্তত কপি পেস্ট তো করতেই হয়।

    এই ঝামেলা থেকে মুক্তি পেতে ai দিয়ে এক্সটেনশন বানালাম,

    Github: https://github.com/2u841r/DeleteThing

    Download: https://dub.sh/deletething

    শুধুমাত্র ৪টি সাইটের URL ডিটেক্ট করবে + javascipt দিয়ে ডিলেট ফিল্ডে যা লিখতে হবে, তা পূরণ করে দেবে।

    গিটহাব রিপো ডিলেট করতে ডিলেট বাটনে ক্লিক, তারপর ২ টি ক্লিক + ইনপুট + আরেক ক্লিক করতে হয় (৫ ধাপ)- এই এক্সটেনশন দিয়ে ২ ধাপ

    গুগল ক্রোম মার্কেটপ্লেসে পাবলিশও করেছি, $5 খরচ করে এক্সটেনশন মার্কেটপ্লেসে অ্যাকাউন্ট খুলতে হয়েছে।

    উপকৃত হলে গিটহাবে স্টার এবং ক্রোম মার্কেটপ্লেসে রেটিং দেয়ার জন্য রইলো।

    নিরাপদ কিনা?

    ১। গুগল এক্সটেনশন পাবলিশের সময় + প্রতিবার আপডেট করলে রিভিউ করে।

    ২। সোর্স কোড দেখতেই পাবেন

  • I learned Python and PHP

    I learned Python and PHP

    শিখেছি = এতটুকু শিখেছি যে- environment setup, package install, syntax, অন্যের কোড দেখলে মোটামুটি বোঝা + কন্ট্রিবিউট করতে পারা। শিখেছি বলে মাস্টার হয়েছি বুঝাইনি।

    পাইথন শিখেছি শুরুতে BroCode চ্যানেলের এক ঘণ্টার ক্র‍্যাশ কোর্স

    এরপর netninja চ্যানেলের django crash course

    একই চ্যানেলের Python Playlist (এবং একটু w3schools)

    শেখার সময়: ৮ অক্টোবর থেকে পরবর্তী কয়েকদিনে।

    পাইথনের ফাংশনের প্যারামিটারের বৈচিত্র্য ভাল লেগেছে। django লারাভেলের চেয়ে সহজ ও ক্লিন মনে হয়েছে, এছাড়া ট্রেইলিং কমা ব্যাপারটা কেমন যেন!

    php শিখেছি ১৮ অক্টোবর, W3schools থেকে

    আর Laravel শিখেছি আজ ১৯ অক্টোবর, The Codeholic চ্যানেল থেকে।

    php দেখি পুরাই জাভাস্ক্রিপ্ট! 😁 প্রচুর মিল।

  • Simpack: Shopify for Bundles

    Simpack: Shopify for Bundles

    আমার ফ্রেন্ডলিস্টে একাধিক ব্যক্তি ছিলেন, যারা ‘ড্রাইভ প্যাক’ বিক্রি করতেন/করেন।

    ড্রাইভ প্যাক = জিবি, মিনিটের কম্বো বান্ডেল – যেমন ২০ জিবি ৩০০ মিনিট ৩০ দিন মেয়াদ, দাম *** টাকা। (স্বাভাবিকের চেয়ে কিছুটা/বেশ কম দাম)।

    তারা প্রতিদিন এরকম ৫-১০টা অফার/বান্ডেল পোস্ট দেন, এবং যে কিনতে চায় সে যোগাযোগ করে। তারপর বিকাশ/রকেট বা অন্য যে কোনো ভাবে পেমেন্ট করে অর্ডার করলে বান্ডেল পাঠিয়ে দেয়া হয়।

    দেখেই বোঝা যায়, এগুলো ম্যানেজ করা কঠিন। একটা দুইটা ঠিক আছে, কিন্তু একজন যদি ২০-৪০টা অর্ডার পায়, তাহলে দিন শেষে ম্যানেজ করা, হিসাব রাখা কঠিন হয়ে যাবেই।

    তাই আমি এই প্রজেক্ট করলাম।

    এখানে একজন বিক্রেতা সাইন আপ করবে। তারপর নিজের MFS / Bank এর তথ্য আপডেট করবে।

    জিবি+মিনিট, দাম ও এক্সট্রা কিছু লেখার থাকলে লিখে প্যাক বানাবে।

    তারপর নিজের লিংক শেয়ার করবে। (ইমেইল যদি হয় khalid2@gmail.com তাহলে তার লিংক হবে https://simpack.vercel.app/khalid2 । ঝামেলা কমাতে আরেক ধাপ – choose your username বানাইনি। ওটাও তো মোটেই কঠিন কিছু না।)

    কাস্টমার ঐ লিংকে ভিজিট করলে শুধু প্যাকগুলো দেখতে পাবে, পছন্দের প্যাকের পাশে Order বাটনে ক্লিক করলে একটি ফর্ম আসবে, সেখানে সে কোন মোবাইল নম্বরে নিতে চায়, এবং কিভাবে পেমেন্ট করেছে তার তথ্য দিলে অ্যাডমিনের ড্যাশবোর্শে অর্ডার চলে যাবে। অ্যাডমিন সব কিছু ভ্যারিফাই করে (টাকা এসেছে কিনা দেখে) অর্ডারটি কমপ্লিট করবে।


    অথেনটিকেশন ম্যানেজ করা সত্যিই কঠিন। অতীতে আমি passport.js এবং authjs ব্যবহার করলেও এবার আর ঝামেলায় যেতে চাচ্ছিলাম না।

    আমি রেডিমেড npx create-next-app -e with-supabase কমান্ড দিয়ে https://github.com/vercel/next.js/tree/canary/examples/with-supabase এটা ডাউনলোড করে ব্যবহার করেছি।

    সাইন আপ, লগিনের ব্যবস্থা এখানে করাই আছে।

    তারপর বাকিটা Supabase এর SQL ডাটাবেজ দিয়ে করা। ৪টি টেবিল।


    এটিতো কেবল শুরু। আরো অনেক কিছু করা বাকী।

    আর পেমেন্ট? প্যাকের দামের ০.২৫% – ০.৫% অথবা ৳৩০/৫০/১০০ যেটা বেশী – চার্জ করা যেতে পারে।

    বা ফিক্সড, মাসে ১০০-৩০০ এরকম কিছু। চাইলে উভয়টা রাখা যায়।

    edited: আগে টাইটেল দিয়েছিলাম – Simpack – গরীবের Shopify / Zatiqeasy

    গরীবের Shopify / Zatiqeasy বলাটা ফান করে বলা 🙂

  • Alkawsar x Gatsby

    Alkawsar x Gatsby

    যে রিয়্যাক্ট শিখেছে কিন্তু Gatsby + GraphQL শেখেনি, তার জন্য আমার দুঃখ হয়। এত সুন্দর, এত মজার জিনিস সে মিস করছে!

    আমি দেশে এবং দেশের বাহিরের বেশ কয়েকজন ‘বড়’ ব্যক্তিকে নিজেদের সাইট/ব্লগের জন্য Gatsby ব্যবহার করতে দেখেছি।

    একজনকে ব্যবহার করতে দেখে বুঝেছি- অমুক যখন ব্যবহার করছে- তাহলে এটা অবশ্যই ভালো জিনিস, সুতরাং আমাকে শিখতে হবে। আর শেখার পর আরেকজনকে দেখেছি যে- সেও এই ভালো জিনিস ব্যবহার করছে।

    ঠিক একই বিষয় ঘটেছিলো Svelte এর সাথে। উভয়েই দেশের বাহিরের- তাদের প্রজেক্টে Svelte ব্যবহার করা দেখে বুঝেছি- এটা আসলেই সেরা। এবং পরবর্তীতে Svelte শিখেছি।

    Gatsby এর সুবিধা হচ্ছে- খুব দ্রুত বেশ ফাংশনাল+ডায়নামিক সাইট বানিয়ে ফেলা যায়।

    গিটহাব পেজ বা নেটলিফাই/ভার্সেল টাইপ জিনিস দিয়ে হোস্টিং এর খরচ ০.০০ করে ফেলা যায়। ডোমেইনও না কিনলে ওয়েবসাইট পরিচালনার খরচ ০.০০।

    SSG, SSR, ISR, DSG, MPA সব আছে।

    (জানি, আরো অনেক ফ্রেমওয়ার্কেই এসব আছে, কিন্তু Gatsby তে বিভিন্ন ‘জটিলতা’ কম, শেখা সহজ।)

    ***

    আমি Gatsby প্রথম শিখেছিলাম ২৭ জানুয়ারী ২০২৪ তারিখে।

    তারপর কয়েক মাস পর আবার রিভিশন দিয়েছিলাম, তারিখটা Notion এ লেখা নেই, ব্রাউজারের হিস্টোরিতেও পেলাম না।

    আর সর্বশেষ রিভিশন দিলাম সেপ্টেম্বরের ৮ তারিখে। এবং তারপর প্র্যাক্টিস করলাম ৯-১২ তারিখ।

    ***

    আল কাউসারের সাথে পরিচিত ২০১১ থেকে। নিজে কিনে, অন্যেরটা নিয়ে বা অনলাইনে পড়ছি তখন থেকেই। এছাড়াও ‘আপনি যা জানতে চেয়েছেন’ বিভাগের মাসয়ালা-মাসায়েল তো মাঝে মাঝেই দেখি।

    ***

    আলকাউসারের ওয়েবসাইটের ডায়নামিক রাউটগুলো হচ্ছে-

    /sections সেকশন / বিভাগ – ওয়ার্ডপ্রেসের ভাষায় ক্যাটাগরি।

    /topics প্রসঙ্গ – ওয়ার্ডপ্রেসের ভাষায় ট্যাগ।

    /authors লেখক – ওয়ার্ডপ্রেসেও Author (যা user যুক্ত করলে তৈরি হয়)।

    /issues পুরাতন সংখ্যা / অতীতের প্রতি মাসের ম্যাগাজিন।

    ***

    TODO

    পেজের নিচে jump to top,

    সার্চবার,

    Dark mode যুক্ত করা।

    টেমপ্লেট ফোল্ডারের সব ফাইলের জন্য রি-ইউজেবল কম্পোনেন্ট তৈরি করা।

  • Self Hosted

    Self Hosted জিনিস আমার বেশ ভাল আগে। পুরোপুরি নিজের না- কোড নিজের না, আবার পুরোপুরি অন্যেরও না- অন্যের নজরদারিতে থাকা লাগে না।

    আমি ১+ সপ্তাহ আগে ওয়েবসাইট হেলথ মনিটরিং টুল uptime kuma সেলফ হোস্ট করেছিলাম, এটার সমস্যা হচ্ছে- ২০ সেকেন্ডের কমে ইন্টারভাল সেট করা যায় না। অথচ আমার হিসেবে প্রতি সেকেন্ডেও যাওয়া উচিত! অন্তত প্রতি ৩ – ৫ সেকেন্ডে তো অবশ্যই।

    তারপর গতকাল ২৫ জুলাই প্রক্সি/সকেট squid & dante এবং ভিপিএন algo হোস্ট করলাম, অনেকজনের সাথে শেয়ারও করেছি।

    আর আজ ২৬ জুলাই Next Cloud হোস্ট করেছি এবং ভাইদের সাথে শেয়ার করেছি।

    আপডেটঃ ১ আগস্ট autolycus (seedr alternative) হোস্ট করেছি।

    আপডেট ২ঃ HestiaCP & Coolify – অক্টোবরের ১ম সপ্তাহ।

  • Deno and Deno Deploy™

    Deno and Deno Deploy™

    আমি আজ সহ লাগাতার ৩ দিন ডিনো এবং ডিনো ডিপ্লয় নিয়ে গবেষণা করছি। বেশ মজাই লাগছে। ডিনো প্রথমবার ব্যবহার করেছিলাম মাসখানেক আগে, জুনের শুরুতে সম্ভবত।

    ডিনো ডিপ্লয় এ KV & CRON আছে, যদিও এখন তা বেটা পর্যায়ে। আমি KV কেভি প্রথম দেখেছিলাম ক্লাউডফ্লেয়ারে। সেখানে KV+R2+PAGES এর সমন্বয়ে বেশ জটিল জিনিস বেশ সহজেই বানিয়ে ফেলা যায়।

    ১ম দিন- ১৪ জুলাই বেশি সুস্থ ছিলাম না। কিন্তু ১৫ তারিখে কাজ বেশ এগিয়ে গিয়েছিলো (একইদিনে svelte এর প্রজেক্টও github action দিয়ে deno deploy তে ডিপ্লয় করে বেশ ভাল পার্ফরম্যান্স পেয়ছিলাম, সেইসাথে CI/CD এর বাস্তব অভিজ্ঞতাও বৃদ্ধি পেয়েছিল), এবং আজ ১৬ তারিখ।

    ক্লাউডফ্লেয়ারে একদিন KV দেখার পর মনে হলো- আরো কোথাও KV দেখেছিলাম। কোথায়?

    খুব দ্রুতই মনে এসেছে, Deno Deploy™ তে!

    তারপর শুরু করলাম গবেষণা। গবেষণার বিষয়-

    ১। সেখানে ডিসকর্ড বট ২৪/৭ চালু রাখা যায় কিনা

    ২। যদি না যায়, তাহলে কোনো বিশেষ উপায়ে/হ্যাক ব্যবহার করে হলেও করা যাবে কিনা।

    আমার এখন পর্যন্ত উপলব্ধি হচ্ছে-

    ১। ডিনো ডিপ্লয় ব্যবহার করে একবার প্রজেক্ট/কোড পাব্লিশ/ডিপ্লয় করলে সেটা একবার চালু হলেও সামান্য পরিবর্তন করে আবার ডিপ্লয় করলে দুইবার কোড রান হয়। Deno.cron প্রতিমিনিটে দিয়ে দেখেছি- সেটা দুইবার করে হয় না, তবে node-cron ব্যবহার করলে সেটা একাধিকবার একই কাজ করতে থাকে। সর্বশেষ হিসাব অনুযায়ী ৬ মিনিট পর দুইবার না করে একবার করে। (৩ বার ডিপ্লয় করলে হয়ত একবার কমবে, আরো পরে ২য়টাও কমবে)

    তবে একবার ১ এ নেমে আসলে আবার ডুপ্লিকেট হবে না, এমন না। আবার হবে, যে কোনো সময়। এবং তা অটোমেটিক বন্ধও হবে।

    ২। new Map() এর ভিতরে ইউজারের ডিসকর্ড ভয়েস চ্যানেলে জয়েন টাইম সেভ রাখতাম, কিন্তু ডিনো ক্রোন মাঝে মাঝে প্রতি মিনিটের কাজ মিস করে, খুব সম্ভবত তখনই ডাটা হারিয়ে যায়। তাই KV ব্যবহার করি, ডাটা হারানো বন্ধ হয়।

  • Newsletter, Survey and Podcast

    আমি যেসব নিউজলেটার নিয়মিত পড়ি, এবং সার্ভেতে অংশগ্রহণ করি এবং পডকাস্ট শুনি (বা দেখি)

    নিউজলেটার

    ১। bytes.dev – প্রতি সপ্তাহে দুইবার আসে। বেশ ভাল লাগে। ১৫টি লিংক থাকলে প্রায় ৫টাতে ক্লিক করি। কখনোই মিস করি না। ব্যস্ততায় একাধিক জমে গেলেও সবগুলোই পড়ার চেষ্টা করি।

    তাদের থেকেই অনুপ্রাণিত হয়ে আমি থিম বানাই, যা ওয়েবসাইটের প্রজেক্টস সেকশনে পাবেন।

    ২। The Overflow (Stackoverflow) – ১৫টা লিংকের ২-৩টাতে হয়ত ক্লিক করি।

    ৩। cooperpress এর Javascript Weekly, React Status, Node Weekly সাবস্ক্রাইব করা আছে, হালকা করে নজর বুলাই।

    সার্ভে

    Overflow Developer Survey 2023 এবং State of JS 2023 এর সার্ভেতে অংশগ্রহণ করেছিলাম।

    পডকাস্ট

    https://syntax.fm এর সাথে বেশিদিন যাবত পরিচিত না। কয়েকটা শুনেছি, ভালই।

    আর Theo – t3․gg এর দীর্ঘ ভিডিও না দেখলেও মাঝে মাঝে ওপেন করে কেটে কেটে দেখি।

  • Bytes Newsletter Theme

    Bytes Newsletter Theme

    bytes (.dev) নিউজলেটারটি আমি কয়েক মাস যাবত পড়ছি। ঐ নিউজলেটারের শেষের দিকে কিছু কোড সম্পর্কিত কুইজ থাকে, উত্তর আরো নিচে দেয়া থাকে। সেই কোডের রঙ ভাল লেগেছিল।

    ইমেইল করে জিজ্ঞেস করেছিলাম, আপনাদের কোনো থিম আছে কিনা?

    উত্তর দিয়েছে- It’s a custom theme.

    থিম বানিয়ে পাবলিশ করতে বললে রিপ্লাই দিয়েছে- Eventually. Not a ton of time right now but we plan on doing it in the future.

    আমি আজ ৫-৭ ঘন্টা খরচ করে শিখলাম ও বানালাম। আমি জানি, প্রচুর অসম্পূর্ণতা আছে, এখন শুধু html-css-js-jsx সাপোর্ট করে। কিন্তু যাই হোক, প্রথম একটা কাজ করতে পেরে ভাল লাগলো।

    শুধুমাত্র html-css-js-jsx কোডের জন্য ইচ্ছা হলে এমনেই একটু দেখতে পারেন https://marketplace.visualstudio.com/items?itemName=ZubairIbnZamir.bytes-newsletter-theme

    আমি রেকমেন্ড করবো Colorized+ ভার্সনটা ব্যবহার করতে। কারণ মূল থিম ছাই রঙ অনেক বেশি। Colorized+ থিমে আমি ছাই কমিয়ে দিয়েছি।

    আর bytes.dev নিউজলেটারটা পড়তে পারেন, আশা করি বেশ উপকৃত হবেন।

  • A Discord bot

    A Discord bot

    প্রাথমিক ফিচার

    আমার ভাইয়ের জন্য বানানো ডিসকর্ড বটের মূল এবং প্রাথমিক রিকয়ারমেন্ট ছিলো শুধু একটি।

    সেটি হচ্ছে- ডিসকর্ড সার্ভারের ভয়েস চ্যানেলে কেউ জয়েন বা লিভ করলে বট যেন তার নাম একটি প্রাইভেট টেক্সট চ্যানেলে ম্যাসেজ পাঠায়।

    এতটুকু একজন পাইথন দিয়ে বানিয়ে দিয়েছিলো। কিন্তু uptimebot এর ফ্রি টায়ারে পরিবর্তন আনায় সেটা আর কাজ করছিলো না।

    বটের ম্যাসেজ,

    Omuk has joined General 1 at 09:06:34 PM

    Omuk has left General 1 at 11:01:02 PM

    সেশন টাইম

    discord.js দিয়ে বানানোর পর শুধু এতটুকু আমার যথেষ্ট মনে হচ্ছিলো না, তাই যখন কেউ লিভ নেবে, তখন সে কতক্ষণ ছিলো সেটা দেখানোর জন্য new Map() তৈরি করে সেখানে জয়েন টাইম স্টোর করি, লিভ নেয়ার সময় বর্তমান সময়ের সাথে বিয়োগ করে সেশন টাইম বের করি।

    এবার কেউ লিভ নিলে সহজেই জানা যায় যে- সে কতক্ষণ ছিলো।

    Omuk has left General 1 at 11:01:02 PM (session time 01:54:27)

    CRON

    তারপর আরেক ফিচার যুক্ত করতে ইচ্ছা হয়- প্রতিদিন ইংরেজি, বাংলা এবং আরবী তারিখ দেখানো। তার জন্য node-cron moment-hijri date-bengali-revised এই ৩টি প্যাকেজ ইন্সটল করে কোড যুক্ত করি।

    যেহেতু বাংলাদেশের হিজরী তারিখ সৌদি আরবের চেয়ে একদিন কম থাকে, তাই বর্তমান সময়ের/তারিখের হিজরী তারিখ না নিয়ে ২৪ ঘণ্টা আগের হিজরী তারিখ নিতে হয়।

    স্ল্যাশ কমান্ড

    স্ল্যাশ কমান্ডও পরীক্ষামূলকভাবে যুক্ত করলেও সেটা আর বাস্তবায়ন করা হয়নি। কাজ ছিলো, /msg লিখে এন্টার/টাচ দিলে ৩টি ফিল্ড আসবে, কতক্ষণ পর, কাকে, কী ম্যাসেজ দিতে চান। সেই বট নির্দিষ্ট সময়ে প্রাপককে সেই ম্যাসেজ দিয়ে দেবে।

    এখন যদি প্রাপক বটকে রিপ্লাই দেয়? সেটার জন্য আরো কোড যুক্ত করতে হয়, ফলে বট তার পাঠানো ম্যাসেজে নির্দিষ্ট সময়ের মধ্যে রিপ্লাই দিলে সেটা গ্রহণ করবে এবং সেন্ডারকে জানিয়ে দেবে।

    এবং সবশেষে- একটু ফানি কিছু করতে ইচ্ছে হয়। তাই ডিসকর্ডে আরেকটি টেক্সট চ্যানেল খুলে সেটিতে প্রতি ঘন্টায় একটি করে (পরে দিনে দুইবার) one-liner/dad-jokes পোস্ট করার জন্য cron.schedule করি। এপিআই ব্যবহার করি https://api-ninjas.com/

    গিটহাব রিপো লিংক https://github.com/2u841r/vc-watcher-discord-bot