اقا ما بدلیل محدودیت های مادی یه اپی ساختیم برای تست برد های الکتریکی
خلاصه اینطوریه که با یه اردوئینو کار اسیلوسکوپمیکنه ،
https://github.com/Mooch3384/El-Board-Tester
@DevTwitter | <موچی/>
خلاصه اینطوریه که با یه اردوئینو کار اسیلوسکوپمیکنه ،
https://github.com/Mooch3384/El-Board-Tester
@DevTwitter | <موچی/>
1🔥27👍4❤2
لینوکس fedora نسخه 43 منتشر شد
فدورا لینوکس یکی از توزیعهای پیشرو دنیای لینوکس هستش که توسط پروژه fedora و با پشتیبانی شرکت Red Hat توسعه داده میشه. چرخه ریلیز جدید fedora حدودا هر شش ماه هست و هر ریلیز تا 13 ماه پشتیبانی میشه.
ویژگیهای مهم fedora 43:
- هسته لینوکس 6.17: پشتیبانی بهتر از سخت افزار های جدید و بهبود در مدیریت چند هسته ای.
- محیط دسکتاپ Workstation (GNOME 49): اجرای پیشفرض بر روی Wayland و پایان پشتیبانی از X11.
- نسخه KDE Plasma (Plasma 6.4.5): رفع باگ های KWin و مدیریت رنگ و خروجی بهتر در Wayland.
- مدیریت بستهها با RPM 6.0: افزایش امیت بسته ها و بهبود مدیریت امضا ها.
منبع:
https://fedoramagazine.org/whats-new-fedora-workstation-43
@DevTwitter | <Mohammad Mortazavi/>
فدورا لینوکس یکی از توزیعهای پیشرو دنیای لینوکس هستش که توسط پروژه fedora و با پشتیبانی شرکت Red Hat توسعه داده میشه. چرخه ریلیز جدید fedora حدودا هر شش ماه هست و هر ریلیز تا 13 ماه پشتیبانی میشه.
ویژگیهای مهم fedora 43:
- هسته لینوکس 6.17: پشتیبانی بهتر از سخت افزار های جدید و بهبود در مدیریت چند هسته ای.
- محیط دسکتاپ Workstation (GNOME 49): اجرای پیشفرض بر روی Wayland و پایان پشتیبانی از X11.
- نسخه KDE Plasma (Plasma 6.4.5): رفع باگ های KWin و مدیریت رنگ و خروجی بهتر در Wayland.
- مدیریت بستهها با RPM 6.0: افزایش امیت بسته ها و بهبود مدیریت امضا ها.
منبع:
https://fedoramagazine.org/whats-new-fedora-workstation-43
@DevTwitter | <Mohammad Mortazavi/>
🔥14👎6❤5
ایشون باگی رو در str_replace ورژن 8.5 php پیدا کرده که جالبه
باگ از xdebug میاد که اگر ورژن قدیمی باشه، باعث مشکل در این فانکشن میشه
مطالب خوبی در زمینه php میذاره کلا
https://www.youtube.com/watch?v=dWM1VkBtkA8
@DevTwitter | <hadi mirzaie/>
باگ از xdebug میاد که اگر ورژن قدیمی باشه، باعث مشکل در این فانکشن میشه
مطالب خوبی در زمینه php میذاره کلا
https://www.youtube.com/watch?v=dWM1VkBtkA8
@DevTwitter | <hadi mirzaie/>
👍13🔥1
از وقتی هوش مصنوعی قدرت گرفته بیشتر به این نتیجه میرسم که اشتباه کردم و سالها بجای زبان پایتون Python زبان های Asp , Php یاد گرفتم .
این که کد چیکار میکند همین قدر که با Proxy های مختلف و شبیه ساز دیوایس های مختلف از انواع گوشی تلفن همراه ، تبلت و ... را در سراسر جهان شبیه سازی میکند و ...
پایتون و هوش مصنوعی بسیار جذاب هستند و سطح امنیت در اینترنت روز به روز خطرناک تر می شود ، امروز افراد بیشتر حتی بدون داشتن دانش فناوری امکان انجام حملات هکری و تولید بد افزار های جدید را دارند که ممکن است نه تنها برای کاربران که برای سیستم های امنیتی هم چالش بزرگی محسوب شود .
@DevTwitter | <Hossein Eftekharrad/>
این که کد چیکار میکند همین قدر که با Proxy های مختلف و شبیه ساز دیوایس های مختلف از انواع گوشی تلفن همراه ، تبلت و ... را در سراسر جهان شبیه سازی میکند و ...
پایتون و هوش مصنوعی بسیار جذاب هستند و سطح امنیت در اینترنت روز به روز خطرناک تر می شود ، امروز افراد بیشتر حتی بدون داشتن دانش فناوری امکان انجام حملات هکری و تولید بد افزار های جدید را دارند که ممکن است نه تنها برای کاربران که برای سیستم های امنیتی هم چالش بزرگی محسوب شود .
@DevTwitter | <Hossein Eftekharrad/>
👎98👍17🍌14🔥1
فایل access.log باهامون حرف میزنه... :)))
چند وقت پیش توی شرایطی قرار گرفتم که لازم بود یک پروژهی کوچیکِ بدون مانیتورینگ رو بررسی کنم.
میدونستم که دیتای مورد نیازم داخل access.log هست ولی جمع بندی کردن و ارائهی یک گزارش قابل دفاع ازش سخت بود.
بعد از بوسیدن روی گل claude به یک ابزاری رسیدم که میتونه یه گزارش تمیز و شفاف از هر چیزی که اتفاق افتاده یا داره میوفته رو بده.
ابزار GoAccess این کار رو مثل آب خوردن انجام میده؛ بهت خروجی HTML هم میده.
اگر روی سرور نصبش کنی میتونی به صورت real-time ببینی چه خبره و داره چه اتفاقی میوفته، از همه چیز هم گزارش میده.
https://goaccess.io/
@DevTwitter | <Milad Niroee/>
چند وقت پیش توی شرایطی قرار گرفتم که لازم بود یک پروژهی کوچیکِ بدون مانیتورینگ رو بررسی کنم.
میدونستم که دیتای مورد نیازم داخل access.log هست ولی جمع بندی کردن و ارائهی یک گزارش قابل دفاع ازش سخت بود.
بعد از بوسیدن روی گل claude به یک ابزاری رسیدم که میتونه یه گزارش تمیز و شفاف از هر چیزی که اتفاق افتاده یا داره میوفته رو بده.
ابزار GoAccess این کار رو مثل آب خوردن انجام میده؛ بهت خروجی HTML هم میده.
اگر روی سرور نصبش کنی میتونی به صورت real-time ببینی چه خبره و داره چه اتفاقی میوفته، از همه چیز هم گزارش میده.
https://goaccess.io/
@DevTwitter | <Milad Niroee/>
🔥16❤5
به عنوان کسی که اول با php کار میکردم بعد اومدم سمت Java میخوام به یک مشکل بزرگ توی استک php اشاره کنم
مشکل اینه که phpرو حالت پیشفرض برای هر درخواست کاربر همه چیو از صفر load میکنه و مموری رو بین درخواست های مختلف share نمیکنه
چیزیو توی مموری نگه نمیداره و برای هر درخواست برنامه از اول bootstrap میشه
هر درخواست =
اجرای composer autoload
ایجاد connectionها
انجام task
حذف کامل state
در حالی که وقتی با جاوا کار میکنی اپلیکیشن یکبار توی مموری load میشه و هر درخواست توی thread جدید همون اپلیکیشن یا process هندل میشه و مموری process بین thread ها یعنی درخواست ها share میشه
و خب بنظرم توی اپلیکیشن های امروزی که تعداد کاربران که با وبسایت کار میکنن زیاده این یک مشکل بزرگ هست
چرا؟
چون Resource های سنگین مثل Connection هارو برای هر درخواست از اول باز میکنه و امکان Connection pooling نیست
یعنی اگه مثلا کد php ما میخواد یک api توی سرویس دیگه ای رو تحت پروتکل Http صدا بزنه برای هر درخواستِ کاربر، php باید کانکشن جدید بسازه و tcp handshake هر بار تکرار میشه
یا وقتی میخواد با دیتابیس ارتباط بگیره برای هر درخواست یهConnection جدید باز میکنه که به شدت کارایی برنامه رو میاره پایین. چون کانکشن های دیتابیس علاوه بر tcp handshake ها باید به ازای هر کانکشن که ایجاد میشه احراز هویت و لاگین هم انجام بشه. یا سمت سرور دیتابیس برای هر کانکشن یک process جدید توی سیستم عامل ایجاد میشه که یه بار اضافه روی سرور دیتابیس هم میندازه
در حالی که اگه state حفظ بشه میشه این Connection ها وResource های سنگین رو باز نگه داشت و چندین بار ازشون استفاده کرد و یا اصطلاحا Pool کرد که کارایی برنامه بشدت میره بالا
مطمعنا برای ارتباط به هر سرور و ابزار خاصی این مشکل ایجاد کانکشن های جدید هست
تو فکرم اینه که اگه کد php میخواد مثلا با gRPC با یک میکروسرویس دیگه ارتباط داشته باشه کل مزیت streaming این پروتکل از دست میره و نمیتونه اون Persistent connection رو داشته باشه و همه تعاملات رو با اون انجام بده در واقع Multiplexing از بین میره. و برای هر درخواست gRPC یک کانکشن جدید ساخته میشه!!!!!
البته وقتی از php-fpm برای serve اپلیکیشن استفاده میکنید. php-fpm میتونه به ازای هر woker process کانکشن هارو توی مموری نگه داره (پیشفرض اینکارو نمیکنه)
اما خب این کانکشن به ازای هرworker process هست و باز بین درخواست ها share نمیشه. صرفا درخواست جدیدی که با اونworker process هندل بشه این کانکشن رو میتونه داشته باشه.
و خب برای هندل کردن درخواست های همزمان تعداد زیادی کانکشن به دیتابیس ایجاد میشه که باز میتونه یه مشکل دیگه باشه و اپلیکیشن ما میتونه به تنهایی کل توان پردازشی دیتابیس رو مصرف کنه(کنترلی روی حداکثر تعداد کانکشن ها نیست)
و تو این حالتم نمیشه از پروتکل هایی که همه تعاملات رو با یک کانکشن انجام میدن استفاده کرد. Multiplexing برای این ساخته شد که با یک کانکشن همه تعاملات انجام بشه. ولی تو این حالت به ازای هر worker processو درخواستی که هندل میکنه یک کانکشن داریم
فقط هم gRPC نیست، برای ارتباط گرفتن با کافکا هم کلاینت کافکا از یک کانکشن برای بهینه کردن و رد بدل اطلاعات با بروکر استفاده میکنه
حتی RabbitMQکه channel هارو توی یک تک کانکشنtcp هندل میکنه
ابزار های مختلفی مثل FrankenPHP/Swoole/RoadRunnner یا Laravel Octane برای حل چنین مشکلاتی ساخته شدن که phpرو تبدیل به اپلیکیشن سرور میکنن
@DevTwitter | <Hossein Soleimani/>
مشکل اینه که phpرو حالت پیشفرض برای هر درخواست کاربر همه چیو از صفر load میکنه و مموری رو بین درخواست های مختلف share نمیکنه
چیزیو توی مموری نگه نمیداره و برای هر درخواست برنامه از اول bootstrap میشه
هر درخواست =
اجرای composer autoload
ایجاد connectionها
انجام task
حذف کامل state
در حالی که وقتی با جاوا کار میکنی اپلیکیشن یکبار توی مموری load میشه و هر درخواست توی thread جدید همون اپلیکیشن یا process هندل میشه و مموری process بین thread ها یعنی درخواست ها share میشه
و خب بنظرم توی اپلیکیشن های امروزی که تعداد کاربران که با وبسایت کار میکنن زیاده این یک مشکل بزرگ هست
چرا؟
چون Resource های سنگین مثل Connection هارو برای هر درخواست از اول باز میکنه و امکان Connection pooling نیست
یعنی اگه مثلا کد php ما میخواد یک api توی سرویس دیگه ای رو تحت پروتکل Http صدا بزنه برای هر درخواستِ کاربر، php باید کانکشن جدید بسازه و tcp handshake هر بار تکرار میشه
یا وقتی میخواد با دیتابیس ارتباط بگیره برای هر درخواست یهConnection جدید باز میکنه که به شدت کارایی برنامه رو میاره پایین. چون کانکشن های دیتابیس علاوه بر tcp handshake ها باید به ازای هر کانکشن که ایجاد میشه احراز هویت و لاگین هم انجام بشه. یا سمت سرور دیتابیس برای هر کانکشن یک process جدید توی سیستم عامل ایجاد میشه که یه بار اضافه روی سرور دیتابیس هم میندازه
در حالی که اگه state حفظ بشه میشه این Connection ها وResource های سنگین رو باز نگه داشت و چندین بار ازشون استفاده کرد و یا اصطلاحا Pool کرد که کارایی برنامه بشدت میره بالا
مطمعنا برای ارتباط به هر سرور و ابزار خاصی این مشکل ایجاد کانکشن های جدید هست
تو فکرم اینه که اگه کد php میخواد مثلا با gRPC با یک میکروسرویس دیگه ارتباط داشته باشه کل مزیت streaming این پروتکل از دست میره و نمیتونه اون Persistent connection رو داشته باشه و همه تعاملات رو با اون انجام بده در واقع Multiplexing از بین میره. و برای هر درخواست gRPC یک کانکشن جدید ساخته میشه!!!!!
البته وقتی از php-fpm برای serve اپلیکیشن استفاده میکنید. php-fpm میتونه به ازای هر woker process کانکشن هارو توی مموری نگه داره (پیشفرض اینکارو نمیکنه)
اما خب این کانکشن به ازای هرworker process هست و باز بین درخواست ها share نمیشه. صرفا درخواست جدیدی که با اونworker process هندل بشه این کانکشن رو میتونه داشته باشه.
و خب برای هندل کردن درخواست های همزمان تعداد زیادی کانکشن به دیتابیس ایجاد میشه که باز میتونه یه مشکل دیگه باشه و اپلیکیشن ما میتونه به تنهایی کل توان پردازشی دیتابیس رو مصرف کنه(کنترلی روی حداکثر تعداد کانکشن ها نیست)
و تو این حالتم نمیشه از پروتکل هایی که همه تعاملات رو با یک کانکشن انجام میدن استفاده کرد. Multiplexing برای این ساخته شد که با یک کانکشن همه تعاملات انجام بشه. ولی تو این حالت به ازای هر worker processو درخواستی که هندل میکنه یک کانکشن داریم
فقط هم gRPC نیست، برای ارتباط گرفتن با کافکا هم کلاینت کافکا از یک کانکشن برای بهینه کردن و رد بدل اطلاعات با بروکر استفاده میکنه
حتی RabbitMQکه channel هارو توی یک تک کانکشنtcp هندل میکنه
ابزار های مختلفی مثل FrankenPHP/Swoole/RoadRunnner یا Laravel Octane برای حل چنین مشکلاتی ساخته شدن که phpرو تبدیل به اپلیکیشن سرور میکنن
@DevTwitter | <Hossein Soleimani/>
👍18👎11❤9🍌1
این ارور "declared and not used" واقعا یکی از بزرگترین مزیتهای گولنگ نسبت به پایتون بوده تا اینجا.
داره میگه آقا، اگر متغیری رو تعریف کردی، حق نداری بلااستفاده ولش کنی! یا باید پاکش کنی، یا کامنت، و یا اینکه استفادش کنی
@DevTwitter | <Matin SenPai/>
داره میگه آقا، اگر متغیری رو تعریف کردی، حق نداری بلااستفاده ولش کنی! یا باید پاکش کنی، یا کامنت، و یا اینکه استفادش کنی
@DevTwitter | <Matin SenPai/>
👎92👍52❤4🔥1
سیستم مدیریت تایمرها در Unity
(برای LiveOps، فیچرها، Cooldownها و Eventها)
یکی از الگوهای اشتباه و رایجی که بارها در پروژههای Unity (کوچک و حتی بزرگ) دیدم اینه که:
- هر Feature تایمر مخصوص به خودش رو داره
- هر برنامهنویس منطق زمانبندی رو جداگانه پیادهسازی میکنه
این رویکرد شاید در کوتاهمدت جواب بده، اما در مقیاس بزرگ باعث میشه:
کد تکراری زیاد شود - Code Duplication
نگهداری پروژه سختتر شود - Maintainability
خوانایی کد کم بشود - Readability
توسعه ی کد سخت بشود - Scalability
اعمال تغییرات سراسری تقریباً غیرممکن شود
از دید معماری نرمافزار، هر زمان منطقهای تکراری و پایدار داریم، باید بدونیم که این منطقها میتونن با یک سیستم مرکزی مدیریت بشن.
در بازیها هم تایمرها همهجا هستند . مثلاً:
- فیچر Daily Reward با بازهی ۲۴ ساعته
- آفرها یا بستههای فروشگاهی با زمان چند ساعته
- فیچر های متنوع که زمان محدودی دادن
حالا فرض کنید تصمیم بگیریم همهی تایمرها از حالت Local خارج شوند و به زمان سرور (UTC) متصل شوند.
اگر هر تایمر جداگانه پیادهسازی شده باشد، این تغییر به یک فاجعه تبدیل میشود
اما با یک سیستم مرکزی، معمولاً با تغییر در یک نقطه، این قانون روی همهی تایمرها اعمال میشه
به همین دلیل، من یک TimerManager عمومی طراحی کردم که از هر Feature یا Script قابل استفاده است اما مدیریت زمانبندیها بهصورت مرکزی انجام میشه
کار باهاش خیلی ساده هست .
ویژگیهای TimerManager
️ مدیریت تایمرها بر اساس Key
️ استفاده از Callback برای بروزرسانی UI
️ استفاده از API برای شروع و توقف تایمر
️ نمایش زمان در فرمت های مختلف
️ ادغام ساده در هر Feature
امیدوارم این پیادهسازی براتون کاربردی باشه.
کد کامل در GitHub:
https://github.com/seidmoh3n/Unity-Timer-Manager
@DevTwitter | <Mohsen Mirshamsi/>
(برای LiveOps، فیچرها، Cooldownها و Eventها)
یکی از الگوهای اشتباه و رایجی که بارها در پروژههای Unity (کوچک و حتی بزرگ) دیدم اینه که:
- هر Feature تایمر مخصوص به خودش رو داره
- هر برنامهنویس منطق زمانبندی رو جداگانه پیادهسازی میکنه
این رویکرد شاید در کوتاهمدت جواب بده، اما در مقیاس بزرگ باعث میشه:
کد تکراری زیاد شود - Code Duplication
نگهداری پروژه سختتر شود - Maintainability
خوانایی کد کم بشود - Readability
توسعه ی کد سخت بشود - Scalability
اعمال تغییرات سراسری تقریباً غیرممکن شود
از دید معماری نرمافزار، هر زمان منطقهای تکراری و پایدار داریم، باید بدونیم که این منطقها میتونن با یک سیستم مرکزی مدیریت بشن.
در بازیها هم تایمرها همهجا هستند . مثلاً:
- فیچر Daily Reward با بازهی ۲۴ ساعته
- آفرها یا بستههای فروشگاهی با زمان چند ساعته
- فیچر های متنوع که زمان محدودی دادن
حالا فرض کنید تصمیم بگیریم همهی تایمرها از حالت Local خارج شوند و به زمان سرور (UTC) متصل شوند.
اگر هر تایمر جداگانه پیادهسازی شده باشد، این تغییر به یک فاجعه تبدیل میشود
اما با یک سیستم مرکزی، معمولاً با تغییر در یک نقطه، این قانون روی همهی تایمرها اعمال میشه
به همین دلیل، من یک TimerManager عمومی طراحی کردم که از هر Feature یا Script قابل استفاده است اما مدیریت زمانبندیها بهصورت مرکزی انجام میشه
کار باهاش خیلی ساده هست .
ویژگیهای TimerManager
️ مدیریت تایمرها بر اساس Key
️ استفاده از Callback برای بروزرسانی UI
️ استفاده از API برای شروع و توقف تایمر
️ نمایش زمان در فرمت های مختلف
️ ادغام ساده در هر Feature
امیدوارم این پیادهسازی براتون کاربردی باشه.
کد کامل در GitHub:
https://github.com/seidmoh3n/Unity-Timer-Manager
@DevTwitter | <Mohsen Mirshamsi/>
👍14🔥1
Media is too big
VIEW IN TELEGRAM
بعضی پروژهها به ما یادآوری میکنن که وبسایتها فقط برای انتقال اطلاعات نیستن؛میتونن یه «تجربه» باحال باشن و سایت Floor796 دقیقاً یکی از همونهاست!
اینجا با یه وبسایت معمولی طرف نیستید؛
با یه نقاشی متحرک روبهروئید که توی پیکسلبهپیکسلش زندگی جریان داره.
چرا این سایت انقدر خاصه؟
چون یه دنیای پیکسلیِ بینهایت پیشروتونه، پر از کاراکترهای نوستالژیک! وقتی زوم میکنی، تازه میفهمی چه خبره!!!
هر لایه از این ایستگاه فضایی پر از کاراکترهاییه که باهاشون خاطره داریم؛ از دنیای گیم گرفته تا انیمیشنهای معروف، همه اینجا جمع شدن. فقط کافیه زوم کنید تا غرق جزئیات و داستانهای ریز و درشتش بشید.
https://floor796.com/
@DevTwitter | <Soheil Ghanbary/>
اینجا با یه وبسایت معمولی طرف نیستید؛
با یه نقاشی متحرک روبهروئید که توی پیکسلبهپیکسلش زندگی جریان داره.
چرا این سایت انقدر خاصه؟
چون یه دنیای پیکسلیِ بینهایت پیشروتونه، پر از کاراکترهای نوستالژیک! وقتی زوم میکنی، تازه میفهمی چه خبره!!!
هر لایه از این ایستگاه فضایی پر از کاراکترهاییه که باهاشون خاطره داریم؛ از دنیای گیم گرفته تا انیمیشنهای معروف، همه اینجا جمع شدن. فقط کافیه زوم کنید تا غرق جزئیات و داستانهای ریز و درشتش بشید.
https://floor796.com/
@DevTwitter | <Soheil Ghanbary/>
❤50🔥5👍1👎1
هوش مصنوعی Z.ai مدل GLM-4.7 رو معرفی کرد. طبق اعلام خودشون کیفیت کد زنی تقریباً مشابه Opus 4.5 از شرکت آنتروپیک رو داره.
با تنظیماتی که تو لینک زیر هست خیلی راحت میشه داخل Cursor هم استفاده کرد.
https://docs.z.ai/devpack/tool/cursor
@DevTwitter | <Mohammad/>
با تنظیماتی که تو لینک زیر هست خیلی راحت میشه داخل Cursor هم استفاده کرد.
https://docs.z.ai/devpack/tool/cursor
@DevTwitter | <Mohammad/>
🍌18👍8❤5👎2
DevTwitter | توییت برنامه نویسی
#کوته_نیوز گیتهاب self-runner رو پولی کرد 0.002 دلار به ازای هر دقیقه @DevTwitter
#کوته_نیوز
اون قضیه 0.002 دلار به ازای هر دقیقه برای self-hosted runnerهای گیتهاب که قرار بود از اول مارس ۲۰۲۶ شروع بشه در پی سر و صداهای زیادش فعلاً به تعویق افتاد.
@DevTwitter | <Hamed/>
اون قضیه 0.002 دلار به ازای هر دقیقه برای self-hosted runnerهای گیتهاب که قرار بود از اول مارس ۲۰۲۶ شروع بشه در پی سر و صداهای زیادش فعلاً به تعویق افتاد.
@DevTwitter | <Hamed/>
👍47🔥6❤1🍌1
چارت جی اس(Chart.js) یه کتابخونه اوپن سورس جاوااسکریپتیه که برای ساخت نمودارهای تمیز توی وب هستش و با canvas کار میکنه. راهاندازیش سادهست و برای نمایش دادهها به شکل خطی میلهای دایرهای و کلی مدل دیگه عالیه:
https://chartjs.org
لینک گیتهاب:
https://github.com/chartjs/Chart.js
@DevTwitter | <Shayan GeeDook/>
https://chartjs.org
لینک گیتهاب:
https://github.com/chartjs/Chart.js
@DevTwitter | <Shayan GeeDook/>
👍26👎6❤4🔥3
وال پنل یه پنل ساخت و مدیریت ادمین نان سودو برای پنل های x-ui هست، اگه استفاده کردید خوشحال میشم با استار از ریپو حمایت کنید
( http://github.com/primeZdev/whale-panel )
@DevTwitter | <primeZ/>
( http://github.com/primeZdev/whale-panel )
@DevTwitter | <primeZ/>
🔥13🍌8👍2👎2
Forwarded from هشتگ تبلیغ تخصصی
سرور مجازی ایران الوند نتورک دقیقاً همونه که میخوای 💎
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌5👎1
خبر خوب برای برنامه نویس های C# که میخوان از AI استفاده کنن
استک اصلی من ASP .NET Core و Blazor هست و باهاش پروژههای زیادی انجام داده ام. پایتون هم کار کردهام، ولی بیشتر برای کارهای دمدستی و مرتبط با AI و Data Science.
چند سال اخیر، برای AI و کار با لایبرریها مجبور شدم بیشتر سراغ پایتون برم و راستش همیشه یه گلایه تو ذهنم بود
اینکه چرا کامیونیتی مایکروسافت تو این حوزه خیلی جدی وارد نمیشه.
حالا چرا با پایتون ننویسیم؟ فرض کن با دات نت یه سری پروژه جدی نوشتی و حالا میخوایی برای کمک به کاربر، امکانات AI اضافه کنی: باید روی سرور پروداکشن پایتون داشته باشی و API بدی و از اپلیکیشن دات نت اون API رو صدا کنی! تازه این اول کاره! امنیت، لاگ و ... که باید با اپلیکیشن خودت integrate بشه!
یه خورده با Semantic Kernel و چند لایبرری دیگه کار کردم، ولی صادقانه بگم، خیلی Solid بنظرم نیومد و به دلم ننشستن…
تا اینکه اخیراً با Microsoft Agent Framework آشنا شدم و کمی باهاش کار کردم. رویکردش واقعاً جالب بود
هم برای Python هست، هم برای C# — و همین موضوع جذابیتش رو چند برابر میکنه.
چند تا نکتهی جذابش که من دوست داشتم:
میتونی ازش برای ساخت چتباتهای ساده تا سیستمهای پیچیده چندعامل (multi-agent) استفاده کنی — همه با پترنهای قابل فهم و توسعهپذیر
و Graph-based Workflows داره که میتونی چند Agent رو به هم وصل کنی و یک جریان کاری هوشمند بسازی GitHub
پشتیبانی کامل از امکاناتی مثل Functions/Tool و Agent Memory , MCP Servers و Thread و Agent History/Storage و ...
همینظور Observability / Telemetry داخلی هم داره — یعنی میتونی رفتار Agent ها رو دنبال و دیباگ کنی (برای پروژههای پروداکشن خیلی مهمه!)
ابزار DevUI هم داره که بهت Interactive UI میده برای دیدن گامبهگام عملکرد Agent ها و workflow ها
و بهترین بخشش اینه که APIهاش در Python و C# خیلی شبیه هم هستن — پس میتونی راحت بین دو زبان کار کنی بدون اینکه حس کنی زندانی یه اکوسیستم شدی
به نظرم این یکی از بهترین قدمهای مایکروسافت برای AI Agents هست — هم برای تجربههای سریع و هم برای ساختن سیستمهای جدی در پروژه های دات نت
https://github.com/microsoft/agent-framework
@DevTwitter | <Amir Pournasserian/>
استک اصلی من ASP .NET Core و Blazor هست و باهاش پروژههای زیادی انجام داده ام. پایتون هم کار کردهام، ولی بیشتر برای کارهای دمدستی و مرتبط با AI و Data Science.
چند سال اخیر، برای AI و کار با لایبرریها مجبور شدم بیشتر سراغ پایتون برم و راستش همیشه یه گلایه تو ذهنم بود
اینکه چرا کامیونیتی مایکروسافت تو این حوزه خیلی جدی وارد نمیشه.
حالا چرا با پایتون ننویسیم؟ فرض کن با دات نت یه سری پروژه جدی نوشتی و حالا میخوایی برای کمک به کاربر، امکانات AI اضافه کنی: باید روی سرور پروداکشن پایتون داشته باشی و API بدی و از اپلیکیشن دات نت اون API رو صدا کنی! تازه این اول کاره! امنیت، لاگ و ... که باید با اپلیکیشن خودت integrate بشه!
یه خورده با Semantic Kernel و چند لایبرری دیگه کار کردم، ولی صادقانه بگم، خیلی Solid بنظرم نیومد و به دلم ننشستن…
تا اینکه اخیراً با Microsoft Agent Framework آشنا شدم و کمی باهاش کار کردم. رویکردش واقعاً جالب بود
هم برای Python هست، هم برای C# — و همین موضوع جذابیتش رو چند برابر میکنه.
چند تا نکتهی جذابش که من دوست داشتم:
میتونی ازش برای ساخت چتباتهای ساده تا سیستمهای پیچیده چندعامل (multi-agent) استفاده کنی — همه با پترنهای قابل فهم و توسعهپذیر
و Graph-based Workflows داره که میتونی چند Agent رو به هم وصل کنی و یک جریان کاری هوشمند بسازی GitHub
پشتیبانی کامل از امکاناتی مثل Functions/Tool و Agent Memory , MCP Servers و Thread و Agent History/Storage و ...
همینظور Observability / Telemetry داخلی هم داره — یعنی میتونی رفتار Agent ها رو دنبال و دیباگ کنی (برای پروژههای پروداکشن خیلی مهمه!)
ابزار DevUI هم داره که بهت Interactive UI میده برای دیدن گامبهگام عملکرد Agent ها و workflow ها
و بهترین بخشش اینه که APIهاش در Python و C# خیلی شبیه هم هستن — پس میتونی راحت بین دو زبان کار کنی بدون اینکه حس کنی زندانی یه اکوسیستم شدی
به نظرم این یکی از بهترین قدمهای مایکروسافت برای AI Agents هست — هم برای تجربههای سریع و هم برای ساختن سیستمهای جدی در پروژه های دات نت
https://github.com/microsoft/agent-framework
@DevTwitter | <Amir Pournasserian/>
❤20🍌11👍1🔥1
اگر دوست دارید از youtube-dl یا yt-dlp استفاده کنید ولی با ترمینال راحت نیستید، این برنامه کارتون رو راحتتر میکنه
https://github.com/database64128/youtube-dl-wpf/
راحت از یوتیوب دانلود کنید
با این برنامه میتوانید فرمتها و کیفیتهای مختلف را انتخاب کنید، زیرنویس اضافه کنید، پلیلیست دانلود کنید و تنظیمات پیشرفته مثل مسیر ذخیره، پروکسی و غیره رو راحت میشه توش ست کرد
@DevTwitter | <POURYA/>
https://github.com/database64128/youtube-dl-wpf/
راحت از یوتیوب دانلود کنید
با این برنامه میتوانید فرمتها و کیفیتهای مختلف را انتخاب کنید، زیرنویس اضافه کنید، پلیلیست دانلود کنید و تنظیمات پیشرفته مثل مسیر ذخیره، پروکسی و غیره رو راحت میشه توش ست کرد
@DevTwitter | <POURYA/>
❤20🍌3
Forwarded from هشتگ تبلیغ تخصصی
🗣 ارائهدهنده: سروش عاشوریصفت | Data Scientist همکاران سیستم
📅 پنجشنبه ۱۸ دیماه | ساعت ۱۰ تا ۱۲
🔺 شرکت در رویداد فقط در صورت ثبتنام امکانپذیره.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌4❤1👎1
ریپوزیتوری Awesome-PHP-Security | مرجع جامع امنیت در توسعه PHP
ریپوزیتوری Awesome-PHP-Security یک ریپوزیتوری منتخب و حرفهای از منابع امنیت PHP است که ابزارهای تخصصی، تحلیل کد ایستا، راهنماهای امنسازی و آموزشهای کاربردی را یکجا ارائه میدهد تا توسعهدهندگان بتوانند امنیت نرمافزارهای PHP خود را بهصورت استاندارد و قابلاعتماد ارتقا دهند.
ویژگیهای کلیدی
- مجموعهای curated از ابزارهای امنیت نرمافزار
- پوشش تحلیل کد ایستا (SAST) و بررسی آسیبپذیریها
- دسترسی به مشاورهها و Best Practiceهای امنیتی PHP
- منابع آموزشی معتبر برای Secure Coding
- مناسب برای توسعهدهندگان، تیمهای DevSecOps و معماران نرمافزار
موارد استفاده
- افزایش امنیت اپلیکیشنهای PHP در محیطهای Production
- شناسایی و کاهش آسیبپذیریهای رایج نرمافزاری
- بهبود کیفیت کد با رویکرد Secure Development
- پشتیبانی از فرآیندهای DevSecOps و CI/CD
- مرجع سریع برای تصمیمگیریهای امنیتی در پروژههای PHP
این ریپوزیتوری انتخابی هوشمندانه برای تیمهایی است که امنیت، کیفیت و پایداری نرمافزار را در اولویت توسعه قرار میدهند.
ریپو در GitHub:
https://github.com/guardrailsio/awesome-php-security
@DevTwitter | <Pardis CO./>
ریپوزیتوری Awesome-PHP-Security یک ریپوزیتوری منتخب و حرفهای از منابع امنیت PHP است که ابزارهای تخصصی، تحلیل کد ایستا، راهنماهای امنسازی و آموزشهای کاربردی را یکجا ارائه میدهد تا توسعهدهندگان بتوانند امنیت نرمافزارهای PHP خود را بهصورت استاندارد و قابلاعتماد ارتقا دهند.
ویژگیهای کلیدی
- مجموعهای curated از ابزارهای امنیت نرمافزار
- پوشش تحلیل کد ایستا (SAST) و بررسی آسیبپذیریها
- دسترسی به مشاورهها و Best Practiceهای امنیتی PHP
- منابع آموزشی معتبر برای Secure Coding
- مناسب برای توسعهدهندگان، تیمهای DevSecOps و معماران نرمافزار
موارد استفاده
- افزایش امنیت اپلیکیشنهای PHP در محیطهای Production
- شناسایی و کاهش آسیبپذیریهای رایج نرمافزاری
- بهبود کیفیت کد با رویکرد Secure Development
- پشتیبانی از فرآیندهای DevSecOps و CI/CD
- مرجع سریع برای تصمیمگیریهای امنیتی در پروژههای PHP
این ریپوزیتوری انتخابی هوشمندانه برای تیمهایی است که امنیت، کیفیت و پایداری نرمافزار را در اولویت توسعه قرار میدهند.
ریپو در GitHub:
https://github.com/guardrailsio/awesome-php-security
@DevTwitter | <Pardis CO./>
🍌7👍3🔥2❤1
توی نسخههای جدید Go یک قابلیت تازه و البته آزمایشی اضافه شده که حسابی سروصدا کرده: Green Tea.
قبل از اینکه بریم سراغش، بد نیست یادآوری کنیم مدل قدیمی GC چه مشکلی داشت.
در نسخههای قبلی، GC هیچ اطلاعاتی نداشت که بین دو Cycle دقیقا کجای حافظه تغییر کرده. برای همین مجبور بود هر بار کل هیپ رو اسکن کنه؛ حتی اگر فقط چند درصدش دست خورده بود. نتیجه؟ مصرف بالای CPU، کمکگیری سنگین از mutator assist و یهسری وقفه های ریز که روی تجربهی اجرا تاثیر میذاشت.
تو رویکرد جدید،گو میاد heap رو به segmentهای کوچیک تقسیم میکنه و هر موقع allocation یا pointer write اتفاق میافته، فقط همون segment بهعنوان dirty علامت میخوره. وقتی GC شروع میشه، دیگه خبری از اسکن کل heap نیست؛ فقط بخشهایی بررسی میشن که واقعا تغییر کردن در طول یک چرخه
خروجی این تغییر هم کاملا ملموسه: کاهش مصرف CPU (تا حدود ۳۵٪ طبق گزارشها)و وقفه های GC کوتاهتر و کممزاحمتر.
@DevTwitter | <Go Talk/>
قبل از اینکه بریم سراغش، بد نیست یادآوری کنیم مدل قدیمی GC چه مشکلی داشت.
در نسخههای قبلی، GC هیچ اطلاعاتی نداشت که بین دو Cycle دقیقا کجای حافظه تغییر کرده. برای همین مجبور بود هر بار کل هیپ رو اسکن کنه؛ حتی اگر فقط چند درصدش دست خورده بود. نتیجه؟ مصرف بالای CPU، کمکگیری سنگین از mutator assist و یهسری وقفه های ریز که روی تجربهی اجرا تاثیر میذاشت.
تو رویکرد جدید،گو میاد heap رو به segmentهای کوچیک تقسیم میکنه و هر موقع allocation یا pointer write اتفاق میافته، فقط همون segment بهعنوان dirty علامت میخوره. وقتی GC شروع میشه، دیگه خبری از اسکن کل heap نیست؛ فقط بخشهایی بررسی میشن که واقعا تغییر کردن در طول یک چرخه
خروجی این تغییر هم کاملا ملموسه: کاهش مصرف CPU (تا حدود ۳۵٪ طبق گزارشها)و وقفه های GC کوتاهتر و کممزاحمتر.
@DevTwitter | <Go Talk/>
🔥23🍌3👍1
Forwarded from DevTwitter Ads.
اینو همه میدونن
که هوش مصنوعی، پادشاه مهارتهای آیندهاست 👑
پس چرا تو مسیری نباشی که آیندهاش تضمینه؟
امسال با شرکت در بوتکمپ هوش مصنوعی دانشکار زودتر از بقیه وارد این مسیر شو
بوتکمپ هوش مصنوعی دانشکار فقط یه آموزش نیست.
تمرینه، پروژست، شبیهساز دنیای حرفهایه!
❄️ دیماه امسال، قدم در راه موفقیت بذار:
🔗https://dnkr.ir/yA7Bz
که هوش مصنوعی، پادشاه مهارتهای آیندهاست 👑
پس چرا تو مسیری نباشی که آیندهاش تضمینه؟
امسال با شرکت در بوتکمپ هوش مصنوعی دانشکار زودتر از بقیه وارد این مسیر شو
بوتکمپ هوش مصنوعی دانشکار فقط یه آموزش نیست.
تمرینه، پروژست، شبیهساز دنیای حرفهایه!
❄️ دیماه امسال، قدم در راه موفقیت بذار:
🔗https://dnkr.ir/yA7Bz
👎13🍌2