DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
358 videos
6 files
4.1K links
توییت های برنامه نویسی و طراحی وب :)

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://news.1rj.ru/str/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
رفع هشدارهای Git GC (Garbage Collection)

گاهی وقتا موقع اجرای git pull یا git fetch با پیام‌های زیر مواجه میشید:

warning: The last gc run reported the following. Please correct the root cause and remove .git/gc.log

warning: There are too many unreachable loose objects; run 'git prune' to remove them.


این هشدارها یعنی ریپازیتوری شما پر از فایل‌های قدیمی و objectهای غیرقابل دسترس شده. برای پاکسازی و بهینه‌سازی کافیه مراحل زیر رو انجام بدید:

مرحله ۱: پاک کردن لاگ قدیمی GC

rm -f .git/gc.log



مرحله ۲: حذف objectهای غیرقابل دسترس

git prune



مرحله ۳: اجرای Garbage Collection به‌صورت کامل و تهاجمی

git gc --aggressive --prune=now



اگه بخواید همه‌ی مراحل رو یکجا اجرا کنید:

rm -f .git/gc.log && git prune && git gc --aggressive --prune=now


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

@DevTwitter | <MrBardia72/>
21👍11🔥2
این اپ اندرویدی Metrolist میتونه باعث بشه اسپاتیفای رو تمدید نکنم، خیلی خوبه

https://github.com/mostafaalagamy/Metrolist

@DevTwitter | <iman/>
👍17👎84🔥1
اگر دوست دارید توی یه پروژه نسبتاً ساده ببینید که الگوریتم Q-learning چطور کار می کنه، می‌تونید یه نگاهی به این مخزن بندازید.
https://github.com/naseridev/notch

@DevTwitter | <Nima Naseri/>
👎12👍81🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
دو تا ابزار pgcli و mycli خیلی میتونه کار با دیتابیس هارو راحت تر و حتی امن تر کنه در محیط ترمینال
اولا که خیلی ux خوبی دارن و auto complete داره خیلی کارو راحت میکنه
دوما اینکه برای دستورات خطرناکی مثل آپدیت و حذف و غیره ازت یه تایید ثانویه دستور میگیره که خیلی ریسک اجرا رو کمتر میکنه اگه ریویو کنی دستور رو قبل از اجرا

pgcli
https://github.com/dbcli/pgcli

mycli
https://github.com/dbcli/mycli

@DevTwitter | <Hossein Nazari/>
👍14👎4🔥4
واقعیت پنهان: PHP-FPM اغلب گلوگاه (bottleneck) اصلی اپلیکیشن های PHP است، نه Nginx!

بسیاری از تیم ها با دیدن خطای 502 یا 504، انگشت اتهام را به سمت Nginx می گیرند. اما در اغلب موارد، مشکل از کانفیگ نادرست PHP-FPM (FastCGI Process Manager) است.


PHP-FPM چگونه کار می کند؟

به زبان ساده:
هر Worker فقط یک درخواست را در لحظه پردازش می کند.
وقتی Worker آزاد نباشد، درخواست های جدید وارد یک صف (Queue) می شوند.
اگر این صف پر شود، خطای 502 Bad Gateway یا 504 Gateway Timeout رخ می دهد.


تنظیمات حیاتی برای عملکرد بهینه

1. مدیریت Concurrency بر اساس RAM، نه CPU

بزرگ ترین اشتباه، تنظیم max_children بر اساس تعداد هسته های CPU است. مصرف حافظه (RAM) هر Worker، عامل محدودکننده اصلی است.

فرمول صحیح:
max_children = (Total RAM for Pool) / (Avg RAM per Child)

2. انتخاب Process Manager (pm) مناسب

dynamic: بهترین گزینه برای اپلیکیشن های وب و API با ترافیک متغیر.
ondemand: ایده آل برای سرورهای کم ترافیک و با حافظه محدود.
static: فقط برای سرورهایی با بار کاری کاملاً پایدار و قابل پیش بینی.

3. حفاظت از منابع سرور

request_terminate_timeout: برای توقف خودکار اسکریپت های سرکش (runaway).
request_slowlog_timeout: برای شناسایی و لاگ گیری درخواست های کند و پیدا کردن گلوگاه ها.
pm.max_requests: برای جلوگیری از نشت حافظه (memory leak) در بلندمدت با ریستارت کردن Workerها.

4. بهینه سازی OPcache

OPcache اولین و مهم ترین خط دفاعی شما برای بهبود پرفورمنس است. همیشه حداقل ۲۰٪ از حافظه آن را آزاد نگه دارید. بدون OPcache، سرور شما به یک کارخانه کامپایل مجدد کد تبدیل می شود!


