Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
آیا 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/>
Forwarded from ‌BenDev
بلاخره این شما و اینم پایتونی واقعی سریع

پایتون ۳.۱۴ اومد بیرون
https://www.python.org/downloads/

و این دفعه دیگه واقعا شاهد پایتونی:
multi-core , Free-threaded (no-GIL)

هستیم


تگ آزمایشی (experimantal) از gil حذف شده
https://discuss.python.org/t/pep-779-criteria-for-supported-status-for-free-threaded-python/84319/117?page=7


و شما می‌تونید توی یک پروسه چندین مفسر پایتون مجزا داشته باشین
که مدل جدیدی از کانکارنسی و پارالیزم واقعی رو به همراه داره

( چون دیگ gil بین چند subinterpreter مشترک نیست )
https://docs.python.org/3.14/whatsnew/3.14.html

concurrent.interpreters
https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-multiple-interpreters


@BenDevelop
Forwarded from Seyyed Reza
ما Ventu هستیم، یه استارتاپ فنلاندی.
هدفمون ساده‌ست: کمک کنیم متخصص‌های ایرانی بتونن با شرکت‌های اروپایی همکاری کنن و درآمد یورویی واقعی داشته باشن

پلتفرم ما اینطوری کار می‌کنه:
کافیه از لینک زیر ثبت‌نام کنید و پروفایل بسازید.
کارفرماها بین پروفایل‌ها می‌گردن، اگه از مهارت‌هاتون خوششون بیاد، لایک می‌کنن و مصاحبه شروع می‌شه.
https://ventu.io/find-work

💰 هزینه؟ هیچ‌چیز! ثبت‌نام و استفاده کاملاً رایگانه.
🚫 تحریم‌ها چی؟ اگه همکاری نهایی بشه، تیم ما قدم‌به‌قدم کمکتون می‌کنه تا حساب بین‌المللی باز کنید و بدون دردسر حقوقتون رو بگیرید.

فقط کافیه تو زمینه کاری خودتون حرفه‌ای باشید
و یه سطح خوب از زبان انگلیسی داشته باشید (در حد مصاحبه کاری).

ما با شعار یا وعده‌های عجیب پیش نمی‌ریم،
فقط یه مسیر واقعی برای آدم‌های حرفه‌ای ساختیم که می‌خوان کار بین‌المللی تجربه کنن.
آقا من همیشه یه چیزی رو مخم بود
اینکه تو الگوریتم های استاندارد و بزرگ رمزنگاری متقارن (AES-CTR و ChaCha20 و...) یه مشکلی دارن و اونم اینه که هر بیت از plaintext دقیقا رو یه بیت از ciphertext اثر میذاره! شما اگر یه بیت رو تغییر بدی، فقط همون بیت تو خروجی تغییر میکنه و خلاصه رابطه بین ورودی و خروجی دقیقا یک بیت به یک بیت هست

درسته که یسری مزایا هم داره (مثلا میشه یه فایل عظیم یا یه stream رو باهاشون رمز کرد) ولی بازم اینکه اصطلاحا diffusion ندارن به نظرم برای کاربرد های حساس و روی متن های نسبتا کوتاه اصلا مناسب نیست.

بخاطر همین نشستم تحقیق کردم و الگوریتم طراحی کردم و رسیدم به MACE :)

بر اساس یه الگوریتم هش کار میکنه (که من BLAKE3 رو انتخاب کردم، ولی اجباری نیست!) و داده ها رو به چانک های ۶۴ بایتی میشکونه و اونها رو با یه فرایند ساده ولی مؤثر رمز میکنه (توضیحات دقیقش تو README پروژه هست)

خلاصه‌ش اینکه این الگوریتم با اینکه بسیار سبک و سریعه، قابلیت های زیادی داره و البته که full diffusion بهتون ارایه میکنه: هر بیت از ورودی رو تغییر بدید کل خروجی زیر و رو میشه!

خوشحال میشم بخونیدش و تستش کنید و نظرتونو بهم بگید:
github.com/MHSarmadi/MACE

@DevTwitter | <محمد حسین سرمدی/>
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 وردپرس در مقابل همه : بهترین سیستم مدیریت محتوا (CMS) برای معیارهای Core Web Vitals

طبق گزارش جدید Search Engine Journal، وردپرس در مقایسه با سایر سیستم‌های مدیریت محتوا، پایین‌ترین عملکرد را در معیارهای Core Web Vitals داشته است. این معیارها شاخص‌هایی برای سنجش سرعت، پایداری و پاسخ ‌دهی واقعی سایت‌ها هستند.

لیست برترین ها :

1- Duda
2- Wix
3- Squarespace
4- Drupal
5- Joomla
6- WordPress

