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
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۱۶۸

گداخت جان که شود کار دل تمام و نشد
بسوختیم در این آرزوی خام و نشد
به لابه گفت شبی میر مجلس تو شوم
شدم به رغبت خویشش کمین غلام و نشد
پیام داد که خواهم نشست با رندان
بشد به رندی و دردی کشیم نام و نشد
رواست در بر اگر می تپد کبوتر دل
که دید در ره خود تاب و پیچ دام و نشد
بدان هوس که به مستی ببوسم آن لب لعل
چه خون که در دلم افتاد همچو جام و نشد
به کوی عشق منه بی دلیل راه قدم
که من به خویش نمودم صد اهتمام و نشد
فغان که در طلب گنج نامه مقصود
شدم خراب جهانی ز غم تمام و نشد
دریغ و درد که در جست و جوی گنج حضور
بسی شدم به گدایی بر کرام و نشد
هزار حیله برانگیخت حافظ از سر فکر
در آن هوس که شود آن نگار رام و نشد

#حافظ | گنجور
📍@iipoem
Forwarded from DevOps Labdon
🔵 عنوان مقاله
How to manage tool dependencies in Go 1.24+ (6 minute read)

🟢 خلاصه مقاله:
مقاله‌ای که مرور شده، درباره ورژن 1.24 زبان برنامه‌نویسی Go صحبت می‌کند که ویژگی جدیدی با عنوان پرچم "-tool" را معرفی کرده است. این ویژگی امکان مدیریت وابستگی‌های ابزارهای توسعه‌دهندگان را مستقیماً در فایل go.mod فراهم می‌آورد. با استفاده از این پرچم، توسعه‌دهندگان می‌توانند به سادگی ابزارهایی نظیر staticcheck، govulncheck، و stringer را افزوده، به روز رسانی کنند یا حذف نمایند. این امکان به انتگراسیون راحت‌تر این ابزارها در فرآیندهای توسعه کمک کرده و به بهبود جریان کاری توسعه‌دهندگان منجر می‌شود. در نتیجه، این تغییر جدید در Go 1.24 به تسهیل بخشیدن به مدیریت ابزارهای توسعه می‌پردازد و استفاده از آنها را در پروژه‌های Go کارآمدتر می‌کند.

🟣لینک مقاله:
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus?utm_source=tldrdevops


👑 @DevOps_Labdon
اولین مشارکت من در دنیای FOSS مختصر به اینکه یه افزونه تعویض DNS نوشتم برای گنوم با هوش مصنوعی. و با یه دستور میتونید DNS های تحریم شکن رو اضافه کنید بهش. اسمش هم ساناد هست.

https://extensions.gnome.org/extension/7861/sanad/
https://github.com/MirS0bhan/sanad

@DevTwitter | <میرسبحان/>
Forwarded from Geek Alerts
امروز، ۱۶ مارس، سالروز تولد ریچارد استالمن است

ریچارد متیو استالمن، برنامه‌نویس، فعال حقوق دیجیتال و بنیانگذار بنیاد نرم‌افزار آزاد (FSF) است. استالمن به خاطر تعهدش به فلسفه نرم‌افزار آزاد و تلاش‌هایش برای ترویج آزادی‌های دیجیتال شناخته می‌شود. او در سال 1983 پروژه گنو را آغاز کرد، که به توسعه سیستم‌عامل GNU/Linux و بسیاری از ابزارهای نرم‌افزاری آزاد دیگر منجر شد.
استالمن به عنوان یک مدافع حریم خصوصی، به طور خستگی‌ناپذیر برای آگاهی‌رسانی در مورد خطرات نرم‌افزارهای اختصاصی و نظارت دولتی تلاش می‌کند. او همچنین منتقد سرسخت قانون کپی‌رایت است و معتقد است که این قانون مانع نوآوری و خلاقیت می‌شود.
در سال 2021، استالمن به سرطان مبتلا شد و درحال حاضر در روند درمان قرار دارد. او امروز ۷۲ ساله شد.

🔗 https://stallman.org
🤓 hadi @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
MCP آشنایی با
چند وقتی هست که شرکت Anthropic سازنده Cluade AI یک استانداردی رو معرفی کرده به اسم Model Context Protocol

خیلی خلاصه بخوام بگم MCP یه راه استاندارد برای integration هست که به AI systemها مثل Cluade اجازه بده به external resourceها مثل دیتابیس، api و غیره وصل بشن برای استخراج اطلاعات.

