Forwarded from DevTwitter | توییت برنامه نویسی
فریم وورک جدید جاوااسکریپت Tauri
شما با این ابزار میتونین یک سورس کد با هر ابزار فرانت اندی که دوسدارین از جمله Next و Nuxt بنویسین و Tauri میاد و اپلیکیشن شمارو روی ویندوز/لینوکس/مک و اندروید/آی او اس ران میکنه. یک سورس کد روی ۵ سیستم عامل مختلف!
این کار با موتور خودش که با Rust نوشته شده و WebView انجام میشه و همچنین با کمک Rust به ماژول های سیستمی هم دسترسی داره.
نکته جالبش اینه چون از V8 یا Javascript bridge استفاده نمیکنه بشدت سرعت بالا و حجم کمی داره و همچنین قول امنیت بالایی رو هم میده.
(برای مثال یک اپ مشابه با Tauri که ۵ مگابایت میشه، با React native میشه ۲۰ الی ۳۰ و با Electron میشه بالای ۱۰۰ مگابایت)
بنظرم ابزار خفنیه و جالبه بدونین نزدیک ۱۰۰ هزار تا روی گیت هاب star داره
Home page:
https://v2.tauri.app/
GitHub:
https://github.com/tauri-apps/tauri
@DevTwitter | <Farzad Vahdati/>
شما با این ابزار میتونین یک سورس کد با هر ابزار فرانت اندی که دوسدارین از جمله Next و Nuxt بنویسین و Tauri میاد و اپلیکیشن شمارو روی ویندوز/لینوکس/مک و اندروید/آی او اس ران میکنه. یک سورس کد روی ۵ سیستم عامل مختلف!
این کار با موتور خودش که با Rust نوشته شده و WebView انجام میشه و همچنین با کمک Rust به ماژول های سیستمی هم دسترسی داره.
نکته جالبش اینه چون از V8 یا Javascript bridge استفاده نمیکنه بشدت سرعت بالا و حجم کمی داره و همچنین قول امنیت بالایی رو هم میده.
(برای مثال یک اپ مشابه با Tauri که ۵ مگابایت میشه، با React native میشه ۲۰ الی ۳۰ و با Electron میشه بالای ۱۰۰ مگابایت)
بنظرم ابزار خفنیه و جالبه بدونین نزدیک ۱۰۰ هزار تا روی گیت هاب star داره
Home page:
https://v2.tauri.app/
GitHub:
https://github.com/tauri-apps/tauri
@DevTwitter | <Farzad Vahdati/>
Forwarded from IRCF | اینترنت آزاد برای همه
Forwarded from Geek Alerts
خلاصه اخبار تکنولوژی ۱۵ اردیبهشت ۱۴۰۴
یوتیوب میخواد یه طرح اشتراک پریمیوم دونفره ارائه بده. [L]
گوگل مسیجز داره قابلیتهای جدیدی مثل لغو اشتراک پیامهای تبلیغاتی، لایک با دو ضربه، و تشخیص کلاهبرداری رو عرضه میکنه. هشدار محتوای حساس و ارسال عکس با کیفیت اصلی هم تو راهه. [L]
شرکت TeleMessage که نسخههای تغییریافته پیامرسانها (مثل سیگنال) رو برای مقامات آمریکایی (از جمله والتز و گابارد) ارائه میداد، هک شده. [L]
اپلیکیشن ساعت گوگل قراره با ظاهر جدید Material 3 Expressive بازطراحی بشه. تغییرات شامل رابط کاربری تمیزتر، تبهای جدا برای آلارم و تایمر و فونت جدیده. [L]
سازمان ملل در راستای ترویج نرمافزارهای اوپنسورس برای جمعآوری اطلاعات به جای گوگل فرمز، از ابزار اوپنسورس و رمزگذاری شدهی CryptPad استفاده میکنه. [L]
جاهطلبی هند برای تولید تراشه با مشکل مواجه شده؛ شرکت زوهو برنامه ۷۰۰ میلیون دلاریش رو لغو کرد و گروه آدانی هم مذاکراتش برای یه کارخونه ۱۰ میلیارد دلاری رو متوقف کرده. [L]
لینوس توروالدز پنجمین نسخه کاندید لینوکس ۶.۱۵ رو منتشر کرده و از روند توسعه راضیه. تمرکز اصلی روی بهبود درایورها، فایل سیستمها و تستهای داخلی خود کرنل بوده. [L]
ترامپ گفته از تیکتاک «خیلی قوی» محافظت میکنه چون بهش کمک کرده رای جوانان رو ببره، همچنین گفته معامله فروشش نزدیکه. [L]
مایکروسافت اعلام کرد آپدیت بزرگ ویندوز ۱۱ نسخه ۲۴H۲ آماده عرضه عمومیه. [L]
به دارندگان آیفون ایمیلهایی ارسال شده تا بتونن برای دریافت سهم خودشون از غرامت ۹۵ میلیون دلاری مربوط به پرونده نقض حریم خصوصی سیری، اقدام کنن. [L]
ویندوز یه گزینه ریاستارت اضطراری مخفی داره، وقتی سیستم هنگ کرده، با Ctrl+Alt+Del و نگه داشتن Ctrl موقع زدن دکمه پاور، میتونید فورا ریبوت کنید (اطلاعات ذخیره نشده میپره). [L]
ارزش دلار تایوان ۱۰٪ مقابل دلار آمریکا بالا رفته (بیشترین رشد ۳۰ سال اخیر). چون قطعات کامپیوتری زیادی اونجا تولید میشه و این ممکنه باعث بشه گرون بشن. [L]
دادگاه ضدانحصار FTC علیه متا (سر خرید اینستاگرام و واتساپ) ادامه داره. FTC میخواد این دوتا از متا جدا بشن. [L]
متروی نیویورک هنوز با سیستم سیگنالدهی ۱۰۰ سال پیش کار میکنه، یعنی فقط میگه قطار هست ولی نمیگه کجاست. [L]
گوگل با همکاری Range Media یه واحد فیلمسازی به اسم «۱۰۰ Zero» راه انداخته تا فیلم و سریالهایی بسازه که نگاه مثبتی به فناوری و محصولات گوگل دارن، مثل اپل میخوان محصولاتشون رو تو فیلمها نشون بدن. همین الان هم روی فیلم Cuckoo سرمایهگذاری کردن. [L]
محققان ژاپنی فیبر نوری پلاستیکی چند هستهای ساختن که بسیار سریعتر و تا ۱۰۰ برابر ارزونتر از فیبر نوری شیشهای هست. [L]
@geekalerts
یوتیوب میخواد یه طرح اشتراک پریمیوم دونفره ارائه بده. [L]
گوگل مسیجز داره قابلیتهای جدیدی مثل لغو اشتراک پیامهای تبلیغاتی، لایک با دو ضربه، و تشخیص کلاهبرداری رو عرضه میکنه. هشدار محتوای حساس و ارسال عکس با کیفیت اصلی هم تو راهه. [L]
شرکت TeleMessage که نسخههای تغییریافته پیامرسانها (مثل سیگنال) رو برای مقامات آمریکایی (از جمله والتز و گابارد) ارائه میداد، هک شده. [L]
اپلیکیشن ساعت گوگل قراره با ظاهر جدید Material 3 Expressive بازطراحی بشه. تغییرات شامل رابط کاربری تمیزتر، تبهای جدا برای آلارم و تایمر و فونت جدیده. [L]
سازمان ملل در راستای ترویج نرمافزارهای اوپنسورس برای جمعآوری اطلاعات به جای گوگل فرمز، از ابزار اوپنسورس و رمزگذاری شدهی CryptPad استفاده میکنه. [L]
جاهطلبی هند برای تولید تراشه با مشکل مواجه شده؛ شرکت زوهو برنامه ۷۰۰ میلیون دلاریش رو لغو کرد و گروه آدانی هم مذاکراتش برای یه کارخونه ۱۰ میلیارد دلاری رو متوقف کرده. [L]
لینوس توروالدز پنجمین نسخه کاندید لینوکس ۶.۱۵ رو منتشر کرده و از روند توسعه راضیه. تمرکز اصلی روی بهبود درایورها، فایل سیستمها و تستهای داخلی خود کرنل بوده. [L]
ترامپ گفته از تیکتاک «خیلی قوی» محافظت میکنه چون بهش کمک کرده رای جوانان رو ببره، همچنین گفته معامله فروشش نزدیکه. [L]
مایکروسافت اعلام کرد آپدیت بزرگ ویندوز ۱۱ نسخه ۲۴H۲ آماده عرضه عمومیه. [L]
به دارندگان آیفون ایمیلهایی ارسال شده تا بتونن برای دریافت سهم خودشون از غرامت ۹۵ میلیون دلاری مربوط به پرونده نقض حریم خصوصی سیری، اقدام کنن. [L]
ویندوز یه گزینه ریاستارت اضطراری مخفی داره، وقتی سیستم هنگ کرده، با Ctrl+Alt+Del و نگه داشتن Ctrl موقع زدن دکمه پاور، میتونید فورا ریبوت کنید (اطلاعات ذخیره نشده میپره). [L]
ارزش دلار تایوان ۱۰٪ مقابل دلار آمریکا بالا رفته (بیشترین رشد ۳۰ سال اخیر). چون قطعات کامپیوتری زیادی اونجا تولید میشه و این ممکنه باعث بشه گرون بشن. [L]
دادگاه ضدانحصار FTC علیه متا (سر خرید اینستاگرام و واتساپ) ادامه داره. FTC میخواد این دوتا از متا جدا بشن. [L]
متروی نیویورک هنوز با سیستم سیگنالدهی ۱۰۰ سال پیش کار میکنه، یعنی فقط میگه قطار هست ولی نمیگه کجاست. [L]
گوگل با همکاری Range Media یه واحد فیلمسازی به اسم «۱۰۰ Zero» راه انداخته تا فیلم و سریالهایی بسازه که نگاه مثبتی به فناوری و محصولات گوگل دارن، مثل اپل میخوان محصولاتشون رو تو فیلمها نشون بدن. همین الان هم روی فیلم Cuckoo سرمایهگذاری کردن. [L]
محققان ژاپنی فیبر نوری پلاستیکی چند هستهای ساختن که بسیار سریعتر و تا ۱۰۰ برابر ارزونتر از فیبر نوری شیشهای هست. [L]
@geekalerts
Forwarded from کانال انجمن علمی کامپیوتر منتظری
🔥 وقتشه برای جلسه سوم دورهمی لینوکسی آماده شی!
با هم ادامه میدیم در مسیر دنیای آزاد
این هفته میریم سراغ یه توزیع خاص و امنیتمحور:
🔧 لینوکس کوداچی — وقتی حریم خصوصی برات مهمه!
🎤 ارائهدهنده: سید دانیال مرتضایی
📅 تاریخ: همین فردا چهارشنبه، ۱۷ اردیبهشت
🕛 زمان: ساعت ۱۲ ظهر
📍 مکان: ساختمان آموزشی، کلاس ۱۳۰۴
حتی اگه جلسههای قبلی نبودی، این یکی بهترین فرصت برای شروعه!
یاد بگیر، تجربه کن، و توی ساختن یه دنیای آزادتر سهم داشته باش
ثبت نام
🎗 کانال انجمن علمی کامپیوتر منتظری مشهد
💬 Telegram | 📷 Instagram
با هم ادامه میدیم در مسیر دنیای آزاد
این هفته میریم سراغ یه توزیع خاص و امنیتمحور:
🔧 لینوکس کوداچی — وقتی حریم خصوصی برات مهمه!
🎤 ارائهدهنده: سید دانیال مرتضایی
📅 تاریخ: همین فردا چهارشنبه، ۱۷ اردیبهشت
🕛 زمان: ساعت ۱۲ ظهر
📍 مکان: ساختمان آموزشی، کلاس ۱۳۰۴
حتی اگه جلسههای قبلی نبودی، این یکی بهترین فرصت برای شروعه!
یاد بگیر، تجربه کن، و توی ساختن یه دنیای آزادتر سهم داشته باش
ثبت نام
🎗 کانال انجمن علمی کامپیوتر منتظری مشهد
💬 Telegram | 📷 Instagram
Forwarded from کانال مهرداد لینوکس
🔥یک کالکشن از GRUB themes ها
🚀 لینوکسی باشی و نخواهی، GRUB را خوشگلش کنی😍
✅این پروژه بهت اجازه میده تا ظاهر GRUB رو با تمهای مدرن و زیبا تغییر بدی. حتی اگر چندتا سیستمعامل یا کرنل مختلف داری، این ابزار بهت کمک میکنه تا تجربه بوت شدنت هم شبیه یه دسکتاپ شیک باشه!
💡 ویژگیها:
نصب خودکار تمها با یک اسکریپت Bash یا دستی
تمهای کاملاً قابل تنظیم
پشتیبانی از تصاویر پسزمینه (حتی شخصی)، آیکونها، فونتها و...
بهروزرسانی آسان
@MehrdadLinuxchannel
#linux
🚀 لینوکسی باشی و نخواهی، GRUB را خوشگلش کنی😍
همون صفحهی سادهای که بعد از روشن کردن سیستم میبینی و بین سیستمعاملها انتخاب میکنی.
✅این پروژه بهت اجازه میده تا ظاهر GRUB رو با تمهای مدرن و زیبا تغییر بدی. حتی اگر چندتا سیستمعامل یا کرنل مختلف داری، این ابزار بهت کمک میکنه تا تجربه بوت شدنت هم شبیه یه دسکتاپ شیک باشه!
💡 ویژگیها:
نصب خودکار تمها با یک اسکریپت Bash یا دستی
تمهای کاملاً قابل تنظیم
پشتیبانی از تصاویر پسزمینه (حتی شخصی)، آیکونها، فونتها و...
بهروزرسانی آسان
GRUB چیه اصلاً؟
GRUB (GRand Unified Bootloader) نرمافزاریه که قبل از لود شدن سیستمعامل اجرا میشه. این بوتلودر بهت این امکان رو میده تا انتخاب کنی با کدوم نسخهی لینوکس یا حتی ویندوز بوت شی.
به طور پیشفرض، GRUB خیلی سادهست، اما قابلیتهای زیادی داره — از بوت کردن از شبکه گرفته تا رمزنگاری و chainload سیستمعاملهای دیگه
@MehrdadLinuxchannel
#linux
Forwarded from DevTwitter | توییت برنامه نویسی
"تو این پروژه از RabbitMQ استفاده کردین؟ چرا؟"
این یکی از سوالهایی بود که تو یکی از مصاحبههای اخیرم ازم پرسیدن. بعدش اما یه سوال جالبتر مطرح شد:
"کجاها نباید از RabbitMQ استفاده کرد؟"
اون لحظه طبق تجربههام چند مورد گفتم، ولی بعد از مصاحبه، کنجکاو شدم بیشتر بدونم. نشستم یه تحقیق حسابی کردم، نتیجهش اینه
کجا نباید از RabbitMQ استفاده کنیم؟ دلیلش چیه؟ و چی بهتره جایگزین کنیم؟
1. وقتی نیاز به real-time response داریم
چرا نه؟ چون RabbitMQ صفیه و ارسال/دریافت پیام ممکنه با تاخیر انجام بشه
جایگزین؟ WebSocket، gRPC یا Redis Pub/Sub برای پاسخدهی لحظهای
2. وقتی به message replay یا history نیاز داریم
چرا نه؟ RabbitMQ پیامها رو بعد از مصرف حذف میکنه (مگر با کانفیگ و پیچیدگی بالا)
جایگزین؟ Kafka که log-based کار میکنه و پیامها رو تا مدت مشخص نگه میداره
3. زمانی که پیامها بسیار حجیم یا پرتعداد هستن
چرا نه؟ در حجم بالا RabbitMQ دچار افت performance میشه
جایگزین؟ Kafka یا NATS که برای حجم بالا طراحی شدن
4. وقتی ترتیب دقیق پردازش پیامها خیلی مهمه
چرا نه؟ RabbitMQ تضمین دقیقی برای ترتیب پیامها نداره
جایگزین؟ Kafka با قابلیت دقیق offset و partitioning
5. زمانی که امنیت end-to-end خیلی حیاتی باشه
چرا نه؟ RabbitMQ امنیت پایهای داره و برای نیازهای بالا باید کاستومایز شه
جایگزین؟ NATS یا Apache Pulsar با امکانات auth و encryption قویتر
پس کی RabbitMQ انتخاب خوبیه؟
- وقتی دنبال سادگی و decoupling هستیم
- برای پردازشهای پسزمینه و job queue ساده
- در شرایطی که نیاز به load leveling و retry داریم
- وقتی بین سرویسها تفاوت سرعت زیادی وجود داره
@DevTwitter | <Mohammad Shamsi/>
این یکی از سوالهایی بود که تو یکی از مصاحبههای اخیرم ازم پرسیدن. بعدش اما یه سوال جالبتر مطرح شد:
"کجاها نباید از RabbitMQ استفاده کرد؟"
اون لحظه طبق تجربههام چند مورد گفتم، ولی بعد از مصاحبه، کنجکاو شدم بیشتر بدونم. نشستم یه تحقیق حسابی کردم، نتیجهش اینه
کجا نباید از RabbitMQ استفاده کنیم؟ دلیلش چیه؟ و چی بهتره جایگزین کنیم؟
1. وقتی نیاز به real-time response داریم
چرا نه؟ چون RabbitMQ صفیه و ارسال/دریافت پیام ممکنه با تاخیر انجام بشه
جایگزین؟ WebSocket، gRPC یا Redis Pub/Sub برای پاسخدهی لحظهای
2. وقتی به message replay یا history نیاز داریم
چرا نه؟ RabbitMQ پیامها رو بعد از مصرف حذف میکنه (مگر با کانفیگ و پیچیدگی بالا)
جایگزین؟ Kafka که log-based کار میکنه و پیامها رو تا مدت مشخص نگه میداره
3. زمانی که پیامها بسیار حجیم یا پرتعداد هستن
چرا نه؟ در حجم بالا RabbitMQ دچار افت performance میشه
جایگزین؟ Kafka یا NATS که برای حجم بالا طراحی شدن
4. وقتی ترتیب دقیق پردازش پیامها خیلی مهمه
چرا نه؟ RabbitMQ تضمین دقیقی برای ترتیب پیامها نداره
جایگزین؟ Kafka با قابلیت دقیق offset و partitioning
5. زمانی که امنیت end-to-end خیلی حیاتی باشه
چرا نه؟ RabbitMQ امنیت پایهای داره و برای نیازهای بالا باید کاستومایز شه
جایگزین؟ NATS یا Apache Pulsar با امکانات auth و encryption قویتر
پس کی RabbitMQ انتخاب خوبیه؟
- وقتی دنبال سادگی و decoupling هستیم
- برای پردازشهای پسزمینه و job queue ساده
- در شرایطی که نیاز به load leveling و retry داریم
- وقتی بین سرویسها تفاوت سرعت زیادی وجود داره
@DevTwitter | <Mohammad Shamsi/>
Forwarded from DevTwitter | توییت برنامه نویسی
ریپوی زیر شامل راهحلها، کدها و استراتژیهای تیمهای برتر رقابتهای Kaggle هست که بعد از هر مسابقه آپدیت میشه و برای مرور، جستجو و حتی یادداشتبرداری خیلی کاربردیه. اگه میخواید از تجربه حرفهایها یاد بگیرید، این ریپو رو از دست ندید:
https://github.com/faridrashidi/kaggle-solutions
@DevTwitter | <Reza Jafari/>
https://github.com/faridrashidi/kaggle-solutions
@DevTwitter | <Reza Jafari/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
aerc: A Go-Powered Terminal-Based Email Client
🟢 خلاصه مقاله:
مقاله به بررسی یک مشتری ایمیل نوآورانه میپردازد که از ترکیب ابزارها و فناوریهای موجود مانند Pine و Vim به همراه قابلیتهای tmux ساخته شده است. این مشتری ایمیل، که با زبان برنامهنویسی Go کار میکند، از ایمیلهای HTML پشتیبانی کرده و قابلیتهای امنیتی مانند امضای PGP و پروتکلهای IMAP، Maildir و SMTP را نیز دارا میباشد. این امکانات متنوع، کاربردی را برای کاربران فراهم میکند تا سیستم ایمیل خود را مطابق با نیازهای خاص خود تنظیم و استفاده کنند.
🟣لینک مقاله:
https://golangweekly.com/link/168679/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
aerc: A Go-Powered Terminal-Based Email Client
🟢 خلاصه مقاله:
مقاله به بررسی یک مشتری ایمیل نوآورانه میپردازد که از ترکیب ابزارها و فناوریهای موجود مانند Pine و Vim به همراه قابلیتهای tmux ساخته شده است. این مشتری ایمیل، که با زبان برنامهنویسی Go کار میکند، از ایمیلهای HTML پشتیبانی کرده و قابلیتهای امنیتی مانند امضای PGP و پروتکلهای IMAP، Maildir و SMTP را نیز دارا میباشد. این امکانات متنوع، کاربردی را برای کاربران فراهم میکند تا سیستم ایمیل خود را مطابق با نیازهای خاص خود تنظیم و استفاده کنند.
🟣لینک مقاله:
https://golangweekly.com/link/168679/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from DevTwitter | توییت برنامه نویسی
دیگه لازم نیست کلی وقت بذاری برای GenAI بری ببینی چطوری RAG پیادهسازی کنی. ۴ تا کلیک میکنی توی پنل کلادفلر و کار تمومه. به زودی قراره Web Crawler هم اضافه بشه.
اطلاعات بیشتر رو اینجا ببینید:
https://blog.cloudflare.com/introducing-autorag-on-cloudflare/
@DevTwitter | <Reza Moallemi/>
اطلاعات بیشتر رو اینجا ببینید:
https://blog.cloudflare.com/introducing-autorag-on-cloudflare/
@DevTwitter | <Reza Moallemi/>
Forwarded from Laravel News
URI Path Components Using Laravel's pathSegments() Method https://laravel-news.com/uri-pathsegments
Laravel News
URI Path Components Using Laravel's pathSegments() Method - Laravel News
Laravel's pathSegments() method transforms URI path handling by returning path components as a collection. This feature eliminates manual string splitting, enabling fluent access to path segments for building navigation, breadcrumbs, and routing logic with…
Forwarded from Ninja Learn | نینجا لرن (Denver)
خب خب خب، تسک های CPU Bound🔧
احتمالا CPU Bound به گوشتون خورده، همون تسک هایی که بار پردازشی سنگینی دارن. یعنی دیگه منتظر عملیات I/O(خوندن از فایل یا دیتابیس، API خارجی و...) نیستن و عملا انجام شدنشون توسط CPU طول میکشه.
CPU Bound🧮
خب وقتی که به صورت عادی برناممون رو توسعه میدیم، برنامه ی ما فقط توی یک Process و یک هسته ی CPU اجرا میشه. اگه برنامه کار سنگینی مثل پردازش تصویر، محاسبات ریاضی فوق سنگین، الگوریتم های رمزنگاری و فشرده سازی و... داشته باشه، نتیجه اجرا شدنش توی یک Process چیزی بجز کندی و فشار روی CPU نیست. برای مثال شما یه CPU با ۸ هسته دارید ولی برنامه ای که نوشتید فقط روی یک هسته اجرا میشه.
توی این موقعیت میتونیم از Multi Processing استفاده کنیم.
Multi Processing یعنی چی؟🧐
میتونیم با استفاده از Multi Processing برنامه ای که نوشتیم رو توی چند Process و روی چند هسته اجرا کنیم. اینجوری از تمام توان CPU استفاده میشه و در نتیجه هم برنامه ما سریع تر میشه و هم فشار روی هسته های CPU تقسیم میشه.
چرا Multi Threading مناسب نیست؟💈
توی پایتون برای تسک های CPU Bound نمیتونیم از Multi Threading استفاده کنیم. چون پایتون یه چیزی به اسم GIL داره که باعث میشه فقط یک Thread بتونه در لحظه اجرا بشه.
یعنی اگه برای تسک های CPU Bound ازش استفاده کنیم در عمل فقط یک Thread داره واقعا اجرا میشه.
استفاده از Multi Processing🛠
با استفاده از ماژول multiprocessing میتونیم از محدودیت GIL عبور کنیم و چند process داشته باشیم.
یه مثال ساده:
این کد تابع cpu_bound_task رو همزمان توی ۴ تا process اجرا میکنه. هر process حافظه، thread و هسته ی CPU خودش رو داره. با اینکار میتونیم واقعا تسک های CPU Bound رو موازی اجرا کنیم و از مزایایی مثل سرعت بهتر بهره مند شیم.
جمع بندی✍️
در نهایت، وقتی با برنامهای سروکار داریم که CPU-bound هست، خیلی مهمه که درست تشخیص بدیم چه راهحلی برای بهینهسازی استفاده از منابع لازم داریم. توی پایتون، وقتی از multi threading استفاده میکنیم، به دلیل محدودیت GIL، همهی پردازشها روی یه هسته و یه thread اجرا میشن.
برای اینکه بتونیم از چند هستهی CPU استفاده کنیم و پردازشهای سنگین رو سریعتر انجام بدیم، باید از multi processing بهره بگیریم. با این روش، میتونیم هر بخش از برنامه رو به یک process جداگانه اختصاص بدیم که به طور مستقل و همزمان روی هستههای مختلف CPU اجرا بشه.
➖➖➖➖➖➖➖➖➖➖
احتمالا CPU Bound به گوشتون خورده، همون تسک هایی که بار پردازشی سنگینی دارن. یعنی دیگه منتظر عملیات I/O(خوندن از فایل یا دیتابیس، API خارجی و...) نیستن و عملا انجام شدنشون توسط CPU طول میکشه.
CPU Bound🧮
خب وقتی که به صورت عادی برناممون رو توسعه میدیم، برنامه ی ما فقط توی یک Process و یک هسته ی CPU اجرا میشه. اگه برنامه کار سنگینی مثل پردازش تصویر، محاسبات ریاضی فوق سنگین، الگوریتم های رمزنگاری و فشرده سازی و... داشته باشه، نتیجه اجرا شدنش توی یک Process چیزی بجز کندی و فشار روی CPU نیست. برای مثال شما یه CPU با ۸ هسته دارید ولی برنامه ای که نوشتید فقط روی یک هسته اجرا میشه.
توی این موقعیت میتونیم از Multi Processing استفاده کنیم.
Multi Processing یعنی چی؟🧐
میتونیم با استفاده از Multi Processing برنامه ای که نوشتیم رو توی چند Process و روی چند هسته اجرا کنیم. اینجوری از تمام توان CPU استفاده میشه و در نتیجه هم برنامه ما سریع تر میشه و هم فشار روی هسته های CPU تقسیم میشه.
چرا Multi Threading مناسب نیست؟💈
توی پایتون برای تسک های CPU Bound نمیتونیم از Multi Threading استفاده کنیم. چون پایتون یه چیزی به اسم GIL داره که باعث میشه فقط یک Thread بتونه در لحظه اجرا بشه.
یعنی اگه برای تسک های CPU Bound ازش استفاده کنیم در عمل فقط یک Thread داره واقعا اجرا میشه.
استفاده از Multi Processing🛠
با استفاده از ماژول multiprocessing میتونیم از محدودیت GIL عبور کنیم و چند process داشته باشیم.
یه مثال ساده:
from multiprocessing import Process
def cpu_bound_task():
# مثلاً محاسبهی یک عدد بزرگ
total = 0
for i in range(10**7):
total += i
print(total)
if __name__ == '__main__':
processes = []
for _ in range(4):
p = Process(target=cpu_bound_task)
p.start()
processes.append(p)
for p in processes:
p.join()
این کد تابع cpu_bound_task رو همزمان توی ۴ تا process اجرا میکنه. هر process حافظه، thread و هسته ی CPU خودش رو داره. با اینکار میتونیم واقعا تسک های CPU Bound رو موازی اجرا کنیم و از مزایایی مثل سرعت بهتر بهره مند شیم.
اگه پروژتون بزرگه بهتره تسک های سنگین رو به سیستم هایی مثل Celery بسپرین و از worker های process-based استفاده کنید.
جمع بندی✍️
در نهایت، وقتی با برنامهای سروکار داریم که CPU-bound هست، خیلی مهمه که درست تشخیص بدیم چه راهحلی برای بهینهسازی استفاده از منابع لازم داریم. توی پایتون، وقتی از multi threading استفاده میکنیم، به دلیل محدودیت GIL، همهی پردازشها روی یه هسته و یه thread اجرا میشن.
برای اینکه بتونیم از چند هستهی CPU استفاده کنیم و پردازشهای سنگین رو سریعتر انجام بدیم، باید از multi processing بهره بگیریم. با این روش، میتونیم هر بخش از برنامه رو به یک process جداگانه اختصاص بدیم که به طور مستقل و همزمان روی هستههای مختلف CPU اجرا بشه.
#️⃣ #programmin #python
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
بزودی قراره ادیتور Cursor یک افزونه برای کروم و احتمالا سایر مرورگرها عرضه کنه که باهاش مستقیماً میتونید به ادیتور وصل بشید اما پرامپتها رو در مرورگر بفرستید و خروجی رو همونجا ببینید.
rylou_
hadi @geekalerts
rylou_
hadi @geekalerts
Forwarded from Laravel News
Managing Encrypted Environment Variables In Laravel With Veil https://laravel-news.com/veil-managing-encrypted-environment-variables
Laravel News
Managing Encrypted Environment Variables In Laravel With Veil - Laravel News
Veil is a Laravel package designed to enhance the management of encrypted environment variables in your Laravel or Laravel Zero applications.
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
تبدیل نوشتار به فیلتر های سرچ با کمک هوش مصنوعی کاری بود که برای تمرین بیشتر structured output llm ها انجام دادم.
برای مواقعی که تعداد داده ها خیلی زیاده و فیلتر کردن سخت میشه llm شاید بتونه کمک کنه ما بتونیم با نوشتار به دیتای فیلتر شده ای که میخوایم سریعتر برسیم.
یه دمو ریز
@DevTwitter | <Mani/>
برای مواقعی که تعداد داده ها خیلی زیاده و فیلتر کردن سخت میشه llm شاید بتونه کمک کنه ما بتونیم با نوشتار به دیتای فیلتر شده ای که میخوایم سریعتر برسیم.
یه دمو ریز
@DevTwitter | <Mani/>
Forwarded from DevTwitter | توییت برنامه نویسی
با Guzzle یه اسکریپت scraper نوشتم برای سایت دیوار
به این شکل که میاییم درخواست های POST خود دیوار رو شبیه سازی میکنیم، اطلاعات آگهی ها رو استخراج میکنیم
https://github.com/xmrrabbitx/scraper
@DevTwitter | <hadi mirzaei/>
به این شکل که میاییم درخواست های POST خود دیوار رو شبیه سازی میکنیم، اطلاعات آگهی ها رو استخراج میکنیم
https://github.com/xmrrabbitx/scraper
@DevTwitter | <hadi mirzaei/>
Forwarded from DevTwitter | توییت برنامه نویسی
اگه نیاز به یه سیستم برای مدیریت تسکها و پروژهها دارید و میخواید خودتون هم رانش کنید رپوی زیر که با لاراول نوشته شده این امکان رو بهتون میده.
هم کد و ظاهرش خوب بود و هم امکانات خوبی مثل بورد kanban و سیستم تیکت و تایملاین هم داره
https://github.com/SeptiawanAjiP/dewakoding-project-management
@DevTwitter | <Saman Esmaeil/>
هم کد و ظاهرش خوب بود و هم امکانات خوبی مثل بورد kanban و سیستم تیکت و تایملاین هم داره
https://github.com/SeptiawanAjiP/dewakoding-project-management
@DevTwitter | <Saman Esmaeil/>
Forwarded from Geek Alerts
گوگل نسخه بهبودیافته Gemini 2.5 Pro به نام I/O ادیشن عرضه کرده که در بنچمارکهای برنامهنویسی بازهم مقام اول رو کسب کرده. اینبار با اختلاف بیشتری نسبت به Sonnet 3.7 در رده اول قرار گرفته. درحال حاضر جایگزین مدل قبلی شده و توی سایت، نرمافزار و APIشون در دسترسه. توی معرفی یک بخش ویدیو به کد داشتن بهخاطر عملکرد خوبش در درک ویدیوها، یعنی ویدیویی از عملکرد برنامهای رو بهش میدین و مشابهاش رو میسازه.
به گفته خودشون این یکی از مدلهایی هست که قراره تا قبل از رویداد گوگل یعنی I/O ببینیم و احتمالا گوگل امسال قراره تو رویدادش مدلها و ابزارهای زیادی معرفی کنه.
googleblog
hadi @geekalerts
به گفته خودشون این یکی از مدلهایی هست که قراره تا قبل از رویداد گوگل یعنی I/O ببینیم و احتمالا گوگل امسال قراره تو رویدادش مدلها و ابزارهای زیادی معرفی کنه.
googleblog
hadi @geekalerts
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
اگه شمام مثه من کامندارو یادتون میره، در مورد کوبر میتونید به این ریپو یه نگاه بندازین:
https://github.com/GoogleCloudPlatform/kubectl-ai
@DevTwitter | <Younes Mahmoudi/>
https://github.com/GoogleCloudPlatform/kubectl-ai
@DevTwitter | <Younes Mahmoudi/>
Forwarded from محتوای آزاد سهراب
برنامه اندرویدی پیرتوب بهروز شد و الان امکان ورود با حسابکاربری، امکان نظردهی و پسندیدن ویدئوها رو هم اضافه کرده.
@SohrabContents
@SohrabContents