<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Anam's Blog]]></title><description><![CDATA[Useless/Useful thoughts and ideas]]></description><link>https://blog.anam.co/</link><image><url>https://blog.anam.co/favicon.png</url><title>Anam&apos;s Blog</title><link>https://blog.anam.co/</link></image><generator>Ghost 2.28</generator><lastBuildDate>Mon, 26 Feb 2024 18:08:23 GMT</lastBuildDate><atom:link href="https://blog.anam.co/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[যেভাবে নিজে নিজে এরেঞ্জ করে ফ্যামিলি নিয়ে সাত মাসের বাচ্চা সহ ওমরা করলাম]]></title><description><![CDATA[<blockquote>প্রথমেই বলে নেই। এই পোস্টে ধর্মীয় অংশটা বাদ রেখেছি ইচ্ছা করে। ওমরা করার নিয়ম, আদব এগুলো শিখানোর সঠিক মানুষ আমি না। ইন্টারনেটে অনেক জ্ঞা</blockquote>]]></description><link>https://blog.anam.co/diy-umrah-bangla/</link><guid isPermaLink="false">644b7c4829bcfa00015c65a1</guid><category><![CDATA[bangla]]></category><category><![CDATA[mecca]]></category><category><![CDATA[travel]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Fri, 28 Apr 2023 08:16:38 GMT</pubDate><media:content url="https://blog.anam.co/content/images/2023/04/IMG_8297.jpg" medium="image"/><content:encoded><![CDATA[<blockquote>প্রথমেই বলে নেই। এই পোস্টে ধর্মীয় অংশটা বাদ রেখেছি ইচ্ছা করে। ওমরা করার নিয়ম, আদব এগুলো শিখানোর সঠিক মানুষ আমি না। ইন্টারনেটে অনেক জ্ঞানী মানুষের কনটেন্ট আছে এই ব্যাপারে। সেখান থেকে শিখলে অনেক বেটার শিখতে পারবেন। আমি শুধু জার্নি, থাকা খাওয়া এইগুলা নিয়ে কথা বলবো।</blockquote><blockquote>যাদের প্রতি কৃতজ্ঞতা স্বীকার না করলে আল্লাহ নারাজ হবেন তারা হচ্ছে  ছোট ভাই <strong>ইজাজ মাহমুদ</strong> (শেয়ারট্রিপের) । নিজের আপন ভাইয়ের মত প্রতিটা বিষয়ে হেল্প করছে। এমনকি আসার সময় ফ্লাইট মিস করে যখন ছয়জন মানুষ একটা ছোটবাচ্চা নিয়ে দিশেহারা হয়ে ছিলাম, তখনও অনেক হেল্প করছে। আরেকজন হচ্ছে মক্কার <strong>সাইফউদ্দিন নওশাদ </strong>ভাই। উনি না থাকলে আমার মক্কায় গিয়ে প্রথমদিন রাস্তায় কাটানো লাগতো। উনি নিজের আপন ভাইয়ের মত আমার সুবিধা অসুবিধার খোজ নিয়েছেন, দিন রাত আমার বিভিন্ন কুয়েরীর উত্তর দিয়েছেন আর নিজের বাসায় এক বেলা ইফতার করেছেন। জাজাকা্‌ল্লাহ খাইরান।</blockquote><blockquote>ওমরার রিচুয়াল কমপ্লিট করতে ম্যক্সিমাম ৫ ঘন্টা লাগতে পারে। আমি দশদিনের জন্য গিয়েছিলাম মক্কায় থাকবো, কয়েকদিন রোজা করবো, ঘুরে দেখবো এজন্য। তবে শুধু ওমরা করতে চাইলে একদিনের বেশী সময় লাগেনা সব মিলায়ে।</blockquote><img src="https://blog.anam.co/content/images/2023/04/IMG_8297.jpg" alt="যেভাবে নিজে নিজে এরেঞ্জ করে ফ্যামিলি নিয়ে সাত মাসের বাচ্চা সহ ওমরা করলাম"><p>ওমরায় যাওয়ার উদ্যোগটা শুরু হলো আম্মুর কাছে থেকে। আম্মুর অনেকদিনের ইচ্ছা কাবাঘর দেখতে মক্কায় যাবে। প্রথমে প্লান ছিলো আমি আর আম্মু যাবো, এর মধ্যে আমার মেয়ে জন্মগ্রহন করলো, প্লান করলাম মেয়ের ছয় মাস বয়স হলে মেয়েকে সাথে নিয়ে সপরিবারে যাবো। সাথে আমার শ্বশুর শ্বাশুরী আর শালাও যোগ হয়ে হয়ে গেলাম আমার ইনফ্যান্ট মেয়ে সহ সাত জন। যেকোন যায়গায় বেশী মানুষ হলে যাওয়ার আনন্দটা বেশী হয়। মেয়ের পাসপোর্ট বানাতে দিলাম। আর সাথে ভাবলাম কোন একটা ওমরা প্যাকেজ নিয়ে নেই।</p><p>প্যাকেজ ব্যাপারটা আসলে খারাপ না। **ঝামেনা এড়াতে চাইলে প্যাকেজ নিতে পারেন**। আমার সমস্যা হলো আমি এর আগে যতবার বিদেশ গেছি পুরা জিনিসটা নিজে করে গেছি। প্যাকেজ জিনিসটার সাথে কমফোর্টেবল না। আর ভাবলাম সাতজন যেহেতু, নিজে নিজেই যাই। যেই কথা সেই কাজ, নিজে নিজেই সবকিছু করে গেলাম। আর সেটার কথাই এই পোস্টে শেয়ার করবো।</p><p><strong>পুর্বপ্রস্তুতি: </strong></p><p>মুরব্বি, শিশু অথবা ক্রনিক ডিজিজ আছে এমন কেও গেলে ডাক্তার দেখায়ে চেক আপ করায়ে নিবেন অবশ্যই। ডাক্তারকে ওমরার কথা জানান। <strong>আর কয়দিন অন্তত ৫-৬ কিলোমিটার হাটার প্রাকটিস করেন।</strong> ঘরের ভিতরে খালি পায়ে হাটেন কিছুক্ষন। ভিটামিন সি যুক্ত খাবার খান। আর ইমিউনিটি বাড়ানোর ট্রাই করেন। নিয়মিত ঘুমান। </p><p>ওমরাতে যেমন পরিশ্রম আছে তেমনি মক্কার আবহাওয়া আমাদের দেশের মত না। অনেকেই অসুস্থ হয়ে যায়। তাই পুর্বপ্রস্তুতি নেয়া ভালো। বাকিটা আল্লাহর হাতে।</p><p>পুরুষ যারা যাচ্ছেন, ইহরামের কাপড় প্রথমে সামলানো কঠিন মনে হতে পারে। কয়েকবার ট্রাই করেন। বাসায় পড়ে হেটে বেড়ান, দৌড়ান। কয়েকদিন ইহরামের কাপড় পড়ে বাসায় নামাজ পড়েন। আল্লাহ সহজ করে দিবে। আমি শেষের দিকে এমন কমফোর্টেবল হয়ে গেছিলাম, মনে হচ্ছিলো সারাদিন এইটা পড়েই ঘুরি। দারাজ থেকে একটা <a href="https://www.daraz.com.bd/products/i156790091-s1086602015.html?urlFlag=true&amp;mp=1">বেল্ট ব্যাগ</a> নিতে পারেন। ফোন, পাসপোর্ট আর প্রয়োজনীয় জিনিসও রাখা যাবে আবার ইহরামের কনফিডেন্সও বাড়বে। </p><p><strong>এয়ার টিকেট:</strong></p><p>এয়ার টিকেট হাতে একটু সময় নিয়ে করা ভালো। আমি আমার  <strong>যাত্রার প্রায় দেড় মাস আগে টিকেট করেছিলাম শেয়ারট্রিপ থেকে</strong>। টাকা ছয়জনের জন্য দিতে হয়েছে আর আমার মেয়ের জন্য শুধু নয় হাজার টাকার মত একটা ফি দিতে হয়েছে,  বাচ্চার ফুল টিকিটের টাকা লাগেনি। এয়ার টিকেটের এক্সপিরিয়েন্স শেয়ারট্রিপে চমতকার। সাথে ছোট ভাই ইজাজের বিনয়ী সার্ভিসের কারনে কখনো অন্য কোথাও থেকে টিকেট করার দরকার হয়নি। পুরা প্রোসেস শেষ হতে লাগছে দশ মিনিট। টিকেট করেছিলাম সৌদি আরব এয়ারলাইন্সে। যেহেতু টিকেটের দাম ডেট ভেদে ভ্যারি করে, আপনারা বরং শেয়ারট্রিপে সার্চ দিয়ে দামটা দেখে নিয়েন। <strong>টিকেট করার সময় অবশ্যই উল্লেখ করবেন উমরার কথা।</strong></p><p>আমি সৌদি আরব এয়ারলাইন্স এর টিকেট করেছিলাম। তবে নেক্সট টাইম আর সৌদি এয়ারলাইন্সে যাবো না। এয়ারলাইন, সার্ভিস খারাপ না। তবে আমার ভালো লাগে নাই।</p><p><strong>ভিসা:</strong></p><blockquote>যদিও ব্যাপারটা অবভিয়াস তারপরেও যেহেতু অনেকে জিজ্ঞেস করেছে তাই লিখা, বাচ্চার বয়স এক দিন হলেও বিদেশ ট্রাভেল করতে পাসপোর্ট লাগে। বাচ্চাদের পাসপোর্ট করা রিলেটিভলি সহজও। </blockquote><p>ভিসা করার সময় ভয়ে ভয়ে ছিলাম।<em> অনেকে বলতেছিলো ছোট বাচ্চাদের ওমরা ভিসা দেয়না। কথাটা আসলে এমন না। বারো বছরের কম বয়স হলে বাচ্চাদের গার্ডিয়ানের সাথে আসতে হয়।</em> আমি ভিসা করতে দিয়েছিলাম শেয়ারট্রিপে। <em>এবং আমি এদেরকে ভিসার জন্য রিকোমেন্ড করবো না। একেবারেই না।</em> এয়ার টিকেট করেন। ভিসা অন্য যায়গা থেকে করেন। সৌদি আরবে ওমরা ভিসা করার মত এজেন্সির অভাব নাই। ওমরা ভিসার ক্ষেত্রে অনেক সময় এয়ার টিকেটের কিছু ট্যাক্স ফেরত পাওয়া যায়। সেক্ষেত্রে আপনার টিকেটিং এজেন্সিকে অবশ্যই ওমরা ভিসার ব্যাপারটা জানাবেন আর ভিসা হয়ে গেলে ভিসার ডিজিটাল কপি পাঠায়ে দিবেন। ভিসা করতে যা যা লাগে:<br></p><ul><li>সৌদি ভিসা বায়ো (Saudi visa bio) মোবাইল এপ ডাউনলোড করে পাসপোর্ট স্ক্যান করা লাগে, সেলফি আর হাতের ছবি তুলতে হয়। ইমেইলে একটা ইনরোলমেন্ট আইডি পাওয়া যায়। সেই ইমেইল পিডিএফ করে নিবেন।</li><li>গ্রে ব্যকগ্রাউন্ডে পাসপোর্ট সাইজের ছবির সফট কপি লাগে।বড় স্টুডিওতে গিয়ে বললেই হবে সৌদি ওমরা ভিসা।</li><li>পাসপোর্ট এর স্ক্যান কপি।</li><li>অনেক সময় বিবাহিত কাপলের ক্ষেত্রে ম্যারেজ সার্টিফিকেট চায়। তবে আমার ক্ষেত্রে চায়নি। স্ক্যান করে রেখে দিবেন। লাগলে লাগলো, না লাগলে নাই।</li></ul><p>এই জিনিসগুলো এজেন্সিকে ইমেইল করতে হয়।<strong> মুল পাসপোর্ট জমা দিতে হয়না</strong>।</p><p>আমাদের পার পার্সন (আমার মেয়ের জন্যও) <strong>ভিসা ফি লেগেছিলো ২২ হাজার টাকার মত</strong>। তবে এই ভিসার সাথে ট্রাভেল হেলথ ইনশুরেন্স থাকে এটা অনেকেই জানেনা। সৌদিতে গিয়ে অসুস্থ হয়ে গেলে এই ভিসা দেখালেই ইন্সুরেন্স সুবিধা পাবেন। ভিসা ইশু করতে <em>ম্যাক্সিমাম পাচ ওয়ার্কিং ডে</em> লাগে। ভিসা এপ্লিকেশন জমা দেয়া হয়ে গেলে নিজেই <a href="https://visa.mofa.gov.sa/">https://visa.mofa.gov.sa/</a> এখান থেকে ভিসা চেক/প্রিন্ট করতে পারবেন। তবে তারপরেও এজেন্সি থেকে একটা কপি নিবেন (এখান থেকে প্রিন্ট দিলে অনেক সময় লেটারহেড প্রিন্ট হয়না)।</p><p><strong>কারেন্সি:</strong></p><p>সৌদি আরবের ক্ষেত্রে আমি যেটা দেখছি সেটা হচ্ছে আপনার যদি ইনটারন্যাশনাল কার্ড থাকে সেটার এক্সচেঞ্জ রেট ক্যাশ ডলারের থেকে ভালো।<em> তবে সৌদি আরবে <strong>আমেরিকান এক্সপ্রেস </strong>বেশীভাগ যায়গায় একসেপ্ট করেনা</em>, এটা মাথায় রাইখেন। <strong>ভিসা আর মাস্টারকারর্ড চমতকার কাজ করে</strong>। বাকিটা আপনার প্রিফারেন্স। এয়ারপোর্টে আমার তেমন কারেন্সি এক্সচেঞ্জ চোখে পড়েনি। যা আছে হারাম শরীফের কাছে আছে ক্লক টাওয়ারের দিকে। বাইর থেকে এত মানুষ আসে এখানে সেই তুলনায় আমার কারেন্সি এক্সচেঞ্জ অপ্রতুল মনে হইছে। সাথে কিছু সৌদি রিয়েল নিয়ে যেতে পারেন। আমি অবশ্য বেশীভাগ খরচ করেছি কার্ড থেকে । সৌদিতে প্রায় সব যায়গাতেই কার্ড একসেপ্ট করে (এমনকি ভিখারীরাও)। আর এদের সব মেশিন এন এফ সি কন্টাকলেস মেশিন। আমার কার্ড পুরানো তাই এন এফ সি ছিলোনা, কাজ করেছে ঠিকই কিন্তু প্রত্যেকবার আমাকে বলে দিতে হয়েছে আমার কার্ডে ট্যাপ টু পে অপশন নাই। আগে জানলে কার্ড রিপ্লেস করে নতুন কার্ড নিয়ে যেতাম। </p><p>যারা যাচ্ছেন অন্তত গ্রুপের একজনের হলেও পাসপোর্টে ডলার ইনডোর্সমেন্ট নিয়ে যাবেন। আমাকে কারেন্সি এক্সচেঞ্জ বলেছে লাগবে না। তবে এটাই আইন।</p><p><strong>হোটেল:</strong></p><p>হোটেল বুক করেছিলাম বুকিং ডটকম থেকে। অনেক সময় এগোডা তে বেশী ছাড়ে পাওয়া যায় হোটেল। সেক্ষেত্রে ক্রস চেক করে ভালো ডিল টা নেয়া ভালো। হারাম শরীফের যত কাছে হোটেল তত বেশী দাম, সেটার কোয়ালিটি যেমনই হোক না কেন। আর হারাম শরীফের কাছে নেয়ার ক্ষেত্রেও একটা জিনিস মাথায় রাখতে হবে, সেটা হচ্ছে এলিভেশন। অনেক হোটেল আছে হারাম শরীফের ৬০০-৭০০ মিটারের ভিতরে, কিন্তু এই ৬০০-৭০০ মিটার রাস্তা পুরাটা পাহারে উঠতে হবে। আর কাছের হোটেলে থাকাটা আমার কাছে তেমন জরুরী মনে হয়নি। ট্রান্সপোর্ট ভালো এমনিতেই। কাছে থাকলে উল্টা অনেক বেশী খরচ। এক্ষেত্রে ম্যাপ আর ম্যাপের স্যাটেলাইট ভিউ আপনার বন্ধু।</p><p>আমি যেই হোটেলে ছিলাম সেটার নাম <em><strong>আল কিসওয়া টাওয়ার্স</strong></em>। হারাম শরীফে হোটেল থেকে হেটে যেতে লাগতো সাত আট মিনিট। হেটেল এইটা বেশ ভালো কিন্তু প্রচন্ড এক্সপেনসিভ। এরা বুকিং ডট কম এক্সক্লুসিভ হওয়ায় অনেক প্রেশারের সময়ও হোটেলে রুম পেয়েছিলাম।</p><p><strong>প্যাকিং:</strong></p><p>বেশীভাগ যায়গায় ট্রাভেল করার সময় আমার এটিটিউড থাকে যেটা ঐখানে সস্তায় পাওয়া যায় সেটা ব্যাগে করে নিয়ে যাবো না। কিন্তু সৌদিআরব এর ক্ষেত্রে ব্যাপারটা একটু ডিফারেন্ট। খুজলে হয়ত সবই কিনতে পাওয়া যাবে, <em>কিন্তু সবকিছুর দাম অনেক বেশী</em>। তাই যেটা আপনি নিশ্চিত লাগবেই, সেটা সাথে করে নিয়ে যাওয়াটা ভালো।</p><p>আমি একটা জেনারেল প্যাকিং লিস্ট দিচ্ছি, যেটা আমি যাওয়ার আগে করেছিলাম। লিস্টের সবকিছুই কমবেশী কাজে লেগে গেছে। একেবারে পার্সোনাল জিনিস এখানে উল্লেখ করা নাই:</p><ul><li>পাসপোর্ট</li><li>পাসপোর্ট, ভিসা, টিকেটে আর হোটেল বুকিং এর অন্তত তিন কপি ফটোকপি</li><li>কলম, ছোট নোটবুক</li><li>দুই কপি পাসপোর্ট সাইজ ছবি (আমার দরকার হয়নি, তাও সাথে থাকা ভালো)</li><li>কোভিড ভ্যাকসিন সার্টিফিকেট (আমার দেখাতে হয়নি তবে সাথে নিবেন অবশ্যই)</li><li>ইহরামের কাপড় (অন্তত দুই সেট, <strong>মোটা কাপড়ের টা কিনবেন অবশ্যই</strong>)</li><li>ভালো মানের সানগ্লাস (আমার শালার <a href="https://www.facebook.com/glasson.bd">স্টোর গ্লাস-অন এ দেখতে পারেন</a>)</li><li>ক্যাপ (আমার শালার স্টোর <a href="https://www.facebook.com/capon.bd">ক্যাপ-অন এ দেখতে পারেন</a>)</li><li><a href="https://www.daraz.com.bd/products/i156790091-s1086602015.html?urlFlag=true&amp;mp=1">ছোট সাইড ব্যাগ</a> (সবসময় পাসপোর্ট আর ভিসার একটা কপি সাথে রাখবেন)</li><li>টুথব্রাশ, টুথপেস্ট, ফ্লস</li><li>ভালো মানের স্যান্ডেল (ইহরামের ড্রেস কোড, প্লাস প্রচুর হাটতে হয়, অবশ্যই ভালো মানের আরামদায়ক স্যন্ডেল নিবেন)</li><li>টাওয়েল বা গামছা (এটা হয়ত হোটেলে দিবে, পার্সোনাল হাইজিনের খাতিরে নিতে পারেন)</li><li>নেইল কাটার</li><li>ছোট কাচি বা ট্রিমার (অবশ্যই চেক-ইন লাগেজে নিবেন)</li><li>ছাতা</li><li>জুতা রাখার ব্যাগ</li><li>সানস্ক্রিন (অন্তত SPF 50)</li><li>রেগুলার মেডিসিন (অন্তত জ্বর ঠান্ডার ঔষধ অবশ্যই নিবেন)</li><li>পেইন কিলার স্প্রে (মুভ টাইপের কিছু)</li><li>ওরস্যালাইন</li><li>ফ্লেভার বিহীন পোট্রোলিয়াম জেলি (ভ্যাসলিন এর একটা ছোট কৌটা কিনে নিবেন সবসময় সাথে রাখার জন্য)</li><li>সুগন্ধ ছাড়া সাবান বা লিকুইড সাবান। (দারাজ লিংক:  <a href="https://www.daraz.com.bd/products/mollywaiz-300ml-i165464705-s1098826328.html?search=store&amp;mp=3">Mollywaiz</a> অথবা <a href="https://www.daraz.com.bd/products/ikebana-hajj-umrah-100-i287408077-s1287018180.html?search=1">Hajj Soap</a>)</li><li>সুগন্ধ বিহীন টিশু পেপার (দারাজ লিংক: <a href="https://www.daraz.com.bd/products/1-box-planet-non-perfume-pocket-tissue-i113340308-s1030520125.html?search=store&amp;mp=3">Planet Tissue</a>)</li><li>ফেস মাস্ক</li><li>পাওয়ার ব্যাংক</li><li>ট্রাভেল এডাপটার</li><li>চা, কফি</li></ul><p><strong>মোবাইল এপ যেগুলা ডাউনলোড করে নিয়ে যাবেন:</strong></p><ul><li><a href="https://www.nusuk.sa/">Nusuk</a> (মদিনায় রওদায় নামাজ পড়ার পার্মিশন এর জন্য)</li><li>Careem (উবার এর মত)</li><li>গুগল ম্যপে মক্কা, মদিনার অফলাইন ম্যাপ</li><li>গুগল ট্রান্সলেটে ইংরেজী আর এরাবিক ভাষার অফলাইন ট্রান্সলেশন</li></ul><p><br>মক্কার আবহাওয়া বেশ আন প্রেডিক্টেবল। সাধারনত বেশীভাগ দিন ভর দুপুরে বাইরে বের হলে রোদে পুড়ে সাইজ হয়ে যাবেন। <strong>ইনডোরে কনকনে ঠান্ডা করে রাখে এসি দিয়ে। স্পেশালি হারাম শরীফে সাফা-মারওয়ার মাঝের যায়গাটা। </strong>আর রাতে বাইরের টেমপারেচার বেশ কমে যায়।</p><p>তবে আমরা যেদিন গিয়েছিলাম তার পরের দিন থেকেই ঠান্ডা বাতাস শুরু হয়েছিলো। দিনের বেলায়ও ছায়ার মধ্যে ঠান্ডা লাগতো, রাতে তো পুরা মাথা নস্ট ঠান্ডা। আমাদের দোকান থেকে শীতের কাপড় কিনতে হয়েছে এতটা ঠান্ডা ছিলো।<strong> আর আবহাওয়া প্রচন্ড ড্রাই। ঠোট, পায়ের পাতা সব ফেটে যায়।</strong> এইজন্য ভ্যাজলিন পকেটে নিয়ে ঘুরতে হয়।</p><p><strong>যাত্রা:</strong></p><p>এয়ারপোর্টের জন্য একটু হাতে সময় নিয়ে বের হবেন। রাস্তায় আর এয়ারপোর্টের গেটের সামনে অনেক টাইম লাগে। সাধারনত ওমরা ভিসা থাকলে ইমিগ্রেশনে তেমন সময় লাগেনা। অন্তত আমাদের সময় লাগেনি। আপনি চাইলে ইহরামের কাপড় বাসা থেকে পড়ে যেতে পারেন। তবে ঢাকা টু জেদ্দা প্রায় সাড়ে সাত ঘন্টার জার্নি। এতক্ষন অনেকেই ইহরাম পড়ে বসে থাকতে পারেনা। আমি যেটা করেছিলাম, আমার কেবিন ক্যারি ব্যকপ্যাকে এক সেট ইহরাম একটা পরিস্কার পলিব্যাগে নিয়ে নিয়েছিলাম। প্লেন মিকাত (যেখান থেকে ইহরামের কাপড় পড়ে ওমরার নিয়ত করতে হয়) পার হওয়ার সময় এনাউন্স করে। মীকাতের কাছাকাছি যাওয়ার সময়ও এনাউন্স করে। সেই সময় প্লেনে ইহরামের কাপড় পড়ে ফেলা যায়। তবে সেটার জন্য কয়েকবার প্রাকটিস করে যাবেন বাসা থেকে। প্লাস পারলে বাসায় ইহরাম পড়ে কয়েকবার নামাজ পড়বেন। তাহলে ইহরাম এর সাথে কমফোর্টেবল হয়ে যাবেন। নাহলে পড়তে আর সামলাতে সমস্যা হতে পারে।</p><p>সৌদি আরব এয়ারলাইন্সে নামাজ পড়ার আলাদা যায়গা আছে, সেখানে গিয়ে ইহরাম পড়া যায়। অন্য এয়ারলাইনে হয়ত ওয়াশরুমে গিয়ে পড়তে হবে। আর যদি ইহরাম পড়ে না উঠেন প্লেনে, <em>এমন প্যান্ট পড়বেন যেটা বেল্টা ছাড়া ঢিলা হয়ে পড়ে যায়না, সহজে খোলা যায় এমন জুতা পড়বেন (চেকিং এর সময় আসলেই এটার জন্য আমাকে মনে মনে ধন্যবাদ দিবেন)।</em></p><p><strong>ল্যন্ড করা, হোটেলে যাওয়া, সিম কার্ড কেনা:</strong></p><p>ল্যন্ড করার পর ইমিগ্রেশন। আমাদের সৌদি ইমিগ্রেশন অফিসার লোকটা খুব বিনয়ী ছিলো। ইমিগ্রেশনে এপে দেয়া ফিংগারপ্রিন্ট মিলিয়ে দেখে আর ছবি তুলে। আপনার সাথে বয়স্ক কেও থাকলে আগে আপনি ইমিগ্রেশন পার করবেন, গিয়ে বলবেন আপনার সাথে কয়জন আছে, আপনি চাইলে দাড়িয়ে আপনার সাথের অন্যদেরও হেল্প করতে পারেন।</p><p>ইমিগ্রেশন পার করার পর লাগেজ নেয়া লাগে। জেদ্দার এয়ারপোর্টে লাগেজ সাধারনত খুব তারাতারি চলে আসে। যেই বেল্টে আসবে  তার সামনের স্ক্রিনে আপনার ফ্লাইট নাম্বর লিখা থাকবে। লাগেজ নিয়ে সামনে গেলেই দেখবেন অনেক ভলান্টিয়ার দাড়িয়ে আছে (গলায় আইডি কার্ড ঝুলানো থাকে)। জেদ্দা এয়ারপোর্ট থেকে ওমরা করতে আসা মানুষের জন্য <strong> ফ্রি বাস সার্ভিস আছে</strong>।  ইহরাম পড়া থাকলে তারাই আপনাকে গাইড করে বাসের কাছে নিয়ে যাবে। <em>আপনাদের ভিসার কপি হাতে রাখবেন</em>। ভিসা কনফার্ম করে বাসে করে নিয়ে যাবে।</p><p>বাসের যায়গাতেই সিম কার্ড নিয়ে ঘুরে বেড়ায়। এটা নেয়ার জন্যও ভিসা দেখানো লাগে। <strong>আমরা ৩৫ রিয়েল দিয়ে Zain এর সিম কিনেছিলাম। ২ গিগাবাইট 5G ডাটা আর ২০০ মিনিট কল ছিলো</strong>। জেইন এর সার্ভিস ভালো লাগে নাই আর সারা মক্কায় আমি জেইন <em>রিচার্জ করার কোন অপশন পাই নাই</em>। এর পর গেলে হয়ত অন্য কোন অপারেটর নিবো।</p><p>হারাম শরীফের সামনের রাস্তাতেও ফ্রি সিম কার্ড দেয়। রিচার্জ করা লাগে। ঘুরে ফিরে সেইম পরিমান টাকাই লাগে।</p><p><strong>হোটেলে পৌছে অবশ্যই মুরব্বিদের পকেটে হোটেলের একটা করে কার্ড দিয়ে দিবেন</strong>। যেন হারিয়ে গেলে কার্ডটা দেখাতে পারে।</p><p><strong>চলাচল:</strong></p><p>যাওয়ার আগে গুগল ম্যপে মক্কা আর মদিনা এরিয়ার অফলাইন ম্যাপ ডাউনলোড করে রাখবেন। অবশ্যই আরবী ভাষা সহ ম্যপ টা ডাউনলোড করবেন। হাবিবীরা বেশীভাগই ইংরেজি বুঝে না। নাম বললেও বুঝেনা। এমনকি এরা ম্যপও বুঝেনা ভাষা ইংরেজী থাকলে। এমনকি বেশীভাগ হাবিবি হারাম শরীফ, আয়শা মসজিদ আর কয়টা হোটেল বাদ দিয়ে অন্য যায়গাগুলোও চিনেনা। তাই অবশ্য অবশ্যই অফলাইন ম্যাপ ডাউনলোড করে নিয়ে যাবেন। ম্যাপ থাকলে যেকোন যায়গায় যেতে পারবেন সহজেই।</p><p>অনেক হোটেলের ফ্রি বাস সার্ভিস আছে হারাম শরীফ পর্যন্ত। আপনার হোটেলে না থাকলে আশেপাশের হোটেলের বাসেও যেতে পারবেন সমস্যা নাই। আর মক্কায় সরকারী ভাবেও ফ্রি বাস আছে সেগুলোতেও যেতে পারবেন। আর বাজেট থাকলে গাড়িতে যেতে পারবেন। রাস্তায় দাড়ালেই দেখবেন গাড়ির অভাব নাই। গাড়ি নিলে অবশ্যই ম্যপে আপনার লোকেশন বের করে একবার চালককে দেখায়ে নিবেন, আমি ধরা খেয়ে শিখছি বিষয়টা।</p><p>রাস্তা থেকে নেয়া গাড়ির ক্ষেত্রে <strong>সস্তা আর সেফ হচ্ছে কারিম (Careem)</strong> মোবাইল এপ। তবে অনেক সময় এপে গাড়ি পাওয়া যায়না।</p><p>হারাম শরীফ চব্বিশ ঘন্টা খোলা ঘাকে। আর মক্কা রাতে জেগে উঠে। বেশীভাগ দোকান রাত ১টা বা ৩ টা পর্যন্ত খোলা থাকে। আর বাকীগুলা ২৪ ঘন্টাই খোলা থাকে। আমরা প্রথম ওমরা বাদ দিয়ে বাকী সবগুলা ওমরা মাঝরাতে গিয়ে করে আসছি। ভীড় কম থাকে। আর ওমরা শেষ করতে করতে ফজরের আজান দিয়ে দেয়, তখন ফজর পড়ে ওমরা শেষ করে আসি।</p><p>মদিনা যেতে চাাইলে:</p><ul><li>বাসে যাওয়া যায়। <a href="https://www.saptco.com.sa/">Saptco এর বাস আছে অনলাইনে টিকেট কাটা যায়</a>। পাচ ছয় ঘন্টার মত লাগে।</li><li>অথবা বুলেট ট্রেনে যেতে পারেন। আড়াই ঘন্টা লাগে। টিকেটের দাম একটু বেশী। <a href="https://sar.hhr.sa/">অনলাইনে টিকেট করা যায়।</a></li><li>অথবা গাড়ি ভাড়া করে যেতে পারেন (৫০০-৯০০ রিয়েল নিবে রাউন্ড ট্রিপ)। গাড়িতে যেতে সাড়ে চার ঘন্টার মত লাগে।</li></ul><p><strong>ভাষা ও মানুষের সাথে কমিউনিকেট করা:</strong></p><p>সৌদি হাবিবীদের মধ্যে ইংরেজি জানে এমন মানুষ খুবই কম। এমনকি টয়লেট শব্দটার মানেও জানেনা। যারা ইংরেজী জানে তারা আবার শুদ্ধ ইংরেজী বুঝেনা। আমি প্রথমদিন শুদ্ধ ইংরেজী বলে ট্রাই করে দেখছি। যাই হোক, যারা ইংরেজী বুঝে তারা বুঝে ভাংগা ইংলিশ। সুতরাং আপনার আমেরিকান একসেন্টে “I am hungry where can I get some food?” না বলে বলবেন “eating?”।</p><p>তবে সস্তির বিষয় হচ্ছে, যেদিকে তাকাবেন, দেখবেন কোন না কোন দেশী ভাইয়ের চেহারা দেখা যাচ্ছে। দেশী না হলেও পাকিস্তানি পাবেন। এদের সাথে কমিউনিকেট করা সহজ। আমার ক্ষেত্রে যেটা হয়েছে, আমি যেখানেই গেছি, দেশী ভাই পেয়ে গেছি। এরা এক চিপায় কেন যেন লুকায়ে থাকে। সহজে কাছে আসতে চায়না। তবে একবার কথা বললে দেখবেন তাদের মত আন্তরিক মানুষ হয়ত দেশের বুকেও দেখেন নাই।</p><p>যাওয়ার সময় দেশ থেকেই ট্রান্সলেটের অফলাইন ডাটা নামায়ে নিয়ে যাবেন। ইংরেজী আর আরবী ভাষারটা হলেই হবে। আর দেখবেন ক্যামেরা ট্রান্সলেশন আর ভয়েজ ট্রান্সলেশন আপনার সবচেয়ে বড় বন্ধু।</p><p>দুই চারটা আরবী শব্দ শিখে যাওয়া আরো বেটার। আমি একটা শিখায়ে দেই, <em>“হাম্মাম”, মানে ওয়াশরুম। আর “হাল্লা” মানে হেয়ারকাট।</em></p><p>অনেকেই উর্দু পারে, এমনকি হাবিবিরাও। কিন্তু আমি কারো সাথে উর্দুতে কথা বলি নাই। বলতে ইচ্ছা করে নাই।</p><p><strong>খাওয়া:</strong></p><p>মক্কায় খাওয়ার যায়গার অভাব নাই। ভালো যায়গারও অভাব নাই। যেই শুনবে আপনি মক্কা গেছেন জিগ্গেস করবে<strong> আলবাইকে খেয়েছেন কিনা</strong>। আলবাইকে সাধারনত বেশ ভীড় থাকে আর বেশীভাগ আলবাইক টেকএওয়ে দেশ শুধু। আলবাইকের নাগেট ভালো লাগছে। চিকেন দেশের বিএফসসি ই ভালো। তবে একবার আলবাইক অন্তত খাইয়েন। অন্তত ফোমো এভয়েড করার জন্য।</p><p>আমি যেই দশদিন ছিলাম, দশদিনই প্রায় এক্সক্লুসিভলি মিল টাইপের খাবার খেয়েছি <strong><a href="https://goo.gl/maps/Wb2J9wECvaxBwS6R6">ইস্কান্দার কাবাবে (বেশ পপুলার তুর্কিশ রেস্টুরেন্ট</a>)</strong>। এদের তুর্কিশ কাবাব চমতকার। আমরা একটা <strong>১৪৫ রিয়েলের প্লাটার নিতাম</strong>, আমাদের ছয়জনের পেট ভরে খাওয়া হয়ে যেত। চিপ না তেমন। কিন্তু টেস্টি আর আরামদায়ক খাবার। আপনি ইস্কান্দার কাবাবে গেলে গিয়ে <em>ফারুক ভাইকে চাইবেন</em>। ফারুক ভাইয়ের বাড়ি চট্রগ্রাম। খুব ভালো মানুষ। আমাদের নিজের আত্বীয়ের মত যত্ন করে সার্ভ করেছেন। আর ফারুক ভাইকে পেলে আমার পক্ষ থেকে একটা সালাম দিবেন। <strong>তুর্কিশ সব রেস্টুরেন্টে ফ্রি তুর্কিশ কফি দেয়</strong>।</p><p>উটের মাংস খাওয়ার ইচ্ছা ছিলো।<strong> <a href="https://goo.gl/maps/L8QQ6wAUvyrxbuWVA">খাবসা হাসি</a> </strong>নামে একটা রেস্টুরেন্ট আছে। আজিজিয়া আলবাইকের কাছেই। এদের উটের বিরিয়ানি খুবই টেস্টি। <em>৫৫ রিয়েলে একটা প্লেট নিলে তিন চারজন পেট ভরে খাওয়া যায়</em>। আর এদের কোন টেবিল চেয়ার নাই। ট্রেডিশনাল এরাবিক স্টাইলে ফ্লোরে বসে খেতে হয়। এখানে গেলে সুমন ভাইকে পাবেন (যেখানেই যাবেন দেখবেন দুই চারজন বাংগালি আছে)।</p><p>আর মাথায় উঠছিলো স্টেক খাবো।<strong> গ<a href="https://goo.gl/maps/m1V5jNQTgNPRdeJD7">ুরকান সাফ রেস্টুরেন্ট</a> </strong>এ গিয়েছিলাম। এটা<em> আবার বারোটায় বন্ধ হয়ে যায়</em>। এখানকার স্টেক চমতকার। দাম প্রচন্ড রকম বেশী। দামটা নাহয় না লিখলাম।</p><p>এই সব রেস্টুরেন্টের খোজ দিয়েছে নওশাদ ভাই। উনাকে অনেক জ্বালাইছি। তবে আমি যেসব রেস্টুরেন্টে গিয়েছি সেগুলো বেশী খরচের রেস্টুরেন্টের মধ্যে। মেইনলি আমি খাবার নিয়ে কোথাও গেলে রিস্ক নেই না। স্পেশালি সাথে যেহেতু বয়স্ক মানুষ ছিলো। এগুলে ছাড়াও<strong> আল সাফওয়া টাওয়ারের চার তলায় ফুডকোর্ট আছে, </strong>হারাম শরীফের আশেপাশে (স্পেশালি ক্লক টাওয়ারের ডান পাশের গলি দিয়ে সোজা গেলে) বাংলা খাবারের রেস্টুরেন্ট আছে। সেই যায়গাগুলোতে খাবার বেশ সস্তা। ১৫-২০ রিয়েলে এক বেলার খাবার ইজিলি হয়ে যাবে। আমি ফুডকোর্টে নাস্তা করেছি মাঝে মাঝেই। আর সৌদির খাবারের দাম বেশী হলেও পোর্শন অনেক বেশী। মানে সৌদির মানুষদের মেটাবলিজম ভালো। একজনের জন্য যে পরিমান খাবার দেয় সেটা দিয়ে দুইজন পেট ভরে খাওয়া যায়। </p><p>আর আপনি যদি খাবারের জন্য কোন টাকা খরচ করতেই না চান। হারাম শরীফের বারান্দায় প্রায় সবসময় কেও না কেও খাবার দিয়ে যায়। প্রতি বেলায় বড় করে ফ্রি খাবারের আয়োজন করে মক্কার বেশ কয়েকটা প্লেসে। তাদের উদ্দেশ্য কিছু সওয়াবের আশায় আল্লাহর অতিথিদের এক বেলা খাওয়ানো। আমার অনেক ইচ্ছা ছিলো এরকম মজলিসে গিয়ে এক বেলা খাওয়ার, সময় আর সুযোগ হয়ে উঠেনি। </p><p>সৌদি আরবে <strong>ফান্টার একটা এক্সক্লুসিভ ফ্লেভার পাওয়া যায়, সিট্রাস ফ্লেভার</strong>। আমরা যখনই কোল্ড ড্রিংকস খেয়েছি এটাই খেয়েছি। সাথে দোকানে লাবান খুব কমন আইটেম। আলমারাই এর লাবান বেশ টেস্টি।</p><p>আর যেটাই করেন, অরেঞ্জ জুস খাইয়েন না। সৌদি সরকারের স্ট্রিক্ট গাইডলাইন আছে কোন জিনিসকে জুস বলা যাবে আর কোন জিনিসকে জুস বলা যাবেনা। আর ফ্রুট জুসের ক্ষেত্রে পানি বা চিনি দিলে জরিমানা। সেটা দোকানের প্যকেটজাত জুস হোক আর জুসের দোকানের জুস হোক। আর চিনি ছাড়া অরেঞ্জ জুস তিতা প্রায়। আপেল জুস মজা আছে। আবার জুসের দোকানে মিক্সড ফ্রুট জুস পাওয়া যায়, সেইটা বেশ মজা।</p><p>আরেকটা জিনিস, সফট আইসক্রিমের অনেক দোকান আছে, আইসক্রিম মজা তবে <strong>চকলেট ফ্লেভার এভয়েড করবেন</strong>। এদের বেশীভাগ চকলেট ফ্লেভারের আইসক্রিমে চকলেট এর কালার জিহবায় লেগে যায়। নাহলে লাল ঠোট আর চকলেট কালারের জিগবা নিয়ে ঘোরা লাগবে অনেকক্ষন।</p><p>সৌদির লোকাল কফিকে <strong>গাওয়া </strong>বলে। আমি এখনো বুঝি নাই <em>এই জিনিস এরা এত মজা করে খায় কেমনে</em>। হারাম শরীফের বারান্দায় বসলে প্রায় প্রতি ওয়াক্তের নামাজের পর (স্পেশালি মাগরিবের পর) অনেকেই ফ্রি গাওয়া খঅওয়ায়, খেতে চাইলে একটু খেয়াল করলেই পারবেন। ফ্রি তুর্কিশ কফি  গুলো মজা ছিলো। রাস্তায় একটু পর পর কফির দোকান পাবেন, কফি খাওয়ার কোন সমস্যা হয়নি মক্কায়।</p><p>জমজমের পানি খুবই তৃপ্তি লাগে খেতে। <strong>আপনার সাথে মুরব্বি থাকলে অবশ্যই বলবেন নন চিলড (ঠান্ডা না করা, লিখা থাকে) জমজমের পানি খেতে</strong>। ঠান্ডা পানি খাইলে ঠান্ডা লাগার সম্ভাবনা অনেক বেশী। আপনি চাইলো দোকান থেকে পানি কালেক্ট করার বোতল কিনে সেই বোতল ভরে জমজমের পানি নিয়ে আসতে পারবেন হোটেলে খাওয়ার জন্য। আর রাস্তায় দেখবেন কেও না কেও সবসময় খাবার, বোতলজাত পানি বিলিয়ে দিচ্ছে। এই রকম জেনেরসিটি আমি এর আগে কোন দেশে দেখিনি।</p><p><strong>চুল কাটা:</strong></p><p>ওমরার রিচুয়াল শেষ করে চুল কেটে অথবা মাথা ন্যারা করে ওমরা শেষ করতে হয়। ওমরা করে বের হলেই ক্লক টাওয়ারের পাশের বিল্ডিং আল সাফওয়া টাওয়ারের বেজমেন্টে, তিন তলায় অনেক সেলুন আছে। আপনি ট্রিমার নিশে গেলে নিজেই কাটতে পারবেন অথবা সেই সেলুনগুলোতে যেতে পারবেন। প্রায় ১০০ ভাগ সেলুনই পাকিস্তানি দের। <em>গড়ে ১০ থেকে ১৫ রিয়েল লাগে চুল কাটাতে</em>।</p><p><strong>কেনাকাটা:</strong></p><p>চকলেট বিস্কুট এইগুলা বা গ্রোসারি টাইপের কিছু কিনতে গেলে <strong>বিনদাউদ (BinDawood)</strong> সবয়েচে ভালো অপশন। আমি গিয়ে গিয়ে বিনদাউদেই পড়ে থাকতাম। প্রায় চব্বিশ ঘন্টাই খোলা পাবেন বিনদাউদ। হারাম শরীফের কাছেই আছে একটা।</p><p>খেজুর,আতর, জায়নামাজ, জুব্বা বা এই টাইপের জিনিস কেনার জন্যও হারাম শরীফের কাছেই ক্লক টাওয়ারের পাশে আল সাফওয়া টাওয়ার আছে। সেখানের চার তলা মার্কেটেই সব পেয়ে যাবেন। দেশী মানুষের দেকানে সাধারনত দেশী দেখলে দাম কম রাখে। আবার দেখবেন আপনার হোটেলের আশেপাশেও প্রচুর দোকানপাট পাবেন এইগুলা কেনার।</p><p>লাক্সারি জিনিস কিনতে বা দেখতে চাইলে সয়ং ক্লক টাওয়ারে ঢুকতে পারেন। এই বিল্ডিং এ স্টারবাক্স ও আছে। অথবা রাস্তার অপজিটেই দারুস সালাম বিল্ডিং আছে (আলবাইক বললেই দেখায়ে দিবে)। আমি এইখান থেকে একটা ক্যাসিও ঘড়ি কিনছিলাম।</p><p><strong>তবে ইহরাম রত অবস্থায় মার্কেটে না ঢুকাই ভালো। আতরের দোকানদাররা একটু বেশী ফ্রেন্ডলি এইখানে। আদর করে আতর ভরায়ে দিতে পারে গায়ে।</strong></p><p>ঔষধ যদি একান্তই কিনতে হয় ফার্মেসি আছে অনেক। স্পেসিফিক কিছু খুজে না পেলে <strong>নাহদি ফার্মেসিতে</strong> খুজে পাওয়ার সম্ভাবনা বেশী। </p><p>জমজমের পানি হারাম শরীফ থেকে এমনিতেই নিয়ে আসতে পারবেন বোতল ভরে। <em>শুধুমাত্র দেশে আসার সময় স্পেশাল বোতলে নিয়ে আসতে হয় (পাচ লিটারের বোতল কার্ডবোর্ডে বক্সে প্যাক করা থাকে ২০ রিয়েল দাম)</em>। এই বোতল ছাড়া অন্য কোন বোতল ফ্লাইটে এলাউ করে না। আর এটা চেক ইন লাগেজেই দিতে হয়। আলাদা যায়গা আছে এয়ারপোর্টে জমজম পানি জমা দেয়ার। আর একটা বোর্ডিং পাসের (এয়ার টিকেটের) জন্য এক বোতলের বেশী জমজম পানি নিতে দেয় না। </p><p><strong>বাচ্চা নিয়ে ওমরা করার জন্য এক্সট্রা যা করতে হয়েছে: </strong></p><p>মক্কায় যাওয়ার সময় আমার মেয়ের বয়স ছিলো সাত মাস।<strong> জার্নির আগের দিন ওর ডাক্তারের কাছে গিয়েছিলাম রুটিন চেকআপ করার জন্য</strong>। উনি বলেছেন বাচ্চা হেলদি আছে নিয়ে যাওয়া যাবে। সাথে উনি ঠান্ডার মেডিসিন লিখে দিয়েছিলেন আর কোন সিচুয়েশনে কি করতে হবে (ঠান্ডা লাগলে, ডিহাইড্রেশনে) বলে দিয়েছিলেন। আমরা ঔষধ গুলো দেশ থেকে নিয়ে গেছি কারন সৌদিতে ঔষধের দাম অনেক অনেক বেশী। </p><p>যাওয়ার আগে<strong> মেনিনজাইটিস আর ইনফ্লুয়েঞ্জার </strong>টিকা দিয়ে নিয়ে গিয়েছিলাম (প্রাইভেট ভ্যাকসিন)। আমার মেয়ে চার ঘন্টা পর পর খায় তাই দুইটা ফিডার রেডি করে নিয়ে গিয়েছিলাম। এমনিতে ফ্লাইটে লিকুইড নিতে না দিলেও বেবি বোতলের ক্ষেত্রে কিছু বলেনি। বাচ্চার ফরমুলা নিয়ে গিয়েছিলাম, সাথে সিরিয়ালও। সাথে কিছু বেবি ফুডের জার নিয়ে গিয়েছিলাম যেটা রেডিমেড পাওয়া যায়। </p><p>বাচ্চার রেগুলার মেডিসিনের পাশাপাশি, বাচ্চাদের সানস্ক্রিন, একটা এক্সট্রা ছাতা, সুডোক্রিম নিয়ে গিয়েছিলাম। এগুলোর দাম অবশ্য সৌদিতে কম। বাচ্চার ফরমুলাও কমবেশী সবই পাওয়া যায় সৌদিতে। লোকাল ফার্মেসিতে না পাওয়া গেলে বড় <strong>নাহদি ফার্মেসি</strong> আছে সেখানে পাওয়া যায়।</p><p>বাচ্চাটার জন্য তার মা, খালা দাদী মিলে ছোট হিজাব, সাদা সুন্দর ড্রেস তৈরী করে দিয়েছিলো। বাচ্চাকে কোলে নিয়েই দুইবার ওমরা করেছি। বেবী স্ট্রলার নেইনি। যদিও এয়ারলাইন স্ট্রলার ফ্রি চেকইন করতে দেয়। তবে একটা বেবি ক্যারিয়ার নিয়ে গিয়েছিলাম। সেটা অনেক কাজে এসেছে। হারাম শরীফে স্ট্রলার নিতে দেয়না এখন।</p><p><strong>স্ক্যাম:</strong></p><p>আমি আমার লাইফে যেই কয়টা শহরে ট্রাভেল করছি সবগুলোর মধ্যে মক্কা আমার কাছে সবচেয়ে বেশী সেফ মনে হয়েছে। রাত চারটার সময় একা একা মক্কার রাস্তায় হেটে হেটে এদিক ঐদিক গেছি একফোটা অসস্তি লাগেনি। আমার ওয়াইফ একা একা ঘুরে বেরিয়েছে শপিং করার জন্য আমার এক ফোটাও টেনশন হয়নি কখনো। মাশাআল্লাহ। এইখানে ছিনতাই, ইভটিজিং এইগুলা নাই। চুরির টেনশনও করেনা কোও কোনকিছু নিয়ে কারন চুরির পানিশমেন্ট ভয়াবহ। তবে যেইটা আছে সেটা হার্মলেস স্ক্যাম। স্ক্রিপ্ট সিম্পল, “লাগেজ হারায়ে গেছে, এখন খাওয়া দাওয়া, যাওয়ার টাকাটুকা নাই।” প্রতিদিন অন্তত দুইটা করে পাইছি এই জিনিস। তেমন সমস্যা হয়নি যদিও। সরি দিতে পারবো না বললে চলে যাবে। তবে এই এক গ্রুপ থেকে সাবধান থাকা ভালো। ইন ফ্যাক্ট হারাম শরীফে ওমরা করার টাইমেও ইহরাম পড়া এদের দেখা পাইছি বেশ কয়বার।</p><p><em>আরো অনেক কিছু আছে যেটা মনে পড়ছে না। মনে পড়লে এড করে দিবো।</em></p>]]></content:encoded></item><item><title><![CDATA[How to conduct Coding interviews]]></title><description><![CDATA[<p>I've taken and given a lot of interviews. I had been part of recruitment processes in many organisation. That allowed me to observe the overall hiring process from both side of the table. This post is a compilation of my observations, and my opinion on how a hiring process should</p>]]></description><link>https://blog.anam.co/how-to-conduct-coding-interviews/</link><guid isPermaLink="false">61425ab629bcfa00015c6403</guid><category><![CDATA[english]]></category><category><![CDATA[opinion]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Wed, 15 Sep 2021 23:11:54 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1565688534245-05d6b5be184a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIzfHxpbnRlcnZpZXd8ZW58MHx8fHwxNjMxNzM4NTU2&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1080" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1565688534245-05d6b5be184a?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIzfHxpbnRlcnZpZXd8ZW58MHx8fHwxNjMxNzM4NTU2&ixlib=rb-1.2.1&q=80&w=1080" alt="How to conduct Coding interviews"><p>I've taken and given a lot of interviews. I had been part of recruitment processes in many organisation. That allowed me to observe the overall hiring process from both side of the table. This post is a compilation of my observations, and my opinion on how a hiring process should be for engineers. I had been lucky so far with hiring the right people. Maybe I was lucky, or maybe I improved my hiring tactics to find out the right people from experience. And this post might help you find the right people for your organisation too. </p><blockquote>Also, before reading this, Please note that this post is a pure <strong>Opinion</strong>, There's no right or wrong here. Everything here is my opinion derived from my experience, backed by logics valid in my opinion. Also this only applies when you are hiring engineers, specifically, Software engineers. You might have a completely different experience, and that's fine. </blockquote><h2 id="writing-a-good-job-opening-post-">Writing a good job opening post: </h2><p>Every hiring process starts with a job opening post. Either to be published in a hiring platform, or to be posted in Social media. Or maybe both. Wherever it gets published, keep it small if you want the candidate to actually read the job post. </p><p><em>Keep the list of required skills as specific as possible</em>. Please remember this works as a filter, ask for too much, and perfectly fit candidates won't apply. Ask for too less and you will receive a lot of irrelevant application. If it's good to have additional skills for the applicant, Keep it in a separate "Good to have" list. If you are purely looking for skills, Make having a CS degree optional. I've seen many non CS grads with amazing software engineering skills. Also mention that the years of experience can be flexible for very skilled individuals. You'll be surprised at how good some less experienced engineers are. I've seen it and I was amazed.</p><p><em>Mention a salary range to attract the right crowd</em>. Money is the biggest motivating factor in a salaried job and it's fair to let the candidates know what to expect. Also include clear application instruction. If you are using a recruiting platform please ensure that it supports Resume imports or Linkedin/Indeed imports. I've seen platforms that present you with a huge form and you have to fill it with everything that's already in your resume. Many good applicant bounce off from this stage. </p><p><em>Ask for a PDF resume.</em> Because formats like word, Pages or Open document will often break because of font, layout and compatibility issues. Also, converting to PDF shouldn't be a problem for an aspiring software engineer. Additionally, this will work as a filter to know who did and didn't read the job post carefully. </p><p><em>Add a last date of application</em>, specially if your job post is going to be published in social media. Otherwise, you might get a job application even six month after publishing the job post. This happens in real life, trust me!</p><h2 id="shortlisting-candidates">Shortlisting candidates</h2><p><em>Let an engineer shortlist the candidates.</em> Or best hire a HR with CS background. maybe under a fancy designation like "Engineering talent specialist". Not every CS person wants to write code, you'll find many good engineers interested in people science and HR. </p><p><em>Shortlist based on skillset and previous experiences.</em> A good resume might tell a lot about a person, but sometimes many good engineers have sloppy resumes. I'd suggest taking the time and not get deceived by looks. </p><p><em>Also, whenever you reject a candidate in whatever stage of this process, write back a constructive positive message. </em>If you can't offer someone a job, the least you can do is avoid letting them feel down. And don't share any feedback on anything, be generic. In fact, this is illegal in many places.</p><h2 id="coding-interview-">Coding interview:</h2><p><em>Smile.</em> Introduce yourself properly. Let the candidates introduce themselves. Talk like a friend. Everyone gets nervous during an interview. To find the best in a person, you have to make sure the overall environment is friendly. </p><p>If you ask a question, and the candidate is in the right track with the answer, help them out. <em>Everybody forgets things under stress, don't hold it against them. </em></p><p><em>Keep the camera on and request the candidate to keep the camera on if the interview is online. </em>Think of it like this, if it was an on-site interview, they had to show their face anyways. Also, expressions tells a thousand things.keeping the camera on also helps detect cheating. Like searching the answer to your question in a different device. It happened multiple times while I took interviews, Unfortunately.  </p><p><em>Many prefer live problem solving with screen sharing.</em> This is good. Just make sure the problem is very easy to communicate and is not too complex. The goal is to find out the candidate's approach to a problem, and their way of solving it. A ten minute problem solving session can tell a lot about an engineer. Also try to keep the problem relevant to the type of work they will be hired for. And please avoid common problems.</p><p><em>Ask questions about things that the candidate might have to encounter according to their experience</em>. For example, you might ask an API developer about CORS. </p><p><em>Plan the session ahead of time and keep it as short as possible</em>. You don't want to waste too much time for yourself and the candidate. Also, people get exhausted. If you observe carefully, you won't even need a long time to know someone. Also if a candidate is not up to the mark, don't cut them off from an ongoing conversation. Slowly take the conversation to an end. Because again, Don't let people feel down.</p><h2 id="coding-assignment">Coding assignment</h2><p><em>The number of steps in an interview should co-relate with the expected level of seniority</em>. If you are not hiring for anything above mid level engineer, maybe skip the coding assignment. Hiring juniors or associates should be a simpler process. </p><p><em>If you do give candidates coding assignment, make sure it's not too much time consuming, Mention the requirements as clearly as possible</em>. Also make sure the problem is not too obvious to just search for a matching implementation. Always ask to use a VCS like <strong>git</strong>. And while checking, always go through the commits. <em>Git never lies.</em></p><p><em>Also don't add bonus points. </em>Just don't. It's a competition, all the candidates will end up doing the bonus points anyway, so why bother? If you want something just clearly mention it in the requirements. Again, keep the requirements simple, you don't want to waste a lot of time for a lot of people just to hire one person, It's unfair. </p><h2 id="making-an-offer">Making an offer</h2><p>A lot of people might disagree, but if you have budget, make an offer slightly higher than the expected salary. At least don't offer lower than expected. And you should not bargain if you have the budget. Salary is an investment, and if you invest on the right person, and if a few hundred dollars make them happier, this will go a long way and come back with great return. Trust me, it always does. Also make sure to include company policies in the contract, let them know clearly what they are getting into. </p><p>There's a lot more to discuss about this, and a lot more areas to cover. this post is a work in progress and will be updated gradually.</p>]]></content:encoded></item><item><title><![CDATA[Recording webRTC Videos. Methods I tried, Lessons I learned.]]></title><description><![CDATA[<p>I had the opportunity to work on many excellent projects. Every project comes with their unique challenges. One of those projects was a video calling application. It was a great learning experience, a lot of fun and a great achievement. </p><p>I had a few challenges with the project, the first</p>]]></description><link>https://blog.anam.co/lessons-i-learned-trying-to-record-video-streams-from-the-frontend-best-practices/</link><guid isPermaLink="false">61247fcf29bcfa00015c6324</guid><category><![CDATA[webrtc]]></category><category><![CDATA[recording]]></category><category><![CDATA[video]]></category><category><![CDATA[development]]></category><category><![CDATA[devops]]></category><category><![CDATA[aws]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Tue, 31 Aug 2021 02:01:38 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1588196749597-9ff075ee6b5b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHdlYmNhbXxlbnwwfHx8fDE2Mjk3ODIxMjg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1080" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1588196749597-9ff075ee6b5b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fHdlYmNhbXxlbnwwfHx8fDE2Mjk3ODIxMjg&ixlib=rb-1.2.1&q=80&w=1080" alt="Recording webRTC Videos. Methods I tried, Lessons I learned."><p>I had the opportunity to work on many excellent projects. Every project comes with their unique challenges. One of those projects was a video calling application. It was a great learning experience, a lot of fun and a great achievement. </p><p>I had a few challenges with the project, the first was cost, the product I worked on had a very slim margin. I had to make sure whatever I made was cost effective. It had to work with minimum internet connectivity, and the conversations had to be recorded. Today's story is about the recording part. </p><p>If you want to record webRTC calls, there are many options. But it generally comes down to two types of solution: </p><ol><li>Record the stream from server side</li><li>Record from client side</li></ol><p>Server side recording is widely used, it's easy to set up if you have a media server. It's often very reliable and can be formatted in any desired way. However, it's expensive. Apart from the storage space needed, it requires additional media server, the calls are not peer to peer any more, and all the calls use up server bandwidth. All these also add a small latency to the "real time" video streams, It's noticeable if you have a bad connectivity.</p><p>Client side recording is a gray area. you can record using a third party application or use the new <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaStream_Recording_API">Media stream recorder API</a>. But it's often complex to set up, depends a lot on the client's capabilities and can kill the browser if not done properly. </p><p>I had to chose client side recording after many trials and calculation. For a fact I knew that the application I am making will be a one-to-one video calling system and one of the parties will be sitting in a call center with good internet connectivity and hardware that I would be able to control. I had to design my solution around those facts. </p><p>I had to take care of two streams from one side. The party sitting in a call center will record both the streams, upload to the server because I have no control over the hardware or internet connection of the other party. </p><p>The very first attempt was a horrible failure. I used two media stream recorders to record the local and remote streams and then the whole recording would be uploaded once the call will be over. five minutes into a call, and the browser crashed. I totally forgot the fact that the recordings were being stored in the memory and quickly ate up all the allocated memories with raw video data. </p><p>I modified the code and recorded the videos as 10 second chunk. That mostly worked out great but soon I realized that two 10s streams uploading at once every 10 seconds puts pressure on the client bandwidth and decreases the video quality of the live call. I had to reduce the upload to once at a time. </p><p>So I cooked up a small queue mechanism. raw video streams are gathered in a queue and then gets uploaded one by one. This solved the bandwidth pressure problem. but eventually started to build up the queue and then fill the memory. </p><p>So I had to find a clever mechanism to randomize the length to best avoid overlap of the streams, This combined with the queue mechanism solved my upload problem. But a recording is only good if it can be played back. I had to figure out how to play it back. </p><p>The clips are saved in Amazon AWS S3 with one time signed URL. I thought I could use Amazon AWS Elastic transcoder to stitch the clips and make a full recording. I created a AWS Lambda Function to invoke elastic transcoder on the right files and output to another S3 Bucket. Once the calls finished, the system would invoke the lambda function and the transcoding would begin. </p><p>I was almost ready to celebrate the success when I noticed many of the transcoding jobs were failing because the clips of the same call had different video resolution and bitrate. Specially on the remote stream. This makes sense because webRTC adjusts these parameters based on internet connectivity in real time. The transcoder was not able to stitch those video clips and failed. </p><p>So.. I created a player. From scratch. the videos are accessible only using one time signed URL, I had to make a player that plays both local and remote stream side by side, make sure they are in sync, and downloads and prepares the next chunk in the background for uninterrupted playback experience. With a bit of hard work and a lot of math, The player was functional. </p><p>And that way I probably made the most cost effective webRTC recording solution I could imaging. </p>]]></content:encoded></item><item><title><![CDATA[বৈজ্ঞানিক কল্পকাহিনী: সিম্বি]]></title><description><![CDATA[<p>মগের প্রিন্টটা উঠে যাচ্ছে। ২০৩৬ সালের বায়োটেক কনফারেন্সের কুচকুচে কালো কফি মগটা ডক্টর রাশেদের খুব প্রিয়। তিনি সাধারনত এই মগে কফি খান,</p>]]></description><link>https://blog.anam.co/baijnyaanik-klpkaahinii-simbi/</link><guid isPermaLink="false">5ff4621429bcfa00015c62c0</guid><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Tue, 05 Jan 2021 13:02:06 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1613744450985-fc6372fe6a12?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM2fHxhbGllbnxlbnwwfHx8fDE2Mjg1MDcxOTk&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1080" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1613744450985-fc6372fe6a12?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM2fHxhbGllbnxlbnwwfHx8fDE2Mjg1MDcxOTk&ixlib=rb-1.2.1&q=80&w=1080" alt="বৈজ্ঞানিক কল্পকাহিনী: সিম্বি"><p>মগের প্রিন্টটা উঠে যাচ্ছে। ২০৩৬ সালের বায়োটেক কনফারেন্সের কুচকুচে কালো কফি মগটা ডক্টর রাশেদের খুব প্রিয়। তিনি সাধারনত এই মগে কফি খান, আজকে চা খাচ্ছেন।</p><p>মন্টুর এতক্ষনে বাজার থেকে চলে আসার কথা, খবরের কাগজটাও আজকে দিয়ে যায়নি কেন যেন। কাপে থাকা অবশিষ্ট চা থেকে সামান্য একটু চা একটা স্লাইডে নিয়ে বাকীটা ফেলে মাইক্রোস্কোপে চোখ দিলেন। চায়ের এই স্পিসিস তার আবিস্কার করা। সাধারনত চা সমতল ভুমিতে হয়না, কিন্তু এই স্পিসিস সমতল ভুমিতে হবে। ২২ সালের গ্রেট গ্লোবাল এগ্রিকালচার ডিক্লাইনের পর তার এরকম অনেক আবিস্কার আস্তে আস্তে অনেক ফসল ফিরিয়ে আনতে পেরেছে।<br></p><p>“চাচাজান, একটা লোক আসছে আপনার সাথে দেখা করতে”, ডক্টর রাশেদ খেয়ালই করেননি কখন মন্টু বাসায় চলে এসেছে। <br></p><p>"আলুর স্যম্পল নিয়ে আসছো মন্টু?"</p><p>মন্টু কোন জবাব না দিয়ে চুপ করে দাড়িয়ে থাকলো।</p><p>"আচ্ছা পরের দিন আনতে ভুলো না। একটু খিচুরী রান্না করতে পারবা?"</p><p>জে আচ্ছা।<br></p><p>কিছুক্ষন পর মন্টু আবার ফিরে আসলো, “চাচাজান, লোকটা বলে অনেক জরুরী দরকার আপনাকে”<br></p><p>আচ্ছা বসতে বলো, আমি যাচ্ছি। <br><br>ডক্টর রাশেদের লিভিং রুম অন্য সবার লিভিং রুমের মত না। ঘর ভর্তি বিভিন্ন প্রজাতির গাছ। রুমের ছাদে বিভিন্ন রংয়ের এলইডি লাইট, ঠিক টাইম করে রং পরিবর্তন করে। সুর্যের আলোর পরিবর্তে এগুলো গাছগুলোকে বাচিয়ে রাখে। তার বাসায় সাধারনত কেও আসেনা। ডক্টর রাশেদও খুব একটা বাইরে যান না। বাজার করা, বাসা দেখাশোনা করা সব মন্টুই করে। খুলনা বিশ্ববিদ্যালয় থেকে প্রফেসর হিসেবে স্বেচ্ছায় অবসর নেয়ার পর থেকে শীতাকুন্ডের এই বাসাটাতেই তিনি ল্যবরেটরী বানিয়ে গবেষনা চালিয়ে যাচ্ছেন। এখন প্রায় পুরো বাসাটাই তার ল্যবরেটরী, এমনকি লিভিং রুমটাও। ডক্টর রাশেদ লিভিং রুমে ঢুকে দেখতে পেলেন ৩০-৩২ বছর বয়সের একজন রুমের একমাত্র সোফায় বসে আছেন। একটা ধবধবে সাদা শার্ট আর কালো ফরমাল প্যান্ট পড়া। দেখে মনে হচ্ছে এই শার্ট এর আগে পড়া হয়নি, খোজাখুজি করলে হয়ত দোকানের লেবেলও পাওয়া যেতে পারে । ডক্টর রাশেদকে দেখে উনি দাড়িয়ে গেলেন।<br></p><p>“আসসালামু আলাইকুম স্যার, আমাকে আপনি চিনবেন না”<br></p><p>“আপনি আর্মিতে আছেন?”, ডক্টর রাশেদ বসতে বসতে বললেন।</p><p> ২০২০ সালের প্যন্ডেমিকের সময় থেকেই লিভিং রুমে একটা এক্সট্রা চেয়ার রাখেন ডক্টর রাশেদ। মানুষ থেকে দুরে বসার জন্য। সেই দুরে বসার অভ্যাসটা রয়েই গেছে। দুরে বসলে আরেকটা সুবিধা হচ্ছে মানুষকে সহজে পর্যবেক্ষন করা যায়। <br></p><p>লোকটা একটু অবাক হয়ে জিগ্গেস করলো, “জ্বী: লেফট্যনেন্ট কর্নেল আসাদ, আপনি কিভাবে বুঝলেন?”<br></p><p>“বুটটা খুলে আসতে ভুলে গেছেন”, ডক্টর রাশেদ মুচকি হাসলেন। <br></p><p>“কফি খাবেন? আজকে আমার সকালে কফি খাওয়া হয়নি। মাথাটা ধরে আছে”,</p><p>আসাদ : “কফি? মানে…”</p><p>ড: রাশেদ: “সারা দুনিয়াতে বিলুপ্ত হয়ে গেলেও আমার গ্রীন হাউসে আছে। আর জেনেটিকালি মডিফাই করে আমি যেই নতুন স্পিসিস তৈরী করেছি সেটা প্রতি দুই সপ্তাহে হার্ভেস্ট করা যায়”</p><p>আসাদ : হ্যা খাবো। ভুলেই গেছি কফির স্বাদ। <br></p><p>ডক্টর রাশেদ হালকা জোর গলায় বললেন, “মন্টু উনার জন্য একটা এসপ্রেসো আর আমার জন্য একটা নাইট্রোজেন কফি”, মন্টু শুনলে কিনা বুঝতে পারা গেলনা। <br></p><p>ড:রাশেদ: তো আমার কাছে কি প্রয়োজনে আসা? আর্মির সাথে তো আমি বান্দরবানের অর্কিড প্রিজারভেশনের পর আর তেমন কোন কাজ করিনি। আর আমার লেভেল ৮ সিকুরিটি ক্লিয়ারেন্স তো রিনিউ করা হয়নি।</p><p>আসাদ : আপনার সিকুরিটি ক্লিয়ারেন্স আপগ্রেড করে লেভেল ৯ করা হয়েছে, আপনার একটু জরুরী ভিত্তিতে আমার সাথে যেতে হবে।</p><p>ড: রাশেদ: আমি ধারনা করছি আপনাকে কারন জিজ্ঞেস করে লাভ হবেনা। লেভেল ৯ যেহেতু, আমাকে অফিশিয়ালি ব্রিফ করার আগে কিছুই বলবেনা কেও।</p><p>আসাদ: জ্বী। <br></p><p>ড: রাশেদ: কতক্ষনের জন্য যেতে হবে সেটা বলেন, আমি সেভাবে প্যাকিং করি। <br></p><p>আসাদ: সেটাও বলতে পারবো না, আপনার কিছু নেয়ার দরকার নেই, কিছু লাগলে আমাদের বলবেন, আমরা নিয়ে যাওয়ার ব্যবস্থা করবো। <br></p><p>ড:রাশেদ: ঠিক আছে, কফিটা খেয়ে যাই।<br></p><p>আসাদ: জ্বী আচ্ছা।<br></p><p>ডক্টর রাশেদ তার পোর্টেবল ল্যাব কিট নিয়ে ড্রেস পাল্টে শুধু একটা এক্সট্রা লুংগি নিয়ে প্রস্তুত হয়ে গেলেন। বাসার বাইরে বের হয়ে দেখেন রাস্তার মাঝখানে একটা মিলিটারী হেলিকাপ্টার। সেটাতে করে তাকে প্রথমে নিয়া যাওয়া হলো ঢাকা ক্যন্টনমেন্টে। সেখানে গিয়ে দেখেন তার কলেজকালীন বন্ধু, ফিজিক্স প্রোফেসর ডক্টর ইকবাল, আর ঢাকা ইউনিভার্সিটির ম্যথ ডিপার্টমেন্টের বিভাগীয় প্রধান ডক্টর শারমিন কেও ডেকে আনা হয়েছে। তাদের নিয়ে আবার বড় একটা আর্মি হেলিকাপ্টার রাজশাহীর আদমজী জুটমিলে গিয়ে ল্যন্ড করলো।</p><p>এবার ডক্টর রাশেদের একটু টেনশন হলো, আর্মি তাদের নিয়ে একটা বন্ধ পড়ে থাকা জুটমিলে কেন আসলো, মেরে টেরে ফেলবে না তো আবার। কিন্তু বন্ধ জুটমিল হিসেবে যায়গাটা অনেক পরিপাটি। তাদের হেলিকাপ্টারের সাথেই আরো দুইটা হেলিকাপ্টার ল্যন্ড করলো। এরপর তাদের মেইন মিলের ভিতরে নিয়ে যাওয়া হলো। পাটকলের সব মেশিন বের করে ছোটখাটো আর্মি বেস তৈরী করা ভিতরে। তারা এসে দাড়ালো একটা বড় লিফটের সামনে। সবাই লিফটে উঠার পর লিফট নীচে নামতে শুরু করলো। <br></p><p>সাথে থাকা আর্মি অফিসার বললো, ওয়েলকাম টু বাংকার ৭১। এই বাংকারের কথা লেভেল ৯ ক্লিয়ারেন্সের নীচে কেও জানেনা। আপনাদের মাটির ৪০০ মিটার নীচে নিয়ে যাওয়া হচ্ছে। এই বাংকারের নিজস্ব আর্টিফিশিয়াল এটমস্ফিয়ার আছে। প্রথম প্রথম নিশ্বাস নিতে সমস্যঅ হতে পারে, কিন্তু আস্তে আস্তে এডজাস্ট হয়ে যাবে। বড় সাইজের নিউক্লিয়ার ব্লাস্ট হলেও এই বাংকারের কোন ক্ষতি হবেনা। <br></p><p>ডক্টর রাশেদের মনে কেন যেন এক ধরনের অস্বস্তি কাজ করতে শুরু করলো। আশেপাশে অন্যদের দিকে তাকিয়ে তাদের চেহারাতেও দুশ্চিন্তা দেখতে পেলেন। <br></p><p>লিফট দিয়ে নেমে তাদের একটা বড় হলরুমে নিয়ে যাওয়া হলো। সেখানে তিন বাহিনীর প্রধান, রাষ্ট্রপতি, প্রধানমন্ত্রী বসে কি যেন একটা নিয়ে আলোআনা করছে। তাদের তিনজনকে দেখে প্রধানমন্ত্রী বললেন: বসুন। এভাবে আপনাদের ডেকে আনার জন্য দুক্ষিত। কিন্তু পরিস্থিতিটাই এমন। <br></p><p>এরপর এয়ার ফোর্সের প্রধান কথা বলতে শুরু করলেন, “গত বুধবারে বঙ্গবন্ধু স্যটেলাইট-৪১ পৃথিবীর আউটার অরবিটের কাছাকাছি একটি বেশ বড় সাইজের মিটিওরাইটের উপস্থিতি ডিটেক্ট করে”, মিটিওরাইট টি অসম্ভব রকম বড ছিলো আর গতিপথও অদ্ভুত ছিলো, কিন্তু আমরা হিসেব করে দেখছিলাম এটা পৃথিবীর পাশ দিয়ে সরে যাবে। কিন্তু হঠাত করেই কোর্স পরিবর্তন করে এটা পৃথিবীর দিকে আসতে শুরু করে, এবং আমাদের হিসাব করা স্পিডের কয়েকগুন বেশী স্পিডে আসতে শুরু করে। আমরা ভেবেছিলাম, এটার ইমপ্যক্টে আমরা সিলেট বিভাগ পুরোটা হারিয়ে ফেলবো। কিন্তু আমরা কোন বিস্ফোরন টের পেলাম না। এমনকি স্যটেলাইট দিয়ে দেখে ইমপ্যক্ট সাইটে কোন ক্রেটারও পেলাম না। আর্মি আর এয়ার ফোর্সের দুইটা ইউনিট পাঠানো হয়েছিলো পসিবল ইমপ্যক্ট সাইটে। এরিয়াতে ঢোকার পর থেকে তাদের সাথে আমাদের যোগাযোগ বন্ধ হয়ে যায়।<br></p><p>ড: রাশেদ: সেটা তো ৫ দিন আগের কথা? <br></p><p>সেনাবাহিনী প্রধান: হুম। এর পর আমরা ২৪ ঘন্টা তাদের সাথে যোগাযোগ করার চেষ্টা করি। না করতে পেরে আরো চারটি টিম পাঠাই। তাদের সাথেও যোগাযোগ হারিয়ে যায়। আমাদের টোটাল ৩ টা মিগ বিমান আর ২ টা হেলিকাপ্টার সহ টোটাল ছয়টা ইউনিট নিখোজ হয়ে যায়। কিন্তু গতকাল…<br></p><p>কয়েক সেকেন্ড চুপ থেকে আবার বলতে থাকেন, গতকাল আমাদের প্রথম ইউনিটের একজন আর পরের ইউনিট গুলোর একজনকে টাংগুয়ার হাওর এলাকা থেকে নৌবাহিনীর একটা ইউনিট উদ্ধার করে। কিন্তু তাদের ঠিক সুস্থ অবস্থায় পাওয়া যায়নি। তাদের উদ্ধার করার সময় রেসকিউ টিমের একজনের উপর তাদের একজন হামলা করে। পরে রেসকিউ টীমের সেই সদস্যও তাদের মত অসুস্থ হয়ে যায়। <br></p><p>ড: ইকবাল: কেমন অসুস্থ? <br></p><p>নৌবাহিনী প্রধান: দেখবেন। তার আগে বলি আপনাদের কেন ডাকা। অবশ্য এটা মাননীয় রাষ্ট্রপতি বললে বেশী ভালো হয়। <br></p><p>রাষ্ট্রপতি: আমাদের সবার খুব স্ট্রং ধারনা মিটিওরাইট টা আসলে একটা ইউ এফ ও ছিলো। সেই হিসেবে আমাদের ধারনা এলিয়েন রা আমাদের দেশে ল্যন্ড করেছে। ডক্টর ইকবাল, আপনার ফিজিক্স নিয়ে কাজ আন্তর্যাতিক ভাবে সমাদ্রিত, ইউ এফ ও নিয়ে আমাদের যত ডাটা আছে, আমাদের সব স্যটেলাইট, গ্রাউন্ড স্টেশন, টেলিস্কোপ থেকে কালেক্ট করা সব ডাটা আপনার জন্য কালেক্ট করা হয়েছে। আপনার দায়িত্ব এই ডাটা এনালাইজ করা, আর সেই স্পেসশিপের ব্যপারে যতটুকু সম্ভব জানতে চেষ্টা করা।<br></p><p>ডক্টর শারমিন, আপনার বই “ম্যথ এজ এ ল্যংগুয়েজ” দেশে বিদেশের ইউনিভার্সিটিতে পড়ানো হয়।আপনার থিউরি অনুযায়ী ম্যাথ ইউনিভার্সাল ল্যংগুয়েজ, যেকোন জাতি, যেকোন স্পিসিসের ম্যাথের একটা ভার্শন আছে।  এলিয়েনদের সাথে যোগাযোগ করার জন্য আপনি একটা ফ্রেমওয়ার্ক ডিজাইন করবেন। নাসা থেকে গতকাল দুটো টীম বাংলাদেশে এসেছে, আপনারা দুইজন তাদের সাথে কাজ করবেন। মনে রাখবেন “দিস অপারেশন ইজ আওয়ার্স” নাসার সাথে কাজ করলেও দুইটি টীম আপনারা নিজেরা লিড করবেন আর সরাসরি রিপোর্ট করবেন আমার কাছে।<br>ডক্টর রাশেদ, কেমন আছেন? ডক্টর রাশেদ মনে মনে কি যেন ভাবছিলেন, হঠাত ডাক শুনে চমকে উঠলেন। <br></p><p>ডক্টর রাশেদ: জ্বী হালকা চিন্তিত। <br></p><p>রাষ্ট্রপতি: দু:চিন্তা করার সময় নেই ডক্টর, আপনার দায়িত্ব উদ্ধার হওযা তিনজনকে স্টাডি করা।  তাদের অসুস্থতার ধরন, কারন বের করা, আর এর একটা নিরাময় খুজে বের করা। যদি এলিয়েন হয় তবে, এলিয়েনরা তাদের শরীরে কি ধরনের পরিবর্তন নিয়ে আসছে, এই পরিবর্তন রিভার্স করা যায় কিনা সেটা স্টাডি করবেন। আমি জানি আপনি টীমওয়ার্ক পছন্দ করেন না তারপরেও আর্মির বায়োটেক ল্যবের একটি টীম আপনার সাহায্যের জন্য রেডী থাকবে। দরকার হলে শুধু ডাকলেই হবে। <br></p><p>আপনার সাবজেক্ট তিনজনকে এয়ারটাইট স্ট্রং কাচের ঘরে রাখা হয়েছে। দেখতে চান এখনই?<br></p><p>ড: রাশেদ: জ্বী।<br></p><p>একটা লম্বা করিডোর ধরে হেটে সবাই একটা ধবধবে সাদা ল্যাবরুমে গেল। সেখানে তিনটা কাচের ঘরে তিনজন লোক দাড়িয়ে আছে। দুর থেকে দেখলে মনে হয় সাধারন সুস্থ মানুষ। কাছে যাওয়ার পর বুঝতে পারা যায় কিছু একটা ঠিক নাই। সবার চুল অদ্ভুত রকম সবুজ। চোখের পলক পড়ছে না। শরীরটা কিছুক্ষন পর পর হালকা করে কেপে উঠছে। পাশেই ল্যব কোর্ট পড়ে থাকা একজন বললো, আসার পর তারা কোন ধরনের খাবার খায়নি। সারাদিন এভাবে দাড়িয়ে থাকে। প্রতিদিন প্রায় ৪০০ গ্রাম করে  ওজন কমে যাচ্ছে সবার। যেন ভিতর থেকে কিছু একটা খেয়ে ফেলছে তাদের। প্রথম প্রথম ছটফট করতো, মানুষ দেখলে দৌড়ে আসতো এটাক করতে তারপর যখন কাচের ব্যপারটা বুঝতে পেরেছে, এখন শুধু দাড়িয়ে থাকে। <br></p><p>ডক্টর ইকবাল এই দৃশ্য বেশীক্ষন সহ্য না করতে পেরে বের হয়ে গেলেন। প্রধানমন্ত্রী বললেন, আপনারা কিছুক্ষন রেস্ট নেন। তারপর কাজ শুরু করেন। আসাদ আপনাদের খোজ খবর নিবে আর আমাকে রিপোর্ট করবে। কিছু দরকার হলে আসাদকে জানাবেন। দেশের ভবিষ্যত আপনাদের উপর নির্ভর করছে।<br></p><p>ড: রাশেদ বললেন, রেস্ট পরে নেয়া যাবে, আমি এখনই শুরু করতে চাই। বলে কাধ থেকে ব্যাগটা নামিয়ে ব্যাগ থেকে তার পছন্দের অডিও রেকর্ডারটা বের করলেন, সাথে তার প্রিয় ডায়েরীটাও বের করলেন।<br></p><p>প্রথম কাচের ঘরের সামনে লেখা:</p><p>সাবজেক্ট ০১:</p><p>কমান্ডার আসিফ</p><p>বাংলাদেশ নেভী</p><p>এক্সপোজার পিরিয়ড: ১ দিন<br></p><p>দ্বিতীয় ঘরের সামনে লেখা:</p><p>সাবজেক্ট ০২:</p><p>ফ্লাইট লৈফট্যানেন্ট নুর</p><p>বি এ এফ</p><p>এক্সপোজার পিরিয়ড: ৩ দিন (আনুমানিক)<br></p><p>শেষ ঘরের সামনে লেখা:</p><p>সাবজেক্ট ০৩:</p><p>ক্যপ্টেন মুস্তাফিজ</p><p>বাংলাদেশ আর্মি</p><p>এক্সপোজার পিরিয়ড: ৬ দিন (আনুমানিক)<br></p><p>ডক্টর রাশেদ তার ডিক্টাফোনের রেকর্ডার অন করে রেকর্ড করা শুরু করলেন: “সাবজেক্টস ঘুমায় না, খায়না। সারাদিন দাড়িয়ে থাকে। সবার চুল অদ্ভুত রকম সবুজ। দাড়ি মোছ, গায়ের লোম এমনকি পিউবস ও সবুজ, তাও হালকা সবুজ না, চোখে পড়ার মত শাইনি সবুজ। তাদের ফিজিওলজি বুঝার জন্য কালকে আমার কিছু এক্সপেরিমেন্ট করতে হবে।  আরো ইম্পরট্যন্ট ব্যপার হচ্ছে। প্রতিটা সাবজেক্ট দিনে ৪০০ গ্রাম করে ওজন হারাচ্ছে, আমার ধারনা তাদের যেটাই এটাক করুক সেটা জিবীত, কিছুটা ভাইরাস অথবা ব্যকটেরিয়ার মত পরজিবী, তাদের শরীর থেকে প্রতিদিন ৪০০ গ্রাম করে খেয়ে বেচে আছে”<br></p><p>ডক্টর রাশেদ সারাদিন ল্যাবেই কাটালেন, রাতে ঘন্টাখানেক ব্রেক নিয়ে কাজ করতে করতে ঘুমিয়ে পড়লেন।   <br></p><p>সকাল বেলা আবার গবেষনা শুরু করলেন, রেকর্ডার অন করে প্রথম সাবজেক্টের কাছে গিয়ে রেকর্ড করতে শুরু করলেন:  <br></p><p>সাবজেক্ট ১: এক্সপোজার টাইম ২ দিন। চুলের রং আগের মতই সবুজ, আজকে থেকে গায়ের রং হলুদ হতে শুরু করেছে। চোখের আইরিশও সবুজ হওয়া শুরু করেছে। আগের থেকে নড়ে ওঠার ফ্রিকুয়েন্সি বেড়ে গেছে। আগে দুই মিনিটে একবার নড়ে উঠতো, এখন প্রতি ৪৫ সেকেন্ডে একবার নড়ে উঠে। নড়ে উঠার ব্যপারটা খুব কনসিস্টেন্ট। একমাত্র এই সাবজেক্টের সঠিক এক্সপোজার ডেট আমাদের জানা। এই সাবজেক্ট থেকে হয়ত সঠিক টাইমলাইন পাওয়া যাবে।<br></p><p>সাবজেক্ট ২: এক্সপোজার আনুমানিক ৪ দিন। চোখ প্রায় সবুজ হয়ে গেছে, গায়ের চামড়াও প্রায় সবুজ হয়ে গেছে। প্রতি ৩০ সেকেন্ড পর পর নড়ে উঠছে ।স্টপওয়াচ দিয়ে টাইমিং করে দেখেছি, খুব কনসিস্টেন্ট। গায়ের চামড়ার রং পরিবর্তনের পাশাপাশি চামড়া শুকিয়ে কুকড়ে যাওয়া শুরু করেছে। গতকাল থেকে আজকে ওজনের তারতম্য ৪১৫ গ্রাম ৫৫ মিলিগ্রাম। <br></p><p>সাবজেক্ট ৩: এক্সপোজার আনুমানিক এক সপ্তাহ। চুলের রং এখনো সবুজ, তবে শাইন নাই আর এতটা। চামড়ার রং, আইরিশের রং সবুজ থেকে নীল হতে শুরু করেছে। প্রতি ৫ সেকেন্ড পর নড়ে উঠছে। খুব কনসিস্টেন্ট। চামড়া কুচকে গেছে পুরোটাই, হাড্ডিসার হয়ে গেছে আরো একদিন গেলে মনে হয়না দাড়ানোর মত ব্যলেন্স রাখতে পারবে। <br></p><p>ওভারঅল আমি কনভিন্সড, তাদের শরীরে কোন একটা এলিয়েন পরজিবী আক্রমন করেছে। কোন টাইপ সেটা এখনো জানতে পারিনি। সাবজেক্ট ৩ মনে হয় খুব বেশী দিন বাচবে না। <br></p><p>ডক্টর রাশেদ ল্যবের ডেস্কেই ঘুমিয়ে গেলেন। <br></p><p>তৃতীয় দিন: ডক্টর রাশের সকালে হাল্কা নাস্তা করেই কাজে লেগে পড়লেন। তার মনটা আজকে ভালো না। তিনি রেকর্ডার অন করে রেকর্ড করতে লাগলেন: <br></p><p>ডে থ্রি, <br></p><p>সাবজেক্ট ১ এর চামড়ার রং এখন সবুজ, সাবজেক্ট ২ এর চামড়ার রং নীল। তার মানে টাইমলাইন হিসাব করলে এই এটাক করলে চামড়া আস্তে আস্তে হলুদ থেকে সবুজ সবুজ থেকে নীল হয়ে যায়। নীল হওয়ার চব্বিশ ঘন্টার মধ্যে খুব সম্ভবত হোস্ট মারা যায়, স্যম্পল সাইজ কম, তাই এইটা কনফার্মড না। আমার ধারনা মাত্র। গতকাল করা ব্রেইন স্ক্যানের রেজাল্ট আসছে। তাদের ব্রেইন অসম্ভব একটিভ। আর ই এম স্লিপ মানে স্বপ্ন দেখার সময়য়ের ব্রেইন একটিভিটির সাথে তাদের ব্রেইন একটিভিটির অনেক মিল। মনে হচ্ছে তারা স্বপ্ন দেখছে। এমনকি তাদের শরীরে ডোপামিন, অক্সিটোসিন, সেরাটোনিন, এড্রেনালিনের পরিমানও অনেক বেশী। <br></p><p>এখন প্রশ্ন হচ্ছে, ব্রেইন এক্টিভিটি এত বেশী কেন?<br><br>ডে ফোর: <br></p><p>সাবজেক্ট ৩ আজকে নড়াচড়া করছে না, খুব সম্ভবত মারা গেছে। সাবজেক্ট ২ এর অবস্থাও আস্তে আস্তে খারাপের দিকে যাচ্ছে। এই কয়দিন আমার গবেষনা খুব বেশী সামনে আগায়নি, আর হয়ত তাই সাবজেক্ট ৩ মারা গেল। হয়ত সাবজেক্ট ২ ও মারা যাবে আর আমি কিছুই করতে পারবোনা। কাচের ঘরের ভিতরে রোবট দিয়ে গবেষনা করাটা কঠিন আর বিরক্তিকর। রিস্ক ফ্যক্টর এত হাই, অন্য কোন অপশনও নাই। বাল।<br></p><p>…. ওয়েট, এটা কি? <br></p><p>সাবজেক্ট ৩ এর শরীর থেকে রক্তের মত কি যেন বের হচ্ছে, কিন্তু লাল না ,সবুজ। সাবজেক্ট ৩ এ চুলের রংয়ের সবুজ ভাবটা চলে গেছে। রক্তের মত সবুজ জিনিসটা মনে হচ্ছে এক যায়গায় জমা হচ্ছে, মনে হচ্ছে পুরও জিনিসটা একটা জিবীত! এখন পুরো ঘর দিয়ে ঘুরে বেড়াচ্ছে খুব সম্ভবত বের হওয়ার রাস্তা খুজছে। ফ্যাসিনেটিং! "<br></p><p>সেই রাতে ডক্টর রাশেদ ঘুমাতে পারলেন না। অবাক চোখে সাবজেক্ট ৩ এর ঘরের দিকে তাকিয়ে থাকলেন। মাটিতে সাবজেক্ট ৩ এর হাড্ডিসার দেহ পড়ে আছে আর ঘর দিয়ে সবুজ এলিয়েনটা ঘুরে বেড়াচ্ছে। মাঝ রাতের দিলে এলিয়েন প্রানীটার নড়াচড়া কমে গেল। দেখে মনে হচ্ছে নিজের শেপ ধরে রাখতেও সমস্যা হচ্ছে। ডক্টর রাশেদ বুঝলেন এলিয়েন খাওয়ার জন্য কিছু পাচ্ছে না। তার টেস্ট সাবজেক্ট মারা যাবে এটা ভেবে উনি ৪০০ গ্রাম কাচা গরুর মাংস আনালেন, এর পর ঘরে পৌছে দেয়ার ব্যস্থা করলেন। এলিয়েন পরজিবীটা মাংস ঘিরে নিলো, কিছুক্ষন পর মাংসটি অদৃশ্য হয়ে গেল। কিন্তু এলিয়েন পরজিবী প্রানীটা আবার ছটফট শুরু করলো না। এক যায়গায় চুপচাপ স্থির থাকলো।<br></p><p>এবার ডক্টর রাশের ঘরের কাচের কাছে গেল। ইন্টারকম অন করে বললো, তুমি কি আমার কথা বু্ঝতে পারো? <br></p><p>ডক্টর রাশেদ নিজের মনে মনে লজ্জা পেলেন, কতটা নাইভ চিন্তা তার, এলিয়েন কিভাবে তার কথা বুঝবে। কিন্তু তাকে অবাক করে দিয়ে এলিয়েন নিজের শরীর হা সুচক ভাবে নাড়ালো। ডক্টর রাশেদ নিজের চোখকে বিশ্বাস করতে পারলেন না। উনি ইন্টারকম অন করে আবার বললেন, তুমি কি আসলেই আমার কথা বুঝতে পারছো?<br></p><p>এলিয়েন পরজিবী আবার হা সুচক ভাবে নড়লো। <br></p><p>ডক্টর রাশেদ এবার এক্সাইটেড হয়ে জিজ্ঞেস করলো, তুমি বাংলা শিখলে কিভাবে?? এলিয়েন পরজিবী, সাবজেক্ট ৩ এর হাড্ডিসার দেহের দিকে ইংগিত করলো। <br></p><p>ডক্টর রাশেদ ব্যপারটা বিশ্বাস করতে পারছে না! উনি এর পর এলিয়েনের সাথে কথা বলার জন্য একটা ভাষা ঠিক করে দিলেন। আর একের পর এক প্রশ্ন করতে লাগলেন। উনি রেগুলার ৪০০ গ্রাম খাবারও সাপ্লাই করতে শুরু করলেন এলিয়েন কে। এলিয়েন প্রানীটি বেশীভাগ প্রশ্নের জবাব হ্যা অথবা না তে দেয়। এক পর্যায়ে ডক্টর রাশেদ তাকে বললো। মানুষ শান্তি প্রিয় প্রানী, আমরা সবার সাথে মিলে মিশে থাকি, আমরা কনফ্লিক্ট চাইনা শান্তি চাই, তুমি কি আমার বন্ধু হবে? <br></p><p>এলিয়েন পরজিবী হ্যা সুচক ভাবে নড়লো।<br></p><p>ঠিক আছে, তোমার নাম আজ থেকে দিলাম সিম্বি, তোমার নামটা কি পছন্দ হয়েছে?</p><p>সিম্বি হ্য সুচক ভাবে নড়লো।</p><p>এরপর ডক্টর রাশেদ জিজ্ঞেস করলো, তুমি কি আমাকে বলতে পারবে কিভাবে আমি তোমার অর্গানিজমের এটাক থেকে মানুষদের বাচাতে পারি? সার্ভাইভাল আমাদের জন্য অনেক গুরুত্বপুর্ন। আমি কথা দিচ্ছি মানুষ না মেরে তোমাদের বাচার ব্যবস্থা আমি করে দেবো।<br></p><p>সিম্বি কিছুক্ষন কোন নড়াচড়া করলো না, এর পর ঘরের লকের দিকে ইশারা করলো।<br></p><p>ডক্টর রাশেদ তাকে জিজ্ঞেস করলো: তোমাকে বন্দী দশা থেকে মুক্ত করলে আমাকে বলবে?<br></p><p>সিম্বি হ্য সুচক ভাবে নড়লো। <br></p><p>তোমাকে মুক্ত করলে তুমি আমাকে আক্রমন করবে না তো? <br></p><p>সিম্বি না সুচক ভাবে নড়লো।<br><br>ডক্টর রাশেদ এখন বেশ রিস্কি সিচুয়েনে পড়ে গেল। উনি কিভাবে একটা এলিয়েন পরজিবীকে বিশ্বাস করবে বুঝে উঠতে পারছিলো না। কাউকে যে বলবে সেটাও বলার সাহস হচ্ছিলো না। উনি মনে মনে ভাবলেন। এই এ্যলিয়েনকে উনি বিপদের সময় খাবার দিয়েছেন, অবিষ্যতেও দিবেন এমনটা নিশ্চিত করতে পারলে তাকে বা অন্যকে আক্রমন করার কথা না।<br></p><p>ডক্টর রাশেদ সিম্বির কাছে গিয়ে আবার বললো, আমাকে কথা দাও, তুমি আমার অথবা এই ফ্যাসিলিরির অন্য কারো ক্ষতি করবে না। </p><p><br>সিম্বি হ্যা সুচক ভাবে নড়লো। <br></p><p>উনি আস্তে করে গেটের দিকে এগিয়ে গেলেন। চোখ বন্ধ করে আরেকবার ভাবলেন, তারপর নিজের স্পেশাল ওভাররাইড কোড দিয়ে গেট আনলক করে দিলেন। সিম্বি তার দিকে আস্তে আস্তে এগিয়ে আসলো, ডক্টর রাশেদের মনে হতে শুরু করলো উনি বড় একটা ভুল করে ফেলেছেন। মাথাটা ভারী হয়ে আসছিলো টেনশনে। কিন্তু সিম্বি তাকে এটাক করলো না। তার সামনে এসে স্থির হয়ে গেল। <br></p><p>ডক্টর রাশেদ বললো, এখন আমাকে সাহায্য করো, তোমার জিন স্যম্পল দরকার আমার। সিম্বি তার শরীরের একটা অংশ ডক্টর রাশেদের মাইক্রোসকোপের দিয়ে এগিয়ে দিলো আর স্লাইডের উপর তার শরীর থেকে এল ফোটা স্যম্পল দিলো। <br></p><p>ডক্টর রাশেদ মাইক্রোস্কোপের দিকে দ্রুত এগিয়ে গিয়ে কাজ শুরু করে দিলো। কাজের মধ্যে নিজের রেকর্ডার বের করে আবার রেকর্ড করা শুরু করলো:<br></p><p>“আজকে আমি এলিয়েন অর্গানিজমটাকে মুক্ত করে দিলাম। ভয় লাগছিলো, অনেক রিস্কি ছিলো, কিন্তু তারপরেও রিস্ক নিলাম, আমাকে ও এটাক করেনি। ও আমার বন্ধুর মত হয়ে গেছে। আমি ওর নাম দিয়েছি সিম্বি, সিম্বিওড থেকে সিম্বি । সিম্বির জিন স্যম্পল দেখে যা বুঝলাম, সিম্বি অনকগুলো এককোষী প্রানীর কম্বিনেশন। একসাথে তারা একটা সিংগেল প্রানীর মত আচরন করে। ওয়ান সিংগেল হাইভ! ইন্টারেস্টিং! সিম্বির জিন পৃথিবীর অন্যান্য প্রানীর জিন থেকে আলাদা। তাকে ।সরি তাদেরকে‌। আমি কোন ক্যাটাগরীতে ফেলতে পারিনি। ভাইরাসের মতও না, আবার ব্যকটেরিয়ার মতও না। এমনকি পুরোপুরি ফাংগাস ও না। অদ্ভুত একটা স্ট্রাকচার।”<br></p><p>“সিম্বির স্যম্পল দেয়ার পর টানা তিন দিন জিনোম সিকুয়েন্সিং নিয়ে কাজ করছি। তিনটা দিন কিভাবে পার হয়ে গেল টেরই পেলাম না। সারাদিন কাজ করি, রেস্ট নেয়ার সময় নাই। সারাদিন খাওয়া ঘুমানো ছেড়ে দিয়ে বার বার পিসিআর চালাই। মাইক্রোস্কোপে চোখ দিয়ে ঘন্টার পর ঘন্টা বসে থাকি। সিম্বিও মনে হয় মজা পাচ্ছে আমার কাজ করা দেখে। সারাদিন আমার চেয়ারের পাশেই দাড়ায়ে থাকে। অবশ্য সিম্বির পার্সপেকটিভে সেটা দাড়ানো কিনা জানিনা। তারাতাড়ি সিম্বির জিনোম সিকুয়েন্স করা দরকার। একবার হয়ে গেলে ইউনিক পার্ট টা টার্গেট করে একটা এম আর এন এ ডিজাইন করতে হবে। তারপর সেটা যত দ্রুত সম্ভব ভ্যকসিন হিসেবে ডিস্ট্রিবিউট করতে হবে। সাবজেক্ট ১ আর সাবজেক্ট ২ এখনো বেচে আছে, দেখে মনে হচ্ছে আগের থেকে তাদের অবস্থা উন্নতি হচ্ছে। হয়ত সিম্বি তাদের ভিতরের সিম্বিওডের সাথে যোগাযোগ করে তাদের সুস্থ রাখতে বলেছে। এমনটা হলে তো তাদের সিম্বিওডের জন্যও ৪০০ গ্রাম করে খাবারের ব্যবস্থা করতে হবে, নাহলে আবার হোস্টদের খাওয়া শুরু করে দিবে। আচ্ছা সিম্বিকেও তো গত তিনদিন খাবার দেয়া হলো না! খুব সম্ভবত আমার মত এক্সাইটেড হয়ে খাওয়ার কথা ভুলে গেছে।”<br></p><p>“সিম্বিকে মুক্ত করার আজকে সপ্তম দিন। জিনোম সিকুনেন্স করে ডি এন এ প্রিন্টারের প্রিন্ট করে সেটা দিয়ে এম আর এন এ ভ্যকসিন তৈরী করে ওপেনসোর্স করে দিয়েছি। পৃথিবীর বিভিন্ন দেশের কোম্পানি এখন এই ভ্যকসিন তৈরী করছে। গরীব দেশের মানুষরা ফ্রিতে ভ্যকসিন পাবে। আর কোন মানুষ এলিয়েন সিম্বিওডের এটাকে মারা যাবেনা। ইশ! ইচ্ছা করছে এই আনন্দটা বাংকারের সবার সাথে শেয়ার করি। কিন্তু সবাই প্রচুর ব্যস্ত। সপ্তাহ খানেক হলো কাউকেই দেখিনা। খুব সম্ভবত ভ্যকসিন ডিস্ট্রিবিউট, আর এলিয়েন দের সাথে শান্তি প্রতিষ্ঠা করতে সবাই ব্যাস্ত। আমার তেমন সমস্যা নাই। আমার আনন্দ ভাগ করে নেয়ার জন্য সিম্বি আছে। এই লিকুইড প্রানিটার সাথে আমার এত সুন্দর বন্ধুত্বের কারনেই এতকিছু সম্ভব হলো। সিম্বির দিকে তাকিয়ে ডক্টর রাশেদের চোখে পানি চলে এল। <br></p><p>টকটকে নীল চোখ দিয়ে সেই পানি নীল গাল গড়িয়ে সবুজ দাড়ি ভিজিয়ে দিলো। ডক্টর রাশেদের শরীরটা হাল্কা কেপে উঠলো।</p>]]></content:encoded></item><item><title><![CDATA[SMS OTP verification without using a database]]></title><description><![CDATA[<p>I have created many web applications that uses OTP verification via SMS. It works by sending a 4 to 6 digit number to the user's phone number via SMS. And the user has to enter the OTP in order to verify the phone number. </p><p>In most of the cases this</p>]]></description><link>https://blog.anam.co/otp-verification-without-using-a-database/</link><guid isPermaLink="false">5d94e7d229bcfa00015c6179</guid><category><![CDATA[sms]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[development]]></category><category><![CDATA[otp]]></category><category><![CDATA[verification]]></category><category><![CDATA[security]]></category><category><![CDATA[technique]]></category><category><![CDATA[cryptography]]></category><category><![CDATA[serverless]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Wed, 02 Oct 2019 19:50:44 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1522251670181-320150ad6dab?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1522251670181-320150ad6dab?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="SMS OTP verification without using a database"><p>I have created many web applications that uses OTP verification via SMS. It works by sending a 4 to 6 digit number to the user's phone number via SMS. And the user has to enter the OTP in order to verify the phone number. </p><p>In most of the cases this is done using a simple technique, by keeping the OTP in the database or memory storage and matching it with the user input. In this article, I will try to explain how we can achieve the same result without any database of sorts.</p><blockquote>But before we start: let's talk about the motivation behind this approach. Database operation is expensive, usually slower and because it relies on another application or service, has a probability to fail. Another good reasons is, OTP is a temporary data. It does not belong to the database.</blockquote><blockquote>Also, If you are developing a serverless Application. OTP verification can be done with a serverless function that does not depends on anything else.</blockquote><p>This is now also available as <a href="https://www.npmjs.com/package/otp-without-db">NPM package</a></p><p>I will create an application that sends an OTP to the user using a SMS provider. I will not cover the code involved to send SMS, because that varies from provider to provider. Instead, I will only focus on the verification code. The language of choice is JavaScript, but the code should be simple enough to translate to any other programming language without breaking a sweat.</p><h4 id="the-basic-idea-">The Basic Idea: </h4><p>The technique involves cryptography, in a sense It's quite similar to how JWT tokens are verified. But also very different from JWT because of the way data is handled. This technique is done using the following steps: </p><p> 1. Create a<strong> cryptographic hash</strong> of the <em>phone number</em>, the <em>generated OTP</em> and the <em>expiry timestamp </em>combined<em>.</em></p><p>2. Append the expiry timestamp with the hash and Send the hash to the user as the response of the first request.</p><p>3. Once the user gets the SMS, the user sends back the <strong>hash, </strong>the <strong>phone number</strong> and the <strong>OTP</strong> in the second request. </p><p>4. The server verifies the OTP by hashing the <strong>phone number</strong>, <strong>OTP</strong> sent by the user, and the <strong>expiry timestamp</strong> that was appended with the hash, the user sent back. Using the same key and same algorithm.</p><p>5. If the expiry timestamp is valid and still in the future. And the newly generated hash matches the one sent by the user. Then the OTP is authentic.</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.anam.co/content/images/2019/10/Untitled-Diagram.jpg" class="kg-image" alt="SMS OTP verification without using a database"><figcaption>Flow Diagram of the whole process</figcaption></figure><!--kg-card-end: image--><p>Lot to take in? Let's see it in Action. We will create two functions, one for creating the hash and and sending the SMS OTP, another for verifying the OTP.</p><p>We will use the awesome node package <a href="https://www.npmjs.com/package/otp-generator">otp-generator</a> to generate OTP codes in NodeJS. you need to install this package using npm or yarn.I've also omitted the package.json file in the example. Let's take a look at the hash generator code, every line is commented so that they are easy to understand:</p><!--kg-card-begin: html--><script src="https://gist.github.com/theanam/053b9129649d52368911d4d9c02d2af1.js"></script><!--kg-card-end: html--><p>This function will return a hash. The hash needs to be sent back to the user as HTTP response. when the user requests for an OTP. the <code>sendSMS</code> function, which is a dummy function in this example. In the real world needs to be implemented depending on the vendor's API. This function will send the SMS to the user with the OTP. </p><p>The user, once received the OTP, will send the <strong>hash</strong> that came from the first request, <strong>phone number</strong> and <strong>OTP</strong> to the server and the below function will verify it. Let's take a look at the source code: </p><!--kg-card-begin: html--><script src="https://gist.github.com/theanam/4f687fa747114ab6518e96d4c0cdee3c.js"></script><!--kg-card-end: html--><p>This method uses the <code>SHA256</code> hashing (HMAC) mechanism to ensure data integrity and is almost always faster and more efficient than a database based OTP verification system.</p><blockquote>This does not take into account stuffs like: error handling, http framework or routing etc. just to avoid unnecessary noise. </blockquote><p>The full sample source code is available <a href="https://gist.github.com/theanam/98ca7541b8c50ae4e104928115ce2e80">From this link</a></p><p>(Article needs review)</p>]]></content:encoded></item><item><title><![CDATA[The curious world of web RTC (Part 2: Servers)]]></title><description><![CDATA[<p>This is part 2 of my series on webRTC.</p><p><strong>Read Part 1 here: </strong><a href="https://blog.anam.co/webrtc-simplified-part1/">The curious world of web RTC (Part 1: Introduction)</a></p><p>Let's talk servers. Of all the webRTC articles I read, all of them address the servers at the very end of the discussion. I am a very bad</p>]]></description><link>https://blog.anam.co/webrtc-simplified-part2/</link><guid isPermaLink="false">5caef810d2cdca0001913a73</guid><category><![CDATA[webrtc]]></category><category><![CDATA[rtc]]></category><category><![CDATA[audio]]></category><category><![CDATA[video]]></category><category><![CDATA[socket]]></category><category><![CDATA[websocket]]></category><category><![CDATA[english]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Thu, 11 Apr 2019 11:42:45 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1544197150-b99a580bb7a8?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1544197150-b99a580bb7a8?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="The curious world of web RTC (Part 2: Servers)"><p>This is part 2 of my series on webRTC.</p><p><strong>Read Part 1 here: </strong><a href="https://blog.anam.co/webrtc-simplified-part1/">The curious world of web RTC (Part 1: Introduction)</a></p><p>Let's talk servers. Of all the webRTC articles I read, all of them address the servers at the very end of the discussion. I am a very bad reader. The first few articles I read, I genuinely thought webRTC doesn't need any servers. Which is a partial truth. The real communication, does not usually require servers. But at least one or more server is required to facilitate the initial communication. </p><p>My plan is to keep the series as simple as possible. I would use a very well known name pair as example. Alice and bob, our two parties willing to establish a RTC Peer connection. For this example to work, Let's assume Alice wants to send letters directly to bob.</p><h6 id="signalling-server-">Signalling Server:</h6><p>Signalling server is usually always required in real world scenarios. It can be implemented in many ways. And there are many well known signalling servers in the web. But due to its super simple nature and the fact that ability to have full control helps, I highly recommend creating one manually. </p><p><em><u>Here's how the communication happens from Alice to bob,</u></em></p><p> Alice Generates an <strong>Offer SDP</strong> (a fancy way of saying a string describing Alice's Real time communication and local IP address). If alice was a real person and IP address was a real address, the imaginary SDP might contain something like this:</p><blockquote>I live in house number 4. I am capable of understanding and speaking VP9 video and Opus Audio. </blockquote><p>Alice sends it to the signalling server. Consider it as a post box in a post office. So, the signalling server might be just a REST API server and Alice sends her <strong>SDP </strong>as a post request, Or better use web Socket.</p><p>Now Bob, collects the SDP, from the Post box (Signalling server) or gets it as a socket signal(depending on the signalling server implementation) and creates an <strong>Answer SDP</strong>. This SDP also contains similar information as the offer SDP. Alice collects or gets it from the signalling server. </p><p>Now in a happy and small world, Alice now knows Bob's Address and capabilities, Bob knows Alice's Address and capabilities, and they should be able to communicate. </p><p><em><u>Enter the world of NAT and Firewall:</u></em></p><p>In real world there are thousands of house #4, in different areas. Same happens for IP addresses inside a NAT. NAT is very easy to understand. Think of the wireless router at your home or work. Under your wifi network, every device gets an IP address to connect to the local network created by your router.Then your router uses your original IP address to connect to the internet (In many cases, your router is also a part of NAT created by your ISP, so there might be multiple layers of NAT between your device and it's actual IP address). So, in our example, if Alice says she lives in house # 4, it might be in a locality in a big city. So, most of the time, only SDP can't create connections and only Signalling servers aren't enough.</p><h4 id="stun-server-">STUN Server:</h4><p><a href="https://en.wikipedia.org/wiki/STUN">STUN</a> servers are used to determine the real IP address of a client. A peer client (Alice or Bob) asks the STUN server about their IP address and it simply tells them what appears to be their IP Address. The Clients use this information to create ICE candidates (More in ICE candidates later).</p><p>You might not need a STUN server of your own. Due to the low amount of processing it requires, Many public stun servers are available for free <a href="https://gist.github.com/zziuni/3741933">Here's a list.</a></p><h4 id="turn-server-">TURN Server: </h4><p><a href="https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT">TURN</a> servers are relay servers. In case a direct connection is not possible between Alice and Bob, TURN servers are used to relay the traffic (Not so peer to peer in this case). This makes running TURN servers very expensive and you probably won't find any free ones. There are many Services that provides managed TURN servers. Or you can create your own with some effort. More on those in upcoming blog posts.</p><blockquote>TURN and STUN servers are also called ICE servers.</blockquote><h4 id="other-servers-">Other Servers:</h4><p>There might be other servers involved in complex WebRTC Application like Media servers, In order to mix multi party video feed, Encode/Decode for unsupported devices/Protocols, Applying real time filters, or recording (Recording can be done in the client too, Thanks to the <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaStream_Recording_API">Media Stream Recorder API</a>). </p><p>There might be other specified servers for specific requirements.</p><h4 id="what-are-ice-candidates-">What are ICE Candidates:</h4><p>ICE candidates are different suggested ways to reach a client. Every client creates multiple ICE candidates depending on the ICE servers provided to the Peer Connection.Unlike SDP, ICE candidates are Objects with multiple properties and can be serialised and deserialised to JSON string. </p><p><em>The flow goes something like this: </em></p><ol><li>Alice Creates Offer SDP and sends to Bob via the signalling server.</li><li>Bob Creates Answer SDP and sends to Alice, also via the signalling server.</li><li>They try to connect with only SDP, most of the time, they fail.</li><li>Alice And bob starts to generate ICE candidates with the information gathered from their ICE servers (TURN and STUN servers) and sends those candidates to each other via the signalling server.</li><li>Both parties try to connect to each other using each other's candidates and choses the most efficient way in the process. </li><li>If everything goes well, A peer connection is established.</li></ol><p><em>To relate it to the real world: </em></p><ol><li>Alice creates offer SDP and sends it to Bob</li><li>Bob gets Alice's offer SDP, Creates answer SDP and sends to Alice.</li><li>They try to send each other letters, and fail. </li><li>Alice and Bob goes to the STUN server and learns about her city and locality. </li><li>Then Alice and bob generates ICE candidate from the information provided by the STUN server and sends the information to each other. They try sending Letters again. If the letter goes through, the connection is established. </li><li>If they still can't send letter, They go to a restaurant (STUN server) and connects it's address. Then they meet at the restaurant and exchanges letter.</li></ol><p>There are hundreds of operation in between, They are left out intentionally. In later posts, I will discuss more about the implementation of the process. I might have oversimplified, or overcomplicated the process. Let me know your thoughts in the comments.</p>]]></content:encoded></item><item><title><![CDATA[The curious world of web RTC (Part 1: Introduction)]]></title><description><![CDATA[<p>This is part 1 of my WebRTC series: </p><p><strong>Read Part 2 here:</strong> <a href="https://blog.anam.co/webrtc-simplified-part2/">The curious world of web RTC (Part 2: Servers)</a></p><p>I believed webRTC is one of the coolest things that happened to the web. It almost gave web developers super power to do the impossible. With that being said,</p>]]></description><link>https://blog.anam.co/webrtc-simplified-part1/</link><guid isPermaLink="false">5cadaa58d2cdca0001913a63</guid><category><![CDATA[english]]></category><category><![CDATA[webrtc]]></category><category><![CDATA[rtc]]></category><category><![CDATA[audio]]></category><category><![CDATA[video]]></category><category><![CDATA[socket]]></category><category><![CDATA[websocket]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Wed, 10 Apr 2019 12:05:52 GMT</pubDate><media:content url="https://images.unsplash.com/uploads/1413222992504f1b734a6/1928e537?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/uploads/1413222992504f1b734a6/1928e537?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="The curious world of web RTC (Part 1: Introduction)"><p>This is part 1 of my WebRTC series: </p><p><strong>Read Part 2 here:</strong> <a href="https://blog.anam.co/webrtc-simplified-part2/">The curious world of web RTC (Part 2: Servers)</a></p><p>I believed webRTC is one of the coolest things that happened to the web. It almost gave web developers super power to do the impossible. With that being said, The standards and implementation is a very different story. In this series of blog I will try to simplify webRTC from all the experience I gathered by building many WebRTC application, facing troubles, and learning along the way.</p><p>For those who are completely new to the concept of webRTC, WebRTC is the way to enable real time communication in the browser. The standards, Codecs, and tools are built into the browser itself, so no plugin is needed to do tasks like accessing the webcam, Microphone, Or create peer to peer connection to another browser or device that supports webRTC. The standards of WebRTC is directly picked from similar standards from the telecommunication industry, So integration and interchange is highly possible between different communication medium.</p><p><strong>What's Included? </strong></p><ol><li>API to access camera. For desktop computer and laptops, It's the webcam, For phones and tablets it's the device camera. It supports advanced features like preferred camera (in case there are multiple), Video size, bitrate, etc. Not all the features are widely supported. But at this point, most of the devices ship with basic support.  The direct feed from the camera can be accessed, what to do with it, depends on the developer 😉</li><li>Ability to access the microphone. Like video, it also supports many options and multiple devices, and device support varies. It can be used to record or transmit audio from the browser. </li><li>Ability to Look up media devices connected to the computer. And check every supported option available. </li><li>Mechanism to create Peer to Peer connection to another browser, or another device that supports same protocol. Once connected, the peer to peer connection can be used to stream video, audio or any arbitrary data, files directly from one computer to another without the need for a server*</li><li>Some browsers support screen capture and other cool (but very limited support) features, that might end up in other browsers soon. But for now, we will talk about the better supported features. </li></ol><p>*Server is needed for initial connection establishment and signalling. </p><p><strong>Wait, what? So does that mean any website can watch or hear me at any time?</strong></p><p>No. They can't. Until you give permission. WebRTC application requires your permission to access your camera and microphone. Every time any application calls the <code>getUserMedia</code> function (that is used to access camera and microphone), a popup appears asking for permission. You have the option to deny, permanently allow, or allow and let it ask every time it tires to access the hardware.  </p><figure class="kg-image-card"><img src="https://blog.anam.co/content/images/2019/04/Screenshot-2019-04-10-at-5.43.03-PM.png" class="kg-image" alt="The curious world of web RTC (Part 1: Introduction)"><figcaption>The Google chrome prompt looks like this</figcaption></figure><p><strong>Ok, now what about security? If a malicious website pretends to be something else and tries to access my camera or microphone? Do I need to encrypt the data before transmission?</strong></p><p> The good news is, Only web application with secure origin can utilise webRTC. So any web app that's served from <code>localhost</code> or serverd with a valid SSL certificate are allowed to access webRTC API. WebRTC communication implements <a href="https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security">DTLS</a> and <a href="https://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol">SRTP</a> protocols. Unless the developer of the web application is intentionally or unintentionally willing to exploit the data, the user is quite safe. </p><p><strong>How is this series organised?</strong></p><p>This post was the introduction to a series of Posts on webRTC. In these posts we will explore some of the API from webRTC, then talk about the server involvement, including the TURN and STUN servers and explore what it takes to create a signalling server. We will explore webRTC data flow and later will talk about data channels. </p><p>If anything else needs to be discussed or I missed something, please let me know in the comments.</p>]]></content:encoded></item><item><title><![CDATA[ভারতের চেন্নাই ভ্রমন ,আমার অভিজ্ঞতা ও ফটোব্লগ]]></title><description><![CDATA[<p>আমার প্রথমবার ভারত যাওয়া হয়েছে ২০১৯ সালের ফেব্রুয়ারীতে। ব্লগ লেখার দিন থেকে খুব বেশীদিন আগে না। দেশের বেশীভাগ মানুষ ভারতে প্</p>]]></description><link>https://blog.anam.co/chennai-tour-blog/</link><guid isPermaLink="false">5ca79787d2cdca0001913a55</guid><category><![CDATA[bangla]]></category><category><![CDATA[বাংলা]]></category><category><![CDATA[travel]]></category><category><![CDATA[story]]></category><category><![CDATA[india]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Sat, 06 Apr 2019 08:01:40 GMT</pubDate><media:content url="https://blog.anam.co/content/images/2019/04/IMG_20190303_133003.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.anam.co/content/images/2019/04/IMG_20190303_133003.jpg" alt="ভারতের চেন্নাই ভ্রমন ,আমার অভিজ্ঞতা ও ফটোব্লগ"><p>আমার প্রথমবার ভারত যাওয়া হয়েছে ২০১৯ সালের ফেব্রুয়ারীতে। ব্লগ লেখার দিন থেকে খুব বেশীদিন আগে না। দেশের বেশীভাগ মানুষ ভারতে প্রথমবার গেলে যায় কলকাতা, আমার যেতে হয়েছে চেন্নাই। এর <a href="https://blog.anam.co/indian-visa-from-bangladesh/">আগের ব্লগ পোস্টে ভারতীয় ভিসা নিয়ে লিখেছিলাম</a>, এইবার লিখতে বসেছি এই ভারত ভ্রমন নিয়ে।</p><p>বাংলাদেশে আমার বাবার চোখের ডাক্তার বলেছিলেন রেটিনার সার্জারী লাগবে, একটু ভিন্ন ধরনের অসুখের জন্য আমার শ্বশুরকেও তার চোখের ডাক্তার একই কথা বলেছিলেন। চোখের ব্যপার অনেক সেনসিটিভ ভেবে আমরা সিদ্ধান্ত নেই সার্জারী যদি করতেই হয় করাবো শংকর নেত্রালয়ে। সাউথ এশিয়াতে এই হাসপাতালের বেশ নামডাক আছে। খুব ভালো চোখের চিকিৎসা হয়। এই হাসপাতালের মেইন ব্রাঞ্চ ভারতের চেন্নাইতে। সেখানে যাওয়ার জন্যই আব্বুর, আম্মুর, আমার শ্বশুরের আর শ্বাশুরীর জন্য মেডিকেল ভিসা আর মেডিকেল এ্যটেন্ডেন্ট ভিসা করাই। আমি আর আমার স্ত্রী প্লান করি সাথে যাবো তাদের। ডাক্তার দেখানোও হবে, নতুন দেশ থেকে ঘুরেও আসা হবে।</p><figure class="kg-image-card"><img src="https://blog.anam.co/content/images/2019/04/IMG_1951.jpg" class="kg-image" alt="ভারতের চেন্নাই ভ্রমন ,আমার অভিজ্ঞতা ও ফটোব্লগ"><figcaption>আমাদের স্পাইসজেট ফ্লাইটের সাথে যাওয়ার সময় তোলা ছবি</figcaption></figure><p>বাংলাদেশ থেকে ভারত যাওয়ার অনেক ব্যবস্থা আছে। আমরা যেহেতু যাচ্ছিলাম রোগী নিয়ে, সবচেয়ে দ্রুততম ব্যবস্থা (প্লেনে) বেছে নিতে হয়েছে। আর আমরা যখন গিয়েছিলাম তখন ঢাকা চেন্নাই সরাসরি কোন ফ্লাইট ছিলোনা। এখন অবশ্য ইউ এস বাংলার সরাসরি ফ্লাইট আছে। সা<strong>থে রোগী নিয়ে গেলে এয়ারপোর্টে সাধারন সময়ের চেয়ে এক ঘন্টা সময় বেশী হাতে নিয়ে যাবেন। অনেক সময় এয়ারপোর্টের ডাক্তারের কাছে থেকে ফিট টু ফ্লাই সার্টিফিকেট নিতে হয়। </strong></p><p>যাওয়ার সময় তিন ঘন্টার ট্রানজিট ছিলো কলকাতায়। কলকাতায় ইমিগ্রেশন শেষ করে নিজের লাগেজ নিজেরই রিসিভ করে টেনে নিয়ে আবার ডমেস্টিক টার্মিনালে গিয়ে জমা দিয়ে কলিকাতা চেন্নাই ফ্লাইটে বোর্ডিং করতে হয়েছে। মজার বিষয় হচ্ছে ঢাকা চেন্নাই ফ্লাইটে লাগে ৪৫ মিনিট, কিন্তু কলিকাতা চেন্নাই ফ্লাইটে সময় লাগে প্রায় আড়াই ঘন্টা। দেশে থাকতে ভেবে পাচ্ছিলাম না কিভাবে এই তিন ঘন্টার ট্রানজিটের সময় কাটবে। কলকাতা এয়ারপোর্টে ঘুরতে ঘুরতেই সময় কেটে গেল। এমনকি এয়ারপোর্টের ভিতরে মাটির কাপে চা পেলাম!</p><p>অন্য দেশের চেয়ে ভারতে সিম কার্ড কেনাটা হাল্কা একটু কষ্টকর। তার উপরে কিছু চিনিনা। একটা নাম্বরে রোমিং করা ছিলো, তাও ২জির উপর ইন্টারনেট পেলাম না, সেটাতে কোনভাবে ম্যপ বের করে হোটেলের ম্যপ বের করে দুইটা প্রিপেইড ট্যাক্সি নিলাম। এয়ারপোর্টের ভিতরেই বুথ আছে এদের। খরচ বেশী, কিন্তু সেফটি নিয়ে ইশু নাই। এয়ারপোর্ট থেকে আমাদের হোটেল পর্যন্ত ৫০০ রুপি করে নিলো প্রতি ট্যাক্সি। এয়ারপোর্টে অল্পকিছু ডলার ভাংগিয়ে চলে গেলাম হোটেলে।</p><p>আমরা বুক করেছিলাম ট্রীবো হোটেলস এর একটা হোটেল। ট্রীবোর হোটেলগুলোর খরচ কম, কিন্তু সার্ভিস খুব ভালো। আমাদের হোটেল ছিলো একটা মোটামুটি শান্ত আবাসিক এলাকায়, শংকর নেত্রালয় থেকে বেশ কাছে। যেকোন যায়গায় গেলে প্রথমেই যেটা করা দরকার সেটা হচ্ছে যেখানে থাকছি সেখানকার কাছাকাছি কোন ল্যান্ডমার্ক (সবাই চিনবে এমন) কিছু খুজে বের করা। এতে ঠিকানা বলতে সুবিধা হয়, আবার হারিয়ে যাওয়ার সম্ভাবনাও থাকে কম। সবাইকে শিখিয়ে দিলাম <strong>"ডন বসকো স্কুল এগমোর" </strong>বললেই আমাদের হোটেলের খুব কাছে নামিয়ে দিবে।</p><p>আসতে আসতে রাত হয়ে গিয়েছিলো। কেনমতে ঘুমিয়ে পরের দিন বের হলাম চেন্নাই এক্সপ্লোর করতে। প্রথমে সিম কেনার অভিযানে নামলাম।চেন্নাইতে খুব পপুলার এলাকা এ্যপোলো হাসপাতালের এলাকা। এখানে বিদেশীদের আনাগোনা অনেক বেশী। যায়গাটার নাম<strong> গ্রীমস রোড। </strong>এখানে আমাদের হোটেল থেকে হেটেই যাওয়া যায়, গ্রীমস রোডে গিয়ে একটা দোকান থেকে সিম কার্ড কিনলাম, ডলারও এক্সচেঞ্জ করলাম কিছু। এখানকার রেট এয়ারপোর্ট থেকে অনেক ভালো।গ্রীমস রোড ঘুরতে ঘুরতে লাঞ্চের সময় হয়ে গেল। হালাল খাবার খোজাটা একটা চ্যালেঞ্জিং ব্যপার। বাংগালী খাবারের অনেক ছোট বড় হোটেল আছে গ্রীমস রোডে, বাংলাদেশ থেকে অসংখ্য মানুষ আসে এখানে এ্যাপোলোতে মুলত তাদেরকে টার্গেট করেই বিশাল একটা মার্কেট আছে এখানে। তবে কোন বাংলা খাবারের দোকান সেইরকম পরিস্কার মনে হলো না, তাই আরো একটু খুজলাম, আর পেয়েও গেলাম Palm jumeirah, নামে একটা মাল্টি কুইজিন রেস্টুরেন্ট। ১২ পাতার পুরা মেনু কয়েকবার দেখে প্লেইন রাইস, ডাল তরকা, লুজ প্রনস, ভেজিটেবল অর্ডার করলাম। খাবারের টেস্ট অসম্ভব রকম ভালো ছিলো। সাথে বাংগালিট ক্ষুধার্ত পেট, পুরা চেটেপুটে খেয়ে ফেললাম। তবে পাম জুমেরাতে খাবার কিন্তু একেবারে সস্তা না। আবার আমাদের দেশের অভিজাত খাবারের দোকানের সাথে তুলনা করলে অনেক রিজোনেবল।</p><p>এর পর গেলাম চেন্নাইয়ের সি বিচ, মেরিনা বিচে। সিম কেনার পর থেকে Ola সার্ভিসেই বেশী যাতায়াত করেছি। সেফটিও ভালো, খরচও তুলনামুলক ভাবে অনেক কম। তবে কয়েকবার চলাচল করলে সেখানকার অটোরিক্সার ভাড়া নিয়েও আইডিয়া হয়ে যাবে। আর আমার সাথে ছিলো বার্গেইন করাতে গোল্ড মেডেলিস্ট আমার বউ। অটোওয়ালার সাথে এমনে বার্গেইন করে আমি নিজেই ভয় পেয়ে যাই। পরে দেখি আবার তার বলা ভাড়াতেই যাচ্ছে অটো। যাই হোক, মেরিনা বিচে গিয়ে পৌছালাম ভর দুপুরে। সেইরকম রোদ আর গরম। তাও সমুদ্র বেশ ভালোভাবেই উপভোগ করলাম সবাই। বিশেষ করে আমার বাবা মা, যারা এর আগে কখনোই সমুদ্র দেখেননি। </p><figure class="kg-image-card"><img src="https://blog.anam.co/content/images/2019/04/IMG_20190226_175024-3.jpg" class="kg-image" alt="ভারতের চেন্নাই ভ্রমন ,আমার অভিজ্ঞতা ও ফটোব্লগ"><figcaption>মেরিনা বিচে ভর দুপুরে তোলা ছবি</figcaption></figure><p>বিচ ঘুরে ঘুরে বিকেল হয়ে গেল, শপিং সেন্টার এখনো দেখাই হয়নি। গুগল ম্যাপ ঘেটে ডিসিশন নিলাম <strong>এক্সপ্রেস এ্যভিনিউ </strong>শপিং সেন্টারে যাবো। সবাই মিলে গেলাম। গিয়ে দেখি স্টারবাক্স আছে এখানে! সাথে সাথে কফি নিয়ে নিলাম একটা। অন্যরা স্ন্যক্স ট্রাই করলো কিছু। এক্সপ্রেস এ্যভিনিউ সবচেয়ে বড় আর অভিজাত শপিং মল এখানে। অনেক ইন্টারন্যাশনাল ব্রান্ড আছে এখানে। আমি তেমন কিছু কিনি নাই এখানে থেকে, শুধু ৮ টা সানগ্লাস কিনেছি 🤣। চেন্নাইতে শপিং সেন্টার বন্ধ হয় রাত ৮ টা ৩০ মিনিটে। শুধু শনি আর রবিবার বন্ধ হয় ৯ টায়। ঠিক ৮ টা ৩০ এ শপিং সেন্টার বন্ধ হয়ে গেল। আমরাও হোটেলে ফিরলাম।</p><p>পরের কয়েকদিন সকাল থেকে সন্ধা পর্যন্ত কাটলো শংকর নেত্রালয়ে। আব্বুকে দেখলো গ্লুকোমা, রেটিনা আর নিউরোর ডাক্তার। আমার শ্বশুরকে দেখলো রেটিনার ডাক্তার। তারপর দুইজনকেই চশমা পালটায়ে দিয়ে বললো কারোরই অপারেশন করার কোন দরকার নাই। শংকর নেত্রালয় হাসপাতালটা আমার খুবই ভালো লেগেছে। এখানকার সার্ভিস আর চিকিৎসা আসলেই অনেক মানসম্মত। ডাক্তাররা প্রতিটা অবজারভেশন আর ডিসিশন সুন্দর করে বুঝিয়ে দেয়। </p><figure class="kg-image-card"><img src="https://blog.anam.co/content/images/2019/04/Screen-Shot-2019-04-06-at-3.12.14-AM.png" class="kg-image" alt="ভারতের চেন্নাই ভ্রমন ,আমার অভিজ্ঞতা ও ফটোব্লগ"><figcaption>শংকর নেত্রালয়</figcaption></figure><p>চোখের ডাক্তার দেখাতে প্রায় তিন দিন লেগে গেল। আমি আর আমার স্ত্রী প্রতিদিন হাসপাতাল থেকে হোটেলে ফিরে বের হয়ে এক্সপ্রেস এভিনিউ গিয়েছি। যেতে যেতে দেখা যেত শপিং মল বন্ধ হওয়ার এক ঘন্টা আগে পৌছেছি বেশীভাগ দিন।</p><p>চোখের চিকিৎসা শেষ হওয়ার পর গেলাম আব্বু আম্মুকে নিয়ে এ্যপোলো হাসপাতাল। আম্মুকে কিডনীর জন্য আর আব্বুকে দেখালাম অর্থ্রোপেডিক সার্জন। এখানেও খুবই মানসম্মত ভালো চিকিৎসা পেয়েছি। তবে এ্যপোলোর খরচ একটু বেশী। তবে সুবিধা হলো, এই কারনে ভালো ডাক্তারের সিরিয়াল পাওয়া সহজ।</p><p>আসার আগের দিন সবাই শপিং করতে বের হলাম।এই কয়দিনে আমাদের চেন্নাইয়ের আরো কিছু শপিং সেন্টার দেখা শেষ। যা বুঝলাম, শপিং করার জন্য এক্সপ্রেস এভিনিউ সবচেয়ে ভালো। এই মার্কেটের বেইজমেন্টে আছে বিগ বাজার। সেখানে গিয়ে সবাই একগাদা চকলেট বিস্কুট আর কসমেটিকস এর জিনিসপত্র কিনলো। আমি ফাস্টট্রাক থেকে আরো দুইটা সানগ্লাস কিনলাম, বউ কিছু ব্যাগ কিনলো। </p><p>ফিরে আসার দিন এয়ারপোর্টে আসলাম ওলায়। ওলার একটা প্যাকেজ আছে, ওলা প্লে। গাড়ির ইন্টারটেইনমেন্ট সিস্টেম ওলার কাস্টম হার্ডওয়্যার। গাড়ির ওয়াই ফাই ব্যাবহার করেই নিজের পছন্দের গান প্লে করা যায়। আমি যখনই ওলায় উঠেছি, এ আর রহমানের গান প্লে করেছি। এ আর রহমান এর হোমটাউন চেন্নাই। এখানকার মানুষ তাকে অনেক পছন্দ করে। </p><figure class="kg-image-card"><img src="https://blog.anam.co/content/images/2019/04/Screen-Shot-2019-04-07-at-9.43.03-PM.png" class="kg-image" alt="ভারতের চেন্নাই ভ্রমন ,আমার অভিজ্ঞতা ও ফটোব্লগ"><figcaption>ওলার নিজস্ব ডিভাইস</figcaption></figure><p>চেন্নাইয়ের মানুষগুলো অসম্ভব রকম ভালো। আপনি তাদের সাথে হেসে কথা বললে, যতই সিরিয়াস মুডে থাকুক, হাসিমুখেই উত্তর দিবে। এই একটা ব্যাপারের জন্য তাদের কথা আমার সারাজীবন মনে থাকবে। সামর্থ্য আর সুযোগ হলে, আবার যাবো।</p>]]></content:encoded></item><item><title><![CDATA[যেভাবে করবেন ভারতীয় ভিসা (টুরিস্ট ও মেডিকেল ভিসা)]]></title><description><![CDATA[<blockquote>এই আর্টিকেল  মার্চ ২০১৯ পর্যন্ত আপডেট করা । নিয়ম মাঝে মাঝেই পাল্টায়, তাই ভিসার এপ্লাই করার সময় অবশ্যই <a href="http://www.ivacbd.com/">http://www.ivacbd.com/</a> সাইট থেকে লেটেস্ট</blockquote>]]></description><link>https://blog.anam.co/indian-visa-from-bangladesh/</link><guid isPermaLink="false">5c5975e7d2cdca0001913a37</guid><category><![CDATA[story]]></category><category><![CDATA[visa,]]></category><category><![CDATA[india]]></category><category><![CDATA[medical]]></category><category><![CDATA[travel]]></category><category><![CDATA[বাংলা]]></category><category><![CDATA[bangla]]></category><category><![CDATA[diy]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Wed, 06 Feb 2019 12:14:04 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1464038008305-ee8def75f234?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<blockquote>এই আর্টিকেল  মার্চ ২০১৯ পর্যন্ত আপডেট করা । নিয়ম মাঝে মাঝেই পাল্টায়, তাই ভিসার এপ্লাই করার সময় অবশ্যই <a href="http://www.ivacbd.com/">http://www.ivacbd.com/</a> সাইট থেকে লেটেস্ট নিয়ম জেনে নিবেন। </blockquote><img src="https://images.unsplash.com/photo-1464038008305-ee8def75f234?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="যেভাবে করবেন ভারতীয় ভিসা (টুরিস্ট ও মেডিকেল ভিসা)"><p>আমার বউয়ের অনেকদিনের শখ দার্জিলিং যাবে। কিন্তু আমি গরীব আর ভারতীয় ভিসার প্রোসেস ভয় পাওয়ার (আসল কথা আলসেমির কারনে) কখনো ভিসার এপ্লাই করার সাহস হয়নি। কিন্তু বাধ্য হলাম যখন আমার বাবা আর শ্বশুর দুইজনের চোখের সমস্যা অনেক বেশী বেড়ে গেল আর দুই ফ্যমিলি থেকেই ডিসিশন নেয়া হলো ভারতে যাবে চিকিৎসার জন্য।</p><p>আমার বাবার সাথে এ্যটেন্ডেন্ট হিসেবে যাবে আমার মা, আর আমার শ্বশুরের সাথে যাবে আমার শ্বাশুরী যাবে এ্যটেন্ডেন্ট হিসেবে। সাথে আমার আর আমার স্ত্রীকেও যেতে হবে। তাই আমার টোটাল করতে হবে ছয়টা ভিসা। দুইটা মেডিকেল ভিসা, দুইটা মেডিকেল এ্যাটেন্ডেন্ট ভিসা, আর দুইটা টুরিস্ট ভিসা।</p><p>মেডিকেল, আ্যাটেন্ডেন্ট, আর টুরিস্ট ভিসার জন্য কিছু ডকুমেন্ট কমন। আর আপনার সাথে যদি ডিপেন্ডেন্ট হিসেবে কাউকে নিয়ে যেতে চান, তাদের জন্য অনেক ডকুমেন্ট হুবহু আপনার নিজেরটার কপি জমা দিতে হয়। এই ডকুমেন্টগুলো নিয়ে বিস্তারিত বলার আগে আসেন একটা লিস্ট করে ফেলি। এই লিস্ট ইন্ডিয়ান ভিসা সেন্টারের সামনেও দেয়া থাকে।</p><blockquote>জরুরী ব্যাপার হলো: আপনার কাগজপত্র যখন একটার পর একটা সাজিয়ে জমা দিতে যাবেন, তখন কাগজপত্র এই লিস্টের ক্রম অনুসারেই সাজাতে হবে। </blockquote><div style="max-width:920px;display:flex;flex-wrap:wrap;font-size:0.8em">
        <div style="flex:1;padding:15px">
            <h4>টুরিস্ট ভিসা</h4>
            <ul>
                <li> অনলাইনে পুরন করা ভিসা ফরম এর প্রিন্ট আউট (সাথে এক কপি ছবি)</li>
                <li> স্মার্ট কার্ড, এন আইডি অথবা জন্ম নিবন্ধন এর ফটোকপি (পাসপোর্টে যেটার নাম্বর দেয়া আছে)</li>
                <li> বর্তমান ঠিকানা অনুযায়ী ইউটিলিটি বিল (বিদ্যুত,পানি,গ্যাস বিল) এর ফটোকপি</li>
                <li> ব্যাংক স্টেটমেন্ট অথবা ডলার এন্ডোর্সমেন্ট</li>
                <li> নিজের/অবিভাবকের পেশাগত প্রমানপত্র</li>
                <li> পাসপোর্ট এর ফটোকপি (জাতীয় সঙ্গীতের পেজ আর তথ্য সহ পেজ)</li>
            </ul>
        </div>
        <div style="flex:1;padding:15px">
            <h4>মেডিকেল/এ্যটেন্ডেন্ট ভিসা</h4>
            <ul>
                <li> অনলাইনে পুরন করা ভিসা ফরম এর প্রিন্ট আউট (সাথে এক কপি ছবি)</li>
                <li> স্মার্ট কার্ড, এন আইডি অথবা জন্ম নিবন্ধন এর ফটোকপি (পাসপোর্টে যেটার নাম্বর দেয়া আছে)</li>
                <li> বর্তমান ঠিকানা অনুযায়ী ইউটিলিটি বিল (বিদ্যুত,পানি,গ্যাস বিল) এর ফটোকপি</li>
                <li> ব্যাংক স্টেটমেন্ট অথবা ডলার এন্ডোর্সমেন্ট</li>
                <li> নিজের/অবিভাবকের পেশাগত প্রমানপত্র</li>
                <li style="color:#0097e6">ভারতীয় হাসপাতালের নির্দিষ্ট তারিখ দেয়া আছে এমন এ্যাপয়েন্টমেন্ট</li>
                <li style="color:#0097e6">মেডিকেল কাগজপত্রের ফটোকপি (মুল কাগজপত্রও ওরা নিয়ে রাখে আবার পরে ফেরত দেয়)</li>
                <li> পাসপোর্ট এর ফটোকপি (জাতীয় সঙ্গীতের পেজ আর তথ্য সহ পেজ)</li>
            </ul>
        </div>
    </div><p>এই লিস্টের প্রতিটা পয়েন্ট নিয়েই আলোচনা করবো এই পোস্টে, তবে বেশীভাগ পয়েন্ট আলোচনা না করলেও বুঝতে পারার কথা।</p><h3 id="-">ছবি তোলা: </h3><p>ভারতীয় ভিসার ছবির সাইজ <strong>২ইঞ্চি বাই ২ ইঞ্চি</strong>। <strong>সাদা</strong> ব্যাকগ্রাউন্ড। সবচেয়ে ভালো হয় মোটামুটি বড় কোন স্টুডিওতে গিয়ে ছবি তোলা যারা ভিসার ছবি আগে তুলেছে। প্রিন্টেড ছবি <strong>এক কপি</strong> দরকার হয়। তবে একটু বেশী করে রাখা ভালো (চার কপি ছাড়া মনে হয় স্টুডিওই করতে চায়না) । আর ছবির সাথে ছবির <strong>সফট কপি </strong>চেয়ে নিতে অবশ্যই ভুলবেন না। সেইম ছবি অনলাইনে পুরন করার সময় <strong>আপলোড</strong> করতে হয়।</p><h3 id="--1">জাতীয় পরিচয়পত্র, স্মার্ট কার্ড বা জন্ম নিবন্ধন সনদের কপি:</h3><p>পাসপোর্ট করার সময় এর মধ্যে যেই ডকুমেন্ট দেয়া হয়েছিলো (পাসপোর্টে নাম্বর দেয়া থাকে)। সেই ডকুমেন্টের এক কপি ফটোকপি দিতে হয়। আমার ন্যাশনাল আইডি কার্ড দিয়ে পাসপোর্ট করা হয়েছিলে, পরে সেটা পাল্টায়ে স্মার্ট কার্ড দিয়েছে। সেক্ষেত্রে আমি যেটা করেছিলাম, স্মার্ট কার্ডের ফটোকপির সাথে পুরানো ন্যাশনাল আইডি কার্ডের ফটোকপিও দিয়ে দিয়েছিলাম। কারন পুরানটার নাম্বর পাসপোর্টে দেয়া ছিলো।</p><h3 id="--2">ইউটিলিটি বিল:</h3><p>আপনার বর্তমান ঠিকানার বিদ্যুত বিলের একটা ফটোকপি দরকার হবে। ইউটিলিটি বিল খুব সম্ভবত নেয় আপনার বর্তমান ঠিকানা ভেরিফাই করার জন্য। তাই সবচেয়ে ভালো হয়, যদি বিলের ঠিকানাটাই ভিসার ফর্ম পুরন করার সময় ফর্মে দিয়ে দেন।পানি বা গ্যাসের বিল হলেও হয় তবে ঠিকানা থাকতে হবে বিলের উপর। আর সবচেয়ে সহজলভ্য মনেহয় বিদ্যুত বিলটাই।</p><p>বিল কিন্তু <strong>গত তিন মাসের</strong> মধ্যে হতে হবে। সবচেয়ে ভালো একেবারে <strong>রিসেন্ট</strong> মাসের বিলের কপি দেয়া। আর অবশ্যই<strong> পেইড বিলের</strong> কপি দিবেন।</p><h3 id="--3">ব্যাংক স্টেটমেন্ট বা ডলার এন্ডোর্সমেন্ট:</h3><p>এখানে বেশ কয়টা অপশন আছে, একেকজনের জন্য একেক অপশন কনভিনিয়েন্ট। তাই সবগুলোই ব্যাখ্যা করবো।</p><h4 id="--4">ব্যাংক স্টেটমেন্ট:</h4><p>এটা সবচেয়ে সহজ। আপনার যদি একটা রেগুলার ব্যাংক একাউন্ট থাকে, তাহলে সেই একাউন্টের গত ছয় মাসের স্টেটমেন্ট ব্যাংক থেকে নিতে হবে। এক্ষেত্রে ব্যাংক স্টেটমেন্ট নেয়ার সময় ব্যাংকে কিছু টাকা থাকাটা ভালো (<strong>১৫০ ইউ এস ডলারের</strong> সমপরিমান টাকা থাকলেই হয়)। </p><p>আপনার সাথে যদি <strong>ডিপেন্ডেন্ট কেই এপ্লিকেশন করে (স্ত্রী, সন্তান, বাবা, মা) </strong>একসাথে এপ্লাই করার সময় তাদের ভিসা এপ্লিকেশনের সাথেও এই সেইম <strong>স্টেটমেন্টের ফটোকপি</strong> দিতে হবে (যদি তাদের আলাদা ব্যাংক স্টেটমেন্ট বা ডলার এন্ডোর্সমেন্ট না থাকে)। মুল কপি জমা দিতে হবে আপনার নিজের এপ্লিকেশনের সাথে। তবে আমার ক্ষেত্রে, আমার বাবা মা এপ্লাই করেছে পুরোপুরি আলাদা ভিসা ক্যাটাগরীতে, তাই তাদের জন্য আলাদা করে <strong>ডলার এন্ডোর্সমেন্ট</strong> করাতে হয়েছে (একটু পরেই লিখছি এটা নিয়ে)। ব্যাংক স্টেটমেন্ট ১৫ দিনের পুরানো হলে মাঝে মাঝে সমস্যা হয়।</p><p>মজার ঘটনা বলি: আমার ব্যাংক স্টেটমেন্ট দেখে ভিসার কাউন্টারের আপু বলে, "আপনার স্টেটমেন্ট কয় মাসের? এত পেজ কেন?", আমি বললাম, "আপু বেশীভাগ রেকর্ড নর্থ এন্ড কফিতে  খাওয়া ক্যাপাচিনোর বিল"।</p><h4 id="--5">ডলার এন্ডোর্সমেন্ট:</h4><p>এনডোর্সমেন্ট আপনার বিদেশে গিয়ে বিদেশী মুদ্রা ব্যাবহার করার পারমিশন আর ডকুমেন্ট। পাসপোর্টের শেষের দিকের পেজগুলোতে একটা সিল দিয়ে সেটার উপর বৈদেশিক মুদ্রার পরিমান লিখে দেয়া থাকে। এটার নামই এন্ডের্সমেন্ট।</p><p>প্রথমেই একটা কথা বলা জরুরী: <em>মানি এক্সচেঞ্জের ডলার এন্ডোর্সমেন্ট ভারতীয় ভিসার সাথে গ্রহন করেনা। যেকোন ব্যাংকের এন্ডোর্সমেন্ট হতে হয়। আরো একটা ব্যাপার হচ্ছে: স্টেট ব্যাংক অফ ইন্ডিয়া (গুলশানে ব্রাঞ্চ আছে) আগে ডলার এন্ডোর্স করে দিতো, এখন আর দেয় না।</em></p><p>যাই হোক, ভারতীয় ভিসার জন্য পাসপোর্টে অন্তত <strong>১৫০ ইউ এস ডলার</strong> এনডোর্স করা থাকতে হয়। দুইভাবে আপনার পাসপোর্ট এনডোর্স করা যায়:</p><p><em><strong>১। ক্যাশ ডলার এন্ডোর্স করা:</strong></em></p><p><em> </em>ক্যাশ ডলার এনডোর্স করতে গেলে ঝামেলার শেষ নাই। সব ব্যাংকের সব ব্রাঞ্চের করায়ও না। যেসব ব্রাঞ্চ AD (Authorized Dealer) ব্রাঞ্চ, সেগুলোতে শুধু করায় (প্রায় সব ব্যাংকের গুলশানে একটা করে AD ব্রাঞ্চ আছে) আবার আলাদা ব্যাংকের রিকুয়ারমেন্ট আলাদা। বেশীভাগ ব্যাংকে আপনার একাউন্ট থাকতে হয়। অনেক ব্যাংক আবার ভিসা ফরম দেখতে চায়। সাথে কিছু এক্সট্রা টাকাও লাগে। ব্যাংকে গিয়ে টাকা দিয়ে ডলার কিনে সেই এমাউন্ট পাসপোর্টে এনডোর্স করে নিতে হয়। এক্ষেত্রে সিটি ব্যাংক গুলশান শাখাকে সবচেয়ে বেশী হেল্পফুল মনে হয়েছে।</p><p>ক্যাশ ডলার এনডোর্স করলে সাথে একটা ফরেন কারেন্সি সার্টিফিকেট দেয় ব্যাংক থেকে। <strong>পাসপোর্টের এনডের্সমেন্ট পেজের ফটোকপি</strong>, আর সাথে সেই <strong>ফরেন কারেন্সি সার্টিফিকেট (ডলার কেনার ডকুমেন্ট) </strong>ভিসা এপ্লিকেশনের সাথে জমা দিতে হয়।</p><p><em><strong>২। ক্রেডিট কার্ড বা প্রিপেইড ট্রাভেল কার্ড এনডোর্স করা: </strong></em></p><p>আপনার যদি কোন ব্যাংকের ক্রেডিট কার্ড (ভিসা মাস্টারকার্ড বা এ্যামেক্স) থাকে। সেই কার্ডও এনডোর্স করে ফেলা যায়। আর কার্ড না থাকলে চাইলে বিভিন্ন ব্যাংক থেকে খুব সহজেই প্রিপেইড ট্রাভেল কার্ড নেয়া যায় (ইবিএল এর একুয়া বেশ পপুলার)। ডেবিট কার্ড (একাউন্ট থেকে টাকা তোলার কার্ড) কিন্তু কাজ করবে না। </p><p>কার্ড এনডোর্স করার জন্য <strong>পাসপোর্ট আর কার্ড</strong> নিয়ে সেই কার্ড ইশু করা ব্যাংকে যেতে হবে ( সব শাখায় কিন্তু এনডোর্স করেনা, শিওর হয়ে যাওয়া ভালো)। আমি চেষ্টা করি বড় ব্রাঞ্চে যাওয়ার। সেখানে গিয়ে একটা ফর্ম পুরন করে ফর্মে এমাউন্ট লিখে দিবেন কত ডলারের জন্য এনডোর্স করতে চান (সার্ক দেশগুলোতে সর্বোচ্চ ৫০০০ ডলার আর নন সার্ক দেশে সর্বোচ্চ ৭০০০ ডলার) তবে লিমিট কিছুটা বাকী রাখবেন ক্যাশ ডলারের জন্য। <strong>সর্বনিম্ন ১৫০ ইউ এস ডলার</strong> এনডোর্স করতে হয় ভারতীয় ভিসার জন্য। </p><p>কার্ড এনডোর্স করলে পাসপোর্টের এন্ডোর্সমেন্ট পেজের ফটোকপি আর সাথে কার্ডের দুই পাশের ফটোকপি (অবশ্যই <strong>কার্ডের পিছনের তিন ডিজিট CVV নাম্বর</strong> কিছু দিয়ে লুকিয়ে রেখে) ভিসা এপ্লিকেশনের সাথে জমা দিতে হবে।</p><p>ডিপেন্ডেন্টের জন্য আপনার কার্ড একডোর্সমেন্টের কাগজগুলোর ফটোকপি দিতে হবে, যদি একসাথে এপ্লাই করেন।</p><h3 id="-noc-">পেশাগত প্রমানপত্র বা NOC, বা স্টুডেন্ট আইডি কার্ড বা ট্রেড লাইসেন্স :</h3><p> কর্মক্ষেত্রে এইচ আর ডিপার্টমেন্টে বললেই দিয়ে দেয়ার কথা এই ডকুমেন্ট। তার ফরম্যাট জানে। আর যদি তারা ফরম্যাট না জানে, যেই তথ্যগুলো থাকতেই হবে ডকুমেন্টে সেগুলো হল:</p><ul><li> কর্মক্ষেত্রের ঠিকানা ও ফোন নাম্বর (অবশ্যই অফিশিয়াল প্যাডে হতে হবে)</li><li>সম্ভ্যাব্য ট্রাভেল ডেট</li><li>আইডি নাম্বর, জয়েনিং ডেট</li><li>পাসপোর্ট নাম্বর</li></ul><p>আর উল্লেখ থাকতে হবে আপনি আপনার ট্রাভেল এর খরচ নিজে বহন করবেন।</p><p>স্টুডেন্ট আইডি বা ট্রেড লাইসেন্সের ক্ষেত্রে সেগুলোর ফটোকপি দিতে হয়। </p><p>আপনার ডিপেন্ডেন্টদের ক্ষেত্রে একসাথে এপ্লাই করলে অফিস থেকে পাওয়া ডকুমেন্টটির এক কপি করে ফটোকপি জমা দিতে হবে।</p><h3 id="--6">[শুধুমাত্র মেডিকেল ভিসার জন্য] ভারতীয় হাসপাতালের এ্যাপয়েন্টমেন্ট: </h3><p>ভারতীয় অনেক হাসপাতালে অনলাইনে এ্যাপয়েন্টমেন্ট নেয়া যায়। সেক্ষেত্রে আপনি যেই হাসপাতালে ডাক্তার দেখাতে চান, সেই হাসপাতালে অনলাইনে এ্যাপয়েন্টমেন্ট নেয়া গেলে অনলাইনে নিয়ে নিন। অথবা তাদের ইমেইল এড্রেসে আপনার সমস্যা উল্লেখ করে মেডিকেল টেস্টের রিপোর্ট দিয়ে ইমেইল করলে তারা সাধারনত এ্যাপয়েন্টমেন্ট ইমেইলে পাঠিয়ে দেয়।</p><p>মেডিকেল এ্যাটেন্ডেন্ট ভিসার সাথেও এ্যাপয়েন্টমেন্টের একটি কপি জমা দিতে হয়।</p><h3 id="--7">[শুধুমাত্র মেডিকেল ভিসার জন্য] মেডিকেল কাগজপত্র: </h3><p>রোগীর মেডিকেল টেস্ট রিপোর্ট (সম্প্রতি করা দুই তিনটি), আর ডাক্তারের অবজারভেশন কাগজ ফটোকপি করে জমা দিতে হয়। আরো একটা কাগজ অনেক সময় দরকার হয়, যেটা পাওয়া একটু কঠিন, দেশের কোন ডাক্তাদের কাছে থেকে বিদেশে চিকিৎসা করার রিকোমেন্ডেশন নিতে হয় (লিখা থাকবে বিদেশে চিকিৎসা করার পরামর্ষ দিচ্ছেন)। রিকোমেন্ডেশন পাওয়া কঠিন হলে আপনার এ্যাপয়েন্টমেন্ট দেয়া হাসপাতালে রিকুয়েস্ট করলে ভিসা ইনভাইটেশন পাঠায়ে দেয়। মেডিকেল ডকুমেন্ট আর ইনভাইটেশন হলেও চলে।</p><p>মুল রিপোর্টগুলোও সাথে নিয়ে যেতে হয়, ওরা পাসপোর্টের সাথে নিয়ে রাখে, আবার পাসপোর্টের সাথেই ফেরত দিয়ে দেয়। </p><h3 id="--8">পাসপোর্টের ফটোকপি:</h3><p>পাসপোর্টের সামনের দুই পেজ (জাতীয় সঙ্গীত যেই পেজে থাকে সেই পেজ, আর তথ্যযুক্ত পেজ) দুই পেজেরই ফটোকপি দিতে হয়। আমি প্রথমে ভাবতাম প্রথম পেজের দরকারটা কি, পরে যেটা বুঝলাম অনেক দেশ ভিসা রিজেক্ট করলে পাসপোর্টের প্রথম পেজে ছোট করে একটা সিল দিয়ে দেয়। সেটা দেখার জন্যই নেয়। </p><p>আপনি যদি আপনার পরিবারের অন্যকারো এপ্লিকেশন জমা দেন, প্রতিটার সাথে আপনার পাসপোর্টের এক কপি করে ফটোকপি দিতে হবে। আর পাসপোর্ট ফেরত নেয়ার সময় আপনার পাসপোর্ট দেখাতে হবে।</p><h3 id="--9">ফরম পুরন করা:</h3><p>ভারতীয় ভিসার সাইট <a href="http://www.ivacbd.com/">http://www.ivacbd.com/</a> এ গিয়ে ফরম পুরন করতে হবে। ফরমে বেশীভাগ তথ্য আপনার পাসপোর্ট থেকে দেখেই পুরন করতে পারবেন। বর্তমান ঠিকানা লিখবেন ইউটিলিটি বিলের ঠিকানা থেকে। সাথে আরো কিছু তথ্য দরকার হয়:</p><ul><li>ভারতে সম্ভাব্য থাকার ঠিকানা, সেই যায়গার ফোন নাম্বর</li><li>ভারতে একজন রেফারেন্স এর নাম, ঠিকানা, ফোন নাম্বর</li><li>দেশের একজন রেফারেন্স এর নাম, ঠিকানা, ফোন নাম্বর</li><li>টুরিস্ট ভিসার ক্ষেত্রে: কিছু দর্শনীয় স্থান (যেখানে ঘুরতে যেতে চান) এর নাম</li><li>মেডিকেল ভিসার ক্ষেত্রে ভারতের ডাক্তারের নাম, হাসপাতালের ঠিকানা আর ফোন নাম্বর (এ্যপয়েন্টমেন্ট অনুযায়ী)</li><li>মেডিকেল ভিসার ক্ষেত্রে দেশের একজন ডাক্তারের নাম, ঠিকানা, ফোন নাম্বর (রিকমেন্ডেশন অনুযায়ী, ইনভাইটেশন নিয়ে ভিসা করলে যে ডাক্তার দেখিয়েছেন দেশে, তার তথ্য)</li></ul><p>যেই ছবিটি তুলেছেন সেইম ছবি ফরমের সাথে আপলোড করতে হয়, <strong>তাই অবশ্যই স্টুডিও থেকে ছবির সফট কপি নিবেন</strong>।</p><p>ভিসার মেয়াদ সর্বোচ্চ দিতে দেখেছি টুরিস্ট ভিসায়<strong> এক বছর মাল্টিপল এন্ট্রি</strong>, আর মেডিকেল ভিসায় <strong>ছয় মাস ট্রিপল এন্ট্রি, </strong>ভিসা ফরমে আপনার পছন্দমত সময় উল্লেখ করা যায়, সাধারনত মানুষ সর্বোচ্চ সময়ের জন্যই ভিসা নিয়ে থাকে।</p><p>ফরম পুরন করার সময় বেশ কয়েকটা স্টেপ থাকে, প্রথম স্টেপ পার হওয়ার পরেই একটা <strong>টেম্পোরারী এপ্লিকেশন আইডি দিবে</strong>, এই আইডি পাওয়ার সাথে সাথে <strong>কোথাও কপি করে রেখে দিবেন</strong>। ফরম পুরন করার সময় কোন সমস্যা হলে, বিদ্যুত চলে গেলে পরে এই আইডি দিয়ে অর্ধেক করা এপ্লিকেশন কমপ্লিট করা যায়।</p><p>একবার পুরন করা ফরম <strong>৯ দিনের মধ্যে</strong> জমা দিতে হয়, এপ্লিকেশন টাইপ <strong>walk-in</strong> বেশীভাগ ক্ষেত্রে, আর কোন <strong>এ্যপয়েন্টমেন্ট দরকার হয়না</strong>। </p><h3 id="--10">ভিসা ফি জমা দেয়া:</h3><p>ভারতীয় ভিসা ফি <strong>৮০০ টাকা</strong>, সাথে কিছু প্রোসেসিং ফি থাকে। ফরম পুরন করার পর পিডিএফ ফাইলে বারকোডের নীচে একটা <strong>ওয়েব ফাইল নাম্বর</strong> থাকে, এই নাম্বর নিয়ে পেমেন্ট করতে হয়। পেমেন্ট করার জন্য <a href="http://www.ivacbd.com/">http://www.ivacbd.com/</a> এ সরাসরি <strong>ডেবিট বা ক্রেডিট কার্ড</strong> দিয়ে পে করা যায়, অথবা <strong>সিটি ব্যাংকের সিটি টাচ</strong> অনলাইন ব্যাংকিং দিয়ে পে করা যায়।অথবা যেকোন <strong>ইউ ক্যাশ এজেন্ট</strong> এর কাছে গেলে পেমেন্ট করে দিবে। </p><p>পেমেন্ট করার <strong>তিন দিনের</strong> মধ্যে ভিসা ফরম ভিসা সেন্টারে জমা দিতে হয়, তাই সবচেয়ে ভালো হলো জমা দিতে যাওয়ার আগে আগে ভিসা ফি জমা দিয়ে তারপর ফরম জমা দিতে যাওয়া।</p><h3 id="--11">এপ্লিকেশন জমা দেয়া: </h3><p>দেশে অনেকগুলো ভিসা এপ্লিকেশন সেন্টার আছে, আপনার কাছাকাছি ভিসা সেন্টার খুজে পেতে পারেন <a href="http://www.ivacbd.com/">http://www.ivacbd.com/</a> ওয়েব সাইটে। আমি জমা দিয়েছিলাম ফিউচার পার্কের ভিসা সেন্টারে। সবগুলো কাগজ উপরের টেবিলে দেয়া লিস্টের ক্রম অনুযায়ী সাজিয়ে ফরমে এক কপি ছবি আঠা দিয়ে লাগিয়ে, ফর্মে দুই যায়গায় সাইন করে, স্ট্যাপলার করে পাসপোর্ট সহ জমা দিতে হয়। অন্যের ভিসা জমা দেয়ার ক্ষেত্রে জমা যিনি দিবেন, তার পাসপোর্ট সাথে থাকতে হয়, আর সাথে তার পাসপোর্টের একটা করে ফটোকপি জমা দিতে হয় (শুধুমাত্র স্ত্রী, সন্তান আর বাবা মায়ের পাসপোর্ট জমা দেয়া যায়)। </p><p>অন্য সবার পাসপোর্ট জমা দিয়ে সব শেষে নিজেরটা জমা দিতে হবে। নেয়ার সময় আবার নিজের পাসপোর্ট আগে ফেরত নিয়ে অন্যদেরটা নিতে হবে। আপনার পাসপোর্ট ছাড়া অন্যদের পাসপোর্ট নিতে পারবেন না।</p><h3 id="--12">সবশেষে:</h3><p>আমি অলসেমি করে যতটা কঠিন ভাবতাম, প্রোসেস আসলে এতটা কঠিন না। ভিসা সেন্টারে ভিড় থাকলেও ওরা অনেক ইফিসিয়েন্ট, সময় অনেক কম লাগে। ভিসা এপ্লিকেশন জমা দিতে যাওয়ার সময় ব্যাগ না নিয়ে যাওয়াই ভালো (সময় কম লাগবে)। আর আপনার কাগজপত্র সব ঠিকঠাক থাকলে সাধারনত ভিসা পেতে সমস্যা হয়না। </p><p>মেডিকেল ভিসার ক্ষেত্রে <strong>৫ দিন</strong> আর টুরিস্ট ভিসার ক্ষেত্রে <strong>৭ দিন</strong> সময় লাগে সাধারনত ভিসা পেতে।মাঝে মাঝে দেরী হতে পারে, তাই হাতে একটু বেশী সময় নিয়ে ভিসা এপ্লিকেশন করা ভালো।</p>]]></content:encoded></item><item><title><![CDATA[How I solved an interesting Scaling problem.]]></title><description><![CDATA[<p>One of my younger brothers and friend joined a new company. The brand was old, but they restarted their operation, So they were still hiring people. They did not have a technology team yet (engineers were yet to join the next month). But they got the task for creating ticketing</p>]]></description><link>https://blog.anam.co/one-of-the-biggest-scaling-challenges-in-my-career/</link><guid isPermaLink="false">5be9ed71d2cdca00019139e2</guid><category><![CDATA[english]]></category><category><![CDATA[story]]></category><category><![CDATA[devops]]></category><category><![CDATA[software]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Mon, 12 Nov 2018 22:00:59 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1435686858161-59da32dfd4b4?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=0fbf3832e7556a5903f3a0bf719ec58a" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1435686858161-59da32dfd4b4?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ&s=0fbf3832e7556a5903f3a0bf719ec58a" alt="How I solved an interesting Scaling problem."><p>One of my younger brothers and friend joined a new company. The brand was old, but they restarted their operation, So they were still hiring people. They did not have a technology team yet (engineers were yet to join the next month). But they got the task for creating ticketing solution for one of the biggest cultural events in the country. I offered to help them make the application.</p><p>It was a three day event. The registration system will be open for five days. Every day, sixty thousand unique people could register. When I heard about the requirement, it felt like a single page single operation application. Then I went into the details, there were some challenging parts: </p><ol><li>The registration will start at a certain time of day, will stop automatically after the daily quota is full.</li><li>Users will enter their phone number, Get a OTP, and only after verifying the OTP the registration will be complete. The OTP is valid for 5 minute.</li><li>The users will be able to download a Three page PDF with Barcode <strong>on the next page</strong> containing ticket for the three days, and that PDF will also be sent to them via email.</li><li>The users will get a confirmation SMS after registration.</li></ol><p>There's more to it, As they were the partner of the show, they were not getting paid for the application. So the authorities wanted to keep the cost (including server cost) under $100. </p><p>So, I had a few problems to solve:</p><ol><li>Send a lot of SMS in the shortest time</li><li>Send a lot of emails.</li><li>Generate Three barcode, and Three page PDF synchronusly for every registration.</li><li>Keep the server cost low.</li></ol><p>I started creating the backend application with <code>nodeJS</code> and frontend application with <code>Angular JS</code> . We approached one of the local bulk SMS providers for bulk SMS, and bought a Mailgun subscription for sending email.</p><p>The server was a <strong>$20 Digital Ocean</strong> Singapore server. And the development took three days to finish. It was deployed in the server and scaled up to <code>12 instances</code> using <code>pm2</code>.</p><p>The application went live and on the first day when the registration started. I thought, "well, people should not jump on it like crazy right?". Man I was wrong. We looked at google Analytics and the visitor counter started going up. And when we were ten minutes into the registration, The visitor count was <code>100k+</code>. The server was literally crying. </p><p>Within next ten minutes, the whole system crashed with roughly <code>10k</code> registration. The daily quota was almost six times, but the application could not take the huge load. I was not prepared either, I didn't think <code>100k+</code> people would stay awake to get a cultural event ticket in the middle of the night. We started getting phone calls from the event organiser. And everyone was having hard time explaining the problem.</p><p>I thought the bottleneck was outgoing SMS. but the Bottleneck was PDF generation. I utilized a nodeJS library that uses <code>PhantomJS (webkit)</code> to generate PDF. Allthough I created only one webkit instance per application instance, It was eating all the memory. Webkit being webkit.</p><p>I had to rewrite the whole PDF generation part using a lighter library (<code>PDFKit</code>) within a very short time, We increased the server capacity to a <code>~$60</code> Digital Ocean instance and Increased the number of application instances to 18.</p><p>After a couple of hours of downtime, The application was up. And the visitor counter started going up again. That was 5 in the morning and more than <code>80k</code> people tried to register. </p><p>The first day was fine and we thought the rest of the days will go fine as well. The next day I went to a designer's event. The organisers changed their ticketing schedule again and in stead of 12 at night, they will start distributing tickets at 12 at noon. At that time, the registration automatically started and I was having Chicken biriyani at the designer's event. Suddenly got a call from the organiser. The registration site was inaccessible. I tried to figure out the reason and found abnormal traffic surge. Traffic was not even reaching the server. Digital Ocean was rejecting them. It was a DDOS attack. and entirely my mistake. I should have used <code>cloudflare</code> .I started configuring CloudFlare, sitting in a nearby coffee shop. I was having hard time doing this simple task, thanks to the tension. Sabbir, helped us to configure CloudFlare DNS. and the site was accessible again.</p><p>Then came another challenging part. It took only half an hour to fill the daily quota. Many people called the organiser and complained that they could not get ticket. We had a hard time convincing the organiser that for real all the tickets were taken within the short time. They thought there will be very less audience this time. They also thought there must be a technical problem we are hiding. They never had the experience of running out of tickets within half an hour.</p><p>As it turned out, That year, the biggest number of people could come to the event. The event was a huge success and The ticketing system worked fine. </p><p>I had to use every bit of resource, and try every type of optimisation in order to make it work. The experience taught me a lot.</p><p> </p>]]></content:encoded></item><item><title><![CDATA[পজিশন: স্টিকি,আমার হঠাত করে খুঁজে পাওয়া মজার একটা সি এস এস ফিচার]]></title><description><![CDATA[<p>আনকমন বা ব্রাউজারে কম সাপোর্ট করে এমন ফিচারের নাম ভুলে যাই। এর আগের ব্লগ পোস্টে স্ক্রল স্ন্যাপ নিয়ে লেখার সময় এই ফিচারের রে</p>]]></description><link>https://blog.anam.co/css-position-sticky-in-bangla/</link><guid isPermaLink="false">5bd34e98d2cdca00019139cc</guid><category><![CDATA[css]]></category><category><![CDATA[front end]]></category><category><![CDATA[বাংলা]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Fri, 26 Oct 2018 18:37:26 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1503551723145-6c040742065b?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=5ddc8ede2d2a0a1eb9a43d0c03c6a762" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1503551723145-6c040742065b?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ&s=5ddc8ede2d2a0a1eb9a43d0c03c6a762" alt="পজিশন: স্টিকি,আমার হঠাত করে খুঁজে পাওয়া মজার একটা সি এস এস ফিচার"><p>আনকমন বা ব্রাউজারে কম সাপোর্ট করে এমন ফিচারের নাম ভুলে যাই। এর আগের ব্লগ পোস্টে স্ক্রল স্ন্যাপ নিয়ে লেখার সময় এই ফিচারের রেফারেন্স খুজতে গিয়ে ভুল কীওয়ার্ড দেয়াতে নতুন একটা সি এস এস ফিচার খুজে পেয়ে গিয়েছিলাম। আজকে সেটা নিয়েই লিখবো।</p><p>একটা স্যাম্পল দিয়ে শুরু করি: </p><iframe height="300px" scrolling="no" title="Position Sticky Sample" src="//codepen.io/theanam/embed/MPLBYy/?height=265&theme-id=0&default-tab=css,result" frameborder="no" allowtransparency="true" allowfullscreen="true" style="width: 100%;">See the Pen <a href="https://codepen.io/theanam/pen/MPLBYy/">Position Sticky Sample</a> by Anam Ahmed (<a href="https://codepen.io/theanam">@theanam</a>) on <a href="https://codepen.io">CodePen</a>.
