Mohammad Dori – Telegram
Mohammad Dori
1 subscriber
9 photos
1 video
17 links
ارتباط با من
@Mohamad_Dori

آدرس گیت هاب
https://github.com/dori-dev

آدرس اینستاگرام
instagram.com/mr.dori.dev

ایمیل
mr.dori.dev@gmail.com
Download Telegram
Forwarded from Sadra Codes
پروژه Hey در Hashnode X MindsDB Hackathon دوم شد! ❤️

جایزه‌ای که به Hey تعلق گرفت: 1000$ 💵

یه توضیح کوچیک..
هی یه پکیج پایتونه که یه AI Pair Programming Friend مینیمال هست و توی CLI می‌تونه خیلی بهتون راهنمایی و Code Example بده. همچنین میتونید بهش فایل بعنوان ورودی بدید و ازش درخواست‌هایی مثل ریفکتور کردن یا Simplify کردن یا توضیح ازش بخواید.

پروژه‌ها رو طبق پارامترها و معیارهای زیر بررسی کردن:
- Product Thinking
- UI UX
- Code (Quality, Clean Code,...)
- Article Quality

آنچنان بک خفن و سنگینی نداره و اگه کدبیسش رو مرور کنید، میتونه دید خوبی نسبت به ساختار یه پکیج پایتونی بهتون بده هرچند همیشه جای بهتر شدن و پیشرفت هست. :)

لینک‌ها..
GitHub: github.com/lnxpy/hey
——————————————
PyPI: pypi.org/project/hey-mindsdb/
——————————————
Article: imsadra.me/introducing-hey-your-ai-powered-pair-programming-friend

