بایگانی برچسب: s

استفاده از LLMها بعنوان سیستم‌عامل، آیا با نسل جدیدی از سیستم‌های عامل روبرو خواهیم شد؟

در یکی دو سال گذشته، هوش مصنوعی زایا یا همون Generative AI به شکل عجیب و غریبی رشد پیدا کرده و در تقریبا تمام عرصه‌ها از تولید متن، تصویر، موسیقی و حتی ویدئو و فایل‌های سه‌بعدی، استفاده‌های جالبی ازش شده. همچنین باید گفت که تقریبا حجم بسیار زیادی از این توجه، بخاطر ارائه ناگهانی ChatGPT بود و بعد از اون هم مدل‌های اوپن سورسی مثل لاما (و فرزندانش!).

در دنیای تولید چندرسانه‌ای هم که ناگفته نماند، مدل‌هایی مانند Stable Diffusion یا مانی، تا حد خوبی توجه مردم رو به خودشون جلب کردند و علاوه بر این که مورد توجه مردم عادی بودند، مورد توجه بازی‌سازان، طراحان و … هم قرار گرفتند و این خودش یعنی پذیرش ابزارهای جدید، چه بخواهیم و چه نخواهیم، صورت خواهد گرفت.

اما جای یک چیزی این وسط خالیه، اون هم اینه که «سیستم‌عامل» که شاید قدیمی‌ترین مفهوم زنده در رایانش شخصی بوده، چه تغییراتی رو برای پذیرش ابزارهای هوش مصنوعی، متحمل خواهد شد؟

سیستم‌عامل چیست؟

سیستم‌عامل یک لایه از نرم‌افزارهای سیستمیه که ارتباط بین سخت‌افزار و کاربر رو فراهم می‌کنه. در واقع تصور کنید اگر روی گوشی همراه شما iOS یا اندروید نباشه. یا مثلا لپتاپ و سیستم خانگی شما، مجهز به ویندوز یا مک یا لینوکس نباشه. چه استفاده‌ای ازشون میشه کرد؟ عملا هیچ.

در واقع سیستم‌عامل میشه بستری که ما بتونیم نرم‌افزارهای مختلف مثل فتوشاپ، تلگرام، آفیس، فایرفاکس و … رو اجرا کنیم و به نوعی تسهیل‌گر ارتباط بین نرم‌افزارها با منابع در دسترسشون میشه. حالا که می‌دونیم سیستم‌عامل چیه، یکم اون رو بشکافیم.

سفر به اعماق گنو/لینوکس

احتمالا اسم «لینوکس» یا «گنو/لینوکس» یا «اوبونتو» و امثالهم، به گوشتون خورده، نه؟ اگر از خوانندگان بلاگ من باشید که بیشتر از این‌ها به گوش شما خورده و احتمالا از BSD و Solaris و OpenIndiana و … هم خوندید 😁

گنو/لینوکس یک سیستم‌عامل کامله که از دو بخش تشکیل شده: گنو و لینوکس! حالا گنو چیه و لینوکس چیه؟ با هم بررسی می‌کنیم.

  • لینوکس: یک هسته یا کرنله که در ابتدای دهه ۹۰ میلادی، توسط شخص شخیص لینوس بندیکت تروالدز که در اون زمان ۲۱ سالش بوده، ساخته شده. این هسته سیستم عامل (kernel) وظیفه‌ش مدیریت فرایندها و سخت‌افزاره. در واقع این هسته، میاد می‌شینه وسط سیستم‌عامل و اون تعامل لازم رو با سخت‌افزار و فرایند‌ها برای ما تسهیل می‌کنه.
  • گنو: مجموعه‌ای از ابزارهاست که بعنوان بخشی از جنبش نرم‌افزار آزاد در سال ۱۹۸۳ میلادی به رهبری ریچارد متیو استالمن ساخته شده. گنو، سیستم‌عاملی بود استالمن به عنوان یک اکت اعتراضی نسبت به سیاست‌های AT & T در قبال کد منبع یونیکس، شروع به ساختش کرد.

حالا گنو/لینوکس چیه؟ خیلی ساده بخواهیم بگیم، گنو یک سری ابزارهای مورد نیاز کاربره و در فضای کاربر یا User Space اجرا میشه. اگر دوست دارید بیشتر در موردش بدونید، می‌تونید مستندات گنو و استانداردهای مربوطه رو مطالعه کنید.

ولی خب بذارید یکم ساده‌ترش کنیم. فرض کنیم که ما یک هسته سیستم‌عامل داریم که داره به خوبی و خوشی، با سخت‌افزار ارتباط می‌گیره و کارش رو می‌کنه. اما نیاز داریم که یوزر بتونه از طریقی، فرایندهای مد نظر خودش یا همون «برنامه‌»ها رو اجرا کنه. به همین خاطر نیاز به یک «پوسته» یا shell هم داریم. مثلا گنو، یک ابزار بسیار خوبی داره به نام bash که این کار رو انجام می‌ده.

از طرفی، اصلا وقتی برنامه رو نوشتیم، با چی باید اجراش کنیم؟ اینجا ابزارهایی مثل GNU Binutils خودشون رو نشون میدن. البته لازم به ذکره که با ابزارهایی مثل GNU Compiler Collection یا GCC هم برنامه‌ها رو می‌تونیم بسازیم.

خب الان فهمیدیم که کاربر، نیاز به فضای مختص خودش روی سیستم‌عامل داره. برای این که بتونه برنامه‌ها رو اجرا کنه، بسازه و تغییرشون بده. گذشته از این برای بررسی و پردازش بیشتر داده‌هایی که از شبکه میاد، داده‌هایی که در فرم‌های خاصی مثل تصویر و … داریم و …؛ نیاز داریم که این فضای کاربر رو داشته باشیم.

پس هوش مصنوعی چه؟ از آن نور وارد می‌شود

خب اینجا جا داره که ما بریم و کمی با مفاهیم و مطالب مربوط به هوش مصنوعی آشنا شیم.

چرا که احتمالا شما تا الان دارید پیش خودتون فکر می‌کنید که خب احتمالا این مطلب در مورد یک کلاینته که برای ابزارهای هوش مصنوعی نوشته شه و روی سیستم‌عامل ما نصب شه.

خیلی بی‌راه فکر نمی‌کنید البته، ولی بیایید کمی ابتدا LLMها رو بشناسیم و بعد بریم سراغ این که LLM OS یا «سیستم‌عامل مدل زبانی بزرگ» چطور کار خواهد کرد برامون 🙂

شناخت بهتر LLMها

قبلا در پست مربوط به مارال ۷ میلیارد پارامتری (لینک) و پستی که درش از چیرگی زبان انگلیسی روی دنیای AI شکایت و گله کرده بودم (لینک) در مورد LLMها صحبت کردم. اما بهتره که کمی در موردشون بیشتر با هم بدونیم.

LLM چیست؟

مدل‌های زبانی بزرگ (به انگلیسی Large Language Model) مدل‌ها و ابزارهای مبتنی بر هوش مصنوعی هستن که با تکنیک‌های یادگیری عمیق مثل RLHF یا یادگیری تقویتی با بازخورد انسانی تربیت میشن. در واقع این مدل‌ها یک هدف بیشتر ندارند: بیشترین نزدیکی به زبان آدمیزاد.

یکی از دلایلی که مدل‌هایی مثل GPT-2 یا Bloom زمان خودشون خیلی ترکوندند، این بود که اون موقع بهترین شکل ممکن رو برای تولید زبان داشتند اما خب GPT-3 و LLaMa 3.1 و …؛ به شدت در این زمینه بهتر عمل کردند.

مدل‌های زبانی بزرگ، معمولا اینطوری کار می‌کنند:

همون‌طوری که می‌بینید، کاربر یه محتوایی رو برای LLM فراهم می‌کنه که اینجا گفته recite the first law و بعد مدل، اومده بر اساس داده‌ای که انسان‌ها پیش‌تر بهش دادند، یک سری کلمه پیشنهاد میده. مثلا اینجا، در حال بیان قوانین سه‌گانه رباتیک ایزاک آسیموفه.

اما از این موضوع بگذریم، یک بحث دیگر هم که LLMها به خوبی می‌تونن درکش کنن و این برمی‌گرده به تعداد متغیرهایی که در داده ورودی دیدن، ارتباط معنایی بین کلمات می‌تونه باشه که خب با توجه به این که عمده LLMها در حال حاضر Human Feedback یا بازخورد انسانی در مرحله پیش‌آموزششون دخیله، چیز عجیبی نیست و ناظرین انسانی، بهشون بازخورد لازم رو میدن.

کاربردهای LLMها

کاربردهای LLMها از چیزی که فکر کنید بسیار بیشتره. در حال حاضر بسیاری از پروژه‌هایی که به شکل‌های مختلفی دارند با «متن» سر و کله می‌زنن، به نحوی LLM رو وارد کار و زندگیشون کردند. به همین خاطر هم لازم به ذکره که نمیشه دسته‌بندی خاصی ارائه کرد و چیزی که در ادامه فهرست می‌کنم در واقع بیشترین کاربردهای مدل‌های بزرگه.

  • تولید محتوا برای وبلاگ، وبسایت و MVP
  • تولید محتوا برای ویدئوهای یوتوب و اینستاگرام
  • تولید کد
  • تولید داستان برای بازی‌های رایانه‌ای
  • تولید کدهای SQL
  • و …

همونطوری که می‌بینید، به شدت این عزیزان، در حال استفاده در زمینه‌های مختلفن و خب یکپارچگی این‌ها با سیستم‌های عامل هم خودش یک داستان جداست.

کدام سیستم‌عامل‌ها، به هوش مصنوعی مجهز شدند؟

در حال حاضر مایکروسافت با ارائه Copilot و اپل با ارائه Apple Intelligence تا حد خوبی، هوش مصنوعی رو به سیستم‌های عاملشون آوردند.

همچنین اگر اشتباه نکنم دو سه ماه پیش بود که مایکروسافت ایده‌ای به اسم Copilot+PC رو مطرح کرد که کوپایلت، بیاد و حرکات کاربر رو زیرنظر بگیره و بعد بهش پیشنهاد بده چطور می‌تونه بهتر از کامپیوترش استفاده کنه و خب می‌دونید چه فاجعه حریم‌ خصوصی می‌تونست بشه!

اما در حال حاضر، این که LLMها بتونن سیستم‌عامل رو «کنترل کنن» چیزیه که در حد چندین پروژه آزمایشگاهی مونده و به اون شکل، تجاری‌سازی نشده. چیزی که این همه تا اینجا در موردش خوندید و از اینجا به بعد قراره تازه جذاب باشه :))

رویای کارپاتی: سیستم‌عامل مبتنی بر LLMها

چندی پیش، آندره کارپاتی (که از بزرگان هوش مصنوعی و علوم کامپیوتره) در یوتوب ویدئوی با عنوان مقدمه‌ای بر LLMها منتشر کرد و چیزی حدود یک ساعت در مورد پتانسیل‌های این مدل‌ها، حرف زد و در نهایت ایده LLM OS رو مطرح کرد 🙂

سیستم‌عامل مبتنی بر LLM چطور قراره کار کنه؟

خب بیایید بریم به همون گنو/لینوکس. وقتی شما «ترمینال» رو باز می‌کنید، قراره چه اتفاقی بی‌افته؟ آفرین قراره shell رو ببینید. بعدش چه اتفاقی می‌افته؟ شما شروع می‌کنید به وارد کردن دستورات سیستم‌عامل. مثلا با دستور ls می‌تونید بیایید و محتویات یک پوشه رو ببینید.

حالا فرض کنید جای این که دستورات ترمینال لینوکس رو حفظ کنید، به فارسی یا انگلیسی، برای کامپیوترتون توضیح بدید. این دقیقا میشه کاری که LLM قراره در سیستم‌عامل برای ما انجام بده.

چطور این اتفاق می‌افته؟ در اکثر زبان‌های برنامه‌نویسی ما قادر هستیم که از subprocessها استفاده کنیم. یعنی با کمک subprocessها و LLM می‌تونیم اینطوری کار رو پیش ببریم:

  • شما به سیستم‌عامل می‌گید که «برنامه X رو باز کن»
  • سیستم‌عامل از طریق یک رابط متنی یا صوتی، این دستور رو از شما می‌گیره و به LLM ارسال می‌کنه.
  • حالا LLM طوری تنظیم شده که اون رو به یک subprocess تبدیل کنه و اجراش کنه، کد مربوطه رو تولید و اجرا می‌کنه.
  • بعد از اجرا، برنامه X اجرا میشه (اونطوری که ازش خواستید) و نتیجه توسط LLM به شما گفته میشه.

خیلی دقیق بخواهید بهش نگاه کنید، میشه شبیه چیزی مثل Jarvis در فیلم‌های Iron Man یا حتی «سامانتا» در Her. حتی میشه گفت تا حد خوبی شبیه The Machine در سریال Person of Interest هم هست.

چالش‌های LLM OS

اما این ایده هم مثل سایر ایده‌های هوش مصنوعی، خالی از ایراد و چالش نیست. چندتا از چالش‌های بزرگش رو با هم بررسی کنیم:

  • LLM های قابل اجرا روی سیستم‌های شخصی معمولا خوب نیستن. خوب هم باشند معمولا به شدت کُند هستند.
  • LLMهای خوب، عمدتا باید از طریق وب در دسترس باشند.
  • این که افسار کامپیوتر رو بدیم دست یک موجودیت آنلاین، کمی با ایده حریم خصوصی در تضاده، بخصوص اگر بخواهیم این پروژه رو مبتنی بر لینوکس یا BSD پیش ببریم.

همین سه چالش کافیه تا فعلا چنین چیزی رو به درستی نتونیم داشته باشیم. با این که تلاش‌هایی هم در موردش شده.

جمع‌بندی

در نهایت باید گفت که ما کم کم به سمتی می‌ریم که کل «رابط کاربری» ما خلاصه بشه در «زبان». یعنی عمده رابط‌های کاربری از ما متن یا صدا بگیرند و تبدیلش کنن به کارهایی که ازشون خواستیم و خب این اتفاق خوبی می‌تونه باشه.

و خب با ظهور LLMها و پیش‌رفت زیرساخت‌های سخت‌افزاری، این امر با سرعت بیشتری در حال به وقوع پیوستنه و شما احتمالا تا چند سال دیگر، بتونید توزیعی از لینوکس رو نصب کنید که چنین امکانی در اختیارتون بذاره 🙂 یا روی مک و آیفونتون چنین امکانی داشته باشید.

در کل، پیشرفت جامعه بشری به کمک AI انتهای جالبی خواهد داشت، البته به شرط این که براش انتهایی بشه متصور شد!

موفق و خندون باشید.

Share

پس از چهار سال – ناگفته‌هایی از تیرماه ۹۹ و انجمن نام

