Crazy Dev ❤️‍🔥💻
48 subscribers
137 photos
27 videos
12 files
86 links
Senior or Crazy ?! ❤️‍🔥
Download Telegram
PHP
دیگر فقط یک زبان همگام (synchronous) نیست! 🤯

سال‌ها، توسعه‌دهندگان سایر اکوسیستم‌ها (Node.js، Go) به PHP به چشم تحقیر نگاه می‌کردند چون درخواست‌ها را به صورت متوالی (sequential) پردازش می‌کرد. اگر نیاز داشتید داده‌ای را از دو API خارجی مختلف دریافت کنید، اپلیکیشن شما باید منتظر می‌ماند تا اولی تمام شود تا دومی شروع شود.
ما یا باید به افزونه‌های پیچیده‌ای مثل Swoole/ReactPHP متوسل می‌شدیم یا تأخیر (latency) را می‌پذیرفتیم.
دیگر نه. PHP 8.5 به صورت بومی Green Threads (همروندی مبتنی بر Fibers) را معرفی می‌کند! 🎉
همانطور که در قطعه کد زیر می‌بینید، اکنون می‌توانیم فرآیندهای ناهمگام (asynchronous) را با سینتکسی فوق‌العاده تمیز و بومی اجرا کنیم:
👉 قبل: API_1 مسدودکننده API_2 است. زمان کل = ۴ ثانیه.
👉 بعد: با ()Concurrent::run، هر دو درخواست fetch همزمان ارسال می‌شوند. زمان کل = حداکثر یکی از APIها (حدود ۲ ثانیه)!
چرا این یک پیروزی بزرگ برای توسعه‌دهندگان Laravel و PHP است:
✅ اجرای سبک‌وزن: هزاران green thread می‌توانند روی یک هسته CPU بدون سربار حافظه عظیم threadهای سیستم‌عامل اجرا شوند.
✅ یکپارچگی بومی: نیازی به پکیج‌های شخص ثالث نیست. مستقیماً در هسته موتور تعبیه شده است.
✅ خوانایی خالص: شما سرعت ناهمگام را در حالی دریافت می‌کنید که کدی ساده و شبیه به کد همگام قابل خواندن را حفظ می‌کنید.
PHP سال به سال در حال تکامل است و کلیشه‌های قدیمی را از بین می‌برد. 📈
نظر شما درباره ویژگی‌های هم‌روندی مدرن PHP 8.5 چیست؟ آیا قصد دارید پکیج‌های ناهمگام شخص ثالث را کنار بگذارید و از Green Threads بومی استفاده کنید؟ بیایید در نظرات صحبت کنیم! 👇

#PHP #PHP85 #Backend #Concurrency #WebDevelopment #Programming #CleanCode #AsyncPHP
❤1
Forwarded from TheAliBigdeli Channel
چرا زبون برنامه نویسی RUST؟

دقیقا یکی از دلایلی که فکر می کنم زبون بعدی که معروف قراره بشه و جایگزین خیلی چیزا RUST هستش اینه.

https://getartcraft.com/apps

یه پروژه opensource که بیشتر نرم افزار های اصلی بازار رو هدف گرفته از شرکت Adobe تا Microsoft. هدف پشت ماجرا مشخصه عوض کردن بازی چند ساله ولی اینکه با این سرعت داره رشد می کنه قطعا AI پشتش هستش .

https://github.com/storytold

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

@thealibigdeli_channel
#app
🧠 هوش مصنوعی حالا کدهای نظامی صد ساله رو هم می‌شکنه!

مدل GPT-6 Astra یه پیام رمزنگاری شده از طرف آلمان‌ها توی جنگ جهانی اول رو بعد از ۱۰۸ سال کشف کرده 👻

هوش مصنوعی OpenAI نه تنها متن پیام رو درباره حرکت ناوگان نظامی کشف کرده، بلکه با تطبیق دادن اون با تاریخ رسیدن ناو HMS Canterbury، نشون داد که توانایی تحلیل داده‌های تاریخی این مدل تا چه اندازه دقیقه.

📱 خرید اشتراک Chatgpt

