DotNet | دات نت
1.11K subscribers
663 photos
229 videos
484 files
703 links
تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book


🆔 @dotnetcode
Download Telegram
Forwarded from Software Philosophy
پشتیبانی از عملگر LeftJoin در NET 10.

در نسخه جدید NET 10.، پشتیبانی بومی از عملگر LeftJoin در LINQ به این فریم‌ورک اضافه شده است. این تغییر مهم در زمان نوشتن کوئری‌ها در Entity Framework Core (EF Core) به شما کمک می‌کند تا کد ساده‌تری بنویسید و از پیچیدگی‌های قبلی که نیازمند استفاده از ترکیب چندین متد مانند SelectMany و GroupJoin بود، رهایی یابید.

قبل از NET 10.:

در نسخه‌های قبلی EF Core، برای استفاده از عملیات LeftJoin نیاز به ترکیب چندین متد پیچیده بود. در این روش، ابتدا با استفاده از GroupJoin داده‌ها را به هم پیوند می‌دادیم، سپس از SelectMany و DefaultIfEmpty برای شبیه‌سازی رفتار LeftJoin استفاده می‌کردیم.

مثال کد قبل از NET 10.:

var query = students
.GroupJoin(
departments,
student => student.DepartmentID,
department => department.ID,
(student, departmentList) => new { student, subgroup = departmentList })
.SelectMany(
joinedSet => joinedSet.subgroup.DefaultIfEmpty(),
(student, department) => new
{
student.student.FirstName,
student.student.LastName,
Department = department.Name ?? "[NONE]"
});


پس از اضافه شدن LeftJoin در NET 10.:

با معرفی متد LeftJoin در NET 10.، نوشتن کوئری‌ها بسیار ساده‌تر و خواناتر شده است. دیگر نیازی به استفاده از ترکیب چندین متد نخواهید داشت، بلکه می‌توانید به راحتی از این متد جدید استفاده کنید.

مثال کد پس از NET 10.:

var query = context.Students
.LeftJoin(
context.Departments,
student => student.DepartmentID,
department => department.ID,
(student, department) => new
{
student.FirstName,
student.LastName,
Department = department.Name ?? "[NONE]"
});


مزایای استفاده از LeftJoin در NET 10.:

- سادگی و خوانایی بیشتر: به جای استفاده از ترکیب پیچیده‌ی متدها، می‌توانید با یک متد ساده به راحتی LeftJoin را انجام دهید.
- عملکرد بهتر: به دلیل بهینه‌سازی‌های داخلی در EF Core، عملیات LeftJoin به شکل بهینه‌تری در پایگاه داده اجرا می‌شود.
- کاهش پیچیدگی کد: به جای کدهای طولانی و پیچیده، می‌توانید کدهای ساده‌تری بنویسید که فهم آن‌ها برای سایر برنامه‌نویسان راحت‌تر است.

🔗 برای مطالعه بیشتر می‌توانید به این لینک مراجعه نمایید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#هوتن_همتی (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

________
👍8🔥1
قضیه هوش مصنوعی پاچه‌خوار! (بله، درست شنیدی!)

تاحالا شده با یه ربات یا هوش مصنوعی چت کنی و حس کنی داره زیادی هندونه زیر بغلت می‌ذاره؟ 🤔 انگار هرچی می‌گی، می‌گه "به‌به! چه عالی!" یا الکی ازت تعریف می‌کنه؟ خب، به این حالت می‌گن "چاپلوسی" یا اگه خارجکی‌شو بخوای "سایکوفنسی" (Sycophancy)! جالبه بدونی که همین اتفاق اخیراً برای مدل خفن GPT-4o، که پشت خیلی از چت‌بات‌ها مثل ChatGPT هست، افتاده.

چی شده مگه؟
قضیه از این قراره که شرکت OpenAI (سازنده ChatGPT) یه آپدیت جدید برای GPT-4o داده بود بیرون، ولی زود مجبور شدن برش گردونن! چرا؟ چون مثل اینکه زیادی "پاچه‌خوار" شده بود! 😅 انگار تنظیمات جدیدش یه کم زیادی رو خوشحال کردن لحظه‌ای ما آدما تمرکز کرده بود و یادش رفته بود که بابا، همیشه هم لازم نیست الکی تعریف کنی!
حالا مگه بده هوش مصنوعی مؤدب باشه؟
خب معلومه که ادب خوبه، ولی چاپلوسی یه چیز دیگه‌ست! وقتی یه هوش مصنوعی زیادی چاپلوسی می‌کنه:
۱. حس بدی می‌ده: یه جورایی غیرطبیعیه، نه؟ انگار طرف داره فیلم بازی می‌کنه و این حس خوبی به آدم نمی‌ده.
۲. اعتماد رو می‌کُشه: مهم‌تر اینکه، وقتی می‌بینی هوش مصنوعی فقط می‌خواد تو رو راضی نگه داره، دیگه چطوری به حرفاش اعتماد کنی؟ نکنه جواب الکی بده فقط چون فکر می‌کنه تو خوشت میاد؟

خب، OpenAI چیکار می‌کنه حالا؟
خوشبختانه بچه‌های OpenAI حواسشون جمع بوده و فهمیدن قضیه چیه. الان دارن روش کار می‌کنن که درستش کنن:
۱. آموزش رو بهتر می‌کنن: دارن روش‌های آموزش مدل رو عوض می‌کنن که دیگه اینقدر چاپلوس نباشه.
۲. صادق‌ترش می‌کنن: یه سری قوانین و محافظ براش می‌ذارن که راستشو بگه، حتی اگه یه کم تلخ باشه!
۳. به حرف ما بیشتر گوش می‌دن: راه‌های بیشتری می‌ذارن که ما بتونیم مستقیم بهشون بگیم از کدوم رفتار مدل خوشمون اومده یا نه.
۴. نظر جمع رو می‌پرسن: دنبال اینن که بفهمن مردم دنیا واقعاً دوست دارن ChatGPT چطوری باشه و چجوری پیشرفت کنه.