در تابستان سال ۹۹ و در بحبوحه همه‌گیری (یا شاید بهتر باشه بگیم دنیاگیری) بیماری کووید-۱۹، اتفاقات جالبی در دنیای نرم‌افزار آزاد و متن‌باز ایران رخ داد. این اتفاقات، شامل تشکیل یک بنیاد مردم نهاد، انتخابات و مجمع اون و همچنین حواشی ایجادشده در این موضوع بود که شاید باورتون نشه ولی در عرض شاید ۴۸ ساعت اکثر این اتفاقات رخ داد.

برای این که بتونید بهتر با این ماجرا آشنا بشید، اول بهتره این مطلب رو بخونید (خوندن تک‌تک مطالب لینک شده هم توصیه میشه) و بعد برگردید اینجا به بلاگ من.

به جهت رعایت انصاف، من از کمی قبل از تیر ۹۹ شروع به بیان ماجرا می‌کنم و سپس به تیر ۹۹ می‌رسم.

اعلام وجود انجمن نام (نرم‌افزار آزاد و متن‌باز)

من شخصا از سال ۸۹ کاربر فروم اوبونتو بودم و از سال ۹۱ به صورت رسمی در جامعه نرم‌افزار آزاد فعال بودم. عمده فعالیت من با پروژه جبیر (+، +، +) شناخته میشه و احتمالا می‌دونید که جامعه هم برخورد درستی با این پروژه نداشته (+).

اما به قولی، باید از افراد و اتفاقات گذشته گذر کرد و رفت سراغ اتفاقات جدیدتر و برای من شخصا، بحث انجمن نام چنین چیزی بود. این رو هم به شما بگم که از همون سال ۹۰-۹۱ من زمزمه‌هایی می‌شنیدم از این که یک موجودیت «نزدیک به دولت» برای نرم‌افزار آزاد باید وجود داشته باشه و از دل خود جامعه هم بیرون آمده باشه و این حرف‌ها.

اما این موضوع تا سال ۹۸ ادامه داشت. دقیقا در آخرین جلسه لاگ تهران پیش از قرنطینه و حبس خانگی کرونا، دانیال بهزادی عزیز – که چهره و نام شناخته‌شده نرم‌افزار آزاد ایران هستند – اومد و انجمن رو معرفی کرد. در همون جلسه افرادی بودند که خب گفتند به این دلیل و اون دلیل دوست ندارند چنین موجودیتی باشه. یک عده هم گفتند که خب باشه، ما نیستیم. یک عده هم گفتن باشه، ما هم هستیم. تقریبا برخورد درست و نرمالی که با هر اتفاقی باید رخ بده، رخ داد.

این بحث تا حد زیادی مسکوت موند و ادامه‌دار نشد (بحث کرونا هم پیش آمد قاعدتا و این خودش یک نکته مهم در این بحث‌هاست). اما خب در سال ۹۹ اعلامیه‌های انجمن مجدد منتشر شدند…

اعلام انجمن برای مجمع

در سال ۹۹ از حدود اردیبهشت‌ماه، اعلامیه‌هایی از سمت انجمن می‌آمد که از افراد حاضر در جامعه میخواست برای شرکت در مجمع و همچنین دست گرفتن کنترل مجمع، اقدام کنند.

در واقع شرایط کاندیداتوری هم بسیار ساده بود. شما کافی بود یک شخص زنده بالای ۱۸ سال و دارای تابعیت ایران به همراه سابقه فعالیت در نرم‌افزار آزاد می‌بودید. در واقع شاید راحت‌ترین روش کاندیداتوری 🙂

حتی یادمه که تا قبل از روز مجمع، در مورد وعده وعیدهای کاندیداها – که من هم یکیشون بودم – چیزی پرسیده نشد…

روز مجمع

روز مجمع، همه ما در ساختمان مربوطه جمع شدیم. چه افرادی که نامزد شرکت در انتخابات انجمن نام بودند، چه افرادی که خودشون رو متعلق به نرم‌افزار آزاد می‌دونستند و میخواستند اون روز در رای‌گیری شرکت کنند و در عین حال، نظرات و وعده‌های کاندیداها رو بشنوند.

و نکته جالب‌تر، حضور فعال دوست عزیزمان آقای مصطفی آهنگرها از خارج از کشور و به صورت برخط در مجمع بود، در حالی که خیلی از افرادی که گفته بودند برخط حضور دارند، حتی زحمت این که در نشست برخطی که اون روز خاص برای این منظور تهیه شده بود شرکت کنند رو به خودشون نداده بودند.

حالا بگذریم، رای‌گیری انجام شد. رای‌گیری جالب، منصفانه و از قضا درستی هم بود و پس از این رای‌گیری، این افراد به عضویت هیئت‌مدیره انجمن نام درآمدند:

  • احمد حقیقی
  • محمدرضا رازیان
  • الهام حصارکی
  • محمدرضا حقیری
  • علیرضا فریدونی
  • دانیال بهزادی
  • و چند تن دیگر از دوستان که حضور ذهن از نامشون پس از چهارسال ندارم و ازشون عذرخواهم.

پس از جلسه، تقریبا تمامی حضار اون جلسه مجمع به فضای سبزی پشت آن ساختمان رفتیم و راهبر اون جلسه فضای آزاد هم دوست عزیزمان «یه انقلابی» بود و در مورد دغدغه‌های خودش و اشخاص دیگر در مورد نرم‌افزار آزاد و متن‌باز، به ما گفت. یادمه که کمی صحبت شد، در مورد اهداف انجمن و حرف‌هایی که زدیم و … و بعدش خداحافظی کردیم. و اینجا شد شروعی بر یک پایان 🙂

حواشی آن روز پرماجرا

پس از این که خداحافظی کردیم، به خانه آمدیم و چند ساعتی گذشت. پس از چند ساعت، شبکه اجتماعی ایکس (پیش‌تر توییتر) رو باز کردم و دیدم که چند توییت، اشاره به نام من و پروژه جبیر داره.

بعد از اون، چندین پست و توییت دیگر دیدم که اشاره به موضوعی مانند «احتمال رانت» یا «رنگ کردن پروژه‌های اوپن سورس به نام ملی» یا «سوء استفاده از جامعه» و … و بستن این انگ‌ها به ما! و نکته جالب‌تر این که بسیاری از این افراد، اتکا به محتوای فردی داشتند که ید طولایی در تهدید و اخاذی به کمک پرونده‌سازی و فشار روانی داره و از همه جالب‌تر اینه که پرونده‌های قطوری هم برای خود اون افراد، به سبب بیان عقاید و مواضعشون ساخته بوده.

خلاصه از همه این موارد که گذشتیم، فشار روانی بسیار زیادی به ما وارد شد. یکی از اتفاقاتی که اینجا افتاد این بود که شخص مصطفی آهنگرها، بعنوان شخصی که اصلا در ترکیب هیئت‌مدیره انجمن نبود و صرفا عضوی از این انجمن شده بود (و طبیعتا بخاطر علاقه و حسی که به نرم‌افزار آزاد و متن‌باز داره) بیشترین فشار، توهین و تهمت رو متحمل شد و راستش رو بخواهید حتی هنوز هم با توجه به این که به شدت توسط «جامعه» اذیت میشه، در حال ادامه دادن مسیرشه (و این واقعا باعث میشه شخصا بهش غبطه بخورم).

این حجم توهین، تهمت و فشار کافی نبود انگار و چندتن از افرادی که نرم‌افزار آزاد رو انگار ارثیه اجدادی خودشون می‌دونستند عریضه‌ای نوشتند که اشاره به مطالب کاملا non-existent داشت! و خب با اتکا به نقاط ضعف احساسی مردم و گارد طبیعی مردم نسبت به موجودیت‌های دولتی و نزدیک به دولت؛ حدود ۴۶۰ نفر قانع به امضای آن عریضه شدند. نکته جالب اینه که در کامنت‌های آن عریضه منحوس هم بسیاری فحش داده بودند و بسیاری هم تهدیدهای جانی و … کرده بودند و این هم در نوع خودش جالب بود.

استعفای دست جمعی هیئت‌مدیره

خلاصه پس از تحمل حدود ۴۸ ساعت تنش، ما تصمیم گرفتیم به صورت دست‌جمعی، استعفای خودمون رو از هیئت‌مدیره انجمن نام اعلام کنیم. گرچه این استعفا تا حد زیادی از فشارهای روانی روی ما کاست، اما بگذریم که همچنان بسیاری از ترکش‌های اون سال با ما هست و به نوعی تبدیل به یک اسباب ابراز رذالت توسط عده‌ای شده و هنوز هم یادآوری اون ماجرا برای من شخصا دردناکه 🙂

و این رو هم باید بگم علیرغم کاهش فشارها، معتقدم استعفا خیلی کار درستی نبود (در اون شرایط بهترین کار بود) چرا که در نهایت، چند نفر که اسم‌های آشنا به گوش جامعه هستند برای اداره چنین موجودیتی بهترند یا افرادی که هیچ اسم و رسمی در این جامعه ندارند؟!

سخن آخر با جامعه پیرامون تیر ۹۹ و مسائل مشابه

جامعه عزیز نرم‌افزار آزاد ایران، ما در جامعه کشورمون به قدر کافی با ناملایمی و بی‌رحمی، روبرو هستیم. تقریبا همه ما روزمون رو با اسنپی شروع می‌کنیم که صرفا برای لج‌بازی با پلتفرم اسنپ، کولرش رو روشن نمی‌کنه و از مسیریاب استفاده نمی‌کنه.

با افرادی روبرو هستیم که عامدانه در بانک، بیمه، وزارتخونه‌ها و … کارهامون رو انجام نمیدن. موقع برگشت به خانه دوباره همان سناریوی اسنپ رو شاهدیم.

در واقع جامعه نرم‌افزار آزاد و هرگونه جامعه آلترناتیوی، برای ما پناهگاهی میشه که از شر روزمرگی خلاص بشیم. در عین این که ما در این جامعه هستیم که یاد بگیریم و یاد بدیم. در این جامعه هستیم که علیه انحصار دیجیتال بجنگیم. در این جامعه هستیم که بسیاری از موارد و مواضعی که دانستن آنها برای مردم مهمه رو به گوششون برسونیم.

حالا فرض کنید که این جامعه هم بخواهد همونقدر ناملایم باشد. شخصا تا زمانی که افراد «قدیمی» و «تاثیرگذار» متوجه روش اشتباه خود در این حوزه نباشند، حاضر نیستم خودم رو بخشی از این جامعه بدونم. همونطوری هم که پیش‌تر گفتم، استفاده از مک یا ویندوز، آیفون داشتن، توییتر داشتن و …؛ هیچ کدام دلیلی بر این نیست که به نرم‌افزار آزاد، استالمن و … ارادتی نداشته باشم که اتفاقا ارادتی دوچندان دارم، اما ترجیح فعلا بر فاصله گرفتن از این جامعه است.

Share

مارال‌چت آمد، ربات تلگرامی با مدل مارال هفتاد میلیارد پارامتری

زمستان پارسال، نخستین نسخه آلفای مدل بزرگ زبانی مارال را معرفی کردیم. یک مدل ۷ میلیارد پارامتری مبتنی بر Mistral که روی دیتای فارسی، تنظیم شده و در دسترس شماست. مارال در نسخه‌های اولیه، به شدت ضعیف عمل می‌کرد و خب البته در نسخه‌های اولیه، این موضوع اصلا چیز عجیبی نیست.

اما بعد از چندماه و با عرضه LLaMa 3 در نسخه‌های ۸ و ۷۰ میلیارد پارامتری توسط شرکت متا (فیسبوک سابق)، اوضاع کمی متفاوت شد. این مدل در پایه خودش، درک خوبی از زبان فارسی داره و Fine Tune کردنش روی زبان فارسی، کمی راحتتر شده. گذشته از این، درک بهتری از معنای متون هم داره و در خیلی از وظایف مثل کدنویسی، تولید متن و … به خوبی می‌تونه کمک کنه.

مارال‌چت

نسخه جدید مارال، که روی داده‌های «دنبال کردن دستورالعمل» یا Instruction following آموزش دیده، اسمش «مارال‌چت» بوده و اصولا یک نمونه مشابه ChatGPT به حساب میاد. از اونجایی که در حال حاضر در فاز MVP و Proof of Concept به سر می‌بره، بستر مورد نظر تلگرام انتخاب شد. این ربات در حال حاضر در تلگرام در دسترس شماست.

مارال‌چت، در دو نسخه ساخته شده یکی ۸ میلیاردی و دیگری ۷۰ میلیاردی که در حال حاضر، تصمیم و ترجیح بر آن بوده که مدل مدتی آزمایش بشه و پس از آزمایش، وزن‌های مدل‌ها در اختیار دوستانی که مایل به self hosting مدل هستند، قرار بگیره. به همین دلیل این مدل تا اطلاع ثانوی اوپن سورس نخواهد شد. اخبار انتشار سورس و وزن مدل هم در همین وبلاگ به زودی منتشر میشه.

دسترسی به ربات در تلگرام

برای این که به مارال‌چت دسترسی داشته باشید، فقط کافیه که از این لینک بهش مراجعه کنید. بعد از start زدن، مثل سایر ربات‌ها می‌تونید به سادگی ازش استفاده کنید.

امکانات ربات

ربات در حال حاضر دو قسم امکانات ارائه می‌ده، اول بپردازیم به امکانات پریمیوم یا پولی ربات که شامل اتصال به اینترنت و همچنین ویژن (پردازش تصویر) میشه.

اما امکانات رایگان ربات که در حال حاضر قادر به استفاده ازش هستید شامل این موارد میشه:

  • چت متنی: مانند ChatGPT و Poe و Gemini و … می‌تونید برای ربات پیام متنی ارسال کنید و پاسخ متنی هم دریافت کنید.
  • چت صوتی: اگر به ربات Voice Message ارسال کنید، ربات هم به شما پیام صوتی ارسال می‌کنه و پاسختون رو میده.
  • ساخت تصویر: ربات مارال به کمک پلتفرم هوش مصنوعی مانی، قادر به ساخت تصاویر با کمک هوش مصنوعی هم هست.

پیگیری اخبار مارال‌چت

به جهت پیگیری اخبار و اطلاع‌رسانی‌های مارال‌چت، می‌تونید به کانال اطلاع‌رسانی مارال‌چت در تلگرام بپیوندید. همچنین می‌تونید در گروه بازخوردها هم عضو بشید و بازخوردتون رو نسبت به نحوه پاسخ‌دهی و کیفیت پاسخ‌ها، اعلام کنید.

پروژه‌های بعدی

پروژه‌هایی مثل مانی، موسیقا (لینک پست بلاگ در موردش اینجاست) و مارال‌چت، پروژه‌هایی بودند که بدون تامین زیرساخت توسط اسپانسرهایی چون ایران‌سرور، تولیدشون برای ما غیرممکن بود. پروژه‌های بعدی ما هم عموما قراره در همین فضای هوش مصنوعی زایا و … باشند و خب اخبار خوبی رو در این تابستان، برای شما خواهیم داشت.

