چطوری حرفه ای بشیم؟ آر اف سی رو بخونین و بنویسین؛ نمونه بیس۶۴

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

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

من توی این ۲ تا ویدئو، همین کار رو با بحث Base64 کردم. شیوه ای که توش می تونیم اطلاعات باینری رو تبدیل به اطلاعات متنی (اَسکی) بکنیم. خودم لازمش داشتم و آر اف سی رو خوندم و بعد فکر کردم نوشتنش، این بحث رو بازتر می کنه. پس با من باشین … یا هر طور که دوست دارین.

قسمت اول:‌ درک بیس۶۴ و دیدن آر اف سی و تشریحش (روی آپارات و یوتیوب)
قسمت دوم: نوشتن با سی و توضیح کاربرش برای هکرها (روی آپارات و یوتیوب)

گپی در مورد سیستم هایی مثل Initiative Q و Double Way

چیزهایی مثل Initiative Q مدت ها است که توی دنیا هستن و الان تو ایران مد شدن. همچنین چیزی مثل دابل وی که توی کشورهایی مثل پاناما و کلمبیا و ایران آدم ها رو به سمت خودش جذب کرده – آدم هایی که بالاخره می خوان یه طوری پولدار بشن. شایدم کسانی که مواظبن یکهو از بقیه عقب نمونن. توی این ویدئو نگاهی می ندازیم به اینها و همه مشابه‌هاش؛ یعنی بقیه پانزی ها.

ویدئو در آپارات و یوتیوب.

نوشتن برنامه «بازی زندگی» با زبان سی، به یاد کانوی و اتوماتای سلولی

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

آپارات و یوتیوب.

این یه شاخه باحالی از کامپیوتر بود که امروزه زیر سیطره «هوش مصنوعی» و «یادگیری ماشین» ازش کمتر می شنویم؛ به اسم «حیات مصنوعی» (:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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