</iframe><p>স্যাম্পলটাতে স্ক্রল করলে খেয়াল করবেন, প্রথমে স্টিকি লেখা এলিমেন্ট নরমালি স্ক্রল হয়, তারপর হঠাত করে যেই একটা নির্দিষ্ট যায়গায় পৌছে যায়, তখন আর স্ক্রল করেনা <code>position:fixed</code> এলিমেন্টের মত চুপচাপ ঐখানেই বসে থাকে। </p><p>যেকোন এলিমেন্টকে পজিশন স্টিকিতে পরিনত করতে দুইটা প্রোপার্টি দরকার, একটা <code>position:sticky</code> আর একটা কোন পজিশনে গেলে স্টিকি হয়ে যাবে সেটা। এইটা পুরান পজিশনিং সি এস এস দিয়েই ( <code>top</code>, <code>right</code>, <code>bottom</code> <code>left</code> এইগুলো ) করা যায়। আমার স্যাম্পলে আমি চাচ্ছিলাম এলিমেন্ট <code>top:10px</code> এ আটকে যাক। তাই আমার সি এস এস ছিলো:</p><pre><code>.sticky{
    position:sticky;
    top:10px;
}</code></pre>
<p>এর মানে আমি যখন স্ক্রল করতে করতে আমার ভিউপোর্টের উপরের আংশের সাথে আমার এলিমে ন্টের টপ পজিশনের দুরত্ব ১০ পিক্সেল অথবা এর কম থাকবে, এলিমেন্ট <code>position:fixed</code> এর মত হয়ে যাবে। </p><p>স্ক্রল করতে গিয়েই খেয়াল করবেন যখন আমার স্টিকি এলিমেন্ট(লাল রংয়ের) উপরের ধারের একেবারে কাছে চলে আসে (১০ পিক্সেল বা তার কম) তখনই আটকে যায়। এইরকম চাইলে যত ইচ্ছা তত এলিমেন্টে স্টিকি পজিশনিং ব্যবহার করা যায়। </p><p><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/position#Sticky_positioning">ফিচারটির রেফারেন্স ডকুমেন্ট পাবেন এই লিংকে</a></p><h4 id="-">ব্রাউজার সাপোর্ট:</h4><p>ব্রাউজার সাপোর্ট মাশাআল্লাহ ভালো। অপেরা মিনি আর কিছু অচেনা চাইনিজ ব্রাউজার বাদ দিলে সব ব্রাউজারে মোটামুটি কম বেশী সাপোর্ট করে এই ফিচার। </p><p><a href="https://caniuse.com/#search=sticky">পুরো ব্রাউজার কম্প্যাটিবিলিটি টেবিল পাবেন এই লিংক‌ে</a></p><blockquote>সি এস এস দিয়ে এখন অনেক কিছুই করা যায় যেগুলো করতে আগে আলাদা জাভাস্ক্রিপ্ট লাইব্রেরী দরকার হতো। ব্যাপারটা বেশ মজার।</blockquote>]]></content:encoded></item><item><title><![CDATA[CSS স্ক্রল স্ন্যাপ। জাভাস্ক্রিপ্ট ছাড়াই স্ক্রল নিয়ন্ত্রন করা]]></title><description><![CDATA[<p>যখন সি এস এস ৩ প্রথম ড্রাফ্ট হয় আর মেজর ব্রাউজারেরা এর কিছু কিছু ফিচার ইমপ্লিমেন্ট করা শুরু করে, তখনকার কথা। কয় মাসের মধ্যে পুরা ওয়েব সু</p>]]></description><link>https://blog.anam.co/css-scroll-snap-in-bangla/</link><guid isPermaLink="false">5bcb769295d30a0001a25d4c</guid><category><![CDATA[css]]></category><category><![CDATA[front end]]></category><category><![CDATA[বাংলা]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Sat, 20 Oct 2018 19:42:09 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1495482479037-588f9b3712c6?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=f0f63b58d52645e388672284f7161d10" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1495482479037-588f9b3712c6?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ&s=f0f63b58d52645e388672284f7161d10" alt="CSS স্ক্রল স্ন্যাপ। জাভাস্ক্রিপ্ট ছাড়াই স্ক্রল নিয়ন্ত্রন করা"><p>যখন সি এস এস ৩ প্রথম ড্রাফ্ট হয় আর মেজর ব্রাউজারেরা এর কিছু কিছু ফিচার ইমপ্লিমেন্ট করা শুরু করে, তখনকার কথা। কয় মাসের মধ্যে পুরা ওয়েব সুন্দর সুন্দর ইন্টারএকটিভ ওয়েবসাইট দিয়ে ভরে গেল। মানুষ এত ক্রিয়েটিভ হতে পারে, ভাবতেই ভালো লাগে। তখন থেকে স্ক্রলিং ওয়ানপেজ ওয়েবসাইট বেশ পপুলার একটা প্যাটার্ন হয়ে গেল। এখনও অনেক পপুলার এই টাইপের সাইট। স্ক্রল করার সাথে সাথে নানা ধরনের এনিমেশন আর কারসাজি হয়। </p><p>এর মধ্যে বেশীভাগ সাইটে একটা ব্যাপার ছিলো। স্ক্রল করলে যেকোন এক যায়গায় না থেমে ঠাস করে একটা স্পেসিফিক যায়গায় থামতো সবসময়। আমি প্রথম প্রথম ভাবতাম আমার মনেহয় স্ক্রল করার হাত খুব ভালো। গর্বও হতো। পরে আস্তে আস্তে টের পেলাম আসলে জাভাস্ক্রিপ্ট দিয়ে স্ক্রল পজিশন ডিটেক্ট করে যেখানে থেমে গেছি, সেখানকার সবচেয়ে কাছের কোন একটা যায়গায় জাভাস্ক্রিপ্ট বাকী পথ স্ক্রল করে নিয়ে যায়। </p><p>এতদিন যেই জিনিসটা জাভাস্ক্রিপ্ট দিয়ে করা লাগতো, এখন সেই জিনিস সি এস এস দিয়েই করা যায়। </p><h4 id="-">স্ক্রল স্ন্যাপ আসলে কি করে?</h4><p>আপনি পেজ স্ক্রল করা শেষ করার পর আপনার স্ক্রল পজিশন থেকে কাছাকাছি যে পয়েন্ট আপনি দেখিয়ে দিয়েছেন, সেখানে সি এস এস স্ক্রল করে নিয়ে যায়। তার মানে আপনার ইউজার স্ক্রল করলে ঠিক আপনার বেধে দেয়া পয়েন্টগুলোতে গিয়েই স্ক্রল বন্ধ হবে।</p><p>নীচের উদাহরনে স্ক্রল করার ট্রাই করে দেখেন(এখনকার আপডেট অনুযায়ী শুধু লেটেস্ট ক্রোমে কাজ করার কথা):</p><iframe src="https://codesandbox.io/embed/m777r45m78?view=preview" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe><p>দেখবেন ফার্স্ট পেজ, সেকেন্ড পেজ অথবা থার্ড পেজে গিয়েই স্ক্রল শেষ হবে। দুইটা পেজের মাঝখানে ছেড়ে দিলে যেই পেজের বেশী অংশ দেখা যাচ্ছে, সেটাতে অটোমেটিক স্ক্রল হয়ে যাবে।</p><h4 id="--1">যেভাবে ব্যাবহার করবেন: </h4><p>প্রথমে একটা কন্টেইনার দরকার, যেটার ভিতরের জিনিসপত্র স্ক্রল হবে। কন্টেইনারে কয়েকটা সেটিং এডজাস্ট করা দরকার:</p><pre><code>.container{
    overflow-y:scroll;
    scroll-snap-type:y mandatory;
}</code></pre>
<p>এর সাথে <code>height</code>, বক্স মডেল এইগুলা তো থাকবেই, আমি শুধু জরুরী গুলো লিখলাম। এখানে <code>overflow-y:scroll</code> এইটা পুরানো। কিন্তু <code>scroll-snap-type</code> এইটা নতুন। এইটার ভ্যালুর দুইটা অংশ: অক্ষ আর কট্টরতা 🤣</p><p><code>y mandatory</code> দিয়ে এখানে বুঝানো হচ্ছে, <code>y</code> অক্ষ বরাবর সব সিচুয়েশনে অবশ্যই স্ক্রল স্ন্যাপ করতে হবে। এখানে <code>y</code> এর বদলে <code>x</code> অক্ষ বরাবর স্ক্রল করানো যেত (ফটো গ্যালারী টাইপের এপ্লিকেশনে কাজে আসবে) আবার <code>mandatory</code> এর যায়গায় <code>proximity</code> ব্যাবহার করা যেত। সেক্ষেত্রে স্ক্রল পয়েন্টের খুব কাছাকাছি যাওয়ার আগ পর্যন্ত স্ন্যাপ করতো না। </p><p>এর পর কন্টেইনারের ভিতরে যে কয়টা এলিমেন্টে স্ক্রল স্ন্যাপ করার দরকার, প্রতিটাতে একটা সি এস এস প্রোপার্টি যোগ করে দিলেই হবে। প্রোপার্টিটা হচ্ছে <code>scroll-snap-align</code> । আমার ক্ষেত্রে প্রতিটা সেকশন ১০০% <code>height</code> তাই আমার ক্ষেত্রে আমি কমনভাবে ব্যাবহার করেছি:</p><pre><code>.children{
    scroll-snap-align:center;
}</code></pre>
<p> আপনার ইউজকেইস ভেদে এটার ভ্যালু <code>start</code> , <code>center</code> অথবা <code>end</code> হতে পারে। </p><p>ব্যাস হয়ে গেল। এখন আপনার পেজ স্ক্রল করে ট্রাই করে দেখতে পারেন।</p><h4 id="--2">ব্রাউজার কম্প্যাটিবিলিটি:</h4><p>অনেক ব্রাউজারেই এই ফিচারের কম্প্যাটিবিলিটি আছে। সমস্যা হচ্ছে এই পোস্টে উল্লেখ করা সিনট্যাক্স আপডেট করা সিনট্যাক্স। এর আগে সিনট্যাক্স আলাদা ছিলো। ব্লগ পোস্ট লেখার সময় বেশীভাগ ব্রাউজারে এখনো পুরানো সিনট্যাক্সের সাপোর্ট আছে। তবে সব ব্রাউজারের পরের ভার্শনে আশা করা যাচ্ছে নতুন সিনট্যাক্সের সাপোর্ট চলে আসবে। তাই স্ক্রল স্ন্যাপ শিখে ফেলার এখনই সময়।</p><h4 id="--3">প্রয়োজনীয় লিংক:</h4><ol><li> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type#Browser_compatibility">ব্রাউজার কম্প্যাটিবিলিটি (MDN)</a></li><li><a href="https://caniuse.com/#feat=css-snappoints">ব্রাউজার কম্প্যাটিবিলিটি (Can I Use)</a></li><li><a href="https://developers.google.com/web/updates/2018/07/css-scroll-snap">গুগলের চমতকার একটা টিউটোরিয়াল</a></li><li><a href="https://go.anam.co/js">আমার জাভাস্ক্রিপ্ট কোর্স</a></li><li><a href="https://go.anam.co/linux">আমার লিনাক্স কোর্স</a></li></ol>]]></content:encoded></item><item><title><![CDATA[Easy WordPress Development with Docker]]></title><description><![CDATA[<p>I have mixed feelings about WordPress. Half of the people I know absolutely hate WordPress while other half loves it. I think WordPress is cool. It's a great tool if you can use it properly. </p><p>I used to work with WordPress on a regular basis. Half of my CMS works</p>]]></description><link>https://blog.anam.co/easy-wordpress-development-with-docker/</link><guid isPermaLink="false">5bc7a88395d30a0001a25d42</guid><category><![CDATA[docker]]></category><category><![CDATA[wordpress]]></category><category><![CDATA[devops]]></category><category><![CDATA[english]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Wed, 17 Oct 2018 22:24:06 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1533040038109-9b1fb74bb5d3?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=dfad5991817b4c10f953ca2ec16cca49" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1533040038109-9b1fb74bb5d3?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ&s=dfad5991817b4c10f953ca2ec16cca49" alt="Easy WordPress Development with Docker"><p>I have mixed feelings about WordPress. Half of the people I know absolutely hate WordPress while other half loves it. I think WordPress is cool. It's a great tool if you can use it properly. </p><p>I used to work with WordPress on a regular basis. Half of my CMS works were based on WordPress. Part of the reason was the fact that WordPress was very easy to start with. Download any <code>*MP</code> Stack and enjoy the comfort of WordPress working out of the box. But there were a few problems. Like moving around comfortably with the development environment. The computers I used, often failed so I had to take a lot of time setting up things right where they were before I could star developing again. And then there was Deployment. I remember moving around with <code>XAMPP</code> Portable version in my <code>128 Megabyte</code>  pen drive back then. It's been long since. I remember last using WordPress a couple of years ago.</p><p>Recently I wanted to try WordPress again for <a href="https://wordpress.org/gutenberg/">Gutenberg</a>. It's probably the greatest thing that happened to WordPress recently. And As I try to contain literally everything inside Docker. I started there. </p><blockquote><strong>Disclaimer:</strong> My setup might not be what experts in WordPress Field does. Mine just works for me and can be a good starting point for anyone interested. If you want to go full production with this, you might do some research around best practices.</blockquote><p>If you are planning to Follow along, you need to have two things installed in your system: </p><ol><li><a href="https://www.docker.com/get-started">Docker </a></li><li><a href="https://docs.docker.com/compose/">Docker Compose</a></li></ol><p>Luckily, There's an <a href="https://hub.docker.com/_/wordpress/">official WordPress Docker image in Docker Hub</a>. I planned to build my setup on top of that. So I started by writing a <code>docker-compose.yml</code> file, because I need a database server to go along with it. Here's how my Compose file looked like:</p><pre><code>version: &quot;3&quot;

