Please open Telegram to view this post
VIEW IN TELEGRAM
🤣18👨💻5👍2👎1
مشکل اصلی که در نرمافزار CrowdStrike رخ داد، به دلیل دسترسی نادرست به حافظه از طریق یک اشارهگر تهی (NULL pointer) در زبان برنامهنویسی C++ بود. حافظه در کامپیوتر به صورت یک آرایه بزرگ از اعداد سازماندهی شده است. اگر برنامهای تلاش کند به یک آدرس حافظه نامعتبر دسترسی پیدا کند، سیستمعامل بلافاصله برنامه را متوقف میکند و این موضوع منجر به خرابی سیستم میشود.
در این حالت خاص، برنامه سعی کرد به آدرس حافظه 0x9c (که معادل 156 در مبنای 10 است) دسترسی پیدا کند. این آدرس حافظه نامعتبر است و دسترسی به آن باعث میشود که سیستمعامل برنامه را متوقف کند. این مسئله به دلیل عدم بررسی اشارهگر تهی توسط برنامهنویس اتفاق افتاد.
برای مثال:
struct Obj {
int a;
int b;
};
Obj* obj = NULL;
print(obj->a);در این مثال، اشارهگر obj تهی (NULL) است. هنگامی که برنامه سعی میکند به عضو a از شیء obj دسترسی پیدا کند، به دلیل تهی بودن اشارهگر، به یک آدرس نامعتبر دسترسی پیدا میکند و باعث خرابی برنامه میشود.
این مشکل بهخصوص خطرناک بود زیرا در یک درایور سیستمی رخ داد. درایورهای سیستمی دسترسیهای سطح بالایی به منابع سیستم دارند و خرابی در این درایورها میتواند منجر به توقف کل سیستمعامل و نمایش صفحه آبی مرگ (BSOD) شود.
برای جلوگیری از چنین مشکلاتی، برنامهنویسان باید همیشه قبل از دسترسی به اشارهگرها، آنها را بررسی کنند. استفاده از زبانهای برنامهنویسی مدرن مانند Rust که از دسترسیهای نادرست به حافظه جلوگیری میکنند، میتواند به کاهش این خطرات کمک کند.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Anonymous Poll
38%
یادگیری مطالب جدید
9%
کد Review کردن
32%
شروع پروژه جدید
4%
آپدیت پروژه قبلی
17%
فیکس کردن باگ
❤3👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4❤🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👌3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣42👀1
✔️ اصطلاح SDK چیست؟
این اصطلاح مخفف "Software Development Kit" به معنای "کیت توسعه نرمافزار" است. این کیت شامل مجموعهای از ابزارها، کتابخانهها، مستندات و نمونه کدهاست که برای توسعهدهندگان نرمافزار فراهم میشود تا بتوانند برنامهها، اپلیکیشنها یا سرویسهای خاصی را برای یک پلتفرم یا چارچوب خاص ایجاد کنند.
یک SDK معمولاً شامل موارد زیر است:
1. ابزارهای توسعه: مانند کامپایلرها، دیباگرها، ویرایشگرهای کد و غیره.
2. کتابخانهها و APIها: مجموعهای از توابع و کلاسها که فرآیند توسعه را تسهیل میکنند.
3. مستندات: راهنماها، مستندات فنی و نمونه کدها که به توسعهدهندگان کمک میکنند تا بفهمند چگونه از ابزارها و کتابخانههای موجود استفاده کنند.
4. مثالهای کد: نمونههایی از کدهای کاربردی که به عنوان الگو برای توسعهدهندگان عمل میکنند.
به عنوان مثال، اگر شما قصد دارید یک اپلیکیشن موبایل برای سیستم عامل اندروید بنویسید، میتوانید از Android SDK استفاده کنید که تمام ابزارها و کتابخانههای مورد نیاز برای توسعه اپلیکیشنهای اندرویدی را شامل میشود.
💻 @Teachify | برنامه نویسی
این اصطلاح مخفف "Software Development Kit" به معنای "کیت توسعه نرمافزار" است. این کیت شامل مجموعهای از ابزارها، کتابخانهها، مستندات و نمونه کدهاست که برای توسعهدهندگان نرمافزار فراهم میشود تا بتوانند برنامهها، اپلیکیشنها یا سرویسهای خاصی را برای یک پلتفرم یا چارچوب خاص ایجاد کنند.
یک SDK معمولاً شامل موارد زیر است:
1. ابزارهای توسعه: مانند کامپایلرها، دیباگرها، ویرایشگرهای کد و غیره.
2. کتابخانهها و APIها: مجموعهای از توابع و کلاسها که فرآیند توسعه را تسهیل میکنند.
3. مستندات: راهنماها، مستندات فنی و نمونه کدها که به توسعهدهندگان کمک میکنند تا بفهمند چگونه از ابزارها و کتابخانههای موجود استفاده کنند.
4. مثالهای کد: نمونههایی از کدهای کاربردی که به عنوان الگو برای توسعهدهندگان عمل میکنند.
به عنوان مثال، اگر شما قصد دارید یک اپلیکیشن موبایل برای سیستم عامل اندروید بنویسید، میتوانید از Android SDK استفاده کنید که تمام ابزارها و کتابخانههای مورد نیاز برای توسعه اپلیکیشنهای اندرویدی را شامل میشود.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
برنامه نویسی | Teachify
✔️ اصطلاح SDK چیست؟ این اصطلاح مخفف "Software Development Kit" به معنای "کیت توسعه نرمافزار" است. این کیت شامل مجموعهای از ابزارها، کتابخانهها، مستندات و نمونه کدهاست که برای توسعهدهندگان نرمافزار فراهم میشود تا بتوانند برنامهها، اپلیکیشنها یا سرویسهای…
در زیر به برخی از محبوبترین SDKها و کتابخانههای مرتبط با پایتون اشاره میکنم:
1. AWS SDK for Python (Boto3):
برای تعامل با سرویسهای مختلف AWS (Amazon Web Services) مانند S3، EC2، DynamoDB و غیره استفاده میشود.
2. Google Cloud SDK:
شامل ابزارها و کتابخانههایی برای کار با سرویسهای مختلف Google Cloud Platform مانند Cloud Storage، BigQuery، Compute Engine و غیره است.
3. Microsoft Azure SDK for Python:
برای مدیریت و تعامل با سرویسهای Azure مانند Azure Blob Storage، Azure Cosmos DB، Azure Functions و غیره به کار میرود.
4. Facebook SDK for Python:
برای توسعه برنامهها و سرویسهایی که با Facebook و APIهای آن ارتباط برقرار میکنند، استفاده میشود.
5. Twitter API SDK for Python (Tweepy):
برای تعامل با API توییتر و توسعه برنامههای مرتبط با این پلتفرم استفاده میشود.
6. OpenAI API for Python:
برای دسترسی به مدلهای زبان OpenAI و استفاده از آنها در برنامههای مختلف به کار میرود.
7. TensorFlow:
یک کتابخانه متنباز برای یادگیری ماشین و یادگیری عمیق که توسط Google توسعه داده شده است.
8. Keras:
یک کتابخانه سطح بالا برای یادگیری عمیق که روی TensorFlow ساخته شده است.
9. PyQt/PySide:
کتابخانههایی برای توسعه برنامههای دسکتاپ با رابط کاربری گرافیکی (GUI) بر پایه کیوت (Qt).
این فقط چند نمونه از SDKهای محبوب برای پایتون است و بسیاری از کتابخانهها و ابزارهای دیگر نیز وجود دارند که میتوانند بسته به نیازهای خاص شما مفید باشند.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
✔️ یه جمله ای که امروز خوندم و خیلی روی من تاثیر گذاشت این بود:
خودتون رو با کسی مقایسه نکنید چون اون شخص یه زمانی خودشم مبتدی بوده!
فقط تلاش کنید، قطعا به اون چیزی که میخوایین میرسین.
❤️ @Teachify | برنامه نویسی
موفقیت هیچ رمزی نداره
فقط تلاش و پشتکار میخواد!
خودتون رو با کسی مقایسه نکنید چون اون شخص یه زمانی خودشم مبتدی بوده!
فقط تلاش کنید، قطعا به اون چیزی که میخوایین میرسین.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18💯5❤1👎1
functools برای ایجاد و استفاده از توابع جزئی (partial functions) است. این تکنیک میتواند کد شما را خواناتر و منعطفتر کند.فرض کنید تابعی دارید که چندین آرگومان میگیرد و شما میخواهید نسخهای از این تابع بسازید که برخی از آرگومانهایش ثابت باشند. برای این کار میتوانید از
functools.partial استفاده کنید.در اینجا یک مثال میآورم:
from functools import partial
def multiply(a, b):
return a * b
# ساختن تابع جزئی که همیشه a برابر 2 است
double = partial(multiply, 2)
print(double(5)) # خروجی: 10
print(double(10)) # خروجی: 20
در این مثال، ما یک تابع جزئی به نام
double ایجاد کردهایم که تابع multiply را با a برابر 2 صدا میزند. حالا هر بار که double را صدا میزنید، فقط نیاز دارید مقدار b را به آن بدهید و مقدار a همیشه 2 خواهد بود.این روش میتواند در مواردی که نیاز به استفاده مکرر از یک تابع با آرگومانهای ثابت دارید، بسیار مفید باشد و کد شما را سادهتر و خواناتر کند.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13💯2❤1
✔️ خبر بد برای کاربران CentOS 7
وقت آن رسیده که به فکر مهاجرت باشید! با پایان یافتن پشتیبانی از CentOS 7 در 30 ژوئن 2024، سیستمهای شما در برابر تهدیدات امنیتی آسیبپذیر هستند.
اگر از CentOS 7 در سرور یا سیستمهای خود استفاده میکنید، توصیه میشود هرچه سریعتر به یک توزیع پایدارتر و پشتیبانیشدهتر مهاجرت کنید.
پ.ن: شما چه سیستم عاملی را به عنوان جایگزین انتخاب خواهید کرد؟
❤️ @Teachify | برنامه نویسی
وقت آن رسیده که به فکر مهاجرت باشید! با پایان یافتن پشتیبانی از CentOS 7 در 30 ژوئن 2024، سیستمهای شما در برابر تهدیدات امنیتی آسیبپذیر هستند.
اگر از CentOS 7 در سرور یا سیستمهای خود استفاده میکنید، توصیه میشود هرچه سریعتر به یک توزیع پایدارتر و پشتیبانیشدهتر مهاجرت کنید.
پ.ن: شما چه سیستم عاملی را به عنوان جایگزین انتخاب خواهید کرد؟
Please open Telegram to view this post
VIEW IN TELEGRAM
💔8👍2
✔️ جان کارمک (برنامهنویس تعدادی از بازیهای خاطرهانگیز ما):
❤️ @Teachify | برنامه نویسی
برنامهنویسی یک بازی جمع صفر نیست. آموزش چیزی که بلدید به دیگران، آن را از شما نمیگیرد. من خوشحالم تا جایی که میتوانم دانشم را به اشتراک بگذارم، زیرا من به خاطر عشق به برنامهنویسی در این حرفه هستم
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍1