5. Dependency Inversion Principle:
کل قاعده Open-Closed برای این بود که بتونیم از کلاسهای جدید که از کلاسهای فعلی جدا هستن استفاده کنیم تا برنامه رو بدون تغییر کد قبلی توسعه بدیم.
اما اگر بخوایم اینکارو انجام بدیم باید متد های ما جای اینکه یک کلاس خاصی رو قبول کنن کلاس قرارداد رو قبول میکنن که تضمین میشه کلاس های ورودی حاوی متد های مشخص شده هستن.
اینجا بود که گفتم Liskov Substitution Principle مهمه.
چون آبجکت هایی که قرارداد رو میپذیرن ممکنه که هر جایی که اون کلاس قراردادی رو بپذیره استفاده بشن.
سر همین میبینی که این کلاسه یه جا کار میکنه و جای دیگه درست کار نمیکنه.
#OOP
#SOLID
کل قاعده Open-Closed برای این بود که بتونیم از کلاسهای جدید که از کلاسهای فعلی جدا هستن استفاده کنیم تا برنامه رو بدون تغییر کد قبلی توسعه بدیم.
اما اگر بخوایم اینکارو انجام بدیم باید متد های ما جای اینکه یک کلاس خاصی رو قبول کنن کلاس قرارداد رو قبول میکنن که تضمین میشه کلاس های ورودی حاوی متد های مشخص شده هستن.
اینجا بود که گفتم Liskov Substitution Principle مهمه.
چون آبجکت هایی که قرارداد رو میپذیرن ممکنه که هر جایی که اون کلاس قراردادی رو بپذیره استفاده بشن.
سر همین میبینی که این کلاسه یه جا کار میکنه و جای دیگه درست کار نمیکنه.
#OOP
#SOLID
منابع تورنت مشکلات کپی رایت دارن.
اما فکر میکنم برگردوندنشون به کانال اصلی ایده بهتریه.
اما فکر میکنم برگردوندنشون به کانال اصلی ایده بهتریه.
Forwarded from Python Hints
توی این هفته freecodecamp دوتا دوره عالی گذاشته؛ این دو مورد ربطی به پایتون نداره اما بدرد خیلیا میخوره بخصوص :
@pytens, @pyrust
اینکه دارم پست رو اینجا میذارم چون متوجه شدم خیلی از بچه ها این کانال فوق العاده رو نمی شناسند و باهاش آشنا نیستند؛ بهونه کردم برای معرفی کانال.
دوره ها کدوم موارد هستند ؟
1- Cuda Programming Course (in C)
2- Linux Device Driver Development (in C)
حقیقتش اینکه این هفته جلسه نداریم؛ برای این هست که از شروع لایوها اولین جمعه ای هست که تسک ندارم و چون ۲ هفته گذشته بسیار بسیار درگیر بودم؛ ترجیح دادم این جمعه رو استراحت کنم و برای این استراحت این ۲ ویدئو رو انتخاب کردم برای دیدن.
امیدوارم شما هم لذت ببرید؛ کانسپت مهم هست.
@pytens, @pyrust
اینکه دارم پست رو اینجا میذارم چون متوجه شدم خیلی از بچه ها این کانال فوق العاده رو نمی شناسند و باهاش آشنا نیستند؛ بهونه کردم برای معرفی کانال.
دوره ها کدوم موارد هستند ؟
1- Cuda Programming Course (in C)
2- Linux Device Driver Development (in C)
حقیقتش اینکه این هفته جلسه نداریم؛ برای این هست که از شروع لایوها اولین جمعه ای هست که تسک ندارم و چون ۲ هفته گذشته بسیار بسیار درگیر بودم؛ ترجیح دادم این جمعه رو استراحت کنم و برای این استراحت این ۲ ویدئو رو انتخاب کردم برای دیدن.
امیدوارم شما هم لذت ببرید؛ کانسپت مهم هست.
YouTube
CUDA Programming Course – High-Performance Computing with GPUs
Lean how to program with Nvidia CUDA and leverage GPUs for high-performance computing and deep learning.
Code:
💻 https://github.com/Infatoshi/cuda-course
💻 https://github.com/Infatoshi/mnist-cuda
Elliot on X - https://x.com/elliotarledge
YouTube - htt…
Code:
💻 https://github.com/Infatoshi/cuda-course
💻 https://github.com/Infatoshi/mnist-cuda
Elliot on X - https://x.com/elliotarledge
YouTube - htt…
👍1
A language for next-generation compiler technology
When we realized that no existing language could solve the challenges in AI compute, we embarked on a first-principles rethinking of how a programming language should be designed and implemented to solve our problems. Because we require high-performance support for a wide variety of accelerators, traditional compiler technologies like LLVM and GCC were not suitable (and any languages and tools based on them would not suffice). Although they support a wide range of CPUs and some commonly used GPUs, these compiler technologies were designed decades ago and are unable to fully support modern chip architectures. Nowadays, the standard technology for specialized machine learning accelerators is MLIR.
MLIR is a relatively new open-source compiler infrastructure started at Google (whose leads moved to Modular) that has been widely adopted across the machine learning accelerator community. MLIR’s strength is its ability to build domain specific compilers, particularly for weird domains that aren’t traditional CPUs and GPUs, such as AI ASICS, quantum computing systems, FPGAs, and custom silicon.
Given our goals at Modular to build a next-generation AI platform, we were already using MLIR for some of our infrastructure, but we didn't have a programming language that could unlock MLIR's full potential across our stack. While many other projects now use MLIR, Mojo is the first major language designed expressly for MLIR, which makes Mojo uniquely powerful when writing systems-level code for AI workloads.
https://docs.modular.com/mojo/why-mojo
When we realized that no existing language could solve the challenges in AI compute, we embarked on a first-principles rethinking of how a programming language should be designed and implemented to solve our problems. Because we require high-performance support for a wide variety of accelerators, traditional compiler technologies like LLVM and GCC were not suitable (and any languages and tools based on them would not suffice). Although they support a wide range of CPUs and some commonly used GPUs, these compiler technologies were designed decades ago and are unable to fully support modern chip architectures. Nowadays, the standard technology for specialized machine learning accelerators is MLIR.
MLIR is a relatively new open-source compiler infrastructure started at Google (whose leads moved to Modular) that has been widely adopted across the machine learning accelerator community. MLIR’s strength is its ability to build domain specific compilers, particularly for weird domains that aren’t traditional CPUs and GPUs, such as AI ASICS, quantum computing systems, FPGAs, and custom silicon.
Given our goals at Modular to build a next-generation AI platform, we were already using MLIR for some of our infrastructure, but we didn't have a programming language that could unlock MLIR's full potential across our stack. While many other projects now use MLIR, Mojo is the first major language designed expressly for MLIR, which makes Mojo uniquely powerful when writing systems-level code for AI workloads.
https://docs.modular.com/mojo/why-mojo
Modular
Mojo vision | Modular
Our motivations and the design decisions that define the Mojo programming language
TECH STASH
A language for next-generation compiler technology When we realized that no existing language could solve the challenges in AI compute, we embarked on a first-principles rethinking of how a programming language should be designed and implemented to solve…
دقیقا مشکل هوش مصنوعی هم همینجاست.
معماری سخت افزار های تسریع کننده محاسبات خیلی با کامپیوتر های معمولی فرق میکنه.
دلیلی برای وجود این تکنولوژی هست ولی خب خیلیا از همون اول دلیل وجودش رو متوجه نشدن.
پشت Mojo یه compiler toolchain جدیده.
سرعت دیگه اهمیت ندارع وقتی که روی سیستمی نشه کامپایل کرد.
معماری سخت افزار های تسریع کننده محاسبات خیلی با کامپیوتر های معمولی فرق میکنه.
دلیلی برای وجود این تکنولوژی هست ولی خب خیلیا از همون اول دلیل وجودش رو متوجه نشدن.
پشت Mojo یه compiler toolchain جدیده.
سرعت دیگه اهمیت ندارع وقتی که روی سیستمی نشه کامپایل کرد.
TECH STASH
دقیقا مشکل هوش مصنوعی هم همینجاست. معماری سخت افزار های تسریع کننده محاسبات خیلی با کامپیوتر های معمولی فرق میکنه. دلیلی برای وجود این تکنولوژی هست ولی خب خیلیا از همون اول دلیل وجودش رو متوجه نشدن. پشت Mojo یه compiler toolchain جدیده. سرعت دیگه اهمیت…
ولی خب نگفتم که برید همون اول یاد بگیرید. :)
صبر کنید که اکوسیستمش خوب رشد کنه و بالغ بشه بعدش سویچ کنید.
صبر کنید که اکوسیستمش خوب رشد کنه و بالغ بشه بعدش سویچ کنید.
کتاب اینترنتی شبکه های عصبی و یادگیری عمیق. نویسنده Michael Nielson.
میاد و از صفر کل مباحث شبکه های عصبی که باهاش تشخیص عدد MNIST رو حل کردن رو توضیح میده همراه با کد.
حتی الگوریتم SGD و backprop رو هم توضیح میده و کدش رو با numpy نوشته.
درسته که الان tranaformer ها رو داریم و هوش مصنوعیمون پیشرفته تره ولی خب پایه رو یاد بگیرید بعد سراغ اونم میرید.
http://neuralnetworksanddeeplearning.com/
میاد و از صفر کل مباحث شبکه های عصبی که باهاش تشخیص عدد MNIST رو حل کردن رو توضیح میده همراه با کد.
حتی الگوریتم SGD و backprop رو هم توضیح میده و کدش رو با numpy نوشته.
درسته که الان tranaformer ها رو داریم و هوش مصنوعیمون پیشرفته تره ولی خب پایه رو یاد بگیرید بعد سراغ اونم میرید.
http://neuralnetworksanddeeplearning.com/
TECH STASH
کتاب اینترنتی شبکه های عصبی و یادگیری عمیق. نویسنده Michael Nielson. میاد و از صفر کل مباحث شبکه های عصبی که باهاش تشخیص عدد MNIST رو حل کردن رو توضیح میده همراه با کد. حتی الگوریتم SGD و backprop رو هم توضیح میده و کدش رو با numpy نوشته. درسته که الان…
بهترین راه واسه یادگیری هوش مصنوعی
1. مقاله علمی رو گیر بیار
2. با کد پیاده سازی کن
3. اونقدر مراحل بالا رو تکرار کن تا مهارت پیدا کنی
- George Hotz
1. مقاله علمی رو گیر بیار
2. با کد پیاده سازی کن
3. اونقدر مراحل بالا رو تکرار کن تا مهارت پیدا کنی
- George Hotz
کانال letsgetrusty آموزش های خوبی راجب rust میزاره.
اگر rust کار باشید قطعا میشناسید.
https://www.youtube.com/@letsgetrusty
حالا یه آموزشی هم داره که تو downloadly گذاشته شده. که به نظر میاد عالیه.
https://downloadly.ir/elearning/video-tutorials/rust-developer-bootcamp/#/134348-letsgetr-112401103107.html
اگر rust کار باشید قطعا میشناسید.
https://www.youtube.com/@letsgetrusty
حالا یه آموزشی هم داره که تو downloadly گذاشته شده. که به نظر میاد عالیه.
https://downloadly.ir/elearning/video-tutorials/rust-developer-bootcamp/#/134348-letsgetr-112401103107.html
چه ابزارایه اوپن سورس جایگزین PowerPoint داریم؟
https://revealjs.com/
https://www.manim.community/
https://marp.app/
https://sli.dev/
https://impress.js.org
تازه ترکیب manim و revealjs هم میتونیم داشته باشیم با embed کردنش داخل خود revealjs.
اینم احتمالا بدردتون میخوره.
https://manim-slides.eertmans.be/latest/
https://revealjs.com/
https://www.manim.community/
https://marp.app/
https://sli.dev/
https://impress.js.org
تازه ترکیب manim و revealjs هم میتونیم داشته باشیم با embed کردنش داخل خود revealjs.
اینم احتمالا بدردتون میخوره.
https://manim-slides.eertmans.be/latest/
reveal.js
The HTML presentation framework | reveal.js
Documentation and demos for the open source reveal.js HTML presentation framework.
TECH STASH
چه ابزارایه اوپن سورس جایگزین PowerPoint داریم؟ https://revealjs.com/ https://www.manim.community/ https://marp.app/ https://sli.dev/ https://impress.js.org تازه ترکیب manim و revealjs هم میتونیم داشته باشیم با embed کردنش داخل خود revealjs. اینم احتمالا…
تکنولوژی وب انعطاف پذیرتر هست برای ساخت انیمیشن و بصری سازی اسلاید ها تا PowerPoint.
فرانت اند کارا هیچ وقت کم نمیارن ;)
فرانت اند کارا هیچ وقت کم نمیارن ;)
TECH STASH
چه ابزارایه اوپن سورس جایگزین PowerPoint داریم؟ https://revealjs.com/ https://www.manim.community/ https://marp.app/ https://sli.dev/ https://impress.js.org تازه ترکیب manim و revealjs هم میتونیم داشته باشیم با embed کردنش داخل خود revealjs. اینم احتمالا…
بیشتر ویدیو های 3Blue1Brown با manim ساخته شده.
همینطور که میدونید یه سری ویدیو های یوتیوب هم راجب شبکه های عصبی ساخته بود که فوق العادست.
اگر علاقه به ریاضیات دارید حتما سری بزنید.
https://www.youtube.com/3blue1brown
همینطور که میدونید یه سری ویدیو های یوتیوب هم راجب شبکه های عصبی ساخته بود که فوق العادست.
اگر علاقه به ریاضیات دارید حتما سری بزنید.
https://www.youtube.com/3blue1brown
TECH STASH
بیشتر ویدیو های 3Blue1Brown با manim ساخته شده. همینطور که میدونید یه سری ویدیو های یوتیوب هم راجب شبکه های عصبی ساخته بود که فوق العادست. اگر علاقه به ریاضیات دارید حتما سری بزنید. https://www.youtube.com/3blue1brown
سری ویدیو های شبکه های عصبی از 3Blue1Brown
https://m.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
https://m.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
YouTube
Neural networks
Learn the basics of neural networks and backpropagation, one of the most important algorithms for the modern world.
Forwarded from LIFE STASH
اشتباهت را در آغوش بگیر:
یک زمانی فکر میکردم که نباید بزارم بقیه ثابت کنن که من اشتباه میگم.
یک زمان فکر میکردم که باید همیشه مورد تایید بقیه قرار بگیرم.
یک زمان از اشتباه بودن حرف های خودم میترسیدم.
اما چند وقتی هست که بینشم عوض شده. بلکه هر وقتی که مخالفت میبینم یعنی اتفاقی بسیار خوبی برام افتاده.
از الان هر موقع که صدای کسایی که دارن به من شک میکنن رو میشنوم. به تاسف نمیفتم. بلکه جور دیگه ای بهش نگاه میکنم.
با خودم میگم. اگر من توانایی اینو ندارم که برای خودم ثابت کنم که دارم مسیر درستی رو میرم. چطور میتونم از خودم مطمئن باشم.
اگر نتونم ریسک های محاسبه شده انجام بدم و از روی انکار جلو برم، چطور میتونم موفق باشم؟
اینکه بخواد حرف یه نفر منو تو شک بندازه مقصر طرف نیست.
مقصر من هستم که اینقدر بدون بررسی انتخاب کردم.
مقصر منم که مسیرم رو ساده انگارانه و بدون مسئولیت انتخاب کردم.
آدم های شرور تلاش میکنن آدم رو از مسیر درست منحرف کنن.
اما کسی که تصمیم میگیره که تسلیم بشه کسی هست که به خودش هم نمیتونه ثابت کنه که داره کار درستی میکنه.
همون کسی هست که از روی واهمه داره مسیرش رو جلو میره.
از حرف های منفی بقیه و حتی درون خودت فرار نکن.
بلکه بهشون گوش کن. بررسیشون کن.
بعضی وقتا هم میبینی که همین حرف ها درست هستن. و تو داری اشتباه میکنی.
بعضی وقتا تورو به فکر وا میدارن. و وقتی که فکر میکنی، درست تصمیم میگیری. درست انتخاب میکنی. و درست عمل میکنی.
به حرف های منفی بقیه به چشم فرصت برای پاسخ دادن به شک ها و ترس هات نگاه کن.
و بدون که این ها نشونه ضعف تو نیستن.
نشونه پرسش هایی هستن که باید پاسخ مناسب داده بشن. و فرار کردن ازشون اشتباهه.
باهاشون رو به رو شو.
#LifeLessons
#Part1
یک زمانی فکر میکردم که نباید بزارم بقیه ثابت کنن که من اشتباه میگم.
یک زمان فکر میکردم که باید همیشه مورد تایید بقیه قرار بگیرم.
یک زمان از اشتباه بودن حرف های خودم میترسیدم.
اما چند وقتی هست که بینشم عوض شده. بلکه هر وقتی که مخالفت میبینم یعنی اتفاقی بسیار خوبی برام افتاده.
از الان هر موقع که صدای کسایی که دارن به من شک میکنن رو میشنوم. به تاسف نمیفتم. بلکه جور دیگه ای بهش نگاه میکنم.
با خودم میگم. اگر من توانایی اینو ندارم که برای خودم ثابت کنم که دارم مسیر درستی رو میرم. چطور میتونم از خودم مطمئن باشم.
اگر نتونم ریسک های محاسبه شده انجام بدم و از روی انکار جلو برم، چطور میتونم موفق باشم؟
اینکه بخواد حرف یه نفر منو تو شک بندازه مقصر طرف نیست.
مقصر من هستم که اینقدر بدون بررسی انتخاب کردم.
مقصر منم که مسیرم رو ساده انگارانه و بدون مسئولیت انتخاب کردم.
آدم های شرور تلاش میکنن آدم رو از مسیر درست منحرف کنن.
اما کسی که تصمیم میگیره که تسلیم بشه کسی هست که به خودش هم نمیتونه ثابت کنه که داره کار درستی میکنه.
همون کسی هست که از روی واهمه داره مسیرش رو جلو میره.
از حرف های منفی بقیه و حتی درون خودت فرار نکن.
بلکه بهشون گوش کن. بررسیشون کن.
بعضی وقتا هم میبینی که همین حرف ها درست هستن. و تو داری اشتباه میکنی.
بعضی وقتا تورو به فکر وا میدارن. و وقتی که فکر میکنی، درست تصمیم میگیری. درست انتخاب میکنی. و درست عمل میکنی.
به حرف های منفی بقیه به چشم فرصت برای پاسخ دادن به شک ها و ترس هات نگاه کن.
و بدون که این ها نشونه ضعف تو نیستن.
نشونه پرسش هایی هستن که باید پاسخ مناسب داده بشن. و فرار کردن ازشون اشتباهه.
باهاشون رو به رو شو.
#LifeLessons
#Part1
اگر در شاخه های دیگه از مهندسی هستید و محاسبات مهندسی با Matlab یا هر چیز دیگه انجام میدید.
این دوستمون Mr P Solver ویدیو فقط راجب Scientific Programming میزاره و مسائل مختلف رو با استفاده از ابزار های مختص این موضوع حل میکنه. همش هم پایتون
لایبرری هایی مثل
Numpy, Scipy, Sympy, Matplotlib
کاور میشن
https://www.youtube.com/@MrPSolver
لیست آموزش پایتون مختص به Scientific Programming:
https://www.youtube.com/watch?v=FggJNXN68fs&list=PLkdGijFCNuVnGxo-1fSNcdHh5gZc17oRM
توصیه میکنم از هر رشته ای هستید پلی لیست رو بررسی کنید و ببینید که چیزی میبینید که بدردتون بخوره.
این دوستمون Mr P Solver ویدیو فقط راجب Scientific Programming میزاره و مسائل مختلف رو با استفاده از ابزار های مختص این موضوع حل میکنه. همش هم پایتون
لایبرری هایی مثل
Numpy, Scipy, Sympy, Matplotlib
کاور میشن
https://www.youtube.com/@MrPSolver
لیست آموزش پایتون مختص به Scientific Programming:
https://www.youtube.com/watch?v=FggJNXN68fs&list=PLkdGijFCNuVnGxo-1fSNcdHh5gZc17oRM
توصیه میکنم از هر رشته ای هستید پلی لیست رو بررسی کنید و ببینید که چیزی میبینید که بدردتون بخوره.
YouTube
Mr. P Solver
Primarily python coding tutorials with a physics/math focus (with a hint of ridiculous Discord-style character conversations)
TECH STASH
اگر در شاخه های دیگه از مهندسی هستید و محاسبات مهندسی با Matlab یا هر چیز دیگه انجام میدید. این دوستمون Mr P Solver ویدیو فقط راجب Scientific Programming میزاره و مسائل مختلف رو با استفاده از ابزار های مختص این موضوع حل میکنه. همش هم پایتون لایبرری هایی…
جدا از اون. حل کردن مسائل ریاضی با استفاده از این کتابخونه ها خیلی باحاله.
انتگرال؟ مشتق؟ هر محاسباتی که بخواید با Numpy میتونید انجام بدید.
انتگرال؟ مشتق؟ هر محاسباتی که بخواید با Numpy میتونید انجام بدید.
آموزش Numpy که ارائه داده.
نکته: حسابی پر از فرمول ریاضی و حل مسئله هست. نگید نگفتم 😁😁
https://www.youtube.com/watch?v=DcfYgePyedM
نکته: حسابی پر از فرمول ریاضی و حل مسئله هست. نگید نگفتم 😁😁
https://www.youtube.com/watch?v=DcfYgePyedM
YouTube
NumPy Tutorial: For Physicists, Engineers, and Mathematicians
Check out my course on UDEMY: learn the skills you need for coding in STEM:
https://www.udemy.com/course/python-stem-essentials/
This from-scratch tutorial on NumPy is designed specifically for those in physics, mathematics, and engineering. In the future…
https://www.udemy.com/course/python-stem-essentials/
This from-scratch tutorial on NumPy is designed specifically for those in physics, mathematics, and engineering. In the future…