Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
"تو این پروژه از 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/>
ریپوی زیر شامل راه‌حل‌ها، کدها و استراتژی‌های تیم‌های برتر رقابت‌های Kaggle هست که بعد از هر مسابقه آپدیت میشه و برای مرور، جستجو و حتی یادداشت‌برداری خیلی کاربردیه. اگه می‌خواید از تجربه حرفه‌ای‌ها یاد بگیرید، این ریپو رو از دست ندید:

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
دیگه لازم نیست کلی وقت بذاری برای GenAI بری ببینی چطوری RAG پیاده‌سازی کنی. ۴ تا کلیک می‌کنی توی پنل کلادفلر و کار تمومه. به زودی قراره Web Crawler هم اضافه بشه.

اطلاعات بیشتر رو اینجا ببینید:
https://blog.cloudflare.com/introducing-autorag-on-cloudflare/

@DevTwitter | <Reza Moallemi/>
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 داشته باشیم.
یه مثال ساده:
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
This media is not supported in your browser
VIEW IN TELEGRAM
تبدیل نوشتار به فیلتر های سرچ با کمک هوش مصنوعی کاری بود که برای تمرین بیشتر structured output llm ها انجام دادم.

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

یه دمو ریز

@DevTwitter | <Mani/>
با Guzzle یه اسکریپت scraper نوشتم برای سایت دیوار
به این شکل که میاییم درخواست های POST خود دیوار رو شبیه سازی میکنیم، اطلاعات آگهی ها رو استخراج میکنیم
https://github.com/xmrrabbitx/scraper

@DevTwitter | <hadi mirzaei/>
اگه نیاز به یه سیستم برای مدیریت تسک‌ها و پروژه‌ها دارید و میخواید خودتون هم رانش کنید رپوی زیر که با لاراول نوشته شده این امکان رو بهتون میده.
هم کد و ظاهرش خوب بود و هم امکانات خوبی مثل بورد 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
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۶۸۴

امشب منم و یکی حریف چو منی
بر ساخته مجلسی برسم چمنی
جام می و شمع و نقل و مطرب همه هست
ای کاش تو می بودی و اینها همه نی

#مولانا | گنجور
📍@iipoem
This media is not supported in your browser
VIEW IN TELEGRAM
اگه شمام مثه من کامندارو یادتون میره، در مورد کوبر می‌تونید به این ریپو یه نگاه بندازین:

https://github.com/GoogleCloudPlatform/kubectl-ai

@DevTwitter | <Younes Mahmoudi/>
برنامه اندرویدی پیرتوب به‌روز شد و الان امکان ورود با حساب‌کاربری، امکان نظردهی و پسندیدن ویدئوها رو هم اضافه کرده.



@SohrabContents
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰جایگزین جدید sudo در راه است.

🔹اوبونتو اعلام کرده است که در نسخهٔ آیندهٔ خود، Ubuntu 25.10، ابزار sudo را با نسخه‌ای بازنویسی‌شده و ایمن‌تر به نام sudo-rs جایگزین خواهد کرد. این نسخهٔ جدید با زبان برنامه‌نویسی Rust توسعه یافته و توسط بنیاد Trifecta Tech Foundation پشتیبانی می‌شود.

🔹چرا sudo-rs؟
ویژگی sudo-rs نسخه‌ای بازنویسی‌شده از ابزار معروف sudo است که با زبان Rust توسعه یافته است. Rust به دلیل ویژگی‌های ایمنی حافظهٔ قوی خود، از بروز بسیاری از آسیب‌پذیری‌های رایج در نرم‌افزارهای نوشته‌شده با زبان C جلوگیری می‌کند. این ویژگی‌ها، sudo-rs را به گزینه‌ای مناسب برای افزایش امنیت و پایداری سیستم‌های لینوکس تبدیل می‌کند.

🔹این پروژه بخشی از ابتکار "Privilege Boundary" بنیاد Trifecta Tech است که هدف آن جایگزینی ابزارهای حیاتی سیستم با نسخه‌های ایمن‌تر و مدرن‌تر است.

🔸جلوگیری از فرار از پوسته (NOEXEC)
🔸کنترل پروفایل‌های AppArmor
🔸پیاده‌سازی sudoedit
🔸پشتیبانی از هسته‌های لینوکس قدیمی‌تر از نسخهٔ 5.9، برای اطمینان از سازگاری با نسخه‌های LTS مانند Ubuntu 20.04

🔹هدف این است که برای اکثر کاربران، این تغییر بدون تأثیر بر روند کاری آن‌ها باشد، زیرا sudo-rs به‌عنوان جایگزینی مستقیم برای sudo طراحی شده است. زبان Rust به دلیل ویژگی‌های ایمنی حافظهٔ قوی خود، از بروز بسیاری از آسیب‌پذیری‌های رایج در نرم‌افزارهای نوشته‌شده با زبان C جلوگیری می‌کند. با استفاده از «sudo-rs»، اوبونتو قصد دارد خطرات امنیتی مرتبط با مدیریت حافظه را کاهش داده و محیطی امن‌تر برای کاربران فراهم کند.