خوشحال میشم شما هم کانتریبیوت کنید و با هم توسعش بدیم. دمتون گرم.
Forwarded from جادی | Jadi
الان دیدم که دوستان یه کتاب برنامه نویسی #گو آزاد رو دارن آنلاین پیش می برن و به من هم تقدیم شده (: مرسی از تون (:
و بقیه اگر دوست دارن مشارکت کنن یا یاد بگیرن یا حتی نگاهی بندازن الان وقتشه (:
https://book.gofarsi.ir/
صرف ایرانی بودن اندازه ۱۵۰ صفحه اینسکیوریتی با خودش داره.

از بچگی تو مدرسه بهت یه تفکر جبری و به‌زور بهشت رفتن تحمیل شده و برای فرار ازش چه دروغ‌هایی که نباید بگی.

تو نوجوانی و بلوغ باید طبیعی‌ترین چیزهای زندگی رو به سخت‌ترین و پیچیده‌ترین حالت ممکن یواشکی تجربه کنی.

اولین بوسه‌ت پر از ترسه و اضطرابه. اولین شکوفایی جسمیت پره از فشار و سرزنش و محدودیت. بلوغت رو باید با جنگ و و سرکوب و پنهان‌کاری طی کنی و بقیه عمر سعی کنی یادش نیافتی. و رابطه و برخورد با آدما رو باید با آزمون و خطا، خطاهایی که هزینه‌شون کم نیست، خودت از تو این جنگل پیدا کنی.

فشار کنکور و رقابت باعث می‌شه زندگی رو بر خودت حرام کنی و آخرش یه سرزنش و حس کم‌کفایتی یا بی‌کفایتی رو بکشی با خودت. یه انگ کم بودن و کافی نبودن. یه حسرت این‌که شاید اگه یه شب کمتر می‌خوابیدی و یه روز کمتر مغموم می‌بودی، سرنوشتت خیلی متفاوت می‌بود. یه حسرت و استرس گذشته در آینده.

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

استرس کار و تأمین نیازهای اولیه زندگی مدام بات هست بعدش. که برای ساده‌ترین چیزها هم باید بجنگی و یا به بقیه دروغ بگی یا به خودت، که بتونی زندگی کنی. که فرمول تأمین کف هرم مازلو، تلاش و سخت‌کوشی نیست الزاماً. اینه که کجا بدزدی و یواشکی بخوری، با دست یا بی‌دست.

یه مینیموم امنیت ساده‌ی اجتماعی هم نیست. ترس مدام که برای ساده‌ترین درخواست‌های مدنی‌ت ممکنه بگیرن ببرنت، شل و پلت کنن، و صد تا تروما پیدا کنی تا ته عمر. هر جای دنیا هم بری باز پدر و مادر و چار تا رفیق مثلاً خیرخواه بهت می‌گن سرتو بنداز پایین و انسانیت رو فراموش کن که زنده بمونی.

مهاجرت اگه بخوای بکنی، کلی بیچارگی داره. کلی گشتن دنبال اسم کشورت توی منوهای دراپ‌دان‌ای که ایران ندارن. کلی خفت که قید کلی از کرامات انسانی رو بزنی. و بعدش هم هرگز مفهوم «خونه» رو نخواهی تونست به‌صورت یکتا و باثبات تجربه کنی. خونه، خونه نیست.

بعد مهاجرت دوباره زندگی پره از دلتنگی. پره از جایی که فیزیکی نیست ولی توی دل جا مونده.

حتی اگه خودت مهاجرت نکنی ولی دوستات برن هم دلت پره از دلتنگی و آوارگی و دور شدن از دوستایی که آدم امنت بوده‌ن. پره از ازدست‌دادن، با لبخندهای تلخ. پره از حسرت یه سمتِ طنابِ پاره جا موندم.

و استرس اخبار ایران، هر جای دنیا هم که باشی، ولت نمی‌کنه. امروز کی رو اعدام می‌کنن، فردا کی می‌میره. پس‌فردا کجای خونه‌ای که باید خونه می‌بود قراره گند بخوره توش. و تو حداکثر توی تخت خودت یا یواشکی سر خیابون می‌تونی داد بزنی ولی به جایی نمی‌رسه.

نجات‌دهنده‌ای هم در افق نیست. هرازگاهی روزنه امیدی میاد و یه دلبستگی به امنیت و خوش‌بختی‌ای که چند ماه دیگه قراره حاصل بشه. اما یه کم که می‌گذره می‌فهمی یه سنگ‌قلاب بوده و شاید سهم بچه‌هات بشه اون رؤیا. و زندگی هنوز همینه.

اینا همیشه هست. اینا پکیجیه که با ایرانی بود میاد. شاید بشه دو قلمش رو جاخالی داد، ولی تهش باز هست. تهش گریبان دوستات و خانواده‌ت رو می‌گیره. تهش جسمت رو هم نجات بدی، سرت رو هم گرم کنی، باز هم‌چنان روحت با کلی از این اینسکیوریتی‌ها روز رو شب می‌کنه.

خلاصه اگه دور و ورتون ایرانی می‌بینین حواستون بهش باشه. همین که سرپاست و نفس می‌کشه، جای تحسین و دمت‌گرم داره. همین که تونسته از این همه حلقه آتش تو عمرش عبور کنه و با جرقه‌های امید و چشم‌بستن روی همه تلخی‌های گذشته و آینده صبح‌ها می‌تونه از تخت در بیاد، ینی خیلییییی کارش درسته.

اگه اطرافتون ایرانی می‌بینین، باش مهربون باشین و براش امن بمونین.

شاید شما ندونین چرا، ولی اون تمام عمرش در حسرت همین امنیت‌های نصفه‌نیمه‌س که بتونه گاهی کمی تکیه بده، بعد آروم چشمای یک عمر خسته و مضطرب و منتظرش رو ببنده و بدونه اگه بخوابه یکی هست که حتی چند صباحی مراقبشه.
[Loc0m0]
Forwarded from Sadra Codes
گاها واسه هممون پیش میاد که همه‌چی یهو سیاه میشه.. هیچ ایده‌ای نداریم واسه پیاده‌سازی.. من خدای Xم.. چیکار کنم؟ روی چه ایده‌ای کار کنم؟ اصلا می‌خوام پروژه اوپن‌سورس بزنم. از کجا و چی شروع کنم..؟!

توی این پست، استراتژی صدرای ۵-۶ سال پیش رو بهتون می‌گم و امیدوارم این استراتژی کمکتون کنه از سردرگمی دربیاید و یه حرکتایی بزنید. :) ❤️