سخن آخر

در آخر، باید گفت چندسالی میشه که فضای هوش مصنوعی رو دارم رصد می‌کنم و هربار می‌بینم که چقدر پتانسیل هست و چقدر میشه در صنایع و موضوعات مختلف، کارهای هیجان‌انگیز و به قولی خفن کرد! و خب این موضوع هم به نوبه خود، می‌تونه کار کردن در این حوزه رو جذاب‌تر کنه.

از طرفی، مشخصا هنوز خیلی‌ها use case درستی برای AI در صنایع و مشاغل و صنف خودشون پیدا نکردند و این خودش می‌تونه تا حد زیادی، مشکل‌ساز بشه. اما خب لازم به ذکره که این use caseها معمولا وقتی به بار می‌شینن که ابزارهایی مانند مارال‌چت یا مانی ساخته بشند و افراد بتونن استفاده‌ای در صنعت خودشون برای این موضوعات پیدا کنند. امیدوارم که از مارال‌چت و امکاناتش استفاده کنید و برای شما، مفید واقع بشه 🙂

موفق باشید.

Share

پارچ، روحی تازه در کالبد اکوسیستم گنو/لینوکس ایران

اگر شما هم از «قدیمی»های جامعه نرم‌افزار آزاد و متن‌باز ایران باشید، احتمالا با خیلی از پروژه‌هایی که هدفشان ساخت یک توزیع گنو/لینوکس متناسب با نیاز روز کاربر بوده، آشنایید. چرا که به درازای تاریخ ورود گنو/لینوکس به ایران، تلاش برای ساخت توزیع ایرانیزه‌شده هم بوده.

اما متاسفانه، یک نگاه اجمالی به دیستروواچ (لینک) می‌تونه به ما نشون بده که تمامی این پروژه‌ها در نقطه‌ای متوقف شدند. البته لازم به ذکره که پروژه‌هایی مانند زمین، کاپریس و جبیر هم بودند که متاسفانه در دیستروواچ مدخل مرتبط با خودشان را نتونستن داشته باشن.

اما چند وقت پیش، توجهم به پروژه‌ای جلب شد که اتفاقا کاملا زنده‌ست و خیلی هم خوب داره پیش میره. پروژه‌ای با نام «پارچ‌لینوکس» که در واقع ترکیبی از واژه‌های Persian و Arch Linux می‌تونیم در نظر بگیریم. این ترکیب، موجب ساخت یک اسم بامزه هم شده که به نظرم این خودش می‌تونه تا حد خوبی، ارزش برندینگ خلق کنه برای این محصول. برای دریافت این توزیع و اطلاعات بیشتر می‌تونید به وبسایتش (لینک) مراجعه کنید.

آشنایی اجمالی با آرچ

احتمالا اگر کاربر گنو/لینوکس باشید، اسم آرچ رو به وفور شنیدید. یک توزیع نه‌چندان دوست‌داشتنی که بخاطر مدل عرضه «غلتان» معروفه. البته گذشته از اون، بخاطر این معروفه که همه چی رو «ساده» نگه داشته و از قاعده KISS پیروی می‌کنه.

در واقع، اگر شما در این زمینه تازه‌کار باشید، آرچ رو اصلا و ابدا نمی‌تونید بدون کمک یک حرفه‌ای‌تر، ویدئو یا مستند خاصی نصب کنید. اما خب از طرفی هم آرچ امکانات جالبی داره (مثل AUR) و به نسبت توزیع‌های سنتی‌تر (دبیان مثلا) در بعضی سخت‌افزارها می‌تونه کارکرد بهتری از خودش نشون بده.

یکی از دلایلی که تعداد نسبتا خوبی توزیع مبتنی بر آرچ‌لینوکس داریم، دقیقا همینه. توزیعیه که چیزهای خوبی برای عرضه داره ولی خب در دسترس همه نیست. به همین خاطر هم خیلی از افرادی که بیشتر من و شما با آرچ آشنان، اومدند و توزیع‌هایی ساختند که به ما هم کمک کنه ازش لذت ببریم.

بریم سراغ پارچ!

من به سهراب (سازنده پارچ) قول یک «نقد منصفانه» دادم و خب، اینجا هم می‌ریم که به صورت منصفانه نقدشون کنیم.

اول بگم که با شناختی که از پروژه پیدا کردم، سازندگان توزیع، روی KDE بیشتر مانور دادند و وقت گذاشتن (و البته این به معنای بد بودن سایر نسخه‌ها نیست) و اگر سیستم خوبی دارید، به نظر من بهتره مستقیم برید سراغ این نسخه.

من از اونجایی که میخواستم روی ماشین مجازی تست کنم و بعد به یک لپتاپ قدیمی ببرمش، نسخه XFCE رو دانلود و نصب کردم.

برخوردهای اولیه

پس از این که تصویر ISO پارچ رو بوت کردید، این صفحه به شما نمایش داده میشه:

طرح پس‌زمینه، جذاب و ایرانیه. معمولا خیلی از توزیع‌های مشابه روی این صفحه پس‌زمینه خاصی نمی‌ذارند. پس این هویت بصری، به نظرم تا اینجا یک نقطه قوت برای این توزیع بوده.

پس از این که گزینه اول رو انتخاب کنیم، به این صفحه می‌رسیم:

اینجا برام جالب بود. عموما XFCE در چنین توزیع‌هایی، پنلی به تقلید از ویندوز در پایین صفحه دارند، یا این که نرم‌افزارهایی مثل cairo-dock یا Plank رو پایین صفحه قرار میدند و پنل رو به بالا منتقل می‌کنند (به تقلید از macOS) که خب در اینجا کلا شکل متفاوتی از پنل xfce رو شاهدیم. پنل که گوشه سمت چپ صفحه نمایش قرار گرفته و امکان خوبی برای استفاده از فضای افقی مانیتور فراهم می‌کنه.

مورد بعدی، Welcome Screen جذاب این توزیعه. این هم از مواردیه که در توزیع‌هایی مثل پارچ، خیلی کمتر به چشم میخوره. ولی خب تا اینجا پارچ بسیار فراتر از یه ریمستر ساده از آرچ خودش رو نشون داده.

نصاب

مثل خیلی از توزیع‌های این روزها، پارچ هم از کالامارس برای نصب خودش روی دیسک شما استفاده می‌کنه و خب وقتی لوکیشن شما رو بر اساس IP ایران تشخیص بده، فارسی میشه و سیستم‌عامل هم فارسی نصب می‌کنه.

در نصاب تفاوت خیلی زیادی با سایر توزیع‌ها مشاهده نمی‌کنیم که این هم می‌تونه یک نقطه قوت محسوب بشه. چرا که حس آشنایی برای کاربرانی که از سایر توزیع‌ها میان داره.

به همین خاطر، نماگرفت‌های بیشتری از نصاب اینجا قرار نمی‌دم.

پروسه نصب، حدود ۳-۴ دقیقه طول می‌کشه و بعد از اون به این صفحه می‌رسیم:

و اینجاست که با یک ریبوت، به دنیای پارچ می‌ریم 🙂

تست پارچ پس از نصب

راستش یکم نقدم اینجا قراره تند بشه به چندین دلیل. نخستین دلیل اینه:

وقتی در syslinux که موقع بوت شدن ISO دیدیم اون پس‌زمینه زیبا به چشم میخوره، انتظار داشتم در گراب هم همون شمایل رو ببینم. با توجه به این که VirtualBox دارم انتظار لود شدن کامل plymouth نداشتم (اگر توزیع داشته باشه) ولی انتظار گراب زیباتری رو داشتم. گرچه پس‌زمینه گراب فقط یه عکسه و تغییری در کارکرد سیستم نداره.

اما مشکل اصلی من، بعد از بوت شدن شروع شد. پروسه بوت، کاملا درست طی شد ولی SDDM (مدیر نمایشگر) درست کار نکرد و مجبور شدم با یکم دانش لینوکسی‌ای که داشتم، وارد محیط گرافیکی بشم.

البته نکته خوب اینجاست که این مورد رو سریعا به سازندگان توزیع اطلاع دادم و راه‌حل سریعی براش ارائه دادند و از اون گذشته، در برنامه قرار دادند که در ریلیزهای بعدی این مشکل پیش نیاد. این پشتیبانی جامعه‌محور، برای من جالب و تحسین‌برانگیز بود.

محیط گرافیکی و عملکرد آن

خب، پس از فیکس کردن SDDM چنین صفحه‌ای رو می‌بینیم:

و پس از ورود پسورد، به محیط زیبای XFCE وارد می‌شیم:

برای تست یه سری موارد هم، ترمینال رو باز کردم و GIMP رو روی پارچ نصب کردم و همه‌چی خیلی خوب و روان پیش می‌رفت.

جمع‌بندی

برخلاف خیلی از توزیع‌های جدیدی که هرروز ایجاد می‌شن، پارچ تا حد خیلی خوبی حرف برای گفتن داره. یکی از دلایلش هم اینه که سیستم پایداری خوبی داره و تا الان، خبری از این که سیستم کلا از کار بیفته یا سر نصب بسته‌ها کرش کنه؛ نبوده.

در کل تجربه بسیار خوبی برای من رقم زد، آن هم در ویرچوال باکس مک (که احتمالا می‌دونید بلای عالمه) اما خب من رو داره قلقلک می‌ده که بعنوان سیستم‌عامل اصلی کامپیوتر قدیمی، ازش استفاده کنم.

حتی با توجه به سخت‌افزار لپتاپ قدیمی (پردازشگر i5 نسل چهارم و ۱۶ گیگابایت حافظه) عجیب نیست که نسخه‌های KDE یا GNOME هم بتونم بدون مشکل اجرا کنم. قطعا پس از نصب روی ماشین واقعی هم نقد مجددی بر این توزیع، خواهم نوشت.

در پایان و بعنوان حسن ختام هم باید بگم که مایه خوشحالیه که در شرایطی که هیچ‌کس به فکر جامعه نرم‌افزار آزاد نیست، چنین پروژه‌هایی زنده هستند و به باقی دوستان، امید می‌دن.

موفق و موید باشید.

Share

نصب Phosh روی دبیان

گنوم، چندسال اخیر رو در حال بهبود تجربه کاربریش روی دستگاه‌هایی مثل گوشی‌های همراه و همچنین تبلت‌هاست. در کل، داره برای یک انقلاب در صفحات لمسی آماده میشه. حالا، یک رابط کاربری جالب به اسم Phosh (مخففی برای Phone Shell) ارائه کرده که روی دبیان (بله، حتی دسکتاپ!) قابل نصب و اجراست.

نماگرفت زیر، نماگرفتی از صفحه قفل این رابط کاربریه:

و خب همونطوری که می‌بینید، کار تمیز و نسبتا زیباییه. حالا سوال اینه چطور نصبش کنیم؟ در ادامه مطلب مفصلا توضیح میدم 🙂

نصب قدم به قدم Phosh روی دبیان

گام اول: نصب دبیان

توجه داشته باشید که دبیان مد نظر من اینجا، دبیانیه که شما روی پردازنده‌های x86 نصب می‌کنید. اگر قراره این دبیان روی رزبری پای باشه، یا سیستم شخصی شما صفحه لمسی داره، می‌تونید این قسمت رو نادیده بگیرید. اما من نصب رو روی یک ماشین مجازی با کمک Virtual Box انجام دادم. آموزش نصب دبیان، در اینترنت زیاد پیدا میشه؛ فلذا اینجا حرفی از آموزش نصب به میان نمیارم. فقط حواستون باشه نسخه Net Install دبیان رو دانلود و نصب کنید که چیز اضافه‌ای نداشته باشیم. برای دانلود دبیان هم می‌تونید به وبسایت دبیان مراجعه کنید و آخرین ISO مورد نظر رو بگیرید.

گام دوم: قبل از نصب Phosh چه کنیم؟

خب اولین کاری که قبل از نصب Phosh کنید اینه که با خودتون یک فنجان قهوه یا نوشیدنی خنک داشته باشید چون پروسه نصب ممکنه شما رو خسته و تشنه کنه. بعد از اون، بد نیست که سیستم رو بروزرسانی کنید. بعد از بروزرسانی سیستم‌عامل، نوبتی هم باشه نوبت اینه که مستقیم بریم سر نصب Phosh. اینجا هم جا داره نکته مهم رو متذکر بشم که من phosh رو از مخازن نصب می‌کنم تا صرفا کنجکاوی رفع شده باشه وگرنه روش درست‌تر نصب phosh نصب از کد منبعه (حداقل اگر روی سیستم x86 و به قصد توسعه نصب می‌کنید).

گام سوم: نصب و راه‌اندازی Phosh

خب برای نصب کافیه که دستورات زیر رو اجرا کنیم:

sudo apt install phosh-core

و اگر می‌خواهید Phosh شما مناسب تبلت باشه:

sudo apt install phosh-tablet

و اگر می‌خواهید نسخه کامل Phosh رو نصب کنید، کافیه که دستور رو به این شکل تغییر بدید:

sudo apt install phosh-full

و بعد از نصب حدود یک گیگابایت بسته‌های نرم‌افزاری، کل میزکار گنوم مخصوص صفحات لمسی یا همون Phosh برای شما نصب خواهد شد. پس از نصب، کافیه که اول سرویسش رو فعال و سپس راه‌اندازی کنیم:

sudo systemctl enable phosh
sudo systemctl start phosh

سپس، صفحه قفل (که بالاتر عکسش رو قرار دادم) و بعد از اون، صفحه ورود رمز به شما نمایش داده میشه.

پس از ورود رمز، وارد صفحه منوی اصلی می‌شیم که از اونجا می‌تونیم به نرم‌افزارها و ابزارهای نصب شده روی سیستم دسترسی داشته باشیم:

خب، حالا با خیال راحت می‌تونیم از Phosh استفاده کنیم و لذت ببریم 😁

نکات مهم

از اونجایی که Phosh نرم‌افزار نوپا و نسبتا جدیدیه، لازمه چند نکته مهم رو در موردش متذکر بشم:

  • نسخه خاصی ازش در مخازن دبیان پایدار موجوده که خب برای یک تست دم دستی و ویرچوال‌باکسی، بهترین گزینه بود (حداقل برای من) و خب قاعدتا روی مخازن تستینگ و ناپایدار هم قرارش دادند. موقع نصب، مراقب باشید تا به ضررتون نشه 😁 ترجیحا نصب رو روی یک ماشین مجازی انجام بدید.
  • این میزکار خاص، برای صفحات لمسی خیلی بهینه شده و استفاده ازش با ماوس و کی‌برد تا حد زیادی سخته. اگر صفحه لمسی دارید که می‌تونید به سیستمتون وصلش کنید، احتمالا تجربه کاربری بهتری داشته باشید.
  • بعضی نرم‌افزارها اندازه‌شون برای من مشکل داشت (که احتمالا برمی‌گرده به ویرچوال باکس). اگر در جای دیگری امتحان بشه شاید اندازه صفحه و برنامه‌ها، مناسب باشه.

