مصاحبه با اهالی نرم‌افزار آزاد: فاروق کریمی‌زاده

دومین قسمت از این مجموعه

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

خودت رو معرفی کن

فاروق کریمی زاده هستم. معمولاً دوست دارم مردم من رو فاروق صدا کنند. علاقه‌مند به ریاضیات گسسته، الکترونیک، تکنولوژی، فلسفه، الهیات، ادیان به‌خصوص ابراهیمی‌ها و بلاخره کامپیوتر‌ها و فرهنگ آزاد که شامل نرم‌افزار آزاد، کتاب‌های آزاد و «علم باز»(به انگلیسی: Open science) می‌شود و البته به این‌ها ختم نمی‌شود.

آواتار من نشان‌دهنده عشق و ارادت من هست. حدس این که این عشق و ارادت به چه کسی یا چیزی هست، به عهده بقیه می‌گذارم.

فعالیت و تجربه‌های نرم‌افزار آزادی

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

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

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

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

رفته‌رفته کار‌هایی که در جامعه انجام می‌دادم باعث جلب اعتماد جامعه شد. و نهایتاً سر از شورای جامعه در آوردم که اعضایش هر کدام مسئولیتی داشتند و روی جامعه بشدت تأثیر گذار بودند. آن زمان تنها دیسکورد را داشتیم و یافته‌های خود را باید به شخصی به اسم «عمو ایوان» می‌دادیم تا او در وب‌سایتش در Google Sites بگذارد.

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

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

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

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

اما خب بنده کل وقت خود را در جامعه هکر‌های موز نگذراندم. یکی از بازی‌های مورد علاقه بنده ماین‌کرفت(Minecraft) است. زمانی که به دنبال معادل آزاد آن می‌گشتم، یکی از گزینه‌ها ماین‌تست(Minetest) بود که تا به امروز به آن معتاد شده‌ام! ولی خب ماین‌تست در مقایسه با ماین‌کرفت واقعاً توی ذوقتان می‌زند. بر خلاف ماین‌کرفت، با نصب ماین‌تست شما تنها موتور بازی‌سازی را نصب می‌کنید به همراه یک بازی(خودشان می‌گویند subgame) بسیار کوچک که تنها برای موارد توسعه موتور کاربرد دارد. اگر می‌خواهید یک بازی واقعی داشته باشید، باید یکی برای موتور ماین‌تست نصب کنید یا این که روی یک سرور بازی کنید. حدود یک‌سالی از الآن (۱۴۰۲) می‌باشد که من تلاش می‌کنم در توسعه بازی Minetest CTF مشارکت کنم. مشارکت بنده بیش‌تر به شکل کد و کمتر به شکل اضافه کردن نقشه(map) به بازی است. واکنش کاربران نسبت به این بازی از این دو حالت معمولاً خارج نیست: چه بازی بدرد نخوری من بازیش نمی‌کنم. چه بازی بدرد نخوری و من الآن چند سال هست دارم بازیش می‌کنم. بنا به تخمین من این بازی دستکم ۱۰ هزار بازی‌کن از کشور‌های مختلف طی یکی دو سال گذشته دارد که در زمان‌های مختلف آنلاین می‌شوند. به یاد می‌آورم در زمان نوجوانی زمانی که در انجمن فارسی اوبونتو پرسیدم برای لینوکس بازی معرفی کنید، اعضای قدیمی و متشخص جواب دادند که لینوکس مناسب بازی کردن نیست و قص علی هذا.

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

پروژه‌های شخصی

برای دیدن یک فهرست کامل باید به وب‌سایتم نگاه کنم. اما اولین چیزی که به ذهنم می‌آید چوج (chooj) است. یک کلاینت ماتریکس برای کای‌او‌اس. در مقام دوم بهترین پروژه احتمالاً پروژه‌ای باشد که هنوز منتشر نشده. یک موتور تشخیص کلمه (wake word detection) که از متدی بسیار بهینه‌تر از متد‌های رایج استفاده می‌کند. اتفاقاً این موضوع نیز زمینه پژوهشی بنده است. من برای تشخیص کلمه از یادگیری ماشینی تکاملی با استفاده از برنامه‌نویسی ژنتیک خطی استفاده می‌کنم. تا به الآن توانستم به دقت کلی ۷۵ درصد با استفاده از حدود ۲۵۶ دستور ماشین برسم. توجه کنید که با توجه به این که در این ۲۵۶ دستور پرش به عقب وجود ندارد، در نتیجه حلفه هم نداریم و واقعاً برنامه اجرایش کوتاه است. امیدوارم بتوانم مقاله آکادمیک مربوط به پروژه را به صورت دسترسی باز (open access) و با استفاده از پروانه‌های آزاد منتشر کنم.

