مفهوم Downsampling در دادههای متریک
توی این پست درباره downsampling در دادههای متریک و استفاده ازش در طراحی سیستمهای مانیتورینگ صحبت کردم. این موضوع کمک میکنه حجم دادههای time-series کنترل بشه و هزینه ذخیرهسازی و کوئریها کمتر بشه.
پ.ن: منبع این پست کتاب System Design Interview – An Insider's Guide: Volume 2 هست.
#system_design_interview_volume_2
@techstuff100
توی این پست درباره downsampling در دادههای متریک و استفاده ازش در طراحی سیستمهای مانیتورینگ صحبت کردم. این موضوع کمک میکنه حجم دادههای time-series کنترل بشه و هزینه ذخیرهسازی و کوئریها کمتر بشه.
پ.ن: منبع این پست کتاب System Design Interview – An Insider's Guide: Volume 2 هست.
#system_design_interview_volume_2
@techstuff100
❤4👍2🔥1
حمله SSL Stripping و روشهای دفاع
این پست درباره SSL Stripping و مکانیزم HSTS هست. HSTS یک Response Header ساده است که باعث میشه مرورگر فقط از HTTPS برای یک دامنه استفاده کنه. همچنین میبینیم چرا HSTS به تنهایی کافی نبود و مرورگرها برای حل مشکل اولین بازدید، HSTS Preload List رو معرفی کردن.
#cyber_security
@techstuff100
این پست درباره SSL Stripping و مکانیزم HSTS هست. HSTS یک Response Header ساده است که باعث میشه مرورگر فقط از HTTPS برای یک دامنه استفاده کنه. همچنین میبینیم چرا HSTS به تنهایی کافی نبود و مرورگرها برای حل مشکل اولین بازدید، HSTS Preload List رو معرفی کردن.
#cyber_security
@techstuff100
❤7👍3🔥2
نتفلیکس چطور ۲۶۰ میلیلون استریم همزمان رو بدون Buffering مدیریت میکنه؟
نتفلیکس فقط به افزایش تعداد سرورها متکی نیست؛ بخش بزرگی از موفقیتش به معماری توزیع محتوا برمیگرده. ویدیوها قبل از اینکه کاربری درخواستشون رو بده، روی هزاران سرور CDN اختصاصی به اسم Open Connect که داخل شبکه ISPها قرار دارن توزیع میشن تا درخواستها از نزدیکترین نقطه پاسخ داده بشن. از طرف دیگه هر کاربر با استفاده از Adaptive Bitrate (ABR) کیفیت مناسب با شرایط لحظهای شبکه خودش رو دریافت میکنه و همین باعث میشه در بیشتر مواقع پخش ویدیو بدون Buffering ادامه پیدا کنه.
مقاله همچنین توضیح میده که مدیریت میلیونها استریم همزمان فقط مسئله زیرساخت نیست؛ بلکه مجموعهای از تصمیمهای مهندسی مثل انتخاب نزدیکترین CDN، کش کردن محتوا، توزیع هوشمند ترافیک، مانیتورینگ مداوم و Failover خودکار باعث میشن حتی در زمان اوج مصرف هم سرویس پایدار باقی بمونه.
لینک مقاله
@techstuff100
نتفلیکس فقط به افزایش تعداد سرورها متکی نیست؛ بخش بزرگی از موفقیتش به معماری توزیع محتوا برمیگرده. ویدیوها قبل از اینکه کاربری درخواستشون رو بده، روی هزاران سرور CDN اختصاصی به اسم Open Connect که داخل شبکه ISPها قرار دارن توزیع میشن تا درخواستها از نزدیکترین نقطه پاسخ داده بشن. از طرف دیگه هر کاربر با استفاده از Adaptive Bitrate (ABR) کیفیت مناسب با شرایط لحظهای شبکه خودش رو دریافت میکنه و همین باعث میشه در بیشتر مواقع پخش ویدیو بدون Buffering ادامه پیدا کنه.
مقاله همچنین توضیح میده که مدیریت میلیونها استریم همزمان فقط مسئله زیرساخت نیست؛ بلکه مجموعهای از تصمیمهای مهندسی مثل انتخاب نزدیکترین CDN، کش کردن محتوا، توزیع هوشمند ترافیک، مانیتورینگ مداوم و Failover خودکار باعث میشن حتی در زمان اوج مصرف هم سرویس پایدار باقی بمونه.
لینک مقاله
@techstuff100
❤14
پذیرش بازخورد
در برنامهنویسی معمولا تنها کار نمیکنیم و بخش زیادی از رشد ما از تعامل با بقیه اعضای تیم اتفاق میفته. یکی از مهمترین جاهایی که این موضوع رو میبینیم Code Review هست. وقتی کسی کدی که نوشتیم رو بررسی میکنه، هدفش پیدا کردن ایراد، بهتر کردن کیفیت کد و انتقال تجربه است؛ نه اینکه توانایی ما رو زیر سوال ببره.
البته دریافت بازخورد همیشه راحت نیست. وقتی چند نفر کدی که نوشتیم رو بررسی میکنن، ممکنه حس کنیم دارن از کار ما ایراد میگیرن، ولی باید یادمون باشه که این بازخورد درباره کد ماست، نه درباره خود ما. حتی بازخوردهای منفی هم معمولا نکتهای برای یاد گرفتن دارن؛ مهم اینه که بخش مفیدش رو پیدا کنیم و از قسمتهایی که فقط باعث ناراحتی میشن عبور کنیم.
اگر هر بازخوردی رو به چشم یک حمله ببینیم، کمکم از تصمیمگیری میترسیم و فرصت رشد رو از دست میدیم. یاد گرفتن از نقدها و استفاده از تجربه دیگران یکی از چیزهایی هست که باعث میشه به مرور مهندس بهتری بشیم.
متن از کتاب Skills of a Successful Software Engineer نوشته Fernando Doglio گرفته شده.
#Skills_of_a_Successful_Software_Engineer
@techstuff100
در برنامهنویسی معمولا تنها کار نمیکنیم و بخش زیادی از رشد ما از تعامل با بقیه اعضای تیم اتفاق میفته. یکی از مهمترین جاهایی که این موضوع رو میبینیم Code Review هست. وقتی کسی کدی که نوشتیم رو بررسی میکنه، هدفش پیدا کردن ایراد، بهتر کردن کیفیت کد و انتقال تجربه است؛ نه اینکه توانایی ما رو زیر سوال ببره.
البته دریافت بازخورد همیشه راحت نیست. وقتی چند نفر کدی که نوشتیم رو بررسی میکنن، ممکنه حس کنیم دارن از کار ما ایراد میگیرن، ولی باید یادمون باشه که این بازخورد درباره کد ماست، نه درباره خود ما. حتی بازخوردهای منفی هم معمولا نکتهای برای یاد گرفتن دارن؛ مهم اینه که بخش مفیدش رو پیدا کنیم و از قسمتهایی که فقط باعث ناراحتی میشن عبور کنیم.
اگر هر بازخوردی رو به چشم یک حمله ببینیم، کمکم از تصمیمگیری میترسیم و فرصت رشد رو از دست میدیم. یاد گرفتن از نقدها و استفاده از تجربه دیگران یکی از چیزهایی هست که باعث میشه به مرور مهندس بهتری بشیم.
متن از کتاب Skills of a Successful Software Engineer نوشته Fernando Doglio گرفته شده.
#Skills_of_a_Successful_Software_Engineer
@techstuff100
❤21👍4
همه چیز درباره پکیج Module Federation
توی این ویدیو، بهصورت کامل با پکیج Module Federation آشنا میشیم و یاد میگیریم چطور یه پروژه کامل باهاش بسازیم. این ویدیو کمکتون میکنه با معماری میکروفرانتاند هم آشنا بشین و ببینین چطور اپلیکیشنهای مختلف میتونن بهصورت مستقل توسعه داده بشن و در نهایت توی یه اپلیکیشن روت (host) کنار هم لود و نمایش داده بشن.
ویدئوی یوتوب:
https://www.youtube.com/watch?v=bhUZVxr4mP0&list=PL1bBcWODwsLMYe8Gor4PDwT5U5CK_S36x&index=7
اگه میخواین درباره میکروفرانتاند بیشتر بدونین، این پلیلیست میتونه کمککننده باشه:
https://www.youtube.com/playlist?list=PL1bBcWODwsLMYe8Gor4PDwT5U5CK_S36x
#MicroFrontend
@techstuff100
توی این ویدیو، بهصورت کامل با پکیج Module Federation آشنا میشیم و یاد میگیریم چطور یه پروژه کامل باهاش بسازیم. این ویدیو کمکتون میکنه با معماری میکروفرانتاند هم آشنا بشین و ببینین چطور اپلیکیشنهای مختلف میتونن بهصورت مستقل توسعه داده بشن و در نهایت توی یه اپلیکیشن روت (host) کنار هم لود و نمایش داده بشن.
ویدئوی یوتوب:
https://www.youtube.com/watch?v=bhUZVxr4mP0&list=PL1bBcWODwsLMYe8Gor4PDwT5U5CK_S36x&index=7
اگه میخواین درباره میکروفرانتاند بیشتر بدونین، این پلیلیست میتونه کمککننده باشه:
https://www.youtube.com/playlist?list=PL1bBcWODwsLMYe8Gor4PDwT5U5CK_S36x
#MicroFrontend
@techstuff100
❤7👍4👏3
طراحی سیستم: Multipart Upload
این پست درباره Multipart Upload هست که برای آپلود فایلهای بزرگ استفاده میشه و باعث میشه هم در برابر قطعی شبکه مقاومتر باشیم، هم بتونیم با آپلود همزمان بخشهای مختلف، زمان آپلود رو کمتر کنیم.
#system_design_interview_volume_2
@techstuff100
این پست درباره Multipart Upload هست که برای آپلود فایلهای بزرگ استفاده میشه و باعث میشه هم در برابر قطعی شبکه مقاومتر باشیم، هم بتونیم با آپلود همزمان بخشهای مختلف، زمان آپلود رو کمتر کنیم.
#system_design_interview_volume_2
@techstuff100
❤9👍2
یه نکته کوچیک درباره XSS وجود داره که خیلیا موقع تست امنیت یادشون میره. بعضی وقتا context ای که ورودی کاربر توش قرار میگیره، یه اتریبیوت از تگ HTML هست. بخصوص اگه اون اتریبیوت خودش قابلیت اجرای کد داشته باشه. مثلا تگ a رو در نظر بگیرید. اگه بتونیم مقدار href رو کنترل کنیم، میتونیم به جای یه URL معمولی از پروتکل javascript استفاده کنیم.
وقتی کاربر روی این لینک کلیک کنه، به جای رفتن به یه صفحه، کد جاوااسکریپت داخل href اجرا میشه. تو دنیای واقعی به جای alert معمولا کدی میبینیم که کوکی سرقت میکنه، درخواست به یه سرور بیرونی میفرسته یا سشن کاربر رو هایجک میکنه.
نکته مهم اینه که فیلتر کردن فقط تگهای خطرناک مثل script کافی نیست. باید مراقب اتریبیوتهایی مثل href، src یا حتی event handlerها هم بود، چون هرکدوم میتونن یه مسیر جایگزین برای اجرای کد باز کنن.
#cyber_security #xss
@techstuff100
وقتی کاربر روی این لینک کلیک کنه، به جای رفتن به یه صفحه، کد جاوااسکریپت داخل href اجرا میشه. تو دنیای واقعی به جای alert معمولا کدی میبینیم که کوکی سرقت میکنه، درخواست به یه سرور بیرونی میفرسته یا سشن کاربر رو هایجک میکنه.
نکته مهم اینه که فیلتر کردن فقط تگهای خطرناک مثل script کافی نیست. باید مراقب اتریبیوتهایی مثل href، src یا حتی event handlerها هم بود، چون هرکدوم میتونن یه مسیر جایگزین برای اجرای کد باز کنن.
#cyber_security #xss
@techstuff100
❤6👏3