چطوری سورس بخونیم؟ دوره بلاکچین و رمزارزها و بیت کوین – جلسه ۰۰۷ – خوندن سورس بیت کوین

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

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

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

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

معلومه که برام خوشحال کننده است اگر بحث رو دوست دارین، عضو کانال های یوتوب و آپارات و توییچ بشین (:

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

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

در واقع ایده اصلی هکتبرفست اینه که دست شما در کارهای واقعی روون‌ بشه. در نتیجه اگر مهارتی دارین که فکر می کنین به اندازه کافی توش پیش رفتین و می تونین کارهای واقعی بکنین الان باید آستین بالا بزنین. در هر حوزه ای که باشین یاد گرفتن گیت و درک عمومی مفهوم پول ریکوئست قدم اوله – البته با فرض اینکه در حد برقراری ارتباط، از پس زبان بر میاین. بعدش باید یک پروژه پیدا کنین که توش مشارکت کنین. خیلی از پروژه ها در صفحه 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) برای پروژه‌های عمومی گیت هاب بفرستین. حتما سعی میکنم در طول این ماه شیوه های مختلفی برای پیدا کردن پروژه های خوب برای مشارکت بهتون نشون بدم ولی قبل از اون اگر گیت بلد نیستین یاد بیگرین.

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

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

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

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

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


مرتضیسم


شهروز.جی


نسرین


ارسلان


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

اجبار خبرنگاران چینی به کسب نمره قبولی از آزمون «وفاداری به حزب و رهبر»

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

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

این تست در مرحله اول برای ۱۰هزار روزنامه‌نگار از ۱۴ استان برگزار می‌شد. تست پنج بخش داره شامل «اندیشه های رهبری» و «خبرنگاری مارکسیستی». اگر شما می خواین تو چین خبرنگار بمونین، باید از ۱۲۰ امتیاز ممکن، حداقل ۸۰ امتیاز بیارین.

در حال حاضر توی چین ۱۷۷ خبرنگار در زندان هستن و رتبه این کشور در شاخص آزادی مطبوعات امسال، در بین ۱۸۰ کشور، ۱۷۷ بوده، ۷ تا بدتر از ایران که رتبه ۱۷۰ رو داره.

بالاخره منتشر شد: گنو/لینوکس سنت او اس ۸

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

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

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

لینک های شاد دوشنبه های آخر ماه شهریور ۹۸

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

  • سایت ebooksworld.ir هم کتاب های حوزه کامپیوتر و فنی رو جمع و منتشر کرده دوستان در کامنت تذکر دادن که این سایت موقع دانلود شما رو به سمت سرویس های ارزش افزوده و اینها می فرسته. حذفش کردم.
  • و البته این سایت هم کار مشابهی می کنه https://it-research.ir/ و به نظر می رسه که مقاله هم داره
  • مهدی هم داره روی بخش فارسی و امکانات مورد نیاز ایرانی‌ها برای هندی کنترل کار میکنه که کنترل های WFP است.
  • امین هم خواسته رادیو کار نکن رو معرفی کنم، پادکستی که ۱۲ شماره اش اومده و با آدم ها در مورد مسیر شغلی شون حرف می زنه.
  • خسی و شهاب حشمت هم کتاب برش کیک در مورد تقسیم سهام در استارتاپ ها رو ترجمه کردن و البته آزاد روی گیت هاب. کتاب خوبیه و امیدوارم اگر استارتاپ دارین یا توش کار می کنین یا در موردش کجکاوین، دیجیتالی هم که شده، ورقش بزنین
  • کتاب سفر در ارض دیوار برلین رو هم برام فرستاده بودن و به نظرم جالب بود. تجربه یک سفر کاری به آلمان است و با جزییات و حواشی خیلی زیاد. بهتون دید خوبی در مورد وضعیت آلمان می ده.
  • بچه های شرکت دِیتاک هم کارهای خوبی رو شروع کردن، از جمله نوشتن در وبلاگ مهندسی شرکت و سمینارهای فنی. احتمالا دنبال کردنشون می تونه چیزهای مفیدی داشته باشه. امیدوارم شرکت های بیشتری وبلاگ های فنی شون رو بنویسن و تجربیات و دانششون رو به اشتراک بذارن