Md Daily
#ام_دی_کورس اتوماسیون مدیریت کاربر با اسکریپت bash به عنوان یک مدیر سیستم، ممکن است ایجاد یک کاربر در چندین سرور به صورت روزانه برای شما اتفاق بیفتد. این یک کار خسته کنندسش، بنابراین بیایید یک اسکریپت bash ایجاد کنیم که آن را به صورت خودکار انجام دهد. ابتدا…
#ام_دی_کورس
بریم اسکریپتو اجرا کنیم و ببینیم چطور کار می کنه (تصویر پست)
اسکریپت با موفقیت اجرا میشه و کاربر ansible به همه پنج تا سرور اضافه میشه. چنتا نکته ی مهم:
👈 میتونید از empty ssh pass phrases استفاده یا ssh-agent رو اجرا کنید تا موقع اجرای اسکریپت مجبور نشید کلید (یا رمز عبور) وارد کنید.
👈 باید یک حساب کاربری معتبر داشته باشید که دسترسی super user (بدون نیاز به رمز عبور) در همه سرورها داشته باشه.
تصور کنید که باید یه کاربر رو به بیش از چندین سرور لینوکس مختلف اضافه کنید! اسکریپت
ادامه در پست بعدی...
🆔 @MdDaily
بریم اسکریپتو اجرا کنیم و ببینیم چطور کار می کنه (تصویر پست)
اسکریپت با موفقیت اجرا میشه و کاربر ansible به همه پنج تا سرور اضافه میشه. چنتا نکته ی مهم:
👈 میتونید از empty ssh pass phrases استفاده یا ssh-agent رو اجرا کنید تا موقع اجرای اسکریپت مجبور نشید کلید (یا رمز عبور) وارد کنید.
👈 باید یک حساب کاربری معتبر داشته باشید که دسترسی super user (بدون نیاز به رمز عبور) در همه سرورها داشته باشه.
تصور کنید که باید یه کاربر رو به بیش از چندین سرور لینوکس مختلف اضافه کنید! اسکریپت
adduser.sh قطعاً می تونه کلی وقتتون رو ذخیره کنه.ادامه در پست بعدی...
🆔 @MdDaily
❤2
#ام_دی_کورس
خودکارسازی فرایند پشتیبان گیری با اسکریپت bash
گرفتن پشتیبان گیری کاری است که همه ما به صورت منظم انجام میدیم (اگه انجام نمیدید حتما انجام بدید 😄 )، پس چرا اون رو خودکار نکنیم؟ به اسکریپت
👈 متغیر dest_dir: برای مشخص کردن دایرکتوری مقصد پشتیبان.
👈 متغیر dest_server: برای مشخص کردن سرور مقصد پشتیبان.
👈 متغیر backup_time: برای مشخص کردن تاریخ پشتیبان گیری.
💡 اینجا توی اسکریپت بعد از گرفتن بک آپ رویه یک سرور بک آپ رو آپلود میکنه ولی شما میتونید با تغییر دادن کد بخشی که رو سرور آپلود میکنه به کدی که مثلا تو یک حافظه ی جانبی کپی میکنه برای خودتون شخصی سازیش کنید.
بعد، برای تمام دایرکتوریهای موجود در آرایه
نمونه خروجی
🆔 @MdDaily
خودکارسازی فرایند پشتیبان گیری با اسکریپت bash
گرفتن پشتیبان گیری کاری است که همه ما به صورت منظم انجام میدیم (اگه انجام نمیدید حتما انجام بدید 😄 )، پس چرا اون رو خودکار نکنیم؟ به اسکریپت
backup.sh زیر نگاهی بیندازید:#!/bin/bashابتدا، یک آرایه به نام backup_dirs ایجاد میکنیم که تمام نامهای دایرکتوریهایی رو که میخواهیم ازشوون پشتیبانگیری کنیم، ذخیره میکنه. بعدش، سه متغیر دیگر ایجاد می کنیم:
backup_dirs=("/etc" "/home" "/boot")
dest_dir="/backup"
dest_server="server1"
backup_date=$(date +%b-%d-%y)
echo "Starting backup of: ${backup_dirs[@]}"
for i in "${backup_dirs[@]}"; do
sudo tar -Pczf /tmp/$i-$backup_date.tar.gz $i
if [ $? -eq 0 ]; then
echo "$i backup succeeded."
else
echo "$i backup failed."
fi
scp /tmp/$i-$backup_date.tar.gz $dest_server:$dest_dir
if [ $? -eq 0 ]; then
echo "$i transfer succeeded."
else
echo "$i transfer failed."
fi
done
sudo rm /tmp/*.gzecho "Backup is done."
👈 متغیر dest_dir: برای مشخص کردن دایرکتوری مقصد پشتیبان.
👈 متغیر dest_server: برای مشخص کردن سرور مقصد پشتیبان.
👈 متغیر backup_time: برای مشخص کردن تاریخ پشتیبان گیری.
💡 اینجا توی اسکریپت بعد از گرفتن بک آپ رویه یک سرور بک آپ رو آپلود میکنه ولی شما میتونید با تغییر دادن کد بخشی که رو سرور آپلود میکنه به کدی که مثلا تو یک حافظه ی جانبی کپی میکنه برای خودتون شخصی سازیش کنید.
بعد، برای تمام دایرکتوریهای موجود در آرایه
backup_dirs، یک آرشیو tar فشرده شده gzip در /tmp ایجاد میکنه، بعدش از دستور scp برای ارسال/کپی کردن پشتیبانگیری به سرور مقصد استفاده میکنه. در نهایت، تمام آرشیوهای gzip را از /tmp حذف میکنه. نمونه خروجی
backup.sh :linux@ubuntu:~$ ./backup.shممکن است بخواهید هر روز در نیمه شب بک بگیرید. در این صورت، میتونید از cron job استفاده کنید:
Starting backup of: /etc /home /boot
/etc backup succeeded.
etc-Aug-30-20.tar.gz 100% 1288KB 460.1KB/s 00:02
/etc transfer succeeded.
/home backup succeeded.
home-Aug-30-20.tar.gz 100% 2543KB 547.0KB/s 00:04
/home transfer succeeded.
/boot backup succeeded.
boot-Aug-30-20.tar.gz 100% 105MB 520.2KB/s 03:26
/boot transfer succeeded.
Backup is done.
linux@ubuntu:~$ crontab -eادامه در پست بعدی...
0 0 * * * /home/mdDaily/noscripts/backup.sh
🆔 @MdDaily
❤2
#ام_دی_کورس
نظارت بر فضای دیسک موجود
فایل ها قرار است فضای خالی موجود را پر کنند، تنها کاری که میتونید انجام بدید اینکه که قبل از کرش سیستم خود سریع عمل کنید! میتونید از دستور df برای مشاهده فضای باقی مانده استفاده کنید:
حال به اسکریپت
توجه داشته باشید که باید
ادامه در پست بعدی...
🆔 @MdDaily
نظارت بر فضای دیسک موجود
فایل ها قرار است فضای خالی موجود را پر کنند، تنها کاری که میتونید انجام بدید اینکه که قبل از کرش سیستم خود سریع عمل کنید! میتونید از دستور df برای مشاهده فضای باقی مانده استفاده کنید:
linux@ubuntu:~$ df -h / /apps /databaseسیستم فایل /database تقریبا پرشده چونکه در حال حاضر 97% از فضا اشغال شده. اگه از دستور awk برای نمایش تنها فیلد پنجم استفاده کنیم، میتونیم فقط میزان استفاده رو نمایش بدیم.
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 20G 7.9G 11G 44% /
/dev/mapper/vg1-applv 4.9G 2.4G 2.3G 52% /apps
/dev/mapper/vg1-dblv 4.9G 4.5G 180M 97% /database
حال به اسکریپت
disk_space.sh زیر نگاه کنید:#!/bin/bashابتدا، یک آرایه بنام
filesystems=("/" "/apps" "/database")
for i in ${filesystems[@]}; do
usage=$(df -h $i | tail -n 1 | awk '{print $5}' | cut -d % -f1)
if [ $usage -ge 90 ]; then
alert="Running out of space on $i, Usage is: $usage%"
echo "Sending out a disk space alert email."
echo $alert | mail -s "$i is $usage% full" your_email
fi
done
filesystems ایجاد میکنیم که تمام فایل های سیستم رو که قرار نظارت کنه نگه می داره. سپس، برای هر سیستم فایل، درصد استفاده را دریافت کرده و بررسی میشه که آیا بزرگتر یا مساوی 90 است یا خیر. اگر استفاده بیش از 90% باشد، یک ایمیل هشدار ارسال میکنه (با استفاده از کامند mail) که نشان می دهد فضای سیستم فایل در حال اتمامه.توجه داشته باشید که باید
your_email رو در اسکریپت با ایمیل واقعی خود جایگزین کنید.ادامه در پست بعدی...
🆔 @MdDaily
❤1
Md Daily
#ام_دی_کورس نظارت بر فضای دیسک موجود فایل ها قرار است فضای خالی موجود را پر کنند، تنها کاری که میتونید انجام بدید اینکه که قبل از کرش سیستم خود سریع عمل کنید! میتونید از دستور df برای مشاهده فضای باقی مانده استفاده کنید: linux@ubuntu:~$ df -h / /apps /database…
#ام_دی_کورس
اسکریپت رو اجرا کردم:
ممکنه بخواهید اسکریپت
اسکریپت رو اجرا کردم:
linux@ubuntu:~$ ./disk_space.shو همینطور که توی تصویر پست میبیند ایمیل رو فرستاده.
Sending out a disk space alert email.
ممکنه بخواهید اسکریپت
disk_space.sh رو هر شش ساعت اجرا کنید. در این صورت باید از cron job استفاده کنید:linux@ubuntu:~$ crontab -e🆔 @MdDaily
0 */6 * * * /home/user/noscripts/disk_space.sh
❤3
#ام_دی_کورس
خب دوره ی Bash تموم شد و توی این دوره مفاهیم مختلف به همراه مثال های کاربردی پوشش داده شدند.
امیدوارم که براتون مفید بوده باشه و هر سوالی، پیشنهاد یا انتفادی هم داشتید خوشحال میشم تو گروه کانال یا کامنت های پست باهام در میان بذارید .
منابعی که برای آماده سازی این دوره استفاده شدند:
👈 کتاب Bash Command Line Pro Tips
👈 کتاب Learn Bash Quickly
👈 وبسایت linuxhandbook.com
🆔 @MdDaily
خب دوره ی Bash تموم شد و توی این دوره مفاهیم مختلف به همراه مثال های کاربردی پوشش داده شدند.
امیدوارم که براتون مفید بوده باشه و هر سوالی، پیشنهاد یا انتفادی هم داشتید خوشحال میشم تو گروه کانال یا کامنت های پست باهام در میان بذارید .
منابعی که برای آماده سازی این دوره استفاده شدند:
👈 کتاب Bash Command Line Pro Tips
👈 کتاب Learn Bash Quickly
👈 وبسایت linuxhandbook.com
🆔 @MdDaily
❤2
#ام_دی_کورس
💻 کرش کورس Bash noscript
💡 فهرست مطالب:
- مقدمه
- آماده سازی محیط کار
- ایجاد و اجرای اولین Bash noscript
- تبدیل shell noscript به bash noscript
- معرفی SheBang
- افزودن shell noscript به PATH
- متغیرها در Bash Shell Script
- ارسال آرگومانها(Passing Arguments) به Bash Scripts
- استفاده از آرایه ها در Bash
- استفاده از عملگرهای ریاضی در اسکریپتنویسی Bash
- استفاده از توان و باقیمانده (modulo)
- عملیات رشته ای (String Operations) در Bash
- دستورات شرطی (if-else و case) در Bash
- حلقه ها در Bash
- استفاده از توابع در Bash
- فایل های تمرینی
- خودکار سازی فرایند ها با Bash
🆔 @MdDaily
💻 کرش کورس Bash noscript
💡 فهرست مطالب:
- مقدمه
- آماده سازی محیط کار
- ایجاد و اجرای اولین Bash noscript
- تبدیل shell noscript به bash noscript
- معرفی SheBang
- افزودن shell noscript به PATH
- متغیرها در Bash Shell Script
- ارسال آرگومانها(Passing Arguments) به Bash Scripts
- استفاده از آرایه ها در Bash
- استفاده از عملگرهای ریاضی در اسکریپتنویسی Bash
- استفاده از توان و باقیمانده (modulo)
- عملیات رشته ای (String Operations) در Bash
- دستورات شرطی (if-else و case) در Bash
- حلقه ها در Bash
- استفاده از توابع در Bash
- فایل های تمرینی
- خودکار سازی فرایند ها با Bash
🆔 @MdDaily
🔥5❤2👍1👌1
اول از همه یه خوش آمد بگم به اعضای جدید خانواده ی MdDaily 🫶
خب قرار بود طبق نظر سنجی این هفته آموزش ساخت Cdn با گولنگ داشته باشیم :)
تا الان از اموزش های گفته شده تو نظر سنجی
- دوره ی داکر
- دوره ی بش
تو کانال گذاشته شدند ولی این هفته متاسفانه فرصت نکردم که دوره ی cdn با گولنگ رو بنویسم
اما! به پیشنهاد شما عزیزان تو کامنت ها درباره ی نحوه ی انتشار دوره ها قرار تغییراتی انجام بشه، که به زودی جزئیاتش رو منتشر میکنم
خب قرار بود طبق نظر سنجی این هفته آموزش ساخت Cdn با گولنگ داشته باشیم :)
تا الان از اموزش های گفته شده تو نظر سنجی
- دوره ی داکر
- دوره ی بش
تو کانال گذاشته شدند ولی این هفته متاسفانه فرصت نکردم که دوره ی cdn با گولنگ رو بنویسم
اما! به پیشنهاد شما عزیزان تو کامنت ها درباره ی نحوه ی انتشار دوره ها قرار تغییراتی انجام بشه، که به زودی جزئیاتش رو منتشر میکنم
❤5
قرار یه پروژه ایو تحت عنوان رویای Md: آموزش آزاد و رایگان برای همه به صورت ازاد و با مشارکت شما عزیزان توی گیت هاب شروع کنیم. که تلاشی باشه برای اینکه بتونیم منابع فارسی بیشتری در حوزه ی برنامه نویسی و تکنولوژی داشته باشیم و پلتفرمی صاحب مقالات نباشه
خب قرار چیکار کنیم؟
یک static site احتمالا با hugo روی گیت هاب بیاریم بالا که کرش کورس های آموزشی کانال از این به بعد از طریق سایت منتشر بشن که هم دسترسی بهشون راحت تر بشه و هم افراد بیشتری بتونن مشارکت کنند و مقالات خودشون رو منتشر کنند. میتونید پیشنهاد های خودتون رو توی گروه MdDailyGap مطرح کنید
چطوری میتونم مشارکت کنم؟
👈برای ساخت قالب سایت
👈مشارکت در نوشتن مقالات و آموزش ها
👈مشارکت در انتقال آموزش های کانال به وبسایت
👈و...
میتونید مشارکت کنید.
از کجا میتونم مشارکتم رو اعلام کنم؟
توی گروه کانال (MdDailyGap)
خب قرار چیکار کنیم؟
یک static site احتمالا با hugo روی گیت هاب بیاریم بالا که کرش کورس های آموزشی کانال از این به بعد از طریق سایت منتشر بشن که هم دسترسی بهشون راحت تر بشه و هم افراد بیشتری بتونن مشارکت کنند و مقالات خودشون رو منتشر کنند. میتونید پیشنهاد های خودتون رو توی گروه MdDailyGap مطرح کنید
چطوری میتونم مشارکت کنم؟
👈برای ساخت قالب سایت
👈مشارکت در نوشتن مقالات و آموزش ها
👈مشارکت در انتقال آموزش های کانال به وبسایت
👈و...
میتونید مشارکت کنید.
از کجا میتونم مشارکتم رو اعلام کنم؟
توی گروه کانال (MdDailyGap)
❤9🔥1
Md Daily
قرار یه پروژه ایو تحت عنوان رویای Md: آموزش آزاد و رایگان برای همه به صورت ازاد و با مشارکت شما عزیزان توی گیت هاب شروع کنیم. که تلاشی باشه برای اینکه بتونیم منابع فارسی بیشتری در حوزه ی برنامه نویسی و تکنولوژی داشته باشیم و پلتفرمی صاحب مقالات نباشه …
نام پیشنهادی برای وبسایت:
Final Results
10%
MdPlus
3%
MdHive
5%
MdBlaze
21%
MdFoss
59%
MdCourse
3%
توی کامنت ها میگم :)
❤🔥1
Md Daily
نام پیشنهادی برای وبسایت:
با تشکر از تمام عزیزانی که توی نظرسنجی شرکت کردند ❤️
اسم وبسایت مشخص شد و پروژه ی رویای Md: آموزش آزاد و رایگان برای همه جزئیات و مراحل کارش تا قبل از انتشار نهایی از طریق گروه کانال منتشر میشه
منتظر اتفاقات هیجان انگیزی باشید 🫶
اسم وبسایت مشخص شد و پروژه ی رویای Md: آموزش آزاد و رایگان برای همه جزئیات و مراحل کارش تا قبل از انتشار نهایی از طریق گروه کانال منتشر میشه
منتظر اتفاقات هیجان انگیزی باشید 🫶
🔥9👍1
This media is not supported in your browser
VIEW IN TELEGRAM
تست API چیه؟
تست API یه روش برای بررسی اینکه API ها به درستی کار می کنن و مشکلی ندارن. API ها یه جور رابط بین برنامه ها هستن که بهشون اجازه میدن با همدیگه ارتباط برقرار کنن.
بریم نه نوع تست API مختلف که تو ویدیویی پست اومده رو بررسی کنیم
ادامه در پست بعدی...
🆔 @MdDaily
تست API یه روش برای بررسی اینکه API ها به درستی کار می کنن و مشکلی ندارن. API ها یه جور رابط بین برنامه ها هستن که بهشون اجازه میدن با همدیگه ارتباط برقرار کنن.
بریم نه نوع تست API مختلف که تو ویدیویی پست اومده رو بررسی کنیم
ادامه در پست بعدی...
🆔 @MdDaily
❤3🔥2❤🔥1👍1
Md Daily
تست API چیه؟ تست API یه روش برای بررسی اینکه API ها به درستی کار می کنن و مشکلی ندارن. API ها یه جور رابط بین برنامه ها هستن که بهشون اجازه میدن با همدیگه ارتباط برقرار کنن. بریم نه نوع تست API مختلف که تو ویدیویی پست اومده رو بررسی کنیم ادامه در پست بعدی...…
👈 تست دودی (Smoke Testing): این تست سریع ترین نوع تست API هست و بعد از تکمیل توسعه API انجام می شه. هدف این تست اینه که ببینیم API ها به درستی کار می کنن یا نه.
👈 تست عملکردی (Functional Testing): این تست عملکرد API ها رو بررسی می کنه. یعنی اینکه می بینه API ها مطابق با الزاماتی که براشون تعریف شده کار می کنن یا نه.
👈 تست یکپارچه سازی (Integration Testing): این تست ترکیب چند API رو بررسی می کنه. یعنی اینکه می بینه API ها به درستی با همدیگه ارتباط برقرار می کنن یا نه.
👈 تست بازگشتی (Regression Testing): این تست اطمینان می ده که رفع اشکالات یا اضافه کردن ویژگی های جدید به API ها، رفتارهای موجود API ها رو مختل نمی کنه.
👈 تست بار (Load Testing): این تست عملکرد API ها رو در شرایط میزان بار مختلف (different loads) بررسی می کنه. هدف این تست اینه که ببینیم API ها می تونن در شرایط بار بالا هم به درستی کار کنن یا نه.
👈 تست استرس (Stress Testing): این تست شرایط سختی رو برای API ها ایجاد می کنه تا ببینه API ها می تونن از پس این شرایط بر بیان یا نه. هدف این تست اینه که آسیب پذیری های API ها رو شناسایی کنه.
👈 تست امنیت (Security Testing): این تست API ها رو در برابر حملات امنیتی بررسی می کنه. هدف این تست اینه که مطمئن بشه API ها در برابر حملات امنیتی مقاوم هستن.
👈 تست رابط کاربری (UI Testing): این تست تعاملات کاربری با API ها رو بررسی می کنه. هدف این تست اینه که ببینه کاربرا می تونن به راحتی از API ها استفاده کنن یا نه.
👈 تست Fuzz: این تست داده های ورودی نامعتبر یا غیرمنتظره را به API تزریق می کنه و سعی می کنه API رو خراب کنه. اینطوری، آسیب پذیری های API را شناسایی میشن.
🆔 @MdDaily
👈 تست عملکردی (Functional Testing): این تست عملکرد API ها رو بررسی می کنه. یعنی اینکه می بینه API ها مطابق با الزاماتی که براشون تعریف شده کار می کنن یا نه.
👈 تست یکپارچه سازی (Integration Testing): این تست ترکیب چند API رو بررسی می کنه. یعنی اینکه می بینه API ها به درستی با همدیگه ارتباط برقرار می کنن یا نه.
👈 تست بازگشتی (Regression Testing): این تست اطمینان می ده که رفع اشکالات یا اضافه کردن ویژگی های جدید به API ها، رفتارهای موجود API ها رو مختل نمی کنه.
👈 تست بار (Load Testing): این تست عملکرد API ها رو در شرایط میزان بار مختلف (different loads) بررسی می کنه. هدف این تست اینه که ببینیم API ها می تونن در شرایط بار بالا هم به درستی کار کنن یا نه.
👈 تست استرس (Stress Testing): این تست شرایط سختی رو برای API ها ایجاد می کنه تا ببینه API ها می تونن از پس این شرایط بر بیان یا نه. هدف این تست اینه که آسیب پذیری های API ها رو شناسایی کنه.
👈 تست امنیت (Security Testing): این تست API ها رو در برابر حملات امنیتی بررسی می کنه. هدف این تست اینه که مطمئن بشه API ها در برابر حملات امنیتی مقاوم هستن.
👈 تست رابط کاربری (UI Testing): این تست تعاملات کاربری با API ها رو بررسی می کنه. هدف این تست اینه که ببینه کاربرا می تونن به راحتی از API ها استفاده کنن یا نه.
👈 تست Fuzz: این تست داده های ورودی نامعتبر یا غیرمنتظره را به API تزریق می کنه و سعی می کنه API رو خراب کنه. اینطوری، آسیب پذیری های API را شناسایی میشن.
🆔 @MdDaily
❤2🔥2❤🔥1
Md Daily
👈 تست دودی (Smoke Testing): این تست سریع ترین نوع تست API هست و بعد از تکمیل توسعه API انجام می شه. هدف این تست اینه که ببینیم API ها به درستی کار می کنن یا نه. 👈 تست عملکردی (Functional Testing): این تست عملکرد API ها رو بررسی می کنه. یعنی اینکه می بینه…
معرفی ابزار و پروژه هایی که برای انواع مختلف تست میتونید استفاده کنید:
برای تست های : Smoke، Functional، Integration، Regression:
👉 Postman
👉 Insomnia REST
👉 Thunder Client
👉 Hoppscotch
برای تست های: Load, Stress:
👉 JMeter
👉 locust
برای تست UI:
👉 Selenium
👉 Cypress
👉 appium
👉 Puppeteer
👉 Playwright
و Fuzz:
👉 Burp Suite
👉 OWASP ZAP
🆔 @MdDaily
برای تست های : Smoke، Functional، Integration، Regression:
👉 Postman
👉 Insomnia REST
👉 Thunder Client
👉 Hoppscotch
برای تست های: Load, Stress:
👉 JMeter
👉 locust
برای تست UI:
👉 Selenium
👉 Cypress
👉 appium
👉 Puppeteer
👉 Playwright
و Fuzz:
👉 Burp Suite
👉 OWASP ZAP
🆔 @MdDaily
❤2❤🔥1🔥1
#tips
چند وقت پیش دیدم اکانت PR0GRAMMERHUM0R توی شبکه ی اجتماعی X این عکسو منتشر کرده و خب کامنت های جالبیم راجبش نوشته بودند. توی Python کلید واژه ی
🆔 @MdDaily
چند وقت پیش دیدم اکانت PR0GRAMMERHUM0R توی شبکه ی اجتماعی X این عکسو منتشر کرده و خب کامنت های جالبیم راجبش نوشته بودند. توی Python کلید واژه ی
is به معنای تساوی مقادیر نیست و نباید با عملگر == اشتباه گرفته بشه. در ادمه ی این پست توضیحات تکمیلیو میدم🆔 @MdDaily
❤🔥4👍1
Md Daily
#tips چند وقت پیش دیدم اکانت PR0GRAMMERHUM0R توی شبکه ی اجتماعی X این عکسو منتشر کرده و خب کامنت های جالبیم راجبش نوشته بودند. توی Python کلید واژه ی is به معنای تساوی مقادیر نیست و نباید با عملگر == اشتباه گرفته بشه. در ادمه ی این پست توضیحات تکمیلیو میدم…
خب توی این کد دقیقا داره چه اتفاقی میوقته؟ دوتا متغیر تعریف کرده به نام های x و y که مقدار اولیشون صفره.
یه حلقه ی while ایجاد کرده که تا زمانیکه x با y برابر هست ادامه پیدا کنه و مقدارشون رو یکی بهشون اضافه کنه در غیر این صورت حلقه رو بشکونه. همه چیز به نظر درست میرسه. اما! وقتی مقدار x و y میشه 257 با اینکه برابرن ولی برابر نیستن :)
اینجاس که تفاوت بین کلید واژه ی
پایتون برای اعداد از -5 تا 256، از قبل یه جایی رو تو مموری براشون در نظر گرفته (preallocates). وقتی تو این محدوده یه متغیر تعریف میکنید، پایتون دیگه براش یه object جدید نمیسازه و به جاش اشاره میکنه به چیزی که قبلا در نظر گرفته.
بنابراین، اگه دو متغیر رو با هم مقایسه کنید که مقادیرشون با هم برابر باشه، شناسهشون هم برابره. یعنی هر دو متغیر به یه object اشاره میکنن.
برای همینکه
حالا اگه خارج از محدوده ی -5 تا 256 یه متغیر تعریف کنید به دلیل اینکه پایتون براش یه object جدید میسازه، وقتی متغیر ها را باهم مقایسه میکیند مقدارشون برابر هست ولی ولی دیگه شناسشون باهم برابر نیست. یعنی هر دو متغیر به object های متفاوتی اشاره میکنن.
برای همینکه
پس در نتیجه کلید واژه ی
💡منظور از id شناسه ی اون object توی مموریه
🆔 @MdDaily
یه حلقه ی while ایجاد کرده که تا زمانیکه x با y برابر هست ادامه پیدا کنه و مقدارشون رو یکی بهشون اضافه کنه در غیر این صورت حلقه رو بشکونه. همه چیز به نظر درست میرسه. اما! وقتی مقدار x و y میشه 257 با اینکه برابرن ولی برابر نیستن :)
اینجاس که تفاوت بین کلید واژه ی
is با عملگر == مشخص میشه.پایتون برای اعداد از -5 تا 256، از قبل یه جایی رو تو مموری براشون در نظر گرفته (preallocates). وقتی تو این محدوده یه متغیر تعریف میکنید، پایتون دیگه براش یه object جدید نمیسازه و به جاش اشاره میکنه به چیزی که قبلا در نظر گرفته.
بنابراین، اگه دو متغیر رو با هم مقایسه کنید که مقادیرشون با هم برابر باشه، شناسهشون هم برابره. یعنی هر دو متغیر به یه object اشاره میکنن.
برای همینکه
x is y برابر میشه با True حالا اگه خارج از محدوده ی -5 تا 256 یه متغیر تعریف کنید به دلیل اینکه پایتون براش یه object جدید میسازه، وقتی متغیر ها را باهم مقایسه میکیند مقدارشون برابر هست ولی ولی دیگه شناسشون باهم برابر نیست. یعنی هر دو متغیر به object های متفاوتی اشاره میکنن.
برای همینکه
x is y برابر میشه با Falseپس در نتیجه کلید واژه ی
is در پایتون برای مقایسه ی شناسه(id) ها استفاده میشه و نه مقادیر.💡منظور از id شناسه ی اون object توی مموریه
🆔 @MdDaily
👍2❤🔥1
معرفی Pi
این پروژه خودش رو یه هوش مصنوعی شخصی معرفی میکنه و باهاش میتونید مثل یک دوست صحبت کنید، ایده های جدید بگیرید، بازی کنید، برنامه ریزی کنید و...
یه قابلیت جالب متن به گفتارم با صدای طبیعی داره که ازش میتونید برای تقویت زبان انگلیسی استفاده کنید.
فارسی متوجه میشه ولی انگلیسی جواب میده 😅 خودش میگه من فارسی حرف زدنم خوب نیست ولی متوجه میشم :)
خلاصه اگه دنبال یه چت بات هستید که ازش توی کار های شخصی یا برای یادگیری زبان استفاده کنید، حتما Pi رو امتحان کنید
وبسایت پروژه:
https://pi.ai
🆔 @MdDaily
این پروژه خودش رو یه هوش مصنوعی شخصی معرفی میکنه و باهاش میتونید مثل یک دوست صحبت کنید، ایده های جدید بگیرید، بازی کنید، برنامه ریزی کنید و...
یه قابلیت جالب متن به گفتارم با صدای طبیعی داره که ازش میتونید برای تقویت زبان انگلیسی استفاده کنید.
فارسی متوجه میشه ولی انگلیسی جواب میده 😅 خودش میگه من فارسی حرف زدنم خوب نیست ولی متوجه میشم :)
خلاصه اگه دنبال یه چت بات هستید که ازش توی کار های شخصی یا برای یادگیری زبان استفاده کنید، حتما Pi رو امتحان کنید
وبسایت پروژه:
https://pi.ai
🆔 @MdDaily
❤4👍2
آیا میدانید
در محیطهای عملیاتی/پروداکشن که داکر/کانتینر/کوبر هستند، ضروری است که swap سیستمعامل غیرفعال شود؟
وقتی swap باشه مدیریت kubelet روی مموری و اینکه پاد چه ریسورسی مصرف میکنه به هم میخوره و نتیجهاش میشه اینکه نمیتونه درست schedule کنه.
ظاهرا قضیه isolation هم هست.
یکی دیگه هم میگفت: لینوکس هم وقتی swap نداشته باشه روی مصرف مموری سگ میشه.
<مُصی>
اگه دنبال اطلاعات بیشتر هستید:
https://github.com/kubernetes/kubernetes/issues/53533
🆔 @MdDaily
در محیطهای عملیاتی/پروداکشن که داکر/کانتینر/کوبر هستند، ضروری است که swap سیستمعامل غیرفعال شود؟
وقتی swap باشه مدیریت kubelet روی مموری و اینکه پاد چه ریسورسی مصرف میکنه به هم میخوره و نتیجهاش میشه اینکه نمیتونه درست schedule کنه.
ظاهرا قضیه isolation هم هست.
یکی دیگه هم میگفت: لینوکس هم وقتی swap نداشته باشه روی مصرف مموری سگ میشه.
<مُصی>
اگه دنبال اطلاعات بیشتر هستید:
https://github.com/kubernetes/kubernetes/issues/53533
🆔 @MdDaily
👍3
کانال یه Boost نیاز داره تا استوریش فعال بشه :)
اگه دوست داشتید🫶👇🏻
https://news.1rj.ru/str/MdDaily?boost
اگه دوست داشتید🫶👇🏻
https://news.1rj.ru/str/MdDaily?boost
Telegram
Md Daily
از این کانال حمایت کنید تا بتواند به قابلیتهای اضافی دسترسی پیدا کند.
🔥4
اطلاعیه ی شرکت ارتباطات زیرساخت و تایید اختلال اینترنت :
آپدیت:
طبق اطلاعیه ی جدید شرکت ارتباطات زیرساخت و اعلام رفع مشکل :
🆔 @MdDaily
به دلیل قطعی فیبرنوری در خاک گرجستان برخی از لینک های بین الملل ورودی از خاک ارمنستان و ترکیه دچار قطعی شده است. با توجه به تمهیدات در نظر گرفته شده، بالانس پهنای باند روی سایر مسیرها انجام شده و پیگیریهای فنی لازم جهت رفع خرابی در حال انجام است و متعاقبا اطلاع رسانی خواهد گردید.
آپدیت:
طبق اطلاعیه ی جدید شرکت ارتباطات زیرساخت و اعلام رفع مشکل :
باتوجه به پیگیری های انجام شده، عملیات اجرایی لازم جهت رفع مشکلات مسیرهای فیبرنوری در خاک گرجستان انجام شد و از ساعت 50: 21 تمامی لینک های اینترنت بین الملل قطع شده، در وضعیت نرمال قرار گرفت.
🆔 @MdDaily
💔7⚡1❤1