@Vidoshop | ویدوشاپ 🔮⚡
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Quera
👨‍💻مسابقه مهندسی داده Code Kitchen، فرصتی برای همکاری با یک شرکت هلندی!

↗️ اگه با Python و دیتابیس آشنایی داری، توی Code Kitchen مهارتت رو با چالش‌های تخصصی مهندسی داده محک بزن.

🌎 این مسابقه با همکاری DataChef برگزار می‌شه و افراد منتخب، فرصت مصاحبه و همکاری ریموت با این شرکت رو خواهند داشت.

⏳ جمعه ۱ آبان، ساعت ۱۶:۰۰
📲 آنلاین در کوئرا
💳 شرکت در مسابقه رایگانه

✅ ثبت‌نام:
🔗https://quera.org/r/8fhhm
Please open Telegram to view this post
VIEW IN TELEGRAM
تبدیل ChatGPT معمولی به یک ایجنت برنامه‌نویسی کامل (مشابه Codex تقریبا هر کاری توی کدکس میشه کرد رو میتونید کنید ) پروژه‌ای متن‌باز به اسم Chat On Steroids منتشر شده که با ایجاد یک پل ارتباطی، به شما اجازه میده مستقیماً از سشن و چت وب ChatGPT مثل یک ابزار برنامه‌نویسی پیشرفته روی سیستم خودتون استفاده کنید.

📝 قابلیت‌های کلیدی:
خواندن، ادیت و ساخت فایل‌های پروژه به‌صورت خودکار

اجرای دستورات ترمینال، شل و ران کردن تست‌ها

اجرای هم‌زمان چند تسک (Multi-Worker / Multi-Agent)

مصرف مستقیم ظرفیت چت وب به‌جای پرداخت هزینه‌های دلاری API یا اشتراک‌های مجزا
📝 پیش‌نیازها و نحوه راه‌اندازی:
دانلود اپ: از صفحه گیت‌هاب، نسخه سازگار با سیستم‌عاملتون (ویندوز، مک یا لینوکس) را دانلود و اجرا کنید.

تنظیم فولدر: در نرم‌افزار به مسیر Settings → Workspace برید و مسیر پروژه مدنظرتون رو انتخاب کنید.

ساخت تانل: داخل پنل توسعه‌دهندگان اوپن‌ای‌آی (platform.openai.com) یک تانل جدید بسازید؛ سپس یک API Key از نوع Restricted با دسترسی‌های Tunnels: Read و Tunnels: Use دریافت کرده و داخل تنظیمات اپ وارد کنید تا Connect شود.

تعریف MCP App: در اکانت چت‌جی‌پی‌تی از مسیر Plugins → Add → Create MCP App حالت اتصال را روی Tunnel تنظیم کرده، تانل ساخته‌شده را انتخاب و روی حالت No authentication ذخیره کنید.