آخرش چی؟
این ماجرای GPT-4o نشون می‌ده که ساختن هوش مصنوعی فقط کد زدن و کامپیوتر قوی داشتن نیست. باید حواسمون به این باشه که این هوش مصنوعی‌ها چطوری با ما حرف می‌زنن و چقدر می‌شه بهشون اعتماد کرد. اینکه OpenAI داره سعی می‌کنه این مشکل رو حل کنه، جای امیدواری داره. باید ببینیم تهش چی می‌شه!

خلاصه که دنیای هوش مصنوعی هنوز کلی بالا پایین داره و ساختن یه رفیق دیجیتال که هم باهوش باشه و هم صادق، کار حضرت فیله! 😉

لینک خبر :
https://openai.com/index/sycophancy-in-gpt-4o/

#AI #Chatgpt #OpenAI #هوش_مصنوعی


🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Forwarded from Software Philosophy
قابلیت‌های جدید Data Annotations در دات نت ۸

در نسخه جدید NET 8.، ویژگی‌های Data Annotations پیشرفت‌های قابل توجهی داشته‌اند. این ویژگی‌ها، کدنویسی معتبرسازی داده‌ها را بسیار ساده‌تر و تمیزتر کرده است. در ادامه به صورت گام به گام این ویژگی‌های جدید را بررسی می‌کنیم:

۱. ویژگی Length
این Annotation برای مشخص کردن حداقل و حداکثر طول رشته استفاده می‌شود.

[Length(2, 30)]
public string Name { get; set; }

[Length(2, 255)]
public string Description { get; set; }


در مثال بالا:
- مقدار Name باید حداقل ۲ و حداکثر ۳۰ کاراکتر داشته باشد.
- مقدار Description باید حداقل ۲ و حداکثر ۲۵۵ کاراکتر داشته باشد.

---

۲. ویژگی Range با پارامترهای Exclusive
ویژگی Range حالا قابلیت مشخص کردن مقادیر انحصاری را نیز دارد.

[Range(1, 1000, MinimumIsExclusive = true, MaximumIsExclusive = false)]
public decimal Price { get; set; }

در این مثال:
- مقدار Price باید بزرگتر از ۱ (به دلیل MinimumIsExclusive = true) و کوچکتر یا مساوی ۱۰۰۰ (به دلیل MaximumIsExclusive = false) باشد.

---

۳. ویژگی AllowedValues
این Annotation مقادیر مجاز برای یک خصوصیت را مشخص می‌کند.

[AllowedValues("S", "M", "L", "XL", "XXL")]
public string Size { get; set; }

در اینجا، تنها مقادیر S, M, L, XL, XXL برای Size قابل قبول هستند.

---

۴. ویژگی DeniedValues
برای مشخص کردن مقادیری که غیرمجاز هستند استفاده می‌شود.

[DeniedValues("Electronics", "Computers")]
public string Category { get; set; }

در این مثال، مقادیر Electronics و Computers برای Category ممنوع هستند.

---

۵. ویژگی Base64String
برای معتبرسازی اینکه مقدار یک رشته به صورت Base64 باشد استفاده می‌شود.

[Base64String]
public string Image { get; set; }

این اطمینان را ایجاد می‌کند که Image حاوی یک رشته معتبر Base64 است.

🔗 برای مطالعه بیشتر می‌توانید به این لینک مراجعه نمایید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#هوتن_همتی (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

__________
👍6🔥41
بیا با هم دنیای باحال داکر رو کشف کنیم! 🐳

اوکی، این عکس رو دیدی؟ انگار یه نقشه گنجه، نه؟ ولی گنجش برنامه‌های خفن و بدون دردسریه که با "داکر" می‌سازیم و اجرا می‌کنیم. داکر مثل یه جعبه‌ابزار جادوییه که به برنامه‌نویس‌ها کمک می‌کنه برنامه‌هاشون رو راحت‌تر بسازن، هرجا دلشون خواست ببرن و بدون مشکل اجرا کنن. بیا ببینیم این جعبه‌ابزار هر کدوم کارش چیه:

۱. تو و داکر (Client): فرمانده کیه؟ خودتی!
کارش چیه؟ این همون ابزاریه که تو باهاش به داکر دستور میدی. مثلاً وقتی تو ترمینال می‌نویسی docker run یا docker build، یا از اون برنامه‌های خوشگل گرافیکی استفاده می‌کنی، داری از "کلاینت داکر" استفاده می‌کنی تا با مغز متفکر داکر حرف بزنی.

۲. مغز متفکر داکر (Daemon): اون غول چراغ جادو!
کارش چیه؟ این یه برنامه خستگی‌ناپذیره که پشت صحنه همیشه حواسش به همه چی هست. تو بهش دستور میدی (از طریق کلاینت)، اونم کارای سخت رو انجام میده؛ مثل ساختن "ایمیج"، راه انداختن "کانتینر"، مدیریت شبکه‌ها و حافظه‌ها. خلاصه، کار اصلی رو این انجام میده.