خودشون اینطوری معرفی کردن که MCP رو چیزی شبیه پورت USB-C ببینید برای اپلیکیشن های ai.
همانطور که پورت usb-c روی دستگاه ها یه روش استاندارد وصل کردن اونا به لوازم جانبی هست، MCP هم یه راه استاندارد برای اتصال مدل های ai به منابع و ابزار متفاوت و متنوع هست.

۳ تا کامپوننت اصلی داره:
هاست یا همون ai application مثل cluade
کلاینت MCP که توسط ai model استفاده میشه تا با منابع خارجی ارتباط بگیره
سرور MCP که مسئولیت برقراری ارتباط بین کلاینت MCP و منبع خارجی رو داره

مزیت ش چیه؟
به شما اجازه میده که ایجنت ها و workflowهای پیچیده بر روی LLMها بسازید و بین LLMهای مختلف سوییچ کنید.
https://modelcontextprotocol.io/introduction



@gocasts


Ai for Software
@aicasts_ir
خب خب خب ORM چیه ؟ 🛸

امروز می‌خوام درباره‌ی یه موضوع مهم و کاربردی تو دنیای برنامه‌نویسی حرف بزنم: ORM یا همون Object-Relational Mapping.

🧠 ORM یعنی چی؟

ORM (Object-Relational Mapping) یه تکنیک تو برنامه‌نویسیه که داده‌های دیتابیس رو به شکل اشیاء (objects) تو زبون‌های شی‌گرا مثل پایتون، جاوا یا سی‌شارپ مدیریت می‌کنه. به بیان ساده، ORM یه پل ارتباطی بین دنیای شی‌گرایی (کلاس‌ها و اشیاء) و دنیای دیتابیس‌های رابطه‌ای (جداول و ستون‌ها) می‌سازه. با ORM دیگه لازم نیست مستقیم با کوئری‌های SQL کار کنی؛ در عوض، با همون زبون برنامه‌نویسی‌ات دیتابیس رو کنترل می‌کنی.

مثلاً به جای اینکه بنویسی:
SELECT * FROM users

می‌تونی تو پایتون با Django ORM اینجوری بنویسی:
users = User.objects.all()

و همون نتیجه رو بگیری

📚 ORM چطوری کار می‌کنه؟
فرض کن تو دیتابیست یه جدول به اسم users داری که ستون‌هاش اینان:
id، name و email

تو برنامه‌ات یه کلاس به اسم User می‌سازی که پراپرتی‌هایی مثل id، name و email داره. ORM این کلاس رو به جدول users توی دیتابیس مپ (map) می‌کنه. یعنی هر شیء از کلاس User نمایانگر یه رکورد تو جدول users می‌شه.

چند تا سناریو رو با هم ببینیم:

1⃣ ذخیره کردن داده:
یه شیء از کلاس User می‌سازی، مقادیرش رو پر می‌کنی و با یه متد مثل save() ذخیره‌اش می‌کنی. ORM این کار رو به یه دستور SQL (مثل INSERT) تبدیل می‌کنه و اجرا می‌کنه.

user = User(name='علی', email='[email protected]')
user.save()


2⃣ خوندن داده:
میتونی به جای کوئری SQL، از متدهایی مثل all() یا filter() استفاده می‌کنی. ORM پشت صحنه کوئری مناسب رو می‌سازه و داده‌ها رو به شکل اشیاء برمی‌گردونه.


   # همه کاربرها
users = User.objects.all()

# فیلتر کردن
ali_users =
User.objects.filter(name='علی')


به همین سادگی ORM تمام پیچیدگی‌های کار با دیتابیس رو از دید تو مخفی می‌کنه و یه رابط کاربری راحت بهت می‌ده.

البته هر orm با orm های دیگه فرق داره هرچی یه orm بیشتر abstraction انجام داده باشه استفاده ازش راحت تر میشه
ولی توی مقیاس بالاتر همین سادگی باعث پیچیدگی میشه.
🚀 ORM برای چی به وجود اومد؟

قبل از اینکه ORMها باشن، برنامه‌نویس‌ها مستقیم با SQL کار می‌کردن. (هرچند همین الانشم توی زبان های هایی که orm مناسبی براش ساخته نشده برنامه نویسان بصورت خام کد sql میزنن مثل برنامه نویسان golang)

این چند تا مشکل داشت و داره:

کدهای طولانی:
برای هر عملیات ساده، باید یه کوئری SQL می‌نوشتی که گاهی خیلی پیچیده می‌شد.

خطای زیاد:
یه اشتباه کوچیک تو کوئری (مثل یه typo) می‌تونست ساعت‌ها وقتت رو تلف کنه.