من همیشه سعی می‌کردم نیازهای خودمو، خودم برطرف کنم. منظورم این نیست که بشینم از صفر سیستم‌عامل بنویسم.. نه. ولی خب اکثر یادگیری‌هام از سر کنجکاوی بودن. آنچنان دانش برنامه‌نویسی نداشتم ولی واسه لینوکسم، کانکی می‌نوشتم.. اسکریپت می‌نوشتم اتوماتیک طبق ساعت روز، بک‌گراند رو عوض کنه و.. چیزایی که پیاده‌سازی می‌کردم، صرفا ایده نبودن. نیاز شخصی بودن. من به X نیاز داشتم، اول سعی می‌کردم یه مدل بیسیک در حد خودم ازش پیاده‌سازی کنم در حد مصرف شخصی و لوکال. اگه بدردم نمی‌خورد و Fail میشد، می‌رفتم سمت مارکت. اکثر Kernel Panicها و فرمت‌شدنا هم سر همین حرکتا بود ولی خب بنظرم شیرین‌ترین تریدآف زندگی، زمین خوردن و بلند شدنه. 😁

یه چیز تو مایه‌های کاراگاه گجت. یهو میدیدی یه شورت‌کات روی کیبورد رو میزدم، یه سروو (servo) چراغ اتاقو خاموش می‌کرد.. صرفا چون نیاز بود. 😂
حالا اتفاقی که میوفتاد اون وسط، خیلی دوست داشتم این ایده‌ها رو با بقیه به اشتراک بذارم. شاید حتی یه درصد، توی دنیا کسی پیدا شه که مثل من شیرازی‌بازیش گل کنه و بخواد با یه شورت‌کات، لامپ اتاقو خاموش کنه.. این باعث میشد من هرکاری می‌کردم رو شیر کنم و یه manual ریز هم بنویسم درحدی که بقیه بفهمن چیه و..

خیلی از ابزارهای خفنی که امروز حسابی معروف و محبوب شدن، یه روز یه اسکریپت چند خطی بودن که نیاز یک یا چند نفر رو برطرف می‌کردن ولی بخاطر آینده‌نگری و نوع بینشی که داشتن، بلندپروازانه عمل کردن و ترند شدن. (نمونش Java)

سعی می‌کنم پارت بعدی این پست رو بعدا داشته باشیم.. :) ❤️
Forwarded from Python BackendHub
چطوری prompt نوشتن خیلی مهمه وقتی با chatgpt کار میکنید! برای بهتر prompt دادن باید سواد بیشتری داشته باشین. تو عکس فکر کنم این موضوع خیلی بدیهی باشه.
برای همینه که من معتقدم هرچقدر gpt پیشرفته تر شه, نمیتونه جای انسان رو بگیره و برنامه نویس رو بیکار کنه.
الگوریتم رو از O(n**2) کرد O(n) 👌
@Manifoldspython
Forwarded from Gopher Academy (Bardia)
آموزش کامل رزومه نویسی + لینکدین

https://youtu.be/U-JU0SXsRWw

#DevTwitter


🕊 @gopher_academy
اگه بخواید فرانت کار کنین ، قاعدتا باید از html css شروع کنین و بعدش برین سراغ جاوااسکریپت...
برای شروع جاوا اسکریپت به دلیل سینتکسی که داره تقریبا نیازی به الگوریتم ندارید ، با مباحث dom اشنا میشید ، حلقه ها و متغیر ها و...

پس کی به الگوریتم نیاز پیدا میکنین ؟؟
زمانی که بخواید مسائل مختلف رو حل کنین !
اگه تازه کار هستین باید بدونید که موقع پروژه زدن و کار کردن ، شما هرروز با مشکلات زیادی ممکنه رو برو بشید که وظیفه شما حل کردن اونهاست...یکی پس از دیگری...

