برنامه نویس هستید و پروژه حساس داری Telemetry رو غیرفعال کن
حتما در مورد Telemetry میدونید یا شنیدید.
من در مورد Nextjs میگم شما برای فریم وورک خودتون سرچ کنید
به صورت کلی Telemetry فرآیند جمعآوری و ارسال دادههای ( بی ضرر طبق مستندات) برای تحلیل و پایش است که به صورت ناشناس از نرم افزار به سمت شرکت های سازنده فریم ورک ارسال میشه
مثلا طبق مستندات خود نکست:
https://nextjs.org/telemetry
مواردی جمعآوری میشوند عبارتاند از:
- فرمان اجرا شده (next build, next dev, next export)
- نسخه Next.js
- اطلاعات کلی دستگاه مثل تعداد CPUها، سیستم عامل (macOS, Windows, Linux) و اینکه آیا اجرای دستور در محیط CI است یا نه
- مدت زمان اجرای next build و تعداد صفحات پروژه
در حین توسعه، اگر خطا ظاهر شود، گزینهای برای ارسال بازخورد وجود دارد (اما خود خطای کامل جمعآوری نمیشود)
در محیطهای سازمانی یا پروژههای حساس امنیتی حتی به صورت ناشناس ارسال برخی اطلاعات عمومی پروژه میتونه امنیت رو تضعیف کنه
مستندات تأکید میکنه که هیچ دادهای که ممکن است شامل اطلاعات حساس باشد (مثل متغیرهای محیطی، مسیر فایل، محتویات فایلها، لاگها) جمعآوری نمیشود. اما حقیقا من زیاد تحقیق نکردم که آیا واقعا همین موارده یا بیشتره ( اینو دیگه بچه های سکوریتی بیان بگن)
توی نکست جی اس با این دستور میتونید متوجه بشید فعاله یا غیر فعال :
next telemetry status
برای غیر فعال کردنش چند راه گفته شده من خودم از روش env
NEXT_TELEMETRY_DISABLED=1
غیرفعال کردم
نکته آخر اینکه: حتی ویژگیهایی که به نظر “بیضرر” میآیند، مثل telemetry، در محیطهای Enterprise باید بررسی و مدیریت شوند تا امنیت پروژه تضمین شود.
@DevTwitter | <Ahmad Safari/>
حتما در مورد Telemetry میدونید یا شنیدید.
من در مورد Nextjs میگم شما برای فریم وورک خودتون سرچ کنید
به صورت کلی Telemetry فرآیند جمعآوری و ارسال دادههای ( بی ضرر طبق مستندات) برای تحلیل و پایش است که به صورت ناشناس از نرم افزار به سمت شرکت های سازنده فریم ورک ارسال میشه
مثلا طبق مستندات خود نکست:
https://nextjs.org/telemetry
مواردی جمعآوری میشوند عبارتاند از:
- فرمان اجرا شده (next build, next dev, next export)
- نسخه Next.js
- اطلاعات کلی دستگاه مثل تعداد CPUها، سیستم عامل (macOS, Windows, Linux) و اینکه آیا اجرای دستور در محیط CI است یا نه
- مدت زمان اجرای next build و تعداد صفحات پروژه
در حین توسعه، اگر خطا ظاهر شود، گزینهای برای ارسال بازخورد وجود دارد (اما خود خطای کامل جمعآوری نمیشود)
در محیطهای سازمانی یا پروژههای حساس امنیتی حتی به صورت ناشناس ارسال برخی اطلاعات عمومی پروژه میتونه امنیت رو تضعیف کنه
مستندات تأکید میکنه که هیچ دادهای که ممکن است شامل اطلاعات حساس باشد (مثل متغیرهای محیطی، مسیر فایل، محتویات فایلها، لاگها) جمعآوری نمیشود. اما حقیقا من زیاد تحقیق نکردم که آیا واقعا همین موارده یا بیشتره ( اینو دیگه بچه های سکوریتی بیان بگن)
توی نکست جی اس با این دستور میتونید متوجه بشید فعاله یا غیر فعال :
next telemetry status
برای غیر فعال کردنش چند راه گفته شده من خودم از روش env
NEXT_TELEMETRY_DISABLED=1
غیرفعال کردم
نکته آخر اینکه: حتی ویژگیهایی که به نظر “بیضرر” میآیند، مثل telemetry، در محیطهای Enterprise باید بررسی و مدیریت شوند تا امنیت پروژه تضمین شود.
@DevTwitter | <Ahmad Safari/>
👍25👎8❤5🔥1
اگه به پروژههای اوپنسورس و ساختار و معماریشون علاقهمندین سایت DeepWiki رو داشته باشین
این سایت با هوشمصنوعی جزییات پروژههای اوپنسورس رو در اختیارتون میذاره
هر پروژه که روی گیتهاب هست رو کافیه به جای دامنه github.com بیاین deepwiki.com قرار بدین
مثلا فریمورک لاراول:
https://deepwiki.com/laravel/laravel
@DevTwitter | <Λmir/>
این سایت با هوشمصنوعی جزییات پروژههای اوپنسورس رو در اختیارتون میذاره
هر پروژه که روی گیتهاب هست رو کافیه به جای دامنه github.com بیاین deepwiki.com قرار بدین
مثلا فریمورک لاراول:
https://deepwiki.com/laravel/laravel
@DevTwitter | <Λmir/>
👍30🔥7❤1
این پروژه کوچک بعدی من در مسیر یادگیری و ورود به دنیای یادگیری ماشین است که با استفاده از رگرسیون لجستیک انجام دادم.
link: https://github.com/Shayyan81/Class-Logistic-Reg-churn
@DevTwitter | <shayan rajaby/>
link: https://github.com/Shayyan81/Class-Logistic-Reg-churn
@DevTwitter | <shayan rajaby/>
👎21👍20🔥1
این یک ریپوزیتوری هستش که بهتون 100 تا ریجکس پترن پرکابرد ایرانی رو بهتون میده که میتونید در فرم ها و در هرجایی که میخواید ولیدیشن انجام بدید استفاده کنید و لذت ببرید و تقریبا میشه گفت خیلی تکمیله و هر چیزی داخلش پیدا میشه و میتونید استفاده کنید
https://github.com/ImLeoNova/100-Iranian-Regex-Patterns
@DevTwitter | <LeoNova/>
https://github.com/ImLeoNova/100-Iranian-Regex-Patterns
@DevTwitter | <LeoNova/>
👍55❤4👎1🔥1
#کدبوک
یه راهنمای عملی برای تبدیل شدن به یه توسعهدهنده حرفهای Rust:
- یادگیری اصول و الگوهای حرفهای کدنویسی در Rust
- ساخت اپلیکیشنهای واقعی با تمرکز بر عملکرد و ایمنی
- درک عمیق از ownership، همزمانی و مدیریت حافظه
- نکات و ترفندهایی از تجربه واقعی نویسنده در پروژههای صنعتی
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
یه راهنمای عملی برای تبدیل شدن به یه توسعهدهنده حرفهای Rust:
- یادگیری اصول و الگوهای حرفهای کدنویسی در Rust
- ساخت اپلیکیشنهای واقعی با تمرکز بر عملکرد و ایمنی
- درک عمیق از ownership، همزمانی و مدیریت حافظه
- نکات و ترفندهایی از تجربه واقعی نویسنده در پروژههای صنعتی
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
👍8🔥6
یه نرمافزار محشر برای تبدیل صوت به متن
که فارسی رو خیلی عالی پشتیبانی میکنه.
سبک و مینیمال، با کارکرد خیلی محشر
ویدیوی بررسی اپلیکیشن Handy:
https://www.youtube.com/watch?v=blWwz2ZkGVA&list=PLwUWEGKy5kyNrPv05-Asbhm6g6S8_eRPb&index=14
@DevTwitter | <ًRyan Heida/>
که فارسی رو خیلی عالی پشتیبانی میکنه.
سبک و مینیمال، با کارکرد خیلی محشر
ویدیوی بررسی اپلیکیشن Handy:
https://www.youtube.com/watch?v=blWwz2ZkGVA&list=PLwUWEGKy5kyNrPv05-Asbhm6g6S8_eRPb&index=14
@DevTwitter | <ًRyan Heida/>
🔥24❤6👍1
استفاده از این ابزار برای هرکس که به زبان پارسی با هوش مصنوعی صحبت میکنه لازمه!
این روزها تقریباً همه از هوش مصنوعی و مدلهای زبانی (LLM) استفاده میکنیم. اما یه مشکل قدیمی همیشه با ما پارسیزبانها بوده:
زبان پارسی راستچینه (RTL)، ولی بیشتر زبانهای برنامهنویسی و ریاضایت چپچین (LTR) هستن. نتیجه؟
خروجیهای درهمریخته، متنهای نامرتب و تجربهای اعصابخُردکن :(
برای همین، من یه ابزار اوپنسورس ساختم که خروجیهای Markdown مدلهای زبانی رو کاملاً تمیز و خوانا رندر میکنه.
با این ابزار میتونی بهراحتی مشخص کنی کدوم بخشها راستچین باشن و کدوم چپچین.
مثلاً متن پارسی RTL، ولی بلاکهای کد LTR — نتیجه؟ خروجیای حرفهای، تمیز و چشمنواز
ویژگیها:
پشتیبانی کامل از RTL و LTR
پشتیبانی از بلاکهای کد
پشتیبانی از فرمولهای ریاضی و LaTeX
رابط کاربری ساده و کاربرپسند
ممنون میشم اگه استفاده کردید با دادن ستاره حمایت کنید
https://matinkg.github.io/markdown-renderer/
@DevTwitter | <Axone/>
این روزها تقریباً همه از هوش مصنوعی و مدلهای زبانی (LLM) استفاده میکنیم. اما یه مشکل قدیمی همیشه با ما پارسیزبانها بوده:
زبان پارسی راستچینه (RTL)، ولی بیشتر زبانهای برنامهنویسی و ریاضایت چپچین (LTR) هستن. نتیجه؟
خروجیهای درهمریخته، متنهای نامرتب و تجربهای اعصابخُردکن :(
برای همین، من یه ابزار اوپنسورس ساختم که خروجیهای Markdown مدلهای زبانی رو کاملاً تمیز و خوانا رندر میکنه.
با این ابزار میتونی بهراحتی مشخص کنی کدوم بخشها راستچین باشن و کدوم چپچین.
مثلاً متن پارسی RTL، ولی بلاکهای کد LTR — نتیجه؟ خروجیای حرفهای، تمیز و چشمنواز
ویژگیها:
پشتیبانی کامل از RTL و LTR
پشتیبانی از بلاکهای کد
پشتیبانی از فرمولهای ریاضی و LaTeX
رابط کاربری ساده و کاربرپسند
ممنون میشم اگه استفاده کردید با دادن ستاره حمایت کنید
https://matinkg.github.io/markdown-renderer/
@DevTwitter | <Axone/>
1❤66👍19👎6🔥1
حتماً برات پیش اومده یه آبجکت یا آرایه بزرگ داری که توش کلی مقدار null، undefined، رشته خالی و صفر قاطی دادههای درستت شده!
موقع ارسال به سرور، ذخیره تو دیتابیس یا تمیز کردن خروجی API، همین دادههای اضافی گاهی باعث کلی دردسر میشن، از validation error گرفته تا حجم اضافه و باگهای عجیب.
اینجا دقیقاً کاریه که deep-cleaner-js برات انجام میده.
- همهی مقدارهای اضافی (null، undefined، ""، 0) رو پاک میکنه.
- دادههات رو deep تمیز میکنه، حتی اگه چند سطح تودرتو باشن.
- انواع خاص مثل Date، RegExp، Map، Set، Buffer رو خراب نمیکنه.
- از TypeScript پشتیبانی کامل داره و کاملاً قابل تنظیمه.
- هیچ وابستگی خارجی نداره (Zero dependencies).
- ساختارش بهصورت امن نوشته شده و از Circular reference هم نمیترسه.
- نسخه جدید (2.1.1) کلی بهینهسازی داره، سرعت بالاتر رفته و تستهای جامعی براش نوشته شده (بیش از ۵۰ تست مختلف).
خلاصه: هر وقت خواستی قبل از ارسال دیتا، ذخیرهسازی، یا پاکسازی نتیجهی API، ساختار دادههات رو تمیز و مرتب کنی، این کتابخونه دقیقاً همونه که دنبالش بودی!
https://www.linkedin.com/pulse/deep-cleaner-v211-here-clean-your-data-like-pro-mohammad-rostami-7evdc/
@DevTwitter | <Mohammad/>
موقع ارسال به سرور، ذخیره تو دیتابیس یا تمیز کردن خروجی API، همین دادههای اضافی گاهی باعث کلی دردسر میشن، از validation error گرفته تا حجم اضافه و باگهای عجیب.
اینجا دقیقاً کاریه که deep-cleaner-js برات انجام میده.
- همهی مقدارهای اضافی (null، undefined، ""، 0) رو پاک میکنه.
- دادههات رو deep تمیز میکنه، حتی اگه چند سطح تودرتو باشن.
- انواع خاص مثل Date، RegExp، Map، Set، Buffer رو خراب نمیکنه.
- از TypeScript پشتیبانی کامل داره و کاملاً قابل تنظیمه.
- هیچ وابستگی خارجی نداره (Zero dependencies).
- ساختارش بهصورت امن نوشته شده و از Circular reference هم نمیترسه.
- نسخه جدید (2.1.1) کلی بهینهسازی داره، سرعت بالاتر رفته و تستهای جامعی براش نوشته شده (بیش از ۵۰ تست مختلف).
خلاصه: هر وقت خواستی قبل از ارسال دیتا، ذخیرهسازی، یا پاکسازی نتیجهی API، ساختار دادههات رو تمیز و مرتب کنی، این کتابخونه دقیقاً همونه که دنبالش بودی!
https://www.linkedin.com/pulse/deep-cleaner-v211-here-clean-your-data-like-pro-mohammad-rostami-7evdc/
@DevTwitter | <Mohammad/>
❤11👍8👎2🔥1
برای تست API همیشه Postman هست که به کارمون بیاد اما اینکه شما نیاز به agent داری یا بار سنگینی که رو سیستم میندازه و... ممکنه یکم تو مخی باشه چون بنظر خودم برای پروژه های کوچیک که تیم بزرگی هم روش کار نمیکنن زیادی سنگین و اضافیه!
خب ابزار جایگزین زیاد هست و حتی اکستنشن هایی هم داریم اما بنظرم بازم نقص هاشون بیشتر از مزایاشون هست
تو یه مقاله با Requsetly آشنا شدم که بنظرم میتونه برای پروژه های لوکال و کوچیک به کار بیاد و حافظه سیستم رو بیخودی اشغال نمیکنه
https://requestly.com/
@DevTwitter | <Ali Palvaneh/>
خب ابزار جایگزین زیاد هست و حتی اکستنشن هایی هم داریم اما بنظرم بازم نقص هاشون بیشتر از مزایاشون هست
تو یه مقاله با Requsetly آشنا شدم که بنظرم میتونه برای پروژه های لوکال و کوچیک به کار بیاد و حافظه سیستم رو بیخودی اشغال نمیکنه
https://requestly.com/
@DevTwitter | <Ali Palvaneh/>
👍19❤7👎4🔥1
اگر تجربه خوبی از Wine و PlayOnLinux نداشتید، Winboat شاید مناسب شما باشد که با الهام از WinApps ایجاد شده و ویندوز به صورت Nested Virtualization داخل Docker اجرا میشود.
این جور ابزارها مهاجرت به لینوکس را برای خیلی ها آسان می کنند.
https://github.com/TibixDev/winboat
@DevTwitter | <VAHID NAMENI/>
این جور ابزارها مهاجرت به لینوکس را برای خیلی ها آسان می کنند.
https://github.com/TibixDev/winboat
@DevTwitter | <VAHID NAMENI/>
🔥23👍4
یک تسک نسبتا سخت (برای Ai) دادم به بهترین مدلهایی که الان برای coding مطرح هستند. ازشون تنها با یک پرامپت خواستم نقشه یک خونه رو طراحی کنن (پراپمت در پایین). با کلیک بر لینک زیر میتونید خروجی همشون رو ببینید و مقایسه کنید: https://floor-plan-comparison.netlify.app
این رو ببینید تازه میفهمید واقعا اختلافشون چقدره.
مدل های شرکت کننده:
Opus 4.1 - GLM 4.6 - Sonnet 4.5- GPT 5 Hight- Codex High - Qwen 3 Max - Qwen 3 Coder
--
پرامپت:
Create me a Floor plan for a 1585 sqft land in 3d. Make sure that it has 2 Rooms, 2 washrooms and it should be a usable floor plan. Use HTML,CSS,JS along with Three.JS. Give me just one html file that i can run and view this.
@DevTwitter | <Amin Anvary/>
این رو ببینید تازه میفهمید واقعا اختلافشون چقدره.
مدل های شرکت کننده:
Opus 4.1 - GLM 4.6 - Sonnet 4.5- GPT 5 Hight- Codex High - Qwen 3 Max - Qwen 3 Coder
--
پرامپت:
Create me a Floor plan for a 1585 sqft land in 3d. Make sure that it has 2 Rooms, 2 washrooms and it should be a usable floor plan. Use HTML,CSS,JS along with Three.JS. Give me just one html file that i can run and view this.
@DevTwitter | <Amin Anvary/>
❤30🔥12👍2👎2
This media is not supported in your browser
VIEW IN TELEGRAM
معرفی یک ابزار/لایبرری خیلی جالب و به درد بخور به اسم LLM Intercept: یه پراکسی سبک و ساده برای ذخیره و استفادهمجدد از درخواستهای LLMهاتون.
تقریباً همهی اپها دارن از APIهای سازگار با OpenAI استفاده میکنن. حالا با LLM Intercept میتونید اون تماسها رو ضبط کنید و تبدیلشون کنید به دیتاست برای فاینتیون مدلهای کوچیکتر و ارزونتر.
ایدهاش سادهست
مثل همیشه از یه مدل بزرگ (مثلاً GPT-4 یا Claude) توی اپتون استفاده کنید.
ترافیک رو از طریق LLM Intercept عبور بدید تا ورودی و خروجیها بهصورت شفاف ذخیره بشن.
دیتای جمعشده رو بهصورت Parquet خروجی بگیرید (میتونید پرامپتهای سیستمی رو حذف کنید).
با اون دادهها یه مدل کوچیکتر مثل Liquid AI LFM2 (از ۳۵۰M تا ۲.۶B) رو فاینتیون کنید.
بعد مدل بزرگ رو با مدل خودتون جایگزین کنید. لوکال، خصوصی و تقریباً رایگان.
هدف: کمک به تیمها برای اینکه بتونن از ترافیک واقعی اپشون، مدلهای کوچیک و بهینه بسازن، بدون دردسر، سریع و اقتصادی.
این خیلی به درد میخوره.
Github: https://github.com/mlech26l/llm_intercept
@DevTwitter | <Mehdi Allahyari/>
تقریباً همهی اپها دارن از APIهای سازگار با OpenAI استفاده میکنن. حالا با LLM Intercept میتونید اون تماسها رو ضبط کنید و تبدیلشون کنید به دیتاست برای فاینتیون مدلهای کوچیکتر و ارزونتر.
ایدهاش سادهست
مثل همیشه از یه مدل بزرگ (مثلاً GPT-4 یا Claude) توی اپتون استفاده کنید.
ترافیک رو از طریق LLM Intercept عبور بدید تا ورودی و خروجیها بهصورت شفاف ذخیره بشن.
دیتای جمعشده رو بهصورت Parquet خروجی بگیرید (میتونید پرامپتهای سیستمی رو حذف کنید).
با اون دادهها یه مدل کوچیکتر مثل Liquid AI LFM2 (از ۳۵۰M تا ۲.۶B) رو فاینتیون کنید.
بعد مدل بزرگ رو با مدل خودتون جایگزین کنید. لوکال، خصوصی و تقریباً رایگان.
هدف: کمک به تیمها برای اینکه بتونن از ترافیک واقعی اپشون، مدلهای کوچیک و بهینه بسازن، بدون دردسر، سریع و اقتصادی.
این خیلی به درد میخوره.
Github: https://github.com/mlech26l/llm_intercept
@DevTwitter | <Mehdi Allahyari/>
👍11❤7🔥1
در حال کد زدن با کمک Sonnet 4.5 هستم و باید بگم عالیه... عالی. کافیه یه کم منطق برنامهنویسی و الگوریتم و فلوچارت و طراحی الگوریتم و معماری نرمافزار بدونی...
یه نفره میشه به اندازه یه تیم سه چهار نفره کد زد. از اون لذتهاست که میدونی آخرش مصیبته چون همین سونتها ما رو حذف خواهند کرد ولی باز هم از این معجزات نسل بشر هاج و واج میمونی و لذت میبری و خوشحالی که الان، در زمانهٔ این تغییرات بزرگ داری زندگی میکنی.
برخلاف دیگر انسان-خالقین یا Creatorها، مثل هنرمندان و ادیبان و .... که از آمدن هوش مصنوعی ترسیدهاند... برنامهنویسان که خالقین و Creatorهای عصر اطلاعات و ارتباطات هستند، در عصر هوش مصنوعی سرشار از شگفتزده بودن هستند.
@DevTwitter | <عادل طالبی/>
یه نفره میشه به اندازه یه تیم سه چهار نفره کد زد. از اون لذتهاست که میدونی آخرش مصیبته چون همین سونتها ما رو حذف خواهند کرد ولی باز هم از این معجزات نسل بشر هاج و واج میمونی و لذت میبری و خوشحالی که الان، در زمانهٔ این تغییرات بزرگ داری زندگی میکنی.
برخلاف دیگر انسان-خالقین یا Creatorها، مثل هنرمندان و ادیبان و .... که از آمدن هوش مصنوعی ترسیدهاند... برنامهنویسان که خالقین و Creatorهای عصر اطلاعات و ارتباطات هستند، در عصر هوش مصنوعی سرشار از شگفتزده بودن هستند.
@DevTwitter | <عادل طالبی/>
👎90👍38❤2🔥1
بهتازگی با پکیج timeitPro آشنا شدم و واقعا از سادگی و دقتی که در اندازهگیری عملکرد توابع داره لذت بردم. فقط با یه دکوراتور ساده میتونی بفهمی هر تابع چقدر زمان، CPU و حافظه مصرف میکنه و نتایجش هم بهصورت JSON ذخیره میشن تا بعداً بتونی تحلیلشون کنی. حتی یه داشبورد تحت وب داره که نتایج رو به شکل نمودار نشون میده و مقایسه اجراها رو خیلی راحت میکنه. برای من که همیشه دنبال ابزار سبک و قابل اعتماد برای پروفایلینگ بودم، timeitPro دقیقاً همون چیزیه که لازم داشتم. پیشنهاد میکنم حتماً یه بار امتحانش کنید.
https://github.com/farahbakhsh3/timeitPro
@DevTwitter | <Dr. Amin Farahbakhsh/>
https://github.com/farahbakhsh3/timeitPro
@DevTwitter | <Dr. Amin Farahbakhsh/>
👍20❤4👎4🔥2
آیا 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/>
👍30👎5🔥4❤3
آقا من همیشه یه چیزی رو مخم بود
اینکه تو الگوریتم های استاندارد و بزرگ رمزنگاری متقارن (AES-CTR و ChaCha20 و...) یه مشکلی دارن و اونم اینه که هر بیت از plaintext دقیقا رو یه بیت از ciphertext اثر میذاره! شما اگر یه بیت رو تغییر بدی، فقط همون بیت تو خروجی تغییر میکنه و خلاصه رابطه بین ورودی و خروجی دقیقا یک بیت به یک بیت هست
درسته که یسری مزایا هم داره (مثلا میشه یه فایل عظیم یا یه stream رو باهاشون رمز کرد) ولی بازم اینکه اصطلاحا diffusion ندارن به نظرم برای کاربرد های حساس و روی متن های نسبتا کوتاه اصلا مناسب نیست.
بخاطر همین نشستم تحقیق کردم و الگوریتم طراحی کردم و رسیدم به MACE :)
بر اساس یه الگوریتم هش کار میکنه (که من BLAKE3 رو انتخاب کردم، ولی اجباری نیست!) و داده ها رو به چانک های ۶۴ بایتی میشکونه و اونها رو با یه فرایند ساده ولی مؤثر رمز میکنه (توضیحات دقیقش تو README پروژه هست)
خلاصهش اینکه این الگوریتم با اینکه بسیار سبک و سریعه، قابلیت های زیادی داره و البته که full diffusion بهتون ارایه میکنه: هر بیت از ورودی رو تغییر بدید کل خروجی زیر و رو میشه!
خوشحال میشم بخونیدش و تستش کنید و نظرتونو بهم بگید:
github.com/MHSarmadi/MACE
@DevTwitter | <محمد حسین سرمدی/>
اینکه تو الگوریتم های استاندارد و بزرگ رمزنگاری متقارن (AES-CTR و ChaCha20 و...) یه مشکلی دارن و اونم اینه که هر بیت از plaintext دقیقا رو یه بیت از ciphertext اثر میذاره! شما اگر یه بیت رو تغییر بدی، فقط همون بیت تو خروجی تغییر میکنه و خلاصه رابطه بین ورودی و خروجی دقیقا یک بیت به یک بیت هست
درسته که یسری مزایا هم داره (مثلا میشه یه فایل عظیم یا یه stream رو باهاشون رمز کرد) ولی بازم اینکه اصطلاحا diffusion ندارن به نظرم برای کاربرد های حساس و روی متن های نسبتا کوتاه اصلا مناسب نیست.
بخاطر همین نشستم تحقیق کردم و الگوریتم طراحی کردم و رسیدم به MACE :)
بر اساس یه الگوریتم هش کار میکنه (که من BLAKE3 رو انتخاب کردم، ولی اجباری نیست!) و داده ها رو به چانک های ۶۴ بایتی میشکونه و اونها رو با یه فرایند ساده ولی مؤثر رمز میکنه (توضیحات دقیقش تو README پروژه هست)
خلاصهش اینکه این الگوریتم با اینکه بسیار سبک و سریعه، قابلیت های زیادی داره و البته که full diffusion بهتون ارایه میکنه: هر بیت از ورودی رو تغییر بدید کل خروجی زیر و رو میشه!
خوشحال میشم بخونیدش و تستش کنید و نظرتونو بهم بگید:
github.com/MHSarmadi/MACE
@DevTwitter | <محمد حسین سرمدی/>
👍29👎10🔥8❤4
چند روز پیش امسیپی Chrome DevTools منتشر شد. یه مشکل کوچیک داشت که نمیشد پارامتر --no-sandbox رو به کروم پاس داد برا همین رو بعضی جاها مثلا کانتینرها نمیشد استفاده کرد.
الان یه آپدیت دادن و میشه پارامتر به کروم ارسال کرد و این مشکل حل شد.
https://github.com/ChromeDevTools/chrome-devtools-mcp
الان با یه همچین کانفیگی اوکی شده
@DevTwitter | <Serajoddin Aliabadi/>
الان یه آپدیت دادن و میشه پارامتر به کروم ارسال کرد و این مشکل حل شد.
https://github.com/ChromeDevTools/chrome-devtools-mcp
الان با یه همچین کانفیگی اوکی شده
@DevTwitter | <Serajoddin Aliabadi/>
1👎9❤6👍2🔥2
اکستنشن Notebook Sidebar یکی از کاربردی ترین افزونه های کروم برای برنامه نویس ها و کاربران مختلف هست. با این افزونه می تونید یادداشت هاتون رو مستقیماً داخل سایدبار مرورگر کروم بنویسید و کار هاتون رو برنامه ریزی کنید.در آپدیت جدید اکستنشن Notebook Sidebar قابلیت های کاربردی جدیدی مثل ایمپورت و اکسپورت یادداشت ها و حالت دارک مود هم اضافه شده.
لینک دانلود از کروم استور:
https://chromewebstore.google.com/detail/notebook-sidebar/fdjcoigfklgjpeplkkdbdicminpimdok
@DevTwitter | <OMid/>
لینک دانلود از کروم استور:
https://chromewebstore.google.com/detail/notebook-sidebar/fdjcoigfklgjpeplkkdbdicminpimdok
@DevTwitter | <OMid/>
👍14👎3🔥2
بلاخره React از مِتا جدا شد!
بعد بیش از ۱۰ سال، React قراره تحت یه بنیاد مستقل به نام React Foundation اداره بشه ( زیر چتر Linux Foundation )
یعنی از این به بعد تصمیم گیری ها و سرنوشت ری اکت، دیگه فقط دست Meta نیست و جامعه دولوپرها و شرکتهای دیگه هم تو جهت دهی آینده React نقش دارن!
و این یعنی شفافیت، مشارکت و تنوع بیشتر در توسعه کتابخونه دوست داشتنی ری اکت
بنظرم React داره یه فصل جدید از داستانش رو شروع میکنه…
ری اکت دیگه صرفا پروژه یه شرکت نیست، بلکه نتیجه ی همکاری یه جامعه ی جهانی از دولوپر هاست
@DevTwitter | <Ahmad Ahmad-Nejad/>
بعد بیش از ۱۰ سال، React قراره تحت یه بنیاد مستقل به نام React Foundation اداره بشه ( زیر چتر Linux Foundation )
یعنی از این به بعد تصمیم گیری ها و سرنوشت ری اکت، دیگه فقط دست Meta نیست و جامعه دولوپرها و شرکتهای دیگه هم تو جهت دهی آینده React نقش دارن!
و این یعنی شفافیت، مشارکت و تنوع بیشتر در توسعه کتابخونه دوست داشتنی ری اکت
بنظرم React داره یه فصل جدید از داستانش رو شروع میکنه…
ری اکت دیگه صرفا پروژه یه شرکت نیست، بلکه نتیجه ی همکاری یه جامعه ی جهانی از دولوپر هاست
@DevTwitter | <Ahmad Ahmad-Nejad/>
👍89🔥14❤7
این پروژه یک وباسکرپر (Web Scraper) ساده و کاربردی است که به شما کمک میکنه تغییرات سایتها رو بهصورت خودکار شناسایی و ذخیره کنید.
با استفاده از این ابزار، میتونید چندین وبسایت رو زیر نظر بگیرید و هر زمان که محتوای اون ها تغییر کرد، باخبر بشید.
https://github.com/amintatari64/web-scraper
@DevTwitter | <Mat/>
با استفاده از این ابزار، میتونید چندین وبسایت رو زیر نظر بگیرید و هر زمان که محتوای اون ها تغییر کرد، باخبر بشید.
https://github.com/amintatari64/web-scraper
@DevTwitter | <Mat/>
❤27👍4👎1