برای یادگیری زبان گو، اگه قبلا برنامه نویسی با زبان دیگه کردی حتما لازم نیست که بشینی ویدیو یا کتاب بخونی این کارتو راه میندازه توی هر دارکتوریش/فولدرش چند تا مثال از بخش های مختلف گو رو زده، کداش رو دونه دونه بردارید روی سیستم خودتون ران کنید هرجا چیز جدید دیدید برید اونو سرچ کنید یاد بگیرید
github.com/inancgumus/learngo
@Linuxor
github.com/inancgumus/learngo
@Linuxor
اگه چیزی به چت باتا گفتید بعدش پشیمون شدید چت رو حذف نکنید چیزی پاک نمیشه اون پشت؛ بجاش برید بالا ترین پیامتون رو ادیت کنید و یه چیز دیگه بنویسید. اینو از دید برنامه نویسی دارم بهتون میگم چون پیاده سازی ذخیره تاریخچه پیام های ویرایش شده تکنیکالی کار بسیار سختیه و احتمالا پیادش نکردن و فقط پیام های فعلیتون رو نگه میدارن😂
@Linuxor
@Linuxor
5
بررسی فنی پروتکل سیگنال (قسمت 3 از 4)
سومین تکنیکی که سیگنال استفاده میکنه چیزی به اسم X3DH یا همون Extended Triple Diffie-Hellman هست.
خب تا اینجا با Double Ratchet و PreKeys آشنا شدیم. حالا سوال اینه که:
چطوری میشه "جلسهی اولیه" (Initial Session) بین دو کاربر ساخته بشه؟ یعنی اون لحظهای که برای اولین بار میخوای به یه نفر پیام بدی و هنوز هیچ کانال امنی بینتون وجود نداره.
اینجاست که X3DH وارد میشه. همونطور که از اسمش پیداست، این پروتکل از سه (در واقع چهار) بار انجام DH بین کلیدهای مختلف استفاده میکنه:
کلیدهای دائمی (Identity Keys)
کلیدهای موقت (PreKeys)
کلید یکبارمصرف (One-Time PreKey)
این ترکیب باعث میشه که دو طرف حتی بدون آنلاین بودن همزمان، بتونن یه کلید مشترک قوی بسازن. اگه بخوایم ساده بگیم، X3DH یه جور "امضای محکم" (البته توی X3DH چیزی به اسم امضا به شکل سنتی وجود نداره در واقع binding هویت کاربر با استفاده از Identity Key و تبادل DH انجام میشه امضا دیجیتال (ECDSA) فقط برای ثبت کلیدها روی سرور استفاده میشه، نه توی خود تبادل) روی شروع مکالمه است که تضمین میکنه: هویت کاربر واقعی باشه (نه کسی که خودش رو جا زده) و پیام اول هم امن باشه و هیچکس نتونه وسط راه خودش رو جا بزنه (Man-in-the-Middle Attack).
در واقع X3DH مثل پلیه بین اون مرحلهی اولیهی "شروع مکالمه" و ادامهی کار توسط Double Ratchet. یعنی اول با X3DH یه کانال امن ساخته میشه، بعد Ratchetها شروع به چرخیدن میکنن.
این طراحی ترکیبی، باعث شده پروتکل سیگنال یکی از امنترین و در عین حال عملیترین پروتکلها برای پیامرسانی بشه.
یکی از دلایلی که سیگنال اینقدر مورد اعتماد شده، همین ترکیب خلاقانهی مکانیزمهاست؛ یعنی هیچ فیچر بهتنهایی کافی نیست، اما وقتی X3DH، PreKeys و Double Ratchet رو کنار هم میذاریم، یه معماری کامل و مقاوم در برابر انواع حملات ساخته میشه.
@Linuxor
سومین تکنیکی که سیگنال استفاده میکنه چیزی به اسم X3DH یا همون Extended Triple Diffie-Hellman هست.
خب تا اینجا با Double Ratchet و PreKeys آشنا شدیم. حالا سوال اینه که:
چطوری میشه "جلسهی اولیه" (Initial Session) بین دو کاربر ساخته بشه؟ یعنی اون لحظهای که برای اولین بار میخوای به یه نفر پیام بدی و هنوز هیچ کانال امنی بینتون وجود نداره.
اینجاست که X3DH وارد میشه. همونطور که از اسمش پیداست، این پروتکل از سه (در واقع چهار) بار انجام DH بین کلیدهای مختلف استفاده میکنه:
کلیدهای دائمی (Identity Keys)
کلیدهای موقت (PreKeys)
کلید یکبارمصرف (One-Time PreKey)
این ترکیب باعث میشه که دو طرف حتی بدون آنلاین بودن همزمان، بتونن یه کلید مشترک قوی بسازن. اگه بخوایم ساده بگیم، X3DH یه جور "امضای محکم" (البته توی X3DH چیزی به اسم امضا به شکل سنتی وجود نداره در واقع binding هویت کاربر با استفاده از Identity Key و تبادل DH انجام میشه امضا دیجیتال (ECDSA) فقط برای ثبت کلیدها روی سرور استفاده میشه، نه توی خود تبادل) روی شروع مکالمه است که تضمین میکنه: هویت کاربر واقعی باشه (نه کسی که خودش رو جا زده) و پیام اول هم امن باشه و هیچکس نتونه وسط راه خودش رو جا بزنه (Man-in-the-Middle Attack).
در واقع X3DH مثل پلیه بین اون مرحلهی اولیهی "شروع مکالمه" و ادامهی کار توسط Double Ratchet. یعنی اول با X3DH یه کانال امن ساخته میشه، بعد Ratchetها شروع به چرخیدن میکنن.
این طراحی ترکیبی، باعث شده پروتکل سیگنال یکی از امنترین و در عین حال عملیترین پروتکلها برای پیامرسانی بشه.
یکی از دلایلی که سیگنال اینقدر مورد اعتماد شده، همین ترکیب خلاقانهی مکانیزمهاست؛ یعنی هیچ فیچر بهتنهایی کافی نیست، اما وقتی X3DH، PreKeys و Double Ratchet رو کنار هم میذاریم، یه معماری کامل و مقاوم در برابر انواع حملات ساخته میشه.
@Linuxor
Media is too big
VIEW IN TELEGRAM
چند دقیقه با سزو قسمت 1
ابزار های شبکه از چه ترفند های دست سازی استفاده میکنن که محدودیت هارو باهاش دور بزنن؟
@Linuxor
ابزار های شبکه از چه ترفند های دست سازی استفاده میکنن که محدودیت هارو باهاش دور بزنن؟
@Linuxor
1
زبان نشانه گذاری YAML یکی از پرکاربرد ترین زبان هاست که توی کانفیگ ها و تعریف زیرساخت و CI/CD استفاده میشه به نظرتون چقدر YAML بلدید ؟ اینجا تستش کنید:
www.ohyaml.wtf
@Linuxor
www.ohyaml.wtf
@Linuxor
مایکروسافت یه آموزش 12 هفته ای هوش مصوعی به سبک دانشجویی داره، بیشتر برای دست گرمی و آموزشه و دیپ نشده توی چیزی، برای آمادگی آزمون ها خوبه و دید خوبی برای شروع هوش مصنوعی بهتون میده
github.com/microsoft/AI-For-Beginners
@Linuxor
github.com/microsoft/AI-For-Beginners
@Linuxor
فیچر های ++C توی ورژن های 2020 2017 2014 2011 رو به صورت یه جا همشو اینجا جمع کردن با توضیح کوتاه و ساده:
github.com/AnthonyCalandra/modern-cpp-features
@Linuxor
github.com/AnthonyCalandra/modern-cpp-features
@Linuxor
خوندن و پارس کردن JSON ذاتا کنده، این لایبری simdjson ساخته شده برای سرعت... میتونه با الگوریتم هایی که داره چندین گیگ در ثانیه JSON پردازش کنه فیسبوک و گوگل توی بعضی از پروژه هاشون از simdjson استفاده میکنن.
simdjson.org
@Linuxor
simdjson.org
@Linuxor
اینم یه لیست دیگه از دوره های رایگان و همراه با مدرک دانشگاه های معتبر برای مهندسی کامپیوتر
github.com/ForrestKnight/open-source-cs
@Linuxor
github.com/ForrestKnight/open-source-cs
@Linuxor
1
اگه برات سوال بوده که «اصلاً ویژگی جدید جاوااسکریپت از کجا میان؟» اینجا جوابشه. اینجا همه ایدهها و فیچرای آیندهی JS اول به شکل پیشنهاد ثبت میشن، بعد قدمبهقدم بررسی میشن تا برسن به نسخههای رسمی. برای کسایی که میخوان زودتر از همه بفهمن قراره چی به زبان اضافه بشه،
github.com/tc39/proposals
@Linuxor
github.com/tc39/proposals
@Linuxor
This media is not supported in your browser
VIEW IN TELEGRAM
میدونستین توی ترمینال هم میشه جیسون رو بازکرد؟ این ابزار برای مواقع ضروری که گرافیک ندارین خیلی کارسازه؛
حتی میشه بدون باز کردن فایل جیسون اونو با کمک Autocomplete پیمایش کرد و توی آبجک ها و آرایه های جیسون حرکت کرد. فقط کافیه اسم فایل رو بنویسید و تب بزنید
fx file.json <TAB>
نصب:
fx.wtf/install
@Linuxor
حتی میشه بدون باز کردن فایل جیسون اونو با کمک Autocomplete پیمایش کرد و توی آبجک ها و آرایه های جیسون حرکت کرد. فقط کافیه اسم فایل رو بنویسید و تب بزنید
fx file.json <TAB>
نصب:
fx.wtf/install
@Linuxor
بعضی دوره های خیلی خیلی گرون هستن، قیمتش رو میبینی با خودت میگی کی این همه پول بابتش میده ولی واقعا بعضیا میدن... آدما وقتی به مدت زیادی شکست بخورن هر پیشنهادی با هر قیمتی رو برای موفقیت قبول میکنن؛ موفقیت بیشتر از دوره پولی نیاز به صبر و حوصله و نظم داره و قیمتش هم تقریبا رایگانه، منبع اصلی شما باید داکیومنشن باشه داکیومنشن ها علاوه بر این که رایگانن، تضمین میدن کسی بیشتر از شما که خوندینش نمیدونه.
@Linuxor
@Linuxor