Forwarded from محتوای آزاد سهراب
لطفاً هر پروژهای رو دیدید توی گیتهاب، بخصوص پروژههای اوپن سورس ایرانی، اول لایسنسش رو بخونید بعدش اگر خودتون خندتون نگرفت از بعضی لایسنسهای این پروژهها میتونید بهشون بگید نرم افزار آزاد!
@SohrabContents
@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 آقای معین حلوایی فهرستی از شرکتهای ایرانی که در آنها مصاحبه داشته است، در یک مخزن گیتهاب به اشتراک گذاشته. در این مخزن، اطلاعات مفیدی دربارهی سوالات مصاحبهی هر شرکتی که در آن شرکت کرده، منتشر شده است.
سایت :
https://mo1ein.github.io/jobname/index.html
گیت هاب :
https://github.com/mo1ein/jobname
@TheRaymondDev
سایت :
https://mo1ein.github.io/jobname/index.html
گیت هاب :
https://github.com/mo1ein/jobname
@TheRaymondDev
GitHub
GitHub - mo1ein/jobname: All my interview experiences.
All my interview experiences. Contribute to mo1ein/jobname development by creating an account on GitHub.
Forwarded from Woland's Linux Journal (Woland)
واقعا از همچین پروانهای خندهتون نمیگیره؟
این یک پروانهی منبع باز نیست! این پروانه تمام موازین نرمافزار آزاد رو زیر پا میذاره.
این یک پروانه انحصاری (Proprietary) و صرفا Source Available میتونه باشه.
RE: 🔗 https://t.iss.one/sohrabcontents/2076
این یک پروانهی منبع باز نیست! این پروانه تمام موازین نرمافزار آزاد رو زیر پا میذاره.
این یک پروانه انحصاری (Proprietary) و صرفا Source Available میتونه باشه.
RE: 🔗 https://t.iss.one/sohrabcontents/2076
Forwarded from Python Hints
3rd edition
این کتاب معرفی شد؛ برای دوستانی که گفته بودند این نسخه 2nd ed قدیمی شده و ....
High Performance Python 3rd edition
این کتاب معرفی شد؛ برای دوستانی که گفته بودند این نسخه 2nd ed قدیمی شده و ....
High Performance Python 3rd edition
Forwarded from Gopher Academy
🔵 عنوان مقاله
Using Differential Coverage for Debugging
🟢 خلاصه مقاله:
روش پیشنهادی راس بر استفاده از پروفایلهای پوشش تست استوار است. این روش با تولید پروفایلهای پوشش برای تستهای موفق و ناموفق، بخشهای کدی که تنها در زمان بروز خطا اجرا میشوند را شناسایی میکند. این تکنیک با کمپر کردن پروفایلها به محدود کردن محدوده جستجوی اشکالزدایی به طور قابل توجهی کمک میکند، با این حال گاهی اوقات ممکن است مشکلات را بهطور کامل حل نکند.
🟣لینک مقاله:
https://golangweekly.com/link/168654/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Using Differential Coverage for Debugging
🟢 خلاصه مقاله:
روش پیشنهادی راس بر استفاده از پروفایلهای پوشش تست استوار است. این روش با تولید پروفایلهای پوشش برای تستهای موفق و ناموفق، بخشهای کدی که تنها در زمان بروز خطا اجرا میشوند را شناسایی میکند. این تکنیک با کمپر کردن پروفایلها به محدود کردن محدوده جستجوی اشکالزدایی به طور قابل توجهی کمک میکند، با این حال گاهی اوقات ممکن است مشکلات را بهطور کامل حل نکند.
🟣لینک مقاله:
https://golangweekly.com/link/168654/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
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