Syntax | سینتکس
Open in Telegram
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
Show more3 200
Subscribers
+1024 hours
+197 days
+2030 days
Posts Archive
3 200
سلام دوستان بنده نیما هستم. ادمین جدیدتون😁
از اشنایی باشما خوشحالم. قراره باهمدیگه مباحث پایتون نسبتا پیشرفته رو مرور کنیم با کتابخونه های کاربری کار کنیم و چیزای جدید یاد بگیریم
امروز و در دوره های بعدی در مورد کتابخونه سلنویم بحث میکنیم
سلنیوم(Selenium) چیست؟
سلنیوم یک کتابخانه محبوب و قدرتمند است که برای اتوماسیون مرورگر وب استفاده میشود. به عبارت دیگر، با Selenium میتوانید یک مرورگر وب را به وضعیتی مشخص تنظیم کنید و عملیات مختلفی مثل کلیک کردن روی المانها، وارد کردن متن، جستجو در وبسایتها و حتی تستهای اتوماتیک انجام دهید.
ایجاد یک مرورگر وب با Selenium:
نصب Selenium:
ابتدا باید کتابخانه Selenium را در نصب کنید. از دستور زیر برای نصب استفاده کنید:
pip install selenium
وارد کردن کتابخانه:
در ابتدا، میبایست کتابخانه Selenium را وارد کنید:
from selenium import webdriver
ایجاد مرورگر:
سپس، با استفاده از کد زیر، یک نمونه از مرورگر مورد نظرتان مثل Google Chrome ایجاد میکنید:
توجه کنید که قبلش باید درایور مرورگرتون رو نصب کنید.
مثلا اگه قراره از کروم استفاده کنید سرچ کنید درایور کروم براتون میاد و آخرین نسخه رو دانلود کنید.
driver = webdriver.Chrome()
در اینجا، ما از مرورگر Chrome استفاده کردهایم. شما میتوانید به جای Chrome() مرورگر دیگری مانند Firefox() یا Edge() را انتخاب کنید.
باز کردن یک صفحه وب:
حالا که مرورگر ایجاد شده است، میتوانید یک صفحه وب را باز کنید. به عنوان مثال:
driver.get("https://www.example.com")
بستن مرورگر:
در نهایت، میتوانید مرورگر را ببندید:
driver.quit()
این همه! حالا شما میتوانید مرورگر وب را با Selenium ایجاد کرده و از آن برای اجرای عملیاتهای مختلف روی وبسایتها استفاده کنید.
#selenium #python
@khat_academy
3 200
۵ لایسنس متن باز محبوب:
1.MIT:
این لایسنس به توسعهدهندگان اجازه میدهد کدهای منبع را بازنشر کرده و تغییراتی روی آنها اعمال کنند، حتی بدون اینکه اون کدو اپن سورسش کنن. این لایسنس محدودیتهای کمتری نسبت به سایر لایسنسها دارد.
2.GNU General Public License (GPL):
تفاوتی که این لایسنس با MIT دارد این است که اگر کدی تحت لایسنس GPL استفاده شود، کدهای منبع تغییر داده شده نیز باید تحت GPL منتشر شوند.
3.Apache:
به توسعهدهندگان اجازه میدهد کدهای خود را بازنشر کرده و تغییراتی روی آنها اعمال کنند. همچنین این لایسنس حقوق برند را نیز حفظ میکند و لایسنسی است که برای پروژههای تجاری نیز مناسب است.
4.BSD:
به توسعهدهندگان اجازه میدهد کدهای خود را بازنشر کرده و تغییراتی روی آنها اعمال کنند. شرایط این لایسنس بسیار ساده و کوتاه است و برخی نسخههای آن حقوق برند را نیز حفظ میکنند.
5.Creative Commons:
این لایسنس بیشتر برای محتوایی مانند مقالات، موسیقی و ... استفاده میشود. این لایسنس به صاحبان حقوق اجازه میدهد تا محتوای خود را با محدودیتهایی مانند نام برده شدن و عدم استفاده تجاری به اشتراک بگذارند.
3 200
#موقت
سه تا نیرو نیاز داریم برای پروژه جدیدمون و پروژه های آینده
گرافیست:
به یه گرافیست کار نیاز داریم که طراحی بصریش خوب باشه
سئو کار
طراح ui ux
اگه شرایطش رو دارید بهم پیام بدید:
@alireza_fai
اگه کسی رو میشناسید ممنونتون میشم بهش اطلاع بدید🙏
3 200
توضیح:
این نمودار y مساویه با speedup و x مساویه با تعداد هسته ها.
ایده آل ترین حالت ممکن اینه که توی کد های ما اصلا serial کد وجود نداشته باشه. در این صورت سرعت برنامه ما با اضافه شدن هسته بیشتر و بیشتر تر میشه.
اگه فقط ده درصد serial داشته باشیم توی شونزده هسته سرعت ده برابر میشه و از اون به بعد تفاوت آنچنانی نمیکنه.
اگه پنجاه درصد کد serial باشه از دو برابر بیشتر نمیشه
پس قبل از هر چیزی شما باید بررسی کنید ایا برنامه ی شما اصلا مناسب مالتی پراسس بودن هست یا خیر.
3 200
قانون امدال:
بنظرتون اگه بی نهایت 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
3 200
چرا کروم کلی پراسس ایجاد میکنه!؟
خیلیا از کروم ایراد میگیرن و یا کلا ازش استفاده نمی کنن و فکر می کنن خیلی گنگ هستن.
اما خوبی هایی که کروم داره رو در نظر نگرفتن که قراره با هم بررسیش کنیم
برای هر چیز، پراسس جداگونه:
کروم اولین پراسسی که باز میکنه Browser هستش که کاملا مشخصه چیه.
بعدی GPU process که از کارت گرافیک برای کار های گرافیکی استفاده می کنه.
پراسس بعدی Storage service هستش که ذخیره سازی دیتا رو به عهده داره.
همچنین برای هر extension که دارید و new tab که باز میکنید یه پراسس جداگونه هم باز می کنه.
خب سوال اینه همه اینکارا واسه چیه؟
اولین دلیل امنیت هستش
مثلا اگه تو یکی از تب ها شما لینک مخربی رو باز کردید فقط اون پراسس دچار مشکل میشه و اگه بخوان به مثلا پسورد های شما دسترسی پیدا کنن کارشون خیلی سخت میشه چون توی پراسس جدا قرار داره.
دلیل دیگه که میتونم بگم استفاده از چند core هستش که باعث speed up و افزایش سرعت برنامه میشه. در واقع یه برنامه مالتی پراسس رو اجرا می کنه.
@khat_academy
3 200
🔴 ساخت کلید میانبر برای ران کردن کد درvscode
ما میتونیم برای run python file in terminal کلید میانبر تعریف تعریف کنیم .
1. وارد قسمت file بشید (بالای صفحه سمت چپ گزینه اول)
2.روی گزینه preferencesکلیک کنید .
3.روی گزینه keyboard shortcustکلیک کنید .
4.درقسمت search عبارت run python file in terminalرا تایپ کنید .
5.روی +کنار متن کلیک کنید .
6.پنجره ای براتون باز میشه که ازتون میخواد کلید هایی که مدنظرتون رو وارد کنید
برای مثال من کلید هایctrl+shift+D را وارد کردم (توجه داشته باشید هر دکمه ای که دلتون میخواد رو میتونید وارد کنید )
7.درنهایت enter رو میزنید و براتون ست میشه و میتونین برای ران کردن کدتون از کلید های میانبر استفاده کنید.
@khat_academy
3 200
IPC and RPC
فرق بین IPC و RPC چیه؟
احتمالا تا الان RPC رو شنیدید که Remote procedure call هستش و حالا یه فانکشن و قطعه کدی رو از راه دور اجراش می کنه.
اما بیاید از یه دید دیگه به قضیه نگاه کنیم.
توی IPC ما داخل یک سیستم می تونیم بین core های cpu ارتباط برقرار کنیم و در واقع پراسس های مختلف با هم در تماس باشن.
اما توی RPC اتفاقی که میوفته اینه که ما می تونیم با پراسسی که توی یک سیستم دیگه قرار داره ارتباط برقرار کنیم که خب یه تکنولوژی باحال و خیلی خیلی کاربردیه
توضیح کوتاهی که medium داده:
IPC:
روشی که پراسس های موجود توی یک سیستم رو بهشون توانایی تعامل داشتن با همدیگه رو میده
RPC:
یک نوع خاص از ارتباطه که میتونه توی یه سیستم یا اینکه توی شبکه بین سیستم های مختلف باشه
https://medium.com/concepts-for-dummies/ipc-vs-rpc-12001178281f
@khat_academy
3 200
تفاوت بین concurrency و parallelism چیست؟
concurrency و parallelism
دو مفهومی که بسیار به هم نزدیک هستند و اغلب برنامه نویسان آن را اشتباه می گیرند. در بسیاری از مصاحبه های شغلی نیز در این باره سوال پرسیده می شود.
تصور کنید در حال خرد کردن سالاد هستید در حالی که گهگاه باید سوپ را هم بزنید. شما باید خرد کردن را متوقف کنید، قابلمه سوپ را بررسی کنید، و سپس دوباره ادامه دهید و روند را تکرار کنید تا همه چیز تمام شود. ما در اینجا یک منبع پردازش داریم (شما)، این همزمانی است.
حالا تصور کنید که با یک دوست در آشپزخانه هستید. کار شما خرد کردن سالاد است در حالی که کار دوستتان بررسی قابلمه سوپ است. اکنون دو سرآشپز داریم، یکی که می تواند هم زدن را انجام دهد و دیگری می تواند سالاد را خرد کند. ما کار را با افزودن یک منبع پردازش دیگر (دوست شما) تقسیم کرده ایم. این موازی سازی است.موازی بودن یک ویژگی اجرایی است. موازی سازی به معنای واقعی کلمه اجرای فیزیکی همزمان وظایف در زمان اجرا است و به سخت افزاری با منابع محاسباتی متعدد نیاز دارد.
#note
@khat_academy
3 200
Multi programming, multi tasking
خب parallel رو بذاریم کنار تو اون حالت مثلا دو تا program بصورت موازی توی دو تا هسته اجرا میشن و همه چی اوکیه.
توی تک هسته و یا یک هسته ما چطور بتونیم استفاده مفید تری ببریم؟ اینجاست که مفهوم همروندی رو داریم.
دو تا روشی که تو این حالت داریم رو بیاید بررسی کنید
Multi programming:
فرض کنید شما یک بازی رو کلیک کردید و اجراش کردید.
تو اون لحظه که مینویسه loading تا عملیات I/O انجام بشه میاد و میگه من الان بیکارم و cpu میره پردازش دیگه ای رو انجام میده.
اما این روش مشکلاتی داشت
ممکن بود یه برنامه اصلا پردازشش تموم نشه و بقیه همینجوری زل بزنن بهش تا پردازشش تموم بشه
Multi tasking:
تو قبلی که دیگه الان میشه گفت منسوخ شده مشکلاتی داشت که اشاره کردم.
کاری که توی multi tasking انجام میشه سویچ کردن بین تسک های مختلفه یا به عبارتی context switch کردن بین تسک ها هستش
تو این حالت هر تسک لحظه ای سویچ میشه روش و پردازشش میکنه و بعد میره سراغ تسک بعدی(سویچ کردن های خیلی سریع)
اینقدر سریع این سویچ کردن ها انجام میشه که شما حس میکنید داره بصورت همزمان اجرا میشه
کاری که تو cpu اتفاق میوفته اینه که یه تسک رو مدت زمان کوتاهی اجراش می کنه بعد حالت تسک رو توی register به خاطر میسپاره میره سراغ تسک بعدی و بعدی تا دوباره برسه به همون تسک.
از اونجا که حالت تسک رو توی رجیستر به خاطر سپرده بود، ادامش رو انجام میده
@khat_academy
3 200
Multi programming, multi tasking
خب parallel رو کلا بذاریم کنار تو اون حالت مثلا دو تا program بصورت موازی توی دو تا هسته اجرا میشن.
اما توی concurrent و خب توی تک هسته ما چطور بتونیم استفاده مفید تری ببریم. اینجاست که دو روش بوجود اومد
Multi programming:
فرض کنید شما یک بازی رو کلیک کردید و اجراش کردید.
تو لحظه که مینویسه loading تا عملیات I/O انجام بشه میاد و میگه من الان بیکارم و cpu میره پردازش دیگه ای رو انجام میده.
اما این روش مشکلاتی داشت
ممکن بود یه برنامه اصلا پردازشش تموم نشه و بقیه همینجوری زل بزنن بهش تا پردازشش تموم بشه
Multi tasking:
تو قبلی که دیگه الان میشه گفت منسوخ شده مشکلاتی داشت که اشاره کردم.
کاری که توی multi tasking انجام میشه سویچ کردن بین تسک های مختلفه یا به عبارتی context switch کردن بین تسک ها.
تو این حالت هر تسک لحظه ای سویچ میشه روش و پردازشش میکنه و بعد میره سراغ تسک بعدی(سویچ کردن های خیلی سریع)
اینقدر سریع این سویچ کردن ها انجام میشه که شما حس میکنید داره بصورت همزمان اجرا میشه
کاری که تو cpu اتفاق میوفته اینه که یه تسک رو مدت زمان کوتاهی اجراش می کنه بعد حالت تسک رو توی register به خاطر میسپاره میره سراغ تسک بعدی و بعدی تا دوباره برسه به همون تسک.
از اونجا که حالت تسک رو توی رجیستر به خاطر سپرده بود، ادامش رو انجام میده
@khat_academy
3 200
🟣 اگه برنامه نویسی و اکستنشن Error code نداری قطعا باخت دادی!
▪️با استفاده از اکستنشن Error code به راحتی هرچهتمام تر میتونید قبل از اجرای کدتون تمام ارورهاش رو مشاهده کنید👌
https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens
@khat_academy
