میدونستین میشه یه وبسایت غیرمتمرکز ساخت که حتی اگه یه سرور خاموش بشه، باز هم سایت بالا بمونه؟ ZeroNet یه پلتفرم برای ساخت و میزبانی سایتها روی شبکه P2P (مثل بیتتورنت) + رمزنگاری بیتکوین برای امنیت. یعنی هیچ «هاستینگ مرکزی» وجود نداره و کاربرا خودشون بخشی از سایت رو ذخیره میکنن.
این یعنی بلاگ، انجمن یا اپلیکیشنتون هیچ وقت به خاطر خاموش شدن یه سرور یا محدودیت دسترسی نابود نمیشه. سرعت لود شدنش هم با هر کاربر جدید بیشتر میشه چون منابع شبکه گستردهتر میشن. مخصوصاً برای کسایی که میخوان پروژهی شخصی یا متنباز راه بندازن و نگران هزینه و سانسور هستن، عالیه.
github.com/HelloZeroNet/ZeroNet
@Linuxor
این یعنی بلاگ، انجمن یا اپلیکیشنتون هیچ وقت به خاطر خاموش شدن یه سرور یا محدودیت دسترسی نابود نمیشه. سرعت لود شدنش هم با هر کاربر جدید بیشتر میشه چون منابع شبکه گستردهتر میشن. مخصوصاً برای کسایی که میخوان پروژهی شخصی یا متنباز راه بندازن و نگران هزینه و سانسور هستن، عالیه.
github.com/HelloZeroNet/ZeroNet
@Linuxor
1
خوبی پی اچ پی اینه که دم دستیه و نیازی به کانفیگ کردن سرور و دردسر های اضافی نداره ولی بعضی امکانات بقیه زبان هارو نداره و باید یا لایبری نصب کنید یا غیر مستقیم توی زبان ازش استفاده کنید یکی از اون کتابخونه ها به اسم Swoole هست که میآد همون PHP رو با coroutine (چیزی شبیه نخ سبک) و I/O غیرهمزمان تقویت میکنه. نتیجه؟ میتونی میکروسرویس، API و حتی وبسوکت خیلی پرسرعت بسازی.
چینیا ساختنش ولی داکیومنت انگلیسی هم داره حتما تستش کنید :
www.swoole.com
@Linuxor
چینیا ساختنش ولی داکیومنت انگلیسی هم داره حتما تستش کنید :
www.swoole.com
@Linuxor
1
تابحال خواستی بدونی رندر سهبعدی از صفر چطوری کار میکنه؟ ریپوی TinyRenderer یه آموزش عملی از پایهست کل رندرینگ فقط توی چندصد خط ++C نوشته شده. نه مثل OpenGL پیچیدهست، نه مثل DirectX آدمو میترسونه.
به درد کسایی میخوره که میخوان پشتصحنهی بازیها یا موتورای گرافیکی رو واقعا بفهمن چی به چیه درسبندی شدس و هر روز میتونید یه قسمتش رو ببینید:
github.com/ssloy/tinyrenderer/wiki
@Linuxor
به درد کسایی میخوره که میخوان پشتصحنهی بازیها یا موتورای گرافیکی رو واقعا بفهمن چی به چیه درسبندی شدس و هر روز میتونید یه قسمتش رو ببینید:
github.com/ssloy/tinyrenderer/wiki
@Linuxor
1
اگه یکی بیاد از من بپرسه چه چیزی برای بکند خوبه الان شروع کنم؟ من احتمالا بهش جواب میدم مشتقات Node.js ولی این جواب درستی نیست.
چرا جواب درستی نیست؟ و خب اگه درست نیست چرا میگی؟ من با فریم ورک های مختلفی کار کردم و الان آخرین چیزی که برای کار فعلی خودم خوب بوده این بوده و ممکنه کار شمارو راه ننداره و بقیه انتخاب های بهتری بودن. ممکنه اگه پارسال ازم میپرسیدید میگفتم php/laravel چون اون موقع اون کارم رو خوب راه میانداخت و فکر میکردم بقیه سخت کاریه.
این نکته امیدوارم روشنتون کنه که هیچ برتری مطلقی بین تکنولوژی های فعال وجود نداره.
@Linuxor
چرا جواب درستی نیست؟ و خب اگه درست نیست چرا میگی؟ من با فریم ورک های مختلفی کار کردم و الان آخرین چیزی که برای کار فعلی خودم خوب بوده این بوده و ممکنه کار شمارو راه ننداره و بقیه انتخاب های بهتری بودن. ممکنه اگه پارسال ازم میپرسیدید میگفتم php/laravel چون اون موقع اون کارم رو خوب راه میانداخت و فکر میکردم بقیه سخت کاریه.
این نکته امیدوارم روشنتون کنه که هیچ برتری مطلقی بین تکنولوژی های فعال وجود نداره.
@Linuxor
1
هزار تا سوال برای مصاحبه جاوااسکریپت! البته فعلا 476 تاش نوشته شده ولی به مرور اضافه میشه چیزای مفهومی خوبی توش هست
github.com/sudheerj/javascript-interview-questions
@Linuxor
github.com/sudheerj/javascript-interview-questions
@Linuxor
1
شرکت AirBnb یه لایبری داره که میشه باهاش این نمودار هارو برای وب ساخت و قابلیت سفارشی سازی بالایی هم داره
airbnb.io/visx
@Linuxor
airbnb.io/visx
@Linuxor
دیدید داخل فرم های ورودی بعضی سایتا وقتی شماره تلفن یا مثلا شماره کارت وارد می کنید اونو برای خوانایی بیشتر چند رقم چند رقم جدا میکنه؟ این لایبری براتون اون کارو میکنه همه ورودی هارم ساپورت میکنه.
nosir.github.io/cleave.js
@Linuxor
nosir.github.io/cleave.js
@Linuxor
علت ساختن زبان هک توسط فیسبوک این بود که بتونه روی همون کدهای PHP قدیمی سرعت و مقیاسپذیری بهتری داشته باشه، بدون اینکه مجبور بشه همهچیزو از صفر بازنویسی کنه؛ در واقع هک ترکیبی از سادگی PHP و قدرت تایپ استاتیکه که باعث میشه هم توسعه سریع بمونه هم خطاها راحتتر شناسایی بشن.
@Linuxor
@Linuxor
برای یادگیری زبان گو، اگه قبلا برنامه نویسی با زبان دیگه کردی حتما لازم نیست که بشینی ویدیو یا کتاب بخونی این کارتو راه میندازه توی هر دارکتوریش/فولدرش چند تا مثال از بخش های مختلف گو رو زده، کداش رو دونه دونه بردارید روی سیستم خودتون ران کنید هرجا چیز جدید دیدید برید اونو سرچ کنید یاد بگیرید
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