محیط ژوپیتر نوت بوک زیباست. کار با آن سادهتر است. و میتوان نتیجه هر کد، تصویر و یا محاسبهای را، بلافاصله در همان صفحه مشاهده کرد.
اما دلایل محبوبیت ژوپیتر، فراتر از این حرفاست. کاربردهای فراوان آن در هوش مصنوعی باعث میشود که کار بلدان آن، میزان درآمدهای بالایی را تجربه کنند.
در ادامه با ژوپیتر پایتون، ژوپیتر لب، ژوپیتر نوت بوک، ژوپیتر هاب و سایر ابزارها و امکانات محیط ژوپیتر آشنا خواهیم شد. با ابر فردوسی همراه باشید:
فهرست مطالب
- نوت بوک چیست؟
- پروژه ژوپیتر چیست؟
- تاریخچه ژوپیتر نوت بوک چیست؟ ژوپیتر پایتون چیست؟
- تفاوت ژوپیتر نوت بوک با IDE و Text Editor
- مزیتهای استفاده از ژوپیتر نوت بوک چیست؟
- استفاده از سرور ژوپیتر ابر فردوسی
نوت بوک چیست؟
دونالد کنوث (Donald Knuth) پدر علم آنالیز الگوریتم و خالق زبان TEX، افزونه LATEX و کتاب مشهور The Art of Computer Programming است.
وی در این کتاب که در سال 1984 به چاپ رسید، برای اولین بار ایده برنامهنویسی ادیبانه و یا همان Literate Programming را شرح داد.
ایده کنوث شکلگیری یک زبان برنامهنویسی قابل درک برای انسان بود. یعنی شیوه گفتار تحمیل شده از کامپیوتر، جای خود را به زبانی قابل درک برای انسانها بدهد.
این ایده جذاب از سال 2010 به بعد، به واسطه نوت بوک های محاسباتی، به ویژه در علم داده، تجدید حیات مهمی را شاهد بود. برخی از این نوتبوکها شامل موارد زیر هستند:
- نوت بوک های ژوپیتر
- Mathematica
- Databricks
- Apache Zeppelin
- نوت بوک های سیج
پروژه ژوپیتر چیست؟
قبل از پرداختن به پاسخ سوال ژوپیتر نوت بوک چیست، بد نیست بدانیم که سایت رسمی ژوپیتر، خود را در یک جمله چگونه معرفی کرده است:
ژوپیتر یک محیط توسعه تعاملی مبتنی بر وب رایگان، منبع باز و استاندارد باز است که از تمام زبانهای برنامهنویسی پشتیبانی میکند.
بنابراین ژوپیتر (Jupyter) یک محیط کدنویسی و توسعه است که از آن برای اجرای کدها و دیگر عناوین زبانهای برنامهنویسی استفاده میشود.
ژوپیتر در محاسبات علم داده، آمار، یادگیری ماشین، و محاسبات پیچیده ریاضی بیشترین کاربرد را دارد. این دادهها بر روی یک سرور اجرا و از طریق یک مرورگر در دسترسند.
این نرمافزار در سالهای اخیر، به دلیل انعطاف پذیری، وب سرویس بودن، سهولت در استفاده و امکان دسترسی و تعامل بالا بسیار محبوب شده است.
در واقع پروژه قدرتمند ژوپیتر، روش کار برنامهنویسان و دانشمندان داده را متحول کرده است. در ادامه با 4 محیط مختلف ژوپیتر بیشتر آشنا خواهیم شد:
1. ژوپیتر نوت بوک چیست:
میتوان ژوپیتر نوت بوک را یک دفترچه یادداشت مجازی دانست. این دفترچه از انواع مختلفی از محتوا پشتیبانی میکند و آنها را در سلولهای خود جای میدهد.
یعنی هر سلول Jupyter notebooks میتواند حاوی یکی از این موارد، شامل: کد، خروجی کد، جدول، نمودار، لینکها، تصاویر، متن “Markdown” و یا انواع دیگری از رسانهها باشد.
با ژوپیتر نوت بوک میتوان اسناد مختلفی از قبیل کد زنده (Live code)، معادلات (Equations)، تجسمها (Visualizations) و متن روایتها (Narrative text) را ایجاد و اشتراکگذاری کرد.
نکته حائز اهمیت در این محیط این است که میتوان نتیجه هر کد را در سلول بعدی ران کرد و بدون نیاز به رفتن به صفحه دیگر، اشکالات و شمایل آن را همانجا دید و سنجید.
رابط کاربری ژوپیتر کد، داده و نتایج را به روشی تعاملی به هم متصل میکند. این کار باعث میشود کاربران بتوانند دادههای فراوانی را آزمایش و فرضیههای مختلف را بررسی کنند.
2. ژوپیتر لب چیست:
از ژوپیترلب (JupyterLab) به عنوان نسل بعدی ژوپیتر نوت بوک یاد میشود. زیرا تجربهای مشابه IDE ها را به کاربران ارائه میدهد.
با این تفاوت که IDE مخفف عبارت Integrated Development Environment است. اما ژوپیتر لب یک Interactive Development Environment میباشد.
یعنی به کاربران این امکان را میدهد که به جای مدیریت ابزارهای پراکندهای که برای علم داده مورد نیاز هستند، تنها از JupyterLab استفاده نمایند.
محیط ژوپیترلب ماژولار است. یعنی امکان کم و زیاد کردن پنجرههای مختلف با کاربردهای متفاوت، و ترکیب کردن آنها با یکدیگر را فراهم میآورد.
این رابط انعطاف پذیر از قابلیتهایی نظیر همگامسازی چندین تب، مدیریت فایل با کشیدن و رها کردن، دسترسی به ترمینال یکپارچه و پشتیبانی از انواع پسوندها پشتیبانی میکند.
JupyterLab تمام بلوکهای سازنده ژوپیتر نوت بوک از قبیل نوت بوکها، ترمینالها، ویرایشگر متن، مرورگر فایل، خروجیهای غنی و غیره را دارد و به زودی جایگزین آن خواهد شد.
3. ژوپیتر هاب چیست:
JupyterHub قدرت نوت بوک ها را به گروهی از کاربرانی که عضو یک تیم هستند، ارائه میدهد. ژوپیترهاب قابل تنظیم و مقیاس پذیر است و کار تیمی را آسان میکند.
این ابزار به کاربران امکان دسترسی به محیطها و منابع محاسباتی را میدهد، بدون اینکه نیاز باشد آنها را با وظایفی از قبیل نصب و نگهداری تحت فشار قرار دهد.
JupyterHub در فضای ابری یا بر روی یک سختافزار شخصی اجرا میشود. و ارائه یک محیط علم داده از پیش پیکربندی شده را برای هر کاربر در جهان ممکن میسازد.
مدیریت احراز هویت با PAM، OAuth و غیره، محیط کانتینر Docker و Kubernetes پسند، جداسازی فرآیندهای کاربر و… از جمله ویژگیهای محیط ژوپیتر هاب میباشند.
4. ژوپیتر وویلا چیست:
محیط ژوپیتر وویلا یا به تنهایی وویلا (Voilà) را میتوان بنا به تعریف سایت ژوپیتر، برای به اشتراکگذاری نتایج در نظر گرفت.
Voilà با تبدیل نوتبوکها به برنامههای وب امن و مستقلی که میتوان آنها را سفارشی کرد و به اشتراک گذاشت، به ارتباط بینش کمک میکند.
تاریخچه ژوپیتر نوت بوک چیست؟ ژوپیتر پایتون چیست؟
فرناندو پرز در سال 2010 میلادی شروع به توسعه محیط IPython Notebook کرد. وی به همین دلیل در سال 2012 از بنیاد نرمافزارهای آزاد جایزه گرفت.
پرز در سال 2014 تصمیم گرفت بخش نوت بوک را از پروژه IPython Notebook جدا کند و آن را با نام تجاری Jupyter Project راهی بازار کند.
فرق این محصول با محصول قبلی در این است که تنها از کرنل پایتون پشیتیبانی نمیکند. بلکه امروزه جوپیتر نوت بوک تقریبا تمام کرنلها را ران میکند.
در ابتدا پروژه ژوپیتر تنها از سه کرنل یا زبان Julia، Python و R پشیتیبانی میکرد. به همین دلیل نیز نام آن از ترکیب همین سه اسم به وجود آمد.
اما به تدریج همانگونه که در لگو آن مشخص است، زبانهای مختلفی همچون جاوا، متلب، PHP ،SPARK، سی شارپ، اف شارپ و… را نیز در خود جای داده است.
همچنین یکی دیگر از دلایل این نامگذاری مربوط به بزرگداشت گالیله و تلاشهای آن برای شناخت سیاره ژوپیتر یا مشتری و قمرهای آن است.
به طور کلی هدف از توسعه ژوپیتر نوت بوک این بود که جامعه دانشمندان، به یک روش تعاملی و مشارکتی وسیعتر، برای کار با کدها و دادهها نیاز داشت.
زیرا محیطهای برنامهنویسی سنتی برای کار با دادههای بزرگ مناسب نبودند. همچنین فاقد قدرت ترکیب کد با توضیحات متن و تجسم آنها بودند.
منظور از محیطهای برنامهنویسی سنتی IDE ها (محیط توسعه یکپارچه) و Text Editor ها میباشند. در ادامه با مزیتهای ژوپیتر نوت بوک ها آشنا خواهیم شد.
تفاوت ژوپیتر نوت بوک با IDE و Text Editor:
برای توسعه کد محیطهای فراوانی وجود دارند. از یک نوت پد ساده تا یک IDE یا Text Editor ها، همگی برای کدنویسی و برنامه نویسی در خدمتند.
اما محیط نوت بوکهایی مانند ژوپیتر، فراتر از تمام اینها عمل میکنند. چرا که میشود با آنها دادهسازی، جدولسازی و مهمتر از همه تصویرسازی کرد.
از طرفی در هر IDE معمولا میتوان یک نوع زبان را اجرا کرد. همچنین از آن فقط برای یکی از حوزههای اپلیکیشن، طراحی وب و… استفاده میشود.
پس برای یک حوزه یا یک زبان دیگر باید یک IDE دیگر را انتخاب نمود. اما مشکلی که وجود دارد این است که نصب و اجرا یک IDE نیاز به مقدار زیادی رم و CPU دارد.
از طرفی Text Editor ها نیاز به حافظه و رم کمتری نسبت به IDE ها دارند. اما این حجم کمتر به این دلیل است که بسیاری از امکانات IDE ها را ندارند.
در واقع IDE ها یک پک کامل از امکانات را پیشکش برنامه نویس میکنند. ولی Text Editor ها صرفا ملزومات را ارائه میکنند و برای سایر نیازها باید پلاگین نصب شود.
اما ژوپیتر نوت بوک به دلیل وب سرویس بودنش، منابع کمی از سیستم را درگیر میکند. همچنین مانند Text Editorها ماژولار است.
تفاوت ماژولار بودن این دو در این است که اکثر پلاگینهای مورد نیاز در ژوپیتر وجود دارند و نیاز به گشتن نیست. اما برای Text Editorها باید گشت و گاهی هم پیدا نمیشوند.
و اما مهمترین چیزی که ژوپیتر نوت بوک از آن پشتیبانی میکند تجسم سازی دادهها است که آن دو محیط دیگر فاقد این امکان هستند.
منظور از تجسم سازی ساختن الگوریتمها و تصاویر از روی دادهها است. در ادامه یک مثال از تجسم سازی به وسیله ژوپیتر نوت بوک آمده است:

مزیتهای استفاده از ژوپیتر نوت بوک چیست؟
عکس بالا کاملا گویای مزایای ژوپیتر نوت بوک هست. فضای روشن، گرافیک جذاب، تجسمسازی و وجود یک سلول برای کدنویسی (In) و سلولی دیگر برای نمایش نتیجه (Out).
با این حال ویژگی های ژوپیتر نوت بوک که گاها به آن ژوپیتر پایتون نیز میگویند، محدود به این موارد نیست. در ادامه به صورت خلاصه به برخی دیگر از مهمترین مزایای پروژه ژوپیتر اشاره کردهایم:
ویژگیهای ژوپیتر نوت بوک چیست:
- هزینه مسئله است. پروژه ژوپیتر قول داده است که تا همیشه رایگان بماند.
- نوت بوکها را میتوان با استفاده از ایمیل، Dropbox، GitHub و Jupyter Notebook Viewer اشتراکگذاری کرد.
- میتوان انواع خروجیهای HTML، تصویر، ویدئو، زبان لاتک و انواع MIMEهای سفارشی تولید کرد.
- میتوان از ابزارهای کلان داده مانند Apache Spark از پایتون، R و اسکالا استفاده کرد. و همان داده ها را با پانداها، scikit-learn، ggplot2 و TensorFlow کاوش کرد.
- محیط ژوپیتر زیباست و انواع تم انتخابی دارد.
- امکان اجرا و تکرار و آزمایش کدها در آن ممکن است. زیرا همان زیر نتیجه معلوم میگردد.
- علاوه بر تحقیق، محل خوبی برای تدریس زبانهای برنامه نویسی است.
- با ابزار Nbconvert میتوان خروجیهای متعددی در فرمت PDF، TEX، HTML و… گرفت.
- با ابزار nbviewer میتوان نوت بوک های ژوپیتر را به صورت آنلاین بدون نیاز به نصب بر روی دستگاه محلی مشاهده کرد.
- امکان استفاده از MarkDown برای اموراتی فراتر از کامنت نویسی دارد.
- تحت وب بودن آن منجر به عدم وابستگی به فایلها و سیستم عامل خانگی میشود.
- پایداری و مقیاسپذیری بالای آن برای کسب وکارهایی با کاربران متعدد مثال زدنی است.
- به تیمها قدرت همکاری، اشتراک گذاری و استقرار سریع میدهد.
- امکان ذخیرهسازی و اشتراکگذاری نوت بوکها تحت عنوان فایلهای متنی ساختار یافته با فرمت JSON.
- کد، متن، تصاویر، فیلم، انیمیشن، نمودار، نقشه اشکال معادلات ریاضی، تعاملات و رابطهای کاربری گرافیکی همه در یک سند گردآوی میشوند.
- معماری مستقل از زبان آن، امکان نگارش هر کرنلی با هر زبانی را میسر میکند.
- امکان نگارش دستورات جادویی (Magic Commands) و تسهیل محاسبات تعاملی.
استفاده از ژوپیتر نوت بوک ابر فردوسی
استفاده از آناکوندا برای نصب و راه اندازی ژوپیتر نوت بوک راه رایجی است. اما راههای سادهتری از قبیل استفاده از رایانش ابری نیز وجود دارد که اصطلاحا به آن ژوپیتر آنلاین میگویند.
در حال حاضر امکان استفاده از ژوپیتر لب، جدیدترین محیط توسعه تعاملی مبتنی بر وب، در ابر فردوسی فراهم است. در ادامه برخی از دلایل استفاده از ابر فردوسی را شرح دادهایم:
1- امکان انتخاب نوع کارت گرافیک
یکی از ویژگیهای منحصر بهفرد در ژوپیتر لب ابر فردوسی این است که کاربر میتواند با توجه به نوع نیاز خود، نوع کارت گرافیک مورد نظرش را انتخاب نماید:
( RTX 2080i (11GB
24GB)RTX 3090
(32GB) Tesla v100s
Tesla a100 (40GB
همچنین کتابخانههای ژوپیتر لب از جمله Tensor flow / Pytorch / Pure python در محیط ابر فردوسی فعالند.
2-عدم وجود محدودیت زمانی
یکی از مهمترین ویژگیهای کار با ژوپیتر لب ابر فردوسی، عدم وجود محدودیت در زمان استفاده است.
یعنی بر خلاف سایر ارائهدهندگان، کاربران ابر فردوسی قادرند بدون محدودیت زمانی از محیط ژوپیتر لب بهرهبرداری کنند.
3- قیمت مقرون بهصرفه
ویژگی حائز اهمیت دیگر خدمات ابر فردوسی، قیمت پایین و مقرون بهصرفه آنهاست. خدمات این شرکت به صورت PAY AS YOU GO محاسبه میگردد.
این بدان معناست که کاربران تنها به میزان مصرف واقعی خود از منابع، پول پرداخت مینماید.
4- انتخاب میزان منابع پردازشی
و اما انتخاب بسته دلخواه در ابر فردوسی بر عهده خود کاربر است. یعنی هر فرد قادر است مقدار CPU، RAM، هارد و سایر منابع پردازشی دلخواه خود را انتخاب نماید.
در راستای یافتن پاسخی مناسب برای سوال ژوپیتر نوت بوک چیست، به سرویس ژوپیترلب ابر فردوسی سر بزنید. بدین منظور بر روی لینک زیر کلیک نمایید:
نرم افزار متلب چیست؟
پلتفرم متلب کار مهندسان و دانشمندانی که به خوبی از عهده کد نویسی بر نمیآیند را آسان کرده است.
نرم افزار انسیس چیست؟
آشنایی با نرمافزار ANSYS میتواند تفاوت زیادی را در میزان درآمد یک مهندس بهوجود آورد. با ابر فردوسی همراه شوید.