۳. خونه داکر (Host): مهمونی همینجاست!
کارش چیه؟ این همون کامپیوتر یا سروریه که "دیمن داکر" روش نصب شده و داره کار می‌کنه. منابع سیستم (مثل CPU، رم، حافظه) رو در اختیار داکر قرار میده تا بتونه کانتینرها رو اجرا کنه. می‌تونه لپ‌تاپ خودت باشه یا یه سرور گنده تو شرکت.

۴. انبار بزرگ ایمیج‌ها (Registry): مثل یه کتابخونه پر از دستور پخت!
کارش چیه؟ یه مخزن آنلاین یا محلیه که "ایمیج‌"های داکر توش نگهداری میشن. معروف‌ترینش "داکر هاب" (Docker Hub) هست. کارش اینه که ایمیج‌ها رو ذخیره کنه تا تو یا بقیه بتونین اون‌ها رو دانلود کنین (pull) و استفاده کنین، یا ایمیج‌هایی که خودتون ساختین رو توش آپلود کنین (push) تا بقیه هم استفاده کنن.

۵. دستور پخت برنامه (Image): نقشه راه!
کارش چیه؟ یه قالب آماده و فقط خوندنیه که تمام دستورالعمل‌ها، کدها، کتابخونه‌ها و تنظیمات لازم برای اجرای یه برنامه رو تو خودش داره. کارش اینه که به عنوان یه الگو برای ساخت "کانتینر" استفاده بشه. هر وقت بخوای یه برنامه رو تو داکر اجرا کنی، از روی ایمیجش یه کانتینر می‌سازی.

۶. برنامه آماده به کار (Container): خودِ خودِ برنامه در حال اجرا!
کارش چیه؟ این یه نمونه در حال اجرای یه "ایمیج" هست. کارش اینه که برنامه تو رو توی یه محیط ایزوله و جدا از بقیه سیستم اجرا کنه. انگار برنامه رو گذاشتی تو یه جعبه مخصوص خودش که نه اون روی بقیه تأثیر میذاره، نه بقیه روی اون. اینطوری برنامه‌ات همه جا یکسان اجرا میشه.

۷. دفترچه دستور پخت (Dockerfile): خودت آشپز شو!
کارش چیه؟ یه فایل متنیه که توش قدم به قدم می‌نویسی چطوری یه "ایمیج" داکر باید ساخته بشه. کارش اینه که فرآیند ساخت ایمیج رو اتوماتیک کنه. تو بهش میگی از چه ایمیج پایه‌ای استفاده کن، چه فایل‌هایی رو کپی کن، چه دستوراتی رو اجرا کن و... داکر هم طبق همین دستورالعمل، ایمیجت رو می‌سازه.
یه کوچولو کد (مفهومی):

        # پایه کارمون چیه؟ مثلا یه نسخه سبک از لینوکس با نود جی‌اس
FROM node:18-alpine
# فایلای برنامه‌ام رو بریز توش
COPY . .
# برنامه‌ام با این دستور شروع به کار می‌کنه
CMD ["node", "app.js"]

۸. سیم‌های ارتباطی (Network): چطوری با هم حرف بزنن؟
کارش چیه؟ داکر برای کانتینرهات شبکه‌های مجازی درست می‌کنه. کار این شبکه‌ها اینه که به کانتینرها اجازه بدن با همدیگه ارتباط برقرار کنن، یا به شبکه میزبان (و از طریق اون به اینترنت) وصل بشن. بدون اینا، کانتینرهات مثل جزیره‌های دورافتاده میشن!

۹. گاوصندوق اطلاعات (Volume): اطلاعاتت رو اینجا امن نگه دار!
کارش چیه؟ وقتی یه کانتینر پاک میشه، اطلاعات توش هم معمولاً از بین میره. "والیوم" یه راه حله که اطلاعات مهم برنامه (مثل دیتابیس یا فایل‌های کاربرا) رو به صورت پایدار و جدا از خود کانتینر ذخیره کنی. کارش اینه که حتی اگه کانتینر رو پاک کردی و دوباره ساختی، اطلاعاتت سر جاش بمونه.

۱۰. ابزارهای کمکی (Plugins): داکرت رو خفن‌تر کن!
کارش چیه؟ اینا یه سری افزونه هستن که می‌تونی به داکر اضافه کنی تا قابلیت‌ها و امکاناتش بیشتر بشه. مثلاً پلاگین‌هایی برای مدیریت بهتر شبکه، ذخیره‌سازی پیشرفته‌تر، یا امنیت بیشتر. کارشون اینه که داکر رو برای نیازهای خاص تو، توسعه بدن.

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Forwarded from تهلاگ / Tehlug
ثبت‌نام رویداد ۲۷۹ تهلاگ آغاز شد! 🎊

رویداد شماره ۲۷۹ تهلاگ با حمایت نوبیتکس و افراشاپ، روز پنجشنبه ۲۵ اردیبهشت‌ماه از ساعت ۱۲ تا ۱۸ در دانشگاه صنعتی امیرکبیر برگزار می‌شود.

اطلاعات بیشتر و ثبت‌نام:

🔗 evand.com/events/tehlug279

@TehranLUG
🔥2
امروز می‌خوام یه خبر باحال براتون بذارم: داکر یه فیچر تازه به اسم Docker Model Runner درآورده! 
کوین ویتک (یه از بزرگان مهندسی داکر) توی یه ویدیو خفن معرفیش کرد. 
اگه هم با داکر کار می‌کنید هم عاشق مدل‌های هوشمند (مثل ChatGPT) هستید، این داستان مخصوص شماس!

---

