Forwarded from tiivik️
Forwarded from محتوای آزاد سهراب (Sohrab)
مایکروسافت، بیسیک برای ریزپردازنده 6502 رو اوپن سورس کرده.
https://github.com/microsoft/BASIC-M6502
https://en.m.wikipedia.org/wiki/MOS_Technology_6502
@SohrabContents
https://github.com/microsoft/BASIC-M6502
https://en.m.wikipedia.org/wiki/MOS_Technology_6502
@SohrabContents
GitHub
GitHub - microsoft/BASIC-M6502: Microsoft BASIC for 6502 Microprocessor - Version 1.1
Microsoft BASIC for 6502 Microprocessor - Version 1.1 - microsoft/BASIC-M6502
Forwarded from The Geeks - Fa
⚡️ نسخه پایدار TheGeeks.ir بالاخره منتشر شد!
از این به بعد برای هر پروژهای فقط کافیه بهجای github.com بنویسی thegeeks.ir 👨💻
🔍 اینطوری میتونی پروژههای مشابه رو ببینی + ترجمهی فارسی مستندات رو هم داشته باشی!
برای مثال:
👉 github.com/hiradsajde/TommyBot
رو تبدیل کن به:
👉 thegeeks.ir/hiradsajde/TommyBot
و جادو رو ببین! ✨
🆔 t.iss.one/TheGeeksCommunity
از این به بعد برای هر پروژهای فقط کافیه بهجای github.com بنویسی thegeeks.ir 👨💻
🔍 اینطوری میتونی پروژههای مشابه رو ببینی + ترجمهی فارسی مستندات رو هم داشته باشی!
برای مثال:
👉 github.com/hiradsajde/TommyBot
رو تبدیل کن به:
👉 thegeeks.ir/hiradsajde/TommyBot
و جادو رو ببین! ✨
🆔 t.iss.one/TheGeeksCommunity
GitHub
GitHub - hiradsajde/TommyBot: Telegram bot to download youtube videos based on cloudflare warp
Telegram bot to download youtube videos based on cloudflare warp - hiradsajde/TommyBot
Forwarded from Curious Geek ⚡️
⚡️ نسخه پایدار TheGeeks.ir بالاخره منتشر شد!
از این به بعد برای هر پروژهای فقط کافیه بهجای github.com بنویسی thegeeks.ir 👨💻
🔍 اینطوری میتونی پروژههای مشابه رو ببینی + ترجمهی فارسی مستندات رو هم داشته باشی!
برای مثال:
👉 github.com/hiradsajde/TommyBot
رو تبدیل کن به:
👉 thegeeks.ir/hiradsajde/TommyBot
و جادو رو ببین! ✨
🆔 t.iss.one/TheGeeksCommunity
از این به بعد برای هر پروژهای فقط کافیه بهجای github.com بنویسی thegeeks.ir 👨💻
🔍 اینطوری میتونی پروژههای مشابه رو ببینی + ترجمهی فارسی مستندات رو هم داشته باشی!
برای مثال:
👉 github.com/hiradsajde/TommyBot
رو تبدیل کن به:
👉 thegeeks.ir/hiradsajde/TommyBot
و جادو رو ببین! ✨
🆔 t.iss.one/TheGeeksCommunity
GitHub
GitHub - hiradsajde/TommyBot: Telegram bot to download youtube videos based on cloudflare warp
Telegram bot to download youtube videos based on cloudflare warp - hiradsajde/TommyBot
Forwarded from Morteza Bashsiz مرتضی باشسیز
سافت اسکیلز یا مهارتهای غیرفنی
در این ویدیو راجع به تجربیات و نظر خودم در مورد مهارتهای غیرفنی توی محیط کار صحبت کردم
https://youtu.be/tWFP_7xkFC8
در این ویدیو راجع به تجربیات و نظر خودم در مورد مهارتهای غیرفنی توی محیط کار صحبت کردم
https://youtu.be/tWFP_7xkFC8
YouTube
سافت اسکیلز یا مهارتهای غیرفنی
در این ویدیو راجع به تجربیات و نظر خودم در مورد مهارتهای غیرفنی توی محیط کار صحبت کردم.
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 یک نسل کامل زیر ۳۰ سال دارد به این واقعیت پی میبرد که داشتن خانواده و خانه هرگز در دسترس آنها نخواهد بود.
جامعه آماده پیامدهای این موضوع نیست؛ نسلی که هیچ سهمی در این سیستم ندارد، ترجیح میدهد ببیند همه چیز بسوزد و فرو بپاشد.
تمام نظرات یک پیام مشترک را بازتاب میدهند: اگر مشکل خانه دار شدن حل نشود، از اینجا به بعد یک سراشیبی آرام به سمت سوسیالیسم خواهد بود.
#توییت
#منهای_برنامه_نویسی
@TheRaymondDev
جامعه آماده پیامدهای این موضوع نیست؛ نسلی که هیچ سهمی در این سیستم ندارد، ترجیح میدهد ببیند همه چیز بسوزد و فرو بپاشد.
تمام نظرات یک پیام مشترک را بازتاب میدهند: اگر مشکل خانه دار شدن حل نشود، از اینجا به بعد یک سراشیبی آرام به سمت سوسیالیسم خواهد بود.
#توییت
#منهای_برنامه_نویسی
@TheRaymondDev
Forwarded from Gopher Academy
🔵 عنوان مقاله
The 9 Go Test Assertions I Use (and Why)
🟢 خلاصه مقاله:
این مقاله با تکیه بر بحثی قدیمی در دنیای Go بررسی میکند که آیا باید از پکیجهای Assertion استفاده کرد یا خیر. نویسنده میگوید بهجای چارچوبهای سنگین، از چند تابع کمکی ساده و دستساز برای آزمونها استفاده میکند؛ تابعهایی که کارهای رایجی مثل برابری/نابرابری، بررسی خطا (از جمله خطاهای انتظاررفته یا پیچیده)، nil بودن یا نبودن، شامل بودن، طول مجموعهها، مقایسه تقریبی اعداد/زمان و انتظار وقوع panic را پوشش میدهند و پیام خطای واضحی میدهند بدون اینکه وابستگی خارجی اضافه کنند. او به پرسش «آیا Assertionها ضدالگو هستند؟» پاسخ میدهد: وقتی منطق را پنهان کنند و به زنجیرهسازی و DSLهای مبهم تبدیل شوند، بله؛ اما اگر کوچک، هدفمند و شفاف باشند نهتنها ایرادی ندارند، بلکه خوانایی و نگهداشت را بهتر میکنند. در نهایت توصیه میکند Helperها حداقلی و محلی باشند، نامگذاری روشن داشته باشند، از اغراق در انتزاع پرهیز شود، و فقط در موارد لازم سراغ ابزارهایی مثل go-cmp یا testify برویم. نتیجهگیری: مشکل در خود Assertion نیست، در استفاده بیملاحظه از آن است.
🟣لینک مقاله:
https://golangweekly.com/link/173627/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The 9 Go Test Assertions I Use (and Why)
🟢 خلاصه مقاله:
این مقاله با تکیه بر بحثی قدیمی در دنیای Go بررسی میکند که آیا باید از پکیجهای Assertion استفاده کرد یا خیر. نویسنده میگوید بهجای چارچوبهای سنگین، از چند تابع کمکی ساده و دستساز برای آزمونها استفاده میکند؛ تابعهایی که کارهای رایجی مثل برابری/نابرابری، بررسی خطا (از جمله خطاهای انتظاررفته یا پیچیده)، nil بودن یا نبودن، شامل بودن، طول مجموعهها، مقایسه تقریبی اعداد/زمان و انتظار وقوع panic را پوشش میدهند و پیام خطای واضحی میدهند بدون اینکه وابستگی خارجی اضافه کنند. او به پرسش «آیا Assertionها ضدالگو هستند؟» پاسخ میدهد: وقتی منطق را پنهان کنند و به زنجیرهسازی و DSLهای مبهم تبدیل شوند، بله؛ اما اگر کوچک، هدفمند و شفاف باشند نهتنها ایرادی ندارند، بلکه خوانایی و نگهداشت را بهتر میکنند. در نهایت توصیه میکند Helperها حداقلی و محلی باشند، نامگذاری روشن داشته باشند، از اغراق در انتزاع پرهیز شود، و فقط در موارد لازم سراغ ابزارهایی مثل go-cmp یا testify برویم. نتیجهگیری: مشکل در خود Assertion نیست، در استفاده بیملاحظه از آن است.
🟣لینک مقاله:
https://golangweekly.com/link/173627/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
www.alexedwards.net
The 9 Go test assertions I use (and why) - Alex Edwards
Forwarded from Gopher Academy
🔵 عنوان مقاله
Default Methods in Go
🟢 خلاصه مقاله:
رابطهای Go ساده و قدرتمندند، اما همین سادگی در زمان تکامل میتواند شکننده شود: افزودن یک متد جدید به یک رابط موجود، همه پیادهسازیهای فعلی را میشکند تا زمانی که متد تازه را اضافه کنند. میگل این چالش را، بهویژه برای کتابخانههایی با استفاده گسترده، واکاوی میکند و نشان میدهد چرا نگهداشت سازگاری دشوار است.
راهکارهای رایج در Go شامل ساخت رابطهای کوچک و پایدار، افزودن رابطهای فرعی اختیاری برای قابلیتهای جدید، و استفاده از آداپتورها یا توابع کمکی است؛ این روشها از شکستن کد جلوگیری میکنند اما هزینهٔ پیچیدگی و پراکندگی API را بالا میبرند. ایدهٔ «متدهای پیشفرض» در برخی زبانها—که اجازه میدهد به رابطها متد با پیادهسازی پیشفرض اضافه شود—میتواند تکامل سازگار با گذشته را آسان کند، اما در عوض ابهام در حل تعارض متدها، غافلگیریهای رفتاری و افزایش پیچیدگی مدل زبانی را به همراه دارد.
نتیجهٔ تحلیل این است که گرچه متدهای پیشفرض وسوسهانگیزند، با اصول سادگی و صراحت Go در تعارضاند. بنابراین توصیه میشود رابطها را کوچک طراحی کنیم، تغییرات را از طریق رابطهای افزوده و آداپتورها پیش ببریم، و از تغییرات شکستندار تا حد امکان پرهیز کنیم.
🟣لینک مقاله:
https://golangweekly.com/link/173623/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Default Methods in Go
🟢 خلاصه مقاله:
رابطهای Go ساده و قدرتمندند، اما همین سادگی در زمان تکامل میتواند شکننده شود: افزودن یک متد جدید به یک رابط موجود، همه پیادهسازیهای فعلی را میشکند تا زمانی که متد تازه را اضافه کنند. میگل این چالش را، بهویژه برای کتابخانههایی با استفاده گسترده، واکاوی میکند و نشان میدهد چرا نگهداشت سازگاری دشوار است.
راهکارهای رایج در Go شامل ساخت رابطهای کوچک و پایدار، افزودن رابطهای فرعی اختیاری برای قابلیتهای جدید، و استفاده از آداپتورها یا توابع کمکی است؛ این روشها از شکستن کد جلوگیری میکنند اما هزینهٔ پیچیدگی و پراکندگی API را بالا میبرند. ایدهٔ «متدهای پیشفرض» در برخی زبانها—که اجازه میدهد به رابطها متد با پیادهسازی پیشفرض اضافه شود—میتواند تکامل سازگار با گذشته را آسان کند، اما در عوض ابهام در حل تعارض متدها، غافلگیریهای رفتاری و افزایش پیچیدگی مدل زبانی را به همراه دارد.
نتیجهٔ تحلیل این است که گرچه متدهای پیشفرض وسوسهانگیزند، با اصول سادگی و صراحت Go در تعارضاند. بنابراین توصیه میشود رابطها را کوچک طراحی کنیم، تغییرات را از طریق رابطهای افزوده و آداپتورها پیش ببریم، و از تغییرات شکستندار تا حد امکان پرهیز کنیم.
🟣لینک مقاله:
https://golangweekly.com/link/173623/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Gopher Academy
🎙 پادکست جدید
🚧 Go Improvement: 🫸 waitgroup.Go, json/v2, 🐍 new features for cobra apps, with Jeremy Foran
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🚧 Go Improvement: 🫸 waitgroup.Go, json/v2, 🐍 new features for cobra apps, with Jeremy Foran
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 نصب MongoDB به صورت لوکال هاست در لینوکس
با این روش می توانید از شر نسخه آنلاین اطلس کلود که به سختی بارگزاری می کند و سنگین است, خلاص شوید.
- نصب در اوبونتو و سایر توزیع مبتنی بر اوبونتو :
بسته های زیر را نصب کنید:
کلید عمومی GPG را وارد کنید:
حالا دستور زیر براساس نسخه های زیر وارد کنید:
نسخه Focal :
نسخه Jammy :
نسخه Noble :
و دستور را وارد کنید تا آپدیت شود:
با دستور زیر MongoDB را نصب کنید:
دیتابیس را استارت بزنید:
وضعیت دیتابیس را چک کنید که فعال شده است یا خیر:
حالا نرم افزار Compass برای مدیریت دیتابیس MongoDB را دانلود و نصب کنید:
برای همه سیستم عامل ها موجود است.
https://www.mongodb.com/products/tools/compass
و حالا با آدرس زیر وصل شوید:
#mongodb
@TheRaymondDev
با این روش می توانید از شر نسخه آنلاین اطلس کلود که به سختی بارگزاری می کند و سنگین است, خلاص شوید.
- نصب در اوبونتو و سایر توزیع مبتنی بر اوبونتو :
بسته های زیر را نصب کنید:
sudo apt-get install gnupg curl
کلید عمومی GPG را وارد کنید:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
حالا دستور زیر براساس نسخه های زیر وارد کنید:
نسخه Focal :
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ]
https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" |
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
نسخه Jammy :
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ]
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" |
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
نسخه Noble :
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ]
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" |
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
و دستور را وارد کنید تا آپدیت شود:
sudo apt-get update
با دستور زیر MongoDB را نصب کنید:
sudo apt-get install -y mongodb-org
دیتابیس را استارت بزنید:
sudo systemctl start mongod
وضعیت دیتابیس را چک کنید که فعال شده است یا خیر:
sudo systemctl status mongod
حالا نرم افزار Compass برای مدیریت دیتابیس MongoDB را دانلود و نصب کنید:
برای همه سیستم عامل ها موجود است.
https://www.mongodb.com/products/tools/compass
و حالا با آدرس زیر وصل شوید:
mongodb://localhost:27017/MyProject
#mongodb
@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 کد ۴۸ ساله معروف بیل گیتس، اوپنسورس شد!
مایکروسافت کد ۴۸ سالهی معروف بیل گیتس را متنباز کرد تا هر کسی بتواند آن را ببیند و استفاده کند.
پ.ن : کامیتی که دیروز ثبت شد اما زمان ثبت آن ۴۸ سال پیش نشون میده. چطور ممکنه؟ 😐
https://github.com/microsoft/BASIC-M6502
@TheRaymondDev
مایکروسافت کد ۴۸ سالهی معروف بیل گیتس را متنباز کرد تا هر کسی بتواند آن را ببیند و استفاده کند.
پ.ن : کامیتی که دیروز ثبت شد اما زمان ثبت آن ۴۸ سال پیش نشون میده. چطور ممکنه؟ 😐
https://github.com/microsoft/BASIC-M6502
@TheRaymondDev
Forwarded from دستاوردهای یادگیری عمیق(InTec)
Intel Arc B50-B60 Pro گزینههای خوبی برای گرافیک هست؛ هر دو مورد توی دسته بندی
mini-gpu قرار میگیره ولی برا خلاف مدلهای Nvidia اجازه هرکاری بهتون میده؛ رندر - بازی و البته مهمتر از همه AI منم تازه دارم راجبش تحقیق میکنم (قبلتر توی معرفی راجبش پست گذاشته بودم) ولی از نظر قیمت و مصرف برق خیلی نظرم رو جلب کرد:بنظر میاد قیمتها قراره اینطور باشه
نسخه
B60 Pro با ۲۴ گیگ حافظه و قیمت ۵۰۰ دلار هست.نسخه
B50 Pro با ۱۶ گیگ حافظه و قیمت ۳۵۰ دلار هستالبته قیمتها حدودی هست؛ و مهمترین بخش اینکه میتونید
GPU رو بین چندتا virtual machine تقسیم کنید (بچههایی که پروداکشن کار کردند میدونند چقدر مهم میتونه بشه این نکته)بهترین بخشش؛
B50 PRo که ضعیفتر هست توی بنچمارک اولیه روی مدل ۲۰ میلیارد پارامتری openai تعداد ۱۵ توکن تولید میکنه (میگم اولیه چون نه درایور نهایی اومده؛ نه دست دولوپرها رفته و ... اپتیمایز نشده این تعداد هست.)شخصا البته دارم روی نسخهی معرفی شده شرکت
MaxSun تحقیق میکنم که ۲ تا از B60Pro هارو روی یک برد سوار کرده و ۴۸ گیگ حافظه در اختیار میذاره که قیمت رسمی ۱۲۰۰ دلار هست (مثل اینکه فروشندهها چون کمبود داره گرونتر میدن ولی خب اندکی صبر)MS-Intel ARC Pro B60 Dual 48G Turbo
این
GPU ها قرار نیست کار A6000 انویدیا رو براتون انجام بده که منطقی هم هست چون ۶۰۰۰ دلار قیمتش نیست؛ با توجه به مصرف برق و سایز و قیمت و محدودیتهای کمی که داره شخصا دارم به این گزینه بجای DGX Spark فکر میکنم (البته برای پروژه شرکت)MAXSUN
MS-Intel ARC Pro B60 Dual 48G Turbo
Dual-GPU DesignTwice the horsepower, double the trouble shotting—to your enemies, not your frame rate.
48GB GDDR MemoryBecause 48GB is for spreadsheets, feed your rendering beast with a buffet of VRAM.
Dual-Slot Form FactorPowerful, but still fits like it’s…
48GB GDDR MemoryBecause 48GB is for spreadsheets, feed your rendering beast with a buffet of VRAM.
Dual-Slot Form FactorPowerful, but still fits like it’s…
Forwarded from Gopher Academy
🔵 عنوان مقاله
Making Games in Go: 3 Months Without LLMs vs 3 Days With LLMs
🟢 خلاصه مقاله:
**این مقاله روایت شخصی و سرگرمکنندهای از ساخت دو بازی کارتی با زبان Go است که دو رویکرد را مقایسه میکند: بدون کمک LLMها حدود سه ماه زمان برد، اما با کمک LLMها ظرف سه روز به نتیجه رسید. نویسنده نشان میدهد که بخش عمده زمان بدون LLM صرف مطالعه مستندات، اتصال کتابخانهها و رفع خطاها میشود، در حالیکه LLMها با تولید اسکلت کد، خلاصهسازی اسناد و پیشنهاد راهحلها، کارهای زمانبر را فشرده میکنند. نتیجهگیری مقاله این است که LLMها جایگزین مهارت مهندسی نیستند، اما با نظارت و آزمون مناسب میتوانند مسیر رسیدن از ایده به نمونهٔ قابل اجرا را بهطور چشمگیری کوتاه کنند، و Go بستر ساده و محکمی برای این کار فراهم میکند.
🟣لینک مقاله:
https://golangweekly.com/link/173648/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Making Games in Go: 3 Months Without LLMs vs 3 Days With LLMs
🟢 خلاصه مقاله:
**این مقاله روایت شخصی و سرگرمکنندهای از ساخت دو بازی کارتی با زبان Go است که دو رویکرد را مقایسه میکند: بدون کمک LLMها حدود سه ماه زمان برد، اما با کمک LLMها ظرف سه روز به نتیجه رسید. نویسنده نشان میدهد که بخش عمده زمان بدون LLM صرف مطالعه مستندات، اتصال کتابخانهها و رفع خطاها میشود، در حالیکه LLMها با تولید اسکلت کد، خلاصهسازی اسناد و پیشنهاد راهحلها، کارهای زمانبر را فشرده میکنند. نتیجهگیری مقاله این است که LLMها جایگزین مهارت مهندسی نیستند، اما با نظارت و آزمون مناسب میتوانند مسیر رسیدن از ایده به نمونهٔ قابل اجرا را بهطور چشمگیری کوتاه کنند، و Go بستر ساده و محکمی برای این کار فراهم میکند.
🟣لینک مقاله:
https://golangweekly.com/link/173648/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Reza Jafari
سلام و درود بر همگی
⭐️ خوشبختانه با حمایت و همراهی خوب شرکت اهورا، تونستیم فقط توی دو هفته، بیشتر از ۱۵ مطلب تخصصی در زمینه هوش مصنوعی آماده و منتشر کنیم.
اگه شما هم صاحب کسبوکار هستید یا به تولید محتوای تخصصی و باکیفیت در حوزه هوش مصنوعی علاقه دارید و دوست دارید این مسیر توی پلتفرمهای مختلف مثل اینستاگرام، پادکست، یوتیوب و … گستردهتر بشه، خیلی خوشحال میشیم کنار ما باشید و از این جریان حمایت کنید.
برای هماهنگی و گفتوگو میتونید از طریق آیدی زیر با ما در تماس باشید:
🔗 @rzdjafari
حمایت شما قطعاً باعث میشه بتونیم محتوای ارزشمندتر و بیشتری در زمینه هوش مصنوعی تولید کنیم.
ممنون از همراهیتون🙏
@reza_jafari_ai
اگه شما هم صاحب کسبوکار هستید یا به تولید محتوای تخصصی و باکیفیت در حوزه هوش مصنوعی علاقه دارید و دوست دارید این مسیر توی پلتفرمهای مختلف مثل اینستاگرام، پادکست، یوتیوب و … گستردهتر بشه، خیلی خوشحال میشیم کنار ما باشید و از این جریان حمایت کنید.
برای هماهنگی و گفتوگو میتونید از طریق آیدی زیر با ما در تماس باشید:
حمایت شما قطعاً باعث میشه بتونیم محتوای ارزشمندتر و بیشتری در زمینه هوش مصنوعی تولید کنیم.
ممنون از همراهیتون
@reza_jafari_ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps Labdon
امنیت در Docker: چیزی که اغلب فراموش میکنیم!
* از rootless containers استفاده کنید: اجرای اپلیکیشن با کاربر non-root ریسک نفوذ رو خیلی کم میکنه.
* از Base image سبک و امن استفاده کنید: مثلاً alpine یا distroless. imageهای بزرگتر مثل ubuntu اغلب پکیجهای غیرضروری دارن که سطح حمله رو زیاد میکنن.
* حتما وDependencyها رو pin کنید: همیشه نسخه دقیق کتابخونهها رو مشخص کنید تا از تغییرات ناخواسته جلوگیری بشه.
* از .dockerignore استفاده کنید: فایلهای حساس (مثل .env یا کلیدها) هرگز نباید داخل image قرار بگیرن.
* بهروز نگه داشتن imageها: آسیبپذیریها خیلی سریع پیدا میشن، پس آپدیت مرتب imageها ضروریه.
بارها پیش میاد که به خاطر استفاده از یک base image قدیمی، vulnerability جدی توی اسکن امنیتی پیدا میشه. فقط با عوض کردن base image به نسخهی جدیدتر و سبکتر، هم امنیت بیشتر میشه، هم حجم image کاهش پیدا میکنه.
نکات تکمیلی امنیت در Docker
1. استفاده از Healthcheck
- توی Dockerfile با HEALTHCHECK وضعیت سرویس رو بررسی کنید که باعث میشه container ناسالم زودتر شناسایی و جایگزین بشن.
2. حداقل کردن Surface Attack با distroless images
- این imageها فقط باینری نهایی رو دارن (بدون package manager یا shell).
- دسترسی مهاجم به شدت محدود میشه.
3.فعال کردن User namespace remapping
- باعث میشه کاربر root داخل container، روی سیستم میزبان واقعاً root نباشه.
4. استفاده از Read-Only Filesystem
- container رو با --read-only بالا بیارید تا کسی نتونه فایلهای سیستمی داخلش رو تغییر بده.
5. مدیریت Secretها بهدرستی
- هرگز secrets رو داخل image نذارید.
- از ابزارهایی مثل Docker secrets، HashiCorp Vault یا AWS/GCP Secret Manager استفاده کنید.
6. Scan امنیتی منظم
- ابزارهایی مثل Trivy, Grype یا Docker Scout رو برای اسکن image استفاده کنید.
- این ابزارها آسیبپذیریهای شناختهشده (CVE) رو شناسایی میکنن.
7. محدود کردن Resourceها
- با --cpus و --memory منابع container رو محدود کنید تا جلوی حملات DoS یا مصرف بیرویه گرفته بشه.
8. استفاده از شبکههای ایزوله
- کانتینرهایی که لازم نیست با اینترنت یا کانتینرهای دیگه در ارتباط باشن رو توی یک شبکهی جداگانه نگه دارید.
9. امضای دیجیتال و اعتبارسنجی Imageها
- با Docker Content Trust (DCT) یا cosign امضا و اعتبارسنجی کنید که image تغییر نکرده باشه.
10. بروزرسانی مرتب Docker Engine و Runtime
- چون آسیبپذیریها فقط توی imageها نیستن، بلکه خود daemon و runtime هم میتونه مشکل امنیتی داشته باشه.
*امنیت در Docker فقط به Dockerfile محدود نیست؛ از انتخاب base image شروع میشه، به مدیریت secret و network میرسه و حتی شامل CI/CD pipeline هم میشه*
<Somaye Omidi/>
* از rootless containers استفاده کنید: اجرای اپلیکیشن با کاربر non-root ریسک نفوذ رو خیلی کم میکنه.
* از Base image سبک و امن استفاده کنید: مثلاً alpine یا distroless. imageهای بزرگتر مثل ubuntu اغلب پکیجهای غیرضروری دارن که سطح حمله رو زیاد میکنن.
* حتما وDependencyها رو pin کنید: همیشه نسخه دقیق کتابخونهها رو مشخص کنید تا از تغییرات ناخواسته جلوگیری بشه.
* از .dockerignore استفاده کنید: فایلهای حساس (مثل .env یا کلیدها) هرگز نباید داخل image قرار بگیرن.
* بهروز نگه داشتن imageها: آسیبپذیریها خیلی سریع پیدا میشن، پس آپدیت مرتب imageها ضروریه.
بارها پیش میاد که به خاطر استفاده از یک base image قدیمی، vulnerability جدی توی اسکن امنیتی پیدا میشه. فقط با عوض کردن base image به نسخهی جدیدتر و سبکتر، هم امنیت بیشتر میشه، هم حجم image کاهش پیدا میکنه.
نکات تکمیلی امنیت در Docker
1. استفاده از Healthcheck
- توی Dockerfile با HEALTHCHECK وضعیت سرویس رو بررسی کنید که باعث میشه container ناسالم زودتر شناسایی و جایگزین بشن.
2. حداقل کردن Surface Attack با distroless images
- این imageها فقط باینری نهایی رو دارن (بدون package manager یا shell).
- دسترسی مهاجم به شدت محدود میشه.
3.فعال کردن User namespace remapping
- باعث میشه کاربر root داخل container، روی سیستم میزبان واقعاً root نباشه.
4. استفاده از Read-Only Filesystem
- container رو با --read-only بالا بیارید تا کسی نتونه فایلهای سیستمی داخلش رو تغییر بده.
5. مدیریت Secretها بهدرستی
- هرگز secrets رو داخل image نذارید.
- از ابزارهایی مثل Docker secrets، HashiCorp Vault یا AWS/GCP Secret Manager استفاده کنید.
6. Scan امنیتی منظم
- ابزارهایی مثل Trivy, Grype یا Docker Scout رو برای اسکن image استفاده کنید.
- این ابزارها آسیبپذیریهای شناختهشده (CVE) رو شناسایی میکنن.
7. محدود کردن Resourceها
- با --cpus و --memory منابع container رو محدود کنید تا جلوی حملات DoS یا مصرف بیرویه گرفته بشه.
8. استفاده از شبکههای ایزوله
- کانتینرهایی که لازم نیست با اینترنت یا کانتینرهای دیگه در ارتباط باشن رو توی یک شبکهی جداگانه نگه دارید.
9. امضای دیجیتال و اعتبارسنجی Imageها
- با Docker Content Trust (DCT) یا cosign امضا و اعتبارسنجی کنید که image تغییر نکرده باشه.
10. بروزرسانی مرتب Docker Engine و Runtime
- چون آسیبپذیریها فقط توی imageها نیستن، بلکه خود daemon و runtime هم میتونه مشکل امنیتی داشته باشه.
*امنیت در Docker فقط به Dockerfile محدود نیست؛ از انتخاب base image شروع میشه، به مدیریت secret و network میرسه و حتی شامل CI/CD pipeline هم میشه*
<Somaye Omidi/>
Forwarded from Laravel News
An Official PHP SDK for MCP Announced https://laravel-news.com/official-php-sdk-for-mcp-announced
Laravel News
An Official PHP SDK for MCP Announced - Laravel News
An Official PHP SDK for MCP announced in partnership between the PHP Foundation, Anthropic, and Symfony - bringing a standard AI integration to PHP
Forwarded from Linuxor ?
This media is not supported in your browser
VIEW IN TELEGRAM
گوگل یه مدل هوش مصنوعی جدید به نام Embedding Gemma منتشر کرده که کاملاً از زبان فارسی پشتیبانی میکنه!
دیگه نیازی به کلنجار رفتن با مدلهای انگلیسی نیست.
این مدلها کاربردهای زیادی دارن، از جمله جستجوی معنایی. برای مثال میتونید سیستمی بسازید که وقتی کسی سرچ کرد:
«بهترین گوشی برای عکاسی»، نتایج مرتبط مثل «موبایلهای مناسب برای دوربین قوی» یا «اسمارتفونهای با کیفیت عکس بالا» هم نمایش داده بشن، حتی اگه دقیقاً همون کلمات رو توی متن نیاورده باشید.
کاربرد دیگهش توی سیستمهای توصیهگره. مثلاً یه فروشگاه آنلاین میتونه بر اساس متن توضیحات محصولات و علاقهمندیهای کاربر، پیشنهادهای دقیقتر بده.
همچنین توی چتباتها و پشتیبانی هوشمند هم خیلی به کار میاد، چون میتونه معنی سوال کاربر رو بفهمه، نه فقط کلماتشو.
@Linuxor ~ iSegar0
دیگه نیازی به کلنجار رفتن با مدلهای انگلیسی نیست.
این مدلها کاربردهای زیادی دارن، از جمله جستجوی معنایی. برای مثال میتونید سیستمی بسازید که وقتی کسی سرچ کرد:
«بهترین گوشی برای عکاسی»، نتایج مرتبط مثل «موبایلهای مناسب برای دوربین قوی» یا «اسمارتفونهای با کیفیت عکس بالا» هم نمایش داده بشن، حتی اگه دقیقاً همون کلمات رو توی متن نیاورده باشید.
کاربرد دیگهش توی سیستمهای توصیهگره. مثلاً یه فروشگاه آنلاین میتونه بر اساس متن توضیحات محصولات و علاقهمندیهای کاربر، پیشنهادهای دقیقتر بده.
همچنین توی چتباتها و پشتیبانی هوشمند هم خیلی به کار میاد، چون میتونه معنی سوال کاربر رو بفهمه، نه فقط کلماتشو.
@Linuxor ~ iSegar0
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
چقدر خوبه که از کلمه تاریخی و اصیل پارسی استفاده میکند به جای فارسی.تأکید روی اصالت و ریشه تاریخی زبان داره
Forwarded from IRCF | اینترنت آزاد برای همه