کدوم توزیع‌ها از Phosh پشتیبانی می‌کنند؟

این هم سوال مهمیه، تا جایی که دیدم PostmarketOS (که برمبنای آلپاین ساخته شده) و همچنین Mobian (که برپایه دبیانه) از این میزکار (یا بهتر بگم پوسته) پشتیبانی می‌کنند. در مورد سایر توزیع‌ها/سیستم‌عامل‌هایی که ممکنه گنوم رو اجرا کنند، ایده‌ای ندارم.

جمع‌بندی

این بلاگ اصلا قرار نبود نوشته شه، ولی امروز از سر خستگی (دقیقا خستگی 😂) جستجو کردم ببینم Phosh چطور می‌تونه روی دبیان دسکتاپ نصب بشه. امتحانش کردم و به نظرم پروژه تمیز، باحال و آینده‌داری اومد. حالا هم تستش کردم و هم یک سری ایده‌ اومد به ذهنم. در آینده، احتمالا بیشتر با Phosh کار کنم و در موردش بنویسم. در آخر هم بابت وقتی که صرف کردید و این مطلب رو خوندید، ازتون تشکر می‌کنم.

Share

[آرشیو مطالب قدیمی] : مصاحبه با محمدرضا حقیری ، مدیر پروژه جبیر

پروزه جبیر ، پروژه ای نو پاست که هدف آن تهیه یک سیستم عامل مناسب برای آموزش لینوکس به کاربران است. پس از بحث با آقای حقیری موضوع مصاحبه و درج آن در سایت برای معرفی پروژه پیش آمد و قرار شد من سوالاتی که حدس می زنم یک کاربر ممکن است در مورد این سیستم عامل داشته باشد را بپرسم و ایشان جواب ها را فرستادند. در ادامه می توانید این مصاحبه را بخوانید.

خودتون رو برای دوستان معرفی کنید.

سلام :) . محمدرضا حقیری هستم متولد نهم خرداد ماه ۱۳۷۵ در شهر تهران و اکنون ساکن بندرعباس. در حال حاضر در دوره متوسطه مشغول تحصیل هستم. از جمله مقامات و رتبه هایی هم که کسب کردم ، میتونم به رتبه سوم رباتیک مدارس راهنمایی استان تهران ، رتبه دوم تولید محتوای آموزشی (نرم افزار) در استان تهران ، رتبه اول مسابقات گرافیک رایانه استان هرمزگان و رتبه ۶۴ المپیاد کامپیوتر کشوری. همچنین طرح سیستم عامل جبیر هم رتبه ۱۲ کشوری جشنواره جوان خوارزمی رو کسب کرده :)

از کی شروع به فعالیت کردید؟

از سال ۱۳۸۹ به فکر طراحی سیستم عامل بودم. البته اون زمان قصد داشتم همه چیز رو خودم بنویسم. ولی با Remastersys آشنایی پیدا کردم اما چون اینترنت پرسرعتی نداشتم ترجیح دادم توزیع لینوکسی رو روی ماشین مجازی پرورش بدم و ازش خروجی بگیرم (ویرچوال باکس چنین کاری رو میکنه) و بعد اسمش رو prp-e خالی گذاشتم. البته prp-e مخفف اسم کلوپ رباتیک مدرسه راهنماییمون بود (پرشیا رایان پرداز شرق). و در سال ۱۳۹۰ که همکار جدیدی در پروژه پیدا شده بود و تیم «ایران هکینتاش» رو تشکیل دادیم ، این توزیع رو پرورش دادیم و خروجی ISO رو با Remastersys تهیه کردیم. اواخر ۹۰ بود که IranHackintoshOS رو بین خودمون رد و بدل کردیم :). کمی کار اون موقع سخت بود چون که دو نفر بودیم و اطلاعات لینوکسی متوسطی داشتیم. اما اینکه توزیعی رو ایجاد کرده بودیم که ویژگی هایی از سیستم عامل مک به ارث برده باشه. اما در نسخه ۱ که به «جبیر او اس» مشهور هست ، سعی کردیم یک توزیع همه جانبه تهیه کنیم .

هدف اصلی پروژه چیست؟

یک سیستم عامل عام منظوره که تمرکز خاصی رو دسکتاپ و کاربران تازه کار داشته باشه. یعنی کاربران بتونند بعد از نصب و کار روی این سیستم عامل بتونند به راحتی روی سایر سیستم عاملها(حتی مک یا ویندوز یا BSD ها و …) سوییچ کنند.

تیم دارید؟ چند نفر هستند؟

بله. تیم ۳ نفره متشکل از من (محمدرضا حقیری) ، رضا باقرزاده و محمد اسماعیلی.

الان در چه وضعیتی هستید؟

بستگی داره منظورت چی باشه :) . خب وقتی از «وضعیت» سوال به میون میاد کمی میشه گفت که وضعیت تیم ، که خدا رو شکر خوبه. وضعیت مالی  و … هم در حد مطلوبی هست که بتونه یک Foundation کوچک رو زنده و سر پا نگه داره.

تا حالا چند تا نسخه منتشر کردین و تو هر کدوم جه پیشرفت هایی بوده؟

نسخه ۱ — ۲۵ فروردین ۹۱ — ویژگی خاصی نداشت.
نسخه ۲ — شهریور ۹۱ — میزکار Legendary UI رو در خود داشت.
نسخه ۳ — آبان ۹۱ — اولین توزیعی که به طور رسمی مبتنی بر گنوم ۳.۶ بود (قبل از Ubuntu GNOME Remix منتشر شد).

چرا جبیر رو با میزکار های مختلف منتشر می کنید و روی یه میزکار تمرکز نمی کنید؟

برای اینکه دوست داریم همه ازش استفاده کنند. مثلا شما توزیعی مثل چاکرا رو ببینید ، حتی الان فقط به ۶۴ بیت محدود شده! این در صورتی هست که جبیر فقط در ۳۲ بیت منتشر میشه و امکان اجرا روی همه سیستم ها رو داره.

چرا یه میزکار برای جبیر نمی سازید و از گنوم شل و xfce و بقیه میزکار ها استفاده می کنید؟

چون توسعه میزکار سخت و هزینه بر و همچنین کار بر هست. مثلا KDE از سال تولد من (۱۹۹۶) متولد شده و الان ۱۷ سال هست که داره توسعه داده میشه :)

خیلی از منتقدان شما ازتون این سوال رو می پرسند که چرا روی یه توزیع مثل اوبونتو کار نمی کنید و یه سیستم عامل جدید ساختین. جواب شما به این دوستان چیه؟

خب این رو از حرفهای قبلی من میشه برداشت کرد. برای اینکه این توزیع نمونه ای هست که کل کامپیوتر -علی الخصوص لینوکس و یونیکس – رو به کاربر آموزش میده .

نظرتون در مورد توزیع های ایرانی مثل آریویس چیه؟

همه توزیع های ایرانی خوب هستند. مخصوصا پارسیکس ، آریوس و زمین. البته پارسیکس و پارسیدورا تقریبا میشه گفت که روند توسعشون خیلی کند هست (مطلبی در وبلاگم هست در موردشون). ولی آریوس که تقریبا همزمان با مینت و زمین هم که توزیع نسبتا مستقل هست خوب و کارامد هستند. گفتم کارامد! راستی کارامد لینوکس هم خوب بود. با این اوصاف هزاران سیستم عامل ایرانی قبل از «قاصدک» بودند ولی نمیدونم چرا عنوان «اولین سیستم عامل ایرانی» رو به خودشون نسبت دادن :))

چرا کاربر باید اوبونتو یا دیگر توزیع های لینوکس رو رها کنه و بیاد سمت جبیر؟

فکر کنم به اندازه کافی روی این مورد در بالا توضیح دادم :)

چه چیز جدیدی رو تصمیم دارید توی جبیر پیاده سازی کنید یا که پیاده سازی کردید , تا منحصر به فرد بشه؟

اول از همه لجندری یو آی ، بعد از اون پروژه های EasyShell و JetGet که اولی یک شل یونیکس و دومی یک رابط متنی برای همه مدیر بسته های یونیکس و لینوکس هست. تا الان Legendary UI پیاده سازی شده.

در مورد بهینه سازی سیستم عامل برای صفحه های لمسی چه کار هایی انجام شده یا انجام خواهد شد؟

Legendary UI گام اول بود تا فضای خالی زیادی رو دسکتاپ ایجاد بشه. بعد از اون روی Plasma Active که شرکت Basyscom و KDE مشترکا منتشرش کردند رو انتخاب کردیم.

فکر نمی کنید جبیر کمی نیاز به تبلیغ داره تا بین کاربران شناخته بشه؟به نظر میرسه آریوس تو این زمینه بهتر از شما نیست؟

 خب آریوس قدیمی تر هست. همچنین در دایرکتوری دیستروواچ موجوده. توزیع های نوپا ابتدا کمی با مقاومت جوامع ، بعد از مدتی کم توجهی و در نهایت توجه آنها مواجه میشند. حتی اگر در فرومهای اوپن سوزه و اوبونتو بچرخید متوجه خواهید شد همه جا همینه.

اگه نکته یا حرفی با خوانندگان دارید بگید.

نکته یا حرف خاصی ندارم :) با تشکر  آرزوی توفیق روز افزون برای همه :)

پیوندهای مرتبط

Share

نصب کتابخانه tensorflow روی Raspberry Pi

حدود بهمن یا اسفند سال ۱۳۹۹ بود که من، یک عدد رزبری پای ۴ مدل B (لینک) خریداری کردم که باهاش یه سری ایده رو عملی کنم. از وقتی که این دستگاه رو خریدم، مدت زیادی تقریبا گذشته اما خب چند هفته اخیر، شدیدا با این دستگاه در حال کشتی گرفتن و تست ایده‌های مختلف هستم. یکی از ایده‌های من پروژه‌ای بود که تا حد زیادی به هوش مصنوعی (و بخصوص tensorflow) نیازمند بود. مشکلی که داشتم این بود که در خود مخازن PyPi ای که روی رزبری پای در دسترسه، هیچ ساخت درستی از tensorflow وجود نداره.

اما خب، نمیشه در دنیای تِک ناامید شد؛ به همین خاطر دنبال راهکار و راه حلی گشتم که بتونم تنسرفلو رو روی رزبری پای داشته باشم. یکم سخت‌تر از حالت عادی (که استفاده از pip بود) شد اما ارزشش رو داشت. چون تونستم بدون مشکل مدلی که مدنظر داشتم رو لود و استفاده کنم. همچنین لازمه ذکر کنم که در این مطلب قراره یاد بگیریم چطور خود تنسرفلو رو نصب کنیم و به TFLite کاری نداریم.

رزبری پای چیه؟

رزبری پای (Raspberry Pi) یک کامپیوتر تک‌برد (SBC یا Single Board Computet) محسوب می‌شه که توسط یک بنیاد غیرانتفاعی به همین اسم در بریتانیا طراحی شده (البته تولیدش مثل عمده محصولات دیگر، در کشور چین انجام میشه). این بردها معمولا یک پردازنده ARM دارند و می‌شه روی اونها سیستم‌عامل نصب کرد. خیلی‌هاشون هم ورودی/خروجی عام‌منظوره (General Purpose Input/Output) یا همون GPIO دارند که می‌تونن رابطی بین این کامپیوتر و قطعات الکترونیکی دیگر باشند.

این کامپیوترهای کوچک – که در ابعاد یک کارت اعتباری ساخته شدند – اسباب‌بازی خوبی برای برنامه‌نویسان و مهندسین کامپیوتر به شمار میان. بسیاری از متخصصین و علاقمندان از رزبری پای استفاده می‌کنن تا ایده‌ها و پروژه‌هاشون رو پیاده‌سازی کنن. البته لازم به ذکره که خیلی‌ها هم حتی محصولاتشون رو برپایه رزبری‌پای توسعه دادند (پس اگر دوست داشتید یکی تهیه کنید و باهاش بازی کنید، درنگ نکنید 😁)

تنسرفلو چیه؟

از اونجایی که این مطلب، در مورد نصب Tensorflow روی رزبری پای بود، لازمه که کمی هم در مورد تنسرفلو توضیح داده بشه. تنسرفلو یک کتابخونه نرم‌افزاری آزاد و متن‌بازه که توسط تیم Google Brain توسعه‌ داده میشه. این کتابخونه، به ما اجازه میده که پروژه‌ها و پروسه‌های یادگیری ماشین، هوش مصنوعی، یادگیری عمیق، استنباط آماری و … تا توسعه شبکه‌های عصبی مصنوعی رو انجام بدیم. به خاطر پشتیبانی گوگل از این کتابخونه، به یکی از محبوب‌ترین و پراستفاده‌ترین کتابخونه‌های هوش مصنوعی تبدیل شده (مثلا در پروژه خودران، من از این کتابخونه استفاده کرده بودم).

اما یک مشکل بزرگی با نصب تنسرفلو روی رزبری پای مواجه هستیم. مشکل اینجاست که وقتی دستور روتین pip برای نصب تنسرفلو رو بزنیم، اتفاق خیلی خاصی رخ نمی‌ده، جز این که یک ارور مبنی بر پیدا نشدن این کتابخونه در مخازن  PyPi متعلق به پلتفرم ما نشون داده میشه. پس باید چی کار کنیم؟ خب در ادامه قراره که همین داستان رو بررسی کنیم و به نتیجه درستی برسیم.

نصب Tensorflow روی Raspberry Pi

قبل از هرچیزی باید بگم که من این پروسه رو روی Raspberry Pi 4 Model B (با رم ۲ گیگابایت) و سیستم عامل Raspberry Pi OS نسخه Bullseye (بله درست حدس زدید، سیستم‌عامل رزبری پای دبیانه 😁 و صدالبته که می‌تونید توزیع‌های دیگری هم روش نصب کنید) و ویرایش ۶۴ بیتی طی کردم. بسته به مدل رزبری شما و سیستم‌عاملتون، این پروسه می‌تونه متفاوت باشه.

نصب نرم‌افزارهای پایه

ما برای این که بتونیم تنسرفلو رو نصب کنیم، نیاز به نصب تعداد زیادی نرم‌افزار روی خود سیستم‌عامل داریم. به نظر بهتره که ابتدا، لیست بسته‌های مخازن رو بروزرسانی کنیم:

sudo apt update

و صدالبته بهتره که خود سیستم‌عامل هم بروزرسانی‌های آخرش رو دریافت و نصب کنه:

sudo apt full-upgrade

پس از این که این مراحل انجام شد، تعداد زیادی نرم‌افزار رو به این شکل نصب می‌کنیم:

sudo apt install gfortran libhdf5-dev libc-ares-dev libeigen3-dev libatlas-base-dev libopenblas-dev libblas-dev liblapack-dev