پ.ن : بخش مهمی از این ضعف به استفاده گسترده از صفحه ‌سازهایی مانند المنتور (Elementor) بر می‌گردد. المنتور با وجود سادگی و قدرت طراحی‌اش، کدهای سنگین HTML، CSS و JavaScript تولید می‌کند که باعث کندی بارگذاری و افزایش زمان پاسخ ‌دهی صفحات می‌شود.

در نتیجه، سایت‌های وردپرسی که از المنتور استفاده می‌کنند که معمولاً در مقایسه با پلتفرم‌هایی مثل Duda، Wix و Squarespace، عملکردشان به ‌مراتب ضعیف ‌تر است.

با این حال، وردپرس با وجود ضعف نسبی در Core Web Vitals، هنوز محبوب‌ترین CMS دنیاست و با بهینه ‌سازی‌ هایی مانند کاهش اسکریپت ‌های غیرضروری، فعال‌سازی Lazy Load و استفاده از افزونه‌های بهینه‌ساز، می‌توان تا حد زیادی این ضعف را جبران کرد و هنوز از نظر انعطاف ‌پذیری، توسعه ‌پذیری و اکوسیستم افزونه ‌ها تقریباً بی ‌رقیب است.

#خبر
#وردپرس

@TheRaymondDev
Forwarded from Linuxor ?
چند روز پیش ام‌سی‌پی Chrome DevTools منتشر شد. یه مشکل کوچیک داشت که نمی‌شد پارامتر --no-sandbox رو به کروم پاس داد برا همین رو بعضی جاها مثلا کانتینرها نمیشد استفاده کرد.
الان یه آپدیت دادن و میشه پارامتر به کروم ارسال کرد و این مشکل حل شد.

https://github.com/ChromeDevTools/chrome-devtools-mcp

الان با یه همچین کانفیگی اوکی شده

@DevTwitter | <Serajoddin Aliabadi/>
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
فقط Jetbrains 🥰
Forwarded from Linuxor ?
وقتی دارین زبان برنامه نویسی جدید یاد می‌گیرین، برای اینکه بفهمید یادگرفتینش باید بتونید توش همه ساختمان داده های معروف (مثلا لیست، درخت، پشته و ...) رو بتونید پیاده کنید

زبان های جدیدی مثل گو ممکنه پیاده سازی ها متفاوت باشه و هرکسی یه جوری پیاده کنه، اینجا اومدن همه ساختمان داده های معروف رو برای گولنگ پیاده کردن :


github.com/emirpasic/gods

هم می‌تونید ازشون استفاده کنید هم می‌تونید کد هاشو ببینید و برای ساختمان داده های شخصی سازی شده ازشون استفاده کنید.

@Linuxor
Forwarded from Golden Code (علی 🇨🇴)
اصل S در اصول SOLID یعنی Single Responsibility Principle (اصل تک مسئولیتی)

چی میگه؟
یک کلاس باید فقط یک مسئولیت داشته باشه و فقط یک دلیل برای تغییر. یعنی هر کلاس باید یک نقش مشخص در سیستم داشته باشه و همه کارها رو قاطی نکنه.

چرا این مهمترین اصل SOLIDهستش؟
وقتی یک کلاس چند مسئولیت داشته باشه:

پیدا کردن و رفع باگ سخت میشه،

تغییرات کوچیک تو یه قسمت ممکنه باعث خرابی بخش‌های دیگه بشه،

توسعه و نگهداری پروژه با مشکل مواجه میشه و تیم‌ها بیشتر زمانشون رو صرف درست کردن کد میکنن تا اضافه کردن ویژگی‌های جدید.

نتیجش:
با رعایت این اصل، کد تمیزتر، قابل فهم‌تر و قابل تست‌تر میشه.
کلاس‌ها ساده‌تر هستند و وقتی نیاز به تغییر باشه، فقط بخش مرتبط اصلاح میشه بدون اینکه باقی سیستم آسیب ببینه.
#SOLID