services:
  wordpress-app:
    image: wordpress:4.9.8-php7.0-apache
    volumes:
      - ./html:/var/www/html
    environment:
      - WORDPRESS_DB_HOST=wordpress-database
      - WORDPRESS_DB_PASSWORD=supersecret
    ports:
      - 8800:80
    depends_on: 
      - wordpress-database
  wordpress-database:
    image: mysql:5.7
    volumes:
      - ./data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=supersecret
      - MYSQL_DATABASE=wordpress</code></pre>
<p>Once my compose file was ready, I created two folders on the same directiry, <code>data</code> for mysql to persist data. and <code>html</code> for WordPress Files.</p><p>Once that was done, I ran the following command in the directory and waited for a couple of minutes.</p><pre><code>docker-compose up -d</code></pre>
<p>Once the command was done, doing it's stuff, I went to the browser and navigated to <code>localhost:8800</code> (The port I set on <code>docker-compose.yml</code> file) and was greeted with the WordPress Installer. As I already set all the database information,I only had to give the site related information (Site name, username, password, email etc.)</p><figure class="kg-image-card"><img src="https://blog.anam.co/content/images/2018/10/Screen-Shot-2018-10-18-at-4.06.51-AM.png" class="kg-image" alt="Easy WordPress Development with Docker"></figure><p>And my WordPress environment was ready. I logged in and Installed Gutenberg immediately 😃</p><p>All the WordPress files can be found in the <code>html</code> folder we created Earlier. If you work in a team or plan to move around with the database changes as well, You need to move with the <code>data</code> directory too.</p><p>You can immediately start working anywhere in the world within a few minutes now. If the System has docker and docker-compose installed and you have this app directory with you (Or in Git/Any other version control/Cloud). You just need to run one command, wait a few minutes. And you can start right where you left off :)</p><p>The command is: </p><pre><code>docker-compose up -d</code></pre>
<blockquote>I would Suggest learning a bit more about docker before doing this, that would improve your understanding and help you debug. If you understand Bangla: <a href="https://blog.anam.co/docker-in-bangla/">Here's an article I wrote on Docker</a>.</blockquote>]]></content:encoded></item><item><title><![CDATA[The Era of Software Discrimination]]></title><description><![CDATA[<p>When I was a child, out of the few things I remember studying in the "Computer Shikkha" (Computer studies) book was <a href="https://en.wikipedia.org/wiki/Moore%27s_law">Moore's law</a>. Many people explain this law differently, the version I knew stated that, "Computer specs double every two year". </p><p>I read an article recently about the current state</p>]]></description><link>https://blog.anam.co/the-era-of-software-descrimination/</link><guid isPermaLink="false">5bc0e35395d30a0001a25d35</guid><category><![CDATA[opinion]]></category><category><![CDATA[apple]]></category><category><![CDATA[google]]></category><category><![CDATA[software]]></category><category><![CDATA[english]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Fri, 12 Oct 2018 18:55:28 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1534068590799-09895a701e3e?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=31dd194b9141eb9c7e73d1a0705c42e0" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1534068590799-09895a701e3e?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ&s=31dd194b9141eb9c7e73d1a0705c42e0" alt="The Era of Software Discrimination"><p>When I was a child, out of the few things I remember studying in the "Computer Shikkha" (Computer studies) book was <a href="https://en.wikipedia.org/wiki/Moore%27s_law">Moore's law</a>. Many people explain this law differently, the version I knew stated that, "Computer specs double every two year". </p><p>I read an article recently about the current state of <a href="https://en.wikipedia.org/wiki/Quantum_computing">Quantum Computing</a> and one thing became very obvious, If we don't invent dramatically different computers, we will soon break Moore's law. Even when I look at computers from 7-8 years ago. I really don't feel major difference. At least not for day-to-day tasks. Same goes for the phones. Phones now a days have a lot of ram, faster processor (much faster and better than even my first desktop computer). But if you compare it with phone from five years ago, there's no major difference except for the better specs and greater price tag. </p><p>I started to observe a common pattern in the Technology Giants in their recent product reveals, Giants like Google and Apple. They tend to talk less about hardware and more about software now a days. Let's start from the most recent ones:</p><p><strong>Google Pixel 3 and Pixel 3 XL: </strong></p><p>Google recently <a href="https://www.youtube.com/watch?v=EsoQGTA1SxY">launched Pixel 3 and Pixel 3 XL</a>. If you look at the hardware specs, they are like any other flagship of this time. Not even too different from their last year's flagship, Pixel 2 and Pixel 2 XL. But still the phone has a lot going for and all of them have to do with the Software. Google Pixel phones have the most amazing cellphone cameras out there. They have amazing HDR, Amazing Portrait mode, and amazing colour reproduction. And all these features are achieved with a <strong>Single camera, </strong>And all the magic happens in the software itself. And the camera App, is exclusive to the pixel devices. Not the hardware, The software. </p><p>This year google introduces some more features like the <code>Top shot</code> that let's user chose between frames to get the perfect shot. Or the <code>Super resolution zoom</code> where the software takes different photos using the hand movement, combines them to make a better resolution photo for better digital zoom. And the new feature called <code>Call Screening</code> where Google Assistant can take the call and talk to the caller while you sit back and look at the transcript. </p><p>All of these features are software features. But still they will only be available for Google Pixel 3 series, and will not come as a software update in Google Pixel 2 or the original pixel. I do understand that some of these software feature might require hardware support. I also know that many hobbyist developers ported many of these features for older phones, that makes me wonder was it really impossible? Or it's just software discrimination?</p><p><strong>iPhone XS, XS Max and XR: </strong></p><p>Apple released their new iPhones a few weeks before the launch of Google Pixel phones. They were again, not too different from their last year's flagship the iPhone X. Those phones came with some new camera features too. One of the significant features was the ability to adjust the amount of background blur in portrait photos. When the feature was announced, I thought it would come to the iPhone X too. But after I got iOS 12 update, I saw that the particular feature was missing. Even the single camera iPhone XR will have the feature. I wonder why didn't they add it in the iPhone X. </p><p><strong>Mac OS Mojave:</strong></p><p>I have a 2011 Macbook Air. And a 2015 macbook Air. Both can run the same software application. While the 2011 version is slightly slow, but still all the applications run just fine. But the 2015 Macbook got Mac OS Mojave while the 2011 Macbook didn't. But some good people ported it for the older Macs by modifying some of it's components and it works fine on my older macbook. That makes me wonder why didn't apple do it?</p><p><strong>To sum up:</strong></p><p>All these observations made one thing very clear to me. Maybe tech companies are not all about the latest hardware specs anymore. It's a lot about software that runs exclusively on the latest flagship. If the hardware spec doesn't intrigue you, maybe software specs will.Giants started the trend, maybe other companies will soon follow. Not sure as a customer how I feel about this new trend. When I buy a product I expect the vendor to provide me updates to make my product as better as possible by providing meaningful updates. When I pay, I pay for the updates too. Not sure if it's too much to ask. </p>]]></content:encoded></item><item><title><![CDATA[How I created code sharing feature in my application without using a server]]></title><description><![CDATA[<p>I have a very small repl-ish JavaScript code demonstration platform I call <a href="https://theanam.github.io/evileval/">EvilEval</a>, I usually make <a href="https://go.anam.co/js">screencasts on JavaScript</a> and use this tool to demonstrate basic JavaScript. The project is hosted with Github pages. </p><p>One of it's feature is the ability to share code as share link or embeds. Here's</p>]]></description><link>https://blog.anam.co/serverless-data-sharing-inside-url/</link><guid isPermaLink="false">5bb7bbb895d30a0001a25d2f</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[english]]></category><category><![CDATA[front end]]></category><dc:creator><![CDATA[Anam Ahmed]]></dc:creator><pubDate>Fri, 05 Oct 2018 20:33:59 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1521185496955-15097b20c5fe?ixlib=rb-0.3.5&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ&amp;s=974cb4116a3f0ce58673b780aaf17585" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1521185496955-15097b20c5fe?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ&s=974cb4116a3f0ce58673b780aaf17585" alt="How I created code sharing feature in my application without using a server"><p>I have a very small repl-ish JavaScript code demonstration platform I call <a href="https://theanam.github.io/evileval/">EvilEval</a>, I usually make <a href="https://go.anam.co/js">screencasts on JavaScript</a> and use this tool to demonstrate basic JavaScript. The project is hosted with Github pages. </p><p>One of it's feature is the ability to share code as share link or embeds. Here's an embed example: </p><iframe width="100%" height="250px" src="https://evileval.io/#/s/dmFyIGEgPVsKICB7YjozfSwKICAiaGVsbG8iLAogIG51bGwsCiAgIuCmrOCmvuCmguCmsuCmviIKICBdCiAgY29uc29sZS5sb2coYSk="></iframe><p>So, the code needs to be stored somewhere in it's server right? Well, this application runs off <a href="https://github.com/">Github</a> and does not have any place to store data. All the persistent data are within the embed code itself. </p><blockquote>This technique is only feasible for small data (maybe 100 lines of code max). For larger data, you need to use a server. </blockquote><p>The data is in the URL itself. encoded as base64 string. Let's explain the technique step by step. </p><h3 id="creating-the-url-">Creating The URL:</h3><p>The very first thing to do is, creating the URL with the embedded data. let's assume your application is hosted in <code>myawesomeapp.com/</code>. To process the URL easily on the front end,  we will use URL hash. And encode the data in <code>base64</code>. The browser comes with two built-in functions for encoding <code>base64</code> string. <code>btoa()</code> converts string to <code>base64</code> string and <code>atob()</code> can decode <code>base64</code> string. If you are planning to share unicode data you have to use the functions from <a href="https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem">this URL</a>, because the two built in functions does not support unicode. We will stick with built in functions for simplicity. </p><p>To create the URL let's concat the base url, and add the hash with the data at the end:</p><iframe width="100%" height="250px" src="https://evileval.io/#/s/Ly8gRGF0YSB0byBlbmNvZGUKdmFyIGRhdGEgPSAiVGhpcyBpcyBteSBEYXRhIjsKLyogQmFzZSBVUkwgb2YgdGhlIHBhZ2UgLiAjIGlzIGZvciBoYXNoLCAvcy8gaXMgCmZvciBpZGVudGlmeWluZyB0aGF0IGl0J3MgYW4gZW1iZWQKKi8KdmFyIGJhc2VVUkwgPSAiaHR0cDovL215YXBwLmNvbS8jL3MvIgpjb25zb2xlLmxvZyhiYXNlVVJMK2J0b2EoZGF0YSkp"></iframe><p>Now that's your URL with your data. if you use it as <code>&lt;iframe&gt;</code> src, you get yourself embed code :)</p><p>But creating the URL with the data is half of the equation. Now let's decode the data from the URL and get back our data.</p><h3 id="getting-and-using-the-data-from-the-url-">Getting and using the data from the URL:</h3><p>Now that you have the URL creator, let's see how we can get our data back from the URL. tl;dr: we need to extract the data from URL and decode the <code>base64</code> data. The hash of the URL can be accessed from <code>window.location.hash</code> once you have the url hash, you can extract the data in many ways, let's use a relatively easier way:</p><iframe width="100%" height="250px" src="https://evileval.io/#/s/Ly8gd2hhdCB5b3UgZ2V0IGZyb20gbG9jYXRpb24uaGFzaAp2YXIgaGFzaCA9ICIjL3MvVkdocGN5QnBjeUJ0ZVNCRVlYUmgiOwovLyBSZW1vdmUgdGhlICMvcy8gcGFydCB0byBnZXQgdGhlIHB1cmUgZGF0YSBvbmx5CnZhciBleHRyYWN0ZWQgPSBoYXNoLnN1YnN0cig0KTsKLy8gRGVjb2RlIGRhdGEKdmFyIG15RGF0YSA9IGF0b2IoZXh0cmFjdGVkKTsKY29uc29sZS5sb2cobXlEYXRhKTs="></iframe><p>So, we got back the data from the URL, now you can use it anywhere in the project. </p><blockquote>That's how you can persist data in your application without storing it directly in the server. </blockquote><p>happy hacking ✌🏼</p>]]></content:encoded></item></channel></rss>