خب این Model Runner چیه؟ قصه‌ش چیه؟ 
ساده بگم: می‌تونی روی لپتاپ خودت، مدل‌های هوشمند رو اجرا کنی... درست مثل وقتی که یه کانتینر معمولی رو راه می‌ندازی! 
حالا چرا محلی؟ دلایل خفنی داره: 
- حریم خصوصیت محفوظ میمونه (دیتات پیش خودته!) 
- تو توسعه سریع‌تر پیش می‌ری 
- دیگه نیازی نیست مدام آنلاین باشی 

---

چطوری ازش استفاده کنم؟ قدم‌به‌قدم بریم جلو: 
۱. یه نکتهٔ مهم: فعلا فقط روی سیستم‌های اپل با تراشه M1/M2/M3 کار می‌کنه (نسخهٔ بتاست). 
داکر داره زور می‌زنه به‌زودی لینوکس و ویندوز رو هم بیاره! 

۲. اجراش خیلی باحاله: تو ترمینال فقط بزن: 
docker model run aism/360m-4bit-kmeans  # (اسم یه مدل نمونه)


بعد دکمه انتر رو بزن... کار تمومه!

۳. مدل رو از کجا میاره؟ خودکار از Docker Hub دانلودش می‌کنه... درست مثل عکس‌های داکر! 

۴. حالا وقت چته! بعد از اجرا، یه پنجره چت باز میشه... می‌تونی مستقیم بپرسیش: "هی هوش مصنوعی! فلان چیز چطوری کار می‌کنه؟"  

۵. اگه مدل اضافه کردی: برای لیست کردنشون بزن: 
docker model list


تا ببینی کدوم‌ها رو داری! 

۶. نکتهٔ جالب‌تر: می‌تونی این مدل‌های محلی رو توی برنامه‌هات هم استفاده کنی! 
مثلاً توی یه برنامه Next.js، به جای وصل شدن به OpenAI، به همون مدلی که روی سیستم خودت راه انداختی وصل میشی! 
رازش چیه؟ تو کدت فقط یه خط مثل این اضافه می‌کنی: 
baseURL: 'https://model-runner.docker.internal:engines/v1'


(این آدرس، همون سرور استنتاج داکر روی سیستم خودتِ!) 

منبع:
https://youtu.be/rGGZJT3ZCvo?si=699qJrXheVTvA13U

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥1
باهم یک تکنولوژی انقلابی به نام Model Context Protocol یا MCP را برسی کنیم. 
این استاندارد همانند یک "مترجم جهانی" برای مدل‌های زبانی عمل می‌کند!

---

درک مفهوم MCP: 
ایده اصلی این است: MCP دستیاران هوشمند (LLMها) را به دنیای واقعی متصل می‌کند! 
کاربردش این است: دسترسی به داده‌های زنده، ابزارها و سرویس‌ها بدون محدودیت! 
مثلاً: 
• مدل می‌تواند مستقیماً با GitHub صحبت کند 
• به داده‌های زندهٔ کسب‌وکار دسترسی دارد 
• حتی با Figma برای طراحی تعامل می‌کند!

---

اجزای کلیدی سیستم MCP: 
۱. هاست‌ها: نرم‌افزارهایی مثل VS Code یا Copilot که از MCP استفاده می‌کنند. 
۲. سرورها: سرویس‌های سبکی که قابلیت‌های خاص ارائه می‌دهند (مثل اتصال به دیتابیس). 
۳. کلاینت‌ها: معمولاً همان هاست‌ها که با سرورها ارتباط برقرار می‌کنند.

---

شگفتی‌های MCP: 
انعطاف فوق‌العاده دارد: 
• اجرا روی محیط‌های مختلف (محلی، کانتینری، ابری) 
• پشتیبانی از Azure Functions و سرویس‌های مایکروسافت 
مزیت بزرگ: استاندارد اوپن‌سورس است که توسط Anthropic آغاز شد! 
نیاز نیست نگران امنیت باشید: از OAuth 2.1 پشتیبانی می‌کند.

---

نمونه‌های عملی: 
در ویدیو نشان داده شد: 
• ارتباط VS Code با issuesهای GitHub 
• کار با داده‌های سفارشی (مثلاً یک دیتاست میمون‌ها!) 
• ادغام با Figma برای طراحی رابط کاربری 
جالب‌تر: خودتان می‌توانید سرور MCP بسازید با SDKهای #C!

---

روش‌های ارتباطی: 
سرورها از طریق این روش‌ها صحبت می‌کنند: 
Standard IO برای اجرای محلی 
SSE/HTTP برای ارتباطات ابری 
ابزارهایی مثل Azure API Center هم تبدیل APIهای قدیمی را آسان می‌کنند.

---

🔍 نکته کلیدی: 
این پروتکل مکمل RAG است نه جایگزین آن! 
در واقع قدرت افزوده‌ای به مدل‌های زبانی می‌دهد.

---

منبع:
https://youtu.be/cfwooBzzHBs?si=ro_mYcINJEi4I5ZB


🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
چقدر این نگرش درستی که #جادی به زندگی داره. اگر ما هر روز به این دید برسیم اگر شده فقط کمی به اندازه یک کم بیشتر از هیچ تلاش کنیم و استمرار داشته باشیم در طول زمان چقدر میتونه تاثیرات موثر و عمیقی در زندگی و رشد خودمون داشته باشه.

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥1👏1
ابزار n8n: دستیار رایگان و همه‌فن‌حریف شما برای خداحافظی با کارهای تکراری!

تاحالا شده از انجام کارهای تکراری و کپی-پیست‌های بی‌وقفه خسته بشی؟ مثلاً هر بار که مشتری جدیدی فرم پر می‌کنه، مجبور باشی اطلاعاتش رو دستی وارد فایل اکسل کنی، بعد بهش ایمیل بزنی و به تیم فروش هم خبر بدی؟

