Panic Dev
یک بررسی و دقیق و اصولی و مقایسه بین frankenPHP , php-fpm , واقعا خوب توضیح داده بود . این که بدونیم چی و کجا و با چه کانفیگی استفاده کنیم واقعا مهمه https://vulke.medium.com/frankenphp-vs-php-fpm-part-3-cpu-memory-and-the-hidden-cost-of-doing-nothing…
این قسمتش مهم هست و چند وقت پیش برای ما هم پیش امده بود
برای franken هرچقدر بیشتر cpu بیشتر اختصاص بدید باید مموری هم بیشتر کنید .
ما محدودیت cpu رو برداشته بودیم ولی مموری محدود کرده بودیم ، این باعث میشد به مموری لیک بخوریم .
و این بیشتر خودشو تو سیستم های کلاستری نشون میده .
برای franken هرچقدر بیشتر cpu بیشتر اختصاص بدید باید مموری هم بیشتر کنید .
ما محدودیت cpu رو برداشته بودیم ولی مموری محدود کرده بودیم ، این باعث میشد به مموری لیک بخوریم .
و این بیشتر خودشو تو سیستم های کلاستری نشون میده .
👍4
خطاب به آیندگان؛
اگر الان اوضاع خوب است، قدرش را بدانید، نسل ۷۰ و ۸۰ در اوجِ جوانی تاوانش را داد،
با جان، مال و سلامتِ روان...
اگر الان اوضاع خوب است، قدرش را بدانید، نسل ۷۰ و ۸۰ در اوجِ جوانی تاوانش را داد،
با جان، مال و سلامتِ روان...
👍33🕊9😢5👎1
برای فعالسازی بعد از نصب برنامه توی قسمت لایسنس ها؛ مقادیر زیر رو وارد کنید:
لایسنس سرور:
https://bruno.panicdevs.agencyکلید لایسنس:
panicdevs-agencyایمیل:
hello@panicdevs.agency✨ اگه استفاده تجاری دارید به صورت رسمی لایسنس رو تهیه کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
There's a massive difference between writing code that deploys and maintaining code that runs in production for months. The first teaches you how to build. The second teaches you what you got wrong.
The lesson I took from this is that learning resources have a shelf life — not because they expire, but because you do. The right book at the wrong time is a waste. The right book at the right time can save you months.
There was a phase in my career — somewhere around year three — where I thought I was ready for the big architectural decisions. I wanted to design the system, not just implement features within someone else's design.
So when our team discussed breaking apart a growing monolith, I pushed hard for a microservices approach. I'd read the blog posts. I'd watched the conference talks. I had diagrams. I was convinced this was the right move for our scale.
We had about six developers and a few hundred thousand monthly active users.
We didn't need microservices. We needed better module boundaries within our existing codebase. But I didn't know that yet because I hadn't experienced the operational cost of distributed systems firsthand.
This industry moves fast. New frameworks, new languages, new paradigms every year. But the fundamentals — understanding your data, respecting production, learning from failure, staying humble about what you don't know — those haven't changed in decades. They probably won't change in the next seven years either.
Build things. Break things. Fix things. Write about what you learn. That's the whole game.
لینک منبع
The lesson I took from this is that learning resources have a shelf life — not because they expire, but because you do. The right book at the wrong time is a waste. The right book at the right time can save you months.
There was a phase in my career — somewhere around year three — where I thought I was ready for the big architectural decisions. I wanted to design the system, not just implement features within someone else's design.
So when our team discussed breaking apart a growing monolith, I pushed hard for a microservices approach. I'd read the blog posts. I'd watched the conference talks. I had diagrams. I was convinced this was the right move for our scale.
We had about six developers and a few hundred thousand monthly active users.
We didn't need microservices. We needed better module boundaries within our existing codebase. But I didn't know that yet because I hadn't experienced the operational cost of distributed systems firsthand.
This industry moves fast. New frameworks, new languages, new paradigms every year. But the fundamentals — understanding your data, respecting production, learning from failure, staying humble about what you don't know — those haven't changed in decades. They probably won't change in the next seven years either.
Build things. Break things. Fix things. Write about what you learn. That's the whole game.
لینک منبع
freedium-mirror.cfd
Seven Years of Writing Backend Systems — The Lessons Nobody Warned Me About | by The Atomic Architect - Freedium
From fearing code reviews to running production systems — an honest look at what seven years of...
👍7❤🔥1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
برای فعالسازی از اسکریپت Frida که توی کامنتهای همین پست قرار میدم براتون استفاده کنید.
مشابه همین کار رو روی ویندوز هم میتونید انجام بدید.
روی مک نیازه که frida رو نصب کنید و خودتون اسکریپت رو اینجکت کنید و اپ رو مجدد ساین کنید؛ از این هوشمصنوعیهای دم دستی بپرسید براتون مرحله به مرحله توضیح میده.
✨ و طبق معمول اگه استفاده تجاری دارید به صورت رسمی لایسنس رو تهیه کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8🔥2
Forwarded from ㅤ Masiհ
از لاراگون و sail خسته شدی؟
و چند تا پروژه همزمان آزارت میده؟و مدیریت کردنش برات سخت شده؟!
بهجای نصب جداگانه PHP، MySQL و Apache روی سیستم، همهچیز داخل کانتینرهای Docker اجرا میشه و هر پروژه محیط ایزوله خودش داره.
مزیت اصلی DDEV اینه که:
- راهاندازی پروژهها سریعتر میشه
- نسخههای پهپ پروژهها قاطی نمیشن
- روی همه سیستمها رفتار یکسان داره
- اس اس ال و دامنه لوکال آماده میده
- برای کار تیمی فوقالعادهست
- روی داکر کار میکنه و سیستم شلوغ نمیکنه
- کاملا رایگانه :)
📚 مستندات رسمی:
https://ddev.readthedocs.io/
🌐 سایت رسمی:
https://ddev.com/
🐙 گیتهاب پروژه:
https://github.com/ddev/ddev
و چند تا پروژه همزمان آزارت میده؟و مدیریت کردنش برات سخت شده؟!
بهجای نصب جداگانه PHP، MySQL و Apache روی سیستم، همهچیز داخل کانتینرهای Docker اجرا میشه و هر پروژه محیط ایزوله خودش داره.
مزیت اصلی DDEV اینه که:
- راهاندازی پروژهها سریعتر میشه
- نسخههای پهپ پروژهها قاطی نمیشن
- روی همه سیستمها رفتار یکسان داره
- اس اس ال و دامنه لوکال آماده میده
- برای کار تیمی فوقالعادهست
- روی داکر کار میکنه و سیستم شلوغ نمیکنه
- کاملا رایگانه :)
📚 مستندات رسمی:
https://ddev.readthedocs.io/
🌐 سایت رسمی:
https://ddev.com/
🐙 گیتهاب پروژه:
https://github.com/ddev/ddev
👍7
Forwarded from Penguinitis Tech
Collected a batch of open-source, no-registration-required, use tools directly without opening an account, and organized them into a list.
https://github.com/BraveOPotato/fckSignups/
https://fcksignups.com/
https://github.com/BraveOPotato/fckSignups/
https://fcksignups.com/
🔥2👍1
Before shipping webhooks to production
- Always verify signatures — no exceptions, no matter how small the project
- HTTPS only — sending sensitive payload over plain HTTP means anyone between the two servers can read it
- Store before processing — persist the raw payload to the database before running any business logic;
Webhooks aren't just "HTTP requests someone else sends you." They're the backbone of event-driven architecture
- Always verify signatures — no exceptions, no matter how small the project
- HTTPS only — sending sensitive payload over plain HTTP means anyone between the two servers can read it
- Store before processing — persist the raw payload to the database before running any business logic;
Webhooks aren't just "HTTP requests someone else sends you." They're the backbone of event-driven architecture
👍5
🥱2
لاراول یه قابلیت جدید برای صفها اضافه کرده به اسم Debounced که کار اصلیش اینه وقتی یه کار چند بار پشت سر هم اتفاق میفته، لازم نباشه هر بار اجراش کنیم.
مثلا با
مثلا کاربر تو چند ثانیه چند بار تنظیمات پروفایلش رو تغییر میده، به جای اینکه با هر تغییر یه request جدا بفرستیم، صبر میکنیم تغییرات تموم بشه و فقط آخرین وضعیت رو میفرستیم.
یعنی : «۳۰ ثانیه صبر کن، شاید باز هم تغییر کرد؛ ولی بیشتر از ۲ دقیقه دیگه منتظر نمون!»😄
https://laravel-news.com/laravel-debounced-queued-listeners
مثلا با
#[DebounceFor(30, maxWait: 120)] میگیم بعد از هر تغییر، ۳۰ ثانیه صبر کن؛ اگه تو این ۳۰ ثانیه دوباره تغییر جدیدی اتفاق افتاد، تایمر دوباره شروع بشه و فقط آخرین تغییر اجرا بشه. ولی اگه این تغییرات همینطور ادامه داشت، نهایتا بعد از ۱۲۰ ثانیه دیگه صبر نکن و کار رو اجرا کن.مثلا کاربر تو چند ثانیه چند بار تنظیمات پروفایلش رو تغییر میده، به جای اینکه با هر تغییر یه request جدا بفرستیم، صبر میکنیم تغییرات تموم بشه و فقط آخرین وضعیت رو میفرستیم.
یعنی : «۳۰ ثانیه صبر کن، شاید باز هم تغییر کرد؛ ولی بیشتر از ۲ دقیقه دیگه منتظر نمون!»
https://laravel-news.com/laravel-debounced-queued-listeners
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
لاراول با
مثلا میتونید یه پنل تنظیمات داشته باشید و بر اساس ترافیک، مسیر صفها رو عوض کنید؛ مثلا صف
حتی میشه یه Smart Detection ساخت که ترافیک صفها رو مانیتور کنه و خودش بر اساس فشار روی Workerها، صفها رو جابهجا کنه.
یعنی: «کد Jobها همون قبلی، فقط مسیر صفها هوشمندانه عوض میشه.»😇
https://laravel-news.com/laravel-queue-forward
Queue::forward() یه راه ساده داده که مسیر صفها رو از یه جای مرکزی عوض کنیم، بدون اینکه بریم همه Jobها و dispatchها رو تغییر بدیم.مثلا میتونید یه پنل تنظیمات داشته باشید و بر اساس ترافیک، مسیر صفها رو عوض کنید؛ مثلا صف
reports رو از Redis ببرید روی یه connection دیگه.حتی میشه یه Smart Detection ساخت که ترافیک صفها رو مانیتور کنه و خودش بر اساس فشار روی Workerها، صفها رو جابهجا کنه.
یعنی: «کد Jobها همون قبلی، فقط مسیر صفها هوشمندانه عوض میشه.»
https://laravel-news.com/laravel-queue-forward
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3