اینجاست که دانش الگوریتم به کمک شما میاد
شما میتونید با دانش الگوریتم کمی راحت تر و مرتب تر اون مشکلات رو حل کنین !

- آیا نیازه چند ماه زمان بزارم قبل شروع و یادگرفتن برنامه نویسی الگوریتم یاد بگیرم ؟
+ نه
- آیا نیازه خدای الگوریتم بشم؟
+ نه
- آیا نیازه قبل برنامه نویسی کتاب هایی باموضوع الگوریتم رو تموم کنم مثل کتاب مقدمه ای بر الگوریتم که ۴ جلده؟
+ نه عزیز من نه!!!

شما فقط کافیه در حین یادگیری برنامه نویسی ، گوشه چشمی هم به تقویت توانایی حل مسئله و الگوریتم داشته باشید.
همین

@DevTwitter | <Meysam Sabeti/>
Forwarded from Gopher Academy (Bardia)
اگه دنبال پروژه های ماشین لرنینگ برای تمرین و یادگیری میگردید این ریپاژیتوری بیشتر از ۹۰۰ پروژه داره که حسابی کمکتن میکنه توی این زمینه!

https://github.com/ml-tooling/best-of-ml-python

#DevTwitter | <Mehdi Mashayekhi/>


🕊 @gopher_academy
Forwarded from SoniaCircuit (Sonia)
😁1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
This media is not supported in your browser
VIEW IN TELEGRAM
آسیب پذیری race condition در واقعیت

🚀 @SEYED_BAX | Donate
Please open Telegram to view this post
VIEW IN TELEGRAM
تفاوت معماری microservice و monolthic
میکروسرویس نوعی الگوی معماری میباشد که برنامه های پیچیده با سرویس های زیاد در آن به چند بخش شکسته میشوند که از طریق api های مستقل با هم در ارتباط هستند
برای نمونه یک اپلیکیشن کلی که در آن قسمت هایی مانند ریپورت . بخش یوزر ها . UI و .... وجود دارد به چند بخش شکسته میشوند و اگر یک قسمت به دلایلی پایین بیایید بخش دیگر برنامه هنوز فانشکنال میباشد.

مزایای معماری microservice :
راه‌های agile را با تیم‌های کوچکی که اغلب سریعا دپلویمنت دارند، ترویج میکند.

اگر یک میکروسرویس به load capacity خود برسد، instance های جدیدی از آن سرویس می‌توانند به سرعت در cluster همراه دپلوی شوند تا به کاهش فشار کمک کنند.

تیم‌ها می‌توانند ویژگی‌های جدید را تست کنند و اگر چیزی کار نکرد، به عقب برگردند. این کار به‌روزرسانی کد را آسان‌تر می‌کند و زمان ورود به بازار برای ویژگی‌های جدید را تسریع می‌کند.

شما می توانید تغییرات را برای یک سرویس خاص، بدون تهدید از بین بردن کل برنامه اعمال کنید.

معایت معماری microservice :
میکروسرویس ها در مقایسه با معماری monolthic پیچیدگی بیشتری را اضافه می کنند، زیرا سرویس های بیشتری در مکان های بیشتری وجود دارد که توسط تیم های متعدد ایجاد شده است. اگر گسترش توسعه به درستی مدیریت نشود، منجر به کاهش سرعت توسعه و عملکرد عملیاتی ضعیف می شود.

هر میکروسرویس جدید می‌تواند هزینه خاص خود را برای دپلویمنت پلی بوک  ، زیرساخت میزبانی، ابزارهای نظارت و موارد دیگر داشته باشد.

هر میکروسرویس مجموعه ای از لاگ های مربوط به خود را دارد که debugging را پیچیده تر می کند. بعلاوه، یک پروسه تجاری واحد می تواند در چندین ماشین اجرا شود و دیباگینگ را پیچیده تر کند.


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

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

معماری monolthic می تواند در اوایل شروع پروژه برای راحت بودن مدیریت کد و دپلویمنت راحت باشند. این اجازه می دهد تا همه چیز در monolthic به یکباره ریلیز شود.