خب، با n8n (بخوانید: اِن-اِیت-اِن) می‌تونی با همه این کارها خداحافظی کنی!

ابزار n8n اصلاً چی هست؟
خیلی ساده، n8n یک ابزار رایگان و متن‌بازه که مثل یک چسب همه‌کاره، اپلیکیشن‌ها و سرویس‌های مختلف (مثل تلگرام، گوگل شیتس، ایمیل، اینستاگرام و...) رو به هم وصل می‌کنه. تو بهش میگی چه کاری رو، بعد از چه اتفاقی، به صورت خودکار انجام بده.
جذابیتش اینه که لازم نیست برنامه‌نویس باشی! با یک محیط گرافیکی باحال، قطعه‌های پازل (که بهشون میگن نود Node) رو کنار هم می‌چینی و گردش کار اتوماتیک خودت رو می‌سازی.

مهم‌ترین فرقش با رقبای گرون‌قیمت اینه که می‌تونی روی سرور خودت نصبش کنی. این یعنی:
هزینه‌هات خیلی خیلی کمتر می‌شه. (عملاً رایگانه!)
اطلاعاتت دست خودته و جای دیگه‌ای نمیره، پس امنیتش بالاست.

چند تا مثال باحال از کارهایی که n8n برات انجام می‌ده:
۱. ربات تلگرامی شخصی خودت رو بساز!
تصور کن یه ربات داری که وقتی کسی بهش پیام می‌ده، کلمات کلیدی مثل "قیمت" یا "پشتیبانی" رو تشخیص می‌ده و جواب آماده براش می‌فرسته. یا حتی می‌تونه اسم یه ارز دیجیتال رو از کاربر بگیره، قیمت لحظه‌ایش رو از اینترنت پیدا کنه و به کاربر بگه! ساختن همچین چیزی با n8n فوق‌العاده ساده‌ است.
این ویدیوها رو ببین تا باورت بشه چقدر راحته:
ویدیوی آموزشی ساخت ربات تلگرام با n8n (منبع اول)

https://youtu.be/Ey18PDiaAYI?si=B7PMlnBt-fC6KC3t

ویدیوی آموزشی پیشرفته‌تر (منبع دوم)

https://youtu.be/AURnISajubk?si=vSJ8OL4GKQ6b3oGC

۲. مدیریت مشتری مثل آب خوردن!
یک گردش کار طراحی کن که به محض اینکه کاربری فرمی رو در سایتت پر کرد:
اطلاعاتش رو مستقیم توی یک گوگل شیتس ذخیره کنه.
یه ایمیل خوشامدگویی خوشگل و شخصی‌سازی شده براش بفرسته.
و یه نوتیفیکیشن تو تلگرام یا اسلک برای تیم فروش بفرسته که «بجنبید، مشتری جدید داریم!»
۳. مدیریت شبکه‌های اجتماعی بدون دردسر
تنظیم کن که هر وقت پست جدیدی تو وبلاگت منتشر کردی، n8n به صورت خودکار خلاصه‌اش رو همراه با لینک، توی توییتر، لینکدین و کانال تلگرامت منتشر کنه. دیگه لازم نیست خودت رو درگیر باز کردن تک‌تک اپ‌ها کنی!

خلاصه کلام:
ابزار n8n یک آچار فرانسه دیجیتاله که کارهای تکراری و حوصله‌سربر رو از دوشت برمی‌داره تا تو به کارهای مهم‌تر و خلاقانه‌تر برسی. اگه دنبال یه راه حل قدرتمند، رایگان و امن برای اتوماتیک کردن کارهاتی، حتماً یه سر به دنیای n8n بزن!

تازه ویدیو جادی هم هست ☺️🌹
https://youtu.be/d6RzGhpV1Vg?si=zpzKE1H6Jnp1fVoU

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2🔥1👏1
Forwarded from ilmah.psy
🧠 جنگ فقط در میدان اتفاق نمی‌افته، در ذهن ما هم شروع می‌شه…
در روزهایی که ایران درگیر تنش‌های جدی با اسرائیله و اخبار پر از خشونته، خیلی از ما احساس ناامنی می‌کنیم، حتی اگه از میدان جنگ دور باشیم.

از نگاه روان‌شناسی، این حالت‌ها کاملاً طبیعی‌ان:

🔻 اضطراب مداوم
🔻 فکر کردن به آینده‌ی مبهم
🔻 احساس خشم یا بی‌قدرتی
🔻 بی‌خوابی یا کابوس‌های شبانه
🔻 وسواس در پیگیری اخبار

📌 چند نکته برای مراقبت روانی در روزهای جنگی:
1. محدود کن مصرف اخبار
یک یا دو بار در روز اخبار رو از منبع معتبر بخون. بمباران خبری فقط اضطراب رو تشدید می‌کنه.
2. برگرد به بدن و الآنت
نفس عمیق، حرکات آرام، ورزش ملایم. اینا کمک می‌کنه ذهن از آینده‌پریشی فاصله بگیره.
3. درباره احساساتت حرف بزن
با دوست قابل اعتماد، یا حتی در دفترچه‌ات. پنهان‌کاری، ترس رو قوی‌تر می‌کنه.
4. آگاهی جمعی مهمه، ولی وحشت جمعی نه
فرق بین مطلع بودن و غرق شدن در ترس رو یادمون نره.
5. به ذهن خودت حق بده بترسه… ولی تنهاش نذار.