مطالعه موردی (اپلیکیشن Laravel با 8GB RAM)

حافظه تخصیص داده شده به PHP-FPM: 6GB
میانگین حافظه مصرفی هر Worker: ~120MB
محاسبه max_children: 6000MB / 120MB = 50 (برای اطمینان روی 44 تنظیم شد)

نتیجه: پایداری کامل در تست بار 120 RPS و حذف کامل خطاهای 502.


جمع بندی

مشکل از PHP-FPM نیست، بلکه از کانفیگ های پیش فرض و کپی شده است. با درک صحیح مدیریت حافظه، صف ها و OPcache، می توان به عملکردی پایدار و قابل پیش بینی دست یافت.


گام بعدی: اگر ماهیت کار شما (مانند پردازش های طولانی مدت یا real-time) با معماری FPM سازگار نیست، ابزارهایی مانند RoadRunner یا Swoole را بررسی کنید.

آیا تجربه ای در زمینه خطاهای ناشی از کانفیگ نادرست PHP-FPM داشته اید؟ راه حل شما چه بوده است؟

@DevTwitter | <Farzad Forouzanfar/>
🔥15👍116👎1
کلودفلر ۱۳ سال پیش PHP رو از کد بیس‌شون حذف کردند
این هفته هم رفتند روی سرور rust بیس‌شون و همه چیز سریع‌تر و ایمن‌تر شده + پوست‌شون شفاف‌تر شده

https://blog.cloudflare.com/20-percent-internet-upgrade/

@DevTwitter | <~/mj/>
🔥547👍6
یکی از چالش‌های همیشگی برنامه‌نویس‌ها:قیمت‌گذاری پروژه‌هاست!
برای ساده‌تر شدنش، یه ابزار آنلاین ساختم که از یه نقل قول از برایان تریسی به نام «قانون ارزش ساعت» ایده گرفتم


projesanj.netlify.app

@DevTwitter | <esmaeil bahrani fard/>
👍116👎24🔥134
‏با کمک cursor یه API اوپن سورس منتشر کردم برای انجام RAG ، خیلی ساده و خیلی خیلی سریع با Bun

چیز پیچیده ای نیست. برای استفاده های ساده کار راه انداز هست. تمام پروسه RAG اتوماتیک انجام میشه.

نیاز به هیچ api key نداره کاملا لوکال با ollama و vercel ai sdk
https://github.com/xmannii/fast-rag-api

@DevTwitter | <Mani/>
18👍5👎3🔥1
معرفی یک ابزار آنلاین و رایگان برای پیدا کردن سریع‌ترین DNS متناسب با اینترنت شما:
http://dnsspeedtest.online
​این سایت به شما کمک می‌کنه بهترین گزینه رو برای اتصال سریع‌تر و پایدارتر انتخاب کنید.

@DevTwitter | <Mr.programmer/>
🔥222👍1👎1
احتمالا اسم File Pilot رو شنیدید؛ فایل اکسپلوری که زیر ۲ مگابایت حجم داره و فوق الآده سریع هست.
https://filepilot.tech

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

https://youtube.com/watch?v=bUOOaXf9qIM

@DevTwitter | <Amirreza Gh/>
👍21🔥3👎2
This media is not supported in your browser
VIEW IN TELEGRAM
یک object tracker ابتدایی با C نوشتم بدون هیچ کتابخونه پردازش تصویری فقط ffmpeg برای پارس کردن ویدیو و sdl2 برای نمایش پنجره:
لینکش در گیت‌هابم:
https://github.com/amirazarmehr/ObjectTracker

@DevTwitter | <Amirmohammad Azarmehr/>
🔥614👍2
یک کتابخونه مفید پیدا کردم برای فلاتر کارها که بخوان ui ویجت هارو تست
کنن به اسم widgetbook

کتابخونه Widgetbook چیه؟
یه ابزار اوپن‌سورس برای Flutter که بهت اجازه میده:
ویجت‌هاتو جداگانه ببینی و تست کنی
حالت‌های مختلف (UseCase) برای ویجت‌هات بسازی
روی گوشی‌ها و تم‌های مختلف (روشن/تاریک) امتحان کنی
حتی بدون اجرای کل اپ، تغییرات رو سریع ببینی

چرا به درد می‌خوره؟
- سرعتت توی توسعه بیشتر میشه
- باگ‌های UI کمتر میشه
- خیلی راحت می‌تونی به تیم یا مشتری نشون بدی یه ویجت چه شکلی میشه
https://pub.dev/packages/widgetbook

