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


🆔 @dotnetcode
Download Telegram
Forwarded from Learning With M (Masoud DaneshPour)
امروز می‌خوام در مورد Exchange ها در RabbitMQ براتون بگم. Exchange ها مثل پستچی‌های پیام‌رسان عمل می‌کنن و تصمیم می‌گیرن پیام‌ها رو چطوری به صف‌ها (Queue) برسونن. بیاید ببینیم هر کدوم چیکار می‌کنن:

Direct Exchange 🎯
کارش چیه؟
پیام‌ها رو فقط به صف‌هایی می‌فرسته که کلید مسیریابی (Routing Key) دقیقاً همون چیزی باشه که تعیین کردیم.

کی استفاده کنیم؟
وقتی می‌خوایم پیام‌ها رو دقیقاً به یک صف خاص برسونیم. مثلاً پیام‌های "سفارش جدید" فقط به صف "پردازش سفارش" برن.

مثال:
Routing Key: order.created ➡️ Queue: order_queue

Fanout Exchange 📢
کارش چیه؟
پیام‌ها رو به همه صف‌های متصل شده می‌فرسته، بدون توجه به کلید مسیریابی.

کی استفاده کنیم؟
وقتی می‌خوایم یک پیام رو به چندین صف ارسال کنیم. مثلاً ارسال اطلاع‌رسانی به همه گروه های کاربران.

مثال:
پیام: "تخفیف ویژه!" ➡️ Queue: user_group1_queue, user_group2_queue, user_group3_queue