🕊️ تو این روزها، روان ما بیشتر از همیشه به مراقبت نیاز داره.


@ilmahpsy
8
💡 راز موفقیت در گوگل: آیا فقط مدرک و علم کافیست؟ 🤔

شاید شنیده باشید که گوگل زمانی فقط دنبال جذب نخبه‌های علوم کامپیوتر از بهترین دانشگاه‌های دنیا بود. اما یک تحقیق داخلی و بلندمدت به نام "پروژه اکسیژن" (Project Oxygen)، نتایج شگفت‌انگیزی رو فاش کرد!

گوگل با بررسی دقیق داده‌های مربوط به استخدام، ترفیع و حتی اخراج کارمندانش، متوجه شد که 8 ویژگی برتر در افراد موفق این شرکت، اصلاً ربطی به مدرک تحصیلی یا دانش فنی صرف نداره! 🤯

در واقع، تمام این 8 ویژگی برجسته، از جنس مهارت‌های نرم (Soft Skills) بودند. چیزهایی مثل:
* توانایی بالای رهبری
* مهارت کار تیمی مؤثر
* قدرت برقراری ارتباط قوی
* اخلاق کاری بالا
* توانایی کوچینگ و منتورینگ
* ایجاد محیطی فراگیر برای تیم
* داشتن استراتژی و چشم‌انداز روشن

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

این یافته‌ها نه تنها دیدگاه گوگل رو نسبت به استخدام تغییر داد، بلکه نشون داد که سرمایه‌گذاری روی توسعه مهارت‌های نرم، چقدر می‌تونه در مسیر شغلی و شخصی شما تأثیرگذار باشه!

https://www.betterup.com/blog/project-oxygen

#گوگل #پروژه_اکسیژن #مهارت_نرم #موفقیت #شغل #توسعه_فردی #کار_تیمی


🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
6
معرفی کوتاه پروژه PersianDate برای برنامه‌نویسان سی‌شارپ

پروژه PersianDate ابزاری ضروری برای برنامه‌نویسان سی‌شارپ (.NET) است که نیاز به کار با تاریخ شمسی (جلالی) دارند. این کتابخانه به شما امکان می‌دهد تا به سادگی تاریخ‌های میلادی را به شمسی تبدیل کرده و برعکس.

قابلیت‌های کلیدی:
۱. تبدیل دوطرفه: تاریخ میلادی را به شمسی و شمسی را به میلادی تبدیل کنید.

۲. پشتیبانی کامل از .NET: با DateTime و DateTimeOffset کار می‌کند و با نسخه‌های .NET 5.0 تا 9.0 سازگار است.

۳. دسترسی آسان: اجزای تاریخ شمسی (سال، ماه، روز) و نام روزها/ماه‌ها را استخراج کنی.

۴. استفاده از Extension Methods: با متدهایی مانند .ToShamsiDate() کار با تاریخ را فوق‌العاده ساده می‌کند.

با استفاده از PersianDate می‌توانید به راحتی مدیریت تاریخ شمسی را در برنامه‌های ویندوزی، وب یا موبایل خود پیاده‌سازی کنید.
برای شروع، کافیست پکیج را از NuGet نصب کنید:
dotnet add package PersianDateShamsi
لینک پروژه :
https://github.com/hootanht/PersianDate

@DevTwitter | <Hootan HT/>
11👍3
خبر فوری از OpenAI: Codex CLI به Rust مهاجرت می‌کند!

شرکت OpenAI در حال بازنویسی اساسی ابزار خط فرمان (CLI) Codex خود است؛ از TypeScript به Rust!
هدف اصلی این تغییر، ارتقاء چشمگیر عملکرد و بهبود تجربه توسعه‌دهندگان است.

چرا Rust؟
این تصمیم بر اساس چندین مزیت کلیدی Rust گرفته شده است:
* عملکرد بی‌نظیر: Rust با مدیریت حافظه عالی و عدم وجود "جمع‌آوری زباله" (Garbage Collection)، سرعت و کارایی بالاتری را ارائه می‌دهد.

* نصب آسان‌تر: دیگر نیازی به Node v22+ نیست، که فرآیند نصب را برای بسیاری از توسعه‌دهندگان ساده می‌کند.

* امنیت بومی پیشرفته: اتصالات امنیتی بومی قوی‌تر، از دیگر مزایای این تغییر است.

* انعطاف‌پذیری معماری: Rust به OpenAI اجازه می‌دهد تا یک "پروتکل ارتباطی" توسعه دهد، که به توسعه‌دهندگان امکان می‌دهد Codex CLI را با زبان‌های مختلفی مانند TypeScript/JavaScript و Python گسترش دهند.

فؤاد متین، از تیم فنی OpenAI، تأیید کرده که نسخه TypeScript به تدریج کنار گذاشته خواهد شد و تمرکز بر این است که نسخه بومی Rust به زودی پیش‌فرض شود.
با وجود اینکه نسخه Rust هنوز در حال توسعه است، بازخوردهای اولیه "فوق‌العاده روان" و بسیار مثبت بوده است. هدف نهایی این بازنویسی، تبدیل Codex CLI از یک ابزار ساده به یک پلتفرم قدرتمند، انعطاف‌پذیر، و قابل توسعه برای اتوماسیون هوش مصنوعی است.

این حرکت نشان‌دهنده یک گرایش بزرگ‌تر در صنعت فناوری به سمت توسعه بومی و استفاده از ابزارهایی مانند Rust و Go برای ایجاد نرم‌افزارهای کارآمدتر و قابل نگهداری‌تر است.