@DevTwitter | <Aref Mousavi/>
26👍8👎2🔥1
در نگاه اول async کردن یه روند بیزینسی یا فنی شاید ساده به نظر بیاد و خیلی مزیت ها داشته باشه. معماری هایی مثل event-driven هم خیلی معروف هستند و پرطرفدار
اما در واقعیت و روی مقیاس بالا چالش های مهمی هم دارند که باید بهشون توجه بشه
چالش هایی مثل observability و idempotency و حتی درک موضوع eventual consistency خودش میتونه چالش برانگیز باشه
این مقاله کوتاه نکات خوبی رو اشاره کرده در این مورد
Why are Event-Driven Systems Hard?
Understanding the Core Challenges of Asynchronous Architectures
https://newsletter.scalablethread.com/p/why-event-driven-systems-are-hard

@DevTwitter | <Hossein Nazari/>
11🔥1
پروژه TaskPire یک ابزار مدیریت وظایف است که با استفاده از React و Vite توسعه داده شده است. این ابزار با رابط کاربری ساده و روان، به شما کمک می‌کند وظایف خود را به شکلی منظم مدیریت کنید. هدف اصلی تسک پایر این است که مدیریت کارهای روزانه، پیگیری وضعیت وظایف و افزایش بهره‌وری فردی یا تیمی را آسان‌تر کند. تسک پایر بر پایه سلف هاست است.

گیت هاب:
https://github.com/Rayiumir/TaskPire

@DevTwitter | <Raymond Baghumian/>
👍146👎1🔥1
ویدیو جدید داریم در مورد استفاده رایگان از APIهای رایگان یه سری از مدل‌ها...

https://www.youtube.com/watch?v=BxaVXOv356Y&list=PLwUWEGKy5kyNrPv05-Asbhm6g6S8_eRPb&index=13

@DevTwitter | <Ryan Heida/>
👍2110
This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی OpenAI اومده و یک مجموعه ارزشمند پرامپت برای نقش ها/role های مختلف آماده کرده (به صورت template) که فقط کافیه کپی کنید و بسته به نیازتون تغییر بدید. این پرامپت ها با اینکه برای مدلهای openai ساخته شدند ولی روی مدلهای دیگه مثل gemini و anthropic هم خیلی عالی کار میکنند.
استفاده کنید و لذتش را ببرید.
https://academy.openai.com/public/tags/prompt-packs-6849a0f98c613939acef841c

@DevTwitter | <Mehdi Allahyari/>
12👎3👍1🔥1
هشدار به کاربران رم‌های DDR5: در کمتر از ۲ دقیقه هک می‌شوید!

«آسیب‌پذیری سخت‌افزاری» نوعی مشکل در ذات قطعات الکترونیکی است و برخلاف مشکلات نرم‌افزاری، اصلاح‌اش بسیار سخت‌تر است.

حالا محققان دانشگاه ETH زوریخ و گوگل از یک «آسیب‌پذیری سخت‌افزاری» پرده برداشته‌اند که در قلب حافظه‌های رم (RAM) کمین کرده. این رخنه امنیتی که «ققنوس» نام گرفته نسل جدید حافظه‌های DDR5 و به‌ویژه تراشه‌های ساخت شرکت مشهور SK Hynix را هدف می‌گیرد.

آسیب‌پذیری ققنوس چیست؟
ققنوس مدل جدیدی از آسیب‌پذیری RowHammer است که از چند سال قبل شناخته شده بود. این آسیب‌پذیری به زبان ساده مثل ضربه زدن پیاپی به قفسه کتاب‌ها است. اگر به یک ردیف بیش از حد کوبیده شود، قفسه کناری هم تکان می‌خورد و کتاب‌های آن از جایش می‌افتند.

در چیپ‌های حافظه همین اتفاق رخ می‌دهد؛ با دستکاری مکرر یک ردیف، داده‌های ردیف‌های کناری دچار «بیت فلاپ» شده و بین صفر و یک جابجا می‌شوند. این تغییرات کوچک در ظاهر بی‌اهمیت‌اند، اما مهاجمان با همین روش به سیستم دسترسی غیرمجاز پیدا می‌کنند.

در ایران حافظه‌های RAM برند SK به دلیل قیمت مناسب سهم قابل توجهی از بازار را در اختیار دارند. همین باعث می‌شود بخشی از کاربران خانگی و حتی کسب‌وکارها ناخواسته در معرض ریسک قرار گیرند.