مزایای معماری monolthic :
یک فایل قابل اجرا و یا یک دایرکتوری دلپویمنت را آسان تر میسازد .

در یک کد بیس و مخزن یک api میتواند همان عملکردی را انجام دهد که api های متعدد با میکرو سرویس ها انجام میدهند .

از آنجایی که یک برنامه monolthic یک یونیت متمرکز است،  end-to-end testing می تواند سریعتر از یک برنامه توزیع شده انجام شود.

معایب معماری monolthic :
یک اپلیکشن بزرگ monolthic توسعه را پیچید و کند تر میکند .

نمیتوان کامپوننت های دیگر اپلیکشن را scale کرد.

یک تغییر کوچک در یک اپلیکیشن monolthic نیازمند دوباره دپلوی کردن کل آن میباشد که پروسه زمان بری میباشد.

در مجموع
میکروسرویس ها ممکن است برای همه مناسب نباشد. معماری monolthic قدیمی ممکن است کاملاً خوب کار کند و قسمت بندی  آن ممکن است ارزش زحمت نداشته باشد. اما با رشد سازمان ها و افزایش تقاضا برای برنامه های کاربردی آنها، معماری میکروسرویس ها می تواند ارزشمند باشد.
ی نکته چند صد هزار دلاری بگم
برای اون‌هایی که توی صنعت روی این موضوع هستند این رو میگم چون :
از پایان زمان nda من چندماهی گذشته
شرکت روش حساسیت نداره دیگه (مدل‌های و دستاوردهای جدید داشته)
تازه منم به فارسی می‌نویسیم اینجا فقط

اگر شما هم روی خدمات سرویس‌های voice clone کار می‌کنید؛
برای اینکه بهترین سرویس رو ارائه بدید؛ سعی کنید جملات طلایی رو پیدا کنید شاید باورتون نشه ولی ۲ سال قبل فیلم
mission impossible 3
کار مارو ۶ ماه جلو انداخت (دوستان نزدیک در جریان هستند)

توی این فیلم بخشی که نیاز به voice clone دارند طرف رو مجبور می‌کنند جملات خاصی رو بخونه :

"The pleasure of Busby's company is what I most enjoy."
"He put a tack on Miss Yancy's chair, when she called him a horrible boy."
"At the end if the month, he was flinging two kittens across the width of the room."
"I count on his schemes to reveal the way to escape my gloom."

بخش تحقیقات فیلم این بخش رو فوق‌العاده درست پیش برده و همین باعث شد ما نیاز به زبان‌شناس و کارشناس صدای متخصص نداشته باشیم (قطعا دو نفر آدم فوق‌العاده حرفه‌ای لازم بود که این نکته رو به ما گوشزد کنه)

این ۴ تا جمله شامل بسیاری از آواها؛ پستی و بلندی‌های صدا (اصطلاح درست فارسی رو نمی‌دونم) می‌شه

تنها کاری که ما توی محصول انجام دادیم؛ این بود که برای زبان‌های مورد نیاز این جملات رو پیدا کردیم و همین جملات اصلی رو از کاربر خواستیم بخونه

روی دیتاست train هم بسیار این روش بهمون کمک کرد؛ بر خلاف دیتاست‌های موجود که بصورت رندم از کاربر میخوان یکسری جملات رو بخونه
سعی کردیم جملاتی رو توی هر زبان جدا کنیم که شامل ماکزیمم تعداد آواها باشه (توجه کنید language model رو بصورت جدا شما می‌تونید ترین کنید ؛ برای speech to text عرض میکنم پس اهمیتی نداره جملات پر استفاده اون زبان رو داشته باشید؛ اشتباهی که همه‌ی رقبای ما داشتند )

و بعد از افرادی که برامون صدا ذخیره میکردند (دیتاست ترین) خواستیم این جملات رو بخونند؛ همین تکنیک و ایده خام بنده که البته مدیون فیلمی که دیدم هستم و چندین تکنیک دیگر که بعدها اضافه شد باعث شد برخلاف رقیب‌هامون
بجای نیاز به بیش از ۱۰۰ ساعت دیتا برای پشتیبانی از زبان‌هایی غیر از انگلیسی با حدود ۱۰ ساعت صدا بتونیم به نتایجی در همون سطح برسیم

