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

جمعه‌های نرم افزار آزاد و بازمتن؛ شما هم می‌تونین بخشی از این دنیای حرفه‌ای باشین

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

اما از کجا شروع کنیم؟ از فردا؟ احتمالا خیلی‌هامون ماه‌ها یا حتی سال ها است که قراره از فردا اینکار رو شروع کنیم. اما یه ایده بهتر هم هست: از همین جمعه شروع کنیم! از امروز مثلا (: یا مثلا از پنجشنبه. توی دنیا برنامه‌ای هست به اسم جمعه‌ها با اوپن سورس که تشویق می‌کنه آدم‌ها بخشی از روز جمعه که می‌شه آخرین روز کاری‌شون رو به کمک به نرم‌افزارهای آزاد اختصاص بدن. پیشنهاد اینه که برین سراغ پروژه‌هایی که براتون جالبه و سورسشون رو روی گیت‌هاب پیدا کنین و اونها رو فالو کنین. ایشوها رو ببینین و اگر چیزی به نظرتون جالبه سعی کنین برای خودتون حلش کنین. اگر تا حدی موفق بودین می تونین زیر ایشو بگین دارین چیکار می کنین و پیش برین. معلومه که اصل اول اینه که پرمدعا و اسپم نباشیم. واقعا دنبال یاد گرفتن باشیم و همکاری کردن و لذت بردن ازش. من اگر بخوام رو چیزی کار کنم اول سعی می کنم مساله رو حل کنم .. مثلا تا ۷۰٪ و بعد تازه بگم که علاقمند به کار روی این ایشو هستم و اگر موافقت شد نشون بدم که دارم چیکار می‌کنم.

برای شروع می‌تونین سراغ باگ‌های ساده‌تر برین. مثلا توی ایشوها دنبال چیزهایی مثل good for beginners بگردین یا حتی با استفاده از سایت‌هایی مثل Up for Grab (میوه آماده چیدن) ایشوها و باگ‌ها و مشارکت‌های مناسب برای تازه کارها رو پیدا کنین. اگر هم دنبال پروژه‌های حرفه‌ای تر هستین یک ایده خوب اینه که کامیت‌ها رو نگاه کنین و ببینین مشکلات قبلی رو آدم‌های حرفه‌ای تر چطوری حل می کنن. اینطوری هم با پروژه و کدش آشناتر می‌شین و هم شیوه کار بقیه رو می‌بینین و کم کم پترن‌ها براتون آشناتر می‌شه.

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

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

در مورد «انجمن نرم‌افزارهای آزاد ایران»

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

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

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

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

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

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

راستی! اگر یه کشور معقول معمول بودیم منطقا بد نبود انجمنی باشه برای دفاع از حقوق و ترویج نرم افزارهای آزاد اولی به این سه شرط:
1. برآمده و وابسته به جامعه
2. کاملا غیر دولتی / حکومتی
3. صد در صد شفاف؛ برای هر کسی در هر لحظه‌ای

اگر زمانی بود خبرم کنین (:

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

ایمیلی از ریچارد استالمن

From:   Richard Stallman

Subject Re: RMS: users request you perhaps 
program HURD: they fear the path the linux 
kernel is going.

Date:   Wed, 27 Nov 2019 23:17:07 -0500

[[[ To any NSA and FBI agents reading        ]]]
[[[ my email: please consider                ]]]
[[[ whether defending the                    ]]]
[[[ US Constitution against all enemies,     ]]]
[[[ foreign or domestic,                     ]]]
[[[ requires you to follow Snowden's example.]]]

GitHub's encouragement of sloppy
licensing, no licensing, or licensing
under only a single version of the
GPL, has done terrible harm to our
community.

GitHub was so bad for free software,
all along, that I could imagine
Microsoft's making it less bad,
or making it more bad.  We should
judge by what actually happens,
not by prejudice.

Keep in mind that Apple is
much worse than Microsoft.

-- 

Dr Richard Stallman
Founder, Free Software Foundation
(https://gnu.org, https://fsf.org)
Internet Hall-of-Famer
(https://internethalloffame.org)

ظاهرا مایکروسافت بزرگترین شرکت اوپن سورس جهان شده؛ با آزاد کردن ۶۰هزار پتنتش

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

شبکه Open Invention Network حدود ۲۶۵۰ عضو که توشن اسم‌هایی مثل گوگل، آی بی ام، ردهت و سوزه به چشم می‌خورن. مدیر عامل این شبکه اعلام کرده که «مایکروسافت هر چیزی که داره رو آورده. چه تکنولوژی قدیمی‌ترش مثل اندروید و کرنل لینوکس و اوپن استک و چه تکنولوژی‌های جدیدترش مثل LF Energy و هایپرلجر و همه قبلی‌ها و بعدی‌هاشون».

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

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

مایکروسافت توسعه ویندوز رو به گیت منتقل کرد

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

این سوییچ به گیت توی مایکروسافت تقریبا ۳ ماه طول کشیده و در طولش دولوپرها کم کم به گیت اومدن تا مطمئن بشن که همه چیز درست پیش خواهد رفت. در حال حاضر ۳۵۰۰ نفر از ۴۰۰۰ دولوپر ویندوز، روی گیت کار می کنن و وندورهای گیت مثل اتلسین، تاور و گیت کراکن در حال هماهنگ کردن ابزارهاشون با ویرچوال فایل سیستم گیت مایکروسافت هستن.

لحظه ای جالب در دنیای امنیت: کنگره آمریکا به سیگنال سوییچ کرد

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

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

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

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

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

برای نجات اینترنت آزاد، جلوی این پیشنهاد محدود کننده بایستید #DialUp

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

یازده روی دیگه پیشنهاد فنی ای در دستور کار قرار می‌گیره که با اضافه کردن DRM به براوزرها، به توزیع کننده های ویدئو امکان ایجاد محدودیت های زیادی می ده. مشکل ما با DRM یا همون «جنبش محدود سازی»‌ که البته طرفدارهاش بهش می گن «مدیریت حقوق دیجیتال» در دو نکته است:

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

حالا این پروپوزال جدید کنسرسیوم به اسم EME (Encrypted Media Extensions) که از طرف نت فلیکس، اپل،‌ گوگل و مایکروسافت با دفاع سرسخت ازش در حال تصویبش هستن و خب در واقع هزینه های کنسرسیوم وب هم تا حد زیادی از پول همین شرکت ها می چرخه. راه های مقابله ما اعتراض به مساله است. تیم برنرز لی که مبدع وب است در کنسرسیوم است و مردم دارن تلاش می کنن در کمپین #DialUp ازش بخوان با این مساله مخالفت کنه. ماها از ایران می تونیم در کمپین ایمیلی شرکت کنیم و خارجی ها حتی تماس تلفنی هم می تونن بگیرن. یک راه قوی دیگه لغو اشتراک نتفلیکس در اعتراض است یا راهی عمومی تر، فرستادن یک سلفی با شعار مخالفت با ای ام ای.

درسته که چیزی که ما بهش تو ایران می گیم «وب» بسیار محدودتر از این حرف ها است ولی تفاوت این ماجرا و شرایط ما در اینه که شرایط ما، ویژه ما است و کاملا منطقه ای و دوره ای ولی مسائلی مثل EME و PIPA و غیره، کلیت وب در طولانی مدت رو دچار نقصی جدی خواهند کرد که بعدا رفع کردنش بسیار سخت خواهد بود.

«(تقریبا) همه چیز را بازمتن کنید» مقاله‌ای خوب از تام پرستون-ورنر

اشاره: متن پیش رو برگردان پستی است که Tom Preston-Werner در وبلاگش با عنوان Open Source (Almost) Everything منتشر کرده و به جهت اهمیت مطلبی که در آن بیان کرده، نظیر ترس کسب‌وکارها از منبع باز کردن محصولات‌شان، مرور آن ضروری می‌نماید. او در این نوشته توضیح می‌دهد که چرا و چگونه بر ترس متن‌باز کردن نرم‌افزارهای‌شان غلبه کرده و به سمت ایجاد کسب‌وکاری بر مبنای نرم‌افزارهای متن‌باز حرکت کردند. این متن را امیرپوریا مهری ترجمه کرده و من در جادی.نت بازنشرش می‌کنم. شاید من در مورد جزییات یا حتی استفاده از عباراتی مثل «بازمتن» در مقابل «آزاد» نظرات متفاوتی داشته باشم ولی در کل خوندن این مطلب بسیار راهگشا است.


tom

در اواخر سال ۲۰۰۷، من و کریس (Chris Wanstrath) شروع به کار بر روی گیت‌هاب کردیم، کار به دو قسمت تقسیم شد: کریس بر روی توسعه‌ی برنامه‌های Rails متمرکز بود و من روی Grit کار می‌کردم که نخستین Git‌ نوشته شده بر پایه‌ی Ruby بود. پس از شش ماه توسعه، Grit به اندازه‌ی کافی آماده بود تا قدرت‌بخش گیت‌هاب شود و سایت را به انتشار عمومی دربیاوریم. در همین حال ما با سوال جالبی مواجه شدیم:

بهتر است Grit را متن‌باز کنیم و یا این که کدهای آن را به صورت اختصاصی نگه داریم؟

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

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

چرا متن‌باز کردن (تقریبا) همه‌چیز این‌قدر هیجان‌انگیز است؟

اگر آن را به شیوه‌ی درست انجام دهید، کدهای متن‌باز تبلیغ بزرگی برای خود و شرکت‌تان خواهد بود. در گیت‌هاب دوست داریم درباره‌ی کتابخانه‌ها و سیستم‌هایی که کدهای آن را زده‌ایم و هنوز متن‌بسته‌اند، ولی تصمیم داریم آنها را متن‌باز کرده، به‌طور عمومی بحث کنیم. این شگرد چندین مزیت در خود دارد. از جمله کمک می‌کند تا تععین کنیم چه چیزی را باید متن‌باز کرده و اهمیت آن برای ما چقدر است تا در اولویت کاری انتشار قرار دهیم. ما اخیرا Hubot، چت‌بات‌مان را منبع باز کردیم؛ تا شمار زیادی را خوشحال کنیم. در عرض دو روز ۵۰۰ نفر در گیت‌هاب به بررسی آن پرداختند و ۴۰۹ رای مثبت در وب‌سایت Hacker News نصیب این برنامه شد. این کار نزد مردم به حسن‌نیت گیت‌هاب ترجمه می‌شود و موجب افزایش شمار طرافداران دو‌آتشته برای ما شد.

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

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

اگر به دنبال استخدام هستید، بهترین مصاحبه‌ی فنی ممکن، این است که اصلا صورت نگیرد؛ چرا که داوطلب پیش از این در یکی از پرو‌ژه‌های منبع باز شما دست برده است. هنگامی که برتری فنی در چنین مسیری تثبیت شود؛ تمام آنچه باقی می‌ماند، بررسی این است که آیا فرد به فرهنگ شرکت‌تان می‌خورد یا نه و سپس مرحله‌ی متقاعد کردن او تا برای‌تان کار کند. اگر آنها درباره‌ی کدهای متن‌باز-ای که نوشته‌اند مشتاق باشند؛ و شما از شمار شرکت‌هایی باشید که به کدهای تمیز اهمیت می‌دهد (که باید باشید) این فرایند (استخدام) باید ساده باشد. ما Vicent Martí را پس از این‌که کارهای درخشان او را روی کتابخانه ی libgit2 دیدیم، استخدام کردیم. پروژه‌ای که در گیت‌هاب رهبری‌اش می‌کنیم تا قابلیت‌های اصلی Git‌ را بر روی کتابخانه‌ی مستقل C ببریم. مصاحبه ی فنی نیاز نبود. Vicent مهارت‌های اش را از طریق کدهای متن‌باز-اش به اثبات رسانیده بود.

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

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

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

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

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

خب، پس چه موقع نباید نرم‌افزارم را متن‌باز کنم؟

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

  • هسته‌ی برنامه‌ی اصلی مبتنی بر Rails گیت‌هاب (وقتی متن‌بسته است راحت می‌توانید آن‌را بفروشید)
  • برنامه‌ی Jobs Sinatra (ساخته شد تا در گیت‌هاب دات کام ادغام شود)

این هم تعدادی نمونه از چیزهایی است که متن‌باز کردیم به همراه دلیل آن:

  • Grit (Git bindings همه منظوره، مفید برای ساختن ابزارها)
  • Ernie (BERT-RPC سرور همه‌منظوره)
  • Resque (job processing همه‌منظوره)
  • Jekyll (صفحه استاتیک‌ساز همه‌منظوره)
  • Gollum (ویکی اپ همه‌منظوره)
  • Hubot (چت‌بات همه‌منظوره)
  • Charlock_Holmes (character encoding detection همه منظوره)
  • Albino (syntax highlighting همه‌منظوره)
  • Linguist (filetype detection همه‌منظوره)

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

مجوز درست حسابی کدام است؟

من مجوز MIT را ترجیح می‌دهم و تقریبا تمام چیزهایی که در گیت‌هاب متن‌باز کردیم با این مجوز منتشر شدند. من این مجوز را به چندین دلیل دوست دارم:

  • کوتاه است. هر کسی می‌تواند متن این مجوز را مطالعه کرده و بفهمد دقیقا چه می‌گوید بدون این‌که نیاز باشد با پرداخت حق مشاوره، وکلا را پول‌دارتر کند.
  • به اندازه‌ی کافی از کدنویس حمایت می‌کند تا مطمئن باشم اگر کد به درستی کار نکرد، از من شکایت نمی‌شود.
  • هر کسی پیامدهای قانونی مجوز MIT را می‌فهمد. مجوزهای عجیب-و-غریب مثل WTFPL و Beer تظاهر می‌کنند که در میان مجوزهای آزاد بهترین هستند، اما کاملا در این هدف شکست خورده‌اند. این مجوزهای حاشیه‌ای بیش از حد مبهم و غیرقابل اجرا هستند تا برای استفاده در شرکت‌ها قابل قبول باشند. در سوی دیگر، مجوز GPL‌ بیش از اندازه محدود شده و متعصبانه است تا قابل استفاده برای عموم کارها باشد. من می‌خواهم همه بتوانند از کدهایم بهره‌مند شوند، «همه». این چیزی است که از واژه‌ی «باز» و «آزاد» تداعی می‌شود.

خب، حالا می‌پرسید چگونه آغاز کنم؟

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