ققنوس از خاکستر برمی‌خیزد
سازندگان حافظه از این آسیب‌پذیری آگاه بودند و برای مقابله با آن سپرهای دفاعی مختلفی را طراحی کردند. اما حمله ققنوس نشان داد که این سپرها دیگر کافی نیستند.

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

روش جدید به‌حدی خطرناک است که همه ۱۵ تراشه DDR5 آزمایش‌شده (تولید سال‌های ۲۰۲۱ تا ۲۰۲۴) در برابر آن تسلیم شدند. هکرها با استفاده از این تکنیک می‌توانند:

• کلید اصلی را بدزدند: با تغییر دادن چند صفر و یک در جای درست، مهاجم به سیستم می‌قبولاند که مدیر اصلی (روت) است و کنترل کامل کامپیوتر را در دست بگیرد.

• قفل‌های امنیتی را بشکنند: این حمله می‌تواند کلیدهای رمزنگاری را تخریب کرده و به اطلاعات حساس مانند رمزهای عبور دسترسی پیدا کند.
ترسناک‌تر اینکه تمام این فرآیند در کمتر از دو دقیقه (حدود ۱۰۹ ثانیه) روی یک سیستم استاندارد و به‌روز قابل اجراست.

راه چاره چیست؟
مشکل اینجاست که ققنوس یک ضعف سخت‌افزاری است، نه نرم‌افزاری. بنابراین نمی‌شود آن را با یک آپدیت ساده یا نصب وصله امنیتی برطرف کرد. تراشه‌هایی که بین سال‌های ۲۰۲۱ تا ۲۰۲۴ تولید شده‌اند، این ضعف را در ذات خود دارند و برای سال‌ها آسیب‌پذیر باقی خواهند ماند.

محققان توصیه کرده‌اند که نرخ بازخوانی (Refresh Rate) حافظه تا سه برابر افزایش یابد تا این روش خنثی شود، اما همین هم راهکاری موقت و تخصصی است.

@DevTwitter | <NooshDaroo/>
🔥2211👍3
من کپچای آرکپچا رو دیدم، خوب بود ولی پولی بود، بنابراین یکی خودم نوشتم:
https://github.com/mojtabaasadi/urcapcha

@DevTwitter | <Moji/>
🔥29👍74👎2
مایکروسافت یه دوره‌ی خیلی خفن برای MCP منتشر کرده!

این دوره بیشتر حالت دست‌به‌کار شدن داره و فقط تئوری نیست. توش قراره از پایه تا پیشرفته رو یاد بگیریم. مثلاً:
اصلاً MCP چیه و چرا مهمه؟
مفاهیم اصلی و ساختار معماری‌ش
نکات امنیتی که باید رعایت بشه
چطور اولین MCP سرور خودتو بسازی
توسعه، تست و دیپلوی اپ‌های MCP با ابزارای واقعی
ساخت ایجنت‌های هوش مصنوعی امن، مقیاس‌پذیر و حتی چندحالته
تجربه‌های کسایی که زودتر از بقیه از MCP استفاده کردن
بهترین پرکتیس‌ها و نمونه‌های واقعی
تمرین عملی توی VS Code برای ساخت ایجنت
آشنایی با FastMCP (SDK مخصوص پایتون)
استفاده از MCP برای اتصال به ابزارها و سرویس‌های مختلف (از Azure و Dataverse گرفته تا APIها)
حتی ساخت ایجنت‌های اتوماسیون مرورگر!

خلاصه که اگه دنبال اینی با MCP از نزدیک کار کنی و بفهمی چه پتانسیل بزرگی داره، این دوره می‌تونه خیلی به کارت بیاد.
لینک دوره اینجاست:
https://www.youtube.com/playlist?list=PLlrxD0HtieHjYfVUpGl_-ai7D6FRBjV-d

@DevTwitter | <Mohsen Rad/>
24👍8👎2
This media is not supported in your browser
VIEW IN TELEGRAM
اکستنشن ذخیره و تغیر نشست سایت ها با قابلیت ویرایش کوکی برای کروم منتشر شد.
چند کاربرد جالب این افزونه :
رفع محدودیت لاگین در چت بات ها
رفع محدودیت لاگین های زیاد در تلگرام وب
️ لاگین سریع به اکانت های مختلف سایت ها
مشاهده و ویرایش کوکی ها
دانلود و ارسال نشست به دستگاه های دیگر
لینک نصب از کروم استور

@DevTwitter | <امید زاهدی/>
👍216👎1🔥1