عمده این نرم‌افزارها رو بر اساس پیام‌های خطایی که دریافت می‌کردم پیدا کردم، چرا که وقتی شما روی سیستم دسکتاپ یا لپتاپ خودتون تنسرفلو نصب می‌کنید، بسیاری از این‌ها (متناسب با معماری پردازنده) پیش‌تر نصب شدند اما سیستم‌عامل‌هایی که روی رزبری نصب می‌کنیم چنین حالتی ندارند. بهرحال، همه نرم‌افزارهای پایه‌ای که نیازه از مخزن دبیان نصب بشه، در این دستور موجوده (طبیعتا اگر نیاز به بسته دیگری باشه بعدا این مطلب ویرایش میشه)

نصب و بروزرسانی بسته های پایتونی

خب ما تعدادی پیش‌نیاز پایتونی هم داریم (که این‌ها رو اکثرا حتی در وبسایت تنسرفلو هم می‌شه پیدا کرد) که با دستورات زیر نصبشون می‌کنیم:

pip3 install pybind11
pip3 install Cython==0.29.21
pip3 install h5py==2.10.0

و سپس بسته setuptools رو هم بروزرسانی می‌کنیم:

pip3 install --upgrade setuptools

و این یکی رو هم نصب می‌کنیم (چرا که باید فایل تنسرفلو رو با این بزرگوار دانلود کنیم)

pip3 install gdown

دانلود و نصب Tensorflow

خب ابتدا به کمک gdown فایل wheel (فایل‌های wheel فایل‌هایی هستند که pip می‌فهمه باید نصبشون کنه) مربوط به نسخه مورد نظر تنسرفلو رو دانلود می‌کنیم:

gdown https://drive.google.com/file/d/1YpxNubmEL_4EgTrVMu-kYyzAbtyLis29

توجه کنید که اگر این دستور کار نکرد هم جای نگرانی نیست، می‌تونید این لینک رو باز کنید و فایل رو خودتون دانلود کنید.

سپس کافیه که با اجرای این دستور:

pip3 install <TENSORFLOW WHL FILE>.whl

نصب رو انجام بدید.

ضمنا، از اونجایی که ممکنه بعدتر نسخه‌ها تغییر کنن، بهتره که این صفحه رو هم هر چند وقت یه بار چک کنید تا اگر نیاز بود نسخه تنسرفلو رو تغییر بدید، فایل مربوطه رو دانلود کنید.

جمع‌بندی

مدتهای زیادی میشه که دوست دارم در مورد پروژه‌هایی که در حوزه «اینترنت چیزها» یا همون IoT انجام میدم هم بنویسم. اما متاسفانه پروژه‌های سخت‌افزاری، وقت زیادی از آدم می‌گیرن و وقتی وقت آزاد زیادی نداشته باشید، معمولا به پروژه‌های سخت‌افزاریتون هم آنچنان نمی‌تونید رسیدگی کنید. به همین خاطر مدتی میشه که در تلاشم تا پروژه‌های شخصی و صدالبته کاریم در حوزه بینایی ماشین رو با IoT ترکیب کنم و به این شکل این حوزه رو هم وارد کارهای روتین و اصلیم کنم که وقت هم همیشه براشون باشه 😁

تست چند پروژه بینایی ماشین روی Raspberry Pi شروعی برای این دوران از زندگی منه. راستی، اگر دوست دارید نقشه راه بینایی ماشین رو داشته باشید می‌تونید بیایید اینجا، اگر دنبال ایده برای پروژه‌ها هستید هم اینجا رو بخونید. حتی می‌تونید به ما در جامعه بینایی ماشین هم ملحق بشید و اشتراک تجربه و دانش کنید.

در پایان، ضمن تشکر از این که وقت گذاشتید و این مطلب رو خوندید، باید بگم که هنوز می‌تونید من رو به یک فنجان قهوه مهمان کنید 🙂

Share

داستان پروژه جبیر – استیو جابز نه، خود خودم (قسمت آخر)

در دو پست قبلی (+، +) در مورد پروژه جبیر با شما صحبت کردم و توضیح دادم که ایده‌ش از کجا اومد و چی شد و چه کردیم. قسمت دوم یکم پرش قلم من زیاد بود چون موضوعات زیادی رو شامل می‌شد اما خب نیاز بود که گفته بشه. حالا رسیدیم به قسمت آخر. در این قسمت، میخوام از این بگم که در جشنواره خوارزمی چه گذشت و چرا جشنواره خوارزمی شروعی بود بر پایان این پروژه.

بذارید قبل از هرچیزی، یک مرور کلی داشته باشیم بر دو قسمت قبلی. در قسمت اول، توضیح دادم که من شیفته اپل شده بودم و می‌خواستم مثل استیو جابز، یک شخصیت مهم در دنیای تکنولوژی باشم و همون قدر شناخته بشم و همونقدر هم ثروتمند (بالاخره آرزو بر نوجوانان عیب نیست، هست؟) و تصمیمم این شد که یک سیستم عامل بسازم و بعد از کلی تحقیق و توسعه؛ نتیجه این شد که یک سیستم عامل مبتنی بر گنو/لینوکس و توزیع اوبونتو بسازم. اسم این پروژه هم گذاشتیم جبیر.

در قسمت دوم، از فراز و نشیب‌های فنی این قضیه گفتم. از این گفتم که چی شد که اینطوری شد و چی شد که ساخته شد. بذارید ساده‌تر و مفصل‌تر بگم، اول گفتم که فاز تحقیقم چی بود و چه کردم و چه چیزایی خوندم. بعد گفتم که چرا تصمیم گرفتم بیام سراغ سیستم‌عامل‌های متن‌باز موجود مثل لینوکس یا BSD و در نهایت گفتم چرا لینوکس رو انتخاب کردم. بعدش از عادت Distro Hopping گفتم (این عادت یعنی که شما بیایید و توزیع‌های مختلفی تست کنید و همیشه روی یک توزیع ثابت نمونید) بعدش هم گفتم چی شد که مینت و اوبونتو رو به عنوان مبنا در نظر گرفتم و چطور نسخه‌های اولیه جبیر ساخته شد.

بعد از اون، از انتشار جبیر و اشتباهاتی که در ساخت این پروژه شد نوشتم. بعد از این موضوع، وارد بحث نسخه ۴ که نسخه جنجالی جبیر بود شدیم (نسخه‌ای که به اینترنت متصل نمی‌شد، به همراه نظر جادی و تبعاتش) و بعد از اون چه شد که به سراغ BSD رفتیم و همین موضوع هم مزید بر علت شد که جبیر روز به روز به پایان خودش، نزدیک‌تر بشه.

جشنواره خوارزمی

جشنواره خوارزمی، یک جشنواره‌ست که در سطوح مختلف (چه مقطع تحصیلی و چه تقسیمات جغرافیایی) برگزار می‌شه و یکی از اهدافش، اینه که به مخترعین و مبدعین و محققین جوان کمک کنه تا نتایج کارهاشون دیده بشه. مقام آوردن در این جشنواره، خودش یک سری امتیاز خاص به همراه داره که این امتیازات عبارتند از دانشگاه بدون کنکور رفتن (طبیعتا در رشته‌ای که پروژه/اختراع ارائه کنید) و معافیت سربازی و این‌ها. البته این‌ها مال اون زمان بود و الان نمی‌دونم چطور شده ولی فکر نمی‌کنم تغییری کرده باشه.

احتمالا اگر الان این رو خوندید و دبیرستانی هستید، براتون خیلی دغدغه شده که حتما در این جشنواره‌ها شرکت کنید، ولی خواهش می‌کنم که قبلش حتما مطلبی که اول این پست لینک شده رو یه نگاه بندازید. قدیمیه ولی ارزشش رو داره. خلاصه بگذریم؛ چیزی که اینجا مهمه اینه که شما بدونید اگر طرحتون به زعم داوران جشنواره واقعا خوب بیاد، امتیازاتی دریافت می‌کنید که می‌تونه شما رو به اهداف زندگیتون نزدیک کنه.

حقیقتا من از وقتی بچه‌تر بودم، بچه‌هایی که به این جشنواره راه پیدا می‌کردند رو از تلویزیون و روزنامه و … دنبال می‌کردم، دلم می‌خواست روزی مثل اون‌ها باشم. مادامی که در تهران در مقطع راهنمایی تحصیل می‌کردم خبری از این جشنواره برای دانش‌آموزان راهنمایی نبود (سالی که ما شرکت کردیم ولی بود) و همین امر، باعث شده بود که من با این تیپ جشنواره‌ها غریبه باشم. اما در دبیرستان اوضاع فرق کرد. ما این پروژه رو شروع کرده بودیم. بخصوص سال دوم دبیرستان که بودم، رضا باقرزاده عزیز هم به من پیوست و با هم پروژه جبیر رو پیش می‌بردیم.

یک روز، ما از مدیر مدرسه‌مون خواستیم که سالن اجتماعات مدرسه رو در اختیارمون بذاره و از بچه‌هایی که اون ساعت خاص، بیکارن دعوت کنه که بیان و پروژه ما رو ببینن. این هم خودش یکی از حرکات «استیو جابز»گونه بود 🙂 خلاصه این اتفاق افتاد و از قضا، مدیر مدرسه هم خودش اومد در اون جلسه دورهمی حضور پیدا کرد. این قضیه برای ما خیلی خوب بود چرا که حسابی در چشم مدیر مدرسه، درخشیده بودیم.

اما این تمام ماجرا نبود …

محمدرضا حقیری (چپ) و رضا باقرزاده (راست) - توسعه‌دهندگان پروژه جبیر

روز بعد اون کنفرانس، مدیر مدرسه از من و رضا درخواست کرد که جزییات پروژه رو براش بنویسیم. من هم یک صفحه A4 نوشتم تحویلش دادم. یک هفته بعد، ما رو از سر کلاس (که اگر اشتباه نکنم دینی بود) خواستند به دفتر. ما اول کمی ترسیده بودیم (بهرحال سیستم آموزشی ما ایجاب می‌کنه که از دفتر بترسیم 😂) و وقتی رفتیم، دیدیم یک آقای میانسالی هم اونجا هستند. مدیر مدرسه به ما گفت که ایشون از مسولین آموزش و پرورش استان هرمزگانن و پروژه ما در مرحله استانی خوارزمی پذیرفته شده.

ایشون گفت که روز بعدش، بریم پیشش. پرسیدیم بعد مدرسه؟ گفت نه، از مدیرتون اجازه بگیرید و دو زنگی رو ما در خدمتتون هستیم. ما هم از این بابت خوشحال شدیم. می‌دونید چرا؟ چون بالاخره دو زنگ پیچوندن هم خودش صفای خودش رو داشت. حالا از این حال و هوا بیاییم بیرون. ما فرداش رفتیم پیش ایشون. ایشون ما رو برد پیش مسولین خوارزمی و کلی تحویلمون گرفتند. این تحویل‌گیری‌ها البته دلیل داشت! دو سه سالی بود که از استان هرمزگان در رشته کامپیوتر هیچ پروژه‌ای معرفی نشده بود و این‌ها هم از این موضوع حسابی خوشحال بودند.

خلاصه که این دوستان، به ما گفتند یک A4 کافی نیست و در قالب یک پرپوزال باید در مورد پروژه بنویسیم. من و رضا هم گفتیم پس ما می‌ریم روی این کار می‌کنیم و می‌آییم پیش شما. اون خانمی که در آموزش پرورش به ما گفت که بعدا بریم پیشش، گفت که چهارشنبه ها عصر هم حضور داره در همون دفتر و نیازی نیست کلاس رو بخاطر قرار با ایشون بپیچونیم. خلاصه کلام که ما رفتیم و یک فایل ۲۰-۳۰ صفحه‌ای با عنوان «سیستم‌عامل جبیر» نوشتیم و این رو پرینت کردیم و در طلق و شیرازه قرار دادیم و چهارشنبه بردیم پیش ایشون.

بعد از کمی بررسی، غلط‌های این پرپوزال رو به ما گفت و ما اون رو اصلاح کردیم. بعدش به ما گفتند که تا تیرماه حدودا صبر کنیم (و این ماجرا حدودای فروردین اتفاق افتاد اگر درست یادم باشه). ما هم به درس و مشقمون رسیدیم و امتحان دادیم. اما خب اینجا یک سری اتفاق خاص هم افتاد.اتفاقاتی که به نوبه خودشون جذاب و جالب بودند.

جشنواره خوارزمی استانی

جشنواره استانی، برخلاف کشوری، اینطوری نیست که شما بری از پروژه دفاع کنی. بر اساس همون توضیحاتی که از پروژه‌ها ارائه شده، داوری می‌کنند و اونایی که حس میشه شانس خوبی برای مقام کشوری آوردن دارند انتخاب میشن. بعد از این، این مورد به صاحبان ایده و پروژه، ابلاغ میشه.

در همین حین، ما که سخت مشغول کار روی جبیر بودیم و حتی یادمه که دونفری با رضا می‌رفتیم پیش خدمات کامپیوتری‌ها که مجابشون کنیم که یکی دو تا سیستم بدن دست ما که روش جبیر نصب کنیم (شاید باورتون نشه ولی یکی از پلن‌های من، برای هر توزیعی که درش نقشی داشتم تولید کامپیوترهای رومیزی با همون سیستم‌عامل هم بوده) و معمولا اون‌ها هم یه چراغ سبز الکی نشون میدادن، یک باره به تلفن رضا زنگ زدند. رضا گفت «آقای …؟» و بعد گوشی رو روی اسپیکر گذاشت و به ما اعلام شد که در استانی، رتبه اول شدیم (لینک خبر).

در مورد تاریخ خبر باید به شما بگم که این اخبار، بعد از برگزاری جشنواره کار شدند. یعنی ما تیر ماه خبر داشتیم از این که در استانی پذیرفته شدیم ولی ظاهرا قوانینی که روی جشنواره حاکمه، ایجاب می‌کرد که تا زمان شروع جشنواره سال بعد خبری ازش کار نشه. خلاصه بگذریم. ما دو تا هم خوشحال و سرخوش گفتیم که فرداش می‌ریم آموزش پرورش.

در آموزش و پرورش، بیش از گذشته تحویلمون گرفتند! این بار به ما گفتند که نیازه تا فیلمی بگیریم که هردو توش باشیم (البته ما دو فیلم مجزا گرفتیم. چرا که رضا بیشتر روی جنبه UI و ظاهری قضیه کار می‌کرد و من روی بیس سیستم) و بعد یک پرپوزال دیگر بنویسیم که یک سری ملاحظات خاص رو درش رعایت کرده باشیم. این ملاحظات شامل نحوه فهرست‌بندی، استفاده از فونت و … بودند. خلاصه ما دوتا CD و یک کتابچه تحویل دادیم و بعدش مدت نسبتا طولانی، از هم دور شدیم.

جشنواره خوارزمی کشوری