و برای clone کردن صدای هر شخص فقط به چند دقیقه صدا نیاز داشته باشیم.
Forwarded from Semicolon (Ali Moeinian)
🖍در Interview ها، بهترینِ خودت باش - لیست کامل🖍

در گیت هاب، ریپوزیتوری های بسیار جالبی وجود داره، که میتونه سطح آمادگیتون برای مصاحبه ها رو بالاتر ببره.
🔥نقاط ضعفت در مصاحبه ها رو به نقطه قوتت تبدیل کن.

🔰Tech interview handbook : https://github.com/yangshun/tech-interview-handbook
🔰Go : https://github.com/inancgumus/learngo
🔰Awesome interview : https://github.com/DopplerHQ/awesome-interview-questions
🔰JS Algorithms : https://github.com/TheAlgorithms/Javanoscript
🔰Js Algorithms and Data Structures : https://github.com/trekhleb/javanoscript-algorithms
🔰JS clean code : https://github.com/ryanmcdermott/clean-code-javanoscript
🔰Vue JS : https://github.com/sudheerj/vuejs-interview-questions
🔰HTML 5 : https://github.com/learning-zone/html-interview-questions
🔰React : https://github.com/learning-zone/react-interview-questions
🔰JS : https://github.com/learning-zone/javanoscript-interview-questions
🔰Angular : https://github.com/sudheerj/angular-interview-questions
🔰JS : https://github.com/sudheerj/javanoscript-interview-questions
🔰Front End : https://github.com/h5bp/Front-end-Developer-Interview-Questions
🔰Angular : https://github.com/Yonet/Angular-Interview-Questions
🔰System Design : https://github.com/shashank88/system_design
🔰Python : https://github.com/learning-zone/python-interview-questions
🔰Go : https://github.com/shomali11/go-interview
🔰Front End : https://github.com/khan4019/front-end-Interview-Questions
🔰30 seconds of interviews : https://github.com/30-seconds/30-seconds-of-interviews
🔰Full Stack : https://github.com/indy256/Full-stack-Developer-Interview-Questions-and-Answers
🔰React : https://github.com/Pau1fitz/react-interview
🔰Linux SysAdmin : https://github.com/chassing/linux-sysadmin-interview-questions
🔰Back End : https://github.com/arialdomartini/Back-End-Developer-Interview-Questions
🔰Reverse Interview : https://github.com/viraptor/reverse-interview
🔰JS : https://github.com/ganqqwerty/123-Essential-JavaScript-Interview-Questions
🔰Android : https://github.com/MindorksOpenSource/android-interview-questions
🔰Front End : https://github.com/h5bp/Front-end-Developer-Interview-Questions
🔰React : https://github.com/sudheerj/reactjs-interview-questions
🔰How Web works : https://github.com/vasanthk/how-web-works?ref=hackernoon.com
🔰Front End interview hand book : https://github.com/yangshun/front-end-interview-handbook?ref=hackernoon.com
🔰JS : https://github.com/sudheerj/javanoscript-interview-questions?ref=hackernoon.com
🔰JS : https://medium.freecodecamp.org/the-definitive-javanoscript-handbook-for-a-developer-interview-44ffc6aeb54e
🔰Vue : https://www.onlineinterviewquestions.com/vue-js-interview-questions/
🔰React : https://www.sitepoint.com/react-interview-questions-solutions/
🔰Front End : https://itnext.io/frontend-interview-cheatsheet-that-helped-me-to-get-offer-on-amazon-and-linkedin-cba9584e33c7
🔰Google Interview Warm up : https://grow.google/certificates/interview-warmup
🔰Interview Practices : http://pramp.com
🔰Data Science : http://github.com/ShuaiW/data-science-question-answer
🔰Front End : http://h5bp.github.io/Front-end-Developer-Interview-Questions
🔰HTML, CSS, JS : https://www.acefrontend.com
🔰Android : http://code.coursesity.com/android-interview-questions
🔰DevOps : http://github.com/Tikam02/DevOps-Guide
🔰Web 3 : https://github.com/noahliechti/web3-interview-preparation
🔰PHP : https://github.com/learning-zone/php-interview-questions
🔰Laravel : https://github.com/Devinterview-io/laravel-interview-questions
🔰PHP : https://github.com/learning-zone/php-interview-questions

