پیدا کردن ایشوهای ساده برای مشارکت در هکتبرفست

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

در واقع ایده اصلی هکتبرفست اینه که دست شما در کارهای واقعی روون‌ بشه. در نتیجه اگر مهارتی دارین که فکر می کنین به اندازه کافی توش پیش رفتین و می تونین کارهای واقعی بکنین الان باید آستین بالا بزنین. در هر حوزه ای که باشین یاد گرفتن گیت و درک عمومی مفهوم پول ریکوئست قدم اوله – البته با فرض اینکه در حد برقراری ارتباط، از پس زبان بر میاین. بعدش باید یک پروژه پیدا کنین که توش مشارکت کنین. خیلی از پروژه ها در صفحه issue (مشکلات) می نویسن چه مشکلاتی دارن یا قدم بعدی شون چیه. اونها همچنین برای پیدا شدن راحتتر مشکلات آسونی که یه تازه کار می تونه برش داره، برچسب هایی مثل up for grabs، low hanging fuit و از بیشتر good first issue می زنن تا بگن این مساله، به نظرشون پیچیدگی خاصی نداره و مناسبه برای کسی که تازه می خواد با ماجرا آشنا بشه.

پس کافیه به گیت هاب برین و در سرچ بار چیزی مثل این بزنین

label:"good first issue" type:issue state:open

و در نتایج، بخش issue ها رو انتخاب کنین. معمولا اونهایی که کامنتشون صفر است انتخاب های بهتری هستن چون هنوز کسی روشون کار نمی کنه. همچنین می تونین با اضافه کردن language:rust یا هر زبانی که دوست دارین، زبان پروژه رو هم انتخاب کنین. معلومه که css و html هم جزو گزینه ها هستن.

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

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

  • زیر ایشو بنویسین که علاقمند هستین روی این کار کنین. مثلا May I start working on this؟
  • پروژه رو Fork کنین تا پروژه روی اکانت شما هم بیاد
  • پروژه رو از اکانت خودتون کلون کنید رو کامپیوتر خودتون
  • یه برنچ جدید باز کنید. مثلا به اسم ایشویی که دارین حل می کنین
  • تغییرات رو انجام بدین و تست کنین و مطمئن بشین دقیق است. اگر لازمه در ایشو از صاحب پروژه نظر بخواین در مورد راه حل و شیوه انجاممش و …
  • کد خودتون رو به گیت هاب خودتون پوش کنین (git push origin branch_name)
  • حالا اگر به صفحه اصلی پروژه برین، می بینین که یه دگمه اومده برای ساخت پول ریکوئست جدید. اونو که فشار بدین می تونین بگین برنچ روی فورک شما رو مرج کنه روی پروژه اصلی. خوبه توی توضیحات دقیق بگین چیکار کردین و یه لینک هم به ایشو بدین که گیت هاب اتوماتیک زیر ایشو هم لینک پی آر شما رو بزنه