دیگر پروژه‌های آزادم یک ربات دلتاچت برای پیاده‌سازی OAuth2 است که اجازه می‌دهد با استفاده از دلتاچت وارد دیسکورس (Discourse) شوید. علاوه‌بر این یک وب اپ برای دیدن بازی فعلی در سرور Minetest CTF نوشتم که با وجود پیش‌نمونه بودن مورد اقبال بازی‌کنان قرار گرفت و البته باعث حسن شهرت من بین آن‌ها شد! نهایتاً پروژه‌ای که هنوز از آن نگهداری می‌کنم، KaiScr است که برای دیدن صفحه گوشی کای‌اواس از کامپیوتر یا عکس گرفتن از آن است.

پروژه‌های آزاد مورد استفاده

  • راست (Rust) زبان برنامه‌نویسی مورد استفاده ام در یادگیری ماشینی تکاملی
  • ‏peek برای گرفتن انیمیشن‌های کوتاه از صفحه
  • ‏obs studio برای ضبط حرفه‌ای صفحه‌نمایش برای ویدئو‌های آموزشی یا بازی
  • دلتاچت (DeltaChat)
  • ان‌هکو (nheko) برای چت ماتریکس روی کامپیوتر
  • چوج (chooj) و فلافی‌چت (fluffychat) برای همین چت روی گوشی و تبلت.
  • ‏Pachli به عنوان کلاینت ماستودون روی اندروید و البته خود ماستودون
  • اف‌دروید

ولش اینا خسته‌کننده هستند. برویم سراغ قسمت جذاب، یعنی بازی‌ها:

  • ماین‌تست (Minetest): یک دنیای بی‌نهایت بزرگ با معکب‌هایی که می‌تونید هر کدوم ر بردارید و هر جا خالی هست مکعب بگزارید تا هر چیزی که دوست دارید بسازید.
  • وار زون ۲۱۰۰ (warzone2100): بازی استراتژی جنگی زمان واقعی. جنگ بین ماشین‌ها انجام می‌شود و قسمت جذابش این است که می‌توانید ماشین‌ها را خودتان طراحی کنید. و البته با پژوهش ماشین‌های خود را پیشرفته‌تر کنید یا به سلاح‌ها یا موتور‌های بهتری مجهز کنید. به اندازه‌ای مسیر پژوهش در بازی زیاد است که ۱۰ نفر در یک بازی هر کدام می‌توانند مسیر پژوهش و در نتیجه ادوات جنگی منخصر به فرد خود را به دست بیاورند.
  • ‏Battle for Wesnoth: بازی استراتژی اما نوبتی با گرافیک جذاب پیکسلی.
  • ‏SuperTuxKart: بازی ماشین سواری مسابقه‌ای

فعالیت‌های دیگر

ویدئوی آموزشی و ویدئوی بازی گاه و بی‌گاه ضبط می‌کنم. در مورد فلسفه، الهیات و ادیان می‌خونم. به مواد متنی و شفاهی ادیان ابراهیمی علاقه دارم. خودم مسلمان هستم. امید دارم طی ۱۰ الی ۲۰ سال آینده کل قرآن را یاد بگیرم. توجه کنید که تفاوتی بین یاد گرفتن و حفظ کردن وجود دارد. علاقه دارم طی سالیان آینده عربی و آلمانی قوی‌ای داشته باشم و بتوانم عبری و اسپرانتو را نیز یاد بگیرم. به شیوه‌های جایگزین محاسبه مثل رایانه‌های مبنای ۳ و رایانه‌های آنالوگ علاقه دارم.

دلیل انتخاب نرم‌افزار آزاد

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

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

نصیحت

  • برای تغییر از خودت شروع کن
  • بهترین حالت تغییر (شامل یادگیری) معمولاً آهسته و پیوسته است.

مطالب من

مطلب من زیاد می‌نویسم. این‌جاها می‌توانید مطالبم را تحت پروانه‌های آزاد پیدا کنید:

https://far.chickenkiller.com https://pcworms.ir https://blog.bananahackers.net https://fa.wikipedia.org

نحوه ارتباط

رایانامه: fkz@riseup.net

نکته اضافی

امیدوارم یک روز از شر اندروید خلاص بشم. چرا من باید ۱۶ الی ۳۲ گیگابایت رم و یک SDK چند گیگابایتی لازم داشته باشم تا برات بتونم برنامه بنویسم؟

برای تغییر از خودت شروع کن
–فاروق کریمی‌زاده