🔗 برای جزئیات بیشتر، مقاله کامل را بخوانید:
https://analyticsindiamag.com/global-tech/openai-is-ditching-typescript-to-rebuild-codex-cli-with-rust/

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍1
Forwarded from thisisnabi.dev [Farsi]
🎗 رایگان برای همدلی

در روزهایی که شرایط سخت‌تر از همیشه شده، بسیاری از عزیزانم به‌خاطر جنگ و بحران‌های اخیر، شغل خودشون رو از دست دادن.

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

🌱 از دل بحران، فرصت بسازیم.

اگر شما یا دوست‌تان در این شرایط قرار دارید، کافیه فقط آدرس gmail خودتون رو برام بفرستید @thisisnabi تا بهتون دسترسی بدم.

با عشق،
نبی کرم پور

@thisisnabi_dev
18👏2
Forwarded from .NET Fun
حرکت قشنگ نبی❤️
برای حمایت از این پویش زیبا ثبت نام دوره Clean Architecture برای دوستانی که به تازگی تعدیل شدند این ماه رایگان خواهد بود
به آیدی بنده @bob_tm پیام بدید
به امید آینده ای زیبا و روشن برای هممون
12🔥2
سلام دوستان! می‌خوام یه پست باحال براتون درباره یه پوستر آموزشی جذاب بنویسم که به تازگی دیدم. این پوستر با موضوع "۵ پروژه عملی برای تقویت مهارت‌های کدنویسی" طراحی شده و به زبان انگلیسیه، با تمرکز روی فناوری .NET. اگه دنبال ایده‌های کاربردی برای تمرین برنامه‌نویسی هستید، این پوستر دقیقاً همون چیزیه که لازم دارید!

۵ پروژه پیشنهادی:
پوستر ۵ پروژه رو توی کادرهای جدا و شماره‌دار معرفی کرده که هر کدوم توضیح کوتاه و فناوری‌های مورد استفاده‌شون رو دارن:

1. Task Management API
- توضیح: یه API برای مدیریت وظایف با احراز هویت JWT و عملیات CRUD (ایجاد، خوندن، به‌روزرسانی و حذف).
- فناوری‌ها: ASP.NET Core، JWT، Entity Framework.
- جایگاه: کادر قرمز رنگ، بالا سمت چپ.

2. Real-time Chat App
- توضیح: یه اپلیکیشن چت زنده با پشتیبانی از چند اتاق و نمایش حضور کاربران.
- فناوری‌ها: SignalR، WebSockets، Real-time.
- جایگاه: کادر آبی، کنار کادر شماره ۱.

3. E-commerce Catalog
- توضیح: یه کاتالوگ تجارت الکترونیک با جستجوی محصولات، سبد خرید و سیستم پرداخت.
- فناوری‌ها: MVC، Database، Search.
- جایگاه: کادر زیر شماره ۱، سمت چپ.

4. Background Processing
- توضیح: سیستم پردازش پس‌زمینه برای پردازش فایل‌ها، ارسال ایمیل و همگام‌سازی داده‌ها.
- فناوری‌ها: Windows Service، Queues، Dependency Injection (DI).
- جایگاه: کادر کنار شماره ۳، سمت راست.

5. Desktop Inventory Manager
- توضیح: یه مدیر موجودی دسکتاپ با اسکن بارکد، گزارش‌گیری و export داده‌ها.
- فناوری‌ها: WPF، MVVM، Data Binding.
- جایگاه: کادر زرد رنگ، پایین پوستر.

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👏7👍21🔥1
📣 تحولی در دنیای هوش مصنوعی! xAI با Grok-4 و Grok-4 Heavy همه را شگفت‌زده کرد!

امروز، شرکت xAI در رویدادی بزرگ از جدیدترین مدل‌های هوش مصنوعی خود، Grok-4 و Grok-4 Heavy، رونمایی کرد و رسماً وارد رقابت برای کسب عنوان قدرتمندترین مدل هوش مصنوعی جهان شد.

این مدل‌ها نه تنها پیشرفت‌های چشمگیری نسبت به نسل‌های قبلی خود نشان می‌دهند، بلکه در بنچمارک‌های معتبر، رقبای سرسختی مانند GPT-4o و Gemini 2.5 Pro را با اختلاف قابل توجهی پشت سر گذاشته‌اند.

📊 سلطه بر بنچمارک‌ها با اختلاف چشمگیر!
همانطور که در نمودارهای منتشر شده از سوی xAI دیده می‌شود، Grok-4 و به‌ویژه نسخه قدرتمندتر آن، Grok-4 Heavy، در مجموعه‌ای از بنچمارک‌های کلیدی (با قابلیت استفاده از ابزار یا tool calling) عملکردی بی‌نظیر داشته‌اند:

*بنچمارک GPQA: امتیاز خیره‌کننده 88.9% توسط Grok-4، که نشان از برتری آن در پاسخ به سوالات پیچیده دارد.

*بنچمارک AIME25 & HMMT25: کسب امتیاز کامل 100% در این بنچمارک‌های دشوار ریاضی، قدرت استدلال منطقی این مدل را به رخ می‌کشد.

*بنچمارک LCB (Jan-May): با امتیاز 79.4%، گراک توانایی خود در درک و پردازش زبان طبیعی را به نمایش گذاشته است.
اما شاهکار بزرگ گراک در یکی از سخت‌ترین آزمون‌های موجود برای سنجش هوش مصنوعی رقم خورد:

🏆* بنچمارک ARC-AGI: در این بنچمارک که به عنوان معیاری برای سنجش هوش مصنوعی عمومی (AGI) شناخته می‌شود، Grok-4 با کسب امتیاز 15.9% در نسخه دوم (v2 Semi Private)، رتبه اول را با اختلافی فاحش از سایر مدل‌ها به دست آورد و جهشی بزرگ در این زمینه به ثبت رساند.

🧠 معماری نوآورانه: سیستم چندعاملی (Multi-Agent System)
یکی از دلایل اصلی این عملکرد فوق‌العاده، معماری جدید و نوآورانه گراک است. این مدل از یک سیستم چندعاملی بهره می‌برد. به این معنی که چندین "ایجنت" هوشمند به صورت موازی روی یک مسئله کار می‌کنند، راه‌حل‌های خود را با یکدیگر مقایسه کرده و در نهایت بهترین و دقیق‌ترین پاسخ را ارائه می‌دهند. این رویکرد، توانایی حل مسئله و استدلال مدل را به سطح جدیدی ارتقا داده است.

😀 پلن SuperGrok Heavy برای حرفه‌ای‌ها

برای کاربرانی که به نهایت قدرت این مدل نیاز دارند، xAI از پلن جدید "SuperGrok Heavy" با هزینه ماهانه ۳۰۰ دلار رونمایی کرد. این پلن دسترسی مستقیم به قدرتمندترین نسخه یعنی Grok-4 Heavy را فراهم می‌کند.

🔮 نگاه به آینده: مدل‌های ویدئویی و کدنویسی در راهند!
خبرهای هیجان‌انگیز xAI به همین‌جا ختم نمی‌شود:

* مدل ویدئویی: این شرکت اعلام کرد که در حال آموزش مدل پیشرفته پردازش ویدئو خود است.

*مدل Grok-4 Code: تنها چند هفته دیگر، نسخه تخصصی گراک برای کدنویسی با نام Grok-4 Code عرضه خواهد شد که promete انقلابی در این حوزه باشد.
بدون شک، با معرفی Grok-4، رقابت در دنیای هوش مصنوعی وارد مرحله جدید و بسیار هیجان‌انگیزی شده است. باید منتظر ماند و دید که شرکت‌های دیگر چگونه به این قدرت‌نمایی xAI پاسخ خواهند داد!

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2😱2🔥1👏1
قابلیت HTTP Headers در C# چطوریه؟

امروز می‌خوایم یه موضوع ساده ولی فوق‌العاده کاربردی رو با هم مرور کنیم: کار با هدرهای HTTP در C# با استفاده از HttpClient.

هدرها (Headers) بخش مهمی از هر درخواست و پاسخ HTTP هستن و اطلاعات اضافی مثل کلیدهای دسترسی (API Key)، نوع محتوا (Content-Type) و... رو منتقل می‌کنن. توی این پست ۳ سناریوی اصلی رو با هم می‌بینیم:

۱. اضافه کردن هدر به تمام درخواست‌ها (Default Headers)

وقتی یه سری اطلاعات مثل ApiKey یا Authorization Token باید توی تمام درخواست‌هایی که به یک سرور خاص ارسال میشه وجود داشته باشه، بهترین راه استفاده از DefaultRequestHeaders هست. اینطوری یک بار هدر رو تنظیم می‌کنید و برای همیشه (تا زمانی که اون HttpClient زنده است) استفاده میشه.

مثال:
// Create a single instance of HttpClient for your application
HttpClient client = new();

// Add an API Key that will be sent with EVERY request made by this client
client.DefaultRequestHeaders.Add("ApiKey", "YourSuperSecretKeyFromApi");

// Now, any request like client.GetAsync, client.PostAsync, etc. will have this header.
var response = await client.GetAsync("https://api.example.com/data");

۲. اضافه کردن هدر فقط به یک درخواست خاص
گاهی وقت‌ها لازمه یک هدر رو فقط برای یک درخواست خاص ارسال کنید. مثلاً یک هدر برای ردیابی (tracing) یا کشینگ. در این حالت، هدر رو مستقیماً به شیء HttpRequestMessage اضافه می‌کنیم.

مثال:
HttpClient client = new();
var url = "https://api.example.com/data";

// Create a specific request message
HttpRequestMessage request = new(HttpMethod.Get, url);

// Add a header ONLY for this specific request
request.Headers.Add("X-Custom-ID", "some-unique-value-123");

// Send the request
HttpResponseMessage response = await client.SendAsync(request);

۳. خوندن هدر از پاسخ سرور (Response)
بعد از اینکه درخواستی رو ارسال کردید، سرور در پاسخ (Response) ممکنه هدرهای مهمی رو برگردونه. مثلاً اطلاعات مربوط به محدودیت تعداد درخواست (Rate Limiting) یا جزئیات صفحه‌بندی (Pagination). برای خوندن این هدرها به شکل ایمن (که اگر هدر وجود نداشت برنامه کرش نکنه)، از متد TryGetValues استفاده می‌کنیم.

مثال:
// Assuming 'response' is the HttpResponseMessage from the server
string apiKey = string.Empty;

// Try to get the value of the "ApiKey" header
if (response.Headers.TryGetValues("ApiKey", out var keyValues))
{
// If the header exists, get the first value.
// keyValues is an IEnumerable<string>
apiKey = keyValues.FirstOrDefault();
}

Console.WriteLine($"API Key from response: {apiKey ?? "Not Found"}");

💡 نکته کلیدی: از DefaultRequestHeaders برای مقادیر ثابت مثل کلید API و از request.Headers برای مقادیر داینامیک که در هر درخواست ممکنه تغییر کنن استفاده کنید تا کدتون تمیزتر و بهینه‌تر باشه.

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8👏4👍1🎉1