سختی نگهداری:
اگه ساختار دیتابیست عوض می‌شد (مثلاً یه ستون اضافه یا کم می‌شد)، باید همه کوئری‌ها رو دستی تغییر می‌دادی.

تفاوت پارادایم:
‏ SQL یه زبون declarative (اعلانی) هست، ولی زبون‌هایی مثل پایتون imperative (دستوری) هستن. این یعنی برنامه‌نویس باید مدام بین دو مدل فکری جابه‌جا می‌شد.

ORM اومد که این مشکلات رو حل کنه:

سادگی:
کار با دیتابیس مثل کار با اشیاء تو زبون خودت می‌شه.

امنیت:
‏ORMها معمولاً جلوی حملاتی مثل SQL Injection رو می‌گیرن.

انعطاف‌پذیری:
می‌تونی دیتابیس رو عوض کنی (مثلاً از MySQL بری به PostgreSQL) بدون اینکه کل کدت رو تغییر بدی.

سرعت توسعه:
چون کوئری‌نویسی کمتر می‌شه، وقت بیشتری برای منطق اصلی برنامه‌ات داری.

جمع‌بندی
ORM یه ابزار باحال و قدرتمنده که کار با دیتابیس رو برای برنامه‌نویس‌ها راحت‌تر، سریع‌تر و امن‌تر می‌کنه. با ORM دیگه لازم نیست با SQL خام کلنجار بری و می‌تونی با همون زبون برنامه‌نویسی‌ات همه‌چیز رو مدیریت کنی.

#️⃣ #database #sql #orm


🥷 CHANNEL | GROUP
شاید شما هم مثل عمو فری عاشق axios باشید و دلتون نیاد هیچ‌وقت ازش جدا بشید!
همین‌طور شیفته‌ی Next.js 15 که کلی قابلیت خفن بهش اضافه شده!

دل نیست که، دریاست...

ولی یه مشکلی هست!
نکست توی داکیومنتش تاکید کرده که بهتره از fetch استفاده کنید، چون کلی API کاربردی مثل:
- مدت زمان کش (cache)
- صفحات استاتیک (Static Generation)
- به‌روزرسانی صفحات بر اساس الگوی زمانی (Revalidation)
رو داره که باعث می‌شه صفحات شما همیشه به‌روز و سریع بمونن.

اما اگر بگم یه راه هست که همه اینارو به axios هم بدیم ، اونوقت چی میگید؟

با استفاده از unstable_cache توی Next.js 15 می‌تونید axios رو مجهز به کش سرور، revalidation و static generation کنید!

برای این کار کافیه که unstable_cache رو فراخانی کنید و بپیچید دور درخواستتون
و کانفیگ مورد نظرتون رو هم بهش پاس بدید
و کار تمومه !

هر بار که این تابع رو صدا بزنید، اول کش چک میشه و اگه معتبر باشه، بدون درخواست جدید، داده‌های کش شده برمی‌گرده!
َaxios همون axios می‌مونه، ولی از مزایای کش و ISR در Next.js هم بهره می‌برید!
پس دیگه مجبور نیستید بین axios و fetch یکی رو انتخاب کنید!

توضیحات اضافه :

بعضی وقتا درخواست‌ها سمت کلاینت هستن و بعضی وقتا سمت سرور.
برای درخواست‌های کلاینتی، من از همین ترکیب + TanStack query استفاده می‌کنم تا مدیریت درخواست‌ها راحت‌تر بشه.
البته اگه اصل Single Responsibility رو رعایت کنید، می‌تونید:
- درخواست unstable_cache رو جدا بسازید
- هوک استفاده از اون در TanStack Query رو هم جدا نگه دارید
و بعد، بسته به نیازتون، هرکدوم رو که لازم داشتید فراخوانی کنی

@DevTwitter | <Fariborz Shalghooni/>
Forwarded from Go Casts 🚀
استخدام دواپس (جونیور یا میدلول) - سازیتو - بصورت هیبرید

Sazito DevOps Engineer
اگر در موقعیت شغلی DevOps Engineer (جونیور یا میدلول) سابقه فعالیت دارید، لطفا رزومه خود را ارسال کنید.
نوع همکاری تمام وقت و هیبرید است.

لطفا این فرم رو پر کنید.
https://survey.porsline.ir/s/xXuaagrl


@gocasts
Forwarded from Python Hints
امروز وقتی وارد لینکدین شدم کلی پست راجب پیشنهاد خوندن کتاب fluent python دیدم.