سایت ها و ریپوزیتوری های این قسمت فقط اختصاص به یک موضوع ندارند و چندین فیلد رو شامل میشوند 👇
🔰https://workat.tech/practice
🔰http://github.com/FAQGURU/FAQGURU
🔰https://bigfrontend.dev
🔰https://github.com/kdn251/interviews
🔰https://www.fullstack.cafe
🔰https://github.com/ombharatiya/FAANG-Coding-Interview-Questions
🔰https://github.com/Olshansk/interview
🔰https://github.com/jwasham/coding-interview-university
🔰https://github.com/Olshansk/interview
🔰https://github.com/huihut/interview/blob/master/README_en.md


#InterviewRepo
Forwarded from Python BackendHub
بهترین و تمیز ترین boilerplate ای که دیدم از FastAPI
https://github.com/iam-abbas/FastAPI-Production-Boilerplate

واقعا معنی SOLID رو تازه درک کردم.. چقدر محشره و تمیزه واقعا هرچی بگم کم گفتم. خود کداش هم عالیه. فیوچر هم خیلی خوبه.


همین موضوع باعث شد که کلا fastapi integration خودمو تو گیتهاب بخوام از صفر ریفکتور کنم که فقط ORM ترجمه شده خودمو بهش اضافه کنم با SQLAdmin
البته رو اضافه کردن SQLAdmin هم خیلی دو دل هستم, چون واقعا SOLID نیست. اگه maintainerاش همکاری کنه تو این boilerplate از صفر طبق SOLID مینویسیمش. جالبه خود author ریپو SQLAdmin هم ایرانیه 😁

@ManiFoldsPython
Forwarded from Python Hints
خیلی وقتا بهم میگن، اشتباه می‌کنی و وقتت رو الکی تلف می‌کنی که بجای خوندن فقط آموزش و یادگیری میری سورس کد رو میخونی ؛

هیچ‌وقت این موضوع رو جواب نمیدم و همیشه می‌گم حق با شماست، ولی به این آدما باید گفت :

خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس کدها رو خوند.

حداقلش : کمک واضح به
System design, Optimization
هست.

مثلاً می‌دونستید
Coroutine
توی پایتون 3.5 کلا ۳۵۰ خط کد بوده، و پیاده سازیش با
generator
های پایتون بود ؟
برای همین می‌تونستیم خیلی راحت بهش فیچر اضافه کنیم (کاری که توی پروژه انجام دادیم)

تصویر مربوط به سورس کد coroutine روی python3.5
Forwarded from Python Hints
حالا ی بحثی که پیش میاد این هست که چقدر باید سورس کد خوند و تا کجا ؟

اینکه هر پکیجی که دستمون میاد رو بریم سورس کدش رو بخونیم که عملاً واقعی نیست، کاش سرعت خوندن انقدر زیاد بود یا زمان زیادی داشتیم که خب اینطوری نیست و همین شاید زندگی رو ارزشمند کرده 🤔

ولی شخصاً مطالب و فیچرهای خیلی مهم پایتون رو حتماً سورس کداش رو میخونم (قرار نیست خط به خط دیباگ کنید)
باقی پکیج‌ها هم فقط مواردی که می‌دونم ازون روزی که یاد میگیرم به بعد قرار هست توی تموم پروژه‌هام ازش استفاده کنم و پول در بیارم

پکیج‌هایی که قراره فقط ۶ ماه باهاش کار کنم یا در حد ۱ پروژه هست رو هیچوقت اینکارو نمی‌کنم مگر اینکه مجبور بشم یا شرکت بخواد داخلش تغییرات ایجاد کنه.