نصب افزونه مرورگر: دکمه Open extension folder را در اپ بزنید. وارد تنظیمات اکستنشن‌های مرورگر (chrome://extensions) بشید، حالت Developer mode را روشن و با زدن Load unpacked همان پوشه را اضافه کنید.
📝هشدارهای امنیتی بسیار مهم:
این پروژه بتا هست و برای استفاده از اکانت اصلی استفاده نکنید چون احتمال بن شدن اکانت هست و نیاز به خرید اکانت کدکس نیست و از همون حساب چت جی پی تی شما استفاده می‌کنه اگر اشتراک هم فعال داشته باشید از اون اشتراک استفاده می‌کنه و به گفته سازنده سقف استفاده شما تا صد برابر بیشتر میشه

🔗 سورس پروژه در گیت‌هاب

✈️ @Farda_Ai
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
یک حسگر ساختم که تنها با استفاده از سیگنال‌های وای‌فای حدس می‌زند در اتاق نشیمن چه کار می‌کنم. هیچ دوربینی در کار نیست.

سخت‌افزار شامل سه برد ESP32-S3 است، هرکدام حدود ۱۰ دلار، که فریمور متن‌باز RuView را اجرا می‌کنند. آن را طوری تغییر دادم که بردها علاوه بر روتر، به یکدیگر هم گوش بدهند؛ این کار سه خط حسگری در سراسر اتاق را به ۹ خط تبدیل می‌کند.

برای آموزش آن، وب‌کمم نقش معلم را ایفا کرد: یک مدل ژست در مرورگر برچسب می‌زد که چه کاری انجام می‌دهم، در حالی که بردها سیگنال وای‌فای را ثبت می‌کردند. سپس یک مدل کوچک یاد گرفت این برچسب‌ها را تنها از داده‌های وای‌فای پیش‌بینی کند.

در یک آزمون زندهٔ جداگانه که قبلاً ندیده بود، در ۸ حرکت به دقت ۷۹.۵٪ رسید. پریدن و نشستن آسان بودند. دست تکان دادن سخت بود (۱۳٪)، چون بازوها به‌سختی سیگنال را تغییر می‌دهند.

اگر بخواهید نمونهٔ خودتان را بسازید، همهٔ کد متن‌باز است.

https://github.com/andrisgauracs/wifi-sensing-kit

#ESP32 #WiFiSensing #MachineLearning
ضبط در دسکتاپ
Windows

https://github.com/sarabh83/STCRecorder
🔥2
گیت: دستورات پرکاربرد و چهار لایه اصلی

دستورات پرکاربرد گیت

1. git add
← تغییرات را از پوشه کاری به ناحیه استیجینگ اضافه می‌کند

2. git commit
← یک اسنپ‌شات از تغییرات استیج‌شده فعلی را با یک پیام در مخزن محلی ذخیره می‌کند

3. git push
← تغییرات کامیت‌شده را از مخزن محلی به مخزن ریموت آپلود می‌کند

4. git fetch
← تغییرات را از مخزن ریموت دانلود می‌کند، بدون اینکه آن‌ها را به‌صورت محلی اعمال کند

5. git pull
← تغییرات را از مخزن ریموت fetch و سپس در برنچ محلی merge می‌کند

6. git merge
← تغییرات یک برنچ را در برنچ دیگر ادغام می‌کند

7. git diff
← تغییراتی که هنوز استیج یا کامیت نشده‌اند را نشان می‌دهد

8. git diff HEAD
← تفاوت بین پوشه کاری فعلی و آخرین کامیت را نشان می‌دهد

9. git status
← وضعیت فعلی پوشه کاری و ناحیه استیجینگ را نشان می‌دهد

10. git branch
← همه برنچ‌های محلی را نشان می‌دهد

11. git checkout
← یک برنچ می‌سازد یا بین برنچ‌ها جابه‌جا می‌شود

12. git log
← کامیت‌های برنچ فعلی را با جزئیات بیشتر نشان می‌دهد

13. git stash
← تغییرات کامیت‌نشده را به‌طور موقت ذخیره می‌کند و بعداً اعمال می‌کند

14. git rebase
← کامیت‌های یک برنچ را روی برنچ دیگر اعمال می‌کند

15. git reset
← تغییرات پوشه کاری را برمی‌گرداند و به یک کامیت مشخص عقب می‌رود

16. git revert
← با ایجاد یک کامیت جدید، تغییرات را برمی‌گرداند

17. git cherry pick
← کامیت‌های یک برنچ را روی برنچ دیگر اعمال می‌کند

18. git bisect
← باگ‌ها را سریع‌تر پیدا می‌کند

19. git init
← یک مخزن خالی ایجاد می‌کند

---

چهار لایه اصلی گیت

در گیت، چهار ناحیه اصلی وجود داره که تغییرات کد از لحظه ویرایش تا اشتراک‌گذاری از این مسیر عبور می‌کنن. در ادامه هر لایه رو جداگانه توضیح می‌دم:

1. Working Directory (پوشه کاری)

این همون پوشه‌ایه که روی سیستم خودت داری و فایل‌هات رو توش ویرایش می‌کنی. هر تغییری که ایجاد می‌کنی — اضافه کردن فایل جدید، حذف کردن، یا ویرایش محتوا — اول اینجا اتفاق می‌افته. گیت این تغییرات رو زیر نظر داره ولی هنوز اون‌ها رو به‌عنوان بخشی از تاریخچه پروژه ثبت نکرده. به عبارت دیگه، این لایه محل کار روزمره‌ی توئه و تغییرات اینجا هنوز «غیررسمی» و موقتی هستن تا وقتی که استیجشون کنی.

2. Staging Area (ناحیه استیجینگ)

این یه لایه میانی بین پوشه کاری و مخزن محلیه و گاهی بهش «Index» هم می‌گن. وقتی با git add تغییرات رو استیج می‌کنی، در واقع داری انتخاب می‌کنی که کدوم تغییرات قراره در کامیت بعدی برن. این لایه بهت این امکان رو می‌ده که حتی اگه چند فایل رو تغییر دادی، فقط بخشی از اون‌ها رو برای کامیت بعدی آماده کنی. پس استیجینگ مثل یه بافر یا سبد خریده که قبل از نهایی‌کردن سفارش، اجناس رو توش می‌چینی و بازبینی می‌کنی.

3. Local Repository (مخزن محلی)

این همون دیتابیس گیت روی سیستم خودته که توی پوشه مخفی .git ذخیره شده. وقتی git commit می‌زنی، یه اسنپ‌شات از تغییرات استیج‌شده به‌صورت دائمی اینجا ثبت می‌شه و یه کامیت با هش یکتا، پیام، نویسنده و تاریخ ایجاد می‌شه. از این لحظه تغییرات بخشی از تاریخچه پروژه‌ی تو شدن و می‌تونی باهاشون کار کنی — برنچ بسازی، rebase کنی، یا reset بزنی — همه این‌ها بدون نیاز به اینترنت و فقط روی همون مخزن محلی انجام می‌شن.

4. Remote Repository (مخزن ریموت)

این یه مخزن میزبانی‌شده روی سروره — مثل GitHub، GitLab یا Bitbucket — که تیم می‌تونه تغییرات رو با هم به اشتراک بذاره. با git push کامیت‌های محلی رو به ریموت می‌فرستی و با git fetch یا git pull تغییرات دیگران رو از ریموت می‌گیری. این لایه نقش نقطه‌ی همگرایی تیم رو داره: جایی که کد همه‌ی اعضا جمع می‌شه، کد ریویو انجام می‌شه، و معمولاً CI/CD روی همون اجرا می‌شه.

---

خلاصه‌ی مسیر تغییرات:
Working Dir → Staging → Local Repo → Remote Repo


#Git #VersionControl #Source #Commands
MCP Vs API

#mcp
#api
❤3
Forwarded from Tech Stuff
توی بحث rate limiting دو تا رویکرد داریم. hard rate limiting و soft rate limiting. توی hard limit وقتی تعداد درخواست‌ها از حد مجاز رد بشه، درخواست‌های اضافه رد میشن و معمولا 429 (Too Many Requests) می‌گیریم یا حتی ممکنه با هدر Retry-After به کلاینت بگیم چه زمانی دوباره درخواست بفرسته. این روش مثلا برای محدود کردن ترافیک کاربران رایگان یا محافظت از اندپوینت‌های پرهزینه جوابه.

توی soft limit حتی بعد از رد شدن از سقف تعیین شده درخواست‌ها همچنان پردازش میشن. ولی در عوض می‌تونیم این رد شدن از محدودیت رو لاگ کنیم، هشدار بدیم یا اطلاعات مربوط به سهمیه مصرف‌شده رو توی response headerها برگردونیم. این روش بیشتر برای پلن‌های پولی و مشتری‌های سازمانی مناسبه که قطع شدن ناگهانی سرویس براشون مشکل‌سازه. البته که اگه همین مصرف اضافی هم درست کنترل نشه می‌تونه هزینه یا فشار زیادی به سیستم وارد کنه.

#system_design

@techstuff100
سلام دوستان
گویا یه آسیب پذیری جدی php پیدا شده دیروز (اسمش php2shell هست).
https://nsin.ir/blog/php2shell-cve-2026-109618-protection/

بچه های انسین میگن ما تشخیص ش میدیم روی wafمون.
براتون قانون WAF ای ایجاد میکنن که جلوی اینگونه حملات رو میگیره. رایگانه.

nsin.ir
@nsin_ir



@gocasts
سرویس های بکگراند لینوکس

برای مشاهده مقاله در لینک زیر بزنید.
https://abolraj.github.io/articles/?q=linux-background-jobs