خیلی خوشحالم که این کتاب داره دیده می‌شه؛ یک زمانی بود آدما زبان برنامه‌نویسی رو درست نمی‌شناختند ولی بخاطر جوی که راه افتاده بود
Clean coder, clean code , ....

داشتند می‌خوندند، بعد طرف توی سورس کد پایتونش داشت با استانداردهای جاوا و سی‌شارپ و ... کد میزد؛ تمیز بود ولی پایتون نبود.

https://t.iss.one/pyHints/s/3
Forwarded from Python Hints
#موقت

چندتا کتاب دیگه رو توی این تعطیلات شروع می‌کنم.
البته ازین تعطیلات برای Rust خوندن بیشتر استفاده خواهم کرد، ولی چندتا کتاب دیدم که بنظر خوب میاد برای پایتون اگر مناسب بود حتماً بعد از تعطیلات راجب اونها هم خواهم نوشت.
Forwarded from Linuxor ?
ابزار KRunner فقط برای جستجو و اجرای برنامه ها نیست ماشین حسابم هست حتی تبدیل واحد هم می‌کنه خیلی بدرد بخوره مخصوصا برای تبدیل سریع بیت به واحد های خوانا

توی دسکتاپ KDE با Alt + Space ران می‌شه

@Linuxor
Forwarded from Python Hints
ترجیح می‌دید کتاب راجب کدوم موضوع باشه ؟
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینه‌ای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
Anonymous Poll
43%
Performance optimization
16%
Meta-programming
18%
Concurrency, Parallélism
23%
Async
Forwarded from Python Hints
چون زیاد سوال شد :

روی اسم کانال بزنید و بخش Posts شامل تمام کتاب‌های معرفی شده هست
استوری بودند.
استفاده کنید هم باحاله هم کاربردی
داستانش چیه :

KIMI
یه مدل زبانی جدید چینیه که می‌تونه همزمان تا 50 فایل رو بررسی کنه و متن تا 200,000 توکن رو پردازش کنه. حتی ظاهرشم هم خیلی شبیه دیپ‌سیک هستش

لینک:
https://kimi.ai

@DevTwitter | <Mr.programmer/>
Forwarded from CleverDevs (Mammad)
Forwarded from (𝙑𝙞𝙥𝙚𝙧 𝘿𝙞𝙨𝙘𝙪𝙨𝙨𝙞𝙤𝙣)™️ (Admin 10)
۲۶ اسفند۱۳۷۶ اتوبوس حامل نخبگان ریاضی شرکت‌کننده در مسابقات ریاضی در راه بازگشت به تهران در جاده انديمشک-پل‌دختر به دره سقوط ‌كرد.

در این سانحه ۲ راننده و ۷ نفر از دانشجویان نخبه رياضی دانشگاه‌های شريف و تهران كشته شدند.

مریم میرزاخانی یکی از بازماندگان این فاجعه بود.

روحشان شاد🙏
Forwarded from Geek Alerts
بایدو یه مدل استدلالی داده به اسم Ernie X1 که میگن خروجی تو سطح R1 از دیپ‌سیک داره با این تفاوت که نصف قیمت اون هست، احتمالا میشه ارزون‌ترین مدل استدلالی توی دنیا.

یه مدل دیگه هم دادن به اسم Ernie 4.5 که قرار هست از ماه جون همین امسال به صورت اوپن‌سورس هم منتشرش کنن، برای دسترسی به API های این ۲ مدل میشه از پلتفرم Qianfan استفاده کرد.

🔗 nasdaq
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
مایکروسافت از Copilot for Gaming رونمایی کرد

میشه دستیار بازی کردن شما داخل Xbox، مثلاً، توی یه دمو مربوط به Minecraft نشون دادن که راهنمایی میکنه چجوری بازی کنی یا ابزارهارو چطوری بسازی.

خبر خوب اینکه همین فروردین اولین نسخه‌های آزمایشی ازش توی Xbox Insiders منتشر میشه و ماه‌های آینده کاربران Xbox میتونن ازش استفاده کنن.

🔗 techspot
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
Keep Postgres Maintenance from Slowing Down Your Go App

🟢 خلاصه مقاله:
جای خود را برای یادگیری روش‌های پیشگیرانه نگهداری تضمین کنید که خطرات پنهان کارایی پایگاه داده،

مانند

پرس و جوهای کند (slow queries)،

رفتار نقطه بازرسی (checkpoint behavior)،

و مسائل اتصال (connection issues)،

را پیش از آنکه تشدید شوند، آشکار می‌سازند.

🟣لینک مقاله:
https://golangweekly.com/link/166476/web


👑 @gopher_academy