و منتظر باشین (:

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

این وسط آدم‌های زیادی هم سعی کردن سایت / ریپوزیتوری هایی بسازن که توش این تیپ ایشوهای راحت رو یکجا جمع کنن، به تفکیک زبان یا چنین چیزهایی. مثلا Up For Grabs یا ایشو هاب یا First Timers Only یا مجموعه مشهور Awesome For Beginners ولی اگر نظر من ر می خواین، همون تکنینک سرچ بهتر جواب می ده‌ (:

ویژه هکتبرفست ۲۰۱۹: شیوه فرستادن پول ریکوئست در گیت هاب

هکتبرفست فرصت خوبیه برای وارد شدن به دنیای حرفه ای تر برنامه نویسی. اگر زبون جدیدی کار می کنین یک پروژه مرتبطش رو پیدا کنین و توش یک مشارکت کنین یا در زبونی که بلدین به کسی کمک کنین. توی این ویدئو نگاهی داریم به شیوه پیدا کردم پروژه های مرتبط و بعد ارسال پول ریکوئست به اون پروژه. انتظار می ره کاری که لازمه رو خودتون بلد باشین و مقدماتی از گیت رو هم بدونین. هک خوبی داشته باشین!

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

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

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

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

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

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

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

نکته ۲: عکس های بالا و پایین، بچه هایی هستن که پارسال تی شرت رو گرفتن و عکسشون رو برای من فرستادن

نکته ۳: سال بعد عکس شما اینجا خواهد بود (: البته اینجای اونجا. یعنی اینجای سال بعد!


مرتضیسم


شهروز.جی


نسرین


ارسلان


فرود و همکارها

سورس calc.exe یا همون ماشین حساب ویندوز روی گیت هاب

اخبار اوپن سورس از مایکروسافت زیاد به گوش می‌رسه و حالا هم کد ماشین حساب ویندوز رو روی گیت هاب گذاشته، اونم با مجوز MIT که حتی از مجوزهای بازی که تبلیغشون می کنیم هم بازتره. با اینم جوز شما حق دارین این سورس رو بردارین،‌ تغییر بدین، ببندین و فایل اجرایی نهایی رو به اسم «ماشین حساب ملی» منتشر کنین و از نظر لایسنسی هیچ خلافی هم نکرده باشین.

رپوزیتوری ماشین حساب ویندوز، تاریخچه رو از ۲۰۱۹ داره و نکته جالبش اینه که از بقیه برنامه نویس‌ها هم خواسته تا اگر کاری به نظرشون می رسه، روش انجام بدن و کامیت کنن. طراحی مدرن ماشین حساب (که یکی از اولین طراحی‌های فلوئنت دیزاین بود) هم باعث نشده که کدبیس قدیمی حذف بشه و شما می تونین حتی کدهایی از ۱۹۹۵ هم توش ببینین. مثلا توابع انجام محاسبات همون‌هایی هستن که از اول بودن و از اعداد گویا (حاصل تقسیم دو عدد صحیح) استفاده می‌کنن. همچنین وقتی لازمه از سری تیلور استفاده می‌شه تا اعدادی که به شکل اعداد گویا قابل بیان نیستن، تقریب زده بشن. بررسی کد نشون می ده این انتخاب در اوایل (مثلا ۱۹۸۹) نبوده و اون موقع از اعداد با ممیز شناور استفاده می‌شده.

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

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

منبع اصلی

به نیمه اکتبر رسیدیم ولی هنوزم وقت دارین توی هَکتُبرفِست، تی شرت برنده بشین

آلمانی ها یه جشن به اسم اکتبرفست دارن که تو تبلیغات این شکلی است:

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

بعد از ثبت نام در سایت هکتبرفست در طول ماه اکتبر ۵ تا پول ریکوئست به پروژه‌های دیگران در گیت‌هاب بفرستین و یکی از دریافت کننده‌های ۵۰هزار تی‌شرت ایونت بشین؛ به همراه استیکرها و از همه مهمتر، سابقه ۵ تا پول ریکوئست

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

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

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

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

آپدیت:
اینجاها هم برای پیدا کردن اولین باگ ها خوبن:
فهرستی از باگ های خوب برای تازه کارها
سرچ گیت هاب برای باگ های مناسب تازه کارها بر اساس زبان

انتشار رایگان دوره گیت جادی برای مدیریت توزیع شده سورس ها

گیت این روزها مشهورترین و احتمالا پر کاربردترین روشی است که می تونیم باهاش سورس برنامه‌هامون رو مدیریت کنه. در واقع به جای درست کردن یک فولدر «پروژه» و بعد درست کردن یک New folder توش و بعد از مدتی کار کپی کردن New Folder به Working-18tir و بعد کار کردن روی یک فچیر و ذخیره کردن همه کارها در Final2-give2boss و بعد رفع باگ و درست کردن final3-full و … می تونیم به گیت بگیم همه تغییرات رو یادش نگه داره و ورژن بزنه و کد یکی دیگه رو با ما ترکیب کنه و کد جدید رو اسمگذاری کنه و غیره و غیره.

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

سرفصل‌ها اینها هستن:

  • درس یکم: مقدمات گیت و نصب آن
  • درس دوم: اولین اینیت (init) و اولین کامیت
  • درس سوم: بررسی تاریخچه کارها
  • درس چهارم: بررسی تغییرات انجام شده
  • درس پنجم: آشنایی با شاخه ها یا همان برنچ ها (Branch)
  • درس ششم: کمی بیشتر در مورد برنچ ها
  • درس هفتم: آشنایی و استفاده از گیت هاب (GitHub)
  • درس هشتم: بررسی و حل کانفلیکت های (Conflict) ریموت
  • درس نهم: تگ زدن برای شناسایی نسخه ها
  • درس دهم: امضا کردن تگ ها و کامیت ها
  • درس یازدهم: دیباگ کردن با کمک گیت
  • درس دوازدهم: آشنایی با گیت لب و مشارکت در پروژه ها

جادی تی وی – اصلاح یک سورس گیت هاب با استفاده از کامندلاین

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

گیت لب عالیه؛ از هر دو نظر

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

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

حالا چرا عالیه؟ چون شفاف و معقول اینها رو گفته و چون یک داکیومنت آنلاین درست کرده که هر قدم تعمیراتی رو به ما می‌گه:

GitLab.com Database Incident - 2017/01/31



This incident affected the database (including issues and merge requests)
but not the git repo's (repositories and wikis).

Timeline (all times UTC):

2017/01/31 16:00/17:00 - 21:00

YP is working on setting up pgpool and replication in staging, creates
an LVM snapshot to get up to date production data to staging, hoping he
can re-use this for bootstrapping other replicas. This was done roughly
6 hours before data loss.

Getting replication to work is proving to be problematic and time
consuming (estimated at ±20 hours just for the initial pg_basebackup
sync). The LVM snapshot is not usable on the other replicas as far as YP
could figure out. Work is interrupted due to this (as YP needs the help
of another collegue who’s not working this day), and due to spam/high
load on GitLab.com

2017/01/31 21:00 - Spike in database load due to spam users - Twitter
| Slack

Blocked users based on IP address

Removed a user for using a repository as some form of CDN, resulting in
47 000 IPs signing in using the same account (causing high DB load). This
was communicated with the infrastructure and support team.

Removed users for spamming (by creating snippets) - Slack

Database load goes back to normal, some manual PostgreSQL vacuuming is
applied here and there to catch up with a large amount of dead tuples.

2017/01/31 22:00 - Replication lag alert triggered in pagerduty Slack

Attempts to fix db2, it’s lagging behind by about 4 GB at this point

db2.cluster refuses to replicate, /var/opt/gitlab/postgresql/data is
wiped to ensure a clean replication

db2.cluster refuses to connect to db1, complaining about max_wal_senders
being too low. This setting is used to limit the number of WAL (=
replication) clients

YP adjusts max_wal_senders to 32 on db1, restarts PostgreSQL

PostgreSQL complains about too many semaphores being open, refusing
to start

YP adjusts max_connections to 2000 from 8000, PostgreSQL starts again
(despite 8000 having been used for almost a year)

db2.cluster still refuses to replicate, though it no longer complains
about connections; instead it just hangs there not doing anything

At this point frustration begins to kick in. Earlier this night YP
explicitly mentioned he was going to sign off as it was getting late
(23:00 or so local time), but didn’t due to the replication problems
popping up all of a sudden.

2017/01/31 23:00-ish

YP thinks that perhaps pg_basebackup is being super pedantic about there
being an empty data directory, decides to remove the directory. After
a second or two he notices he ran it on db1.cluster.gitlab.com, instead
of db2.cluster.gitlab.com

2017/01/31 23:27 YP - terminates the removal, but it’s too late. Of
around 310 GB only about 4.5 GB is left - Slack

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

همینجا تصمیم رو قطعی می کنیم که در مقابل شماره رادیو گیک در مورد گیت هاب یک شماره هم در مورد گیت لب بسازیم. بسیار شرکت جالبی است و آدم های جالبی پشتش هستن. امیدوارم این استرسشون زودتر تموم بشه.

مرتبط:
چرا دراپ باکس می گه پسوردهاش لو رفته؟