مرداد ماه بود و من به همراه مادرم چند روزی (فکر کنم دو هفته!) آمدیم تهران. در همین روزها، یادمه که رضا به من زنگ زد. بهش گفتم چه خبر؟ چه کارا می‌کنی؟ و خیلی عادی حرف زد. برای من این موضوع خیلی جالب بود که چطور تونسته بود اونقدر خونسرد باشه و یهو من رو غافلگیر کنه :)) پای تلفن به من گفت که «فلانی زنگ زد و گفت که اوایل شهریور باید تهران باشیم که از پروژه دفاع کنیم.

خلاصه بعد برگشت من به بندر، قرار شد با رضا بریم و در مورد این پروسه بپرسیم. به ما گفتند که داورا اینطورین و باید چه کنید و … (که با تقریب خوبی البته درست نبود) و به ما پولی دادند که بلیت هواپیما تهیه کنیم و با هواپیما بریم تهران. همچنین بودجه‌ای به ما دادند که لباس‌های متحدالشکل تهیه کنیم و ما هم دوتا پیراهن گرفتیم که لعنت خدا هم گرونش بود، ولی سال ۹۱ بابت هر پیراهن ۶۰ هزار تومان پول دادیم 😂.

خلاصه ۵ شهریور ۹۱ شد. ما رفتیم فرودگاه بندرعباس و سوار یک عدد ایرباس A300 هواپیمایی ماهان شدیم و به سمت فرودگاه مهرآباد تهران پرواز کردیم. در تهران هم مسول آموزش و پرورش هرمزگان (همون آقای میانسالی که کارهای ما رو انجام داده بود) آمد و ما رو به خوابگاه دانشجویی دانشگاه تربیت دبیری شهید رجایی برد. حقیقتا تا حد خوبی حالمون گرفته شد، چرا که به ما گفته شده بود برای ما هتل رزرو شده و از این دست چرت و پرتا. ولی خب ایرادی نداشت، فرداش روز بزرگی بود.

فرداش رفتیم. ظهر شد و دعوت شدیم که بریم داخل اتاق. داخل اتاق، سه‌تا آقا نشسته بودند که علی‌الظاهر، اساتید کامپیوتر همون دانشگاه بودند (اینجا این رو بگم که بعدا روش بحث صورت بگیره، اگر جشنواره خوارزمی یک جشنواره کشوریه، آیا بهتر نیست که فراخوانی زده شه و از اساتید و صاحب‌نظران کل کشور خواسته شه که داوطلب بشن؟ چرا فقط یک دانشگاه خاص؟) و یک سری سوال پرسیدند. ما وقتی داشتیم صحبت می‌کردیم و …؛ من اشاره کردم که جبیر مبتنی بر گنو/لینوکس ساخته شده. یادمه یکی اونجا خندید و گفت «پس مثل همون لینوکس فارسیه‌ست…».

حالا شما خودتون حساب کنید که این که این دوستان زده بودند تو کانال مسخره‌بازی، چقدر به ما فشار آورد. خلاصه ما ارائه و دفاعمون رو تحویل دادیم و آمدیم بیرون. ناهاری بر بدن زدیم و کمی تهران‌گردی کردیم و بعدش هم رفتیم سمت فرودگاه. دقیقا یادمه بعد از این که مسول آموزش پرورش ما رو ترک کرد، ما کاری نداشتیم که انجام بدیم پس با رضا نشستیم به خوندن آموزش Bash و اسکریپت‌نویسی 😁

خلاصه به سمت بندرعباس برگشتیم و بعد از اعلام نتایج، فهمیدیم که رتبه قابل قبولی در این جشنواره کسب نکردیم. این خودش یک شکست بسیار بسیار بزرگ برای ما محسوب می‌شد. گرچه کادر مدرسه تاکید داشتند سال بعدش هم شرکت کنیم ولی حقیقتا ما سال بعد تصمیم داشتیم دیگه شرکت نکنیم و همین هم شد. این دقیقا اینجا به این معنا بود که پروژه هم داره تا حد خوبی به آخرای خودش نزدیک میشه.

رفتن روی BSD، بزرگترین اشتباه

هنوز که هنوزه، من سیستم‌عامل FreeBSD رو به شدت دوست دارم و محاله وقتی نسخه جدید میده، نصبش نکنم و باهاش کمی بازی نکنم. اما حقیقت امر این بود که BSD ها – به جز مک – واقعا برای استفاده دسکتاپ و روزمره مناسب نیستند. حتی روی سرور و روتر و … (که BSDها حرف‌های به شدت زیادی برای گفتن دارند) هم معمولا انتخاب خوب و اول نمی‌تونن باشند.

یکی از مهم‌ترین دلایل، اینه که BSDها معمولا ساپورت سخت‌افزاریشون اونقدری که باید و شاید، خوب نیست. دلیل دیگری که به ذهنم می‌رسه اینه که استفاده از BSDها به شدت محدوده و بین هزاران شرکت و استارتاپی که مبتنی بر لینوکس هستند، شاید فقط Netflix, WhatsApp و Sony باشند که از FreeBSD (یا نسخه‌های دیگر BSDها) استفاده کنند. همین امر، باعث شده که BSDها مستندات کمتر و جوامع کوچکتری داشته باشند.

و البته اشتباه دیگری که داشتم این بود که فکر می‌کردم اگر برم روی BSD و یه بخش خوبی از رابط کاربری هم خودم بسازم (که تاحدی این کار رو کرده بودم) و مجوز اون هم BSD قرار بدم، شاید بتونم کد رو ببندم. اما هیچ کس نبود بهم این نکته رو گوشزد کنه که بستن کد برای پروژه‌ای که تیم کوچکی داره و ساپورت مالی نمیشه و سرمایه‌گذار خاصی هم نداره، سم مطلقه.

خلاصه با پیاده‌سازی نه چندان بد، تفکرات اشتباه و صد البته واکنش‌های عجیب و غریب جوامع نرم‌افزار آزاد و متن‌باز ایران، این پروژه باز بیش‌تر و بیش‌تر روی سراشیب سقوط قرار گرفت. اما حقیقت امر اینه که یکی از بزرگترین تیرهای خلاص این قضیه رو، همین جامعه نرم‌افزار آزاد به این پروژه وارد کرد.

واکنش‌های جامعه نرم‌افزار آزاد ایران و پیامدهایش

من اصلا دوست ندارم در نقش قربانی فرو برم و شکست‌ها و عدم موفقیتم رو گردن کسی بندازم. حقیقتا از این رفتار به شدت بدم میاد و اگر ببینم کسی چنین رفتاری داره خیلی سریع، از دایره دوستی و حتی آشنایی من ممکنه حذف بشه. پس امیدوارم این بند خاص از مطلب من، این حس رو القاء نکنه که در نقش قربانی فرو رفتم.

بگذریم، جامعه نرم‌افزار آزاد ایران، که در حال حاضر عمدتا حول اوبونتو و در فروم اوبونتو متمرکز شده تقریبا (و این تمرکز هم خودش سم مهلکیه) رفتارهای عجیب و جالبی دارند. این جامعه عموما اینطوری بود که خیلی سخت افرادی که بیرون گود بودند رو می‌پذیرفت و خیلی وقت‌ها هم نمی‌تونستند یک سری موضوعات خاص رو بپذیرند. به همین دلیل، رفتارها بیشتر شبیه گنگسترها و یاکوزاها می‌شد. حقیقتا در مقابل پروژه جبیر هم تا حد زیادی به این شکل برخورد نشان دادند.

برخوردهایی از این دست که «چرا به فلان پروژه کمک نمی‌کنی؟» اصلا از نظرم بد نیست. خیلی هم خوبه و خیلی راحت می‌تونه شما رو مجاب کنه که نیاز نیست چرخ رو از اول اختراع کنید. اما خب، گاهی برخوردها سمت ترولینگ و قلدری سایبری پیش می‌رفت. مثلا شخصی میومد می‌گفت «بیا کرنل رو بکن داروین» و بعد چند نفر ادامه می‌دادند. نکته جالب هم این که از سادگی من هم به عنوان یک نوجوان، تا حد خوبی بهره‌کشی شده بود اینجا. من الان دانشی دارم که بهم می‌گه که تعویض کرنل بسیار سخته، و در بعضی موارد کاملا ناممکن. اما اون موقع من چنین آگاهی‌ای نداشتم.

خلاصه بگم که کم کم به جایی رسید که من دیگه می‌فهمیدم کجاها ملت دارند دستم میندازن. حقیقتا خوشم اومده بود که خودم همراه شم با این قضیه و تا می‌تونم چرت و پرت ببافم. اما خب حقیقتا این به ضرر من شد چرا بعدتر، برچسب ترول به من چسبید و از جامعه کاملا پاک شد. جامعه‌ای که تقریبا همیشه نشون داده با افراد جدید – صرفنظر از این که آدم‌های خوبین یا بد – چنین برخوردی رو داشته و خب این برخوردها، نتایج خوبی هم نداشته. برای مثال، خود من از سال ۹۳ تا ۹۶ واقعا در این جامعه هیچ حضور فعالی نداشتم و ۹۶ دوباره برگشتم بهش. سال ۹۹ هم موارد مشابهی پیش آمد و دلخوری‌هایی ساخته شد.

خلاصه بگذریم از این موضوع، می‌خواستم صرفا این موضوع رو شفاف کنم که جامعه، از دور ممکنه قشنگ به نظر برسه اما خب درونش نیازمند سازگاری بالا و همرنگ جماعت شدنه. حقیقتا من هم شخصی نیستم که بخوام همرنگ جماعت باشم، به همین خاطر ممکنه در جوامع مختلف، متضرر بشم 😁

سخن آخر

اول از همه از شما ممنونم که این مطلب رو خوندید و تا اینجا اومدید. دوم، میخوام ازتون دعوت کنم که علاوه بر این وبلاگ، ویرگول هم می‌تونید مطالب من رو بخونید ولی در ویرگول معمولا انقدر حرافی نمی‌کنم 🙂 و در نهایت، میخوام یک جمع‌بندی کلی روی این سه قسمت بکنم و بگم که به پایان آمد این دفتر، حکایت همچنان باقیست.

حقیقتا بعد از شکست پروژه جبیر، من یک درس بزرگ گرفتم. درسی که بهم گفت «نیاز نیست استیو جابز دوم باشی، تو خود خودت باش» و این درس به نظرم بزرگترین نکته شخصیتی بود که می‌تونستم از انجام چنین پروژه‌ای دریافت کنم. درس و نکته بعدی هم این بود که حرف‌های اطرافیان می‌تونه به شدت روی روان آدم تاثیر بذاره و نباید گذاشت این حرف‌ها، از ما یک موجود کینه‌ای بسازه که بعدتر نیازمند انتقا‌م‌گیری و پرونده‌سازی و فلان باشه. درس‌های شخصیتی و روانی این پروژه، واقعا برای من مهم و ارزنده بودند.

از نظر فنی هم، درس‌های خوبی گرفتم. برای مثال اندازه افرادی که LPIC 1, 2 می‌گذرونند از لینوکس یاد گرفتم. تا حد خوبی پایتون یاد گرفتم. حتی همین امر باعث شد که بعدتر، روبی یاد بگیرم و … . همچنین یاد گرفتم که نیاز نیست برای متفاوت بودن حتما به سمت BSD رفت بلکه یک رابط کاربری متفاوت هم می‌تونه به خودی خود، تا حد خوبی تاثیر مثبت روی ذهن افراد داشته باشه.

از منظر بیزنسی هم بخواهیم نگاه کنیم یک درس خیلی خوب گرفتم. اون این که «وقتی تیم کوچیکه یا پروژه تک‌نفره جلو میره نیازی نیست که کد، بسته باشه. اتفاقا باز بودن کد به نفع توئه». و همین باعث شد از اون به بعد عمده پروژه‌های من روی گیتهابم قرار بگیرند.

خلاصه که یک پروژه شکست‌خورده، می‌تونه پر از درس برای ما باشه. مهم اینه که ما بخواهیم همیشه در سوگ بمونیم؟ یا این که به قدری سوگواری کنیم و بعد از اون سوگواری به سمت انجام یک پروژه جدیدتر قدم برداریم. نمی‌دونم فیلم Whiplash رو دیدید یا نه، اما در صحنه‌ای یکی از شخصیت‌ها میگه «چارلی پارکر وقتی با اون صحنه مواجه شد، اول سوگواری کرد. بعد یک روز کامل استراحت کرد و بعدش اونقدر تمرین کرد که ما امروز ازش حرف بزنیم». پس باید گفت که این ماییم که انتخاب می‌کنیم چارلی پارکر باشیم، یا اون نوازنده‌ای که با یک شکست، کلا ساز و نوازندگی رو میذاره کنار.

در پایان، مجددا از شما بابت وقتی که برای خوندن این مطلب گذاشتید تشکر می‌کنم. همچنین امیدوارم که این تجربه شکست طولانی، تونسته باشه برای شما جرقه‌ یا کمکی باشه در هندل کردن پروژه‌هاتون یا حداقل بهتون کمک کرده باشه که چطور با پروژه‌های شکست خورده کنار بیایید. امیدوارم که در آینده نزدیک، بتونم با مطالب بیشتری در خدمت شما باشم.

Share

داستان پروژه جبیر – عملکرد وزنیاک، همچنان رویای جابز (قسمت دوم)

در مطلب پیشین (لینک) اشاره کردم که ایده‌ها و جرقه‌های ابتدایی پروژه جبیر، از کجا به ذهنم رسید و چرا مهم بود که اون ایده رو پیاده کنم و حتما به اون هدف برسم. این موضوع، باعث شد که من بیش از پیش تلاش کنم که به هدفی که برای خودم گذاشتم برسم.

در این یکی مطلب، قصدم اینه که در مورد فرایندی که جبیر برای ساخته شدن طی کرد صحبت کنم و قطع به یقین، خیلی از این مراحل قدیمی‌تر از اونی هستند که شما بتونید الان پیاده‌سازیشون کنید. پس اگر نیازمند این هستید که توزیع لینوکسی مبتنی بر دبیان یا اوبونتو بسازید، می‌تونید راهنمای عملی قرار دادن فیل در یخچال و همچنین چگونگی ساخت توزیع لینوکس رو بخونید. ولی اگر دوست دارید سفر طولانی یک نوجوان در مسیر پیاده‌سازی رویاش رو بدونید، به خوندن همین مطلب ادامه بدید.

بررسی راه‌های ساخت یک سیستم‌عامل

ابتدای راه، باید بررسی می‌کردم که سایرین چطور سیستم‌عامل ساختند و چطور شده که سیستم‌های عاملشون، رشد و نمو خوبی داشته. همونطور که در قسمت اول هم اشاره کردم، یکی از idol های من در زندگی، استیو جابز بود (و کماکان هم هست) و طبیعتا اولین سیستم‌عاملی که به نظرم اومد که داستان موفقیتش رو مطالعه کنم، مک بود. اما مک یک مشکل بزرگ داشت. بررسی درست و حسابیش نیازمند این بود که حتما یک سیستم اپل تهیه کنم. حالا چه آی‌مک، چه مک‌بوک و … . به همین خاطر، مک رو بیخیال شدم.

