Forwarded from Ninja Learn | نینجا لرن
یه آمار بگیریم ببینیم دوستان چیکاره هستن 😄
لطفا همه شرکت کنن، بهمون برای تولید محتوای بهتر و مناسب تر کمک میکنه ❤
لطفا همه شرکت کنن، بهمون برای تولید محتوای بهتر و مناسب تر کمک میکنه ❤
Anonymous Poll
7%
فرانت کارم
73%
بک اند کارم (Django)
5%
بک اند کارم (Node.js)
15%
سایر
Forwarded from Python BackendHub (Mani)
https://martinheinz.dev/blog/92
یک پست خوب از بنیامین که تو گروه گذاشته بود که چرا نباید از ایمیج Alpine استفاده کنید. سه نکته همیشه موقع تصمیم گیری یادتون باشه:
۱. خیلی کم پیش میاد که یک چیزی خوبه مطلق باشه. همین که قدرت تصمیم گیری تو اپلیکیشن بالغی برای شما فراهم شده یعنی یک ترید آف وجود داشته که maintainer ها گذاشتن خودتون تصمیم بگیرید. اینکه ایمیج سایز کمتر بهتره واقعا جمله چرتیه! درستش اینه که ایمیج چیزه اضافه ای نداشته باشه که نیاز نداشته باشین و مراحل بیلدش درست باشه.
۲. همیشه تحقیق کنید. پیرو مورد یک, خیلی وقتا نیازه که تصمیم گیری کنید. اگه چند تا آپشن دارین, گوگل کنید که چرا اون آپشن بده. و drawback های اون آپشن چیه. درکش کنید چطور کار میکنه. همینطوری از یک توتوریال برندارین کپی پیست کنید.
۳. بهتره داکیومنت که چرا اون تصمیم رو گرفتین. تحقیق کردین, دراوبک هارو متوجه شدید, و طبق یک منطقی یک چیزی رو انتخاب کردین. سعی کنید این پروسه رو داکیومنت کنید, چون ۲ ماه دیگه ممکنه یادتون نباشه چرا اون تصمیم رو گرفتین. و یا هم تیمی هاتون ممکنه بعدا گیج بشن چرا فلان تصمیم گرفته شده. تو این مثال فکر کنید یک نفر بگه خب ما این مشکلی که تو این مقاله گفته شده رو نداریم, پس میریم از ایمیج Alpine استفاده میکنیم. ۱ سال دیگه همون مشکل پیش میاد, چون فرضیاتی که داشتین موقع تصمیم گیری دیگه درست نیست. اشتراک دانش یکی از عناصر مهم پویایی یک تیم و پروداکته.
@PyBackendHub
یک پست خوب از بنیامین که تو گروه گذاشته بود که چرا نباید از ایمیج Alpine استفاده کنید. سه نکته همیشه موقع تصمیم گیری یادتون باشه:
۱. خیلی کم پیش میاد که یک چیزی خوبه مطلق باشه. همین که قدرت تصمیم گیری تو اپلیکیشن بالغی برای شما فراهم شده یعنی یک ترید آف وجود داشته که maintainer ها گذاشتن خودتون تصمیم بگیرید. اینکه ایمیج سایز کمتر بهتره واقعا جمله چرتیه! درستش اینه که ایمیج چیزه اضافه ای نداشته باشه که نیاز نداشته باشین و مراحل بیلدش درست باشه.
۲. همیشه تحقیق کنید. پیرو مورد یک, خیلی وقتا نیازه که تصمیم گیری کنید. اگه چند تا آپشن دارین, گوگل کنید که چرا اون آپشن بده. و drawback های اون آپشن چیه. درکش کنید چطور کار میکنه. همینطوری از یک توتوریال برندارین کپی پیست کنید.
۳. بهتره داکیومنت که چرا اون تصمیم رو گرفتین. تحقیق کردین, دراوبک هارو متوجه شدید, و طبق یک منطقی یک چیزی رو انتخاب کردین. سعی کنید این پروسه رو داکیومنت کنید, چون ۲ ماه دیگه ممکنه یادتون نباشه چرا اون تصمیم رو گرفتین. و یا هم تیمی هاتون ممکنه بعدا گیج بشن چرا فلان تصمیم گرفته شده. تو این مثال فکر کنید یک نفر بگه خب ما این مشکلی که تو این مقاله گفته شده رو نداریم, پس میریم از ایمیج Alpine استفاده میکنیم. ۱ سال دیگه همون مشکل پیش میاد, چون فرضیاتی که داشتین موقع تصمیم گیری دیگه درست نیست. اشتراک دانش یکی از عناصر مهم پویایی یک تیم و پروداکته.
@PyBackendHub
martinheinz.dev
Why I Will Never Use Alpine Linux Ever Again
<p>
Nowadays, Alpine Linux is one of the most popular options for container base images. Many people (maybe including you) use it for anything and everythi...
Nowadays, Alpine Linux is one of the most popular options for container base images. Many people (maybe including you) use it for anything and everythi...
Forwarded from DevTwitter | توییت برنامه نویسی
این article رو در مورد prompt engineering و قدم های بعدیش نوشتم
خوشحال میشم اگه بهش یه نگاه بندازید
https://msnp1381.github.io/posts/Evolution-Prompt/
@DevTwitter | <Nemat/>
خوشحال میشم اگه بهش یه نگاه بندازید
https://msnp1381.github.io/posts/Evolution-Prompt/
@DevTwitter | <Nemat/>
Forwarded from Geek Alerts
۵ تا استارشیپ بدون سرنشین تا ۲ سال آینده پرتاب میشن، اگه موفقیت آمیز باشن تا ۴ سال دیگه SpaceX اولین انسانهارو به مریخ میفرسته.
سفر از زمین به مریخ فقط هر دو سال یک بار شدنی هست، زمانی که سیارات در یک راستا هستن، قراره مثل تاکسی خطی باشه، یعنی هرکسی بخواد بتونه به مریخ سفر کنه.
اگه برنامه ۵ تا استارشیپ با مشکل مواجه بشه برنامه بعدی یعنی ارسال انسان به مریخ ۲ سال به تعویق میفته.
در واقع تاریخ اول ۲۰۲۸ هست و اگر این تاریخ انجام نشه برای ۲۰۳۰ قطعی هست.
X
@geekalerts
سفر از زمین به مریخ فقط هر دو سال یک بار شدنی هست، زمانی که سیارات در یک راستا هستن، قراره مثل تاکسی خطی باشه، یعنی هرکسی بخواد بتونه به مریخ سفر کنه.
اگه برنامه ۵ تا استارشیپ با مشکل مواجه بشه برنامه بعدی یعنی ارسال انسان به مریخ ۲ سال به تعویق میفته.
در واقع تاریخ اول ۲۰۲۸ هست و اگر این تاریخ انجام نشه برای ۲۰۳۰ قطعی هست.
X
@geekalerts
Forwarded from متخصص وردپرس | پوینا
چرا PHP نسبت به بقیه زبانها کندتر است و راهکار چیست؟ قسمت دوم
کندی PHP برای شرکتها و سازمانهای بزرگی مانند فیسبوک به یک چالش جدی تبدیل شده بود، زیرا هر فرآیند از ابتدا شروع میشد و این بار اضافی برای سازمانها توجیهپذیر نبود. به همین دلیل فیسبوک تصمیم گرفت معماری HHVM را طراحی کند، که کد PHP را به بایتکد تبدیل کرده و بهصورت Just-In-Time (JIT) کامپایل میکرد.
حالا JIT برای PHP چه کاری انجام میدهد؟
برای توضیح بهتر، تصور کنید یک تعمیرکار یخچال برای تعمیر روزانه در منازل، همه ابزارهای خود را با خودش ببرد. این کار نه تنها او را خسته میکند، بلکه باعث مصرف بیش از حد انرژی و منابع هم میشود.
اما اگر او فقط ابزارهای مورد نیاز برای تعمیر هر یخچال را همراه داشته باشد، کارش سریعتر و بهینهتر انجام میشود.
و jit دقیقاً همین کار را برای کامپایل یک برنامه انجام میدهد؛ یعنی هر بخش از کد فقط زمانی که به آن نیاز باشد، کامپایل و اجرا میشود.
فیسبوک با این روش تونست یک پلتفرم بزرگ رو در اون زمان با php که تقریبا در زبان php ناممکن به نظر میرسید رو عملی کنه
اما در وردپرس...
@poinarir پوینا
کندی PHP برای شرکتها و سازمانهای بزرگی مانند فیسبوک به یک چالش جدی تبدیل شده بود، زیرا هر فرآیند از ابتدا شروع میشد و این بار اضافی برای سازمانها توجیهپذیر نبود. به همین دلیل فیسبوک تصمیم گرفت معماری HHVM را طراحی کند، که کد PHP را به بایتکد تبدیل کرده و بهصورت Just-In-Time (JIT) کامپایل میکرد.
حالا JIT برای PHP چه کاری انجام میدهد؟
برای توضیح بهتر، تصور کنید یک تعمیرکار یخچال برای تعمیر روزانه در منازل، همه ابزارهای خود را با خودش ببرد. این کار نه تنها او را خسته میکند، بلکه باعث مصرف بیش از حد انرژی و منابع هم میشود.
اما اگر او فقط ابزارهای مورد نیاز برای تعمیر هر یخچال را همراه داشته باشد، کارش سریعتر و بهینهتر انجام میشود.
و jit دقیقاً همین کار را برای کامپایل یک برنامه انجام میدهد؛ یعنی هر بخش از کد فقط زمانی که به آن نیاز باشد، کامپایل و اجرا میشود.
فیسبوک با این روش تونست یک پلتفرم بزرگ رو در اون زمان با php که تقریبا در زبان php ناممکن به نظر میرسید رو عملی کنه
اما در وردپرس...
@poinarir پوینا
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
چقدر از ایرانی بودن خودت راضی هستی؟
Anonymous Poll
4%
نیستم
8%
اصلا نیستم
60%
اصلا اصلا نیستم
28%
کاربری عبوری ناراضی از ایرانی بودنم هستم(مشاهده نتایج)
Forwarded from Codino School (ایمان غفوری)
Media is too big
VIEW IN TELEGRAM
▪️این داستان: آنچه درباره Repository Pattern نمیدانستید. (در قالب تصویر)
(رکورد طولانی ترین کلیپ کدینو هم شکسته شد.😏)
@codino
(رکورد طولانی ترین کلیپ کدینو هم شکسته شد.😏)
@codino
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
اگر برای یک محصول پولی پرداخت نمیکنید، یعنی خود شما محصول هستید
لینکدین برای آموزش مدلهای هوش مصنوعی خود از دادههای کاربران استفاده کند
البته میتوان استفاده از دادهها برای آموزش مدلهای آینده را در تنظیمات حساب خود غیرفعال کرد.
#AI #هوش_مصنوعی
بهروزرسانی :
برای اروپا و انگلستان برای حمایت از حقوق کاربران اعمال نمیشود
لینکدین برای آموزش مدلهای هوش مصنوعی خود از دادههای کاربران استفاده کند
البته میتوان استفاده از دادهها برای آموزش مدلهای آینده را در تنظیمات حساب خود غیرفعال کرد.
#AI #هوش_مصنوعی
بهروزرسانی :
برای اروپا و انگلستان برای حمایت از حقوق کاربران اعمال نمیشود
Forwarded from Gopher Academy
🔵 عنوان مقاله
Awesome Ebitengine: A Curated List of Ebitengine Resources
🟢 خلاصه مقاله:
مقالهی مورد بررسی به معرفی و بررسی Ebitengine، یک API قدرتمند برای برنامهنویسی گرافیکهای 2D و توسعه بازیها به زبان Go، پرداخته است. Ebitengine به دلیل عملکرد بالا و سادگی استفاده، در میان توسعهدهندگان بازی پرطرفدار است. مقاله شامل فهرستی از بازیهایی است که با استفاده از این API نوشته شدهاند، کتابخانههایی که میتوان به همراه آن استفاده کرد، و اطلاعات بیشتری در این زمینه. این فهرست میتواند به عنوان منبعی کامل برای توسعهدهندگان علاقهمند به استفاده از Ebitengine و گسترش قابلیتهای آن در پروژههای خود عمل کند و کمکهای فراوانی در فرآیند توسعه بازیهای 2D به آنها ارائه دهد.
🟣لینک مقاله:
https://github.com/sedyh/awesome-ebitengine
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Awesome Ebitengine: A Curated List of Ebitengine Resources
🟢 خلاصه مقاله:
مقالهی مورد بررسی به معرفی و بررسی Ebitengine، یک API قدرتمند برای برنامهنویسی گرافیکهای 2D و توسعه بازیها به زبان Go، پرداخته است. Ebitengine به دلیل عملکرد بالا و سادگی استفاده، در میان توسعهدهندگان بازی پرطرفدار است. مقاله شامل فهرستی از بازیهایی است که با استفاده از این API نوشته شدهاند، کتابخانههایی که میتوان به همراه آن استفاده کرد، و اطلاعات بیشتری در این زمینه. این فهرست میتواند به عنوان منبعی کامل برای توسعهدهندگان علاقهمند به استفاده از Ebitengine و گسترش قابلیتهای آن در پروژههای خود عمل کند و کمکهای فراوانی در فرآیند توسعه بازیهای 2D به آنها ارائه دهد.
🟣لینک مقاله:
https://github.com/sedyh/awesome-ebitengine
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - sedyh/awesome-ebitengine: A curated list of awesome Ebitengine frameworks, libraries and software
A curated list of awesome Ebitengine frameworks, libraries and software - GitHub - sedyh/awesome-ebitengine: A curated list of awesome Ebitengine frameworks, libraries and software
Forwarded from LearnPOV | لرن پی او وی
🔸 یه سایت پیدا کردم که داخلش میتونید به صورت رایگان تصویری که میخواید رو آپلود کنید و با لینکی که بهتون میده داخل پروژه هاتون ازش استفاده کنید
این سایت کاملا رایگان و نامحدوده و برای استفاده ازش، کافیه فقط وارد وبسایتش بشید و عکستون رو اپلود کنید تا لینکشو بهتون بده ✅
#️⃣ #website #image
🚀 @coolycode
Forwarded from DevTwitter | توییت برنامه نویسی
حدود 180 هزار hashtag اکستنشن به صورت رسمی در hashtag کروم استور گوگل برای استفاده کاربران منتشر شده و بازار جهانی اون طبق گزارش های رسمی 75 میلیارد دلار ارزش گذاری شده و پیش بینی میشه این رقم تا سال 2030 به 125 میلیارد دلار برسه !
من در توسعه اکستنشن های مختلفی شریک بودم که سعی میکنم از تجربیات خودم برای شما بیشتر بگم تا شما هم بتونین به راحتی وارد این مارکت بشید و اپ های خودتون رو توی مارکت منتشر کنین !
در قدم اول سعی دارم به شما بگم که چطور میتونین یه اکستنشن کروم بنویسین ، اکستنشن ها ساختار بسیار ساده و جذابی دارن که شما میتونین با زبان های HTML ، CSS ، Javascript پروژه های خودتون رو توسعه بدین .
ایجاد یک فایل manifest.json
این فایل قلب اکستنشن شماست و اطلاعاتی مثل نام اکستنشن، نسخه و مجوزهایی که نیاز داره رو توش مشخص میکنید.
نوشتن یک اسکریپت ساده
در فایل background.js یا content.js کدهایی مینویسید که اکستنشن شما رو فعال میکنه. مثلاً میتونید با content scripts به صفحات وب دسترسی پیدا کنید.
اضافه کردن UI
میتونید با HTML، CSS و JavaScript یک popup برای اکستنشنتون طراحی کنید که به کاربر نشون بده چه کاری میتونید انجام بدید.
نصب اکستنشن در حالت Developer
و در نهایت، با استفاده از بخش "Manage Extensions" در کروم، اکستنشنتون رو تست کنید. فقط کافیه حالت Developer رو فعال کنید و پوشه پروژهتون رو بارگذاری کنید.
شما میتونید آموزش کامل ساخت یک اکستنشن رو توی لینک زیر در وبلاگ من بخونین
https://blog.rezaghz.com/1403/07/how-to-develop-chrome-extension/
@DevTwitter | <Reza Ghasemzadeh/>
من در توسعه اکستنشن های مختلفی شریک بودم که سعی میکنم از تجربیات خودم برای شما بیشتر بگم تا شما هم بتونین به راحتی وارد این مارکت بشید و اپ های خودتون رو توی مارکت منتشر کنین !
در قدم اول سعی دارم به شما بگم که چطور میتونین یه اکستنشن کروم بنویسین ، اکستنشن ها ساختار بسیار ساده و جذابی دارن که شما میتونین با زبان های HTML ، CSS ، Javascript پروژه های خودتون رو توسعه بدین .
ایجاد یک فایل manifest.json
این فایل قلب اکستنشن شماست و اطلاعاتی مثل نام اکستنشن، نسخه و مجوزهایی که نیاز داره رو توش مشخص میکنید.
نوشتن یک اسکریپت ساده
در فایل background.js یا content.js کدهایی مینویسید که اکستنشن شما رو فعال میکنه. مثلاً میتونید با content scripts به صفحات وب دسترسی پیدا کنید.
اضافه کردن UI
میتونید با HTML، CSS و JavaScript یک popup برای اکستنشنتون طراحی کنید که به کاربر نشون بده چه کاری میتونید انجام بدید.
نصب اکستنشن در حالت Developer
و در نهایت، با استفاده از بخش "Manage Extensions" در کروم، اکستنشنتون رو تست کنید. فقط کافیه حالت Developer رو فعال کنید و پوشه پروژهتون رو بارگذاری کنید.
شما میتونید آموزش کامل ساخت یک اکستنشن رو توی لینک زیر در وبلاگ من بخونین
https://blog.rezaghz.com/1403/07/how-to-develop-chrome-extension/
@DevTwitter | <Reza Ghasemzadeh/>
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 خالق وردپرس، سرویس هاستینگ WP Engine را «غده سرطانی» میداند
به نوشته تک کرانچ مت مولنوگ، مدیرعامل Automattic و خالق وردپرس، انتقادات شدیدی علیه سرویس هاستینگ WP Engine مطرح کرد و آن را «غدهی سرطانی» وردپرس خواند. او میگوید WP Engine بدون مشارکت کافی در رشد وردپرس، فقط بهدنبال سودجویی از این پلتفرم بوده و با غیرفعالسازی برخی از ویژگیهای کلیدی، به کاربران ضرر زده است.
او از کاربران خواست هنگام تمدید قراردادهایشان، بهجای WP Engine از شرکتهای دیگر مانند Hostinger و Pressable استفاده کنند.
#خبر
@TheRaymondDev
به نوشته تک کرانچ مت مولنوگ، مدیرعامل Automattic و خالق وردپرس، انتقادات شدیدی علیه سرویس هاستینگ WP Engine مطرح کرد و آن را «غدهی سرطانی» وردپرس خواند. او میگوید WP Engine بدون مشارکت کافی در رشد وردپرس، فقط بهدنبال سودجویی از این پلتفرم بوده و با غیرفعالسازی برخی از ویژگیهای کلیدی، به کاربران ضرر زده است.
او از کاربران خواست هنگام تمدید قراردادهایشان، بهجای WP Engine از شرکتهای دیگر مانند Hostinger و Pressable استفاده کنند.
#خبر
@TheRaymondDev
TechCrunch
Matt Mullenweg calls WP Engine a 'cancer to WordPress' and urges community to switch providers | TechCrunch
Matt Mullenweg unleashed a no-holds-barred tirade at WP Engine, which has been commercializing WordPress since 2010.
Forwarded from Syntax | سینتکس (Daimon)
نکات مهم اجرای جنگو با Gunicorn
توضیح درباره Gunicorn
نمیخوام توضیحات زیادی بدم حوصلتون سر بره پس همون سه خط معرفی که تو وب سایت gunicorn نوشته رو براتون یکم شفافش میکنم:
اسمش مخفف green unicorn هستش
جی یونیکورن یک http سرور هستش که از استاندارد WSGI(Web server gateway interface) برای اجرای برنامه های وب پایتون استفاده میکنه.
استاندارد WSGI برای این بوجود اومد تا هر فریم ورک وب پایتونی روش خودشو واسه ارتباط پیاده نکنه و همه از یه استاندارد مشخص استفاده کنن.
در ادامه میگه gunicorn برای unix هستش و برای سیستم عامل هایی مثل مک و لینوکس طراحی شده.
بعدش میگه که جی یونیکورن از مدل pre-fork worker استفاده میکنه حالا این به چه معنیه؟
جی یونیکورن کاری که میکنه اینه قبل اینکه شروع به پردازش درخواست ها کنه، میاد و به اندازه ای که تنظیم کردید worker ایجاد میکنه که هر worker درخواست هارو بطور مستقل پردازش میکنه.
بعدشم میگه با فریم ورک های وب مختلفی سازگاره که اینم میتونیم دلیلش رو این بدونیم داره برای ارتباط از استاندارد WSGI استفاده میکنه.
قسمت آخرشم میگه light resource هستش و منابع کمی مصرف میکنه همچنین برای ترافیک بالا عملکرد خوبی داره.
خب جی یونیکورن این ادعا هارو میکنه اما بیاید با چند تا مثال شرایطی رو بررسی کنیم که شما به غلط دارید از جی یونیکورن استفاده میکنید:
مثال اول
اگه با این دستور جی یونیکورن رو اجرا کنید باید به این نکته دقت کنید بصورت پیشفرض براتون فقط یدونه worker میسازه که این اصلا خوب نیست. خود جی یونیکورن پیشنهاد میده حتی اگه یدونه core دارید 4 تا ورکر بسازید و یه فرمولی هم داده که میگه«تعداد هسته های سی پی یو رو ضربدر 2 به علاوه یک کنید»
همچنین به شما اطمینان داده همین تعداد ورکر هزاران ریکوئست رو میتونن پاسخ بدن پس تعداد ورکر هارو الکی زیادش نکنید.
البته به کیس شما هم بستگی داره.
دستور بهتر برای اجرا اینه تعداد ورکر هارو مشخص کنیم:
مثال دوم:
فرض کنید کاربر ها تو اپلیکیشن شما فایل هایی رو آپلود میکنن. شما پنج تا ورکر دارید.
وقتی پنج تا کاربر همزمان فایل آپلود کنن بنظرتون چه اتفاقی میوفته؟
پنج تا ورکر شما گیر یه io افتادن و مشغولن و درخواست های دیگه کاربرا انجام نمیشه. خب این وضعیتی نیست که باب میلیتون باشه!
برای حل این مشکل کافیه از gevent توی جی یونیکرون استفاده گنید؛
با فلگ -k نوع کلاس ورکر رو مشخص میکنیم. حالا چرا از gevent استفاده میکنیم؟
کتابخونه gevent برای مدریریت همزمانی طراحی شده. میشه گفت یک نمونه lightweight thread هستش که این مدل موقع عملیات های IO سوئیچینگ انجام میده و در این صورت اگه به io خوردید براتون هندل میکنه.
کلی نکات دیگه هم قطعا هست که تو یه پست جا نمیشه
امیدوارم براتون مفید باشه
#python #django #gunicorn #gevent
@Syntax_fa
توضیح درباره Gunicorn
نمیخوام توضیحات زیادی بدم حوصلتون سر بره پس همون سه خط معرفی که تو وب سایت gunicorn نوشته رو براتون یکم شفافش میکنم:
اسمش مخفف green unicorn هستش
جی یونیکورن یک http سرور هستش که از استاندارد WSGI(Web server gateway interface) برای اجرای برنامه های وب پایتون استفاده میکنه.
استاندارد WSGI برای این بوجود اومد تا هر فریم ورک وب پایتونی روش خودشو واسه ارتباط پیاده نکنه و همه از یه استاندارد مشخص استفاده کنن.
در ادامه میگه gunicorn برای unix هستش و برای سیستم عامل هایی مثل مک و لینوکس طراحی شده.
بعدش میگه که جی یونیکورن از مدل pre-fork worker استفاده میکنه حالا این به چه معنیه؟
جی یونیکورن کاری که میکنه اینه قبل اینکه شروع به پردازش درخواست ها کنه، میاد و به اندازه ای که تنظیم کردید worker ایجاد میکنه که هر worker درخواست هارو بطور مستقل پردازش میکنه.
بعدشم میگه با فریم ورک های وب مختلفی سازگاره که اینم میتونیم دلیلش رو این بدونیم داره برای ارتباط از استاندارد WSGI استفاده میکنه.
قسمت آخرشم میگه light resource هستش و منابع کمی مصرف میکنه همچنین برای ترافیک بالا عملکرد خوبی داره.
خب جی یونیکورن این ادعا هارو میکنه اما بیاید با چند تا مثال شرایطی رو بررسی کنیم که شما به غلط دارید از جی یونیکورن استفاده میکنید:
مثال اول
gunicorn --chdir config config.wsgi:application -b 0.0.0.0:8000
اگه با این دستور جی یونیکورن رو اجرا کنید باید به این نکته دقت کنید بصورت پیشفرض براتون فقط یدونه worker میسازه که این اصلا خوب نیست. خود جی یونیکورن پیشنهاد میده حتی اگه یدونه core دارید 4 تا ورکر بسازید و یه فرمولی هم داده که میگه«تعداد هسته های سی پی یو رو ضربدر 2 به علاوه یک کنید»
همچنین به شما اطمینان داده همین تعداد ورکر هزاران ریکوئست رو میتونن پاسخ بدن پس تعداد ورکر هارو الکی زیادش نکنید.
البته به کیس شما هم بستگی داره.
دستور بهتر برای اجرا اینه تعداد ورکر هارو مشخص کنیم:
gunicorn --workers 5 --chdir config config.wsgi:application -b 0.0.0.0:8000
مثال دوم:
فرض کنید کاربر ها تو اپلیکیشن شما فایل هایی رو آپلود میکنن. شما پنج تا ورکر دارید.
وقتی پنج تا کاربر همزمان فایل آپلود کنن بنظرتون چه اتفاقی میوفته؟
پنج تا ورکر شما گیر یه io افتادن و مشغولن و درخواست های دیگه کاربرا انجام نمیشه. خب این وضعیتی نیست که باب میلیتون باشه!
برای حل این مشکل کافیه از gevent توی جی یونیکرون استفاده گنید؛
gunicorn --workers 1 -k gevent --chdir config config.wsgi:application -b 0.0.0.0:8000
با فلگ -k نوع کلاس ورکر رو مشخص میکنیم. حالا چرا از gevent استفاده میکنیم؟
کتابخونه gevent برای مدریریت همزمانی طراحی شده. میشه گفت یک نمونه lightweight thread هستش که این مدل موقع عملیات های IO سوئیچینگ انجام میده و در این صورت اگه به io خوردید براتون هندل میکنه.
کلی نکات دیگه هم قطعا هست که تو یه پست جا نمیشه
امیدوارم براتون مفید باشه
#python #django #gunicorn #gevent
@Syntax_fa
Forwarded from Ninja Learn | نینجا لرن
YouTube
🚀 اموزش مقدماتی DRF - 📚 قسمت 20 - 👨🏫 پیاده سازی مدل های مربوط به Exam
خوش اومدی به Ninjalearn اینجا بهت کمک میکنیم تا مهارتهای برنامهنویسی و توسعه وب رو بصورت تخصصی و اصولی یاد بگیری. 💻 از مفاهیم پایه تا تکنیکهای پیشرفته، همه چیز رو به سادهترین و کاربردیترین شکل ممکن آموزش میدیم. با ما همراه شو تا به یک توسعهدهنده حرفهای…
Forwarded from مشورت کامپیوتریها (SRB)
#یک_دقیقه_با_کامپیوتر
💻در مجموعه یک دقیقه با کامپیوتر سعی میکنیم در کمتر از یک دقیقه مفاهیم دنیای کامپیوتر را به صورت ساده و جذاب بیان کنیم. محتوای این مجموعه برشهایی کوتاه از پادکستها هستند که سعی میشود با عوامل بصری متفاوت ارائه شود.
🔥این یک دقیقه با# ارتباط_بین_کاربر_و_سرور
✅این یک دقیقه برشی از قسمت پنجم پادکست مشورت کامپیوتریها بود.
[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کستباکس | اپلپادکست]
🔰مشورت کامپیوتری ها
@coaching_ce
💻در مجموعه یک دقیقه با کامپیوتر سعی میکنیم در کمتر از یک دقیقه مفاهیم دنیای کامپیوتر را به صورت ساده و جذاب بیان کنیم. محتوای این مجموعه برشهایی کوتاه از پادکستها هستند که سعی میشود با عوامل بصری متفاوت ارائه شود.
🔥این یک دقیقه با
[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کستباکس | اپلپادکست]
🔰مشورت کامپیوتری ها
@coaching_ce
Forwarded from مشورت کامپیوتریها (SRB)
Media is too big
VIEW IN TELEGRAM
#یک_دقیقه_با_کامپیوتر
#ارتباط_بین_کاربر_و_سرور
[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کستباکس | اپلپادکست]
🔰مشورت کامپیوتری ها
@coaching_ce
#ارتباط_بین_کاربر_و_سرور
[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کستباکس | اپلپادکست]
🔰مشورت کامپیوتری ها
@coaching_ce
Forwarded from Laravel News
Serverless Search using Laravel and the Typesense Cloud https://laravel-news.com/serverless-search-laravel-typesense
Laravel News
Serverless Search using Laravel and the Typesense Cloud - Laravel News
Integrating search into a Laravel Application that includes AWS DynamoDB and Typesense
Forwarded from Ninja Learn | نینجا لرن
یه مساله رو لازم دونستم بهتون بگم دوستان
فرقی نمیکنه شما حوزه کاریتون چی باشه و توی کدوم زبان و فریمورک متخصص باشید
اگه تخصص خوبی داشته باشید و مهارت فنی تون خوب باشه همیشه و همه جا کار هست
حتی اگه برنامه نویس زبان منسوخ شده ای مثل Cobol باشید
درسته بازار کار یه سری زبان و فریمورک نسبت به بقیه بهتره ولی خب در عوض رقابت توی اون زبان و فریمورک بیشتر و سخت تره
مثلا میگم، الان جوّ جوری شده که هر کسی میخواد فرانت یاد بگیره میره سمت React و Next.js چون بازار کارشون نسبت به بقیه فریمورکا عالیه، ولی در عوض رقابت توی این استک خیلی سخته چون همه React کار هستن
این قضیه برای بک اند هم صدق میکنه
به جای تمرکز روی بازار کار روی مهارت و تخصصتون تمرکز کنید
بازار کار دائما در حال تغییره و کسی نمیدونه چند سال دیگه چه زبان یا فریمورکی قراره بیاد که توی بازار کار از بقیه جلو بزنه
پیروز و موفق باشید 🌹
فرقی نمیکنه شما حوزه کاریتون چی باشه و توی کدوم زبان و فریمورک متخصص باشید
اگه تخصص خوبی داشته باشید و مهارت فنی تون خوب باشه همیشه و همه جا کار هست
حتی اگه برنامه نویس زبان منسوخ شده ای مثل Cobol باشید
درسته بازار کار یه سری زبان و فریمورک نسبت به بقیه بهتره ولی خب در عوض رقابت توی اون زبان و فریمورک بیشتر و سخت تره
مثلا میگم، الان جوّ جوری شده که هر کسی میخواد فرانت یاد بگیره میره سمت React و Next.js چون بازار کارشون نسبت به بقیه فریمورکا عالیه، ولی در عوض رقابت توی این استک خیلی سخته چون همه React کار هستن
این قضیه برای بک اند هم صدق میکنه
به جای تمرکز روی بازار کار روی مهارت و تخصصتون تمرکز کنید
بازار کار دائما در حال تغییره و کسی نمیدونه چند سال دیگه چه زبان یا فریمورکی قراره بیاد که توی بازار کار از بقیه جلو بزنه
پیروز و موفق باشید 🌹