میدونستین تلگرام از PHP استفاده میکنه؟ البته نه از نسخهی معمولی که همه میشناسیم از ورژن اختصاصی خودشون به اسم KPHP. در واقع یه کامپایلره که کدهای PHP رو به ++C تبدیل میکنه و در نهایت خروجی رو به صورت باینری اجرا میکنه. همین باعث میشه سرعت اجرای برنامهها چندین برابر بیشتر از PHP معمولی باشه.
زبان KPHP علاوه بر سرعت بالا، مصرف حافظه و پردازندهی خیلی کمتری داره و میتونه میلیارد ها ریکوست رو هندل کنه، یکی دیگه از تفاوتهای مهمش با PHP سنتی، پشتیبانی از چندریسمانیه؛ یعنی میتونه همزمان چند کار رو بدون افت کارایی انجام بده. از طرف دیگه، KPHP دقت بیشتری در بررسی دیتاتایپ داره و جلوی خیلی از خطاهای زمان اجرا رو میگیره.
مستنداتش:
vkcom.github.io/kphp/kphp-basics/installation.html
@Linuxor
زبان KPHP علاوه بر سرعت بالا، مصرف حافظه و پردازندهی خیلی کمتری داره و میتونه میلیارد ها ریکوست رو هندل کنه، یکی دیگه از تفاوتهای مهمش با PHP سنتی، پشتیبانی از چندریسمانیه؛ یعنی میتونه همزمان چند کار رو بدون افت کارایی انجام بده. از طرف دیگه، KPHP دقت بیشتری در بررسی دیتاتایپ داره و جلوی خیلی از خطاهای زمان اجرا رو میگیره.
مستنداتش:
vkcom.github.io/kphp/kphp-basics/installation.html
@Linuxor
1
وب اسمبلی یه تکنولوژیه که بهتون اجازه میده روی مرورگر کد های سطح پایین اجرا کنید، حالا یه عده اومدن توی سایت زیر یه شبیه ساز x86 ساختن که میشه باهاش سیستم عامل های مختلف رو روی مرورگر بالا آورد، توش اندروید ویندوز و سیستم عامل های لینوکسی برای تست وجود داره حتی خودتون هم میتونید سیستم عامل آپلود کنید و تستش کنید
copy.sh/v86
اوپن سورس هم هست و میشه باهاش کارای جالبی کرد.
@Linuxor
copy.sh/v86
اوپن سورس هم هست و میشه باهاش کارای جالبی کرد.
@Linuxor
1
اگه توسعه دهنده ای و برای هر کار ریزی کلی ابزار نصب میکنی DevToys رو تست کن یه اپلیکیشن دسکتاپه که چندین ابزار مفید مثل تبدیل JSON، کدگذاری Base64، Minify/Format و حتی Lorem Ipsum تولید کردن رو داره.
اینو نصب کنید خیالتون راحت باشه دیگه هی سرچ نکنید و دنبال سایت هایی که آنلاین این کاراو انجام میدن نگردین!
نصب :
devtoys.app
@Linuxor
اینو نصب کنید خیالتون راحت باشه دیگه هی سرچ نکنید و دنبال سایت هایی که آنلاین این کاراو انجام میدن نگردین!
نصب :
devtoys.app
@Linuxor
1
فکر کن صبح بیدار میشی و جلوی آینهت، بهجای صرفاً دیدن قیافه خوابآلودت، تاریخ، اخبار، تقویم و پیامای مهم رو ببینی. این همون چیزیه که با MagicMirror می تونید انجامش بدید فقط کافیه یه آینه نیمه شفاف بگیرید و پشتش مانیتور بزارید و این ابزار رو اجرا کنید کلی ماژول خوب داره.
اینجا مستنداتش و کد هاش هست میتونید برید بخونیدش اگه هزینه زیادی هم نمیخواید کنید میتونید روی رزبری اجراش کنید :
magicmirror.builders
@Linuxor
اینجا مستنداتش و کد هاش هست میتونید برید بخونیدش اگه هزینه زیادی هم نمیخواید کنید میتونید روی رزبری اجراش کنید :
magicmirror.builders
@Linuxor
1
میدونستین میشه یه وبسایت غیرمتمرکز ساخت که حتی اگه یه سرور خاموش بشه، باز هم سایت بالا بمونه؟ 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/javanoscript-interview-questions
@Linuxor
github.com/sudheerj/javanoscript-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