ی نکته چند صد هزار دلاری بگم
برای اونهایی که توی صنعت روی این موضوع هستند این رو میگم چون :
از پایان زمان 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 کردن صدای هر شخص فقط به چند دقیقه صدا نیاز داشته باشیم.
برای اونهایی که توی صنعت روی این موضوع هستند این رو میگم چون :
از پایان زمان 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
در گیت هاب، ریپوزیتوری های بسیار جالبی وجود داره، که میتونه سطح آمادگیتون برای مصاحبه ها رو بالاتر ببره.
🔥نقاط ضعفت در مصاحبه ها رو به نقطه قوتت تبدیل کن.
🔰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
https://github.com/iam-abbas/FastAPI-Production-Boilerplate
واقعا معنی SOLID رو تازه درک کردم.. چقدر محشره و تمیزه واقعا هرچی بگم کم گفتم. خود کداش هم عالیه. فیوچر هم خیلی خوبه.
همین موضوع باعث شد که کلا fastapi integration خودمو تو گیتهاب بخوام از صفر ریفکتور کنم که فقط ORM ترجمه شده خودمو بهش اضافه کنم با SQLAdmin
البته رو اضافه کردن SQLAdmin هم خیلی دو دل هستم, چون واقعا SOLID نیست. اگه maintainerاش همکاری کنه تو این boilerplate از صفر طبق SOLID مینویسیمش. جالبه خود author ریپو SQLAdmin هم ایرانیه 😁
@ManiFoldsPython
GitHub
GitHub - iam-abbas/FastAPI-Production-Boilerplate: A scalable and production ready boilerplate for FastAPI
A scalable and production ready boilerplate for FastAPI - iam-abbas/FastAPI-Production-Boilerplate
Forwarded from Python Hints
خیلی وقتا بهم میگن، اشتباه میکنی و وقتت رو الکی تلف میکنی که بجای خوندن فقط آموزش و یادگیری میری سورس کد رو میخونی ؛
هیچوقت این موضوع رو جواب نمیدم و همیشه میگم حق با شماست، ولی به این آدما باید گفت :
خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس کدها رو خوند.
حداقلش : کمک واضح به
هست.
مثلاً میدونستید
توی پایتون 3.5 کلا ۳۵۰ خط کد بوده، و پیاده سازیش با
های پایتون بود ؟
برای همین میتونستیم خیلی راحت بهش فیچر اضافه کنیم (کاری که توی پروژه انجام دادیم)
تصویر مربوط به سورس کد
هیچوقت این موضوع رو جواب نمیدم و همیشه میگم حق با شماست، ولی به این آدما باید گفت :
خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس کدها رو خوند.
حداقلش : کمک واضح به
System design, Optimization هست.
مثلاً میدونستید
Coroutine توی پایتون 3.5 کلا ۳۵۰ خط کد بوده، و پیاده سازیش با
generatorهای پایتون بود ؟
برای همین میتونستیم خیلی راحت بهش فیچر اضافه کنیم (کاری که توی پروژه انجام دادیم)
تصویر مربوط به سورس کد
coroutine روی python3.5Forwarded 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
هیچ اتفاقی نمیوفته (اینو میلیاردها بار توی کدهای
A wait
ی ذره صبر کنیم تا جواب این خط کد بیاد بعد ادامه میدیم، و همینجوری کیلویی استفاده کردنش هیچ کمکی نمیکنه
از طرف دیگه کتابخونهای که توی پروژه
Async
استفاده میشه هم مهم هست، مثلاً برای ارسال درخواست روی web دیگه نمیتونید از requests استفاده کنید باید اون کتابخونه هم async رو پشتیبانی کنه مثلاً بعنوان جایگزین
HttpX, aiohttp
با این مطلب میتونید خیلی وقتا متوجه بشید ی دوره آموزش
asyncio
کلاهبرداری هست یا واقعی (چون خیلی از آدمهای بسیار معروف توی دنیای پایتون رو دیدم، که asyncio رو اشتباه تدریس میکنند.)
ولی بازم منبع اصلی کتابی هست که آخر پیامهای پین شده گذاشتم برای
Async
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
Forwarded from Django Expert (Amir)
توهم کارآفرینی اجتماعی
دهه اول قرن۲۱ رو باید با عنوان قبرستان شرکتهای فناوری پاک شناخت؛ توی دهه اول این قرن که هیچکس یادش نمیاد چطور گذشت، کارآفرین ها و شرکتهای زیادی با رسالت حل مشکلات محیط زیست و انرژی پاک بسیج شدن و میلیاردها دلار سرمایه خصوصی و دولتی به دامن اینها ریختن که هیچکدوم موثر واقع نشد! و دنیا به جای بهتر شدن گیر حبابهای فناوری پاک افتاد، سولیندرا مشهورترین شرکت فناوری پاک ورشکست شد و بقیه شرکتها هم به همون سرنوشت دچار شدن.
علت شکست شرکتهای فناروی پاک چی بود؟ (۷مورد تصویر بالا) دلایل زیادی برای اینکار میارن از چین تا اولویت قرارگرفتن توسط دولت و بی توجهی دولت ها! ولی دلایل مهمتری برای این اتفاقات وجود داره درواقع شرکتهای فناوری پاک ورشکست شدن چون از پاسخ به سوالات اصلی کسبوکار غافل و درگیر توهم کارآفرینی اجتماعی شدن.
سوالاتی که باید از خودمون موقع شروع یه کسب و کار بپرسیم:
سوال مهندسی؛ میتونی بهجای بهبود تدریجی، یک فناوری خفن خلق کنی؟
سوال زمانبندی؛ مطمئنی که الان زمان مناسبی برای شروع کسبوکارت هست؟
سوال انحصار؛ قراره کارت رو با بخش بزرگی از یک بازار کوچیک شروع کنی؟
سوال افراد؛ تیم مناسبی داری؟
سوال توزیع؛ علاوه به شیوه تولید، روش مناسبی برای توزیع محصولت داری؟
سوال دوام(پایداری)؛ جایگاهت توی بازار در ۱۰ و ۲۰ سال قابل دفاع هست؟
سوال راز؛ فرصت یگانه و ممتازی رو پیدا کردی؟
به مرور درباره تمام ۷ سوال باهم صحبت میکنیم اما درحالت کلی اگر به تمام سوالات اینجا پاسخ خوب ندید مطمئنا دچار بدشانسی میشید. راه انداختن کسبوکار بدون پاسخ درست به این سوالات مثل انتظار و امید برای رخ دادن معجزه هست.
#Startup #Entrepreneurship
#منهای_جنگو
〰️〰️〰️〰️〰️
©️ @DjangoEx
دهه اول قرن۲۱ رو باید با عنوان قبرستان شرکتهای فناوری پاک شناخت؛ توی دهه اول این قرن که هیچکس یادش نمیاد چطور گذشت، کارآفرین ها و شرکتهای زیادی با رسالت حل مشکلات محیط زیست و انرژی پاک بسیج شدن و میلیاردها دلار سرمایه خصوصی و دولتی به دامن اینها ریختن که هیچکدوم موثر واقع نشد! و دنیا به جای بهتر شدن گیر حبابهای فناوری پاک افتاد، سولیندرا مشهورترین شرکت فناوری پاک ورشکست شد و بقیه شرکتها هم به همون سرنوشت دچار شدن.
علت شکست شرکتهای فناروی پاک چی بود؟ (۷مورد تصویر بالا) دلایل زیادی برای اینکار میارن از چین تا اولویت قرارگرفتن توسط دولت و بی توجهی دولت ها! ولی دلایل مهمتری برای این اتفاقات وجود داره درواقع شرکتهای فناوری پاک ورشکست شدن چون از پاسخ به سوالات اصلی کسبوکار غافل و درگیر توهم کارآفرینی اجتماعی شدن.
سوالاتی که باید از خودمون موقع شروع یه کسب و کار بپرسیم:
سوال مهندسی؛ میتونی بهجای بهبود تدریجی، یک فناوری خفن خلق کنی؟
سوال زمانبندی؛ مطمئنی که الان زمان مناسبی برای شروع کسبوکارت هست؟
سوال انحصار؛ قراره کارت رو با بخش بزرگی از یک بازار کوچیک شروع کنی؟
سوال افراد؛ تیم مناسبی داری؟
سوال توزیع؛ علاوه به شیوه تولید، روش مناسبی برای توزیع محصولت داری؟
سوال دوام(پایداری)؛ جایگاهت توی بازار در ۱۰ و ۲۰ سال قابل دفاع هست؟
سوال راز؛ فرصت یگانه و ممتازی رو پیدا کردی؟
به مرور درباره تمام ۷ سوال باهم صحبت میکنیم اما درحالت کلی اگر به تمام سوالات اینجا پاسخ خوب ندید مطمئنا دچار بدشانسی میشید. راه انداختن کسبوکار بدون پاسخ درست به این سوالات مثل انتظار و امید برای رخ دادن معجزه هست.
#Startup #Entrepreneurship
#منهای_جنگو
〰️〰️〰️〰️〰️
©️ @DjangoEx
Forwarded from DevTwitter | توییت برنامه نویسی
واقعا چرا کامپیوتر پدال نداره؟ فکر کن به جای کلیدای فانکشن و کنترل و شیفت و آلت و غیره از پدال استفاده میکردی، خیلی افیشنتتر بود خداییش.
@DevTwitter | <جالینوکس/>
@DevTwitter | <جالینوکس/>
Forwarded from Python BackendHub
میتونید از این سایت استفاده کنید و این سرویس
برای اسکن کردن آسیب پذیری لایبری هاتون
بعد بذارینش رو مثلا staging که اونجا پوش میشه یک دور چک کنه
خودشم گیت هاب آکشن داره که توکنAPI رو میدین و بقیه کارو خودش میکنه.
برای خیلی از زبون های برنامه نویسی هم داره. برای پایتون:
https://docs.snyk.io/scan-application-code/snyk-open-source/snyk-open-source-supported-languages-and-package-managers/snyk-for-python
پکیج پایتونم ادره که اینترفیسش بنظرم افتضاحه و میتونست یک CLI tool باشه
https://github.com/snyk-labs/pysnyk
@ManifoldsPython
برای اسکن کردن آسیب پذیری لایبری هاتون
بعد بذارینش رو مثلا staging که اونجا پوش میشه یک دور چک کنه
خودشم گیت هاب آکشن داره که توکنAPI رو میدین و بقیه کارو خودش میکنه.
برای خیلی از زبون های برنامه نویسی هم داره. برای پایتون:
https://docs.snyk.io/scan-application-code/snyk-open-source/snyk-open-source-supported-languages-and-package-managers/snyk-for-python
پکیج پایتونم ادره که اینترفیسش بنظرم افتضاحه و میتونست یک CLI tool باشه
https://github.com/snyk-labs/pysnyk
@ManifoldsPython
Forwarded from Microfrontend.ir
آموزش PostgreSQL
در اولین ویدیو و مقدمه پلی لیست آموزش PostgreSQL به بررسی تاریخچه و روند شکل گیری پستگرس پرداختیم. از پروژه مادر یعنی Ingres و سپس اضافه شدن امکانات object-relational از طریق پروژه Post-Ingres صحبت کردیم و چند اکستنشن مهم پستگرس یعنی PostGIS و Timescale صحبت کردیم.
Video: https://youtu.be/2f9RAkpQGj4
playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsByAI0AbbJ4oUTziNsaffKnq
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
در اولین ویدیو و مقدمه پلی لیست آموزش PostgreSQL به بررسی تاریخچه و روند شکل گیری پستگرس پرداختیم. از پروژه مادر یعنی Ingres و سپس اضافه شدن امکانات object-relational از طریق پروژه Post-Ingres صحبت کردیم و چند اکستنشن مهم پستگرس یعنی PostGIS و Timescale صحبت کردیم.
Video: https://youtu.be/2f9RAkpQGj4
playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsByAI0AbbJ4oUTziNsaffKnq
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
Forwarded from DevTwitter | توییت برنامه نویسی
یکی از بچه ها یه فریمورک وب با پایتون درست کرده به اسم Panther.
سعی کرده بیشتر ویژگی های خوب و کاربردی رو داشته باشه و در کنارش سینتکس راحتی داشته باشه:
- Authentication
- Permission
- Middleware
- Caching
- Throttling
- Monitoring
- Input Validation
و همچنین سرعت بالایی داشته باشه.
و اینکه پنتر خودش دیتابیس File-Base داره و MongoDB رو هم ساپورت میکنه.
https://Github.com/AliRn76/Panther
اگه نظر داشتید حتما براش Issue کنید و Star هم خالی از لطف نیست
@DevTwitter
سعی کرده بیشتر ویژگی های خوب و کاربردی رو داشته باشه و در کنارش سینتکس راحتی داشته باشه:
- Authentication
- Permission
- Middleware
- Caching
- Throttling
- Monitoring
- Input Validation
و همچنین سرعت بالایی داشته باشه.
و اینکه پنتر خودش دیتابیس File-Base داره و MongoDB رو هم ساپورت میکنه.
https://Github.com/AliRn76/Panther
اگه نظر داشتید حتما براش Issue کنید و Star هم خالی از لطف نیست
@DevTwitter
Forwarded from DevTwitter | توییت برنامه نویسی
#بدرد
بعد از ده سال و بررسی بیش از هزار رزومه و چندصد مصاحبه یه سری موارد هست که میخوام درباره نوشتن رزومه بگم.
شما مهارتتون رو به کارفرما میفروشید!
پس بهش به عنوان یه کاتالوگ از مهارتهای تخصصیتون نگاه کنید. برای معرفی یه محصول یا سرویس بهترین و شاخصترین ویژگیهاش رو در معرض نمایش قرار میدیم و روی اون تبلیغ میکنیم و بعد تجربه استفاده از اون محصول در جاهای مختلف رو ذکر میکنیم.
چه ربطی به رزومه داره؟
کارفرما نیازهایی داره و دنبال بهترین گزینه میگرده. لیست تخصصها باید اون نیازها رو جواب بده. از یک سمت دهها یا صدها نفر برای اون موقعیت اقدام میکنند. شما در کوتاهترین زمان باید بهترین و جذابترین معرفی از خودتون رو ارایه بدید. در ازای این مهارتها هم پول دریافت میکنید. این همون موقعیتی نیست که شما برای خرید محصول و سرویس مواجه میشید؟
حالا چه طور رزومه بنویسیم؟
- برند
اسم شما برند شماست! اولین مواردی که ذکر میکنید اسم و اطلاعات تماس باید باشه. توضیح یکی دو خطی کافیه و نه بیشتر!
- مهارتهای تخصصی
قسمت بعدی لیست تخصصهای شماست. توجه داشته باشید کارفرما دنبال یه سری نیازه که دنبال اونا میگرده. چه طور بدونیم اونا چیا هستند؟ آگهی شغلی.
لیست تخصصها رو منطبق به آگهی شغلی بنویسید. اما نمیشه برای هر موقعیت یه رزومه نوشت. راهش اینه که آگهیها رو بررسی کنید و پرتکرارترین نیازها رو لیست کنید. اگر تو پرتکرارترینهاش مهارتی هست که بلد نیستید وقت خوبیه که یاد بگیرید.
هر مهارتی غیر مرتبط رو با شغل مورد علاقهتون رو حذف کنید. چون باعث سردرگمی میشه. حتی ممکنه باعث بشه مهارتهای شما برای اون کار زیادتر از حد نیاز باشه. (Over qualified)
(من حتی با این که دنبال کار نیستم گاهی میرم آگهیها رو میخونم تا از جریان صنعت و ترندهای روز خبر داشته باشم)
- تجربه کار حرفهای
تو این بخش از رزومه باید نشون بدید اون مهارتهایی که لیست کردید تو کار چه تاثیری داشته. لیست جاهایی که کار حرفهای انجام دادید رو بنویسید یا اگر پروژه شخصی موفقی رو دارید ذکر کنید. کار غیر مرتبط، پروژههای شخصی کوچیک یا اونایی که جهت یادگیری بوده رو حذف کنید.
لیست جاهایی که کار کردید رو بنویسید و تاثیری که اونجا داشتید رو ذکر کنید. مثلاً اگر تو بخش فروش کار میکردید بنویسید که با فلان مهارت و متود، فروش رو فلان درصد رشد دادم. یا اگر برنامهنویس هستید علاوه بر پارامترهای عددی ویژگیهای شاخصی که برای محصول پیاده کردید رو بنویسید.
جاهایی که کار کردید رو به ترتیب زمان از جدید به قدیم بنویسید. بهتره بین تاریخها فاصله زمان طولانی نباشه. اگر برای شرکتهای خارجی اپلای میکنید درکی از شرایط اقتصادی ایران ندارند و تغییر شرکت با زمانهای کوتاه رو نکته منفی میدونند.
- تحصیلات و دورههای آموزشی
تحصیلات دانشگاهی با گرایش، دورههای آموزشی معتبری که گذروندید رو نام ببرید. باز هم تاکید میکنم به غیر از مدرک دانشگاهی دورههای غیر مرتبط رو لازم نیست ذکر کنید.
اگر برای کار اپلای میکنید و نه دانشگاه، رتبه کنکور، مانور رو دانشگاهی که درس خوندید تاثیر چندانی نداره.
- زبان
لیست زبانهایی که بلدید رو بنویسید. اگر جایی امتحان دادید نمراتش رو ذکر کنید. درصورتی که آزمون ندادید لازم به خودتون نمره بدید یا سطح مهارتهای مختلف رو ذکر کنید. چون اگر زبان خیلی مهم باشه قطعاً توی مصاحبه خودشون ارزیابی میکنند.
- افتخارات
اگر جایی مقامی کسب کردید یا جایزهای بردید ذکر کنید. همینطور که اگر ثبت اختراع دارید هم جاش همینجاست.
- علاقمندیها
این نکته خیلی سرش بحثه که تو رزومه دکتر بشه یا نه. اما اگر با هوشمندی ذکر بشه تاثیر مثبت داره. مثلاً اگر توی یه ورزش خوب هستید و مدالی دارید خیلی روی خواننده تاثیر مثبت میذاره.
- بایدها و نبایدها
لیست مهارتها رو نمره و امتیاز ندید. مثلاً سیشارپ ۴/۵ هیچ معنایی رو منتقل نمیکنه. گاها تاثیر منفی هم داره!
عکس خودتون رو در صورتی تو رزومه بذارید که ظاهر تو کار تاثیر داره. من وارد جزییات نمیشم. اما خودتون میتونید تحقیق کنید و تصمیم بگیرید.
تعداد صفحات باید بین ١ (بهترین حالت) تا نهایت ٣ صفحه باشه. پس در کوتاه و موجز نویسی تلاش کنید.
از سایتهای رزومه ساز استفاده نکنید. رزومه بخشی از مهارت حرفهای شما در ارایه و برقراری ارتباطه.
فرمت رزومه pdf صفحه سفید و فونت مشکی استفاده کنید. تنها یک فونت استاندارد به کار ببرید.
اگر میخواهید توضیحات بیشتر اضافه کنید تو یه فایل دیگه بنویسید و تو ایمیل قرار بدید.
درج سایت شخصی، پروفایل گیتهاب، آرتاستیشن و غیره رو فراموش نکنید.
- نکته آخر
کم، گزیده و مفید بگید. خودتون باشید حتی اگر تمام این نکات رو نادیده بگیرید.
@DevTwitter | <Mohammad Iraji/>
بعد از ده سال و بررسی بیش از هزار رزومه و چندصد مصاحبه یه سری موارد هست که میخوام درباره نوشتن رزومه بگم.
شما مهارتتون رو به کارفرما میفروشید!
پس بهش به عنوان یه کاتالوگ از مهارتهای تخصصیتون نگاه کنید. برای معرفی یه محصول یا سرویس بهترین و شاخصترین ویژگیهاش رو در معرض نمایش قرار میدیم و روی اون تبلیغ میکنیم و بعد تجربه استفاده از اون محصول در جاهای مختلف رو ذکر میکنیم.
چه ربطی به رزومه داره؟
کارفرما نیازهایی داره و دنبال بهترین گزینه میگرده. لیست تخصصها باید اون نیازها رو جواب بده. از یک سمت دهها یا صدها نفر برای اون موقعیت اقدام میکنند. شما در کوتاهترین زمان باید بهترین و جذابترین معرفی از خودتون رو ارایه بدید. در ازای این مهارتها هم پول دریافت میکنید. این همون موقعیتی نیست که شما برای خرید محصول و سرویس مواجه میشید؟
حالا چه طور رزومه بنویسیم؟
- برند
اسم شما برند شماست! اولین مواردی که ذکر میکنید اسم و اطلاعات تماس باید باشه. توضیح یکی دو خطی کافیه و نه بیشتر!
- مهارتهای تخصصی
قسمت بعدی لیست تخصصهای شماست. توجه داشته باشید کارفرما دنبال یه سری نیازه که دنبال اونا میگرده. چه طور بدونیم اونا چیا هستند؟ آگهی شغلی.
لیست تخصصها رو منطبق به آگهی شغلی بنویسید. اما نمیشه برای هر موقعیت یه رزومه نوشت. راهش اینه که آگهیها رو بررسی کنید و پرتکرارترین نیازها رو لیست کنید. اگر تو پرتکرارترینهاش مهارتی هست که بلد نیستید وقت خوبیه که یاد بگیرید.
هر مهارتی غیر مرتبط رو با شغل مورد علاقهتون رو حذف کنید. چون باعث سردرگمی میشه. حتی ممکنه باعث بشه مهارتهای شما برای اون کار زیادتر از حد نیاز باشه. (Over qualified)
(من حتی با این که دنبال کار نیستم گاهی میرم آگهیها رو میخونم تا از جریان صنعت و ترندهای روز خبر داشته باشم)
- تجربه کار حرفهای
تو این بخش از رزومه باید نشون بدید اون مهارتهایی که لیست کردید تو کار چه تاثیری داشته. لیست جاهایی که کار حرفهای انجام دادید رو بنویسید یا اگر پروژه شخصی موفقی رو دارید ذکر کنید. کار غیر مرتبط، پروژههای شخصی کوچیک یا اونایی که جهت یادگیری بوده رو حذف کنید.
لیست جاهایی که کار کردید رو بنویسید و تاثیری که اونجا داشتید رو ذکر کنید. مثلاً اگر تو بخش فروش کار میکردید بنویسید که با فلان مهارت و متود، فروش رو فلان درصد رشد دادم. یا اگر برنامهنویس هستید علاوه بر پارامترهای عددی ویژگیهای شاخصی که برای محصول پیاده کردید رو بنویسید.
جاهایی که کار کردید رو به ترتیب زمان از جدید به قدیم بنویسید. بهتره بین تاریخها فاصله زمان طولانی نباشه. اگر برای شرکتهای خارجی اپلای میکنید درکی از شرایط اقتصادی ایران ندارند و تغییر شرکت با زمانهای کوتاه رو نکته منفی میدونند.
- تحصیلات و دورههای آموزشی
تحصیلات دانشگاهی با گرایش، دورههای آموزشی معتبری که گذروندید رو نام ببرید. باز هم تاکید میکنم به غیر از مدرک دانشگاهی دورههای غیر مرتبط رو لازم نیست ذکر کنید.
اگر برای کار اپلای میکنید و نه دانشگاه، رتبه کنکور، مانور رو دانشگاهی که درس خوندید تاثیر چندانی نداره.
- زبان
لیست زبانهایی که بلدید رو بنویسید. اگر جایی امتحان دادید نمراتش رو ذکر کنید. درصورتی که آزمون ندادید لازم به خودتون نمره بدید یا سطح مهارتهای مختلف رو ذکر کنید. چون اگر زبان خیلی مهم باشه قطعاً توی مصاحبه خودشون ارزیابی میکنند.
- افتخارات
اگر جایی مقامی کسب کردید یا جایزهای بردید ذکر کنید. همینطور که اگر ثبت اختراع دارید هم جاش همینجاست.
- علاقمندیها
این نکته خیلی سرش بحثه که تو رزومه دکتر بشه یا نه. اما اگر با هوشمندی ذکر بشه تاثیر مثبت داره. مثلاً اگر توی یه ورزش خوب هستید و مدالی دارید خیلی روی خواننده تاثیر مثبت میذاره.
- بایدها و نبایدها
لیست مهارتها رو نمره و امتیاز ندید. مثلاً سیشارپ ۴/۵ هیچ معنایی رو منتقل نمیکنه. گاها تاثیر منفی هم داره!
عکس خودتون رو در صورتی تو رزومه بذارید که ظاهر تو کار تاثیر داره. من وارد جزییات نمیشم. اما خودتون میتونید تحقیق کنید و تصمیم بگیرید.
تعداد صفحات باید بین ١ (بهترین حالت) تا نهایت ٣ صفحه باشه. پس در کوتاه و موجز نویسی تلاش کنید.
از سایتهای رزومه ساز استفاده نکنید. رزومه بخشی از مهارت حرفهای شما در ارایه و برقراری ارتباطه.
فرمت رزومه pdf صفحه سفید و فونت مشکی استفاده کنید. تنها یک فونت استاندارد به کار ببرید.
اگر میخواهید توضیحات بیشتر اضافه کنید تو یه فایل دیگه بنویسید و تو ایمیل قرار بدید.
درج سایت شخصی، پروفایل گیتهاب، آرتاستیشن و غیره رو فراموش نکنید.
- نکته آخر
کم، گزیده و مفید بگید. خودتون باشید حتی اگر تمام این نکات رو نادیده بگیرید.
@DevTwitter | <Mohammad Iraji/>