@GoldenCodeir 🔥
(منبع👇🏾)
https://www.linkedin.com/posts/ali-mohammadi-5b7375389_solid-activity-7382848511261773824-diAJ?utm_source=share&utm_medium=member_android&rcm=ACoAAF-g0BsBHAA03jv74SJdJwUrgHFqATrvXb8
1
Forwarded from  (امیرحسین پناهےفر)
نسخه بتای جدید پارچ لینوکس XFCE منتشر شد! 🐭🐧
این نسخه تغییرات مهمی داره
• رفع مشکل نصب بوت‌لودر در بعضی سیستم‌ها
• هماهنگی با آخرین تغییرات پارچ
• اضافه شدن پارچ درود
🖥 دریافت نسخه بتا
اگه موقع تست به باگی برخوردین یا پیشنهادی داشتین، حتماً توی فروم پارچ بنویسین.
❤️ برای مشارکت در توسعه یا کمک به نسخه XFCE هم می‌تونین ایمیل بزنین به:
[email protected]
نگهدارنده نسخه XFCE: امیرحسین پناهی‌فر
@ParchLinux
Please open Telegram to view this post
VIEW IN TELEGRAM
متا یک ابزار جدید منتشر کرده (شاید خیلی ساکت شخصا اتفاقی دیدم) به اسم OpenZL که برای compress کردن دیتا استفاده می‌شه که Format Aware هم هست.

compression path
های متفاوت می‌تونید بهش بدید (براساس نوع داده) ولی همه‌ی موارد با یک decompressor به حالت عادی بر می‌گردند.
مهم سرعت خیلی بالا توی اینکار هست.

درحال حاضر:
well-suited to compressing vector, tabular, or tree-structured data, and can be expected to perform well with numeric, string, or binary data. Common examples include timeseries datasets, ML tensors, and database tables.

بنظرم بدرد تیم‌های توسعه ماژول‌های دیتابیس یا تیم‌هایی که دیتا پایپ‌لاین سنگین دارند هم می‌خوره قطعا!

مثلا بعنوان نمونه؛ یک سمپل دیدم که طرف لاگ‌های سرورهای شرکت رو داشت با این تست می‌کرد! لاگ خیلی خیلی سنگین میشه توی شرکت‌های بزرگ.

Introducing OpenZL: An Open Source Format-Aware Compression Framework
Forwarded from Linuxor ?
این کد باحالو ببینید... می‌دونستین بدن مثل یه برنامه کامپیوتری در حال اجراس؟

مثلا همین واکسن کرونایی که زدید انگاری یه فانکشن یا کلوژر به بدن تزریق کردین که این فانکشن حاوی کد ژنتیکی ویروس (مثل یک snippet از کلاس ویروس) هست و وقتی بدن با ویروس واقعی مواجه شد، این فانکشن روی سلول‌های B و T حافظه‌ای کال‌بک می‌خونه و سریعاً پادتن‌ها و سلول‌های کشنده رو spawn می‌کنه؛ انگار سیستم ایمنی شما یک garbage collector هوشمند داره که فقط تهدیدات شناخته‌شده رو پاک می‌کنه و منابع بدن رو برای کارهای مفید آزاد نگه می‌داره.

@Linuxor
Forwarded from DevDrug
🍄 Mysilium 🍄
🍄 The DevDrug Community 🍄
زمین یک میلیارد ساله میزبان شبکه پیچیده ارتباطی به اسم میسلیم هست، ریشه قارچ هایی به طول چند کیلومتر که به طور شگفت انگیزی پل ارتباطی حیات گیاهان هستند ... یعنی اینترنت جنگل.


گروه Mysilium قراره شبکه ارتباطی بهتری بین ما باشه :) من محتوام ویو کمی داره، اما تعاملی که با چند تا از سابسکرایبر ها داشتم بهم نشون داده چقدر مخاطبای ارزشمندی جذب کانالم شدن، هر چند کم.

دوست داشتم بیشتر و نزدیکتر باهاتون در ارتباط باشم و از ایده ها و نظراتتون بهتر بتونم استفاده کنم و یاد بگیرم :)

🔗 @Mysilium 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
Forwarded from Woland's Linux Journal (Woland)
گوگل با تغییر یک خط کد، ۹۰٪ اینترنت رو از دسترس خارج کرد

&num=100


که تعداد صفحات نتایج جستجو رو تعیین می‌کرد حالا به ۱۰ کاهش یافته.

این تغییر برای انسان‌ها شاید بی‌معنی باشه چون به ندرت کسی از صفحه ۱۰ گوگل فراتر می‌ره، اما همه‌ی LLMها به واسطه crawlerهاشون از این داده برای فهمیدن سر و ته مطالب استفاده می‌کردند.

حالا بیش از ۹۰٪ اینترنت عملا از طریق گوگل از دسترس خارج شده. فقط با تغییر یک متغیر!

#خبر
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
👀
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from a pessimistic researcher (Kc)
توی توییتر یکی از دوستان نوشته بود اگر بخواید مهاجرت کنید یا مهاجرت کرده باشید چه کتابایی رو می‌برید. در تمام این ۲ سال دلم تنها برای این ۴ کتاب تنگ شده که نیاوردمشون : دیوان اشعار حسین منزوی / سیاه‌مشق سایه / دیوان حافظ / دیوان فخرالدین عراقی