How Complex Systems Fail by Richard I. Cook (15 min)
مطالعهای در مورد این که چرا سیستمهای پیچیده—از بیمارستان و سیستم ریلی گرفته تا سیستمهای نرمافزاری توزیعشده—دچار اختلال و شکست میشن.
مطالعهای در مورد این که چرا سیستمهای پیچیده—از بیمارستان و سیستم ریلی گرفته تا سیستمهای نرمافزاری توزیعشده—دچار اختلال و شکست میشن.
GitHub Accident Postmortem by Jesse Newland (10 min) - 2012
گزارش قطعی ۲ ساعتهی گیتهاب تو سال ۲۰۱۲.
GitHub.com suffered two outages early this week that resulted in one hour and 46 minutes of downtime and another hour of significantly degraded performance. This is far below our standard...
گزارش قطعی ۲ ساعتهی گیتهاب تو سال ۲۰۱۲.
Roblox Return to Service by Roblox engineering team (20 min) - 2022
گزارشی جالب از روبلاکس در مورد قطعی سراسری ۷۳ ساعتهی سیستمهاش و اینکه چطور عیبیابی کردن و مشکل رو برطرف کردن. از ریست شدن پنجره دریافت TCP تا جزئیات سطح پایین BoltDB.
Starting October 28th and fully resolving on October 31st, Roblox experienced a 73-hour outage.¹ Fifty million players regularly use Roblox every day.
Roblox’s core infrastructure runs in Roblox data centers. We deploy and manage our own hardware, as well as our own compute, storage, and networking systems on top of that hardware. The scale of our deployment is significant, with over 18,000 servers and 170,000 containers.
گزارشی جالب از روبلاکس در مورد قطعی سراسری ۷۳ ساعتهی سیستمهاش و اینکه چطور عیبیابی کردن و مشکل رو برطرف کردن. از ریست شدن پنجره دریافت TCP تا جزئیات سطح پایین BoltDB.
High Performance Browser Networking by Ilya Grigorik (10 hr)
کتابی راجع به پروتکلهای لایه اپلیکیشن در مرورگر. پیشنیازی نداره و مفاهیم رو از پایه توضیح میده و برای هر مورد نکاتی رو میگه که میتونه پرفورمنس کلی برنامه رو بهبود بده. از کانفیگ کردن TCP در سیستم عامل سرور تا انتخاب پروتکل مناسب برای بازیهای آنلاین.
کتابی راجع به پروتکلهای لایه اپلیکیشن در مرورگر. پیشنیازی نداره و مفاهیم رو از پایه توضیح میده و برای هر مورد نکاتی رو میگه که میتونه پرفورمنس کلی برنامه رو بهبود بده. از کانفیگ کردن TCP در سیستم عامل سرور تا انتخاب پروتکل مناسب برای بازیهای آنلاین.
Package Managers Are Evil by Ginger Bill (5 min)
نوشتهای کوتاه در باب نکوهش پکیج منیجرها به همراه نقل قول جالب از پرایم در مورد اثر فراموشی گِل-مان.
پکیج منیجرها به دلیل اتوماتیک و راحتتر کردن پروسهی اضافه کردن هزاران پکیج به پروژه، توسط جینجر بیل پیشنهاد نمیشه و روش دستی رو بهتر میدونه تا آدم مجبور باشه که بدونه پروژهش به چیا وابسته هست.
JavaScript is great example of this [...] it results in the need for a package manager manager.
نوشتهای کوتاه در باب نکوهش پکیج منیجرها به همراه نقل قول جالب از پرایم در مورد اثر فراموشی گِل-مان.
پکیج منیجرها به دلیل اتوماتیک و راحتتر کردن پروسهی اضافه کردن هزاران پکیج به پروژه، توسط جینجر بیل پیشنهاد نمیشه و روش دستی رو بهتر میدونه تا آدم مجبور باشه که بدونه پروژهش به چیا وابسته هست.
MapReduce.pdf
186.2 KB
MapReduce: Simplified Data Processing on Large Clusters by Google Research (1 hr) - 2003
مقالهای قدیمی ولی بسیار جذاب از بخش تحقیق و توسعه گوگل. سیستمهای توزیعشده رو ما بیشتر برای ذخیرهسازی میشناسیم. از سرویسهای ابری مختلف گرفته تا دیتابیسهای توزیعشده که بحثشون این چند سال داغ بوده ولی این مقاله در مورد توزیع پردازش هست (به عبارت سادهتر: بتونیم CPUهای توزیع شده رو به کار بگیریم برای انجام دادن یک تسک کلی). فقط دقت داشته باشین که مقاله برای سال ۲۰۰۳ هست و اعداد و ارقام و specها به شکل نجومیای از اون زمان تا الان رشد کردن.
پ.ن. میدونم تو آکادمیای امروز، اکثر دانشگاهها به صورت کیلویی مقاله میدن و شما هم احتمالا دید بدی دارین نسبت به مقاله خوندن. ولی این یکی رو تضمین میکنم که کیفیت خیلی خوبی داره چون توسط کسانی نوشته شده که توی صنعت بودن و یه مشکل در سطح گوگل رو تونستن حل کنن. اینکه با خوندن این مقاله تونستم دنیا رو از دید اون آدمای خفن ببینم واقعا حال کردم.
مقالهای قدیمی ولی بسیار جذاب از بخش تحقیق و توسعه گوگل. سیستمهای توزیعشده رو ما بیشتر برای ذخیرهسازی میشناسیم. از سرویسهای ابری مختلف گرفته تا دیتابیسهای توزیعشده که بحثشون این چند سال داغ بوده ولی این مقاله در مورد توزیع پردازش هست (به عبارت سادهتر: بتونیم CPUهای توزیع شده رو به کار بگیریم برای انجام دادن یک تسک کلی). فقط دقت داشته باشین که مقاله برای سال ۲۰۰۳ هست و اعداد و ارقام و specها به شکل نجومیای از اون زمان تا الان رشد کردن.
پ.ن. میدونم تو آکادمیای امروز، اکثر دانشگاهها به صورت کیلویی مقاله میدن و شما هم احتمالا دید بدی دارین نسبت به مقاله خوندن. ولی این یکی رو تضمین میکنم که کیفیت خیلی خوبی داره چون توسط کسانی نوشته شده که توی صنعت بودن و یه مشکل در سطح گوگل رو تونستن حل کنن. اینکه با خوندن این مقاله تونستم دنیا رو از دید اون آدمای خفن ببینم واقعا حال کردم.
Local-first software by Ink & Switch Labs (20 min) - 2019
برای ماهایی که زخمخوردهی قطعی اینترنت چند ماههی ایران هستیم، مقالهی نسبتاً جالبی میتونه باشه. چند Open Question تحقیقاتی هم معرفی میکنه برای کسانی که دوست دارن تو حیطهی سیستمهای توزیعشده و همچنین تعامل انسان با کامپیوتر (HCI) کار کنن.
درسته ۷ سال از زمان نگارش مقاله گذشته ولی تو قطعی اینترنت اخیر هم شاهد این بودم که چقدر کامیونیتی نرمافزار خارجی و حتی ایرانی نسبت به این موضوع بیخیاله. تقویم ویندوز رو باز میکنی کار نمیکنه، با تلگرام دسکتاپ کار داری باز نمیشه، سایتی که سرویس ورکر داره بصورت آفلاین کار نمیکنه. اگه فرصت کنم خودم در این مورد نظرم رو به صورت کاملتر مینویسم.
برای ماهایی که زخمخوردهی قطعی اینترنت چند ماههی ایران هستیم، مقالهی نسبتاً جالبی میتونه باشه. چند Open Question تحقیقاتی هم معرفی میکنه برای کسانی که دوست دارن تو حیطهی سیستمهای توزیعشده و همچنین تعامل انسان با کامپیوتر (HCI) کار کنن.
درسته ۷ سال از زمان نگارش مقاله گذشته ولی تو قطعی اینترنت اخیر هم شاهد این بودم که چقدر کامیونیتی نرمافزار خارجی و حتی ایرانی نسبت به این موضوع بیخیاله. تقویم ویندوز رو باز میکنی کار نمیکنه، با تلگرام دسکتاپ کار داری باز نمیشه، سایتی که سرویس ورکر داره بصورت آفلاین کار نمیکنه. اگه فرصت کنم خودم در این مورد نظرم رو به صورت کاملتر مینویسم.
Naive Bayes Is About Asking Questions Your Data Can Answer by Ata! (15 min) - 2026
چند روز پیش قضیه بیز ساده رو توی مباحث یادگیری ماشین خوندم و فرمولش برام میک سنس نمیکرد. سعی کردم قضیه بیز رو توضیحش بدم تا مجبور بشم جاهایی که بلد نیستم رو بهتر یاد بگیرم. انگلیسیش رو خودم نوشتم و نسخه فارسی رو کلاود ترجمه کرده و من بررسی کردم. اگه خوندید حتماً فیدبک بدین!
چند روز پیش قضیه بیز ساده رو توی مباحث یادگیری ماشین خوندم و فرمولش برام میک سنس نمیکرد. سعی کردم قضیه بیز رو توضیحش بدم تا مجبور بشم جاهایی که بلد نیستم رو بهتر یاد بگیرم. انگلیسیش رو خودم نوشتم و نسخه فارسی رو کلاود ترجمه کرده و من بررسی کردم. اگه خوندید حتماً فیدبک بدین!
AWS Builders' Library by AWS developers (10 - 30 min each)
مجموعهای از مقالههای مهندسی تیم AWS دربارهی مشکلات واقعیای که در مقیاس خیلی بزرگ باهاشون روبهرو شدن.
توی این مجموعه چیزهایی مثل مدیریت خطا در سیستمهای توزیعشده، طراحی سیستمهایی که با وجود خراب شدن بعضی قسمتها همچنان کار میکنن، retry کردن درخواستها، timeoutها، جلوگیری از overload شدن سرویسها و کلی جزئیات دیگه بررسی میشه.
چیزی که جالبه اینه که اینا بیشتر شبیه تجربهی پشت صحنهی ساخت سرویسهایی مثل AWS هستن، نه آموزش تئوری. یعنی میبینی وقتی یک سیستم با میلیونها کاربر داری، تصمیمهای کوچیکی مثل اینکه چند بار retry کنی یا کی timeout بدی، چطور میتونن باعث نجات یا نابودی کل سیستم بشن.
مجموعهای از مقالههای مهندسی تیم AWS دربارهی مشکلات واقعیای که در مقیاس خیلی بزرگ باهاشون روبهرو شدن.
توی این مجموعه چیزهایی مثل مدیریت خطا در سیستمهای توزیعشده، طراحی سیستمهایی که با وجود خراب شدن بعضی قسمتها همچنان کار میکنن، retry کردن درخواستها، timeoutها، جلوگیری از overload شدن سرویسها و کلی جزئیات دیگه بررسی میشه.
چیزی که جالبه اینه که اینا بیشتر شبیه تجربهی پشت صحنهی ساخت سرویسهایی مثل AWS هستن، نه آموزش تئوری. یعنی میبینی وقتی یک سیستم با میلیونها کاربر داری، تصمیمهای کوچیکی مثل اینکه چند بار retry کنی یا کی timeout بدی، چطور میتونن باعث نجات یا نابودی کل سیستم بشن.
Roy Fielding's Misappropriated REST Dissertation by Two-Bit History (5 min) - 2020
در مورد REST API به احتمال زیاد یه چیزایی شنیدید و احتمالا میدونید که برای توجیه کردنش، به مقالهی سال ۲۰۰۰ روی فیلدینگ اشاره میکنن. این بلاگ نقد جالبی در این مورد انجام میده. میگه کلاْ مسیر رو اشتباه رفتن و REST اصلاً در مورد اندپوینتهای API نیست (هرچند که میشه یه سری ایدهها رو ازش استفاده کرد) و برای همین بهتر بود یه اسم دیگهای براش میذاشتن.
He warns, almost at the very beginning of the dissertation, that “design-by-buzzword is a common occurrence” brought on by a failure to properly appreciate software architecture.
در مورد REST API به احتمال زیاد یه چیزایی شنیدید و احتمالا میدونید که برای توجیه کردنش، به مقالهی سال ۲۰۰۰ روی فیلدینگ اشاره میکنن. این بلاگ نقد جالبی در این مورد انجام میده. میگه کلاْ مسیر رو اشتباه رفتن و REST اصلاً در مورد اندپوینتهای API نیست (هرچند که میشه یه سری ایدهها رو ازش استفاده کرد) و برای همین بهتر بود یه اسم دیگهای براش میذاشتن.
Interview with Alan Kay by Dr. Dobbs (10 min) - 2012
اَلن کِی یکی از خفنترین آدمای حیطهی کامپیوتره که مفاهیمی مثل آبجکتها، مسیجینگ بین آبجکتها و واسط کاربری رو ابداع کرده. از طرز فکرش و اون میل باطنیش به excellency، واقعا لذت میبرم و درس میگیرم.
این بلاگ مبحث فنیای قرار نیست بهتون یاد بده، صرفاً یه دیالوگ ساده با یه آدم خفن رو میخونید و دیدگاهشو راجع به دنیای tech سال ۲۰۱۲ رو میشنوید. البته بلاگ اصلی داکتر دابز مشکل فنی داره و لود نمیشه که میرورش رو قرار دادم.
Computing is pop culture. [...] Pop culture holds a disdain for history. Pop culture is all about identity and feeling like you're participating. It has nothing to do with cooperation, the past or the future — it's living in the present. I think the same is true of most people who write code for money. They have no idea where their culture came from.
The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs.
اَلن کِی یکی از خفنترین آدمای حیطهی کامپیوتره که مفاهیمی مثل آبجکتها، مسیجینگ بین آبجکتها و واسط کاربری رو ابداع کرده. از طرز فکرش و اون میل باطنیش به excellency، واقعا لذت میبرم و درس میگیرم.
این بلاگ مبحث فنیای قرار نیست بهتون یاد بده، صرفاً یه دیالوگ ساده با یه آدم خفن رو میخونید و دیدگاهشو راجع به دنیای tech سال ۲۰۱۲ رو میشنوید. البته بلاگ اصلی داکتر دابز مشکل فنی داره و لود نمیشه که میرورش رو قرار دادم.
I’m harvesting credit card numbers and passwords from your site. Here’s how. by David Gilbertson (15 min) - 2018
گزارش یه متخصص امنیت سایبری دربارهی اینکه چطور میشه اطلاعات کاربران رو با حمله به زنجیره تامین به دست آورد. منظور از زنجیره تامین اینه که به جای خود برنامه، به پکیجها و کتابخونههایی که اون برنامه استفاده میکنه نفوذ کنیم.
برای همین مورده که وبسایتهای حساس (وبسایتهای درگاه پرداخت، بانک، اطلاعات مالی، پزشکی و غیره) نیازه از هیچ پکیجی سمت فرانت استفاده نکنن (بله حتی React). البته شرایط NPM بهتر شده و راحتتر میشه وریفای کرد کد دانلود شده واقعا همونی هست که روی گیتهابه یا نه ولی خب تضمین صد درصدی نیست.
گزارش یه متخصص امنیت سایبری دربارهی اینکه چطور میشه اطلاعات کاربران رو با حمله به زنجیره تامین به دست آورد. منظور از زنجیره تامین اینه که به جای خود برنامه، به پکیجها و کتابخونههایی که اون برنامه استفاده میکنه نفوذ کنیم.
برای همین مورده که وبسایتهای حساس (وبسایتهای درگاه پرداخت، بانک، اطلاعات مالی، پزشکی و غیره) نیازه از هیچ پکیجی سمت فرانت استفاده نکنن (بله حتی React). البته شرایط NPM بهتر شده و راحتتر میشه وریفای کرد کد دانلود شده واقعا همونی هست که روی گیتهابه یا نه ولی خب تضمین صد درصدی نیست.
