Forwarded from DevOps Expert (Mohammad Babazadeh)
آموزش کامل داکر 🔥
✔️ ۰۰ - آموزش داکر - داکر چیست و به چه دردی میخوره؟
👉🏻 https://youtu.be/j4mYb5ZuH3Q
✔️ ۰۱ - تفاوت داکر با ماشین مجازی - داکر چطوری کار می کنه؟
👉🏻 https://youtu.be/M-tTkh6fS8g
✔️ ۰۲ - نصب و کانفیگ داکر بر روی لینوکس
👉🏻 https://youtu.be/nVZg08dcx90
✔️ ۰۳ - نصب و کانفیگ داکر بر روی ویندوز
👉🏻 https://youtu.be/ziMMC8Rc12M
#داکر #سیلیسیم
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ ۰۰ - آموزش داکر - داکر چیست و به چه دردی میخوره؟
👉🏻 https://youtu.be/j4mYb5ZuH3Q
✔️ ۰۱ - تفاوت داکر با ماشین مجازی - داکر چطوری کار می کنه؟
👉🏻 https://youtu.be/M-tTkh6fS8g
✔️ ۰۲ - نصب و کانفیگ داکر بر روی لینوکس
👉🏻 https://youtu.be/nVZg08dcx90
✔️ ۰۳ - نصب و کانفیگ داکر بر روی ویندوز
👉🏻 https://youtu.be/ziMMC8Rc12M
#داکر #سیلیسیم
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ همهچیز دربارهی الگوهاست!
در پیرو نسخه ۳.۱۰ زبان برنامهنویسی پایتون که در ۴ اکتبر ۲۰۲۱ منتشر شد. یکی از امکانات جدید آن که پیشتر هم راجعبه آن صحبتهای زیادی شده بود مورد توجه برنامهنویسان پایتون قرار گرفت. این امکان Structural Pattern Matching نام دارد.
در نگاه اول به نمونه کدهای مرتبط با این قابلیت، ممکن است شبیه به switch case در زبانهایی مثل C/CPP، Java، Javascript و... بنظر برسد. اما واقعیت چیز دیگریست.
اول از همه باید توجه داشت که این قابلیت ابداع شده توسط پایتون نیست و زبانهای دیگری مثل Haskell، Erlang، Ruby و... نیز از چنین ساختاری برخوردار هستند. توجه شما را به این نقل قول از Brandt Bucher نویسنده این قابلیت جدید از پایتون جلب میکنم:
"We didn't invent most of this, we stole a lot of it :)"
تفاوت Structural Pattern Matching و Switch Case
برنت بوکر (Brandt Bucher) نویسنده این قابلیت توضیح میدهد: درواقع چیزهای زیادی وجود دارد که switch case انجام میدهد و pattern matching نمیتواند و همچنین قابلیتهای زیادی در pattern matching وجود دارد که switch case از آنها برخوردار نیست. اگر شما تلاش کنید که این دو ساختار را شبیه هم در نظر بگیرید، شانس استفاده از قدرت هردو را از دست میدهید.
اما این چه ساختاری است؟
درواقع Structural Pattern Matching ترکیبی از دو ایدهی کنترل روند (control flow) و گسستن ساختار (destructure) است. در این ساختار با دریافت یک مقدار (subject value) و تعریف کردن چند الگوی تطبیق (pattern) برای آن، فرایند را منتهی به تطابق یا عدم تطابق میکنیم.
در تعریف ساده: در این روند مقدار ورودی به اجزای سازنده آن تجزیه شده و در جریان تطابق با الگوی تعیین شده قرار میگیرد.
فرض کنید متغیر name را به عنوان ورودی میگیریم و انتظار داریم که از نوع لیست، به اندازه ۲، در اندیس صفر مقدار Shahriar و در اندیس یکم مقدار Shariati را داشته باشد. در پایتون ۳.۹ به قبل، میتوانیم چنین کدی را داشته باشیم:
به همین ترتیب مثلا برای مقایسه مقادیر داخل یک data class به نام Point نیز میتوانیم چنین الگویی تعریف کنیم:
احتمالا تا الآن متوجه شده باشید که این قابلیت چیزی بیشتر و متفاوتتر از مقایسه معمولی است و همانطور که پیداست، اینجا الگوها حائز اهمیت هستند!
این قابلیت در سه pep به شمارههای ۶۳۴، ۶۴۵ و ۶۳۶ معرفی شده که خواندن آنها بسیار مفید است.
منابع
PEP 634 -- Structural Pattern Matching: Specification
PEP 635 -- Structural Pattern Matching: Motivation and Rationale
PEP 636 -- Structural Pattern Matching: Tutorial
Python 3.10 Release Stream - Brandt Bucher
در پیرو نسخه ۳.۱۰ زبان برنامهنویسی پایتون که در ۴ اکتبر ۲۰۲۱ منتشر شد. یکی از امکانات جدید آن که پیشتر هم راجعبه آن صحبتهای زیادی شده بود مورد توجه برنامهنویسان پایتون قرار گرفت. این امکان Structural Pattern Matching نام دارد.
در نگاه اول به نمونه کدهای مرتبط با این قابلیت، ممکن است شبیه به switch case در زبانهایی مثل C/CPP، Java، Javascript و... بنظر برسد. اما واقعیت چیز دیگریست.
اول از همه باید توجه داشت که این قابلیت ابداع شده توسط پایتون نیست و زبانهای دیگری مثل Haskell، Erlang، Ruby و... نیز از چنین ساختاری برخوردار هستند. توجه شما را به این نقل قول از Brandt Bucher نویسنده این قابلیت جدید از پایتون جلب میکنم:
"We didn't invent most of this, we stole a lot of it :)"
تفاوت Structural Pattern Matching و Switch Case
برنت بوکر (Brandt Bucher) نویسنده این قابلیت توضیح میدهد: درواقع چیزهای زیادی وجود دارد که switch case انجام میدهد و pattern matching نمیتواند و همچنین قابلیتهای زیادی در pattern matching وجود دارد که switch case از آنها برخوردار نیست. اگر شما تلاش کنید که این دو ساختار را شبیه هم در نظر بگیرید، شانس استفاده از قدرت هردو را از دست میدهید.
اما این چه ساختاری است؟
درواقع Structural Pattern Matching ترکیبی از دو ایدهی کنترل روند (control flow) و گسستن ساختار (destructure) است. در این ساختار با دریافت یک مقدار (subject value) و تعریف کردن چند الگوی تطبیق (pattern) برای آن، فرایند را منتهی به تطابق یا عدم تطابق میکنیم.
در تعریف ساده: در این روند مقدار ورودی به اجزای سازنده آن تجزیه شده و در جریان تطابق با الگوی تعیین شده قرار میگیرد.
فرض کنید متغیر name را به عنوان ورودی میگیریم و انتظار داریم که از نوع لیست، به اندازه ۲، در اندیس صفر مقدار Shahriar و در اندیس یکم مقدار Shariati را داشته باشد. در پایتون ۳.۹ به قبل، میتوانیم چنین کدی را داشته باشیم:
if (
isinstance(name, list)
and len(name) == 2
and name[0] == "Shahriar"
and name[1] == "Shariati"
):
print("Name is correct.")
else:
print("Name is incorrect.")
اما حالا با کمک پایتون ۳.۱۰ میتوانیم چنین الگویی را تعریف کنیم:match name:
case ["Shahriar", "Shariati"]:
print("Name is correct")
case _:
print("Name is incorrect")
نکته: علامت underscore در اینجا حکم الگوی خالی را دارد و در صورتی که مقدار ورودی با هیچ کدام از الگوهای تعریف شده تطابق نداشته باشد اتفاق میافتد.به همین ترتیب مثلا برای مقایسه مقادیر داخل یک data class به نام Point نیز میتوانیم چنین الگویی تعریف کنیم:
match p:
case Point(0, 0):
print("At the origin!")
case Point(0, y):
print(f"On the y-axis at {y = }!")
case Point(x, 0):
print(f"On the x-axis at {x = }!")
در قطعه کد بالا با تعریف تطابق کلاس و یک الگوی پویا میتوانیم مقادیر موجود در کلاس مانند x و y را نیز استخراج کنیم و در بدنهی شرط از آن استفاده کنیم. برای مطالعه بیشتر به pep-636 مراجعه کنید.احتمالا تا الآن متوجه شده باشید که این قابلیت چیزی بیشتر و متفاوتتر از مقایسه معمولی است و همانطور که پیداست، اینجا الگوها حائز اهمیت هستند!
این قابلیت در سه pep به شمارههای ۶۳۴، ۶۴۵ و ۶۳۶ معرفی شده که خواندن آنها بسیار مفید است.
منابع
PEP 634 -- Structural Pattern Matching: Specification
PEP 635 -- Structural Pattern Matching: Motivation and Rationale
PEP 636 -- Structural Pattern Matching: Tutorial
Python 3.10 Release Stream - Brandt Bucher
آموزش کامل داکر 🔥
✔️ ۰۴ - ثبت نام در docker hub و لاگین با docker و کاهش محدودیت دانلود ایمیج
👉🏻 https://youtu.be/MEC21hKHkUk
✔️ ۰۵ - دانلود ایمیج nginx و ران کردنش
👉🏻 https://youtu.be/iowDQry1hNk
✔️ ۰۶ - تنظیم پورت در داکر
👉🏻 https://youtu.be/j5y6xpKQCXk
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ ۰۴ - ثبت نام در docker hub و لاگین با docker و کاهش محدودیت دانلود ایمیج
👉🏻 https://youtu.be/MEC21hKHkUk
✔️ ۰۵ - دانلود ایمیج nginx و ران کردنش
👉🏻 https://youtu.be/iowDQry1hNk
✔️ ۰۶ - تنظیم پورت در داکر
👉🏻 https://youtu.be/j5y6xpKQCXk
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ هکتوبرفست اینجاست
توی این پست راجعبه هکتوبرفست صحبت میکنیم و میبینیم که چیه، چرا بوجود اومده و چطور میشه توش مشارکت داشت؟
👉 Link: https://youtu.be/VjdaxhnUMcE
Thanks to: @code_therapy
#hacktoberfest #هکتوبرفست
〰️〰️〰️〰️〰️〰️
©@DjangoEx
توی این پست راجعبه هکتوبرفست صحبت میکنیم و میبینیم که چیه، چرا بوجود اومده و چطور میشه توش مشارکت داشت؟
👉 Link: https://youtu.be/VjdaxhnUMcE
Thanks to: @code_therapy
#hacktoberfest #هکتوبرفست
〰️〰️〰️〰️〰️〰️
©@DjangoEx
✔️ مشارکت توی هکتوبرفست
توی این ویدئو عمیقتر به هکتوبرفست میپردازیم و یه ریپازیتوری خوب پیدا میکنیم برای مشارکت.
اگه ریپازیتوری باحالی میشناسین، به من و بقیه معرفی کنین.
👉 Link: https://www.youtube.com/watch?v=5nTDUVUl5Dc
Thanks to: @code_therapy
#hacktoberfest #هکتوبرفست
〰️〰️〰️〰️〰️〰️
©@DjangoEx
توی این ویدئو عمیقتر به هکتوبرفست میپردازیم و یه ریپازیتوری خوب پیدا میکنیم برای مشارکت.
اگه ریپازیتوری باحالی میشناسین، به من و بقیه معرفی کنین.
👉 Link: https://www.youtube.com/watch?v=5nTDUVUl5Dc
Thanks to: @code_therapy
#hacktoberfest #هکتوبرفست
〰️〰️〰️〰️〰️〰️
©@DjangoEx
Django Expert
✔️ مشارکت توی هکتوبرفست توی این ویدئو عمیقتر به هکتوبرفست میپردازیم و یه ریپازیتوری خوب پیدا میکنیم برای مشارکت. اگه ریپازیتوری باحالی میشناسین، به من و بقیه معرفی کنین. 👉 Link: https://www.youtube.com/watch?v=5nTDUVUl5Dc Thanks to: @code_therapy…
Hacktoberfest
Hacktoberfest 2025
Hacktoberfest: a month-long celebration of open-source projects, their maintainers, and the entire community of contributors.
آموزش کامل داکر 🔥
✔️ ۰۷ - اجرای دستورات با کانتینرها، اجرای شل
👉 https://youtu.be/5PdizZOilHc
✔️ ۰۸ - آشنایی با volume - اشتراک گذاری، ذخیره سازی و بکآپ دیتای کانتینر
👉 https://youtu.be/9URwheOcfx0
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ ۰۷ - اجرای دستورات با کانتینرها، اجرای شل
👉 https://youtu.be/5PdizZOilHc
✔️ ۰۸ - آشنایی با volume - اشتراک گذاری، ذخیره سازی و بکآپ دیتای کانتینر
👉 https://youtu.be/9URwheOcfx0
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
Forwarded from DevOps Expert (Majid A.M)
سلام دوستان یه سری نکته رو لازم دونستم بهتون بگم.
اگه میخواید تازه پایتون یا جنگو یا ... رو شروع کنید، سعی کنید بدون اطلاعات کافی داخل بوت کمپهای مختلف اسم ننویسین. (اسم از شرکت یا آموزشگاهی نمیبرم)
این رو برای این میگم که اخیرا زیاد میبینم یه سری دوستان داخل دورههایی شرکت میکنن و تهش پشیمون شدن یا اینکه داخل جلسه مصاحبه واقعا دانش کافی در حد مبتدی رو هم حتی ندارن.
کلی آموزش رایگان چه فارسی چه انگلیسی داخل یوتیوب هست و خیلی بهتر هم از اون دورههای پولی بهتون آموزش میدن. گول یه سری تبلیغات رو نخورین.
اگه دورهای واقعا خوب هست، استادای خوبی داره و ... پول بدین و شرکت کنید خیلی هم خوبه کلی چیز از یه فرد با تجربه یاد میگیرید. اما کلا اینکه صرفا شرکت کردن داخل یه سری بوت کمپ شما رو برنامه نویس نمیکنه.
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx
اگه میخواید تازه پایتون یا جنگو یا ... رو شروع کنید، سعی کنید بدون اطلاعات کافی داخل بوت کمپهای مختلف اسم ننویسین. (اسم از شرکت یا آموزشگاهی نمیبرم)
این رو برای این میگم که اخیرا زیاد میبینم یه سری دوستان داخل دورههایی شرکت میکنن و تهش پشیمون شدن یا اینکه داخل جلسه مصاحبه واقعا دانش کافی در حد مبتدی رو هم حتی ندارن.
کلی آموزش رایگان چه فارسی چه انگلیسی داخل یوتیوب هست و خیلی بهتر هم از اون دورههای پولی بهتون آموزش میدن. گول یه سری تبلیغات رو نخورین.
اگه دورهای واقعا خوب هست، استادای خوبی داره و ... پول بدین و شرکت کنید خیلی هم خوبه کلی چیز از یه فرد با تجربه یاد میگیرید. اما کلا اینکه صرفا شرکت کردن داخل یه سری بوت کمپ شما رو برنامه نویس نمیکنه.
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx
✔️ سوپر دوره آموزش جنگو - قسمت ۳
طراحی پایگاه داده
🖥 مشاهده در یوتوب:
👉 Link: https://youtu.be/LhAyfd11J0U
🛑توجه: لطفا با هندزفری تماشا کنید:))🛑
#django #جنگو
〰️〰️〰️〰️〰️
© @DjangoEx
طراحی پایگاه داده
🖥 مشاهده در یوتوب:
👉 Link: https://youtu.be/LhAyfd11J0U
🛑توجه: لطفا با هندزفری تماشا کنید:))🛑
#django #جنگو
〰️〰️〰️〰️〰️
© @DjangoEx
✔️ توسعه نرمافزار بدون زجر
اگر در ایران توسعه دهنده نرمافزار هستید قطعا تحریمهای ظالمانه را حس کردید. ما به عنوان یک ارگان مستقل غیرانتفاعی با فراهم کردن یک پراکسی سرور رایگان سعی داریم در چارچوب قوانین کشور به شما کمک کنیم تا این تحریمها را به راحتی دور بزنید.
👉 Link: https://github.com/freedomofdevelopers/fod
〰️〰️〰️〰️〰️
© @DjangoEx
اگر در ایران توسعه دهنده نرمافزار هستید قطعا تحریمهای ظالمانه را حس کردید. ما به عنوان یک ارگان مستقل غیرانتفاعی با فراهم کردن یک پراکسی سرور رایگان سعی داریم در چارچوب قوانین کشور به شما کمک کنیم تا این تحریمها را به راحتی دور بزنید.
👉 Link: https://github.com/freedomofdevelopers/fod
〰️〰️〰️〰️〰️
© @DjangoEx
GitHub
GitHub - freedomofdevelopers/fod: Freedom of Developers
Freedom of Developers. Contribute to freedomofdevelopers/fod development by creating an account on GitHub.
آموزش کامل داکر 🔥 (ادامه دارد..)
✔️ ۰۹ - نکات مبتدی باقی مونده: حذف کانتینر و ایمیج، ذخیره و لود ایمیج، نسخه های سبک تر مثل آلپاین و ...
👉🏻 https://youtu.be/wbx8knZ04gs
✔️ ۱۰ - آشنایی با Dockerfile - ساخت ایمیج های جدید
👉🏻 https://youtu.be/ZRLfFdM_rTA
✔️ ۱۱ - آشنایی به docker-compose
👉🏻 https://youtu.be/X1wpatABqgg
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ ۰۹ - نکات مبتدی باقی مونده: حذف کانتینر و ایمیج، ذخیره و لود ایمیج، نسخه های سبک تر مثل آلپاین و ...
👉🏻 https://youtu.be/wbx8knZ04gs
✔️ ۱۰ - آشنایی با Dockerfile - ساخت ایمیج های جدید
👉🏻 https://youtu.be/ZRLfFdM_rTA
✔️ ۱۱ - آشنایی به docker-compose
👉🏻 https://youtu.be/X1wpatABqgg
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ پایتون با پشت سر گذاشتن جاوا محبوبترین زبان برنامهنویسی در شاخص TIOBE شد
پایتون برای اولین بار در ۲۰ سال اخیر با کنار زدن جاوا، جاوا اسکریپت و C به محبوبترین زبان برنامهنویسی دنیا تبدیل شده. ردهبندی ماه اکتبر ۲۰۲۱ شرکت TIOBE بر اساس جستجوهای سطح وب نتیجه یافتههای خود را منتشر کرده است.
شرکت TIOBE که در زمینه ارزیابی و ردیابی کیفیت نرمافزارها تخصص دارد، در تحقیقات خود از ۲۵ وبسایت و موتور جستجوی محبوب از جمله گوگل، بینگ، یاهو، ویکیپدیا و یوتیوب استفاده کرده است. این شرکت در جدیدترین ردهبندی خود میگوید زبان پایتون برای اولین بار در ۲۰ سال اخیر به جایگاه نخست فهرست محبوبترین زبانهای برنامهنویسی رفته است.
👉 Link: https://dgto.ir/2cmo
👉 Link: https://www.tiobe.com/tiobe-index/
متن از دیجیاتو
〰️〰️〰️〰️〰️
© @DjangoEx
پایتون برای اولین بار در ۲۰ سال اخیر با کنار زدن جاوا، جاوا اسکریپت و C به محبوبترین زبان برنامهنویسی دنیا تبدیل شده. ردهبندی ماه اکتبر ۲۰۲۱ شرکت TIOBE بر اساس جستجوهای سطح وب نتیجه یافتههای خود را منتشر کرده است.
شرکت TIOBE که در زمینه ارزیابی و ردیابی کیفیت نرمافزارها تخصص دارد، در تحقیقات خود از ۲۵ وبسایت و موتور جستجوی محبوب از جمله گوگل، بینگ، یاهو، ویکیپدیا و یوتیوب استفاده کرده است. این شرکت در جدیدترین ردهبندی خود میگوید زبان پایتون برای اولین بار در ۲۰ سال اخیر به جایگاه نخست فهرست محبوبترین زبانهای برنامهنویسی رفته است.
👉 Link: https://dgto.ir/2cmo
👉 Link: https://www.tiobe.com/tiobe-index/
متن از دیجیاتو
〰️〰️〰️〰️〰️
© @DjangoEx