Forwarded from 403
گاهی اوقات بیشتر از یک پروسه بکند داریم که ممکنه روی سرور های مختلفی باشن و میخوایم درخواست ها به همه اینا برسه. تو اینطور شرایط از چیزی به اسم LoadBalancer استفاده میکنیم.
کارش اینه که روی یک پورت لیسن میکنه و هرچی درخواست میاد رو میفرسته به آدرس یا آدرس هایی که بهش میگیم.
نمونه: Haproxy و Nginx (چند ده محصول معروف دیگه هستن که اسمشون رو نمیگم)
سوالی که پیش میاد اینه که چطور میفهمه به کدوم بکند بفرسته؟
الگوریتم های LoadBalancing:
1️⃣ Round Robin: الگوریتم خیلی معروف در Scheduling هست که بصورت ترتیبی درخواست هارو به ترتیب به بکند های مختلف ارسال میکنه.
2️⃣ Least Connections: بررسی میکنه که درحال حاضر چند کانکشن به هر سرور بازه، و درخواستو میفرسته به اونی که درحال حاضر کمترین تعداد کانکشن رو داره.
3️⃣ Source IP Hash: هر درخواستی که میاد رو بررسی میکنه، آدرس IP و Port مبدا و مقصد رو تو یه جدول نگهداری میکنه و همیشه درخواست های یک Source IP خاص رو به یک بکند خاص میفرسته.
اینا پرکاربردترین الگوریتم ها هستن و هرکدوم تو شرایط خاص خودشون کاربرد دارن. اگر علاقه مند هستین میتونید از ChatGPT الگوریتمای بیشتری رو پیدا کنید.
وارد جزئیات نمیشم ولی مثلا وقتی Websocket استفاده میکنیم بطور معمول نیاز میشه که از Source IP Hash استفاده کنیم (اگر میخواید تو ChatGPT سرچ کنید، به این برمیگرده که وبسوکت از نوع Stateful Connection هست).
#LoadBalancing
کارش اینه که روی یک پورت لیسن میکنه و هرچی درخواست میاد رو میفرسته به آدرس یا آدرس هایی که بهش میگیم.
نمونه: Haproxy و Nginx (چند ده محصول معروف دیگه هستن که اسمشون رو نمیگم)
سوالی که پیش میاد اینه که چطور میفهمه به کدوم بکند بفرسته؟
الگوریتم های LoadBalancing:
1️⃣ Round Robin: الگوریتم خیلی معروف در Scheduling هست که بصورت ترتیبی درخواست هارو به ترتیب به بکند های مختلف ارسال میکنه.
2️⃣ Least Connections: بررسی میکنه که درحال حاضر چند کانکشن به هر سرور بازه، و درخواستو میفرسته به اونی که درحال حاضر کمترین تعداد کانکشن رو داره.
3️⃣ Source IP Hash: هر درخواستی که میاد رو بررسی میکنه، آدرس IP و Port مبدا و مقصد رو تو یه جدول نگهداری میکنه و همیشه درخواست های یک Source IP خاص رو به یک بکند خاص میفرسته.
اینا پرکاربردترین الگوریتم ها هستن و هرکدوم تو شرایط خاص خودشون کاربرد دارن. اگر علاقه مند هستین میتونید از ChatGPT الگوریتمای بیشتری رو پیدا کنید.
وارد جزئیات نمیشم ولی مثلا وقتی Websocket استفاده میکنیم بطور معمول نیاز میشه که از Source IP Hash استفاده کنیم (اگر میخواید تو ChatGPT سرچ کنید، به این برمیگرده که وبسوکت از نوع Stateful Connection هست).
#LoadBalancing
Forwarded from DevTwitter | توییت برنامه نویسی
روی موبایل یا لپ تاپ ، مدل های Ai سازگار با گوشی یا لپتاپت رو بصورت شخصی ، آفلاین و رایگان اجرا کن!
با ابزار فوقالعاده Anythingllm این کارو میتونید خیلی ساده انجام بدید.
https://anythingllm.com
برای موبایل فعلا نسخه اندروید داره
ولی این تنها قابلیت این نرم افزار نیست ، میتونید به Api های Ai های دیگه هم وصلش کنید و ازش استفاده کنید مثل یک چت بات سریع و سبک
@DevTwitter | <POURYA/>
با ابزار فوقالعاده Anythingllm این کارو میتونید خیلی ساده انجام بدید.
https://anythingllm.com
برای موبایل فعلا نسخه اندروید داره
ولی این تنها قابلیت این نرم افزار نیست ، میتونید به Api های Ai های دیگه هم وصلش کنید و ازش استفاده کنید مثل یک چت بات سریع و سبک
@DevTwitter | <POURYA/>
Forwarded from محتوای آزاد سهراب (Sohrab)
بعد این رو میذارم تست بشه، مشکلاتشو بگیرم و پارتیشن منیجمنت و ... رو اضافه میکنم.
مثل دورانی که اوبونتو مستقیم از روی ویندوز نصب میشد.
@SohrabContents
مثل دورانی که اوبونتو مستقیم از روی ویندوز نصب میشد.
@SohrabContents
Forwarded from محتوای آزاد سهراب (Sohrab)
این بخشش نیاز داره که یکمی دقتش بیشتر بشه بخصوص توی بخش aur و بههرحال.
تا الان راضی کننده بوده نتایج :)
@SohrabContents
تا الان راضی کننده بوده نتایج :)
@SohrabContents
Forwarded from DevTwitter | توییت برنامه نویسی
داکر فقط نصف ماجراست.
بخش سختتر اونجاست که باید صدها کانتینر رو بین چند سرور اجرا، هماهنگ و پایدار نگهداری.
اینجاست که کوبرنتیز وارد عمل میشه.
کوبِرنِتیز چیه؟
کوبِرنِتیز یه سیستم متنباز (Open Source) برای مدیریت و هماهنگسازی کانتینرهاست.
بهش میگن Container Orchestrator چون مثل یه مغز مرکزی عمل میکنه و تصمیم میگیره
کِی، کجا و چطور کانتینرها اجرا بشن.
️ ساختار کلی کوبرنتیز
کوبرنتیز روی یه ساختار به اسم کلاستر (Cluster) کار میکنه.
کلاستر از چند سرور تشکیل شده:
(Control Plane): مغز سیستم که شاملAPI Server، Scheduler، Controller Manager و etcd میشه.
(Worker Nodes): جایی که کانتینرها واقعاً اجرا میشن (با استفاده از ابزاری مثل kubelet و Container Runtime مثل containerd یا CRI-O).
مفاهیم کلیدی در کوبرنتیز
پاد (Pod):
واحد اجرایی اصلی در کوبرنتیزه.
هر Pod معمولاً یه کانتینر داره، ولی ممکنه چندتا هم داشته باشه که با هم کار میکنن.
Kubernetes تضمین میکنه همیشه همون تعداد Podی که تعریف کردی در حال اجرا باشه (مثلاً سه نسخه از وبسرویس).
خودترمیمی (Self-Healing):
اگه یکی از Podها از کار بیفته، Controller Manager تشخیص میده و خودش اون Pod رو روی یه Node دیگه بالا میاره (بدون اینکه نیاز باشه دستی کاری بکنی).
مقیاسپذیری خودکار (Autoscaling):
وقتی ترافیک زیاد میشه، قابلیت Horizontal Pod Autoscaler (HPA) بر اساس معیارهایی مثل CPU یا Memory Usage تصمیم میگیره چندتا Pod جدید بسازه.
و وقتی ترافیک کاهش پیدا کنه، اونا رو حذف میکنه تا منابع هدر نرن.
سه جزء مهم کوبرنتیز
دیپلویمنت (Deployment): مشخص میکنه چند تا Pod باید اجرا بشن و آپدیتها چطور انجام بشن.
سرویس (Service): ترافیک رو بین Podها پخش میکنه تا همیشه در دسترس باشن.
اینگرس (Ingress): مسیر دسترسی کاربران بیرونی (مثل درخواستهای HTTP/HTTPS) رو به سرویسهای داخلی مدیریت میکنه.
چرا کوبرنتیز مهمه؟
چون اجرای برنامهها رو خودکار، پایدار و مقیاسپذیر میکنه.
به همین دلیل، امروز Kubernetes قلب دنیای DevOps و Cloud Native به حساب میاد.
از سیستمهای مایکروسرویسی گرفته تا پلتفرمهای یادگیری ماشین (ML) و اپهای بزرگ،
همه دارن روی K8s اجرا میشن.
@DevTwitter | <Monireh Savaedi/>
بخش سختتر اونجاست که باید صدها کانتینر رو بین چند سرور اجرا، هماهنگ و پایدار نگهداری.
اینجاست که کوبرنتیز وارد عمل میشه.
کوبِرنِتیز چیه؟
کوبِرنِتیز یه سیستم متنباز (Open Source) برای مدیریت و هماهنگسازی کانتینرهاست.
بهش میگن Container Orchestrator چون مثل یه مغز مرکزی عمل میکنه و تصمیم میگیره
کِی، کجا و چطور کانتینرها اجرا بشن.
️ ساختار کلی کوبرنتیز
کوبرنتیز روی یه ساختار به اسم کلاستر (Cluster) کار میکنه.
کلاستر از چند سرور تشکیل شده:
(Control Plane): مغز سیستم که شاملAPI Server، Scheduler، Controller Manager و etcd میشه.
(Worker Nodes): جایی که کانتینرها واقعاً اجرا میشن (با استفاده از ابزاری مثل kubelet و Container Runtime مثل containerd یا CRI-O).
مفاهیم کلیدی در کوبرنتیز
پاد (Pod):
واحد اجرایی اصلی در کوبرنتیزه.
هر Pod معمولاً یه کانتینر داره، ولی ممکنه چندتا هم داشته باشه که با هم کار میکنن.
Kubernetes تضمین میکنه همیشه همون تعداد Podی که تعریف کردی در حال اجرا باشه (مثلاً سه نسخه از وبسرویس).
خودترمیمی (Self-Healing):
اگه یکی از Podها از کار بیفته، Controller Manager تشخیص میده و خودش اون Pod رو روی یه Node دیگه بالا میاره (بدون اینکه نیاز باشه دستی کاری بکنی).
مقیاسپذیری خودکار (Autoscaling):
وقتی ترافیک زیاد میشه، قابلیت Horizontal Pod Autoscaler (HPA) بر اساس معیارهایی مثل CPU یا Memory Usage تصمیم میگیره چندتا Pod جدید بسازه.
و وقتی ترافیک کاهش پیدا کنه، اونا رو حذف میکنه تا منابع هدر نرن.
سه جزء مهم کوبرنتیز
دیپلویمنت (Deployment): مشخص میکنه چند تا Pod باید اجرا بشن و آپدیتها چطور انجام بشن.
سرویس (Service): ترافیک رو بین Podها پخش میکنه تا همیشه در دسترس باشن.
اینگرس (Ingress): مسیر دسترسی کاربران بیرونی (مثل درخواستهای HTTP/HTTPS) رو به سرویسهای داخلی مدیریت میکنه.
چرا کوبرنتیز مهمه؟
چون اجرای برنامهها رو خودکار، پایدار و مقیاسپذیر میکنه.
به همین دلیل، امروز Kubernetes قلب دنیای DevOps و Cloud Native به حساب میاد.
از سیستمهای مایکروسرویسی گرفته تا پلتفرمهای یادگیری ماشین (ML) و اپهای بزرگ،
همه دارن روی K8s اجرا میشن.
@DevTwitter | <Monireh Savaedi/>
Forwarded from Laravel News
Asset Cleaner Package for Laravel https://news.1rj.ru/str/iv?url=https://laravel-news.com/asset-cleaner-package-for-laravel&rhash=8fee474e8a1638
Laravel News
Asset Cleaner Package for Laravel
The Asset Cleaner package for Laravel safely detects and removes unused CSS, JS, and other assets from Laravel applications. It works seamlessly with Laravel, Vue, React, Inertia, and Livewire.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️تا کنون 15 کتاب حوزه لینوکس، متن باز و سیستم عامل منتشر شده است.
🔹این سه کتاب فارسی کامل، از دوره های lpic لینوکسی است. به جای خوانده چندین کتاب، این مجموعه همراه با پوشش سرفصل های استاندارد ازمون های lpi و سایر مرجع های لینوکسی است.
🔸فرمت فایلها به صورت pdf
🔸تمام رنگی
🔹کتاب lpic 1
25فصل و 730 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب lpic 2
9 فصل 500 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب lpic 3
14 فصل 400 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
https://learninghive.ir
🔹این سه کتاب فارسی کامل، از دوره های lpic لینوکسی است. به جای خوانده چندین کتاب، این مجموعه همراه با پوشش سرفصل های استاندارد ازمون های lpi و سایر مرجع های لینوکسی است.
🔸فرمت فایلها به صورت pdf
🔸تمام رنگی
🔹کتاب lpic 1
25فصل و 730 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب lpic 2
9 فصل 500 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب lpic 3
14 فصل 400 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
https://learninghive.ir
Forwarded from دستاوردهای یادگیری عمیق(InTec)
اینکه راجب این مدل و دیتاست اون (هردو رایگان منتشر شده) بعد زا ۴ روز هیچ چیزی نشنیدم چیزی هست که آزار دهنده هست.
اینکه ۱۰۰۰ تا پست راجب
داستان چیه ؟
متا یک مدل
من کدهای دموی خودش رو اجرا کردم نتایجش خوب بود.
خیلی پروژههای شخصی و کارهای قشنگی میشه با این مدلها کرد:
Meta OmniLingual
اینکه ۱۰۰۰ تا پست راجب
chatgpt 5.1 دیدم ولی راجب این به سختی ۱ پست تازه همین هم به لطف ابزاری که برای کرال کردن و خلاصه کردن مطالب مفید اجرا دارم دیدم.داستان چیه ؟
متا یک مدل
ASR جدید + دیتاست منتشر کرده که بیش از 1600 زبان رو شناسایی میکنه حتی شاید بشه گفت کم استفادهترین زبانهای موجود رو و مدلهاش رو هم توی سایز های مختلف منتشر کرده.من کدهای دموی خودش رو اجرا کردم نتایجش خوب بود.
خیلی پروژههای شخصی و کارهای قشنگی میشه با این مدلها کرد:
Meta OmniLingual
GitHub
GitHub - facebookresearch/omnilingual-asr: Omnilingual ASR Open-Source Multilingual SpeechRecognition for 1600+ Languages
Omnilingual ASR Open-Source Multilingual SpeechRecognition for 1600+ Languages - facebookresearch/omnilingual-asr
Forwarded from DevTwitter | توییت برنامه نویسی
وکتور دیتابیسها (Vector Databases)
در دنیای امروز، با رشد مدلهای زبانی بزرگ (LLMها) و اپلیکیشنهای هوش مصنوعی، یک نیاز جدید در حوزه ذخیرهسازی داده بهوجود آمده که چیزی نیست جز درک معنا، نه فقط دادههای خام.
اینجاست که وکتور دیتابیسها (Vector Databases) وارد صحنه میشوند.
برخلاف دیتابیسهای سنتی که دادهها را بر اساس کلید، متن یا ساختار ذخیرهسازی میکنند، وکتور دیتابیسها دادهها را به صورت بردارهای عددی چندبُعدی نگهداری میکنند. این بردارها در واقع نمایانگر معنا و مفهوم پشت دادهها هستند نه صرفاً کلمات یا مقادیر ظاهری.
کاربرد اصلی این نوع دیتابیسها در سیستمهایی است که نیاز به جستوجوی معنایی (Semantic Search)، تطبیق شباهت (Similarity Matching) و حافظه بلندمدت برای LLMها دارند. بهعنوان مثال، در یک چتبات هوشمند، وکتور دیتابیس کمک میکند تا سیستم مکالمات قبلی یا اطلاعات مشابه را بر اساس معنا بازیابی کند، نه فقط تطبیق واژهها.
تفاوت اصلی با دیتابیسهای سنتی
در دیتابیسهای رابطهای یا NoSQL، داده بر اساس کلیدها و تطبیق دقیق بازیابی میشود.
اما در وکتور دیتابیس، دادهها بر اساس درجه شباهت معنایی پیدا میشوند.
یعنی اگر کاربر بگوید:
"بهترین مکان برای مطالعه با قهوه خوب"
سیستم میتواند دادههایی مثل "کافه مناسب برای فریلنسرها" را هم به عنوان نتیجه مرتبط برگرداند.
️ نمونههای شناختهشده وکتور دیتابیسها
ابزار Pinecone : سرویس ابری مخصوص ذخیره و جستوجوی برداری (ساده برای اتصال به LLMها)
ابزار Weaviate : متنباز و ماژولار، با قابلیت اضافه کردن embedding model داخلی
ابزار Milvus : یکی از قدرتمندترین پلتفرمهای متنباز در مقیاس بالا (ساخته Zilliz)
ابزار Qdrant : دیتابیس برداری سریع و سبک با API دوستانه (مناسب پروژههای کوچک تا متوسط)
ابزار pgvector : افزونه PostgreSQL برای ذخیره و جستوجوی برداری (راه ساده برای پروژههای موجود)
به نظر میرسد وکتور دیتابیسها بهزودی به یکی از اجزای اصلی معماری نرمافزارها تبدیل خواهند شد چرا که استفاده از هوش مصنوعی در همه زمینه ها در حال پیشرفت است.
وکتور دیتابیسها پلی هستند بین دادههای ساختیافته و درک انسانی.
فناوریای که به سیستمها کمک میکند “بفهمند”، نه فقط “ذخیره کنند”.
@DevTwitter | <Amir Rahimi Nejad/>
در دنیای امروز، با رشد مدلهای زبانی بزرگ (LLMها) و اپلیکیشنهای هوش مصنوعی، یک نیاز جدید در حوزه ذخیرهسازی داده بهوجود آمده که چیزی نیست جز درک معنا، نه فقط دادههای خام.
اینجاست که وکتور دیتابیسها (Vector Databases) وارد صحنه میشوند.
برخلاف دیتابیسهای سنتی که دادهها را بر اساس کلید، متن یا ساختار ذخیرهسازی میکنند، وکتور دیتابیسها دادهها را به صورت بردارهای عددی چندبُعدی نگهداری میکنند. این بردارها در واقع نمایانگر معنا و مفهوم پشت دادهها هستند نه صرفاً کلمات یا مقادیر ظاهری.
کاربرد اصلی این نوع دیتابیسها در سیستمهایی است که نیاز به جستوجوی معنایی (Semantic Search)، تطبیق شباهت (Similarity Matching) و حافظه بلندمدت برای LLMها دارند. بهعنوان مثال، در یک چتبات هوشمند، وکتور دیتابیس کمک میکند تا سیستم مکالمات قبلی یا اطلاعات مشابه را بر اساس معنا بازیابی کند، نه فقط تطبیق واژهها.
تفاوت اصلی با دیتابیسهای سنتی
در دیتابیسهای رابطهای یا NoSQL، داده بر اساس کلیدها و تطبیق دقیق بازیابی میشود.
اما در وکتور دیتابیس، دادهها بر اساس درجه شباهت معنایی پیدا میشوند.
یعنی اگر کاربر بگوید:
"بهترین مکان برای مطالعه با قهوه خوب"
سیستم میتواند دادههایی مثل "کافه مناسب برای فریلنسرها" را هم به عنوان نتیجه مرتبط برگرداند.
️ نمونههای شناختهشده وکتور دیتابیسها
ابزار Pinecone : سرویس ابری مخصوص ذخیره و جستوجوی برداری (ساده برای اتصال به LLMها)
ابزار Weaviate : متنباز و ماژولار، با قابلیت اضافه کردن embedding model داخلی
ابزار Milvus : یکی از قدرتمندترین پلتفرمهای متنباز در مقیاس بالا (ساخته Zilliz)
ابزار Qdrant : دیتابیس برداری سریع و سبک با API دوستانه (مناسب پروژههای کوچک تا متوسط)
ابزار pgvector : افزونه PostgreSQL برای ذخیره و جستوجوی برداری (راه ساده برای پروژههای موجود)
به نظر میرسد وکتور دیتابیسها بهزودی به یکی از اجزای اصلی معماری نرمافزارها تبدیل خواهند شد چرا که استفاده از هوش مصنوعی در همه زمینه ها در حال پیشرفت است.
وکتور دیتابیسها پلی هستند بین دادههای ساختیافته و درک انسانی.
فناوریای که به سیستمها کمک میکند “بفهمند”، نه فقط “ذخیره کنند”.
@DevTwitter | <Amir Rahimi Nejad/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
دستور resize2fs در لینوکس
دوستان یک دستور لینوکسی خوب هست که یادگیری اون، همیشه مثل یک ابزار نجات توی شرایط خاص هست.
البته آموزش کاملش رو فردا پشت میگذارم با جزییات و مثال روی سایت
اما خلاصه دستور:
یکی از مواردی که خیلی از کاربرهای لینوکسی درگیرش بودن و هستند تغییر اندازه سیستم فایل هست بخصوص پارتیشن ریشه و home
این برای تغییر اندازه سیستم فایلهای ext2، ext3 و ext4 استفاده میشود. این دستور به شما این امکان را میدهد که سیستم فایل موجود را گسترش دهید یا کوچک کنید، بدون اینکه دادهها از دست بروند.
البته برای کاهش و افزایش پارتیشن swap قبلا پست گذاشتم
دوستان یک دستور لینوکسی خوب هست که یادگیری اون، همیشه مثل یک ابزار نجات توی شرایط خاص هست.
البته آموزش کاملش رو فردا پشت میگذارم با جزییات و مثال روی سایت
اما خلاصه دستور:
یکی از مواردی که خیلی از کاربرهای لینوکسی درگیرش بودن و هستند تغییر اندازه سیستم فایل هست بخصوص پارتیشن ریشه و home
این برای تغییر اندازه سیستم فایلهای ext2، ext3 و ext4 استفاده میشود. این دستور به شما این امکان را میدهد که سیستم فایل موجود را گسترش دهید یا کوچک کنید، بدون اینکه دادهها از دست بروند.
البته برای کاهش و افزایش پارتیشن swap قبلا پست گذاشتم
Forwarded from Armon technical logs (armon Taheri)
ساخت vm با کامند های qemu جز دلایلی بود که باعث شد من با تأخیر خیلی زیاد سمت استفاده روزمره از این هایپروایزر برم و بعد ها متوجه شدم که پروژه ای به اسم libvirt وجود داره که روی API هایپروایزر های مختلف از جمله qemu به صورت wrapper قرار گرفته که حتی virtual box هم ساپورت میکنه
این ارایه با اینکه قدیمی هست ولی بهترین ویدیو هست که پیرامون آشنایی با پروژه libvirt میشه پیدا کرد
https://youtu.be/qr3d-4ctZk4
این ارایه با اینکه قدیمی هست ولی بهترین ویدیو هست که پیرامون آشنایی با پروژه libvirt میشه پیدا کرد
https://youtu.be/qr3d-4ctZk4
YouTube
Libvirt: Hypervisor independent virtual machine management
by Guido Günther
At: DebConf9
https://debconf9.debconf.org/
Room: Lower talkroom
Scheduled start: 2009-07-28 19:00:00
At: DebConf9
https://debconf9.debconf.org/
Room: Lower talkroom
Scheduled start: 2009-07-28 19:00:00
Forwarded from PhiloLearn | فیلولرن
Telegram
FuckingProgrammingBook
Django for Professionals by William S. Vincent
@FuckingProgrammingBooks
@PhiloLearn
@FuckingProgrammingBooks
@PhiloLearn
Docker یک ابزار بسیار محبوب برای مدیریت پروژههای Django است. بسیاری از توسعهدهندگان حرفهای از آن استفاده میکنند، اما به نظرم هنوز برای بسیاری از تازهواردها گیجکننده است. در این مطلب تلاش میکنم توضیح دهم Docker چیست و چرا چنین افزودهٔ قدرتمندی برای کار با Django محسوب میشود.
Docker چیست؟
سادهترین راه برای درک Docker این است که آن را مانند یک محیط مجازی بزرگ در نظر بگیریم که همهچیز لازم برای پروژهٔ Django ما را در خود دارد: وابستگیها، پایگاههای داده، سرویسهای کش، و هر ابزار دیگری که نیاز باشد.
این موضوع با یک محیط مجازی (virtual environment) فرق دارد. محیط مجازی تنها به ایزولهکردن پکیجهای نرمافزاری کمک میکند؛ مثل اینکه از چه نسخهای از Django استفاده میکنید یا دیگر پکیجهای پایتون. اما محیط مجازی نمیتواند سرویسهای خارجی مثل پایگاهداده PostgreSQL را شامل شود. Docker میتواند. Docker یک محیط توسعهٔ کاملاً مستقل است که هم به صورت محلی و هم در محیط عملیاتی (production) قابل استفاده است.
پایگاههای داده در محیط عملیاتی
Django به طور پیشفرض با SQLite عرضه میشود و این انتخاب خوبی برای نمونهسازی سریع است. اما… شما هرگز نمیخواهید در محیط عملیاتی از SQLite استفاده کنید؛ در عوض معمولاً از PostgreSQL یا MySQL استفاده میشود. هرچند میتوانید از SQLite در محیط توسعه و از یک پایگاهداده دیگر در محیط عملیاتی استفاده کنید، اما این کار توصیه نمیشود. زیرا تفاوت بین محیط توسعه و محیط عملیاتی میتواند باعث بروز باگهای زیادی شود.
راهحل این است که یک نسخهٔ محلی از PostgreSQL یا مشابه آن اجرا کنید. اما این کار چالشهای خاص خودش را دارد. باید PostgreSQL را درست نصب و اجرا کنید، سپس آن را به Django متصل کنید. شدنی است، اما مستعد خطا است.
و اگر سرویسهای دیگری مثل Redis هم در محیط عملیاتی دارید، تنظیم آنها در محیط محلی هم سخت است اما با Docker بسیار سادهتر میشود. Docker به شما اجازه میدهد محیط محلی را دقیقاً مشابه محیط عملیاتی بسازید؛ که این آرزوی هر توسعهدهندهٔ وب است.
تیمها
حالا تصور کنید عضو یک تیم توسعه هستید. چطور مطمئن میشوید که همهٔ اعضای تیم روی یک محیط محلی یکسان کار میکنند؟ مخصوصاً وقتی پایگاهدادهٔ محلی و تنظیمات آن ممکن است در سیستم هر توسعهدهنده متفاوت باشد؟
اینجاست که Docker واقعاً میدرخشد. با Docker میتوانید مطمئن باشید که هر عضو تیم دقیقاً روی همان محیط توسعهٔ محلی که شما استفاده میکنید کار میکند، که مزیت بسیار بزرگی است. اگر این مسئله را از تجربهٔ شخصی نیاموختهاید، شانس آوردهاید.
Docker، Docker، Docker
پس چرا باید از Docker استفاده کنیم؟ زیرا تنظیم کردن محیط توسعهٔ محلی را بسیار ساده میکند. زیرا نصب Postgres، Redis و دیگر وابستگیها به صورت محلی کابوس است. و چون Docker تضمین میکند که دقیقاً روی همان مشخصاتی کار کنید که دیگر اعضای تیم دارند.
Docker بیشتر دربارهٔ فرایند استقرار (deployment) نیست، بلکه دربارهٔ ساخت محیط محلیای است که محیط عملیاتی را دقیقاً بازآفرینی کند. و این همان نقطهای است که Docker در آن میدرخشد.
اگر دوست دارید یاد بگیرید چگونه با Docker و Django برنامههای آمادهٔ محیط عملیاتی بسازید، کتاب Django for Professionals این موضوع را به شکل مفصل پوشش میدهد.
منبع (ترجمه با هوش مصنوعی)
#Django #Docker #وب_توسعه #برنامه_نویسی_پایتون #DevOps
@PhiloLearn
Docker چیست؟
سادهترین راه برای درک Docker این است که آن را مانند یک محیط مجازی بزرگ در نظر بگیریم که همهچیز لازم برای پروژهٔ Django ما را در خود دارد: وابستگیها، پایگاههای داده، سرویسهای کش، و هر ابزار دیگری که نیاز باشد.
این موضوع با یک محیط مجازی (virtual environment) فرق دارد. محیط مجازی تنها به ایزولهکردن پکیجهای نرمافزاری کمک میکند؛ مثل اینکه از چه نسخهای از Django استفاده میکنید یا دیگر پکیجهای پایتون. اما محیط مجازی نمیتواند سرویسهای خارجی مثل پایگاهداده PostgreSQL را شامل شود. Docker میتواند. Docker یک محیط توسعهٔ کاملاً مستقل است که هم به صورت محلی و هم در محیط عملیاتی (production) قابل استفاده است.
پایگاههای داده در محیط عملیاتی
Django به طور پیشفرض با SQLite عرضه میشود و این انتخاب خوبی برای نمونهسازی سریع است. اما… شما هرگز نمیخواهید در محیط عملیاتی از SQLite استفاده کنید؛ در عوض معمولاً از PostgreSQL یا MySQL استفاده میشود. هرچند میتوانید از SQLite در محیط توسعه و از یک پایگاهداده دیگر در محیط عملیاتی استفاده کنید، اما این کار توصیه نمیشود. زیرا تفاوت بین محیط توسعه و محیط عملیاتی میتواند باعث بروز باگهای زیادی شود.
راهحل این است که یک نسخهٔ محلی از PostgreSQL یا مشابه آن اجرا کنید. اما این کار چالشهای خاص خودش را دارد. باید PostgreSQL را درست نصب و اجرا کنید، سپس آن را به Django متصل کنید. شدنی است، اما مستعد خطا است.
و اگر سرویسهای دیگری مثل Redis هم در محیط عملیاتی دارید، تنظیم آنها در محیط محلی هم سخت است اما با Docker بسیار سادهتر میشود. Docker به شما اجازه میدهد محیط محلی را دقیقاً مشابه محیط عملیاتی بسازید؛ که این آرزوی هر توسعهدهندهٔ وب است.
تیمها
حالا تصور کنید عضو یک تیم توسعه هستید. چطور مطمئن میشوید که همهٔ اعضای تیم روی یک محیط محلی یکسان کار میکنند؟ مخصوصاً وقتی پایگاهدادهٔ محلی و تنظیمات آن ممکن است در سیستم هر توسعهدهنده متفاوت باشد؟
اینجاست که Docker واقعاً میدرخشد. با Docker میتوانید مطمئن باشید که هر عضو تیم دقیقاً روی همان محیط توسعهٔ محلی که شما استفاده میکنید کار میکند، که مزیت بسیار بزرگی است. اگر این مسئله را از تجربهٔ شخصی نیاموختهاید، شانس آوردهاید.
Docker، Docker، Docker
پس چرا باید از Docker استفاده کنیم؟ زیرا تنظیم کردن محیط توسعهٔ محلی را بسیار ساده میکند. زیرا نصب Postgres، Redis و دیگر وابستگیها به صورت محلی کابوس است. و چون Docker تضمین میکند که دقیقاً روی همان مشخصاتی کار کنید که دیگر اعضای تیم دارند.
Docker بیشتر دربارهٔ فرایند استقرار (deployment) نیست، بلکه دربارهٔ ساخت محیط محلیای است که محیط عملیاتی را دقیقاً بازآفرینی کند. و این همان نقطهای است که Docker در آن میدرخشد.
اگر دوست دارید یاد بگیرید چگونه با Docker و Django برنامههای آمادهٔ محیط عملیاتی بسازید، کتاب Django for Professionals این موضوع را به شکل مفصل پوشش میدهد.
منبع (ترجمه با هوش مصنوعی)
#Django #Docker #وب_توسعه #برنامه_نویسی_پایتون #DevOps
@PhiloLearn
Forwarded from ⚝ (امیرحسین پناهےفر)
یکی از بهترین خاطراتی بود که با بچهها کنار هم ساختیم؛ دیدار دوبارهی دوستایی که بعد از سالها حضوری میدیدمشون یا حتی اونایی که فقط از دور برام خاطرههای خوب بودن و حالا تبدیل شدن به یه ارتباط صمیمی و دلنشین. 🌱
• دانشگاه شریف، رویداد جشن انتشار #دبیان ۱۳ 🍥
• دانشگاه شریف، رویداد جشن انتشار #دبیان ۱۳ 🍥
اَحپِفاِیْسم 🍋
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 نرم افزار حذف بکگراند عکس TrimBG
این نرم افزار بدون API و سفارشی با جاوا اسکریپت خالص بکگراند عکس ها حذف می کند و با فریم ورک الکترون نوشته است.
تنها با یک کلیک بکگراند عکس ها حذف می کند.
فعلا نرم افزار برای لینوکس هست و برای ویندوز کمی صبر کنید.
گیت هاب :
https://github.com/TrimBG/Trimbg
اگر برای نصب برای ویندوز می خوای این سورس رو دانلود و اجرا کن.
#لینوکس
@TheRaymondDev
این نرم افزار بدون API و سفارشی با جاوا اسکریپت خالص بکگراند عکس ها حذف می کند و با فریم ورک الکترون نوشته است.
تنها با یک کلیک بکگراند عکس ها حذف می کند.
فعلا نرم افزار برای لینوکس هست و برای ویندوز کمی صبر کنید.
گیت هاب :
https://github.com/TrimBG/Trimbg
اگر برای نصب برای ویندوز می خوای این سورس رو دانلود و اجرا کن.
#لینوکس
@TheRaymondDev
GitHub
GitHub - TrimBG/Trimbg: A fully custom, API-free tool for removing image backgrounds using pure JavaScript.
A fully custom, API-free tool for removing image backgrounds using pure JavaScript. - TrimBG/Trimbg
Forwarded from Linuxor ?
گوگل عقبنشینی کرد! قرار بود از 2026 فقط اپهای با تأیید هویت توسعهدهنده روی اندروید سایدلود (یعنی نصب اپ از خارج پلیاستور مثل فایل APK) بشن، اما بعد از اعتراضها Advanced Flow رو معرفی کرد؛ مسیری که کاربرای حرفهای همچنان بتونن اپهای تأییدنشده رو نصب کنن البته با قبول ریسک.
ماجرا از اونجا شروع شد که گوگل گفت برای امنیت بیشتر، هرکی بخواد اپش خارج از پلیاستور نصب بشه، باید اول هویتش رو تأیید کنه. یعنی ناشناس بودنِ توسعهدهندهها و آزادی سایدلود کردن عملاً محدود میشد. کلی از برنامهنویسها و فعالهای حریم خصوصی به این قضیه اعتراض کردن، چون میگفتن این کار هم آزادی کاربرا رو کم میکنه، هم جلوی پروژههای مستقل و ناشناس رو میگیره.
بعد از این اعتراضها، گوگل عقب نشست و گفت باشه، برای کاربرای معمولی همون محدودیتها هست، ولی برای کاربرای باتجربه یه مسیر جدید به اسم Advanced Flow میذاریم. یعنی اگر بلد باشی و آگاهانه ریسک رو قبول کنی، هنوز هم میتونی اپهای تأییدنشده رو سایدلود کنی.
@Linuxor
ماجرا از اونجا شروع شد که گوگل گفت برای امنیت بیشتر، هرکی بخواد اپش خارج از پلیاستور نصب بشه، باید اول هویتش رو تأیید کنه. یعنی ناشناس بودنِ توسعهدهندهها و آزادی سایدلود کردن عملاً محدود میشد. کلی از برنامهنویسها و فعالهای حریم خصوصی به این قضیه اعتراض کردن، چون میگفتن این کار هم آزادی کاربرا رو کم میکنه، هم جلوی پروژههای مستقل و ناشناس رو میگیره.
بعد از این اعتراضها، گوگل عقب نشست و گفت باشه، برای کاربرای معمولی همون محدودیتها هست، ولی برای کاربرای باتجربه یه مسیر جدید به اسم Advanced Flow میذاریم. یعنی اگر بلد باشی و آگاهانه ریسک رو قبول کنی، هنوز هم میتونی اپهای تأییدنشده رو سایدلود کنی.
@Linuxor
Forwarded from Linuxor ?
چند وقت پیش دیدیم که چت جی پی تی یه چیزی به اسم Atlas رو معرفی کرد. (اینجارو بخونید)
حالا موزیلا گفته: این شاخ بازی ها توی دنیای مرورگر ها آنتن نمیده، من مرورگریم که خدا وعده داده.... و خودش داره یه چیزی معرفی میکنه به اسم AI Window و دقیقا شبیه همون Atlas هست فقط با این تفاوت که به عنوان یه گزینه مرورگره، و موزیلا گفته که این ویژگی دلبخواهی هستش یعنی اگه خواستین میتونید به صورت عادی هم از مرورگر عادیش استفاده کنید.
فعلا قراره آزمایشی انجام بشه و هنوز هم معلوم نیست پایه هوش مصنوعیش چی باشه؟ آیا از سرویس های دیگه استفاده میکنه و یا خودش سرویس هوش مصنوعی براش راهاندازی میکنه ولی ویژگی بسیار خوبیه به خصوص اینکه دیگه نیازی نیست مرورگر دیگه ای نصب کنید، احتمالا کروم هم با این حرکت به سمت این ویژگی بیاد.
@Linuxor
حالا موزیلا گفته: این شاخ بازی ها توی دنیای مرورگر ها آنتن نمیده، من مرورگریم که خدا وعده داده.... و خودش داره یه چیزی معرفی میکنه به اسم AI Window و دقیقا شبیه همون Atlas هست فقط با این تفاوت که به عنوان یه گزینه مرورگره، و موزیلا گفته که این ویژگی دلبخواهی هستش یعنی اگه خواستین میتونید به صورت عادی هم از مرورگر عادیش استفاده کنید.
فعلا قراره آزمایشی انجام بشه و هنوز هم معلوم نیست پایه هوش مصنوعیش چی باشه؟ آیا از سرویس های دیگه استفاده میکنه و یا خودش سرویس هوش مصنوعی براش راهاندازی میکنه ولی ویژگی بسیار خوبیه به خصوص اینکه دیگه نیازی نیست مرورگر دیگه ای نصب کنید، احتمالا کروم هم با این حرکت به سمت این ویژگی بیاد.
@Linuxor