کی هستی و داری چی کار می کنی ؟
من دانیال بهزادی هستم. مهندس نرمافزار و در حال حاضر هم دارم در دانشگاه تهران کارشناسی ارشد هوش مصنوعی و روباتیک میخونم. در زندگی عادی و روزمره هدفم آشنا کردن مردم با ایدهی آزادی دانش و فواید اون برای خود مردم و جامعهاست. این ایده به صورت خلاصه میگه که اطّلاعات و دانشی که افراد در هر حوزهای به دست میآرن، حاصل تلاشها و کارهای پیشینیانشونه و به عبارتی اونها روی شونهی پیشینیانشون که در اون حوزه کار میکردن و دانششون رو آزادانه در اختیار اونها قرار دادن ایستادهاند. پس اونها هم وظیفهی دارند در قبال لطفی که متخصّصین قبلی به اونها کردند، نتایج کارها و تلاشهاشون رو به صورت آزادانه در اختیار بقیهی اعضای جامعه قرار بدند. با این کار رشد علم در اون بخش رشد بیشتری پیدا میکنه، چون دیگه لازم نیست افراد جدیدی که علاقهمند به تحقیق در اون حیطه هستند وقت و توانشون رو صرف این کنند که یک راه صد بار رفته شده رو دوباره از ابتدا پیدا کنند و در اون مسیر قدم بردارند، بلکه میتونند با رجوع به نتایج کارهای افراد قبلی، کارشون رو از انتهای مسیری که اونها طی کردند ادامه بدند.
شاید این ایده به نظر خیلی بدیهی برسه و بگید که خب مگه الآن غیر از اینه؟ ولی با نهایت تأسّف باید گفت که در بسیاری از حوزههای علوم، مخصوصاً بحثهای عملی داریم در جهتی خلاف این مسیر حرکت میکنیم. امروزه شاهد این هستیم که نهادهای دارای سرمایهی سنّتی یعنی پول به درستی فهمیدن که دانش سرمایهی اصلیه و دارن به سمتی میرن که بتونن با پولی که دارن دانش بخرن و خب طبق عادتی که در نگهداری پول داشتن به دنیال راهی برای این هستن که بتونن سرمایهای که به دست میآرن یعنی دانش رو نزد خودشون به صورت امن نگه دارن تا هیچکس دیگهای نتونه از اون استفاده کنه. نتیجهی این امر میشه این که با استفاده از قدرت و نفوذشون قوانینی رو تصویب میکنن که به اونها اجازهی انحصار دانش رو بده. از میان این قوانین دستساز غیر عادلانه و به نظر من غیر انسانی میشه به قانون حق رونوشت (کپیرایت) یا قانون جدیتر و ضدانسانیتر حمایت از ایدهها (پتنت) اشاره کرد. این قوانین از نظر من به صورت مستقیم به ضرر جامعه هستند و باید به هر شکل ممکن با اونها مبارزه کرد. یکی از مصادیق بارز مبارزه با ایدهی انحصار دانش، «ویکیپدیا»ست که داره دانش رو به صورت آزاد و بدون هیچ وابستگیای در دسترس همگان قرار میده.
یکی از حوزههایی که این انحصار دانش در اون بسیار مشهودتر و اثرش بسیار ویرانگرتره، حوزهی رایانه و به خصوص نرمافزاره. این حوزه هم مثل باقی علوم تا سالهای پایانی دههی ۷۰ میلادی به صورت عمومی عاری از انحصار بود، ولی در اون سالها نهادهای دارای سرمایه متوجّه ارزش این بخش از علوم شدند و به سرمایهگذاری در اون پرداختند. حاصل این سرمایهگذاریها حضور افرادی خارج از این حوزه بود که تخصّصشون بیشتر در بازاریابی و تجارت بود، ولی به یکباره تبدیل به چهرههایی شاخص شدند، افرادی مثل بیل گیتس و استیو جابز. شرکتهایی که به این صورت وارد حیطهی رایانش شدند از همهی توانشون استفاده کردند تا این حیطه رو تا جای ممکن به انحصار خودشون در بیارند تا جایی که مثلاً دیگه هیچکس نمیتونست نرمافزاری رو بخره و مالک اون باشه، بلکه همیشه شرکت سازنده مالک نرمافزار بود و افراد تنها مینونستند حق استفاده از اون نرمافزار رو -اون هم با محدودیتهای تعیین شده توسّط مالک نرمافزار- بخرند.
این امر منجر به این شد که افراد باسابقهی این حوزه احساس کردند که دیگه دستگاهها توسّط صاحبانشون کنترل نمیشن و از اونها دستور نمیگیرن، بلکه به دست سازندگانشون کنترل میشن و این امر به این معنیه که با داشتن اون دستگاه یک جاسوس رو به زندگیمون وارد میکنیم. پس ریچارد استالمن علیه این وضع قیام کرد و جنبشی رو به وجود آورد به اسم «نرمافزار آزاد» که هدفش ایجاد نرمافزارهایی بود که همه بتونند ببینند چیکار میکنه، بتونند اون رو آزادانه برای تطابق با نیازهای خودشون تغییر بدند و بتونند بدون هیچ محدودیتی تغییرات خودشون رو منتشر کنند تا بقیهی افرادی که همون نیاز رو دارند مجبور نشند دوباره همین مسیر رو طی کنند و وقتشون رو صرف بهتر کردن نرمافزار موجود کنند. همونطور که در ابتدا گفتم این روش منجر به رشد سریع و شتابان هرچیزی میشه و نتیجهاش این شد که ما امروز مجموعهی تقریباً کاملی داریم از نرمافزارهای آزاد که میتونه اغلب افراد رو از استفادهی نرمافزارهای انحصاری بینیاز کنه و در بیشتر موارد از مشابههای انحصاریاش یا قویتره و یا طبق ذات شتابان توسعهاش به زودی قویتر میشه.
یکی از بزرگترین محصولات این جنبش، سیستمعاملیه با نام «گنو/لینوکس» (http://www.gnu.org/) که اغلب به اشتباه بهش «لینوکس» (http://www.gnu.org/gnu/linux-
از چه سخت افزارهایی واسه کار و زندگی استفاده می کنی ؟
خب مهمترین سختافزار یه توسعهدهنده لپتاپشه و وقتی صحبتاز توسعهی نرمافزاری میشه دو تا گزینه بیشتر باقی نمیمونه: مک بوک یا ثینکپد. از اونجایی که پیشتر هم گفتم با اپل اختلاف جدّی دارم پس گزینهی مکبوک خط میخوره و تنها گزینهی ممکن برای من ثینکپده. در حال حاضر یه ثینکپد مدل T430 دارم از نوع KEG که کارت گرافیک اضافی نداره و فقط با شتابدهندهی گرافیکی خود پردازندهی i5 کار میکنه که برای کار من به اندازهی کافی و حتا خیلی بیش تر از اون قویه. روی این لپتاپ ۱۲ گیگ حافظهی اصلی دارم که البته هنوز موفّق نشدم بیشتر از ۸ گیگش رو پر ببینم. دیسک سختی که روی خودش بود از نوع HDD و به حجم ۷۵۰ گیگه که من اصلاً با اون کار نمیکنم و تمام مدّت خاموشه، در عوض یه دیسک SSD ۱۲۸گیگی بهش اضافه کردم که همهچیزم روی اونه و بسیار ازش راضیم، چون اوبونتو رو در کمتر از ۳ ثانیه از زمان روششدن برام راهاندازی میکنه و همهی نرمافزارهام رو هم با سرعتی نزدیک به سرعت نور داخلش اجرا میکنه. از بهترین قابلیتهای لپتاپهای ثینکپد ترکپوینت اونهاست که احتمالاً با رنگ قرمزش در وسط صفحهکلید همه آشنایی دارن. این دستگاه به من اجازه میده موقع کد زدن یا نوشتن، بدون این که بخوام دستم رو از روی صفحهکلید بردارم بتونم نشانگر موشی رو حرکت بدم که موجب صرفهجویی خیلی زیادی در وقت و انرژی میشه و تمرکز کاری رو هم با درصد بسیار خوبی حفظ میکنه.
قبل از این ثینکپد T430 هم یه ثینکپد T43 داشتم که اون هم پنج-شیش سالی به بهترین شکل برام کار کرد و الآن چهار-پنج سال میشه که دادمش به پسرعموم و اون هم همچنان داره ازش بدون مشکل استفاده میکنه. در این فاصله هم چند تا لپتاپ مختلف از برندهای دیگه داشتم که هرکدوم با این که مدلهای خوب برندشون بودن، ولی برای کار من جوابگو نبودن و به بدترین شکل خراب شدن.
در کنار لپتاپ، برای انجام کارهایی که مربوط به شبکه میشن در خونه از یه برد الکترونیکی هم استفاده میکنم. این برد به نوعی گیتوی همهی دستگاههای دیجیتال خونه محسوب میشه و وظایفی مثل کش کردن دادههایی مثل بهروز رسانیهای نرمافزارها، نگهداری اطّلاعات موردنیاز مشترک بین دستگاهها، بارگیری پروندهها از تورنت، تشخیص مسدود بودن یا نبودن مقصد تراکنشهای شبکه و استفاده از مسیر جایگزین در صورت مسدود بودن و… رو برعهده داره. تا ماه گذشته این کار رو با استفاده از کوبیبرد (http://cubieboard.org/) انجام میدادم. این برد یکی از بهترین گزینههای موجود با توجّه به قیمتشه. کوبیبرد دارای پردازندهی آرم ۷ در قالب میکروکنترلر Allwinner A10، با یک گیگابایت حافظه اصلی، چهارگیگابایت حافظهی حانبی NAND، پردازندهی گرافیکی mali 400 آرم و تعداد زیادی پایهی GPIO است، میشه بهش کارت حافظهی MicroSD و دیسک سخت با رابط SATA وصل کرد و دارای ورودی و خروجیهای USB، مادون قرمز، HDMI، دو تا جک ۳.۵ میلیمتری برای ورودی و خروجی صدا، رابط شبکهی اترنت و… است.
فیلم The Internet’s Own Boy: The Story of Aaron Swartz که به زندگی و مرگ آرون سوارتز یکی پیشگامان آزادی دانش
تا ماه گذشته از تلویزیون استفاده نمیکردم، ولی با خرید یک دستگاه تلویزیون LED پاناسونیک، ایدهی راهاندازی یه مرکز رسانه به سرم زد. خب نخستین ایده استفاده از کوبیبرد برای این کار بود، ولی متوجّه شدم که راهانداز سختافزاری شتابدهندهی گرافیکی mali 400 آزاد نیست و پروژهی lima که برای مهندسی معکوس این پردازنده در حال انجامه با وجود موفّقیتهای زیاد در شبیهسازی راهانداز اصلی اون، برای اجرای نرمافزار سنگینی مثل مدیر رسانهی XBMC و پخش فیلم Full HD در اون خیلی کارا نیست. این شد که به صرافت خرید برد رزبریپای (http://www.raspberrypi.org) که سازگاری کاملی با این نرمافزار داره افتادم و مدل +B اون رو خریدم. رزبریپای نسبت به کوبی برد خیلی ضعیفتره. مثلا از پردازندهی آرم ۶ استفاده میکنه و فقط ۵۱۲مگابایت حافظهی اصلی داره، تنها میشه بهش کارت حافظهی microSD وصل کرد و تعداد پینهای GPIO اون خیلی کمتره. ولی خب در اینجا کار من رو راه میانداخت و با توجّه به قیمت خیلی پایینش خیلی در خریدش تردید نکردم. الآن همهی کارهایی که با کوبیبرد انجام میدادم رو روی این انجام میدم و در کل ازش راضیم.
گوشی تلفن همراهم تا همین اواخر یه SonyEricsson Xperia X10 mini بود که خیلی ازش راضی بودم و با خراب شدن اون بعد از پنجسال، الآن یه Nokia X2_DS گرفتم. خیلی آدم اهل سروکلّه زدن با تلفنی نیستم و شاید یکی از دلایلش اینه که قبل از اینها گوشی Motorola Ming A1200 داشتم که هنوز که هنوزه ندیدم هیچ تلفنی به خوبی اون باشه. با اون گوشی تقریباً هرکاری که میخواستم میکردم و به دلیل باز بودن نسبیاش و استفادهاش از سیستمعامل گنو/لینوکس هیچ مانعی سر راهم نبود. نظر شخصیام اینه که بعد از تولید چنان گوشیای، تولید گوشیهای اندرویدی رفتن بازار در یک مسیر اشتباه بود. در حال حاضر هم منتظر هستم تا تلفنهای فایرفاکسی و اوبونتویی وارد بازار بشن تا یه مقدار وضعیت بازار از این آشفتگی حال حاضرش خارج بشه.
از چه نرم افزارهایی استفاده میکنی ؟
خب متأسّفانه غیر از فیرمور کارت شبکهی بیسیمم (اگه فیرمور رو جزو نرمافزارها حسابکنیم)، نرمافزار استیم برای بازی کردن دوتا۲ با دوستان و سیستمعامل تلفن همراهم (اندروید ۴.۳) همهی نرمافزارهایی که استفاده میکنم، نرمافزارهای آزاد هستند. سیستمعاملم همونطور که پیشتر گفتم توزیع اوبونتو از سیستمعامل گنو/لینوکس هست و از اونجا که به عنوان یکی از اعضای جامعهی کاربران اوبونتو احساس وظیفه میکنم به همهی پرسشهایی که افراد تازهکار در زمینهی کار با اویونتو و نرمافزارهای اون میپرسند پاسخ بدم و خب باید با اونها کار کرده باشم که بتونم پاسخ درست بدم، اکثر نرمافزارهایی که استفاده میکنم همونهایی هستند که به صورت پیشفرض داخل اوبونتو نصب هستند.
روی کوبیبردم از سیستمعامل کوبیان استفاده میکنم که همون دبیان armhf ایه که برای کوبیبرد بهینهسازی شده. روی رزبریپای هم از توزیع گنو/لینوکس OpenELEC (http://openelec.tv/) استفاده میکنم که مخفّف Open Embedded Linux Entertainment Center هست و مرکز رسانهای XBMC رو به صورت Stand-alone روی رزبریپای بالا میآره. اینتوزیع بهینهسازیها خاصی رو روی گنو/لینوکس انجام داده که باعث میشه پایداری سیستمعامل بیشتر بشه و قسمتهای اضافیای که بنا به پیشینهی تولید سیستمعامل گنو/لینوکس مربوط میشه و توی توزیعی با کاربردی خاص مثل این نیازی بهشون نیست از اون برداشته شده یا نحوهی پیادهسازیاس تغییر کرده.
در بخش زبانهای برنامهنویسی مدّتهاست که پایتون یار و همراه صمیمی من در همهی موارده و تقریباً هرکاری که بهم بخوره رو با اون انجام میدم. با استفاده از کتابخونههای قویای که داره به دلیل آزاد بودن این زبان با شتاب خیلی زیادی براش توسعه داده میشه، امروز تقریباً در هر زمینهای با نرمافزارهای اختصاصی اون حوزه کاملاً قابل رقابته و حتا در مواردی میبینیم که مثلاً کتابخونههای numpy و scipy با پیچیدگی یکسان، چندین برابر بهتر و سریعتر از نرمافزاری مثل matlab کار میکنند.
برای برنامهنویسی از IDE ای خودم بر پایهی vim درست کردم استفاده میکنم. در حقیقت خود vim هست که یک سری پلایگنها رو بهش اضافه کردم و اسکریپهایی نوشتم براش که تغییرات مورد نیازم رو توش بده. به نظرم بقیهی IDEها یا خیلی سنگین هستن نسبت به کاری که میکنن یا کارآیی لازم رو ندارن. خوبی vim در اینه که میشه با کمترین تلاش، بیشترین کار رو انجام داد. مثلاً در اون به استفاده از موشی نیازی نیست. اگه بخوام یه مثال بزنم فکر کنید شما میخواید ۱۰ کلمه رو پاک کنید. یه کاربر عادی توی یه نرمافزار عمومی که بهش لقب کاربرپسند میده دستش رو از روی صفحهکلید برمیداره و موشی رو میبره میبره ابتدای کلمه، کلیک میکنه و تا انتهای نه کلمه میبره، بعد کلیک رو رها میکنه و دستش رو از روی موشی میبره روی صفحه کلید و دکمهی پاک کردن رو میزنه. یه کاربر حرفهایتر توی همون نرمافزار دکمههای جهتنما رو میزنه تا برسه به ایتدای کلمه و بعد نه بار shift+del رو میزنه. در صورتی که توی vim این کار فقط با زدن سهتا دکمه انجام میشه: d9w که مخفّف delete 9 words هست. این باعث میشه برای کسی که کارش نوشتن متن و کد زدن هست vim بهترین ویرایشگر متن و محیط برنامهنویسی ممکنه. به همیندلیله که من معتقدم واژهی «کاربر پسند» کاملاً تهی از معنیه و نمیشه اون رو به همین راحتی به کار برد
برای وبگردی از فایرفاکس استفاده میکنم. فایرفاکس هرچیزی که میخوام رو به من میده و من میتونم هرکاری که میخوام رو با فایرفاکس انجام بدم. در این زمینه هیچ مرورگر دیگهای حتا نمیتونه به فایرفاکس نزدیک هم بشه. برای خوندن و فرستادن ایمیلها هم از نرمافزار تاندربرد استفاده میکنم که همیشه در پسزمینه درحال اجراست و هروقت بخوام ایمیل بزنم یا وقتی ایمیل جدید میآد تنها با زدن یک دکمه اون رو میارم رو و کارم رو توش انجام میدم و دوباره ميفرستمش به پسزمینه که محیط کاریم رو شلوغ نکنه. من خیلی به تمیز بودن محیط کاری اعتقاد دارم و مثلاً هیچوقت هیچ ایکونی روی میزکارم نیست، یا سعی میکنم هر برنامهای رو توی یه میزکار جدا باز کنم. این کار بهم قدرت میده فقط روی کاری که میخوام بکنم تمرکز کنم. تا چند وقت پیش از همین تاندربرد برای گپ و گفتگو در محیط IRC و xmpp هم استفاده میکردم که به دلیل نداشتن افزونهی OTR (Off The Recoerd) فعلاً از پیجن برای این کار استفاده میکنم.
برای توییت زدن هم تا چندوقت پیش از یه سرور گنو سوشال (http://gnu.io/social) برای مدیریت حسابم و ریدایرکت کردن محتوای توییتر به اونجا استفاده میکردم و بعد با یه کلاینت گنو سوشال توییتها رو میخوندم و توییت میزدم که دوتا خاصیت عمده داشت: یکی این که دیگه محدودیت دسترسی به توییتر نداشتم و دیگری این که مجبور نبودم جاوااسکریپت غیرآزاد سایت توییتر رو روی سیستمم اجرا کنم. از نظر من جاوا اسکریپت و یا هر کد دیگهای که روی رایانهی افراد اجرا میشه نیازمند اینه که از کاربر اجازه بگیره و کاربرد تأیید کنه که میخواد اون کد روی رایانهاش اجرا بشه یا نه. توییتر این اجازه رو نمیگیره و بدون این کد هم قابل کار کردن نیست. برای همین از اونجا که حتا نمیشه فهمید این کد داره چه کاری روی رایانهی من انجام میده ترجیح میدم ازش استفاده نکنم. البته چند هفته پیش یه اشتباهی روی سروری که گنو سوال روش بود انجام دادم که باعث شد کارکرد برنامه با مشکل مواجه بشه و از اونجا که هنوز وقت نکردم درستش کنم فعلاً از خود رابط وب توییتر استفاده میکنم.
چه کتابی رو دوست داری و آخرین کتابی که خوندی چی بود ؟
این سختترین پرسش این مجموعه برای منه. کلّاً به کتاب خیلی علاقهدارم. از پنجسالگی عضو کتابخونهی کانون پرورش فکری بودم و برخلاف بچّههای دیگه در اون سن که تو کوچه با دوستاشون بازی میکنن روز و شبم در اونجا میگذشت. فکر کنم یکی از دلایل نرد شدنم هم همین دوری از دوستان و بازی کردن با همسنوسالها باشه. یادمه تا قبل از رفتن به مدرسه تمام کتابهای اون کتابخونه رو خونده بودم و تموم کرده بودم (البته اون کتابخونه فقط کتابهای کودکان داشت) و فقط برای دوباره خوندن کتابهایی که دوستشون داشتم به کتابخونه میرفتم. مسيولین اونجا هم من رو میشناختن و وقتی کتابهای جدیدی میاومدن اونها رو تو قفسه نمیچیدن تا من بیام و بخونمشون، بعد در دسترس بقیه قرارشون بدن که البته این مدّت معمولاً خیلی کوتاه بود.
هنوز هم به کتاب خوندن علاقهی خیلی زیادی دارم و هرچند دیگه وقت نمیکنم مثل قدیم خیلی کتاب بخونم، سعی میکنم حتماً یک یا دو کتاب رو در ماه بخونم. سبک ادبی مورد علاقهی من ادبیات گمانهزن هست که شامل زیرسبکهای مثل ادبیات فانتزی، وحشت، جنایی، علمی-تخیّلی و… میشه. به همهی دوستانی که به این سبک ادبی علاقهمندن یا میخوان باهاش آشنا بشن خوندن نشریهی برخط «شگفتزار» (http://www.fantasy.ir/news/
کتابی که در حال حاضر در حال خوندنش هستم کتابیه از ری بردبری در سبک علمی-تخیّلی با عنوان «حکایتهای مرّیخ» که مهدی بنواری اون رو به فارسی ترجمه کرده. خوندن این کتاب خیلی طول کشیده و دلیلش هم اینه که اونقدر کتاب خوبیه که سعی میکنم خیلی آروم آروم بخونمش که هم داستانهاش رو مزهمزه کنم و هم دیرتر تموم بشه. قبل از این هم کتاب خوب دیگهای میخوندم در سبک ادبیات فانتزی به اسم «اقیانوس انتهای جادّه» که نیل گیمن نوشته و فرزاد فربد اون رو ترجمه کرده.
حالا که بحث مطالعه شد اجازه میخوام تبلیغ نشریهی خودمون رو هم بکنم. در سال ۹۲ ایدهای در سر ما بود برای انتشار یک مجلّهی تخصّصی در حوزهی نرمافزار آزاد. برای شروع به کار این نشریه ما احتیاج به حداقل ۲۴ میلیون تومان پول نقد داشتیم و خب مشخّصاً چنین پولی رو نداشتیم. برای همین با ایجاد یک کمپین اینترنتی (http://92.salam-donya.ir/) از هرکسی که علاقهمند به عملی شدن این ایده بود درخواست کمک کردیم تا با اهدای حداقل ۲۴ هزار تومان به ما برای انتشار ۱۲ شماره از این مجلّه کمک کنه. در کمتر از شش ماه مبلغ ۲۶ میلیون تومان از کمکهای مردمی جمعآوری شد و نتیجهی اون ماهنامهای شد با نام «سلام دنیا» تا که امروز سه شماره از اون منتشر شده (http://salam-donya.ir) و میتونید به رایگان اون رو دریافت کنید و شروع به خوندن اون کنید.
17 دیدگاه
Pingback: خودمونی های من و لینوکس۱ “این قسمت: جادوی موز (: “ – نگاه نو