🔹زمان‌بندی و آزمایش
قرار است sudo-rs به‌طور پیش‌فرض در Ubuntu 25.10 معرفی شود، که این نسخه در 9 اکتبر 2025 منتشر خواهد شد. این اقدام به‌عنوان مرحله‌ای برای آزمایش و دریافت بازخورد از کاربران قبل از انتشار نسخهٔ بلندمدت بعدی، Ubuntu 26.04 LTS، در نظر گرفته شده است.

🔹گام‌های بعدی
این تغییر تنها به «sudo» محدود نمی‌شود. اوبونتو همچنین در حال بررسی جایگزینی ابزارهای اصلی سیستم مانند «coreutils» با نسخه‌های نوشته‌شده در Rust است، تا امنیت و پایداری کلی سیستم را افزایش دهد.

📌نویسنده: حسین سیلانی
اخبار و آموزش های بیشتر در کانال:
https://t.iss.one/linuxtnt

📌منبع :  آکادمی کندوی دانش
https://learninghive.ir
Forwarded from Geek Alerts
Media is too big
VIEW IN TELEGRAM
کلیپی رو اگه توی ویندوزهای قدیمی یادتون باشه اومدن یه نسخه ازش ساختن که امکان اتصال مدل‌های هوش‌مصنوعی رو داخلش داره، یعنی رابط کاربری نوستالژی کلیپی رو میتونید با AI های جدید تجربه کنید.

رابط کاربریش مثل یه چت معمولیه، پیام میدی و جواب میگیری. به صورت خودکار بهترین راه برای اجرای مدل‌های هوش مصنوعی روی سیستم شما رو پیدا می‌کنه و از قابلیت‌های سخت‌افزاری مثل Metal یا CUDA استفاده می‌کنه، همچنین می‌تونید مدل‌های خودتون رو هم بهش اضافه کنید.

کلیپی کاملا آفلاین و رایگانه. لازم نیست نگران حریم خصوصی یا اتصال همیشگی به اینترنت باشید. میتونید نسخه‌های مختلفش برای ویندوز، مک و لینوکس رو دانلود کنید.

https://felixrieseberg.github.io/clippy/
@geekalerts
Forwarded from /WeCamp/ Support
‌ ‌
درباره LOKI در اینجا بخوانید.

در دوره زیرساخت ابری وی‌کمپ به بخش عمده‌ای از تکنولوژی‌های LOKI پرداخته می‌شه.

وی‌کمپ در اینستاگرام:
📹https://instagram.com/wecamppro
Please open Telegram to view this post
VIEW IN TELEGRAM
اینطور که بوش میاد فدورا و چت جی‌پی‌تی چند روزه بدون نیاز به فیلترشکن/تحریم شکن در ایران قابل دسترسی هستن.

حالا معلوم نیست تحریم‌ها برداشته شده، یا مثل اون داستان داکر و گیت‌لب یک ایراد در شبکه اینترنتی کشوره.

@SohrabContents
Forwarded from Geek Alerts
Forwarded from Geek Alerts
این ماه آپدیت ویندوز ۱۱ با تغییرات زیاد میاد، مثلا منوی استارت جدید یه پنل تلفن بهش اضافه شده که اطلاعات مهم گوشی مثل مخاطبین، پیام‌ها، تماس‌ها و شارژ باتری رو نشون میده.

علاوه بر این‌ها، ویندوز ۱۱ یه دستیار هوش مصنوعی جدید هم مستقیم توی تنظیماتش پیدا می‌کنه که میتونید بخواید تنظیمات رو براتون عوض کنه یا حتی توی حل مشکلات کمک کنه. توی فایل اکسپلورر هم با راست کلیک روی فایل‌ها، گزینه‌های جدیدی مثل ویرایش عکس یا خلاصه کردن متن قبل از باز کردن فایل اضافه میشه.

هوش‌مصنوعی جاهای دیگه هم هست، مثلا توی Photos میشه منبع نور رو توی عکس‌ها تغییر داد، توی Paint میشه با انتخاب سوژه اون رو پاک کرد و حتی استیکر ساخت، و توی Snipping Tool خودکار اسکرین‌شات‌هارو واستون برش میزنه. حتی توی Notepad هم قابلیت نوشتن با هوش مصنوعی اضافه میشه. اول برای کامپیوترهای کوپایلت‌پلاس میاد ولی قراره برای تمام کاربران حتی اینتلی‌ها هم این آپدیت منتشر بشه.

theverge
@geekalerts