Syntax | سینتکس – Telegram
قانون امدال:

بنظرتون اگه بی نهایت core داشته باشیم، می تونیم اجرا شدن یک برنامه رو از مثلا 100 ساعت به یک ساعت برسونیم؟
قانون امدال (AMDAHL) بهمون کمک میکنه تا به جوابمون برسیم.

قبلش بصورت خلاصه بگم serial چیه:
به قسمتی از کد که اصلا توانایی این رو نداره مالتی پراسس بشه رو serial میگیم.

فرمول امدال:
speedup ≤ 1 / (S + ((1 - S) / N) )


S:
عددی بین 0 تا یک که بر اساس حالا بگیم درصد کد های serial هستش.

N:
تعداد core ها.

مثال:
خب بیاید در نظر بگیریم که بیست درصد از کد های ما serial هستش و چهار تا core داریم.
در این صورت میشه:
1 / (0.2 + ((1 - 0.2) / 4)) = 2.5

در این صورت speed up ما میشه دو و نیم برابر و کد ما دو و نیم برابر سریع تر شده.

اما حالا در نظر بگیرید ما 40 تا core داریم،‌ فکر میکنید سرعتمون چقدر افزایش پیدا می کنه؟؟
خب بیاید که حساب کنیم:
1 / (0.2 + ((1 - 0.2) / 40)) = 4.5

بله! speedup ما میشه 4.5 برابر!
احتمالا بر خلاف تصورتون، با افزایش تعداد پراسس ها سرعت ما همش بصورت صعودی افزایش پیدا نمیکنه. در واقع بر اساس درصد serial کد های ما از یه جایی به بعد دیگه سرعت بالا نمیره و فقط بار اضافی بوجود میاد

پست بعدی با نمودار یه سری توضیحات بیشترو میدم

پس قانون امدال چیه؟
قانون Amdahl یک فرموله که بهبود احتمالی عملکرد رو که با اضافه کردن پراسس های بیشتر به یک برنامه که شامل بخش‌های ترتیبی (غیرموازی) و موازی است رو میده.

#note

@khat_academy
👍7🔥2🥰1
لیست پر استفاده ترین زبان های برنامه نویسی در گیت هاب از 2014-2022
@khat_academy
👍10
Syntax | سینتکس
قانون امدال: بنظرتون اگه بی نهایت core داشته باشیم، می تونیم اجرا شدن یک برنامه رو از مثلا 100 ساعت به یک ساعت برسونیم؟ قانون امدال (AMDAHL) بهمون کمک میکنه تا به جوابمون برسیم. قبلش بصورت خلاصه بگم serial چیه: به قسمتی از کد که اصلا توانایی این رو نداره…
توضیح:

در این نمودار y مساویه با speedup و x مساویه با تعداد هسته ها.

ایده آل ترین حالت ممکن اینه که توی کد های ما اصلا serial کد وجود نداشته باشه. در این صورت سرعت برنامه ما با اضافه شدن هسته بیشتر و بیشتر تر میشه.

اگه فقط ده درصد serial داشته باشیم توی شونزده هسته سرعت ده برابر میشه و از اون به بعد تفاوت آنچنانی نمیکنه.

اگه پنجاه درصد کد serial باشه از دو برابر بیشتر نمیشه

پس قبل از هر چیزی شما باید بررسی کنید ایا برنامه ی شما اصلا مناسب مالتی پراسس بودن هست یا خیر.

#note

@khat_academy
👍8
۵ لایسنس متن باز محبوب:

1.MIT:
این لایسنس به توسعه‌دهندگان اجازه می‌دهد کدهای منبع را بازنشر کرده و تغییراتی روی آنها اعمال کنند، حتی بدون اینکه اون کدو اپن سورسش کنن. این لایسنس محدودیت‌های کمتری نسبت به سایر لایسنس‌ها دارد.

2.GNU General Public License (GPL):
تفاوتی که این لایسنس با MIT دارد این است که اگر کدی تحت لایسنس GPL استفاده شود، کدهای منبع تغییر داده شده نیز باید تحت GPL منتشر شوند.

3.Apache:
به توسعه‌دهندگان اجازه می‌دهد کدهای خود را بازنشر کرده و تغییراتی روی آنها اعمال کنند. همچنین این لایسنس حقوق برند را نیز حفظ می‌کند و لایسنسی است که برای پروژه‌های تجاری نیز مناسب است.

4.BSD:
به توسعه‌دهندگان اجازه می‌دهد کدهای خود را بازنشر کرده و تغییراتی روی آنها اعمال کنند. شرایط این لایسنس بسیار ساده و کوتاه است و برخی نسخه‌های آن حقوق برند را نیز حفظ می‌کنند.

