Forwarded from DevTwitter | توییت برنامه نویسی
خدایی وصل کردن llm به پروژه چقدر آسونه این پروژه تستی کمتر از ۱ ساعت بیشترش با جی پی تی نوشتم و بشدت آسون بود. و البته بسته scale پروژه هم داره.
https://github.com/x017/myai
@DevTwitter | <parsa/>
https://github.com/x017/myai
@DevTwitter | <parsa/>
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
خب همونجور که میدونید درمورد GIL یا همون Global Interpreter Lock بحث زیاده 🤯
مشکل ما با GIL چیه؟
اینه که نمیذاره مولتیتردینگ واقعی داشته باشیم.
یعنی چی؟
یعنی نمیتونیم چندتا تسک رو همزمان روی چندتا ترد اجرا کنیم.
چرا؟
چون GIL میگه:
«در هر لحظه فقط یه ترد حق داره اجرا بشه، بقیه باید وایسن نوبتشون بشه.»
حالا نکته بامزه اینجاست:
اگه بیای چندتا ترد ران کنی، این تردا میان سر GIL دعوا میکنن کلی context switching میخوره latency میره بالا یه عالمه overhead میاد رو برنامه.
نتیجه؟ مولتیتردینگ برای کارای CPU-bound نه تنها کمک نمیکنه، بدترم میکنه برای همین باید single-thread باشه 😅
(احتمالاً خودتونم وقتی async برای CPU-bound نوشتید دیدید چه وضعیه.)
حالا چرا اصلاً GIL وجود داره؟
سؤال خوبیه 👌
خیلی خلاصه بگم نذاشته پایتون به چوخ بره 😂
چطوری؟
میاد thread safety رو برات تضمین میکنه، نمیذاره race condition بیاد وسط و همه چی بترکه.
ولی خب GIL دردسرم کم درست نمیکنه:
نمیذاره مولتیتردینگ CPU-bound داشته باشیم.
بعدم بخوای حذفش کنی هزاران لایبری که با درنظر گرفتن gil نوشته شده باید اپدیت بشن :)
و....
کلاً محدودمون میکنه.
راهحل چیه؟
1. C Extension
یعنی توابع سنگینت رو تو C بنویسی، اونجا اجرا بشه، فقط از پایتون صدا بزنی. اینجوری GIL رو میتونی دور بزنی.
2. Multiprocessing
این یکی مطرح ترین راهه. به تعداد core های CPU پروسس بالا میاری. هر پروسس مفسر خودش و در نتیجه GIL خودش رو داره اینجا واقعاً موازی میشه.
ولی اینجا یه توهمه که «ایول مشکل حل شد»…
سخت در اشتباهید 😅
چرا؟
چون:
ـprocess خیلی سنگینه، هر کدوم کلی overhead دارن.
ارتباط بین processها (همون IPC) خودش یه هزینهی جداست.
دادهها باید بین processها جابهجا بشن (queue، pipe، shared memory و …) که اینم کندی و مصرف حافظه میاره.
گزینه اپشنال شدن گیل هم توی ۳.۱۳ کامل گیل رو حذف نمیکنه میتونیم مولتی پراسسینگ و موازی سازی کنیم ولی خب خودشون هنوز تایید نکرده و ازمایشیه و کلی مشکلات داره.
گزینه هاییم هست مثل استفاده از nogil که خب یکسری مشکلات دارن که توی این پست جا نمیشن بگم
📌 خلاصه: GIL هم ناجیه، هم قاتل. ناجی چون امنیت میده، قاتل چون مولتیتردینگ CPU-bound رو ازمون میگیره. ولی خب این مورد توی I/O bound process نیست چون وقتی یه پراسس io ران میشه گیل خاموش میشه و میتونی parallel processing داشته باشی :)
➖➖➖➖➖➖➖➖➖➖
مشکل ما با GIL چیه؟
اینه که نمیذاره مولتیتردینگ واقعی داشته باشیم.
یعنی چی؟
یعنی نمیتونیم چندتا تسک رو همزمان روی چندتا ترد اجرا کنیم.
چرا؟
چون GIL میگه:
«در هر لحظه فقط یه ترد حق داره اجرا بشه، بقیه باید وایسن نوبتشون بشه.»
حالا نکته بامزه اینجاست:
اگه بیای چندتا ترد ران کنی، این تردا میان سر GIL دعوا میکنن کلی context switching میخوره latency میره بالا یه عالمه overhead میاد رو برنامه.
نتیجه؟ مولتیتردینگ برای کارای CPU-bound نه تنها کمک نمیکنه، بدترم میکنه برای همین باید single-thread باشه 😅
(احتمالاً خودتونم وقتی async برای CPU-bound نوشتید دیدید چه وضعیه.)
حالا چرا اصلاً GIL وجود داره؟
سؤال خوبیه 👌
خیلی خلاصه بگم نذاشته پایتون به چوخ بره 😂
چطوری؟
میاد thread safety رو برات تضمین میکنه، نمیذاره race condition بیاد وسط و همه چی بترکه.
ولی خب GIL دردسرم کم درست نمیکنه:
نمیذاره مولتیتردینگ CPU-bound داشته باشیم.
بعدم بخوای حذفش کنی هزاران لایبری که با درنظر گرفتن gil نوشته شده باید اپدیت بشن :)
و....
کلاً محدودمون میکنه.
راهحل چیه؟
1. C Extension
یعنی توابع سنگینت رو تو C بنویسی، اونجا اجرا بشه، فقط از پایتون صدا بزنی. اینجوری GIL رو میتونی دور بزنی.
2. Multiprocessing
این یکی مطرح ترین راهه. به تعداد core های CPU پروسس بالا میاری. هر پروسس مفسر خودش و در نتیجه GIL خودش رو داره اینجا واقعاً موازی میشه.
ولی اینجا یه توهمه که «ایول مشکل حل شد»…
سخت در اشتباهید 😅
چرا؟
چون:
ـprocess خیلی سنگینه، هر کدوم کلی overhead دارن.
ارتباط بین processها (همون IPC) خودش یه هزینهی جداست.
دادهها باید بین processها جابهجا بشن (queue، pipe، shared memory و …) که اینم کندی و مصرف حافظه میاره.
گزینه اپشنال شدن گیل هم توی ۳.۱۳ کامل گیل رو حذف نمیکنه میتونیم مولتی پراسسینگ و موازی سازی کنیم ولی خب خودشون هنوز تایید نکرده و ازمایشیه و کلی مشکلات داره.
گزینه هاییم هست مثل استفاده از nogil که خب یکسری مشکلات دارن که توی این پست جا نمیشن بگم
📌 خلاصه: GIL هم ناجیه، هم قاتل. ناجی چون امنیت میده، قاتل چون مولتیتردینگ CPU-bound رو ازمون میگیره. ولی خب این مورد توی I/O bound process نیست چون وقتی یه پراسس io ران میشه گیل خاموش میشه و میتونی parallel processing داشته باشی :)
#️⃣ #web #programming
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
Forwarded from Laravel News
Building a Flexible Reporting System with Laravel Collections and Scopes https://laravel-news.com/building-a-flexible-reporting-system-with-laravel-collections-and-scopes
Laravel News
Building a Flexible Reporting System with Laravel Collections and Scopes - Laravel News
You've built custom collections and query scopes, but your reporting logic is still scattered across controllers, API endpoints, and commands. The same business insights get calculated differently in each place, making maintenance difficult and increasing…
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 انیمیشنها در macOS 26 واقعاً یک سطح بالاتر هستند و ویندوز هیچوقت نمیتواند به این میزان از روان بودن برسد.
#توییت
@TheRaymondDev
#توییت
@TheRaymondDev
Forwarded from Geek Alerts
بلاخره IOS 26 توسط اپل منتشر شد، بزرگترین تغییرش طراحی «Liquid Glass» یا شیشه مایعه که همه چیز رو شفاف و شیشهای کرده؛ میتونید میزان شفافیتش رو هم کم و زیاد کنید.
ویژگی اختیاری Call Screening که اضافه شده کارش اینه وقتی یه ناشناس زنگ میزنه، ازش اسم و دلیل تماس رو میپرسه و بعد به شما اطلاع میده و میتونید تماس رو جواب بدید، هدفش جلوگیری از تماسهای اسپم هست.
امکان Hold Assist هم برای وقتی هست که با جایی تماس گرفتید و شمارو پشت خط نگه میدارن، توی این حالت وقتی اپراتور جواب بده گوشی بهتون خبر میده.
برنامه Messages با هدف رقابت با واتساپ و تلگرام امکان انتخاب پسزمینه، ایجاد نظرسنجی، پیشنمایش عکسها، فیلتر کردن پیامکها و پوشه اسپم رو اضافه کرده. برنامههای دیگه هم تغییرات داشتن اما مهمترین تغییرات بعدی برای هوشمصنوعی اپل هست که فقط روی نسل جدید دستگاههای اپلی (آیفون ۱۵ به بعد) فعال میشن.
ترجمه زنده Live Translation کمک میکنه وقتی پیام جدید میگیرید خودکار به زبان جدید ترجمش کنه، حتی روی تماس صوتی و تصویری هم کار میکنه و فعلا از زبانهای انگلیسی، فرانسوی، آلمانی، پرتغالی و اسپانیایی پشتیبانی میکنه.
یک هوش بصری هم اضافه کردن که با زدن دکمه پاور و وولوم پایین به صورت همزمان فعال میشه، یه منو جدیده که باهاش هوشمصنوعی اپل صفحه گوشی رو تحلیل میکنه، مثلا اگه عکس یه رویداد باشه بهتون پیشنهاد میده این رویداد رو به تقویم خودکار اضافه کنه. [L]
🤓 @geekalerts
ویژگی اختیاری Call Screening که اضافه شده کارش اینه وقتی یه ناشناس زنگ میزنه، ازش اسم و دلیل تماس رو میپرسه و بعد به شما اطلاع میده و میتونید تماس رو جواب بدید، هدفش جلوگیری از تماسهای اسپم هست.
امکان Hold Assist هم برای وقتی هست که با جایی تماس گرفتید و شمارو پشت خط نگه میدارن، توی این حالت وقتی اپراتور جواب بده گوشی بهتون خبر میده.
برنامه Messages با هدف رقابت با واتساپ و تلگرام امکان انتخاب پسزمینه، ایجاد نظرسنجی، پیشنمایش عکسها، فیلتر کردن پیامکها و پوشه اسپم رو اضافه کرده. برنامههای دیگه هم تغییرات داشتن اما مهمترین تغییرات بعدی برای هوشمصنوعی اپل هست که فقط روی نسل جدید دستگاههای اپلی (آیفون ۱۵ به بعد) فعال میشن.
ترجمه زنده Live Translation کمک میکنه وقتی پیام جدید میگیرید خودکار به زبان جدید ترجمش کنه، حتی روی تماس صوتی و تصویری هم کار میکنه و فعلا از زبانهای انگلیسی، فرانسوی، آلمانی، پرتغالی و اسپانیایی پشتیبانی میکنه.
یک هوش بصری هم اضافه کردن که با زدن دکمه پاور و وولوم پایین به صورت همزمان فعال میشه، یه منو جدیده که باهاش هوشمصنوعی اپل صفحه گوشی رو تحلیل میکنه، مثلا اگه عکس یه رویداد باشه بهتون پیشنهاد میده این رویداد رو به تقویم خودکار اضافه کنه. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Accio
Bushuray has received several updates since its initial release. It's now on v0.1.7 and is available on AUR under the name of bushuray-git (It builds from the main branch)
Feedbacks are appreciated and I'd be happy to hear'em
Feedbacks are appreciated and I'd be happy to hear'em
Forwarded from Geek Alerts
بلاخره IOS 26 توسط اپل منتشر شد، بزرگترین تغییرش طراحی «Liquid Glass» یا شیشه مایعه که همه چیز رو شفاف و شیشهای کرده؛ میتونید میزان شفافیتش رو هم کم و زیاد کنید.
ویژگی اختیاری Call Screening که اضافه شده کارش اینه وقتی یه ناشناس زنگ میزنه، ازش اسم و دلیل تماس رو میپرسه و بعد به شما اطلاع میده و میتونید تماس رو جواب بدید، هدفش جلوگیری از تماسهای اسپم هست.
امکان Hold Assist هم برای وقتی هست که با جایی تماس گرفتید و شمارو پشت خط نگه میدارن، توی این حالت وقتی اپراتور جواب بده گوشی بهتون خبر میده.
برنامه Messages با هدف رقابت با واتساپ و تلگرام امکان انتخاب پسزمینه، ایجاد نظرسنجی، پیشنمایش عکسها، فیلتر کردن پیامکها و پوشه اسپم رو اضافه کرده. برنامههای دیگه هم تغییرات داشتن اما مهمترین تغییرات بعدی برای هوشمصنوعی اپل هست که فقط روی نسل جدید دستگاههای اپلی (آیفون ۱۵ به بعد) فعال میشن.
ترجمه زنده Live Translation کمک میکنه وقتی پیام جدید میگیرید خودکار به زبان جدید ترجمش کنه، حتی روی تماس صوتی و تصویری هم کار میکنه و فعلا از زبانهای انگلیسی، فرانسوی، آلمانی، پرتغالی و اسپانیایی پشتیبانی میکنه.
یک هوش بصری هم اضافه کردن که با زدن دکمه پاور و وولوم پایین به صورت همزمان فعال میشه، یه منو جدیده که باهاش هوشمصنوعی اپل صفحه گوشی رو تحلیل میکنه، مثلا اگه عکس یه رویداد باشه بهتون پیشنهاد میده این رویداد رو به تقویم خودکار اضافه کنه. [L]
🤓 @geekalerts
ویژگی اختیاری Call Screening که اضافه شده کارش اینه وقتی یه ناشناس زنگ میزنه، ازش اسم و دلیل تماس رو میپرسه و بعد به شما اطلاع میده و میتونید تماس رو جواب بدید، هدفش جلوگیری از تماسهای اسپم هست.
امکان Hold Assist هم برای وقتی هست که با جایی تماس گرفتید و شمارو پشت خط نگه میدارن، توی این حالت وقتی اپراتور جواب بده گوشی بهتون خبر میده.
برنامه Messages با هدف رقابت با واتساپ و تلگرام امکان انتخاب پسزمینه، ایجاد نظرسنجی، پیشنمایش عکسها، فیلتر کردن پیامکها و پوشه اسپم رو اضافه کرده. برنامههای دیگه هم تغییرات داشتن اما مهمترین تغییرات بعدی برای هوشمصنوعی اپل هست که فقط روی نسل جدید دستگاههای اپلی (آیفون ۱۵ به بعد) فعال میشن.
ترجمه زنده Live Translation کمک میکنه وقتی پیام جدید میگیرید خودکار به زبان جدید ترجمش کنه، حتی روی تماس صوتی و تصویری هم کار میکنه و فعلا از زبانهای انگلیسی، فرانسوی، آلمانی، پرتغالی و اسپانیایی پشتیبانی میکنه.
یک هوش بصری هم اضافه کردن که با زدن دکمه پاور و وولوم پایین به صورت همزمان فعال میشه، یه منو جدیده که باهاش هوشمصنوعی اپل صفحه گوشی رو تحلیل میکنه، مثلا اگه عکس یه رویداد باشه بهتون پیشنهاد میده این رویداد رو به تقویم خودکار اضافه کنه. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ali Lotfi
🗳️ تست شخصیت سیاسی
با چند سؤال کوتاه، گرایش سیاسیت رو کشف کن!
این مینیاپ با تحلیل جوابهای تو نشون میده که بیشتر شبیه کدوم شخصیت یا حزب سیاسی هستی.
یه تست سرگرمکننده برای آدمهای کنجکاو و اهل بحثهای سیاسی!
آدرسربات
پیشنمایش
آدرسگیتهاب
با چند سؤال کوتاه، گرایش سیاسیت رو کشف کن!
این مینیاپ با تحلیل جوابهای تو نشون میده که بیشتر شبیه کدوم شخصیت یا حزب سیاسی هستی.
یه تست سرگرمکننده برای آدمهای کنجکاو و اهل بحثهای سیاسی!
آدرسربات
پیشنمایش
آدرسگیتهاب
GitHub
GitHub - AliLotfi09/Strategic-Mind: استراتژیک مایند یک تست شخصیت سیاسی و استراتژیک است که به شما کمک میکند سبک رهبری، باورهای…
استراتژیک مایند یک تست شخصیت سیاسی و استراتژیک است که به شما کمک میکند سبک رهبری، باورهای سیاسی و دیدگاه استراتژیک خود را بشناسید. این تست بر اساس مدلهای روانشناسی سیاسی و رفتارشناسی طراحی شده و ...
Forwarded from Laravel News
GeoGenius Package for Laravel https://laravel-news.com/geogenius-package-for-laravel
Laravel News
GeoGenius Package for Laravel - Laravel News
The GeoGenius package for Laravel is a lightweight, flexible package that handles geolocation, timezone management, multilingual support, and more.
Forwarded from DevTwitter | توییت برنامه نویسی
یه ابزار خفن به اسم DotNetArch هست که تو چند ثانیه برات یه پروژه .NET با معماری تمیز و آماده میسازه، از لایهها و CRUD گرفته تا دیتابیس و کانفیگ. دیپلوی، مایگریشن و حتی Docker رو هم خودش هندل میکنه.
https://github.com/moein-rezaee/DotNetArch
@DevTwitter | <Moein Rezaee/>
https://github.com/moein-rezaee/DotNetArch
@DevTwitter | <Moein Rezaee/>
Audio
اسم این شماره میتونست «احمقانهترین چیزی که شنیدم» باشه که مخاطب جلب کنه ولی زندانیها مهمترن! در این شماره از حباب هوش مصنوعی میگیم و آپدیت پولدارترین آدم جهان. در مورد سانسور حرف میزنیم و میبینیم احمقانهترین چیزی که مدیرعامل aws شنیده چیه.
https://youtu.be/qQU4ECS9opE
00:00 - رادیوجادی ۱۹۹ و داستانهای سفر
04:20 - سورس بیسیک مایکروسافت روی گیت هاب
07:50 - توقف استخدامهای هوش مصنوعی در متا و بحث حباب ای آی
09:19 - احمقانهترین چیزی که شنیده ام؛ عدم استخدام تازه واردها به خاطر ای آی
16:24 - قرارداد ۳۰۰ میلیاردی اوپن ای آی و اوراکل و پولدارترین آدم دنیا
22:20 - نامه ۵۰۰ امضایی رمزنگاران علیه کنترل چتهای اتحادیه اروپا
27:50 - نیم نگاهی به ماجراهای نپال با جرقه سانسور شبکههای اجتماعی
29:26 - لیک شدن اطلاعات گیج، شرکت پشت فیلترینگ بزرگ چین
30:31 - بخش آخر
32:07 - پیامهای آخر
#پادکست
https://youtu.be/qQU4ECS9opE
00:00 - رادیوجادی ۱۹۹ و داستانهای سفر
04:20 - سورس بیسیک مایکروسافت روی گیت هاب
07:50 - توقف استخدامهای هوش مصنوعی در متا و بحث حباب ای آی
09:19 - احمقانهترین چیزی که شنیده ام؛ عدم استخدام تازه واردها به خاطر ای آی
16:24 - قرارداد ۳۰۰ میلیاردی اوپن ای آی و اوراکل و پولدارترین آدم دنیا
22:20 - نامه ۵۰۰ امضایی رمزنگاران علیه کنترل چتهای اتحادیه اروپا
27:50 - نیم نگاهی به ماجراهای نپال با جرقه سانسور شبکههای اجتماعی
29:26 - لیک شدن اطلاعات گیج، شرکت پشت فیلترینگ بزرگ چین
30:31 - بخش آخر
32:07 - پیامهای آخر
#پادکست
Forwarded from Abolfazl Devs (ixAbolfazl)
🔸 اگه دوست دارید ریپو های ترند روز گیتهاب (اونایی که در اون روز بیشترین استار رو گرفتن) رو تو یه کانال تلگرام داشته باشید، این کانال هر 6 ساعت ریپازیتوری های ترند اون روز گیتهاب رو میزاره👇
https://t.iss.one/github_trending_daily
https://t.iss.one/github_trending_daily
Telegram
GitHub Trending Daily
Here, the latest trending GitHub repositories are posted every day.
▪️ Duplicate repositories are not sent.
👉 @abolfazl_devs
admin: @ixabolfazl
▪️ Duplicate repositories are not sent.
👉 @abolfazl_devs
admin: @ixabolfazl
Forwarded from DevTwitter | توییت برنامه نویسی
اگر ترمینال پرسن هستید از اینجا قیمت دلار و بیت کوین رو چک کنید
https://github.com/parvvaresh/PriceScraperCLI
@DevTwitter | <Alireza Parvaresh/>
https://github.com/parvvaresh/PriceScraperCLI
@DevTwitter | <Alireza Parvaresh/>
Forwarded from نوشتههای ترمینالی
شاید با protobuf یا msgpack از قبل آشنا باشید. این استاندارد ها هر کدوم یه فرمت باینری برای serialise deserialize دیتا هستن.
اما تنها آپشن ها نیستند، اگر ارسال کننده و دریافت کننده هردو گولنگی باشن میتونید از encoder decoder مخصوص خود گولنگ استفاده کنید که پرفورمنس بالایی داره و استفاده ازش سادهست. اسمش هم هست gob.
https://go.dev/blog/gob
اما تنها آپشن ها نیستند، اگر ارسال کننده و دریافت کننده هردو گولنگی باشن میتونید از encoder decoder مخصوص خود گولنگ استفاده کنید که پرفورمنس بالایی داره و استفاده ازش سادهست. اسمش هم هست gob.
https://go.dev/blog/gob
go.dev
Gobs of data - The Go Programming Language
Introducing gob, a high-speed Go-to-Go wire encoding format.