Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
🗓 ابزار mitmproxy یک HTTPS proxy تعاملی برای debugging, testing و ... به کار میره
پلاگین Kubernetes داره و اگر بخواهید یک REST APIs را به صورت خودکار reverse-engineer کنید روی OpenAPI 3.0 به راحتی با پلاگین امکن پذیره
✅ رهگیری، بازرسی، اصلاح و ارسال مجدد ترافیک روی HTTP/2/1, WebSockets یا هر نوع SSL/TLS-protected
🔥 در نسخه ۱۱ پشتیبانی کامل HTTP/3 را اضافه کرده
💠 امکانات مهم :
✳️ رابط Command Line
انواع پیامها از HTML تا Protobuf را به سادگی رمزگشایی، پیامهای خاصی را در لحظه رهگیری، قبل از رسیدن به مقصد آنها را اصلاح و بعداً آنها را برای یک کلاینت یا سرور دوباره ارسال کنید.
✳️ رابط Web Interface
با رابط وب با mitmweb شبیه به DevTools برای هر برنامه یا دستگاه دیگری به همراه ویژگی های اضافی مانند رهگیری درخواست و ارسال مجدد استفاده کنید
✳️ رابط Python API
با mitmdump افزونه های قدرتمند و اسکریپت mitmproxy میتوانید بنویسد. API اسکریپت کنترل کاملی را بر mitmproxy ادارد و امکان تغییر خودکار پیامها، تغییر مسیر ترافیک، مشاهده پیامها یا امکان اجرای دستورات میدهد
گیت هاب
#امنیت #پایتون #python
پلاگین Kubernetes داره و اگر بخواهید یک REST APIs را به صورت خودکار reverse-engineer کنید روی OpenAPI 3.0 به راحتی با پلاگین امکن پذیره
✅ رهگیری، بازرسی، اصلاح و ارسال مجدد ترافیک روی HTTP/2/1, WebSockets یا هر نوع SSL/TLS-protected
🔥 در نسخه ۱۱ پشتیبانی کامل HTTP/3 را اضافه کرده
💠 امکانات مهم :
✳️ رابط Command Line
انواع پیامها از HTML تا Protobuf را به سادگی رمزگشایی، پیامهای خاصی را در لحظه رهگیری، قبل از رسیدن به مقصد آنها را اصلاح و بعداً آنها را برای یک کلاینت یا سرور دوباره ارسال کنید.
✳️ رابط Web Interface
با رابط وب با mitmweb شبیه به DevTools برای هر برنامه یا دستگاه دیگری به همراه ویژگی های اضافی مانند رهگیری درخواست و ارسال مجدد استفاده کنید
✳️ رابط Python API
با mitmdump افزونه های قدرتمند و اسکریپت mitmproxy میتوانید بنویسد. API اسکریپت کنترل کاملی را بر mitmproxy ادارد و امکان تغییر خودکار پیامها، تغییر مسیر ترافیک، مشاهده پیامها یا امکان اجرای دستورات میدهد
گیت هاب
#امنیت #پایتون #python
Forwarded from DevTwitter | توییت برنامه نویسی
اگر مثل من با Django REST Framework (DRF) کار میکنی و دنبال راهی برای سریعتر کردن APIهات هستی، حتماً باید drf-cache رو امتحان کنی.
این ابزار چیکار میکنه؟
با کش کردن درخواستهای API به شما کمک میکنه تا فشار روی دیتابیس کمتر بشه و سرعت پاسخدهی APIها بهطور چشمگیری افزایش پیدا کنه
میتونی کش کردن رو برای هر ویو یا کوئری بهطور جداگانه تنظیم کنی، این یعنی کنترل کامل روی نحوه ذخیرهسازی و بازیابی دادهها
فوقالعاده مفیده برای APIهای سنگین یا پرتقاضا که نیاز به بهینهسازی دارن
اگه میخوای کارایی APIهات رو بهبود بدی و لود سرورت رو کم کنی، drf-cache یکی از بهترین گزینههاست!
پ.ن: (اگه دادههای زیادی رو کش کنی، این میتونه حافظه سرور رو بیشتر مصرف کنه. بهخصوص اگر کوئریها یا درخواستها خیلی بزرگ و پیچیده باشن و برای APIهایی که باید به سرعت اطلاعات رو بهروزرسانی کنن (جایی که دادهها مرتباً تغییر میکنن)، استفاده از کش میتونه باعث بشه کاربران دادههای جدید رو دیرتر ببینن. در این مواقع، باید خیلی هوشمندانه کشینگ رو تنظیم کنی.
و همچنین استفاده از drf-cache نیاز به تنظیمات دقیق داره، و اگر بهدرستی تنظیم نشه، ممکنه اصلاً نتونی ازش بهینه استفاده کنی یا برعکس، عملکرد رو حتی بدتر کنی.)
https://github.com/chibisov/drf-extensions
@DevTwitter | <Shima Fallah/>
این ابزار چیکار میکنه؟
با کش کردن درخواستهای API به شما کمک میکنه تا فشار روی دیتابیس کمتر بشه و سرعت پاسخدهی APIها بهطور چشمگیری افزایش پیدا کنه
میتونی کش کردن رو برای هر ویو یا کوئری بهطور جداگانه تنظیم کنی، این یعنی کنترل کامل روی نحوه ذخیرهسازی و بازیابی دادهها
فوقالعاده مفیده برای APIهای سنگین یا پرتقاضا که نیاز به بهینهسازی دارن
اگه میخوای کارایی APIهات رو بهبود بدی و لود سرورت رو کم کنی، drf-cache یکی از بهترین گزینههاست!
پ.ن: (اگه دادههای زیادی رو کش کنی، این میتونه حافظه سرور رو بیشتر مصرف کنه. بهخصوص اگر کوئریها یا درخواستها خیلی بزرگ و پیچیده باشن و برای APIهایی که باید به سرعت اطلاعات رو بهروزرسانی کنن (جایی که دادهها مرتباً تغییر میکنن)، استفاده از کش میتونه باعث بشه کاربران دادههای جدید رو دیرتر ببینن. در این مواقع، باید خیلی هوشمندانه کشینگ رو تنظیم کنی.
و همچنین استفاده از drf-cache نیاز به تنظیمات دقیق داره، و اگر بهدرستی تنظیم نشه، ممکنه اصلاً نتونی ازش بهینه استفاده کنی یا برعکس، عملکرد رو حتی بدتر کنی.)
https://github.com/chibisov/drf-extensions
@DevTwitter | <Shima Fallah/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 تنسنت بهدنبال تصاحب یوبیسافت، خالق بازیهای اسسینز کرید است
بلومبرگ گزارش میدهد که شرکتهای تنسنت هولدینگز و خانوادهی گیلموت، بنیانگذار یوبیسافت اینترتیمنت، در حال انجام مذاکرهای هستند که میتواند به خرید احتمالی خالق بازیهای اسسینز کرید منجر شود.
#خبر
@TheRaymondDev
بلومبرگ گزارش میدهد که شرکتهای تنسنت هولدینگز و خانوادهی گیلموت، بنیانگذار یوبیسافت اینترتیمنت، در حال انجام مذاکرهای هستند که میتواند به خرید احتمالی خالق بازیهای اسسینز کرید منجر شود.
#خبر
@TheRaymondDev
Bloomberg.com
Tencent, Guillemot Family Are Said to Consider Buyout of Ubisoft
Tencent Holdings Ltd. and Ubisoft Entertainment SA’s founding Guillemot family are considering options including a potential buyout of the French video game developer after it lost more than half its market value this year, according to people familiar with…
Forwarded from DevTwitter | توییت برنامه نویسی
ترکیب وردپرس و لاراول Laravel خیلی جذابه واقعا.
اول از همه Corcel رو نصب میکنید و پروژه لاراول رو باهاش کانفیگ میکنید.
حالا وردپرس رو نصب میکنید و با پلاگین WordPress Pete ستش میکنید روی لاراول.
اینجوری یه سایت لاراولی دارید با بکاند وردپرس
@DevTwitter | <Pedram/>
اول از همه Corcel رو نصب میکنید و پروژه لاراول رو باهاش کانفیگ میکنید.
حالا وردپرس رو نصب میکنید و با پلاگین WordPress Pete ستش میکنید روی لاراول.
اینجوری یه سایت لاراولی دارید با بکاند وردپرس
@DevTwitter | <Pedram/>
Forwarded from Accio
I've just implemented decompression for this program as well. This is still compatible with linux compress program except for reset characters which are to be implemented later on.
Repo:
https://github.com/Keivan-sf/lzw/
#compression #lzw
Repo:
https://github.com/Keivan-sf/lzw/
#compression #lzw
ncompress
About
a fast, simple LZW file compressor
Forwarded from محتوای آزاد سهراب
و هم اکنون آغاز انتقال #پستمارکت به #گیتلب خودمیزبانی شده
https://status.postmarketos.org
@SohrabContents
https://status.postmarketos.org
@SohrabContents
status.postmarketos.org
postmarketOS Status
We continuously monitor the status of our services and if there are any interruptions, a note will be posted here.
Forwarded from محتوای آزاد سهراب
یکی از میانبرهای کاربردی داخل #پلاسما ترکیب کلیدهای alt + f2 هستش که krunner رو اجرا میکنه براتون و از krunner شما میتونید یک سری ابزارهارو باز کنید، وبگردی کنید و یا حتی معادلات ساده ریاضی رو انجام بدید.
همینطور krunner پلاگینهایی داره که از KDE Store میتونید نصب کنید.
@SohrabContents
همینطور krunner پلاگینهایی داره که از KDE Store میتونید نصب کنید.
@SohrabContents
Forwarded from Go Casts 🚀
داشتم یه نگاهی به کتاب foundations of scalable systems مینداختم که یه بخشی ش در مورد مقیاس پذیر کردن دیتابیس به کمک کش صحبت میکنه.
A well-designed caching scheme can be invaluable in scaling a system. Caching
works great for data that rarely changes and is accessed frequently, such as inventory
catalogs, event information, and contact data. If you can handle a large percentage,
say, 80% or more, of read requests from your cache, then you effectively buy extra
capacity at your databases as they never see a large proportion of requests.
داشتن سرویس scalable و مقیاس پذیر بخش زیادی ش وابسته به رعایت کردن یه سری اصول ساده ست که خیلی هامون در موردش شنیدیم و خوندیم و میدونیم.
استراتژی های caching یکی از همون اصول ساده و مهمه که به مقیاس پذیری سیستم خیلی کمک میکنه.
کش کردن استراتژی های مختلفی داره و نباید کورکورانه استفاده بشه، چالش و دغدغه هایی هم ایجاد میکنه مثل مساله invalidate کردن کش یا thundering herd که در موردش چند روز پیش صحبت کردم.
کش کردن تو لایه های مختلف استفاده میشه و شما میتونید از مزایای این استراتژی در همه لایه ها استفاده کنید.
خود کلاینتی که مثلا اپلیکیشن وب یا موبایل هست میتونه یه سری داده رو کش کنه.
برای کمتر شدن لود سرور میتونید از cdn استفاده کنید که assetهای شمارو کش کنه.
سرویس gateway شما میتونه یه سری api رو کش کنه که لود روی اپلیکیشن شما نیفته.
اپلیکیشن شما میتونه هم روی http server یه سروی api رو کش کنه و هم میتونه تو لایه کوئری زدن به دیتابیس یه سری کوئری ها رو کش کنه.
سرویس دیتابیس هم معمولا خودشون استراتژی های مختلفی دارن برای کش کردن کوئری ها.
سیستم فایل و دیسک هایی که دیتابیس ها استفاده میکنن هم خودشون pageهای دیسکی که بیشتر استفاده میشه رو کش میکنن.
سیستم عامل هم خودش چندین لایه کش داره.
بصورت آشکار و نهان کش یکی از راه های ساده و قوی هست، اما باید با فکر و تحلیل ازش استفاده کنید.
@gocasts
A well-designed caching scheme can be invaluable in scaling a system. Caching
works great for data that rarely changes and is accessed frequently, such as inventory
catalogs, event information, and contact data. If you can handle a large percentage,
say, 80% or more, of read requests from your cache, then you effectively buy extra
capacity at your databases as they never see a large proportion of requests.
داشتن سرویس scalable و مقیاس پذیر بخش زیادی ش وابسته به رعایت کردن یه سری اصول ساده ست که خیلی هامون در موردش شنیدیم و خوندیم و میدونیم.
استراتژی های caching یکی از همون اصول ساده و مهمه که به مقیاس پذیری سیستم خیلی کمک میکنه.
کش کردن استراتژی های مختلفی داره و نباید کورکورانه استفاده بشه، چالش و دغدغه هایی هم ایجاد میکنه مثل مساله invalidate کردن کش یا thundering herd که در موردش چند روز پیش صحبت کردم.
کش کردن تو لایه های مختلف استفاده میشه و شما میتونید از مزایای این استراتژی در همه لایه ها استفاده کنید.
خود کلاینتی که مثلا اپلیکیشن وب یا موبایل هست میتونه یه سری داده رو کش کنه.
برای کمتر شدن لود سرور میتونید از cdn استفاده کنید که assetهای شمارو کش کنه.
سرویس gateway شما میتونه یه سری api رو کش کنه که لود روی اپلیکیشن شما نیفته.
اپلیکیشن شما میتونه هم روی http server یه سروی api رو کش کنه و هم میتونه تو لایه کوئری زدن به دیتابیس یه سری کوئری ها رو کش کنه.
سرویس دیتابیس هم معمولا خودشون استراتژی های مختلفی دارن برای کش کردن کوئری ها.
سیستم فایل و دیسک هایی که دیتابیس ها استفاده میکنن هم خودشون pageهای دیسکی که بیشتر استفاده میشه رو کش میکنن.
سیستم عامل هم خودش چندین لایه کش داره.
بصورت آشکار و نهان کش یکی از راه های ساده و قوی هست، اما باید با فکر و تحلیل ازش استفاده کنید.
@gocasts
Audio
رادیو جادی ۱۷۵ - کار و زندگی و تنبلی و فلسفه و جهان بینی در گپی با پادکست کارگاه
https://youtu.be/TC9VV4nxLvc
چند وقت پیش به دعوت میلاد به پادکست کارگاه رفتم و گپی باهاش زدم. نمیدونستم در مورد چی قراره صحبت میکنیم. فکر می کردم بیشتر قراره بگم چطوری کار می کنم و اینها ولی بیشتر در مورد فلسفه زندگی و اینها گپ زدیم به نظرم. راستش درست یادم نیست چی گفتیم ولی یادمه که گفتگوی خوبی بود. به من که خوش گذشت و قرار شد چند روز بعد از اینکه خودش منتشرش کرد و آدم ها اونجا دیدنش، منم اینجا بذارم که در آرشیو من هم باشه.
#پادکست #رادیو
https://youtu.be/TC9VV4nxLvc
چند وقت پیش به دعوت میلاد به پادکست کارگاه رفتم و گپی باهاش زدم. نمیدونستم در مورد چی قراره صحبت میکنیم. فکر می کردم بیشتر قراره بگم چطوری کار می کنم و اینها ولی بیشتر در مورد فلسفه زندگی و اینها گپ زدیم به نظرم. راستش درست یادم نیست چی گفتیم ولی یادمه که گفتگوی خوبی بود. به من که خوش گذشت و قرار شد چند روز بعد از اینکه خودش منتشرش کرد و آدم ها اونجا دیدنش، منم اینجا بذارم که در آرشیو من هم باشه.
#پادکست #رادیو
Forwarded from DevTwitter | توییت برنامه نویسی
فرقی نداره تو چه حوزهای میخواین کار کنید؛ بکاند، فرانتاند، هوش مصنوعی یا هر چی که به ذهنتون میرسه، سایت roadmap.sh برای شماست.
مسیر یادگیری رو براتون مشخص میکنه و برای هر مرحله منابع خوب معرفی میکنه.برای افرادی که نمیدونن از کجا شروع کنن عالیه، از دستش ندید.
@DevTwitter | <Reza Jafari/>
مسیر یادگیری رو براتون مشخص میکنه و برای هر مرحله منابع خوب معرفی میکنه.برای افرادی که نمیدونن از کجا شروع کنن عالیه، از دستش ندید.
@DevTwitter | <Reza Jafari/>
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
توی پست جدید اینستاگرام یه سایت بهتون معرفی کردم که سورس کد کلی بک گراند انیمیشنی خفن رو براتون گذاشته که میتونید ازشون توی وبسایتتون استفاده کنید ⚡🤩
💎 لینک ویدیو
💎 لینک ویدیو
#️⃣ #NEWPost #website
🚀 @coolycode
Forwarded from محتوای آزاد سهراب
شاید این سوال براتون پیش اومده باشه که چطور میشه استیم دک رو بدرد نخورش کرد؟
خب یکی از روش ها نصب ویندوزه، ولی اگه خیلی توی این راه افراط دارید دوستان روی استیم دک هکینتاش بالا آوردن:
https://www.tomshardware.com/software/macos/deckintosh-has-apples-latest-macos-sequoia-running-on-the-steam-deck
@SohrabContents
خب یکی از روش ها نصب ویندوزه، ولی اگه خیلی توی این راه افراط دارید دوستان روی استیم دک هکینتاش بالا آوردن:
https://www.tomshardware.com/software/macos/deckintosh-has-apples-latest-macos-sequoia-running-on-the-steam-deck
@SohrabContents
Tom's Hardware
Deckintosh has Apple's latest macOS Sequoia running on the Steam Deck
SteamOS 3 is undoubtedly the better way to use Steam Deck, at least for now.
Forwarded from ⚝
GitHub
GitHub - quickemu-project/quickemu: Quickly create and run optimised Windows, macOS and Linux virtual machines
Quickly create and run optimised Windows, macOS and Linux virtual machines - quickemu-project/quickemu
GitHub.com/quickemu-project/quickemu
این چند وقته درگیر دنیای هکینتاش و رفقاش بودم و این پروژه بین راه نظرمو جلب کرد:
(قبلاً کانال گذاشته بودم، مجدد قرارش دادم چون ایدهٔ پشتش قشنگه.)
#note #FLOSS #معرفی
@amiria703_channel
این چند وقته درگیر دنیای هکینتاش و رفقاش بودم و این پروژه بین راه نظرمو جلب کرد:
(قبلاً کانال گذاشته بودم، مجدد قرارش دادم چون ایدهٔ پشتش قشنگه.)
#note #FLOSS #معرفی
@amiria703_channel
Forwarded from Linuxor ?
موش شانون
شانون توی ۱۹۵۰ یه موش مصنوعی، به اندازهٔ یه موش واقعی که با مدارهای رله کنترل میشد، اختراع کرد که میتونست توی یه هزارتوی ۲۵ مربعی حرکت کنه و هدف رو پیدا کنه. این موش هر جای این هزارتو که قرار داده میشد، میتونست با توجه به تجربهٔ قبلیاش، مسیر خود را به سوی هدف پیدا کنه و طوری برنامهریزی شده بود که اگه توی جایی ناشناخته قرار میگرفت، برای یافتن جاهای آشنا جستوجو و از آنها به سمت هدف حرکت کنه. با این کار، دانش جدیدی به حافظه موش اضافه میشد که همون جای ناشناخته بود. موش شانون، اولین وسیله با توانایی یادگیری بود.
🐧 @Linuxor
شانون توی ۱۹۵۰ یه موش مصنوعی، به اندازهٔ یه موش واقعی که با مدارهای رله کنترل میشد، اختراع کرد که میتونست توی یه هزارتوی ۲۵ مربعی حرکت کنه و هدف رو پیدا کنه. این موش هر جای این هزارتو که قرار داده میشد، میتونست با توجه به تجربهٔ قبلیاش، مسیر خود را به سوی هدف پیدا کنه و طوری برنامهریزی شده بود که اگه توی جایی ناشناخته قرار میگرفت، برای یافتن جاهای آشنا جستوجو و از آنها به سمت هدف حرکت کنه. با این کار، دانش جدیدی به حافظه موش اضافه میشد که همون جای ناشناخته بود. موش شانون، اولین وسیله با توانایی یادگیری بود.
🐧 @Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 آشنایی با PHP-FPM: راهنمای جامع | قسمت اول
مقدمه
زبان PHP هنوز هم محبوب ترین زبان برنامه نویسی سمت سرور در توسعه وب است. همانطور که وب سایت ها و برنامه های کاربردی از نظر پیچیدگی و تقاضا افزایش می یابد، توسعه دهندگان دائما به دنبال راه هایی برای بهینه سازی عملکرد و کارایی PHP هستند. یکی از این راه حل ها که محبوبیت پیدا کرده است، PHP-FPM (FastCGI Process Manager) است که یک جایگزین برای PHP FastCGI بسیار کارآمد است. ما در این دنیای PHP-FPM را بررسی خواهیم کرد و در مورد ویژگی ها، مزایا و اینکه چگونه ممکن است سرعت برنامه های مبتنی بر PHP را تا حد زیادی بهبود بخشد، آشنا خواهیم شد.
ابزار PHP-FPM چیست؟
ابزار PHP-FPM یک جایگزین برای PHP FastCGI است که برای غلبه بر محدودیت های PHP-CGI معرفی شده است. این به عنوان یک مدیر فرآیند کار می کند، فرآیندهای PHP را مدیریت می کند و درخواست های PHP را جدا از وب سرور مدیریت می کند. با انجام این کار، می تواند چندین درخواست PHP را به طور همزمان مدیریت کند که منجر به کاهش قابل توجه تأخیر و بهبود عملکرد کلی می شود.
مزایای PHP-FPM
2.1 افزایش عملکرد
تمرکز اصلی PHP-FPM بر بهبود عملکرد برنامه های مبتنی بر PHP است. با حفظ فرآیندهای جداگانه کارگر PHP، می تواند تعداد بیشتری از درخواست های همزمان را به طور موثرتری مدیریت کند. این رویکرد به طور قابل توجهی زمان پاسخگویی را کاهش می دهد و باعث می شود برنامه های وب پاسخگویی بیشتری داشته باشند و تجربه کاربری را افزایش دهند.
2.2 بهره وری منابع
با PHP-FPM، منابع را می توان به طور موثرتری مدیریت کرد. از آنجایی که به عنوان یک مدیر فرآیند عمل می کند، می تواند تعداد فرآیندهای فعال PHP را بر اساس منابع سرور و بار درخواست ورودی کنترل کند. این از اتلاف منابع جلوگیری می کند و عملکرد سرور را بهینه می کند و به آن اجازه می دهد تا با منابع کمتر به کاربران بیشتری خدمات ارائه دهد.
2.3 پایداری و ایزولاسیون
ابزار PHP-FPM یک محیط پایدار و ایمن برای اجرای برنامه های PHP فراهم می کند. اگر یک فرآیند PHP با خطا مواجه شود یا پاسخگو نشود، بر سایر فرآیندهای فعال تأثیر نمی گذارد. این جداسازی تضمین می کند که درخواست های فردی جدا شده اند و بر ثبات کلی سیستم تأثیر نمی گذارند.
2.4 پیکربندی استخر قابل تنظیم
توسعه دهندگان می توانند پیکربندی استخر PHP-FPM را برای مطابقت با نیازهای خاص برنامه های خود تنظیم کنند. برای به دست آوردن بهترین عملکرد برای سناریوهای مختلف، فاکتورهای پیکربندی از جمله تعداد فرآیندهای فرزند، حداکثر تعداد درخواست هایی که هر کودک می تواند مدیریت کند و سایر تنظیمات را می توان تغییر داد.
#php
@TheRaymondDev
مقدمه
زبان PHP هنوز هم محبوب ترین زبان برنامه نویسی سمت سرور در توسعه وب است. همانطور که وب سایت ها و برنامه های کاربردی از نظر پیچیدگی و تقاضا افزایش می یابد، توسعه دهندگان دائما به دنبال راه هایی برای بهینه سازی عملکرد و کارایی PHP هستند. یکی از این راه حل ها که محبوبیت پیدا کرده است، PHP-FPM (FastCGI Process Manager) است که یک جایگزین برای PHP FastCGI بسیار کارآمد است. ما در این دنیای PHP-FPM را بررسی خواهیم کرد و در مورد ویژگی ها، مزایا و اینکه چگونه ممکن است سرعت برنامه های مبتنی بر PHP را تا حد زیادی بهبود بخشد، آشنا خواهیم شد.
ابزار PHP-FPM چیست؟
ابزار PHP-FPM یک جایگزین برای PHP FastCGI است که برای غلبه بر محدودیت های PHP-CGI معرفی شده است. این به عنوان یک مدیر فرآیند کار می کند، فرآیندهای PHP را مدیریت می کند و درخواست های PHP را جدا از وب سرور مدیریت می کند. با انجام این کار، می تواند چندین درخواست PHP را به طور همزمان مدیریت کند که منجر به کاهش قابل توجه تأخیر و بهبود عملکرد کلی می شود.
مزایای PHP-FPM
2.1 افزایش عملکرد
تمرکز اصلی PHP-FPM بر بهبود عملکرد برنامه های مبتنی بر PHP است. با حفظ فرآیندهای جداگانه کارگر PHP، می تواند تعداد بیشتری از درخواست های همزمان را به طور موثرتری مدیریت کند. این رویکرد به طور قابل توجهی زمان پاسخگویی را کاهش می دهد و باعث می شود برنامه های وب پاسخگویی بیشتری داشته باشند و تجربه کاربری را افزایش دهند.
2.2 بهره وری منابع
با PHP-FPM، منابع را می توان به طور موثرتری مدیریت کرد. از آنجایی که به عنوان یک مدیر فرآیند عمل می کند، می تواند تعداد فرآیندهای فعال PHP را بر اساس منابع سرور و بار درخواست ورودی کنترل کند. این از اتلاف منابع جلوگیری می کند و عملکرد سرور را بهینه می کند و به آن اجازه می دهد تا با منابع کمتر به کاربران بیشتری خدمات ارائه دهد.
2.3 پایداری و ایزولاسیون
ابزار PHP-FPM یک محیط پایدار و ایمن برای اجرای برنامه های PHP فراهم می کند. اگر یک فرآیند PHP با خطا مواجه شود یا پاسخگو نشود، بر سایر فرآیندهای فعال تأثیر نمی گذارد. این جداسازی تضمین می کند که درخواست های فردی جدا شده اند و بر ثبات کلی سیستم تأثیر نمی گذارند.
2.4 پیکربندی استخر قابل تنظیم
توسعه دهندگان می توانند پیکربندی استخر PHP-FPM را برای مطابقت با نیازهای خاص برنامه های خود تنظیم کنند. برای به دست آوردن بهترین عملکرد برای سناریوهای مختلف، فاکتورهای پیکربندی از جمله تعداد فرآیندهای فرزند، حداکثر تعداد درخواست هایی که هر کودک می تواند مدیریت کند و سایر تنظیمات را می توان تغییر داد.
#php
@TheRaymondDev
Forwarded from ASafaeirad
content-visibility
the new CSS property that boosts your rendering performance
https://web.dev/articles/content-visibility
#css
the new CSS property that boosts your rendering performance
https://web.dev/articles/content-visibility
#css
web.dev
content-visibility: the new CSS property that boosts your rendering performance | Articles | web.dev
The CSS content-visibility property enables web content rendering performance benefits by skipping rendering of off-screen content. This article shows you how to use this new CSS property for faster initial load times, using the auto keyword. You will also…
Forwarded from Linuxor ?
یه کامپیوتر 7 سال روشن بوده و کلی توش پراسس ساخته شدن و از بین رفتن، اگه عدد PID بیش از حداکثرش بشه چی میشه؟
Anonymous Quiz
48%
سیستم عامل میره PID های پایین که خالین رو دوباره استفاده میکنه.
7%
کامپیوتر کم کم به صورت Safe خاموش میشه.
31%
سیستم عامل پراسس های غیر ضروری رو Kill میکنه
14%
اصلا 7 سال هست که کامپیوتر اختراع شده؟
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from Gopher Academy
در Go، دلیل اینکه مقایسه
### توضیح:
- مقدار `a`: این یک اشارهگر از نوع
- مقدار `b`: این یک متغیر از نوع
### چرا خروجی
در مقایسه `a == b`، موارد زیر رخ میدهد:
1. `a` یک اشارهگر از نوع
2.
اما در Go، وقتی یک
### نتیجه:
مقدار
➖➖➖➖➖➖➖➖
👑 @gopher_academy
a == b در کد زیر خروجی false میدهد به تفاوت نوع دادههای مقایسهشده بازمیگردد:var a *int = nil
var b interface{} = nil
fmt.Println(a == b) // false
### توضیح:
- مقدار `a`: این یک اشارهگر از نوع
*int است که به nil اشاره میکند. اگرچه مقدار آن nil است، ولی نوع آن هنوز هم *int است.- مقدار `b`: این یک متغیر از نوع
interface{} است که به nil اشاره میکند. در Go، وقتی یک interface{} مقدار nil دارد، هم مقدار آن و هم نوع آن باید nil باشد تا برابر با nil ارزیابی شود.### چرا خروجی
false است:در مقایسه `a == b`، موارد زیر رخ میدهد:
1. `a` یک اشارهگر از نوع
*int است و مقدار nil دارد.2.
b یک interface{} است که به nil اشاره میکند.اما در Go، وقتی یک
interface{} مقدار nil داشته باشد، نوع interface{} نیز باید nil باشد تا با nil مقایسهشده برابر باشد. در اینجا، نوع b یک interface{} است، اما در مقایسه a == b`، نوع `b برابر با *int است (چون a از نوع *int است و به interface{} تبدیل شده است). این تفاوت در نوعها (*int در مقابل interface{}) باعث میشود که مقایسه false شود.### نتیجه:
مقدار
nil در Go به نوع آن وابسته است. حتی اگر هر دو متغیر مقدار nil داشته باشند، اگر نوع آنها متفاوت باشد، مقایسه برابر نخواهد بود.➖➖➖➖➖➖➖➖
👑 @gopher_academy