داکر هم با توجه به ماهیتش سخته که بخواد با کرنلی غیر از لینوکس کار کنه، حالا معماری هم متفاوت باشه که دیگه واویلا.
حالا اگر docker desktop رو نصب کنید خیلی خوب پیشنیازها هندل شده و out of the box کار می کنه، فقط محدودیتش اینه که باید تو پس زمینه اجرا باشه تا دستورای داکر کار کنه یعنی daemonی نداره.
اما مشکلی که هست اینه که خیلی کنده. خیلی خیلی کند گاهی. مخصوصا برای کارهایی که شامل کار با فایلهای زیاد و دسترسی به file system میشه ترجمهی سیستمکالها گویا خیلی طول میکشه!
این مطلب راههای خوبی پیشنهاد داده و خیلی کامله.
https://www.syntasso.io/post/slow-performance-on-m1-macbooks-leads-to-supporting-multi-architecture-docker-builds
این پروژه هم ببینید بد نیست:
https://github.com/abiosoft/colima
و این هم آموزش استفاده ازش:
https://opensource.com/article/22/9/docker-desktop-colima
همچنین کاری که خودم کردم این بود: میتونید به جای desktop-linux از بیلدر دیفالت استفاده کنید. با یه چنین دستوری:
اینکه داستان چیه رو اینجا بخونید:
https://stackoverflow.com/a/49688931
اینکه چرا کار میکنه رو دقیق نمیدونم ولی فکر کنم موقع پول کردن از داکرهاب پلتفرم رو هم مشخص میکنه و ایمجهای مناسبی رو میگیره، اما اگر اون ایمج نسخهی arm8 نداشته باشه (که اکثرا دیدم دارن) مشکل داریم و باید برگردیم به همون روشهای قبلی.
ادیت:
دوستمون تو کامنتها orb رو پیشنهاد کردن که فوقالعاده چیز سریع و مرتبیه. حتما توصیه میکنم شما هم تست کنید.
https://orbstack.dev/
https://github.com/orbstack/orbstack
حالا اگر docker desktop رو نصب کنید خیلی خوب پیشنیازها هندل شده و out of the box کار می کنه، فقط محدودیتش اینه که باید تو پس زمینه اجرا باشه تا دستورای داکر کار کنه یعنی daemonی نداره.
اما مشکلی که هست اینه که خیلی کنده. خیلی خیلی کند گاهی. مخصوصا برای کارهایی که شامل کار با فایلهای زیاد و دسترسی به file system میشه ترجمهی سیستمکالها گویا خیلی طول میکشه!
این مطلب راههای خوبی پیشنهاد داده و خیلی کامله.
https://www.syntasso.io/post/slow-performance-on-m1-macbooks-leads-to-supporting-multi-architecture-docker-builds
این پروژه هم ببینید بد نیست:
https://github.com/abiosoft/colima
و این هم آموزش استفاده ازش:
https://opensource.com/article/22/9/docker-desktop-colima
همچنین کاری که خودم کردم این بود: میتونید به جای desktop-linux از بیلدر دیفالت استفاده کنید. با یه چنین دستوری:
docker context use default
اینکه داستان چیه رو اینجا بخونید:
https://stackoverflow.com/a/49688931
اینکه چرا کار میکنه رو دقیق نمیدونم ولی فکر کنم موقع پول کردن از داکرهاب پلتفرم رو هم مشخص میکنه و ایمجهای مناسبی رو میگیره، اما اگر اون ایمج نسخهی arm8 نداشته باشه (که اکثرا دیدم دارن) مشکل داریم و باید برگردیم به همون روشهای قبلی.
ادیت:
دوستمون تو کامنتها orb رو پیشنهاد کردن که فوقالعاده چیز سریع و مرتبیه. حتما توصیه میکنم شما هم تست کنید.
https://orbstack.dev/
https://github.com/orbstack/orbstack
Syntasso.io
Slow performance on M1 Macbooks leads to supporting multi-architecture Docker builds
Syntasso’s engineering team has recently been excited to test drive the new M1 Macbook chips. And it’s mainly been a positive experience but there have been a few surprises! In particular, we spent a few days debugging our software running on Docker Desktop…
❤2
یه مشکل دیگه هم که ممکنه روی mac برخورده باشید اینه که ابزارهای پیشفرضی که نصب هستن (مثلا ls/rm/chmod/chown اینا) همون نسخهی معادل لینوکسیشون نیستن.
به بیان دیگه توی گنو/لینوکس عمدتا توزیعها از gnu coreutils استفاده میکنن و ما هم به فلگهاشون عادت داریم، بعضی توزیعها هم از چیزای جایگزین استفاده میکنن (مثلا alpine برای سبک بودن از یه نسخهی خیلی سبک استفاده میکنه به اسم busybox)
نسخهای که توی مک وجود داره هم هیچ کدوم از اینا نیست، امکاناتی که لازم داریم رو هم خیلی اوقات نداره. اما خبر خوب اینکه همون پکیجهای coreutils اینجا هم وجود دارن و میتونید نصب کنید.
اینجا دستورات نصب رو ببینید:
https://apple.stackexchange.com/questions/69223/how-to-replace-mac-os-x-utilities-with-gnu-core-utilities
البته خبر بد اینکه برای اینکه با ابزارهای اصلی توی PATH تداخل نکنن، اول اسمشون یه g اضافه شده مثلا gls به جای ls.
اما راههایی داره که همون مطلب بالا رو توصیه میکنم ببینید.
لینک نصب و توضیحاتش از brew:
https://formulae.brew.sh/formula/coreutils
به بیان دیگه توی گنو/لینوکس عمدتا توزیعها از gnu coreutils استفاده میکنن و ما هم به فلگهاشون عادت داریم، بعضی توزیعها هم از چیزای جایگزین استفاده میکنن (مثلا alpine برای سبک بودن از یه نسخهی خیلی سبک استفاده میکنه به اسم busybox)
نسخهای که توی مک وجود داره هم هیچ کدوم از اینا نیست، امکاناتی که لازم داریم رو هم خیلی اوقات نداره. اما خبر خوب اینکه همون پکیجهای coreutils اینجا هم وجود دارن و میتونید نصب کنید.
اینجا دستورات نصب رو ببینید:
https://apple.stackexchange.com/questions/69223/how-to-replace-mac-os-x-utilities-with-gnu-core-utilities
البته خبر بد اینکه برای اینکه با ابزارهای اصلی توی PATH تداخل نکنن، اول اسمشون یه g اضافه شده مثلا gls به جای ls.
اما راههایی داره که همون مطلب بالا رو توصیه میکنم ببینید.
لینک نصب و توضیحاتش از brew:
https://formulae.brew.sh/formula/coreutils
Ask Different
How to replace Mac OS X utilities with GNU core utilities?
I found there is some differences between the utility command I used on the mac OSX and linux. I want to make my experience united.
How could I replace all my mac utilities with GNU utilities?
How could I replace all my mac utilities with GNU utilities?
🆒1
اگه با مک کار کرده باشید، ممکنه مثل من با این accent menu به مشکل خورده باشید. یه منوئه که وقتی یه دکمه رو نگه دارید خودشو نشون میده و بهتون گزینههای دیگر همین کلیدی که نگه داشتید رو نشون میده، مثل چیزی که توی کیبورد تاچ گوشیها گاها میبینیم.
برای غیرفعال کردنش با توجه به ux خوب این سیستمعامل، گزینهی گرافیکی اصلا وجود نداره و باید تو ترمینال این دستور رو بزنید:
توضیح accent menu:
https://support.apple.com/guide/mac-help/enter-characters-with-accent-marks-on-mac-mh27474/mac
برای غیرفعال کردنش با توجه به ux خوب این سیستمعامل، گزینهی گرافیکی اصلا وجود نداره و باید تو ترمینال این دستور رو بزنید:
defaults write -g ApplePressAndHoldEnabled -bool false
توضیح accent menu:
https://support.apple.com/guide/mac-help/enter-characters-with-accent-marks-on-mac-mh27474/mac
Apple Support
Enter characters with accent marks on Mac
In apps on your Mac, type characters with accent marks by pressing a key on the keyboard to display an accent menu.
👍1
اگه با latex بخواید تو مک کار کنید یه latex distribution خوبی که میتونید استفاده کنید و ابزارها رو به شکل مناسب داره، mactexئه، البته در همهی سیستمعاملها هم tectonic وجود داره که خیلی زیبا و سرراسته.
👍1😁1
بحث rate limit هم جالبه. ایده اینه که یه سرور (یا کلا خدمت دهنده) داریم که به یکسری مشتری میخواد خدمت بده، اما نمیخواد یه مشتری زیاد از منابع استفاده کنه که سر سرور شلوغ بشه و به بقیه منابع نرسه. برای همین میان یه محدودیت میذارن که مثلا هر اکانت میتونه روزی ۶۰۰۰ تا توییت بخونه یا ۲۰۰ تا توییت بنویسه یا این ip صد بار در روز بیشتر آب و هوا رو چک نکنه.
حالا الگوریتمهای مختلفی که باهاش rate limit پیادهسازی میشه چیا هستن؟
https://nordicapis.com/different-algorithms-to-implement-rate-limiting-in-apis/
حالا الگوریتمهای مختلفی که باهاش rate limit پیادهسازی میشه چیا هستن؟
https://nordicapis.com/different-algorithms-to-implement-rate-limiting-in-apis/
Nordic APIs
Different Algorithms to Implement Rate Limiting in APIs | Nordic APIs |
There are many ways to rate limit APIs. Here are a few examples and algorithms to help you implement rate limiting effectively.
👍4
Forwarded from Python BackendHub
مقاله جالبه بخونید بنظرم
https://belief-driven-design.com/naming-stuff-is-hard-17fca2ee582/
میشه گفت مهم ترین اصل کلین کد اسم گذاری variable ها هست. چون شما هر طوری کد بزنی اگه اینو درست انجام ندی کدت کلین نیست.
همیشه تو هر کاری زیاده روی هست. به کسی که قراره کدتون رو maintain کنه رحم کنید و مثل عکس اسم گذاری نکنید :))
w 🚫
weight ❔
weightKg ✅
customerWeightInKg ❔
customerCurrentWeightInKg🚫
@ManiFoldsPython
https://belief-driven-design.com/naming-stuff-is-hard-17fca2ee582/
میشه گفت مهم ترین اصل کلین کد اسم گذاری variable ها هست. چون شما هر طوری کد بزنی اگه اینو درست انجام ندی کدت کلین نیست.
همیشه تو هر کاری زیاده روی هست. به کسی که قراره کدتون رو maintain کنه رحم کنید و مثل عکس اسم گذاری نکنید :))
w 🚫
weight ❔
weightKg ✅
customerWeightInKg ❔
customerCurrentWeightInKg🚫
@ManiFoldsPython
👍3
پارادایمهای مختلف دیتابیس چیا هستن؟
دیتابیسهای رابطهای رو حتما دیدیم، شاید key-value store هم دیده باشید ولی با document-basedها هم آشنا هستین؟ با گرافبیسها چی؟
https://www.youtube.com/watch?v=W2Z7fbCLSTw
دیتابیسهای رابطهای رو حتما دیدیم، شاید key-value store هم دیده باشید ولی با document-basedها هم آشنا هستین؟ با گرافبیسها چی؟
https://www.youtube.com/watch?v=W2Z7fbCLSTw
YouTube
7 Database Paradigms
Learn about seven different database paradigms and what they do best. https://fireship.io/lessons/top-seven-database-paradigms/
00:00 Intro
00:45 Key-value
01:48 Wide Column
02:47 Document
04:05 Relational
06:21 Graph
07:22 Search Engine
08:27 Multi-model…
00:00 Intro
00:45 Key-value
01:48 Wide Column
02:47 Document
04:05 Relational
06:21 Graph
07:22 Search Engine
08:27 Multi-model…
👍4
در مورد Garbage Collector گولنگ
https://go.dev/doc/gc-guide
https://go.dev/doc/gc-guide
go.dev
A Guide to the Go Garbage Collector - The Go Programming Language
👍2
https://sourcelevel.io/blog/what-is-a-linter-and-why-your-team-should-use-it
ابزار linter چیست و چرا باید سورس کد خودمان را به دست ابزاری غرغرو مثل linter بسپاریم و چرا باید به حرفش گوش کنیم؟
ابزار linter چیست و چرا باید سورس کد خودمان را به دست ابزاری غرغرو مثل linter بسپاریم و چرا باید به حرفش گوش کنیم؟
SourceLevel
What is a linter and why your team should use it? – SourceLevel
Linter is a tool that analyzes source code. Linters can look for security issues, typos, code smells and suggest changes to comply with a style guides.
👍3
اگر دنبال یک پاسخ سرراست و مختصر برای «وقتی گوگل رو باز میکنیم چه اتفاقی می افته» این ویدیو با انیمیشنهای زیبا و عمق کم در مورد URL و http و DNS و TCP و تا حدی TLS صحبت میکنه.
https://youtu.be/AlkDbnbv7dk?feature=shared
https://youtu.be/AlkDbnbv7dk?feature=shared
YouTube
What happens when you type a URL into your browser?
Checkout our bestselling System Design Interview books: https://amzn.to/3HqGozy
Subscribe to our YouTube channel: https://bit.ly/3aZpbkz
Other things we made:
Weekly system design newsletter (10-min read): https://bit.ly/3tfAlYD
Digital version of System…
Subscribe to our YouTube channel: https://bit.ly/3aZpbkz
Other things we made:
Weekly system design newsletter (10-min read): https://bit.ly/3tfAlYD
Digital version of System…
👏3
Forwarded from Golem Course
ساختار تیمی بر معماری نرمافزار تاثیر میگذارد. این مفهوم با قانون کانوی شناخته میشود.
اگر در یک سازمان سه تیم فرانتاند، بکاند و پایگاه داده وجود داشته باشد، احتمالاً محصول نهایی معماری سه لایهای خواهد داشت. برای مثال، اگر بخواهیم قابلیت انتخاب ژانر موسیقی را به محصول خود اضافه کنیم، هر سه تیم باید تغییراتی در لایههای خود اعمال کنند.
برای حل این مشکل، میتوانیم ساختار تیم را تغییر دهیم. به جای تقسیم کار بر اساس فناوری، تقسیم کار را بر اساس حوزه کسب و کار انجام دهیم: یک تیم برای موجودی، یک تیم برای پرداخت و یک تیم برای مشتریان. حالا، اگر قابلیت انتخاب ژانر موسیقی را به محصول خود اضافه کنید، فقط یک تیم باید تغییرات را اعمال کند.
این عکس از کتاب Building Microservices گرفته شده است.
@golemcourse
اگر در یک سازمان سه تیم فرانتاند، بکاند و پایگاه داده وجود داشته باشد، احتمالاً محصول نهایی معماری سه لایهای خواهد داشت. برای مثال، اگر بخواهیم قابلیت انتخاب ژانر موسیقی را به محصول خود اضافه کنیم، هر سه تیم باید تغییراتی در لایههای خود اعمال کنند.
برای حل این مشکل، میتوانیم ساختار تیم را تغییر دهیم. به جای تقسیم کار بر اساس فناوری، تقسیم کار را بر اساس حوزه کسب و کار انجام دهیم: یک تیم برای موجودی، یک تیم برای پرداخت و یک تیم برای مشتریان. حالا، اگر قابلیت انتخاب ژانر موسیقی را به محصول خود اضافه کنید، فقط یک تیم باید تغییرات را اعمال کند.
این عکس از کتاب Building Microservices گرفته شده است.
@golemcourse
❤3👍1
📣 فرصت شغلی | دعوت به همکاری
سلام
هلدینگ صنعتی آرین سعید، برای تکمیل کادر نرم افزار خود در دفتر پالادیوم، از دانشجویان و دانش آموختگان دانشگاه های برتر تهران دعوت به همکاری مینماید.
🔷 متخصص UI/UX
🔸 تجربه در ایجاد وایر فریم ، استوری بورد، جریان کاربر
🔸 داشتن مهارت در Photoshop ،Illustrator یا سایر ابزارهای طراحی دیداری و وایر فریم ها
🔸 داشتن مهارت در HTML ،CSS و JavaScript برای نمونه سازی سریع
🔸 داشتن توانایی حل مشکلات به صورت خلاقانه و مؤثر
🔷 متخصص Back End
🔸 توسعه، تست و اشکال زدایی برنامه های نرم افزاری
🔸 تهیه گزارشات و جمع آوری اطلاعات آماری با توجه به تسک های محول شده در هر اسپرینت
🔸 بروزرسانی و گسترش برنامه های موجود با توجه به وظایف محول شده در هر اسپرینت
🔸 تسلط به نرمافزارهای Python, Sql Server, Django, PostgreSql امتیاز محسوب میشود.
🔸 تسلط کافی به زبان انگلیسی برای تحقیق و توسعه
🔷 متخصص Front End
🔸 تسلط به قوانین طراحی وب و چارچوب یوزر فرندلی HTML, CSS
🔸 آشنایی با فریم ورک های CSS و JavaScript جهت پیاده سازی بهتر پروژه
🔸 مسلط به مباحث و مفاهیم Rest و API نویسی
🔸 آشنایی کامل با مفاهیم وب و فریم ورکهای فرانت اند
🔸 تسلط بر version control و Git و code review و استانداردهای مستندسازی کد نرم افزار
🔸 روحیهی کار تیمی، مسئولیت پذیری و انگیزه زیاد برای پیشرفت شخصی
🔸 تسلط کافی به زبان انگلیسی برای تحقیق و توسعه
🔷 مزایا:
🔸 وام، پاداش، بیمه تکمیلی، هزینه ناهار، در صورت نیاز به دوره آموزشی هزینه آن پرداخت میشود.
دانشجویان عزیز میتوانند از طریق زیر، رزومه خود را ارسال کنند. در صورت نیاز به توضیح بیشتر از همین طریق در ارتباط باشید.
@Sina_BaniasadAzad
[email protected]
#ارسالی
سلام
هلدینگ صنعتی آرین سعید، برای تکمیل کادر نرم افزار خود در دفتر پالادیوم، از دانشجویان و دانش آموختگان دانشگاه های برتر تهران دعوت به همکاری مینماید.
🔷 متخصص UI/UX
🔸 تجربه در ایجاد وایر فریم ، استوری بورد، جریان کاربر
🔸 داشتن مهارت در Photoshop ،Illustrator یا سایر ابزارهای طراحی دیداری و وایر فریم ها
🔸 داشتن مهارت در HTML ،CSS و JavaScript برای نمونه سازی سریع
🔸 داشتن توانایی حل مشکلات به صورت خلاقانه و مؤثر
🔷 متخصص Back End
🔸 توسعه، تست و اشکال زدایی برنامه های نرم افزاری
🔸 تهیه گزارشات و جمع آوری اطلاعات آماری با توجه به تسک های محول شده در هر اسپرینت
🔸 بروزرسانی و گسترش برنامه های موجود با توجه به وظایف محول شده در هر اسپرینت
🔸 تسلط به نرمافزارهای Python, Sql Server, Django, PostgreSql امتیاز محسوب میشود.
🔸 تسلط کافی به زبان انگلیسی برای تحقیق و توسعه
🔷 متخصص Front End
🔸 تسلط به قوانین طراحی وب و چارچوب یوزر فرندلی HTML, CSS
🔸 آشنایی با فریم ورک های CSS و JavaScript جهت پیاده سازی بهتر پروژه
🔸 مسلط به مباحث و مفاهیم Rest و API نویسی
🔸 آشنایی کامل با مفاهیم وب و فریم ورکهای فرانت اند
🔸 تسلط بر version control و Git و code review و استانداردهای مستندسازی کد نرم افزار
🔸 روحیهی کار تیمی، مسئولیت پذیری و انگیزه زیاد برای پیشرفت شخصی
🔸 تسلط کافی به زبان انگلیسی برای تحقیق و توسعه
🔷 مزایا:
🔸 وام، پاداش، بیمه تکمیلی، هزینه ناهار، در صورت نیاز به دوره آموزشی هزینه آن پرداخت میشود.
دانشجویان عزیز میتوانند از طریق زیر، رزومه خود را ارسال کنند. در صورت نیاز به توضیح بیشتر از همین طریق در ارتباط باشید.
@Sina_BaniasadAzad
[email protected]
#ارسالی
❤1👍1
Forwarded from cyru55 unofficial channel (cyru55)
اینترنت مخابرات استان تهران قطع شد
حتی تلفن های مخابرات از دسترس خارج شدن
اگه از بقیه شهرها خبری دارید بگید
حتی تلفن های مخابرات از دسترس خارج شدن
اگه از بقیه شهرها خبری دارید بگید
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با mohammad.b
دستهبندی: #آموزشی #کاربردی
عکس توی ترمینال
نمیشه بشه هم چیز خوبی در نمیاد (یکم پیچیده میشه و باید ترمینالت ساپورت کنه) چون ترمینالا فقط کاراکتر میشناسن (ascii, unicode)
پس چطور این ابزارا مثل
libsixel
icat
ueberzug
کار میکنن:
libsixel
icat (kitty):
یک پروتکل خاص دارن و میان از
control characters
استفاده میکنن. بعد ترمینالت وقتی فلان کنترل کاراکتر رو میگیره میفهمه این عکسه و فلان پیکسلارو فلان جا باید یه رنگی بکنه برای همین برای این دوتا باید ترمینالت ساپورت کنه.
ueberzug (rip):
میاد مستقیم به X server میگه یک پنجره توی x, y ترمینالت بسازه و عکسو توش بزار برای همینم نیازی به ساپورت ترمینالت نداره
Source
توضیح سایت kitty راجبش
🔅@LinFAQ
🔅@LinAcademy
دستهبندی: #آموزشی #کاربردی
عکس توی ترمینال
نمیشه بشه هم چیز خوبی در نمیاد (یکم پیچیده میشه و باید ترمینالت ساپورت کنه) چون ترمینالا فقط کاراکتر میشناسن (ascii, unicode)
پس چطور این ابزارا مثل
libsixel
icat
ueberzug
کار میکنن:
libsixel
icat (kitty):
یک پروتکل خاص دارن و میان از
control characters
استفاده میکنن. بعد ترمینالت وقتی فلان کنترل کاراکتر رو میگیره میفهمه این عکسه و فلان پیکسلارو فلان جا باید یه رنگی بکنه برای همین برای این دوتا باید ترمینالت ساپورت کنه.
ueberzug (rip):
میاد مستقیم به X server میگه یک پنجره توی x, y ترمینالت بسازه و عکسو توش بزار برای همینم نیازی به ساپورت ترمینالت نداره
Source
توضیح سایت kitty راجبش
🔅@LinFAQ
🔅@LinAcademy
👍5
Forwarded from محتوای آزاد سهراب
https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d1f2277
این گیست نشون میده که چرا ویلند کامل نیست هنوز و گیست درحال آپدیته و بیشتر چیز هایی که توش نوشته هنوز رفع نشدن. ( از نظر مطالب نگران نباشید بروز هست)
@sohrabcontents
این گیست نشون میده که چرا ویلند کامل نیست هنوز و گیست درحال آپدیته و بیشتر چیز هایی که توش نوشته هنوز رفع نشدن. ( از نظر مطالب نگران نباشید بروز هست)
@sohrabcontents
Gist
Think twice about Wayland. It breaks everything!
Think twice about Wayland. It breaks everything! GitHub Gist: instantly share code, notes, and snippets.
👍1