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

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

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

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

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

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

تی ماکس، ابزار دست حرفه‌ای‌های کامند لاین

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

توضیح ویدئویی آسیب پذیری پالیسی کیت CVE-2018-19788

خبر عجیب و بامزه اینه که یک مشکل امنیتی توی پالیسی کیت لینوکس پیدا شده. کار پالیسی کیت اینه که پروسه‌های نیازمند دسترسی رو به پروسه‌های بدون نیاز به دسترسی وصل کنه. در نتیجه مثلا وقتی شما دستور systemctl رو در بسیاری از لینوکس های جدید اجرا می‌کنید، پالیسی کیت اگر لازم باشه پسورد شما رو می گیره و به سیستم‌دی می‌گه که شما دسترسی لازم رو دارین. حالا مشکل چیه؟ پالیسی کیت برای بررسی دسترسی ها از اعداد صحیح (int) استفاده می کنه و اگر کسی با UID بالاتر از ماکزیمم عدد صحیح اون سیستم درخواست بده، …. قاطی می کنه و بهش دسترسی می ده!

فکر کردم باحاله این رو توی ویدئو نشون بدم و نتیجه اش شده این ویدئو:

که خب روی یوتوب، تلگرام و آپارات هم هست.

ویدئوی آموزشی آماده سازی یک سرور اوبونتو برای هاست یک پروژه پی اچ پی

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

اما چرا انگلیسی؟ دلیلش دو تا است:

  • ویدئو مخاطبین بیشتری پیدا می کنه
  • ترس خودمون از زبان انگیسی می‌ریزه

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

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

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

توی این ویدئو، شروع می‌کنم تنظیم کردن سرور اوبونتو برای وحید رجبلو. برنامه‌های اصلی رو نصب می کنیم تا توی بعدی، برنامه های دیگه رو نصب کنیم و کمی هاردنینگ.

معرفی سایت «بذار من برات گوگل کنم» – به همراه ویدئوی آموزشیش

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

بحث الان یک سایت است که خارجی ها دارن و بهش می گن lmfgfy یا چنین چیزی (: من ازش یک نمونه ایرانی / فارسی درست کردم برای فان – توی آدرس بذار من برات گوگل کنم یا همون bmbgk.ir.

کاربرد؟ اگر کسی از شما سوالی می پرسه که در واقع باید گوگل می کرده، می تونین برین به سایت بذار من برات گوگل کنم و کلماتی که باید سرچ می کرده رو می زنین و سایت بهتون یک آدرس می ده که می تونین برای طرف بفرستین. مثلا وقتی یکی میپرسه «ایزوی اوبونتو رو از کجا دانلود کنم؟» می تونیم بهش این آدرس رو بدیم: http://bmbgk.ir/?q=ubuntu+iso (:

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

در چهارده دقیقه با شبکه موبایل آشنا بشین

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

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

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

سه ویدئوی جدید از درک برنامه نویسی: یه جوری باشه بتونیم بگیم کار با API بلدیم

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

با ما باشین که حتی از OAauth هم کمی سر دربیاریم.

درک برنامه نویسی: چی می شه اگر ۵۰ نفر در یک اتاق…

مدتی پیش دوستی توجهم رو به این مساله ریاضی جالب جلب کرد:

چی می شه اگر ۵۰ نفر در یک اتاق نفری ۱۰۰ دلار داشته باشن. در هر دور هر کس به شکل رندم یک نفر رو انتخاب می کنه و یک دلار از پولش رو به اون می ده. اگر پول کسی تموم بشه از بازی بیرون گذاشته می شه. بعد از بارها بازی کردن، وضعیت پول ها چطور خواهد بود؟

این از اون مسائلی است که جواب شهودی اکثر ما در موردش اشتباهه. حتی جواب شهودی خیلی از ریاضی‌دان‌ها. جواب شهودی من که اینه که «خب چون نفر رندم اتفاق می شه، توزیع در نهایت تفاوت چندانی نمی کنه» ولی آیا واقعا اینطوره؟ در سری درک برنامه نویسی قسمت های ۱۴ و ۱۵ و ۱۶، بعد از گپی کوتاه در مورد آرایه ها یا لیست ها، سراغ حل این مساله میریم و نمودار نهایی رو هم به شکل گرافیکی ترسیم می کنیم.