জুপিটার নোটবুক

Numbers have an important story to tell. They rely on you to give them a voice.

– Stephen Few

ডাটা সাইন্স এর জন্য যত টুল আমরা ব্যবহার করব তারমধ্যে প্রোডাক্টিভিটির দিক থেকে ‘জুপিটার নোটবুক’ সেরা। জিনিসটা একেবারেই গডসেন্ড। ডাটা সাইন্স এর কাজকে পানির মতো করে নিয়ে এসেছে আমাদের এই জুপিটার নোটবুক। পাইথন বা “আর” প্রোগ্রামিং এনভায়রনমেন্ট এর কনসোলে কাজ করার ভীতিকর অবস্থাকে একদম নাই করে দিয়েছে এই নোট বুক। এক ফাইলে নিয়ে এসেছে সবকিছু। 'ইন্টারেক্টিভ' বলতে যা বোঝায় আরকি। নোটবুকের মতো সব রেখে দেয় নিজের ভেতর।

তো, এই নোট বুক বা ‘নোটবুক ডকুমেন্ট’ কি?

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

২. সবকিছু এক ফাইলে ‘রাখতে পারার’ কারণেই এটা অনলাইনে শেয়ার করার সহজ। সব কনটেন্টকে সে ‘এমবেড’ করে নিয়ে এসেছে একটা ফাইলে। তুলে দেন গিটহাবে। চলে আসবে লেখা, গ্রাফিক্স, ইক্যুয়েশন, ডাটা ভিজুয়্যালাইজেশন, মজার জিনিস না?

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

৪. আগেই যেহেতু আমরা 'অ্যানাকন্ডা' ইনস্টল করে এসেছি, তাই 'জুপিটার নোটবুক’ ইনস্টল হয়ে আছে আগে থেকে। এখন শুধু চালু করতে হবে।

৫. স্টার্ট মেন্যুর 'সার্চ বাটনে গিয়ে লিখুন "Jupyter Notebook"। আমার ধারণা পুরোটা লিখতে হবে না। যেমন আমি শুধুমাত্র "J" লিখলেই পুরোটা চলে আসে। হয়তোবা আমার পিসিতে ওই আদ্যক্ষর দিয়ে কোন ডেস্কটপ অ্যাপ নেই। আপনাদেরও থাকার কথা নয়।

মনে রাখবেন, এই বইয়ের পুরো কাজ করবো এই জুপিটার নোটবুকে। পুরো কাজ। এটা জানতে হবে।

৬. প্রথমবারের মতো জুপিটার নোটবুক চালু হতে একটু সময় নিতে পারে। এটা আসলে একটা ক্লায়েন্ট সার্ভার অ্যাপ। পেছনে একটা ওয়েব সার্ভার (দুই প্রসেসের কার্নাল আর্কিটেকচার) চলছে নোটবুক সার্ভার হিসেবে। আপনি চাইলে রিমোট থেকেও কাজ করতে পারেন সামান্য কনফিগারেশন পাল্টে।

৭. আমাদের নোটবুক চালু হবে ওয়েব ব্রাউজারে। http://localhost:8888 অ্যাড্রেস নিয়ে। নিচের ছবিটা দেখুন। অন্যদিকে দেখবো না এখন। সবচেয়ে ডানে গিয়ে "নিউ" বাটনে চাপ দিলেই চলে আসবে "পাইথন", আমরা একটা পাইথনে নোটবুক খুলবো।

জুপিটার নোটবুক, ডানে "নিউ" বাটনে ক্লিক করুন। "পাইথন" চলে আসবে।
"পাইথন ৩" তে ক্লিক করে নতুন নোটবুক চালু করুন।

৮. নোটবুক চালু করলে নিচের ছবির মতো একটা ইন্টারফেস চলে আসবে। "ইন" সেলের মধ্যে লিখবো আমাদের কোড, মার্কআপ ল্যাঙ্গুয়েজ পছন্দমতো।

যা লিখতে চাইবেন, তার আগে সিলেক্ট করে নিতে হবে কি ধরণের (কোড/মার্কআপ) জিনিস লিখবেন

