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 کار هستن
این قضیه برای بک اند هم صدق میکنه
به جای تمرکز روی بازار کار روی مهارت و تخصصتون تمرکز کنید
بازار کار دائما در حال تغییره و کسی نمیدونه چند سال دیگه چه زبان یا فریمورکی قراره بیاد که توی بازار کار از بقیه جلو بزنه
پیروز و موفق باشید 🌹
Forwarded from Go Casts 🚀
سلام، یه مطلب جدید دارم با کلی ارجاع به مقالات خفن دیگه
امیدوارم مطلبی که میخوام بگم هم براتون کاربردی باشه و هم لذتبخش.
شایدم به شیوه های مختلف در حال استفاده ش هستید ولی بد نیست ابعاد دیگه ش رو ببنید.
کاربردش وقتیه که میخواید یه کار مشابه رو چندبار انجام بدید، در حالیکه یکبار انجام دادنش کافیه. تو نگاه اول کش کردن به ذهنتون میاد که خب اوکیه، ولی باز برای خود کش کردن هم این موضوع کاربردیه.
ضمنا کش کردن هم اگه multi instance باشید مساله invalidate کردن و sync کردن بین podها رو خواهید داشت و یا اینکه third-party service مثل redis استفاده کنید که مساله latency رو خواهید داشت که خودش یه چالش جدید میشه، پس همیشه کش کردن راه حل نیست…
ضمنا برای کوئری های دیتابیسی که به هر دلیلی قابل کش کردن هم نیستن ولی hotpath هستن و در یه لحظات خاصی concurrent query میخورن هم خیلی کاربردیه.
من بار اول تو مقاله discord باهاش آشنا شدم
how discord stores trillions of messages
https://discord.com/blog/how-discord-stores-trillions-of-messages
که همون موقع خیلی بهم ایده داد که این الگو میتونه کاربردهای مختلفی داشته باشه ولی تو مقاله keyword خاصی رو ندیدم که بتونم بیشتر بررسیش کنم.
گذشت و گذشت تا اینکه چند روز پیش این مقاله ای که جدیدا منتشر شده رو دیدم و فهمیدم گولنگ هم یه پکیج داره به اسم singleflight
Go Singleflight Melts in Your Code, Not in Your DB
https://victoriametrics.com/blog/go-singleflight/
بهش میگن duplicate function call suppression mechanism که حتی در سطح سیستم عامل هم برای استفاده میشه و مشکل معروفیه به اسم Thundering herd problem که در این دو لینک پایین میتونید در موردش بخونید
https://en.wikipedia.org/wiki/Thundering_herd_problem
https://xania.org/200807/iocp
حتی بلاگ instagram engineering هم یه مقاله در همین مورد داره
Thundering Herds & Promises
https://instagram-engineering.com/thundering-herds-promises-82191c8af57d
و محمد حسینی راد عزیز هم یه مقاله در همین مورد نوشته قبلا
Avoid duplicate requests while filling cache!
https://medium.com/@mhrlife/avoid-duplicate-requests-while-filling-cache-98c687879f59
مقالاتی که فرستادم، مخصوصا مقاله victoriametrics مفصل در موردش توضیح داده.
اینم یه مقاله دیگه
Understanding Singleflight in Go: A Solution for Eliminating Redundant Work
https://www.codingexplorations.com/blog/understanding-singleflight-in-golang-a-solution-for-eliminating-redundant-work
اینم یه پکیج که context support رو اضافه کرده، هر چند من پکیج اصلی رو بیشتر ترجیح میدم
https://github.com/janos/singleflight
اینم لینک پکیج اصلی
https://pkg.go.dev/golang.org/x/sync/singleflight
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515
@gocasts
#singleflight
امیدوارم مطلبی که میخوام بگم هم براتون کاربردی باشه و هم لذتبخش.
شایدم به شیوه های مختلف در حال استفاده ش هستید ولی بد نیست ابعاد دیگه ش رو ببنید.
کاربردش وقتیه که میخواید یه کار مشابه رو چندبار انجام بدید، در حالیکه یکبار انجام دادنش کافیه. تو نگاه اول کش کردن به ذهنتون میاد که خب اوکیه، ولی باز برای خود کش کردن هم این موضوع کاربردیه.
ضمنا کش کردن هم اگه multi instance باشید مساله invalidate کردن و sync کردن بین podها رو خواهید داشت و یا اینکه third-party service مثل redis استفاده کنید که مساله latency رو خواهید داشت که خودش یه چالش جدید میشه، پس همیشه کش کردن راه حل نیست…
ضمنا برای کوئری های دیتابیسی که به هر دلیلی قابل کش کردن هم نیستن ولی hotpath هستن و در یه لحظات خاصی concurrent query میخورن هم خیلی کاربردیه.
من بار اول تو مقاله discord باهاش آشنا شدم
how discord stores trillions of messages
https://discord.com/blog/how-discord-stores-trillions-of-messages
که همون موقع خیلی بهم ایده داد که این الگو میتونه کاربردهای مختلفی داشته باشه ولی تو مقاله keyword خاصی رو ندیدم که بتونم بیشتر بررسیش کنم.
گذشت و گذشت تا اینکه چند روز پیش این مقاله ای که جدیدا منتشر شده رو دیدم و فهمیدم گولنگ هم یه پکیج داره به اسم singleflight
Go Singleflight Melts in Your Code, Not in Your DB
https://victoriametrics.com/blog/go-singleflight/
بهش میگن duplicate function call suppression mechanism که حتی در سطح سیستم عامل هم برای استفاده میشه و مشکل معروفیه به اسم Thundering herd problem که در این دو لینک پایین میتونید در موردش بخونید
https://en.wikipedia.org/wiki/Thundering_herd_problem
https://xania.org/200807/iocp
حتی بلاگ instagram engineering هم یه مقاله در همین مورد داره
Thundering Herds & Promises
https://instagram-engineering.com/thundering-herds-promises-82191c8af57d
و محمد حسینی راد عزیز هم یه مقاله در همین مورد نوشته قبلا
Avoid duplicate requests while filling cache!
https://medium.com/@mhrlife/avoid-duplicate-requests-while-filling-cache-98c687879f59
مقالاتی که فرستادم، مخصوصا مقاله victoriametrics مفصل در موردش توضیح داده.
اینم یه مقاله دیگه
Understanding Singleflight in Go: A Solution for Eliminating Redundant Work
https://www.codingexplorations.com/blog/understanding-singleflight-in-golang-a-solution-for-eliminating-redundant-work
اینم یه پکیج که context support رو اضافه کرده، هر چند من پکیج اصلی رو بیشتر ترجیح میدم
https://github.com/janos/singleflight
اینم لینک پکیج اصلی
https://pkg.go.dev/golang.org/x/sync/singleflight
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515
@gocasts
#singleflight
Discord
How Discord Stores Trillions of Messages
Engineer Bo Ingram shares insight into how Discord shoulders its traffic and provides a platform for our users to communicate.
Forwarded from IRCF | اینترنت آزاد برای همه
بزرگترین آسیب فیلترینگ مسدودکردن سرویسها نیست، بلکه اختلالات ناشیاز مبارزه با فیلترشکنهاست ...
🔍 ircf.space
@ircfspace
🔍 ircf.space
@ircfspace
Forwarded from محتوای آزاد سهراب
آموزش راست به زبان فارسی، محتواش خوب بود. اگه دوست داشتید ازشون حمایت کنید.
🔗 https://www.youtube.com/watch?v=Q3cQIWQrNZ8
@SohrabContents
@SohrabContents
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
۰۰ - مقدمهای بر آموزش زبان برنامهنویسی راست
مطابق با فصل اول کتاب راست بوک
گیتهاب: github.com/ostadgeorge/rust-course
راستبوک: doc.rust-lang.org/book
گیتهاب: github.com/ostadgeorge/rust-course
راستبوک: doc.rust-lang.org/book
Forwarded from LearnPOV | لرن پی او وی
🔸 یه سایت پیدا کردم که داخلش میتونید به صورت رایگان تصویری که میخواید رو آپلود کنید و با لینکی که بهتون میده داخل پروژه هاتون ازش استفاده کنید
🌐 مشاهده نمونه
این سایت کاملا رایگان و نامحدوده و برای استفاده ازش، کافیه فقط وارد وبسایتش بشید و عکستون رو اپلود کنید تا لینکشو بهتون بده ✅
🌐 مشاهده نمونه
🔺 اگر این لینک رو به عنوان اتریبیوت src تگ img قرار بدید لوگو کولیکد به شما نمایش داده میشه 🔺
#️⃣ #website #image
🚀 @coolycode
Forwarded from IRCF | اینترنت آزاد برای همه
درخواست یک خبرنگار از رییسجمهور برای رسیدگی به وضعیت اینترنت و اظهارنظر صریح یک کاربر در اینرابطه ...
🔍 ircf.space
@ircfspace
🔍 ircf.space
@ircfspace