5.Creative Commons:
این لایسنس بیشتر برای محتوایی مانند مقالات، موسیقی و ... استفاده می‌شود. این لایسنس به صاحبان حقوق اجازه می‌دهد تا محتوای خود را با محدودیت‌هایی مانند نام برده شدن و عدم استفاده تجاری به اشتراک بگذارند.

@khat_academy
👍42🔥1
دوستان پایتون در چه سطحی هستین ؟
Anonymous Poll
54%
مقدماتی
46%
پیشرفته
Django Jwt

مشکلات سینتکسی و امنیتی پروژه جنگویی زیر رو پیدا کنید و توی کامنت بگید‌:

https://github.com/alireza-fa/django-jwt-auth

توضیح:
این یک پروژه با تمرکز بر روی پیاده سازی یک سیستم احراز هویت امن jwt در جنگو هست که در حال توسعه دادنه.
توکن ها انکریپت شده(AES) سمت فرانت اند ارسال میشوند
وریفای اکانت با ارسال otp کد انجام میشود.
کاربر ها فقط با وارد کردن شماره موبایل و دریافت کد شش رقمی عملیات لاگین رو انجام میدن

#django

@khat_academy
👍6😱1
اگر توی یک تیم کار میکنید و میخواید اکستنشن هایی که پروژه ی شما داره، بقیه ی تیم هم نصب کنن، یا اگر میخواید پروژه ی گیتهابتون اکستنشن های شما رو هم به برنامه نویس ها پیشنهاد کنه...

فایل
.vscode/extensions.json
رو بسازید و داخلش اسم اکستنشن هایی که برای اون پروژه نیازه رو بنویسید.

وقتی یکی پروژه رو توی vscode باز میکنه، vscode ازش میخواد که این اکستنشن ها رو نصب کنه.

#python

#اکستنشن


@khat_academy
👍19🔥2
دوستان منبعی میشناسید که تمرینات مقدماتی تا پیشرفته پایتون رو بذاره ؟
اگه میشناسین توکامنتا معرفی کنین
👀3🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
بعد از دیدن جلسه اول پایتون😂❤️


#fun

@khat_academy
😁16😍1🤣1
♨️ کتابخانه پایتون چیست؟

📌 کتابخانه پایتون مجموعه‌ای از کدها و توابع از پیش نوشته شده است که مجموعه‌ای از ابزارهای مفید و قابل‌استفاده را برای وظایف و اهداف مختلف به کاربران ارائه می‌دهد.

💢 این کتابخانه‌ها توسط توسعه‌دهندگان ایجادشده‌اند تا با ارائه توابع، کلاس‌ها و ماژول‌های از پیش پیاده‌سازی‌شده‌، به ساده‌سازی و تسریع فرآیند کدنویسی کمک کنند.

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

▪️تجزیه‌وتحلیل و دست‌کاری داده‌ها
▫️محاسبات علمی
▪️یادگیری ماشین و هوش مصنوعی
▫️مصورسازی داده‌ها
▪️توسعه وب
▫️پردازش زبان طبیعی
▪️توسعه بازی
▫️شبکه و خدمات وب
▪️پایگاه‌های داده
▫️تست و تضمین کیفیت

#python
#معرفی_کتابخانه


@khat_academy
👍12
⌨️ میدونستید VS Code یه مرورگر تو خودش داره؟!

برنامه محبوب VS code یه مرورگر داخلی تو خودش داره که بعضی مواقع میتونه کار راه انداز باشه.

فعال‌سازیش هم کاری نداره فقط کافیه کلید های زیر رو همزمان باهم بگیرید

Ctrl + Shift + P

بعدش سرچ کن Simple browser و تماام ، آدرس سایت مدنظرتون رو وارد کنید ؛)




#vscode
#python


@khat_academy
👏8😱3👍2
چند تا از بهترین کتاب ها درباره ساختمان داده و الگوریتم.

خودم دارم introduction to algorithms رو شروع می کنم
نکات و مطالب جالبش رو براتون پست میکنم(با هشتگ data_structure).

اگه کتاب فارسی میخواید بخونید این دوتا کتابای خوبی هستن:
داده‌ساختارها و مبانی الگوریتم‌ها
ساختمان داده دکتر ابراهیمی مقدم

#book

@khat_academy
👍4🔥1
دوستان لینک گروهمونه جوین شید
_انتقادات و پیشنهاداتونو بگید
_سوالی داشتین بپرسین و همدیگه رو راهنمایی کنید

https://news.1rj.ru/str/Syntax_fa_group
🔥6👍1🎉1
Syntax | سینتکس pinned «دوستان لینک گروهمونه جوین شید _انتقادات و پیشنهاداتونو بگید _سوالی داشتین بپرسین و همدیگه رو راهنمایی کنید https://news.1rj.ru/str/Syntax_fa_group»
ساختمان داده (Data Structure) چیست؟

