Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
آیا PHP یک زبان Blocking است؟
توی چند تا از مصاحبههای اخیرم این سؤال ازم پرسیده شد که: “PHP blocking هست یا نه؟”
گفتم بد نیست یه بار این موضوع رو دقیقتر بررسی کنیم.
زبان PHP ذاتاً thread-blocking هست.
یعنی وقتی یه عملیات I/O انجام میدین (مثلاً خوندن فایل، ارتباط با سوکت، یا درخواست شبکه)،
کل پردازش متوقف میمونه تا نتیجه اون عملیات برگرده.
به زبان ساده: اگه یه درخواست جدید به همون سرور برسه،
تا زمانی که پردازش درخواست قبلی تموم نشده،
درخواست جدید باید منتظر بمونه.
(FastCGI Process Manager) PHP-FPM
وظیفهاش اینه که برای هر درخواست، یه child process جدید بسازه
و اون رو به یکی از worker processها بده تا اجرا کنه.
اما نکته مهم اینه که اون پردازشِ داخل worker همچنان blocking هست.
حالا اگه همهی workerها درگیر باشن و تعدادشون به حداکثر تنظیمشده برسه،
درخواست جدید باید منتظر بمونه تا یکی از workerها آزاد بشه.
(در نتیجه هنوز هم ما با blocking مواجهیم، فقط به شکل مدیریتشدهتر.)
خب حالا سوالی که پیش ماید که آیا میتونیم PHP رو non-blocking کنیم؟
بله، تا حدی میشه!
با این شرط که درخواستهای I/O (که به کرنل وابسته هستن یا مثلا درخواست مربوط به دیتابیس)
توی thread جداگانه اجرا بشن.
اما این کار نیاز داره که خود برنامهنویس thread management رو هندل کنه،
و برای این کار باید Zend extension مربوط به threads فعال باشه.
نکته مهم: PHP-FPM خودش اجازهی استفاده از threadها رو به صورت مستقیم نمیده.
@DevTwitter | <Hossein Salehi/>
توی چند تا از مصاحبههای اخیرم این سؤال ازم پرسیده شد که: “PHP blocking هست یا نه؟”
گفتم بد نیست یه بار این موضوع رو دقیقتر بررسی کنیم.
زبان PHP ذاتاً thread-blocking هست.
یعنی وقتی یه عملیات I/O انجام میدین (مثلاً خوندن فایل، ارتباط با سوکت، یا درخواست شبکه)،
کل پردازش متوقف میمونه تا نتیجه اون عملیات برگرده.
به زبان ساده: اگه یه درخواست جدید به همون سرور برسه،
تا زمانی که پردازش درخواست قبلی تموم نشده،
درخواست جدید باید منتظر بمونه.
(FastCGI Process Manager) PHP-FPM
وظیفهاش اینه که برای هر درخواست، یه child process جدید بسازه
و اون رو به یکی از worker processها بده تا اجرا کنه.
اما نکته مهم اینه که اون پردازشِ داخل worker همچنان blocking هست.
حالا اگه همهی workerها درگیر باشن و تعدادشون به حداکثر تنظیمشده برسه،
درخواست جدید باید منتظر بمونه تا یکی از workerها آزاد بشه.
(در نتیجه هنوز هم ما با blocking مواجهیم، فقط به شکل مدیریتشدهتر.)
خب حالا سوالی که پیش ماید که آیا میتونیم PHP رو non-blocking کنیم؟
بله، تا حدی میشه!
با این شرط که درخواستهای I/O (که به کرنل وابسته هستن یا مثلا درخواست مربوط به دیتابیس)
توی thread جداگانه اجرا بشن.
اما این کار نیاز داره که خود برنامهنویس thread management رو هندل کنه،
و برای این کار باید Zend extension مربوط به threads فعال باشه.
نکته مهم: PHP-FPM خودش اجازهی استفاده از threadها رو به صورت مستقیم نمیده.
@DevTwitter | <Hossein Salehi/>
Forwarded from ⚝ (امیرحسین پناهےفر)
Kubernnetes from Pod to Prod 2025.pdf
30.7 MB
جزوه خوبیه واسه سلف لرنینگ k8s 👩💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from طبرستان گنو (تابلوسازی رنجبر)
friction
یک اپلیکیشن قدرتمند و همهکاره برای موشن گرافیک (Motion Graphics) است که به شما امکان میدهد انیمیشنهای وکتور و رستر را برای وب و ویدئو ایجاد کنید.
#نرمافزار_آزاد
یک اپلیکیشن قدرتمند و همهکاره برای موشن گرافیک (Motion Graphics) است که به شما امکان میدهد انیمیشنهای وکتور و رستر را برای وب و ویدئو ایجاد کنید.
#نرمافزار_آزاد
friction.graphics
Friction is a powerful and versatile motion graphics application that allows you to create vector and raster animations for web and video.
🔥3
Forwarded from Linuxor ?
با این ابزار جالب میتونید سرویس و سایت و API هاتون رو مانیتور کنید، خوبیش اینه که روی خود گیتهاب اکشنز اجرا میشه و نیازی به سرور مجزا ندارید و وقتی قطعی (downtime) شناسایی بشه GitHub بهصورت خودکار یک Issue باز میکنه و بعد از رفع مشکل اون رو میبنده.
اینطوری هیچ هزینه ای هم به سرویس های واسط نمیدین، آموزش استفادش هم از این لینک دنبال کنید :
upptime.js.org/docs
@Linuxor
اینطوری هیچ هزینه ای هم به سرویس های واسط نمیدین، آموزش استفادش هم از این لینک دنبال کنید :
upptime.js.org/docs
@Linuxor
Forwarded from Linuxor ?
میدونستین نسخه وب تلگرام از یه قابلیت معروف مرورگر به اسم Service Worker استفاده میکنه؟
سروریس ورکر مثل یه برنامه پشتصحنه توی مرورگره که بین مرورگر و شبکه قرار میگیره و تمام ترافیک رو هندل میکنه مثل یه پروکسب داخلی با دسترسی به کش، رمزنگاری و MTProto.
تلگرام ازش برای رمزنگاری کردن streamها، کش کردن مدیا، و دریافت ناتیفیکیشن استفاده میکنه.
در واقع تلگرام وب یه اپ native هستش که روی مرورگر سوار شده سرویس ورکر ها توی یه thread جدا اجرا میشن این یعنی:
رمزگشایی فایلها (مثلاً ویدیوهای MP4 یا voice) مرورگر رو کند نمیکنه و حتی آپلودها یا دانلودها میتونن توی پسزمینه ادامه پیدا کنن :)
@Linuxor
سروریس ورکر مثل یه برنامه پشتصحنه توی مرورگره که بین مرورگر و شبکه قرار میگیره و تمام ترافیک رو هندل میکنه مثل یه پروکسب داخلی با دسترسی به کش، رمزنگاری و MTProto.
تلگرام ازش برای رمزنگاری کردن streamها، کش کردن مدیا، و دریافت ناتیفیکیشن استفاده میکنه.
در واقع تلگرام وب یه اپ native هستش که روی مرورگر سوار شده سرویس ورکر ها توی یه thread جدا اجرا میشن این یعنی:
رمزگشایی فایلها (مثلاً ویدیوهای MP4 یا voice) مرورگر رو کند نمیکنه و حتی آپلودها یا دانلودها میتونن توی پسزمینه ادامه پیدا کنن :)
@Linuxor
Forwarded from Woland's Linux Journal (Woland)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from DevBooks | کتاب برنامه نویسی
Linux for Beginners - DevTwitter.pdf
11.7 MB
#Linux
Linux for Beginners
Basic Linux Commands and Shell Scripting
- By Travis Booth
- 226 Pages
@DevTwitter
Linux for Beginners
Basic Linux Commands and Shell Scripting
- By Travis Booth
- 226 Pages
@DevTwitter
❤1⚡1🔥1👾1
Forwarded from Puzzley | اپلیکیشنساز پازلی
سلام و عرض ادب خدمت شما عزیزان
ما در پازلی به منظور توسعه تیم پشتیبانی و فروش خود به دنبال جذب نیروی تماموقت هستیم.
👨🏻💻 موقعیتهای شغلی:
۲ نفر - کارشناس ارتباط با مشتری و فروش
👨🏻💼 شرایط فردی:
✔️ دارای انگیزه بالا، علاقهمند به یادگیری و رشد
✔️ توانایی حل مسئله و ایدهپردازی
✔️ روحیه کار تیمی و همکاری
✔️ آشنایی مقدماتی با کامپیوتر
✔️ ساکن بیرجند
🔹 شرایط شغلی:
✔️ حقوق متناسب با مهارت و توانمندی
✔️ ساعت کاری منعطف
✔️ همکاری با تیمی حرفهای در فضایی پویا و صمیمی
📎 علاقهمندان به همکاری میتوانند از طریق لینک زیر رزومه خود را ارسال کرده و برای تعیین زمان مصاحبه اقدام نمایند: 👇
https://forms.gle/ysQoyFVKCHRsGzs9A
🆔 @puzzley_ir
ما در پازلی به منظور توسعه تیم پشتیبانی و فروش خود به دنبال جذب نیروی تماموقت هستیم.
👨🏻💻 موقعیتهای شغلی:
۲ نفر - کارشناس ارتباط با مشتری و فروش
👨🏻💼 شرایط فردی:
✔️ دارای انگیزه بالا، علاقهمند به یادگیری و رشد
✔️ توانایی حل مسئله و ایدهپردازی
✔️ روحیه کار تیمی و همکاری
✔️ آشنایی مقدماتی با کامپیوتر
✔️ ساکن بیرجند
🔹 شرایط شغلی:
✔️ حقوق متناسب با مهارت و توانمندی
✔️ ساعت کاری منعطف
✔️ همکاری با تیمی حرفهای در فضایی پویا و صمیمی
📎 علاقهمندان به همکاری میتوانند از طریق لینک زیر رزومه خود را ارسال کرده و برای تعیین زمان مصاحبه اقدام نمایند: 👇
https://forms.gle/ysQoyFVKCHRsGzs9A
🆔 @puzzley_ir
❤2⚡1👾1
Forwarded from Woland's Linux Journal (Woland)
💠ytsage💠
یک دانلودر همهکاره برای یوتوب
دانلود از گیتهاب
یا
#معرفی
یک دانلودر همهکاره برای یوتوب
دانلود از گیتهاب
یا
python3 -m venv venv
source venv/bin/activate
pip install ytsage
#معرفی
❤2
Forwarded from نوشتههای ترمینالی
شاید دیده باشید تو شبکه محلی وقتی DHCP درست کار نمیکنه، خود سیستم یه آیپی رندومی میگیره. این آیپی در بازه ۱۶۹.۲۵۴.۰.۰٫۱۶ قرار میگیره اما داستان پشتش چیه؟
داستان از این قراره که اساین کردن IP به کامپیوتر های شبکه راه های مختلفی داره از جمله static و DHCP ولی اگه سیستم با هیچ کدوم از اینا نتونه آیپی بگیره باید چیکار کنه؟ وصل نشه؟
به عنوان آخرین گزینه و فالبک، سیستم میان در یک بازه از پیش تعیین شده یه ایپی رندوم انتخاب میکنه که صرفا بتونه وصل بشه. به امید این که کامپیوتر دیگری اون رو انتخاب نکرده باشه، اما به همینجا بسنده نمیشه و یه درخواست arp به اون ایپی میفرسته تا ببینه کس دیگری اون ایپی رو داره یا نه و اگر کسی دیگری داشت باز آدرس رندوم جدید میسازه!
با این روش کامپیوترها بدون DHCP آیپی میگیرن و میتونن با هم صحبت کنن ولی مشکلی که هست اینه که default gateway رو کسی بهشون نگفته در نتیجه درخواست هاشون به بیرون route نمیشه (به بیانی اینترنت ندارن)
پس از این به بعد اگه دیدید اینترنت ندارید و آیپی سیستمتون با ۱۶۹.۲۵۴ شروع میشه بدونید مشکل DHCPئه.
اسم این روش APIPA یا automatic private IP addressingئه
https://www.cbtnuggets.com/blog/technology/networking/what-is-automatic-private-ip-addressing-apipa
داستان از این قراره که اساین کردن IP به کامپیوتر های شبکه راه های مختلفی داره از جمله static و DHCP ولی اگه سیستم با هیچ کدوم از اینا نتونه آیپی بگیره باید چیکار کنه؟ وصل نشه؟
به عنوان آخرین گزینه و فالبک، سیستم میان در یک بازه از پیش تعیین شده یه ایپی رندوم انتخاب میکنه که صرفا بتونه وصل بشه. به امید این که کامپیوتر دیگری اون رو انتخاب نکرده باشه، اما به همینجا بسنده نمیشه و یه درخواست arp به اون ایپی میفرسته تا ببینه کس دیگری اون ایپی رو داره یا نه و اگر کسی دیگری داشت باز آدرس رندوم جدید میسازه!
با این روش کامپیوترها بدون DHCP آیپی میگیرن و میتونن با هم صحبت کنن ولی مشکلی که هست اینه که default gateway رو کسی بهشون نگفته در نتیجه درخواست هاشون به بیرون route نمیشه (به بیانی اینترنت ندارن)
پس از این به بعد اگه دیدید اینترنت ندارید و آیپی سیستمتون با ۱۶۹.۲۵۴ شروع میشه بدونید مشکل DHCPئه.
اسم این روش APIPA یا automatic private IP addressingئه
https://www.cbtnuggets.com/blog/technology/networking/what-is-automatic-private-ip-addressing-apipa
CBT Nuggets
What is Automatic Private IP Addressing (APIPA)?
Automatic Private IP Addressing, referred to as APIPA, acts as a failover for DHCP when communication between a device and the DHCP server is not possible.
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
این ریپو هم جالب بود
آموزش امن کردن سرور لینوکسی که خودش گفته یکم هم امنیت بهتون یاد میدیم.
البته که گفته به درد سرور شخصی میخوره، بیشتر هدفش آموزشه تا کانفیگ سرور پروداکشن ولی خب جامع و کامله.
https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
@DevTwitter | <Milad Niroee/>
آموزش امن کردن سرور لینوکسی که خودش گفته یکم هم امنیت بهتون یاد میدیم.
البته که گفته به درد سرور شخصی میخوره، بیشتر هدفش آموزشه تا کانفیگ سرور پروداکشن ولی خب جامع و کامله.
https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
@DevTwitter | <Milad Niroee/>
❤3
Forwarded from Linuxor ?
این کد عجیب غریب رو ببینید، خروجیش شده Hello World به این کار میگن Obfuscate کردن کد به طوری که دیگه مبهم شده و دیگه خونده نمیشه.
مبهم سازی رو برای افزایش امنیت کد انجام میدن چون جاوا اسکریپت همیشه در معرض دید هستش، نکته جالبش اینه که اوپن سورسه، اما این به معنی این نیست که الگوریتم خودش معلومه و قابل بازگردانیه چون یه سری عملیات یه طرفه روش انجام میشه و تا حد خوبی کد رو مبهم میکنه، از اینجا میتونید کد خودتون رو تست کنید :
obfuscator.io
@Linuxor
مبهم سازی رو برای افزایش امنیت کد انجام میدن چون جاوا اسکریپت همیشه در معرض دید هستش، نکته جالبش اینه که اوپن سورسه، اما این به معنی این نیست که الگوریتم خودش معلومه و قابل بازگردانیه چون یه سری عملیات یه طرفه روش انجام میشه و تا حد خوبی کد رو مبهم میکنه، از اینجا میتونید کد خودتون رو تست کنید :
obfuscator.io
@Linuxor