این مرز بندی بسیار بسیار مهم هست که درست و بهینه باشه
Forwarded from Python Hints
بعد از این پست، چندتا دوره آموزش
Async programming
برام فرستادید، بعضی موارد حتی از طرف افراد معروفی هست که متأسفانه وقتی ۱-۲ مورد رو نگاه کردم متوجه شدم کلاه‌برداری‌ هست

من بهترین منبع رو توی کانال گذاشتم : کتابی که بالاتر هست.
اما برای اینکه متوجه بشید دوره درست هست یا خیر؛

به زبان ساده :

ما بطور کلی ۲ نوع مشکل می‌تونیم داشته باشیم که کدهامون سرعت اجرا کندی داشته باشند :
۱- CPU bound
۲- I/O bound

مورد اول : وقتایی هست که شما پردازش خیلی زیادی داری، کد معطل خوندن دیتا از هارد، یاد دانلود دیتا و ... نیست و فقط و فقط خود پردازش کردن داده‌ها هست که داره زمان زیادی میگیره، به فرض اینکه کد بخوبی زده شده و تا حد خوبی اپتیمایز شده برای این نوع مسائل باید برید سراغ کتابخانه:
multiprocessing

مورد دوم : غیر از بچه‌های
Data science, data engineering
اکثر مواقع شما مشکلی که دارید روی این بخش هست، همونطور که می‌دونید پردازش CPU بسیار سریعتر از بخش‌های
I/O : Input / Output

هست، یعنی شما توی کسری از ثانیه محاسبات رو روی ۱ هسته از CPU های لپ‌تاپ یا سیستمتون انجام میدید ولی خوندن دیتا از هارد، رم یا حتی وقتی دارید
Crawler
می‌نویسید دانلود اون صفحه توسط پکیج requests هست که خیلی زمانبر هست نه پیدا کردن چندتا تگ توی html اون صفحه؛ هرچیزی غیر از CPU بمحض درگیر شدن کدهارو
I/O bound
می‌کنه، ولی خب به نسبت پردازش بهش نگاه می‌کنیم اگر از پردازش وقت بیشتری بگیره کدهای شما
I/O Blocking
هستند اگر از پردازش وقت کمتری بگیره کدهای شما
CPU Blocking

برای همین خیلی وقتا
Multiprocessing, Multithreading
توی پایتون، بهبود سرعتی که نمی‌ده هیچ اجرا رو کندتر هم می‌کنه (این چیزی هست که زیاد می‌شنوم و می‌فهمم طرفم حتی مفاهیم ساده علوم کامپیوتر رو هم نمی‌دونه و خودش رو برنامه‌نویس می‌دونه)

برای تسک‌های I/O blocking باید از
asyncio
استفاده کنید، اما صرف نوشتن
async, await

هیچ اتفاقی نمیوفته (اینو میلیاردها بار توی کدهای fastApi می‌بینید) await اصلا از خود کلمه‌اش مشخص هست (من همیشه اینطوری درس میدادم)
A wait
ی ذره صبر کنیم تا جواب این خط کد بیاد بعد ادامه میدیم، و همینجوری کیلویی استفاده کردنش هیچ کمکی نمی‌کنه

از طرف دیگه کتابخونه‌ای که توی پروژه
Async
استفاده میشه هم مهم هست، مثلاً برای ارسال درخواست روی web دیگه نمی‌تونید از requests استفاده کنید باید اون کتابخونه هم async رو پشتیبانی کنه مثلاً بعنوان جایگزین

HttpX, aiohttp



با این مطلب می‌تونید خیلی وقتا متوجه بشید ی دوره آموزش
asyncio
کلاهبرداری هست یا واقعی (چون خیلی از آدمهای بسیار معروف توی دنیای پایتون رو دیدم، که asyncio رو اشتباه تدریس می‌کنند.)

ولی بازم منبع اصلی کتابی هست که آخر پیام‌های پین شده گذاشتم برای
Async