توضیحات کمی زیاده ولی بنظرم جذابه و برای همه افراد این کانال پیشنهاد میشه حتما تا آخرشو بخونن

تا الان هممون حداقل یک مفهوم سطحی از data structure رو یاد گرفتیم.
توی ویکی پدیا و اکثر وب سایت ها همون توضیح کوتاه رو میده.

اما بیاید یکم عمیق تر شیم

دیتا (Data) چیه؟
خب Structure که مشخصه یک آرایش، ساختار، سازمان دهی کردن هستش.

برای درک دیتا بهتره کمی درباره ساز و کار کامپیوتر بدونیم:
قلب تپنده کامپیوتر CPU هستش
سی پی یو یک چیزی داره به اسم ALU کار اصلی ایشون در واقع انجام محاسبه ها و انجام عملیات های منطقی روی داده ها توی پردازنده اصلی یا همون CPU هستش.

داده ها از کجا میان ؟
داده ها از main memory یا همون رم سیستم میان.
تا اونجا که خودتون در جریانید کامپیوتر ها باینری هستن پس اینطور در نظر بگیرید ما کلی صفر و یک توی رم داریم.

نکته ای که باید توجه کنید اینه کامپیوتر ذاتا فقط عدد میفهمه

اگه شما با هر زبان برنامه نویسی کار کرده باشید یک چیزی وجود داره به اسم انواع داده (data types)

هر زبان برنامه نویسی یک سری انواع داده اصلی رو میده.

اولین نوع داده ای که میشه اشاره کرد Boolean هستش. اینطوریه که اگه صفر بود false هستش و اگه غیر صفر بود true مثلا یک باشه true هستش
کامپیوتر هم اینو خیلی راحت میفهمه، بیسیک ترین نوع داده هستش که با یه بیت هم میشه نمایشش داد

انواع اعداد رو داریم مثلا int، short, long

اعداد اعشاری رو داریم مثل float و double

#data_structure

@khat_academy
👍82
خب تا اینجا هر نوع تایپی که اشاره کردیم عدد بود و همچنین کل چیزی که CPU میفهمه اعداد هستش

ولی خب سوال اینجاست. ما که فقط اعداد نداریم مثلا چیزی به اسم رشته (String) رو داریم. پس چطور باهاش کار می کنیم؟

رشته چطوری ساخته میشه؟
رشته به این شکل ساخته میشه که میایم بر اساس هر حرف عددی رو تعریف میکنیم. اگه یادتون باشه چیزی به اسم جدول ascii codes داریم که توی این جدول مشخص شده مثلا A میشه 65
پس چیزی که توی حافظه برای رشته نوشتیم در واقع عدد هستش

اگه همه چی عدد هستش. چجوری داده های پیچیده تر رو میسازیم؟

اینجا از Composition استفاده میکنیم. یعنی میایم چند تا نوع داده رو با هم ترکیب میکنیم یک نوع داده پیچیده تر رو میسازیم. مثلا دانش آموز رو میسازیم
دانش آموز خودش مثلا از

                    name: str
Student      code: int
                    age: int

تشکیل شده.

#data_structure

@khat_academy
👍101
یک روش دیگه هم برای مدیریت و ساخت انواع جدید به اسم aggregation هستش. یعنی یک سری از آبجکت ها، اشیا رو کنار هم قرار بدم تا یک چیز بزرگ تری رو بسازم

مثلا تعدادی دانشجو رو کنار هم قرار میدیم و کلاس رو میسازیم

این اشیا بصورت مستقل خودشون هویت دارن و شخصیت مستقل دارن

وقتی کنار هم میذاریمشون بهش میگیم aggregation

حالا وقتی که میایم آبجکت ها رو کنار هم قرار میدیم، جاییه که Data Structure به دادمون میرسه.

یعنی وقتی میخوایم چند تا آبجکت رو کنار هم قرار بدیم، باید از یک ساختار داده، از یک ساختمان داده استفاده کنیم تا این آبجکت ها رو کنار هم بچینیم.
خب اینهمه توضیح  دادیم تا رسیدیم به اینجا که ساختمان داده چیه و چه کاربردی داره

یکی از اساسی ترین نوع ساختمان داده ای که داریم آرایه (array) هستش که کاملا بیسیک هستش و توی همه ی زبان ها وجود داره.

امیدوارم قابل فهم توضیح داده باشم

#data_structure

@khat_academy
👍14
ربات هوش مصنوعی بینگ توی گروه خط اضافه شد 🔥

برای سوال پرسیدن اول پیامتون bing بنویسید و ادامه سوال

لینک گروه:
https://news.1rj.ru/str/khat_academy_group

#ai

@khat_academy
🎉6👍1🔥1
♨️ زبان پایتون تو چه زمینه هایی کاربرد داره ؟!


#python

@khat_academy
🔥8👍1👎1