داستان موفقیت ویندوز هم تقریبا اظهر من الشمسه. این سیستم‌عامل عمده محبوبیتش رو به این خاطر داره که روی سیستم‌های سازگار با PC های IBM نصب می‌شد و از قضا، همون دوره IBM تصمیم گرفته بود که لایسنس تولید کامپیوترهای شخصی مشابه کامپیوترهای خودش رو به کمپانی‌های دیگری مثل Dell, Compaq, HP و … هم بفروشه. پس تعداد بیشتر، مصادف شده بود با مصرف بیشتر و محبوبیت بیشتر.

نهایتا، با خودم گفتم که «خب، می‌رم بین محبوبیت توزیع‌های لینوکس جستجو می‌کنم». اونجا بود که فهمیدم چندین توزیع ایرانی مثل پارسیکس (متوقف شده)، کارآمد (متوقف شده) و آریوس (متوقف شده) وجود دارند. در عین حال، فهمیدم این‌ها ویژگی‌های مشترک زیادی دارند. خلاصه که این مورد رو گذاشتم در لیست مطالعه که بعدتر در موردش مطالعه کنم و ببینم که دنیا دست کیه.

خلاصه، مطالعه پیرامون موفقیت سیستم‌های عامل تموم شد. دلم می‌خواست اون موقع وارد جامعه‌ای از برنامه‌نویسان بشم و ازشون یاد بگیرم و انتقال تجربه انجام بشه. به همین خاطر، در وبسایت برنامه‌نویس، ثبت‌نام کردم. اونجا بود که متوجه شدم یکی از اعضا، یک سیستم عامل نوشته به اسم آراکس. برخلاف عمده پروژه‌های سیستم‌عامل که دیده بودم، این یکی توزیع لینوکس نبود بلکه سیستم‌عاملی بود که از بیخ و بن توسعه داده شده بود و با خودم گفتم که پسر! باید با این رفیق شم حتما. اما خب نشد، یعنی نمی‌دونم چی شد ولی احتمالا شلوغی سر ایشون و عدم تمایلشون باعث این شد که دوستی‌ای شکل نگیره.

خلاصه، کمی هم به زبان انگلیسی گشتم. اون موقع مثل الان زبانم خوب نبود و در فهم بسیاری از مطالب، مشکل داشتم. با این حال با گشتن در اینترنت به ویکی توسعه‌دهنگان سیستم‌عامل رسیدم. جایی که هزاران و ده‌ها هزاران نفر دیگر، مشغول توسعه پروژه‌های خودشون بودند و همین باعث شده بود که من یک بهشت برین پیدا کنم. اما اونقدری نگذشت که امیدم ناامید شد. چرا؟ چند مدخل رو که خوندم فهمیدم از صفر نوشتن یک سیستم‌عامل که بتونه کلی کار ریز و درشت انجام بده به این سادگی‌ها هم نیست. که البته اگر نظر خودم رو بخواهید، خیلی خوب شد که این اتفاق افتاد. بعدا در موردش حرف خواهم زد.

به همین خاطر، یک تحقیق بزرگی در مورد سیستم‌عامل‌های متن‌باز موجود کردم که ببینم کدوم بعنوان پایه سیستم‌عامل می‌تونه گزینه خوبی باشه. گنو/لینوکس، بی‌اس‌دی‌ها، هایکو و حتی کولیبری رو چک کردم و به این نتیجه رسیدم که خب، لینوکس بهترین گزینه‌ست! حتی در این میان داشتم به اندروید هم فکر می‌کردم ولی باز پس ذهنم گنو/لینوکس رو داشتم. حالا وقت این بود که ببینم از کدوم یکی میشه یک نسخه شخصی‌سازی‌شده بهتر ساخت.

پیدا کردن توزیع مناسب به عنوان مبنا

خب وقتی که فهمیدم قراره بیس سیستم‌عامل من لینوکس باشه، نیاز داشتم که ببینم کدوم توزیع بهتره. به همین خاطر بارها و بارها، توزیع عوض کردم (و حتی همین امر موجب این شد که هاردم به شدت کند و حتی خراب بشه. بعد از مدتی حتی مجبور به تعویض هارددیسک لپتاپی شدم که اون زمان داشتم). نخستین توزیع، اوبونتو بود. بعدش دبیان. بعد اوپن سوزه، فدورا و … . به همین سبک و سیاق هزاران توزیع رو تست کردم که ببینم کدوم بهتره. البته دروغ چرا، هزاران خیلی مبالغه‌ست. درست‌ترش اینه که هر توزیعی که اسم و رسمی داشت رو نصب و آزمایش کردم که ببینم قضیه چی به چیه.

اما مشکلاتی هم در این میان بودند. یکی از بزرگترین مشکلات پیش روی من، اینترنتی بود که اون زمان داشتیم. اینترنت پرسرعتی بود نسبتا اما دو مشکل اساسی داشت. اولین مشکل محدودیت حجمی بود و خب طبیعتا می‌دونید که بسیاری از این توزیع‌ها حتی موقعی که نصب میشن هم نیازمند اینترنت هستند و همین یعنی باید فاتحه اون حجم رو خوند. مورد دوم هم قطعی‌های زیاد اون خط خاص بود. خلاصه که با تمام این ماجراها، من تهش به چند کاندیدای قدر قدرت رسیدم.

اولین کاندیدا، خود دبیان بود. اصل کاری، پدر اوبونتو. دبیان نصب و راه‌اندازیش هربار من رو پیر می‌کرد البته. به همین خاطر ترجیح دادم که مدتی کنارش بذارم. در همین میان، باز به اوبونتو برگشتم. بعد از بازگشتم به اوبونتو، با لینوکس مینت آشنا شدم. حقیقتا از مفهومی که مینت داشت هم خوشم اومد! فهمیدم که مطابق قوانین خیلی از کشورها، یک تعداد زیادی از نرم‌افزارها مثل فلش‌پلیر، فونت‌های مایکروسافت، کدک‌ها، واین و … امکان «بازتوزیع» یا Redistribute شدن ندارند. اما مینت از این قاعده مستثناء بود. چطور؟ مینت در ایرلند جنوبی ساخته شده. کشور ایرلند هم مثل روسیه و کشور ما، از کشورهاییه که کپی‌رایت درش به اون شکل مطرح نیست و شما احتمالا راحت‌تر می‌تونید این تیپ بازتوزیع‌ها رو انجام بدید.

وقتی دیدم اینطوریه، با خودم گفتم چرا پایه این قضیه مینت نباشه؟ به همین خاطر مینت نصب کردم تا ببینم چی به چیه و دروغ چرا؟ عاشقش شدم. روی مینت گنوم ۳ نصب کردم و کلی باهاش کار کردم و دیدم عجب چیز خوبیه. خلاصه اینجا بود که کاندیداهای من به مینت و اوبونتو، تقلیل پیدا کردند.

پیدا کردن راهی برای پکیج کردن مجدد توزیع شخصی‌سازی شده

اینجا دیگه روی لپتاپ مینت نصب کرده بودم. شخصی‌سازی‌های مختلفی رو روش انجام داده بودم و وقتش رسیده بود که یک پکیج ازش بسازم. در واقع می‌خواستم یک ISO بسازم که بتونم بعدا روی لپتاپ خودم یا کامپیوترهای دیگر به طور کل، نصبش کنم. به همین خاطر از Relinux استفاده کردم (این پروژه تقریبا دو سالی میشه که از رده خارج شده، ولی اون موقع جوان اول ابزارهای ساخت توزیع بود). حالا وقت این رسیده بود که یک مینت خوش رنگ و لعاب با هزاران هزار بسته رنگارنگ، به ISO تبدیل بشه و همین تبدیل همانا و سیستم‌عامل‌ساز شدن من همان!

اما اینجا یه مشکلی پیش اومد. انقدر نرم‌افزارها زیاد بودند که حجم ISO تولیدی توسط Relinux بالای ۴ گیگابایت رفت. اگر این پست رو تشریف ببرید بخونید، توضیح دادم که استاندارد ISO9660 یک محدودیت روی حجم داره و بیش از چهار گیگابایت رو نمی‌تونه در خودش جای بده. همین امر، باعث شد که پروژه رو بکوبم و از اول بسازم. به همین خاطر، دوباره DVD اوبونتو 11.10 رو برداشتم (و در همون حین نخستین بتاهای ۱۲.۰۴ هم داشتند میومدند) و روی لپتاپ نصبش کردم. پس از نصب، تغییراتی روش دادم مثل جایگزینی یونیتی با گنوم، نصب تعدادی نرم‌افزار و جایگزینی تعداد دیگر. این بار شد! این بار واقعا شد و خب خوشحال و خرم بودم.

عکس از توزیع کاپریس است – کاپریس در سال ۹۹ ساخته شد.

انتشار نسخه اول به صورت LTS و اولین اشتباهات

خب در فروردین سال ۱۳۹۱، نخستین نسخه جبیر آمد. یادمه که ده روز قبل از انتشارش حتی این پست رو در فروم اوبونتو ایجاد کردم که خب همونطور که می‌تونید بخونید؛ کم هم حاشیه نداشته. خلاصه اینجا بود که اولین اشتباهات رو متوجه شدم. در این قسمت بیش از این که بخوام پیرامون این که جبیر چه بود مانور بدم، میخوام روی اشتباهات مانور بدم.

اولین اشتباه شاید برمی‌گشت به جهان‌بینی من. اینطور بخوام بگم که این جهان‌بینی این طور بود که اگر در ۱۶ سالگی یک سیستم‌عامل مثل جبیر ساختم، دیگه ته دنیای تکنولوژی و اینام. به قول یه بنده‌خدایی، دچار سندرم «جلوزدگی از خود» شده بودم. خب این مورد در سنین نوجوانی طبیعیه و حتی همین الان باور دارم که نسبت به سن و سال اون زمانم، واقعا کارم خفن بوده ولی نه اونقدری که خودم همیشه فکر می‌کردم. بهرحال در دوران نوجوانی خیلی‌ها دوست دارند کارهای بزرگ کنن و همونطور که در مطلب پیشین عرض کردم، این قضیه باعث شد من بشم اینی که الان هستم.

خلاصه این اشتباه، اشتباه اول بود. اشتباه دوم این بود که فکر می‌کردم اینجا می‌تونم سبک و سیاق اپل رو پیش بگیرم. یعنی چی؟ یعنی که یک سیستم‌عامل مبتنی بر یک سیستم‌عامل دیگر بسازم و بعدش، کدش رو ببندم و نهایتا سخت‌افزارهای مبتنی بر اون سیستم‌عامل رو به ملت بفروشم. نه روی زیرساخت فکری داشتم، نه روی این که پروانه‌ها چه اجازه‌هایی میدند. خلاصه که اینجا کلی اشتباه پشت هم دیدیم. اما تلاش کردم این موارد رو در نسخه ۲ اصلاح کنم.

نسخه ۲، رابط کاربری افسانه‌ای

توزیع آریوس، علاوه بر این که ریمستر از اوبونتو بود دو ویژگی داشت که از سایر توزیع‌های ریمستر؛ متمایزش می‌کرد. یکیش نصاب آفلاین درایورها بود، دیگری این که یک رابط کاربری خیلی خوشگلی هم داشت که خب به شکل یک نشست روی گنوم اجرا می‌شد. در نسخه دوم تصمیم گرفتم چنین تغییری رو ارائه بدم. به همین خاطر، با کمک AWN, Mutter و یک سری تغییر ریز دیگر، یک رابط کاربری نسبتا کاستوم ساختم و اسمش هم گذاشتم Legendary UI یا «رابط کاربری افسانه‌ای». همچنین در کنار اون نسخه، یک ایزو با XFCE هم ارائه کردم که خب در این مقطع، جبیر با دو میز کار داشت عرضه می‌شد.

حقیقتا نسخه ۲ تا حد خوبی ترکوند. به حدی که با این پروژه به جشنواره‌های استانی و کشوری (من‌جمله خوارزمی) راه پیدا کرده بودم. این رو هم اینجا بگم چرا که واقعا نمی‌تونم این رفرنس رو اینجا ندم 😁 در فیلم The Social Network – که داستان ساخت و رشد فیسبوک رو به شکل سینمایی روایت می‌کنه – کرکتر Divya Narendra (یکی از شرکای دوقلو‌های وینکلواس در پروژه Harvard Connection) در مورد مارک زاکربرگ می‌گه که «مارک بزرگترین شخصیت دانشگاه شده بود. اون هم دانشگاهی که نوزده‌تا برنده نول و پونزده‌تا برنده پولتیزر و حتی یک ستاره سینمایی داره». حقیقتا در میان دانش‌آموزان اون مدرسه و حتی شهر بندرعباس من چنین حسی داشتم و همینجا بود که دوباره کمی از خودم جلو زدم. اما این تمام ماجرا نبود. جزییات این بخش رو، در قسمت‌های بعدی این داستان خواهیم خوند.

نسخه ۳ و ۴، مشکل اینترنت و متاع خنده؟

در نسخه ۳، تغییر خاصی نبود جز این که قبل از این که Ubuntu GNOME Remix منتشر بشه، این توزیع با میزکار گنوم عرضه شد (حقیقتا جا داشت این مورد شدیدا بهش اشاره بشه). اگر دوست دارید در مورد این نسخه بیشتر بدونید می‌تونید به این مصاحبه من با لینوکس سیزن مراجعه کنید و کمی با ذهنیت من در اون سال آشنا شید. نسخه ۳ خیلی حاشیه نداشت. در عین حال، خیلی هم سر و صدا و برند نساخت. یک توزیعی بود که نصب می‌شد و خلق‌الله استفاده می‌کردند.

نسخه ۴، برای من خیلی مهم بود. در این حد که حتی اسم نسخه‌ش هم خواستم یک چیز باحال انتخاب کنم و از همین رو، اسم رو گذاشتم Pirates of Galaxy یا «غارتگران کهکشان». در این یکی نسخه خیلی سعی داشتم که همه‌چی رو مینیمال در عین حال شخصی نگه دارم. اما یک مشکل اساسی اینجا پیش آمد. مشکل چی بود؟ مشکل این که اوبونتو باگی داشت که اگر شما اون رو باز دوباره بسته‌بندی می‌کردی، نمی‌تونست کارت شبکه رو درست شناسایی کنه و به اینترنت متصل نمی‌شد. همین موضوع باعث این کامنت از جادی شد:

جادی

خب بخش اول کامنت تذکری بود به دوستی که ظاهرا ادب رو رعایت نکرده بود. بخش دوم هم از نظر من بد نیست، اما نکته مهم برخورد جامعه نرم‌افزار آزاد با این موضوع بود. چرا؟ چون من یادمه حتی سال ۹۶ که خودمم یادم نبود چه کرده بودم تو این سیستم‌عامل، در بعضی جلسات لاگ و بعضی رویدادها این موضوع شده بود متاع خنده! طبیعتا هیچکس خوشش نمیاد کاری که در نوجوانی کرده و حتی کار بدی هم نبوده (ساخت توزیع لینوکس واقعا کار بدی نیست، شاید بیهوده باشه ولی بد، نه!) سوژه خنده یک جمع باشه.

خلاصه اینجا دیگه شد آخرین جایی که جبیر بعنوان یک توزیع گنو/لینوکس عرضه شد و دفترش به پایان آمد. اما حکایتش همچنان باقی ماند.

رفتن سراغ BSD

بعد از جبیر ۴، دیگه تصمیم رو جدی گرفتم. با خودم گفتم لینوکس برای من سیستم بشو نیست :)) در این حد که هرجا بحثی از لینوکس می‌شد، سریعا اشاره می‌کردم به این که در PlayStation 4 از FreeBSD استفاده شده، واتسپ داره FreeBSD استفاده می‌کنه و OpenBSD ایمن‌ترین سیستم‌عامل جهانه و اپل با BSD اپل شد و این‌ها و در عین حال لگدی هم به لینوکس می‌زدم و می‌گفتم این سیستم‌عامل، یک سیستم‌عامل مرده‌ست.

در همین حین، ما باز به تهران برگشتیم و خب کمی سخت بود که روی توسعه جبیر کار کنم چرا که اینترنت درست و درمونی نداشتم، لپتاپم برای کامپایل کردن کد‌های FreeBSD ضعیف بود و کلی داستان و مشکل از این قبیل پیش آمد. خلاصه پس از این که مدتی گذشت و کمی این مشکلات حل شد، موفق شدم که جبیر رو دوباره از نو با کرنل FreeBSD تولید کنم و بعد مدتی حتی اسم کرنل رو از FreeBSD به JabirOS تغییر دادم (که خب این خودش یک اشتباه خیلی خیلی بزرگ محسوب می‌شد چون عملا از پورت‌ها نمی‌شد دیگه استفاده کرد) و کلا در مسیری بودم که با خودم می‌گفتم «دو سال دیگه به اپل رسیدم».

یکی از دلایلش، این بود که من کم کم داشتم وارد مدیای خارجی می‌شدم. مثلا این وبسایت، خبر انتشار جبیر جدید رو کار کرد یا این یکی، با من مصاحبه‌ای ترتیب داد. همه این موارد دست به دست هم دادند تا من خیلی بیشتر از پیش، از خودم جلو بیفتم.

اما خب این موضوعات پشت سر هم، پیش‌دانشگاهی و کنکور و ورود به دانشگاه باعث شدند که کلا بیخیال پروژه جبیر بشم و این مورد باعث شد که ذهنم برای پروژه‌های دیگری که در این سال‌ها انجام دادم بازتر بشه.

این داستان ادامه دارد

فکر می‌کردم شاید این داستان چهار یا پنج قسمت بشه، اما تا اینجا که توضیحاتم رو ارائه کردم، فکر کنم کلا یک مطلب دیگر که کلیت این دو قسمت رو جمع‌بندی کنه و کمی به رفتارهای اطرافیان – بخصوص جامعه نرم‌افزار آزاد – و داستان‌هایی مشابه شرکت در جشنواره خوارزمی و … اشاره کنه، کافی باشه.

خلاصه، دوست دارم ازتون تشکر کنم که تا اینجای مطلب رو خوندید و همراه من بودید. من همیشه دوست داشتم این تجربه رو مکتوب کنم و خب اتفاقات اخیر، موجب این شد که این مطالب مکتوب بشند و در وبلاگ هم به رشته تحریر دربیان.

در نهایت، برای تک‌تک خوانندگان این بلاگ، آرزوی موفقیت و خوشحالی می‌کنم.

 

Share

داستان پروژه جبیر – رویای نوجوانی استیو جابز شدن (قسمت اول)

احتمالا اگر وبلاگ یا محتوایی که من تولید می‌کنم رو دنبال کرده باشید، با مفاهیم و اسامی خاصی من رو به یاد خواهید آورد. چه مثل چند ماه اخیر با پروژه‌های بینایی ماشین ، چه روبی و ریلز که چندین ساله کم کم با اون شناخته می‌شم، چه لینوکس و سخت‌افزار و این داستان‌ها. احتمالا هم اگر از دنبال‌کنندگان این وبلاگ باشید، می‌دونید که داستان برنامه‌نویس شدن من (قسمت اول، قسمت دوم) چیه و چطور شد که من شدم اینی که هستم.

اما قطع به یقین، خیلی از دوستان قدیمی‌تر من رو با «پروژه جبیر» یا «جبیر او اس» یا «سیستم‌عامل جبیر» می‌شناسند. پروژه‌ای که من رو با جدیت وارد دنیای توسعه نرم‌افزار، نرم‌افزار آزاد و جامعه کاربری گنو/لینوکس ایران کرد. در این پست، قصد دارم تا در مورد پروژه جبیر کمی بنویسم. در واقع، قصد من اینه که داستان این پروژه رو تعریف کنم و بگم که چی شد که اینطوری شد 🙂

چرا این مطلب نوشته شد؟

حقیقتا از سال ۹۴ به بعد که دیگه وبسایت پروژه جبیر آپدیت نشد و حتی از برند جبیر برای پروژه‌ای استفاده نشد، دلم نخواست که راجع بهش چیزی بنویسم. چرا که این پروژه علیرغم تمام خوبی‌ها و آموزه‌هاش برای من، خاطرات بدی هم داشت و خب هرچیزی، لازمه که روزی کنار گذاشته بشه. در حقیقت، جایی که انسان حس می‌کنه باید رها کنه، باید رها کنه و برای من این زمان سال ۹۴ بود. زمانی که همه‌جا اعلام کردم پروژه جبیر، چه در قالب «توزیع لینوکس» و چه در قالب «نسخه‌ای از BSD» دیگر عرضه نخواهد شد.

اما چندی پیش، پای یکی از پست‌های جبیر (لینک) نظری دریافت کردم (که البته تایید نشده) و در بخش آمار وبگاه (که به کمک افزونه Jet Pack بررسی می‌کنم) هم متوجه شدم که افرادی هستند که در حال رصد کردن گذشته من هستند. یکی از چیزهایی که عمیقا بهش باور دارم اینه که نباید در گذشته افراد زیاد کند و کاو کرد، چرا که تهش شما یا خودت ضایع میشی یا چیزی که دنبالش می‌گردی چیزی در حد زیربغل مار خواهد بود. پس با این حساب، تصمیم گرفتم که در یک سلسله مطلب جامع، داستان جبیر او اس رو جمع کنم.

حالا وقت اینه که حدودا ده سال در زمان سفر کنم و برسیم به سال ۸۹-۹۰ که این پروژه رو استارت زدم، بگم چی شد که این پروژه به ذهنم رسید و چطور شد که رفتم سمت لینوکس و … .

جرقه‌های اولیه

بسیاری از افرادی که من رو می‌شناسند، از ارادتی که نسبت به استیو جابز دارم، خبر دارند. سال حدود ۸۹ بود و من در مجلاتی که اون زمان به صورت روتین از قیمت فلان گوشی و فلان کامپیوتر و فلان کارت گرافیک می‌نوشتند از رونمایی از محصولات جدید اپل مثل iPhone 4 یا iPad می‌خوندم. بعد مدتی، با استیو جابز و زندگی اون آشنا شدم و فهمیدم که این بابا، آدمی بوده که خیلی خیلی از صفر شروع کرده (تقریبا بر خلاف خیلی از ابرپولدارهای سیلیکون‌ولی، ایشون اصلا خونواده متمول و حتی اهل فنی نداشته و خونواده‌ای که درش رشد کرده بوده یک خونواده خیلی معمولی بوده).

خلاصه آشنایی با استیو جابز، بعدش خریدن یک iPod Touch 3G در من جرقه‌ای روشن کرد. جرقه‌ای مبنی بر این که «من باید دنیا را تغییر بدم». تغییر دنیا، کار سختیه. خیلی از ما جایی از زندگی این قصد رو داشتیم ولی کار خاصی براش نکردیم. خیلی‌ها هم حرکتایی زدیم ولی بعدا سرمون به سنگ خورده. خلاصه که خیلیامون اونقدری دیوانه بودیم که روزی بخوایم دنیا رو تغییر بدیم و به قول استیو جابز، افرادی که اونقدر دیوانن که فکر می‌کنن می‌تونن دنیا رو تغییر بدن، دقیقا همونایین که دنیا رو تغییر میدن.

در همون سال‌ها بود که ما مهاجرتی از تهران به بندرعباس داشتیم و خب حقیقتا این مهاجرت و دوری از فضای تهران – بویژه محله‌ای که درش بزرگ شده بودم و طبیعتا بسیاری از هم‌کلاسی‌های دبیرستانم هم قرار بود همون بچه‌های راهنمایی و دبستان باشند – باعث شده بود کمی ناامید و افسرده باشم. تمام این دلایل دست به دست هم دادند که من تصمیم بگیرم که بخوام استیو جابز دوم باشم (شاید اشتباه همین بود، هوم؟).

خلاصه شبانه‌روز در حال ایده‌پردازی بودم. اما ایده‌ها همین جا متوقف نشدند. ایده‌ها خیلی بیش از اون چه که فکر کنید پیش رفتند در ذهنم. اما نیاز داشتم یک محرک خیلی اولیه داشته باشم. نمی‌دونستم چه محرکی ولی بهرحال یک محرک نیاز بود.

محمدرضا حقیری (چپ) و رضا باقرزاده (راست) - توسعه‌دهندگان پروژه جبیر

من باید سیستم‌عامل بسازم

بالاخره پیداش کردم. محرکی که لازم داشتم تا باهاش دنیا رو تغییر بدم، پیدا کرده بودم. شاید باورتون نشه ولی به معنای واقعی در نقطه نقطه بدنم شور و شوق رو حس می‌کردم و برای انجام این کار، انگیزه بسیار بسیار زیادی داشتم. حالا که این انگیزه بود، سوال اینجاست که چرا نه؟ اما قبل از هرچیزی بهتره ببینیم که این انگیزه چی بود.

نمی‌دونم شما چقدر با نشریات قدیمی آشنایید ولی نشریه مورد علاقه من، یا بهتر بگم یکی از نشریات مورد علاقه من، مجله دانشمند بود. مجله دانشمند مطالب علمی و فنی جالبی داشت. در اون می‌شد از ژنتیک و زیست‌شناسی تا هوش مصنوعی و … رو خوند و یاد گرفت و لذت برد. در بسیاری از شماره‌هاش، کارهای عملی رو توضیح می‌داد که شما می‌تونستید در خانه انجام بدید و … . خلاصه کلام که یکی از بهترین نشریاتی بود که می‌خوندم.

در تابستان ۸۹ یا ۹۰ بود که درست یادم نیست؛ در یکی از شماره‌های دانشمند کتاب «سیستم‌های عامل: طراحی و پیاده‌سازی» اثر «اندرو استوارت تنن باوم» معرفی شده بود. به صورت خلاصه بگم، در این مطلب اومده بود که انگیزه تنن‌باوم از نوشتن این کتاب چی بوده و چه فرایندی (بسته شدن کد منبع یونیکس نسخه ۷) باعث شد که سیستم‌عامل خودش رو از بیخ بنویسه و بعد از اون، شروع کنه به این که مراحل توسعه رو مستند کنه و در قالب یک کتاب برای دانشجویانش و هم‌چنین علاقمندان عرضه‌ش کنه.

اما این کل ماجرا نبود. آخر این مطلب اشاره شده بود که این کتاب و این سیستم‌عامل (مینیکس) باعث شدند که دانشجوی فنلاندی بی‌اعصاب، یعنی لینوس تروالدز؛ برای این که بتونه با مینیکس درست و حسابی کار کنه و گروه‌های گفت‌وگو رو بخونه و … یه سری ابزار توسعه بده و در همین حین یک هسته هم از بیخ و بن بنویسه. در ادامه توضیح داده شد که لینوس تروالدز یک باره هاردش رو نابود کرد (و خب شاید این نابودی یک‌باره هارددیسک که در میان لینوکسی‌ها شایعه، از همین قضیه نشات بگیره 😂) و این نابودی باعث شد که سیستم‌عامل خودش – که ملغمه‌ای از ابزارهای پروژه گنو و کرنلش بود – رو روی دستگاهش نصب کنه.

در ادامه کمی به تاریخچه لینوکس و دعواهای روتین تروالدز با بقیه اشاره کرده بود. این بخش کاملا من رو شیر کرد. من این بند رو که خوندم (و دقیقا یادمه که داخل یک خودرو هم بودیم که من این مطلب رو خوندم) با صدای بلند گفتم که «من باید سیستم عامل بسازم» طوری که خونواده هم نگاهشون به سمتم برگشت. خلاصه که این شد که من تصمیم گرفتم که اولین پروژه خیلی جدی زندگیم، یک سیستم عامل دسکتاپ باشه.

نخستین مطالعات، نخستین پیاده‌سازی‌ها

خب من بعد از خوندن اون مطالب یادمه که کتابی به اسم «کلید لینوکس» که آموزشش بر مبنای «اوبونتو ۱۰.۰۴» بود رو خوندم و خیلی چیزا ازش یاد گرفتم. در عین حال، روی یک ماشین مجازی اوبونتو نصب کردم و کمی از آموزش‌هایی که از لینوکس دیده بودم بهره بردم که ببینم چه خبره و دنیاش دست کیه. بعد از اون خلاصه اینطور شد که یک روز تصمیم گرفتم اوبونتو ۱۱.۰۴ (یا دقیق یادم نیست، ۱۱.۱۰) رو روی لپتاپم نصب کنم و حین نصب کل دیتام هم پرید.

بعد از این نصب، شروع به این کردم که یاد بگیرم که چطور می‌تونم شخصی‌سازی کنم و تا حد خوبی هم موفق بودم. اما هنوز کلی علامت سوال در ذهنم بود. به همین خاطر، کاری که کردم این بود که وارد فروم اوبونتو شدم و این سوالات رو پرسیدم. این‌گونه بود که ماجرای عریض و طویل جبیر، آغاز شد …

این داستان ادامه دارد …

تا همین الان، این مطلب شدیدا طولانی شده. به همین خاطر این مطلب رو اینجا قطع می‌کنم و اجازه می‌دم که شما حدس بزنید باقی ماجرا چی شد. البته دروغ چرا، باقی ماجرا رو خیلی زود (شاید حتی فردا شب) در وبلاگ منتشر می‌کنم و منتظر بازخوردهای شما می‌مونم.

امیدوارم که این مطالب، اطلاعات خوبی به شما از روند یک پروژه اوپن سورس که از قضا در جاهای مختلفی به شدت اشتباه زده؛ بده و براتون مفید واقع بشه. از این که وقت گذاشتید و این مطلب رو خوندید، ممنونم.

Share