Topic Exchange 🌐
کارش چیه؟
پیام‌ها رو بر اساس الگوهای کلید مسیریابی ارسال می‌کنه. مثلاً می‌تونیم از wildcard (* و #) استفاده کنیم.

کی استفاده کنیم؟
وقتی می‌خوایم پیام‌ها رو بر اساس موضوع‌های مختلف دسته‌بندی کنیم. مثلاً خطاهای سیستم (error.*) یا لاگ‌های عمومی (log.#).

مثال:
Routing Key: error.database ➡️ Queue: error_queue
👍21
Forwarded from Yaser Moradi
سلام به همگی!
لینک پادکست اخیرم تو رادیو بیدار

چرا C# .NET یکی از بهترین گزینه‌ها، هم برای Cross platform development و هم full-stack development هست؟
https://www.youtube.com/watch?v=8pS0yCrVsT4&t=433s

امکانات پروژه اپن سورس bit Boilerplate که کمک میکنه به داشتن یه تجربه عالی برای زدن هر نوعی از اپ با C#, HTML, CSS
https://www.youtube.com/watch?v=8pS0yCrVsT4&t=1408s

نحوه شروع به کار عملی با bit Boilerplate
https://www.youtube.com/watch?v=8pS0yCrVsT4&t=2402s



چند دمو از خروجی bit Boilerplate


سایت SEO-Friendly مبتنی بر Blazor WebAssembly با حجم کمتر از ۲.۵ مگ
https://bitplatform.dev

یه ادمین پنل خفن برای Android, iOS, Windows, macOS, Web
https://adminpanel.bitplatform.dev

کلی کمپوننت باحال و سریع و سبک برای ‌Blazor
https://blazorui.bitplatform.dev

نسخه خیلی اولیه از یه E-Commerece مبتنی بر Blazor WebAssembly، سریع و سبک
https://sales.bitplatform.dev
6
Forwarded from refhub
مهندسان عزیز روزتون مبارک
به مناسبت روز مهندس، یه کد تخفیف 30 درصدی براتون گذاشتیم
اولش با SOFTDAY شروع میشه، اما برای ادامه ش باید معمای زیر رو حل کنید :
یه برنامه‌نویس داره یه تابع رمزنگاری می‌نویسه. این تابع یه رشته می‌گیره و سه مرحله داره:

1- جمع مقدار ASCII همه‌ی کاراکترهای رشته رو حساب می‌کنه.
2- عدد به‌دست‌اومده رو در خودش ضرب می‌کنه (به توان ۲ می‌رسونه).
3- از نتیجه، یه عدد فیبوناچی پیدا می‌کنه که ازش بزرگ‌تر یا مساویشه، بعد اختلافشون رو حساب می‌کنه.

اگه ورودی تابع کلمه‌ی 'Debug' باشه، خروجی عددش چیه؟ این عدد، سه رقم آخر کد تخفیفت می‌شه!

با ❤️ رفهاب
https://RefHub.ir
👍1
امروز می‌خوام یه گنجینه‌ی واقعی رو بهتون معرفی کنم. اگر دنبال یادگیری مهارت‌های جدید تو دنیای تکنولوژی هستید، این ریپوها مال شماست!
مایکروسافت یه عالمه دوره‌ی رایگان و جذاب برای مبتدی‌ها تدارک دیده، اونم تو زمینه‌های مختلف! بیاین یه نگاهی بهشون بندازیم:

هوش مصنوعی:
هوش مصنوعی برای مبتدیان (AI-For-Beginners): صفر تا صد هوش مصنوعی رو یاد بگیر!
https://github.com/microsoft/AI-For-Beginners

هوش مصنوعی مولد برای مبتدیان (generative-ai-for-beginners): دنیای جذاب هوش مصنوعی مولد رو کشف کن.
https://github.com/microsoft/generative-ai-for-beginners

هوش مصنوعی مولد برای مبتدیان با دات نت (generative-ai-for-beginners-dotnet): هوش مصنوعی مولد با دات نت رو تجربه کن.
https://github.com/microsoft/Generative-AI-for-beginners-dotnet

ایجنتهای هوش مصنوعی برای مبتدیان (ai-agents-for-beginners): ساختن ایجنت های هوش مصنوعی رو یاد بگیر.
https://github.com/microsoft/ai-agents-for-beginners

کتاب آشپزی سمانتیک کرنل (SemanticKernelCookBook): با سمانتیک کرنل کار کن.
https://github.com/microsoft/SemanticKernelCookBook

توسعه وب:
توسعه وب برای مبتدیان (Web-Dev-For-Beginners): از صفر تا یه توسعه‌دهنده‌ی وب حرفه‌ای!
https://github.com/microsoft/Web-Dev-For-Beginners

آشنایی با جاوا اسکریپت و نود برای مبتدیان (beginners-intro-javascript-node): جاوا اسکریپت و نود جی اس رو یاد بگیر.
https://github.com/microsoft/beginners-intro-javascript-node

یادگیری ماشین:
یادگیری ماشین برای مبتدیان (ML-For-Beginners): یادگیری ماشین رو ساده و جذاب یاد بگیر.
https://github.com/microsoft/ML-For-Beginners

علم داده:
علم داده برای مبتدیان (Data-Science-For-Beginners): علم داده رو با مثال‌های عملی یاد بگیر.
https://github.com/microsoft/Data-Science-For-Beginners

اینترنت اشیا:
اینترنت اشیا برای مبتدیان (IoT-For-Beginners): وارد دنیای هیجان‌انگیز اینترنت اشیا شو!
https://github.com/microsoft/IoT-For-Beginners

بقیه موارد:
بش برای مبتدیان (bash-for-beginners): کار با خط فرمان لینوکس رو یاد بگیر.
https://github.com/microsoft/bash-for-beginners

پلتفرم پاور برای مبتدیان (Power-Platform-For-Beginners): با پلتفرم پاور برنامه نویسی بدون کد رو تجربه کن.
https://github.com/microsoft/Power-Platform-For-Beginners

سری آموزش راست برای مبتدیان (beginners-series-rust): برنامه نویسی با زبان راست رو یاد بگیر.
https://github.com/microsoft/beginners-series-rust


سری آموزش بلاکچین برای مبتدیان (beginners-series-blockchain): با بلاکچین اشنا بشو.

https://github.com/microsoft/beginners-series-blockchain

این ریپوها پر از مطالب آموزشی، پروژه‌های عملی و تمرین‌های جذابن.

#یادگیری #برنامه_نویسی #هوش_مصنوعی #مایکروسافت #رایگان
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
“آنچه که در جستن آنی، آنی
وانچه که در طلب آنی، آنی”
- مولانا
🔥3😱2
Media is too big
VIEW IN TELEGRAM
ابزار /trae.ai یه IDE رایگان و جایگزین Cursor هست. به‌صورت کاملاً رایگان و بدون محدودیت به Cloud 3.7 دسترسی دارین!

https://www.trae.ai/
4
Big Archive for System Design – 2024 Edition (Completely Free) is now available!

The PDF contains 𝐀𝐋𝐋 of our technical posts with diagrams published in 2024.

What’s included in the PDF?

- REST API Vs. GraphQL
- Linux file system explained
- My recommended materials for cracking your next technical interview
- How Git Commands work
- Top 4 Most Popular Use Cases for UDP
- How Does a Typical Push Notification System Work?
- How can Cache Systems go wrong? 20
- REST API Cheatsheet
- Top 8 Programming Paradigms
- Data Pipelines
- API Vs SDK
- Key Use Cases for Load Balancers
- And many hundreds more
👍3
Coding Interview Patterns: Nail Your Next Coding Interview

Coding interviews are tough, and they're only getting tougher, typically demanding months of preparation. What we all want is a way to master algorithms and data structures without having to spend countless hours sifting through endless, unfocussed resources. Introducing "Coding Interview Patterns," your complete guide to mastering the key patterns needed to ace your next coding interview.

What’s inside?
An insider’s perspective on what interviewers are truly looking for and why.
101 real coding interview problems with detailed solutions.
Intuitive explanations that guide you through each problem as if you were solving it in a live interview.
1000+ diagrams to illustrate key concepts and patterns.

Table of Contents
Chapter 1: Two Pointers
Chapter 2: Hash Maps and Sets
Chapter 3: Linked Lists
Chapter 4: Fast and Slow Pointers
Chapter 5: Sliding Windows
Chapter 6: Binary Search
Chapter 7: Stacks
Chapter 8: Heaps
Chapter 9: Intervals
Chapter 10: Prefix Sums
Chapter 11: Trees
Chapter 12: Tries
Chapter 13: Graphs
Chapter 14: Backtracking
Chapter 15: Dynamic Programming
Chapter 16: Greedy
Chapter 17: Sort and Search
Chapter 18: Bit Manipulation
Chapter 19: Math and Geometry
4
Forwarded from thisisnabi.dev [Farsi]
Media is too big
VIEW IN TELEGRAM
1. Search

Let’s learn together and build something great ❤️

@thisisnabi_dev
4
https://www.instructa.ai/en/ai-prompts/next-15-coding-standards

از این قسمت میتونین به Cursor یک سری Rule بدین و میتونین خودتون بر اساس پروژه هم Customize کنین، بعد از این به بعد توی جنریت کردن کد این نکات رو در نظر میگیره، مثلا قوانين که تو ESLint تعریف میکنین میتونین اینجا هم بیارین و ازش استفاده کنین خوبیش اینه به صورت General هم میتونین بزارین توی ریپو تا بقیه هم ازش استفاده کنن.


توی این لینک هم کلی Structure و پیاده سازی سرویس های مختلف دیگه هست که به نظرم جالبه میتونه کمک کنه.

https://www.instructa.ai/en/ai-prompts?framework=next

و اینم برای یک سری Rule های کار با Sonnet 3.7 هست :

https://www.instructa.ai/en/ai-prompts/claude-sonnet-37-best-practices
👍3
Forwarded from Software Philosophy
آشنایی با Outbox Pattern و اهمیت آن در سیستم‌های توزیع‌شده

آیا تاکنون در توسعه‌ی یک سیستم توزیع‌شده با این دغدغه مواجه شده‌اید که هنگام ثبت تغییرات در پایگاه داده و هم‌زمان ارسال پیام (رویداد) به یک سرویس دیگر (مانند RabbitMQ یا Kafka)، ممکن است یکی از این مراحل با موفقیت انجام شود و دیگری با شکست روبه‌رو گردد؟ در چنین شرایطی، بخشی از داده‌ها به‌روز می‌شود اما سرویس‌های مصرف‌کننده از این تغییرات بی‌خبر می‌مانند و هماهنگی میان بخش‌های مختلف سیستم از بین می‌رود.

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

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

سپس چه می‌شود؟
یک فرایند مجزا (Outbox Process) به‌طور مستمر این جدول را بررسی می‌کند و رویدادهای ثبت‌شده را به پیام‌رسان (Message Broker) ارسال می‌کند. در صورت موفقیت در ارسال، رکورد مربوطه از جدول Outbox حذف می‌شود و بدین ترتیب از ارسال مجدد ناخواسته جلوگیری می‌گردد. اگر هم پیام‌رسان در لحظه غیرفعال باشد یا خطایی رخ دهد، رکورد رویداد کماکان در پایگاه داده باقی می‌ماند تا در تلاش بعدی مجدداً ارسال شود.

مزایای Outbox Pattern
۱. جلوگیری از ناسازگاری داده‌ها: با انجام ثبت رویداد و تغییرات داده در یک تراکنش واحد، احتمال بروز تناقض در داده‌ها کاهش می‌یابد.
۲. اطمینان از عدم از دست رفتن رویدادها: حتی اگر زیرساخت ارتباطی یا پیام‌رسان موقتاً از دسترس خارج شود، پیام در Outbox محفوظ می‌ماند و پس از بازگشت سرویس، ارسال خواهد شد.
۳. مقیاس‌پذیری بالا: افزودن سرویس‌های جدید یا گسترش زیرساخت پیام‌رسانی تحت تأثیر این الگو به‌راحتی امکان‌پذیر است، چرا که شیوه‌ی ثبت و ارسال رویدادها مشخص و یکپارچه است.

در واقع Outbox Pattern راهکاری قدرتمند و مطمئن برای ساخت سیستم‌های توزیع‌شده و مبتنی بر رویداد است و کمک می‌کند دغدغه‌ی شکست ارسال پیام و ناسازگاری داده‌ها برطرف شود.

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

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

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

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

___________
در ادامه یک راهنمای کامل و بهبود یافته برای استفاده رایگان از Cursor ارائه شده است. لطفاً مراحل زیر را به ترتیب با دقت دنبال کنید:


---

گام ۱: خروج از حساب کاربری Cursor

1. خروج از حساب (Logout):
ابتدا از حساب کاربری Cursor خود خارج شوید. این کار تضمین می‌کند که تنظیمات قبلی یا اطلاعات ورود مانع روند ثبت‌نام جدید نشوند.


2. راه‌اندازی مجدد برنامه:
پس از خروج، برنامه Cursor را دوباره اجرا کنید تا مطمئن شوید در وضعیت خارج از حساب هستید.




---

گام ۲: اجرای PowerShell

1. باز کردن PowerShell:
برنامه Windows PowerShell را اجرا کنید. این محیط به شما امکان می‌دهد تا دستورات خط فرمان را وارد کرده و اسکریپت‌های لازم را اجرا کنید.


2. اجرای اسکریپت نصب:
در پنجره PowerShell، دستور زیر را وارد کنید:

irm https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/scripts/install.ps1 | iex


توضیح:

دستور irm مخفف Invoke-RestMethod است که فایل اسکریپت نصب را از گیت‌هاب دانلود می‌کند.

عملگر | خروجی دستور اول را به دستور دوم (که در اینجا liex است) می‌دهد.

با اجرای این دستور، اسکریپت نصب اجرا شده و فرآیند تنظیمات اولیه آغاز می‌شود.





---

گام ۳: ثبت‌نام جدید در Cursor

1. انتخاب گزینه ثبت‌نام:
پس از اجرای موفق اسکریپت، در منوی ارائه شده گزینه "Cursor New Register" را انتخاب کنید.


2. شروع فرآیند ثبت‌نام توسط ربات:
به محض انتخاب گزینه، ربات به صورت خودکار فعال شده و تلاش می‌کند شما را در سیستم ثبت کند.


3. نکات مهم در این مرحله:

فعال بودن فیلترشکن:
مطمئن شوید فیلترشکن (VPN) شما فعال است. این امر به دلیل محدودیت‌های جغرافیایی و دسترسی به سرورهای مورد نیاز ضروری است.

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





---

گام ۴: تکمیل ثبت‌نام و استفاده از Cursor

1. تغییر شناسه دستگاه:
پس از تکمیل فرآیند ثبت‌نام، شناسه (Machine ID) دستگاه شما تغییر می‌کند. این تغییر به معنای موفقیت‌آمیز بودن ثبت‌نام و فعال شدن خدمات رایگان Cursor است.


2. استفاده از نسخه جدید Cursor:
حالا می‌توانید از امکانات و ویژگی‌های جدید Cursor بهره ببرید.


3. پیشنهاد مهم:
توصیه می‌شود پس از تکمیل ثبت‌نام، از به‌روزرسانی (Update) خودداری کنید تا تنظیمات و دسترسی رایگان شما حفظ شود.




---

با دنبال کردن دقیق مراحل فوق، می‌توانید به راحتی از نسخه رایگان Cursor استفاده کرده و از امکانات آن لذت ببرید.
2👍1
Forwarded from thisisnabi.dev [Farsi]
لابلای تموم خستگیاتون، این ویدیو رو هم ببینید.

https://www.youtube.com/watch?v=xtxfrxf0mfE

جذاب بود :)

کلا من مفاهیم فرایند توسعه نرم افزار و معماری نرم افزار رو خیلی دوست دارم از تجربیات دیگران استفاده کنم تا کتاب بخونم. (می دونمم کتاب از آسمون نیومده و بخشیش تجربه هست)
هر چند کتاب های پایه رو هم 4، پنج جلدی مطالعه کردم ولی خب این مدل کنفرانس ها بیشتر بهم حال میده.
👍5