৯. জুপিটার নোটবুক এর সব মেন্যুগুলোর নাম দেখলে মাইক্রোসফট ওয়ার্ড এর কথা মনে পড়বে। এখানে দুটো মেন্যু হয়তোবা নতুন। একটা হচ্ছে “সেল” আরেকটা “কার্নাল”। পুরো জুপিটার নোটবুকে আমরা কাজ করব “সেল” দিয়ে। একেকটা “সেল” হচ্ছে আমাদের কাজের মানে লেখার জায়গা। ওই জায়গাগুলোতে আমরা কোড অথবা বোঝানোর জন্য মার্কআপ ল্যাংগুয়েজ ব্যবহার করতে পারি। ছবি দেখুন, In [ ] দিয়ে শুরু হয়েছে একেকটা সেল। সবুজ রঙের বার দেয়া। ওখানেই লিখতে হবে আমাদের। এই “সেল” এ যাই লিখব সেটাই নোটবুক কার্নেলের মাধ্যমে একজিকিউট হয়ে আসবে।

তার মানে, “সেল” হচ্ছে নোটবুক এর ভেতরে একটা লেখার জায়গা, যা আমাদের কমান্ডগুলো পাঠায় নোটবুকের “কার্নাল” এ।

“কার্নাল” হচ্ছে নোটবুকের “কম্পিউটেশনাল ইঞ্জিন” যা আমাদের নোটবুক ডকুমেন্টের কোডকে চালায়। ভেতর থেকে। নোটবুকের হৃদয় হচ্ছে এই “কার্নাল”।

১০. তবে আমাদের কাজের জন্য “সেল” এর কাজ জানা উচিত। উপরের ছবি দেখুন। “কোড” ড্রপডাউন মেনুতে চারটা অপশন আছে। এই মুহূর্তে আমরা প্রথম দুটি ব্যবহার করব। প্রথমটা “কোড” সেল, পরেরটা “মার্কডাউন” সেল।

১১. “কোড” সেল সিলেক্ট করে আমরা যখন কোন কিছু লিখে “রান” কমান্ড চাপবো, তখন ওটা সরাসরি চলে যাবে নোটবুকের কার্নাল এ। কিবোর্ডে “কন্ট্রোল + এন্টার” একসাথে চাপলেও রান হয়ে যাবে। আউটপুট ফিরে আসবে পরের লাইনে। পরের ছবিটি দেখুন।

১২. আমরা যখন “মার্কডাউন” সেল সিলেক্ট করে কোন কিছু লিখব, তখন সেটা “রান” করলে ফিরে আসবে মার্কডাউন ল্যাঙ্গুয়েজে। এটা ব্যবহার করব কমেন্ট আকারে বিভিন্ন জিনিস লেখার জন্য। এখানে ছবিটি দেখুন।

"কোড" আর "মার্কডাউন" ব্যবহার করে জুপিটার নোটবুকে লেখা

আমার একটা অনুরোধ থাকবে সবার জন্য। এই জুপিটার নোটবুক নিয়ে মনের ইচ্ছে মতো কিবোর্ড চাপাচাপি করুন। কিবোর্ড এ চাপাচাপি করলে কম্পিউটার নষ্ট হয় না। মানুষ শেখে যখন সে নিজের মতো করে খোঁচাখুঁচি করে জানতে চায়। আমি অনুরোধ করব জুপিটার নোটবুকটাকে ইচ্ছেমতো ব্যবহার করতে। কাজ শেষে ফাইল মেন্যু থেকে নোটবুকটাকে সেভ করুন ipynb এক্সটেনশন দিয়ে। এটাই ডিফল্ট এক্সটেনশন। ফাইলটাকে আপলোড করুন গিটহাবে। অথবা পাঠিয়ে দিন বন্ধুকে। সেও দেখতে পারবে আপনি কিভাবে কাজ করেছেন।

আসলে এই ফাইল "জেসন" ফরম্যাটে লিখে থাকে। আপনি "এডিট" মেন্যু থেকে "এডিট নোটবুক মেটাডাটা" খুললেই বুঝবেন কি আছে সেখানে।