Forwarded from DevTwitter | توییت برنامه نویسی
براساس پیشرفتهای نرمافزاری و سختافزاری و AI، رمز عبور شما حتما باید بیشتر از 12 رقم و ترکیب کاراکترهای مختلف باشد!
چرا؟
چون با ابزارهایی شبیه KrakenHashes و پخش کردن پردازش بر روی GPUهای قدرتمند و حتیCloud، رمزعبورهای ضعیف، درصد شکسته می شوند!
https://github.com/ZerkerEOD/krakenhashes
@DevTwitter | <VAHID NAMENI/>
چرا؟
چون با ابزارهایی شبیه KrakenHashes و پخش کردن پردازش بر روی GPUهای قدرتمند و حتیCloud، رمزعبورهای ضعیف، درصد شکسته می شوند!
https://github.com/ZerkerEOD/krakenhashes
@DevTwitter | <VAHID NAMENI/>
Forwarded from Software Engineer Labdon
براساس پیشرفتهای نرمافزاری و سختافزاری و AI، رمز عبور شما حتما باید بیشتر از 12 رقم و ترکیب کاراکترهای مختلف باشد!
چرا؟
چون با ابزارهایی شبیه KrakenHashes و پخش کردن پردازش بر روی GPUهای قدرتمند و حتیCloud، رمزعبورهای ضعیف، درصد شکسته می شوند!
https://github.com/ZerkerEOD/krakenhashes
<VAHID NAMENI/>
چرا؟
چون با ابزارهایی شبیه KrakenHashes و پخش کردن پردازش بر روی GPUهای قدرتمند و حتیCloud، رمزعبورهای ضعیف، درصد شکسته می شوند!
https://github.com/ZerkerEOD/krakenhashes
<VAHID NAMENI/>
Forwarded from IRCF | اینترنت آزاد برای همه
ابزار DNS Leak Test برای بررسی امنیت درخواستهای DNS طراحی شده. با این ابزار میتونین بفهمین آیا کوئریهای DNS شما بهجای عبور از VPN، مستقیم از طریق ISP ارسال میشن یا نه.
این برنامه روی ویندوز، مکاواس، لینوکس و همینطور اندروید (از طریق ترموکس) قابل اجراست و بهتون کمک میکنه از امن بودن واقعی اتصال VPN خودتون مطمئن بشین.
👉 github.com/code3-dev/dnsleak/releases/latest
💡 github.com/code3-dev/dnsleak-termux
🔍 ircf.space
@ircfspace
این برنامه روی ویندوز، مکاواس، لینوکس و همینطور اندروید (از طریق ترموکس) قابل اجراست و بهتون کمک میکنه از امن بودن واقعی اتصال VPN خودتون مطمئن بشین.
👉 github.com/code3-dev/dnsleak/releases/latest
💡 github.com/code3-dev/dnsleak-termux
🔍 ircf.space
@ircfspace
Forwarded from نوشتههای ترمینالی
YouTube
Top 7 Most-Used Distributed System Patterns
Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter.: https://blog.bytebytego.com
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Forwarded from دستاوردهای یادگیری عمیق(InTec)
blog.tensorflow.org
Higher accuracy on vision models with EfficientNet-Lite
In May 2019, Google released a family of image classification models called EfficientNet, which achieved state-of-the-art accuracy with an order of magnitude of fewer computations and parameters. If EfficientNet can run on edge, it opens the door for novel…
Forwarded from Linuxor ?
برای نامگذاری متغییر ها توی برنامه نویسی همیشه کلی وقت میزاریم و خوب در نمیآد، یه اسم خوب متغییر باید طوری باشه که اگه یه برنامه نویس دیگه خوندش ابهامی نداشته باشه، اینجا لیست قوانینش رو نوشته یه نگاهی بهش بندازین:
github.com/kettanaito/naming-cheatsheet
@Linuxor
github.com/kettanaito/naming-cheatsheet
@Linuxor
Forwarded from Linuxor ?
ساختن پروژه اوپن سورس توی گیتهاب یا هر جایی یه فرهنگی داره، مثلا اینکه چطوری کانتریبیوت کنیم، چطوری اصلا خودمون پروژه اوپن سورس بسازیم و یا چطوری کاربر برای پروژمون پیدا کنیم، اینجا قوانین و روش هاشو نوشته خیلی کوتاه و مفید هم هستن :
opensource.guide
@Linuxor
opensource.guide
@Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
تجربه من از استفادهی TanStack Query و Next.js در یک پروژه B2B
لینک مقاله
@DevTwitter | <Mohsen Asadi/>
لینک مقاله
@DevTwitter | <Mohsen Asadi/>
Forwarded from Linuxor ?
اگه خواستین یه سایت فول استک یعنی هم فرانت و بک و چیز های لازم رو بسازین ولی نمیدونستین از چه چیزایی استفاده کنید چشمتون رو ببندید و اینو نصب کنید همچی از بک (پایتون) و فرانت (ری اکت) و کانتینر های داکرش رو براتون آماده میکنه و فقط کافیه کدش رو بزنید
github.com/fastapi/full-stack-fastapi-template
(این لقمه آماده رو حتی نیازی نیست خودتون بجویید، کدشم میتونید نزنید، بدید هوش مصنوعی بزنه)
@Linuxor
github.com/fastapi/full-stack-fastapi-template
(این لقمه آماده رو حتی نیازی نیست خودتون بجویید، کدشم میتونید نزنید، بدید هوش مصنوعی بزنه)
@Linuxor
Forwarded from کدنویس یکروزه
This media is not supported in your browser
VIEW IN TELEGRAM
هوش مصنوعی تصاویر آفلاین!
گوگل در آندروید برای همهی مدل ها عرضه کرد. ویرایش های جالب به ساده ترین شکل بدون فتوشاپ و بدون اینترنت!
#tools
گوگل در آندروید برای همهی مدل ها عرضه کرد. ویرایش های جالب به ساده ترین شکل بدون فتوشاپ و بدون اینترنت!
#tools
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
Random Forest یا همون غول پایدار یادگیری ماشین
داستان از اونجا شروع میشه که
لئو بریمن سال ۲۰۰۱ این الگوریتم رو معرفی کرد. بعد از ۲۴ سال، هنوز تو تاپ ۵ مسابقههای Kaggle و پروژههای واقعی هست
نه به خاطر پیچیدگی، بلکه به خاطر تعادل دقت، پایداری و تفسیرپذیری.
اول از همه Random Forest چیه؟
یه مجموعه (Ensemble) از درختهای تصمیم که:
هر درخت روی یه زیرمجموعه تصادفی از دادهها (Bootstrap) آموزش میبینه
تو هر گره، فقط یه تعداد تصادفی از ویژگیها (features) بررسی میشه
خروجی نهایی با رأیگیری (طبقهبندی) یا میانگین (رگرسیون) ترکیب میشه
نتیجه؟ یه مدل قوی که Variance درختهای تک رو کم میکنه، بدون اینکه Bias زیاد بشه.
چطور کار میکنه؟ (۳ گام ساده داره)
۱. Bagging
از داده اصلی، چندین زیرمجموعه با جایگزینی میسازیم.
تقریباً 63.2% دادهها تو هر درخت هستن (بقیه میشن OOB برای ارزیابی بدون نیاز به Validation).
احتمال انتخاب نشدن یه نمونه: (1 - 1/n)^n نزدیک به 0.368
۲. انتخاب تصادفی ویژگی
تو هر گره:
طبقهبندی: √p ویژگی (p = کل ویژگیها)
رگرسیون: p/3 یا √p
این کار باعث میشه درختها همبستگی کمی داشته باشن
چرا اینقدر خوبه؟
دقت بالا (معمولاً تو ۱۰٪ برتر Kaggle)
-مقاوم به Overfitting (حتی با درخت عمیق)
-اهمیت ویژگی (Feature Importance) میده
با داده گمشده کار میکنه
نیازی به نرمالسازی نداره
اهمیت ویژگی چطور حساب میشه؟
با کاهش میانگین ناخالصی (مثل Gini) در گرههایی که از اون ویژگی استفاده شده.
روش دقیقترش: Permutation Importance
ویژگی رو به هم میریزیم و افت دقت رو اندازه میگیریم.
کاربردهای واقعی:
تشخیص سرطان (دقت ۹۹٪)
تشخیص تقلب بانکی
سیستم پیشنهاد Netflix
پیشبینی قیمت خانه
و...
نقل قول بریمن (۲۰۰۱):
"Random forests does not overfit. As you add more trees, the test error keeps decreasing."
*منبع: Breiman, L. (2001). Random Forests*
➖➖➖➖➖➖➖➖➖➖
داستان از اونجا شروع میشه که
لئو بریمن سال ۲۰۰۱ این الگوریتم رو معرفی کرد. بعد از ۲۴ سال، هنوز تو تاپ ۵ مسابقههای Kaggle و پروژههای واقعی هست
نه به خاطر پیچیدگی، بلکه به خاطر تعادل دقت، پایداری و تفسیرپذیری.
اول از همه Random Forest چیه؟
یه مجموعه (Ensemble) از درختهای تصمیم که:
هر درخت روی یه زیرمجموعه تصادفی از دادهها (Bootstrap) آموزش میبینه
تو هر گره، فقط یه تعداد تصادفی از ویژگیها (features) بررسی میشه
خروجی نهایی با رأیگیری (طبقهبندی) یا میانگین (رگرسیون) ترکیب میشه
نتیجه؟ یه مدل قوی که Variance درختهای تک رو کم میکنه، بدون اینکه Bias زیاد بشه.
چطور کار میکنه؟ (۳ گام ساده داره)
۱. Bagging
از داده اصلی، چندین زیرمجموعه با جایگزینی میسازیم.
تقریباً 63.2% دادهها تو هر درخت هستن (بقیه میشن OOB برای ارزیابی بدون نیاز به Validation).
احتمال انتخاب نشدن یه نمونه: (1 - 1/n)^n نزدیک به 0.368
۲. انتخاب تصادفی ویژگی
تو هر گره:
طبقهبندی: √p ویژگی (p = کل ویژگیها)
رگرسیون: p/3 یا √p
این کار باعث میشه درختها همبستگی کمی داشته باشن
چرا اینقدر خوبه؟
دقت بالا (معمولاً تو ۱۰٪ برتر Kaggle)
-مقاوم به Overfitting (حتی با درخت عمیق)
-اهمیت ویژگی (Feature Importance) میده
با داده گمشده کار میکنه
نیازی به نرمالسازی نداره
اهمیت ویژگی چطور حساب میشه؟
با کاهش میانگین ناخالصی (مثل Gini) در گرههایی که از اون ویژگی استفاده شده.
روش دقیقترش: Permutation Importance
ویژگی رو به هم میریزیم و افت دقت رو اندازه میگیریم.
کاربردهای واقعی:
تشخیص سرطان (دقت ۹۹٪)
تشخیص تقلب بانکی
سیستم پیشنهاد Netflix
پیشبینی قیمت خانه
و...
نقل قول بریمن (۲۰۰۱):
"Random forests does not overfit. As you add more trees, the test error keeps decreasing."
*منبع: Breiman, L. (2001). Random Forests*
#️⃣ #ai #programming
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
Forwarded from ⚝ (امیرحسین پناهےفر)
داشتم ارائه شاتلورث رو نگاه میکردم که برای حدود ۹ سال پیش بود و مربوط به اسنپ بودش. برای اونایی که باهاش کار نکردن، اسنپ یه پکیج منیجر یونیورسال لینوکسه که هدفش اینه نرمافزارها روی هر توزیع لینوکس راحت اجرا بشن، بدون اینکه نیاز باشه نگران وابستگیهای نیتیو باشیم.
هر بسته اسنپ تو یه محیط ایزوله sandbox اجرا میشه، تقریبا شبیه کانتینرهای داکر. اپلیکیشن با تمام وابستگیهاش بستهبندی میشه و تداخلی با سیستم میزبان یا اپهای دیگه نداره. این ایزولهسازی با ترکیبی از linux namespaces، cgroups و AppArmor confinement انجام میشه تا امنیت و مدیریت منابع مطمئن باشه.
اسنپ از نسخهبندی immutable استفاده میکنه؛ یعنی هر بسته یه نسخه مشخص داره و آپدیتها به صورت atomic انجام میشن. اگه چیزی خراب شد، راحت میتونیم به نسخه قبلی برگردیم. تازه، delta updates هم حجم آپدیتها رو کم میکنه و پهنای باند رو بهینه نگه میداره.
برای سیستمهای مینفریم و ادج، این معماری خوبه مزیتش امنیت بهتر، مدیریت راحت نسخهها، و حتی میتونی چند نسخه از یه برنامه رو همزمان اجرا کنی بدون دردسر. ضمن اینکه چون هر بسته شامل تمام وابستگی هاست، مشکلات مربوط به اختلاف کتابخونهها بین توزیعها هم تقریبا مدیریت میشه.
- Why we need a different container purely for apps - Mark Shuttleworth (Canonical)
هر بسته اسنپ تو یه محیط ایزوله sandbox اجرا میشه، تقریبا شبیه کانتینرهای داکر. اپلیکیشن با تمام وابستگیهاش بستهبندی میشه و تداخلی با سیستم میزبان یا اپهای دیگه نداره. این ایزولهسازی با ترکیبی از linux namespaces، cgroups و AppArmor confinement انجام میشه تا امنیت و مدیریت منابع مطمئن باشه.
اسنپ از نسخهبندی immutable استفاده میکنه؛ یعنی هر بسته یه نسخه مشخص داره و آپدیتها به صورت atomic انجام میشن. اگه چیزی خراب شد، راحت میتونیم به نسخه قبلی برگردیم. تازه، delta updates هم حجم آپدیتها رو کم میکنه و پهنای باند رو بهینه نگه میداره.
برای سیستمهای مینفریم و ادج، این معماری خوبه مزیتش امنیت بهتر، مدیریت راحت نسخهها، و حتی میتونی چند نسخه از یه برنامه رو همزمان اجرا کنی بدون دردسر. ضمن اینکه چون هر بسته شامل تمام وابستگی هاست، مشکلات مربوط به اختلاف کتابخونهها بین توزیعها هم تقریبا مدیریت میشه.
- Why we need a different container purely for apps - Mark Shuttleworth (Canonical)
اَحپِفاِیْسم 🍋
Forwarded from قصهها | KiarashStories
عرضی در باب مصاحبه
اواخر داشتم فکر میکردم که مدتهاست دانشگاه و سیستم آموزش و... رو نقد میکنم که چرا بهروز و خلاق نیستن. بیشتر که فکر کردم دیدم همین نقد الان به خودمون وارده، نیست؟
مثلا یادگرفتنِ مهارتهایی مثل تفکر انتقادی و تفکر سیستمی تو مدرسه، خیلی بیشتر به دردِ زندگیمون میخورد تا شیمیِ آلی یا استوکیومتری! یا خیلی چیزهای نامرتبط و بهدردنخورتر که بگذریم... دین و زندگی ۳!
یا توی کار ما، مهندسی نرمافزار، خیلی چیزای مهمتر از طراحی شئگرا (OOD) هست اما هنوز درسای دانشگاه تکونِ جدیای نخوردن:
Product Thinking, Test, CICD, Release Cycle, AI, SRE, etc.
حالا کجا سوزن نقد توی دست خودم فرو میره؟
این همه محدودیتای مصاحبهی کلاسیک مشخص شده تا امروز و چیزای جدیدتر کشف شده، ما کار خلاقانهای در موردشون کردیم؟
مثلا:
۱. توانمندیهای پنهان آدام گرنت: همبستگی قوی چهار پارامترِ مربوط به منش (Character) یعنی فروتنی، پشتکار، کنجکاوی و همدلی با موفقیت آدمها حتی بیشتر از مهارتهای کلاسیکشون
۲. یافته های اخیر در مورد انعطافِ شناختی و قدرت مواجهه با ابهام. جالب این جاست که حدس قوی وجود داره که با چند تا سوالِ ساده میشه به تخمینِ خوبی ازشون رسید! (اپیزود کتاب مغز ایدئولوژیک اثرِ ازمگراد از دکتر مکری)
واقعا چقدر میشه خوشفکری و خلاقیتِ موثر به خرج داد توی طراحی پایپ جذب و اتفاقای مشابهش مثل نردبان شغلی🤔
📒 @KiarashStories
اواخر داشتم فکر میکردم که مدتهاست دانشگاه و سیستم آموزش و... رو نقد میکنم که چرا بهروز و خلاق نیستن. بیشتر که فکر کردم دیدم همین نقد الان به خودمون وارده، نیست؟
مثلا یادگرفتنِ مهارتهایی مثل تفکر انتقادی و تفکر سیستمی تو مدرسه، خیلی بیشتر به دردِ زندگیمون میخورد تا شیمیِ آلی یا استوکیومتری! یا خیلی چیزهای نامرتبط و بهدردنخورتر که بگذریم... دین و زندگی ۳!
یا توی کار ما، مهندسی نرمافزار، خیلی چیزای مهمتر از طراحی شئگرا (OOD) هست اما هنوز درسای دانشگاه تکونِ جدیای نخوردن:
Product Thinking, Test, CICD, Release Cycle, AI, SRE, etc.
حالا کجا سوزن نقد توی دست خودم فرو میره؟
این همه محدودیتای مصاحبهی کلاسیک مشخص شده تا امروز و چیزای جدیدتر کشف شده، ما کار خلاقانهای در موردشون کردیم؟
مثلا:
۱. توانمندیهای پنهان آدام گرنت: همبستگی قوی چهار پارامترِ مربوط به منش (Character) یعنی فروتنی، پشتکار، کنجکاوی و همدلی با موفقیت آدمها حتی بیشتر از مهارتهای کلاسیکشون
۲. یافته های اخیر در مورد انعطافِ شناختی و قدرت مواجهه با ابهام. جالب این جاست که حدس قوی وجود داره که با چند تا سوالِ ساده میشه به تخمینِ خوبی ازشون رسید! (اپیزود کتاب مغز ایدئولوژیک اثرِ ازمگراد از دکتر مکری)
واقعا چقدر میشه خوشفکری و خلاقیتِ موثر به خرج داد توی طراحی پایپ جذب و اتفاقای مشابهش مثل نردبان شغلی🤔
📒 @KiarashStories
Forwarded from Linuxor ?
به ترکیب دوتا رنگ و به تدریج تغییر و میل کردن به رنگ دوم میگن گرادیان یا Gradient، پیدا کردن دوتا رنگ که با همدیگه ترکیب خوبی بسازه کار راحتی نیست، اینجارو دیدم اومده بود کلی از این دوتا رنگا رو که ترکیبشون خوب در میآد رو لیست کرده بود :
coolors.co/gradients
@Linuxor
coolors.co/gradients
@Linuxor
Forwarded from Linuxor ?
اگه الگوریتم ها و مفاهیم کد هارو نمیفهمید نگران نباشید ...
دانشگاه MIT بهطور رسمی «وایب کدینگ» (Vibe Coding) رو به عنوان یه روش مهندسی نرمافزار پذیرفته! این همون کاریه که مدتها بود برنامهنویسها انجام میدادن: کد میزدن، اجرا میکردن و اگه خروجی درست بود، بدون بررسی جزئیاتش اونو استفاده و یا منتشر میکردن.
در واقع موفقیت به توانایی مدل AI ربطی نداره، به مدیریت اطلاعات و محیط کاری (Context + Feedback + Infrastructure) ربط داره و رعایت کردن قوانینی میشه حتی نرم افزار های خوب ساخت.
@Linuxor
دانشگاه MIT بهطور رسمی «وایب کدینگ» (Vibe Coding) رو به عنوان یه روش مهندسی نرمافزار پذیرفته! این همون کاریه که مدتها بود برنامهنویسها انجام میدادن: کد میزدن، اجرا میکردن و اگه خروجی درست بود، بدون بررسی جزئیاتش اونو استفاده و یا منتشر میکردن.
در واقع موفقیت به توانایی مدل AI ربطی نداره، به مدیریت اطلاعات و محیط کاری (Context + Feedback + Infrastructure) ربط داره و رعایت کردن قوانینی میشه حتی نرم افزار های خوب ساخت.
@Linuxor
Forwarded from Meitix
فرق فوروارد پراکسی و ریورس پراکسی توی اینه که هر کدوم از یه طرف وسط ماجرا قرار میگیرن.
فوروارد پراکسی معمولا سمت کاربره. یعنی کاربر به جای اینکه مستقیم بره سراغ سایت، درخواستش رو میفرسته به پراکسی. اون پراکسی میره سراغ سایت، جواب رو میگیره و میفرسته برای کاربر. معمولا برای پنهون کردن آیپی کاربر، دور زدن محدودیتها یا فایروال استفاده میشه . مثلا توی شرکتها که میخوان کارمندا فقط بعضی سایتها رو ببینن یا برای فیلترشکنها.
اما ریورس پراکسی دقیقا برعکسه، اون سمت سروره. کاربر فکر میکنه داره مستقیم با سرور اصلی حرف میزنه ولی در واقع با یه پراکسی صحبت میکنه که جلوی سرور قرار گرفته. اون پراکسی درخواست رو میگیره و خودش تصمیم میگیره بفرسته برای کدوم سرور واقعی (مثلاً برای بالانس کردن ترافیک بین چند تا سرور یا برای کش کردن محتوا و امنیت بیشتر).
در واقع فوروارد پراکسی محافظ کاربره، ریورس پراکسی محافظ سرور.
فوروارد پراکسی معمولا سمت کاربره. یعنی کاربر به جای اینکه مستقیم بره سراغ سایت، درخواستش رو میفرسته به پراکسی. اون پراکسی میره سراغ سایت، جواب رو میگیره و میفرسته برای کاربر. معمولا برای پنهون کردن آیپی کاربر، دور زدن محدودیتها یا فایروال استفاده میشه . مثلا توی شرکتها که میخوان کارمندا فقط بعضی سایتها رو ببینن یا برای فیلترشکنها.
اما ریورس پراکسی دقیقا برعکسه، اون سمت سروره. کاربر فکر میکنه داره مستقیم با سرور اصلی حرف میزنه ولی در واقع با یه پراکسی صحبت میکنه که جلوی سرور قرار گرفته. اون پراکسی درخواست رو میگیره و خودش تصمیم میگیره بفرسته برای کدوم سرور واقعی (مثلاً برای بالانس کردن ترافیک بین چند تا سرور یا برای کش کردن محتوا و امنیت بیشتر).
در واقع فوروارد پراکسی محافظ کاربره، ریورس پراکسی محافظ سرور.
Forwarded from ⚝ (امیرحسین پناهےفر)
میخواستم یه کانتینر ساده با گولنگ بسازم که بدون داکر یه محیط ایزوله برای اجرای برنامه فراهم کنه و مفاهیم Namespaceها و ایزولهسازی منابع رو عملی نشون بده.
با ()clone یه پروسه جدید ساختم و از namespaceهای PID، UTS و Mount استفاده کردم.
هر پروسهٔ کانتینر PID جدا داره؛ اولین پروسه داخل کانتینر PID 1 میگیره و میزبان هیچ اطلاعی ازشون نداره این از "کانسپت PID namespace"
از طریق UTS namespace میاد hostname و domain name ایزوله میشن؛ با syscall.Sethostname("podgo") فقط داخل کانتینر تغییر میکنه، میزبان unaffected میمونه.
واسه mount points هم با Mount namespace ایزوله هستن و با MS_PRIVATE|MS_REC propagation کاملاً private میشه، یعنی تغییر mount روی میزبان اثر نمیذاره.
تغییر root filesystem هم با chroot(rootfs) روت کانتینر عوض میشه و مسیر کاری با اسلش / تنظیم میشه. proc هم mount میشه تا پروسس های خودش رو ببینه و درست کار کنه.
دستور کاربر با ()exec اجرا میشه و stdin/stdout/stderr به ترمینال اصلی وصل هستن.
آخر کار که کارمون تموم شد هم proc با ()umount پاک سازی میشه...
وقتی PID، UTS و Mount namespace فعال باشن، پروسه داخل یه مینی os واقعی با rootfs ای که بهش قبلا دادیم اجرا میشه که از میزبان کاملاً ایزوله هستش، بدون نیاز به داکر یا لایه های abstraction پیچیده.
یه نکته هم تهش بگم این یه سمپل ساده و مینیماله کانسپت pivot_root و اضافه کردن dev و network namespace برای کانتینرهای واقعی پیشرفته استفاده میشن...
با ()clone یه پروسه جدید ساختم و از namespaceهای PID، UTS و Mount استفاده کردم.
هر پروسهٔ کانتینر PID جدا داره؛ اولین پروسه داخل کانتینر PID 1 میگیره و میزبان هیچ اطلاعی ازشون نداره این از "کانسپت PID namespace"
از طریق UTS namespace میاد hostname و domain name ایزوله میشن؛ با syscall.Sethostname("podgo") فقط داخل کانتینر تغییر میکنه، میزبان unaffected میمونه.
واسه mount points هم با Mount namespace ایزوله هستن و با MS_PRIVATE|MS_REC propagation کاملاً private میشه، یعنی تغییر mount روی میزبان اثر نمیذاره.
تغییر root filesystem هم با chroot(rootfs) روت کانتینر عوض میشه و مسیر کاری با اسلش / تنظیم میشه. proc هم mount میشه تا پروسس های خودش رو ببینه و درست کار کنه.
دستور کاربر با ()exec اجرا میشه و stdin/stdout/stderr به ترمینال اصلی وصل هستن.
آخر کار که کارمون تموم شد هم proc با ()umount پاک سازی میشه...
وقتی PID، UTS و Mount namespace فعال باشن، پروسه داخل یه مینی os واقعی با rootfs ای که بهش قبلا دادیم اجرا میشه که از میزبان کاملاً ایزوله هستش، بدون نیاز به داکر یا لایه های abstraction پیچیده.
یه نکته هم تهش بگم این یه سمپل ساده و مینیماله کانسپت pivot_root و اضافه کردن dev و network namespace برای کانتینرهای واقعی پیشرفته استفاده میشن...
اَحپِفاِیْسم 🍋
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 افزونه ورود موبایلی Authora وردپرس منتشر شد.
https://wordpress.org/plugins/authora-easy-login-with-mobile-number/
#وردپرس
@TheRaymondDev
https://wordpress.org/plugins/authora-easy-login-with-mobile-number/
#وردپرس
@TheRaymondDev
WordPress.org
Authora : Easy login with mobile number
Authora Authora is a lightweight and developer-friendly WordPress plugin that enables users to log in using just their mobile number — no passwords, n …
Forwarded from Meitix
دو تا استراتژی معروف برای نوشتن Cache داریم:
Write-through:
تو این مدل هر وقت چیزی تو کش نوشته میشه، همزمان تو دیتابیس هم نوشته میشه. یعنی مسیرش اینه:
App → Cache → Database.
نتیجه اینه که کش و دیتابیس همیشه همگام میمونن، ولی هزینهی نوشتن بالاتر میره چون هر بار باید به دیتابیس هم بنویسی.
مزیتش اینه که دادهی کش همیشه معتبره (هیچ دادهی "قدیمی" نداری).
نقطه ضعفش اینه که latency بیشتره
Write-Back:
اینجا ما اول فقط تو کش مینویسیم و بعدا به صورت async اون داده به دیتابیس سینک میشه.
یعنی مسیرش اینه:
App → Cache … async Cache → Database.
اینجا کار سریعتره چون اپ منتظر دیتابیس نمیمونه.
ولی اگه کش قبل از نوشتن تو دیتابیس خراب شه، داده ممکنه از بین بره.
برای همین معمولا تو سیستمهایی استفاده میشه که سرعت خیلی مهمه و میتونن کمی ریسک از دست رفتن داده رو قبول کنن
در واقع write-through یعنی امن ولی کندتر، و write-behind یعنی سریعتر ولی با ریسک از دست دادن داده.
البته یه مدل دیگه هم هست به اسم write-around که توش فقط مستقیم تو دیتابیس مینویسن و کش فقط وقتی خونده میشه آپدیت میشه، ولی اون دیگه برای کاربردهایی مناسبه که دادهی نوشته شده زیاد مصرف نمیشه.
Write-through:
تو این مدل هر وقت چیزی تو کش نوشته میشه، همزمان تو دیتابیس هم نوشته میشه. یعنی مسیرش اینه:
App → Cache → Database.
نتیجه اینه که کش و دیتابیس همیشه همگام میمونن، ولی هزینهی نوشتن بالاتر میره چون هر بار باید به دیتابیس هم بنویسی.
مزیتش اینه که دادهی کش همیشه معتبره (هیچ دادهی "قدیمی" نداری).
نقطه ضعفش اینه که latency بیشتره
Write-Back:
اینجا ما اول فقط تو کش مینویسیم و بعدا به صورت async اون داده به دیتابیس سینک میشه.
یعنی مسیرش اینه:
App → Cache … async Cache → Database.
اینجا کار سریعتره چون اپ منتظر دیتابیس نمیمونه.
ولی اگه کش قبل از نوشتن تو دیتابیس خراب شه، داده ممکنه از بین بره.
برای همین معمولا تو سیستمهایی استفاده میشه که سرعت خیلی مهمه و میتونن کمی ریسک از دست رفتن داده رو قبول کنن
در واقع write-through یعنی امن ولی کندتر، و write-behind یعنی سریعتر ولی با ریسک از دست دادن داده.
البته یه مدل دیگه هم هست به اسم write-around که توش فقط مستقیم تو دیتابیس مینویسن و کش فقط وقتی خونده میشه آپدیت میشه، ولی اون دیگه برای کاربردهایی مناسبه که دادهی نوشته شده زیاد مصرف نمیشه.