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 که توش فقط مستقیم تو دیتابیس مینویسن و کش فقط وقتی خونده میشه آپدیت میشه، ولی اون دیگه برای کاربردهایی مناسبه که دادهی نوشته شده زیاد مصرف نمیشه.
Forwarded from Reza Jafari
هوش مصنوعی مثل یه شعبدهبازه: کارهاش هوشمندانه به نظر میرسه، اما وقتی بفهمیم چطور کار میکنه، دیگه تواناییهاش رو بیش از حد دست بالا نمیگیریم.
@reza_jafari_ai
@reza_jafari_ai
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from Linuxor ?
Forwarded from محتوای آزاد سهراب (Sohrab)
ادیتورهایی مثل #ایمکس میتونن متن دوسویه راست به چپ رو به خوبی پشتیبانی کنن.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Bidirectional-Display.html
اگر کار با ایمکس براتون سخته، میتونید Doom Emacs رو نصب کنید که به صورت پیشفرض evil mode رو داره و میانبرهای vim رو در اختیارتون میذاره.
@SohrabContents
https://www.gnu.org/software/emacs/manual/html_node/elisp/Bidirectional-Display.html
اگر کار با ایمکس براتون سخته، میتونید Doom Emacs رو نصب کنید که به صورت پیشفرض evil mode رو داره و میانبرهای vim رو در اختیارتون میذاره.
@SohrabContents
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
از اونجایی که همیشه نگرانی از دست رفتن ریپوهامون رو داریم تو ایران، این ابزار به شما کمک میکنه که به صورت خودکار از کل گیت خودتون بکآپ بگیرید.
با داکر ران میشه و میتونید روی یه سرور بیاریدش بالا تا روزانه یا هفتگی بکآپ بگیره :)
https://github.com/TimWitzdam/GitSave/
@DevTwitter | <Milad Niroee/>
با داکر ران میشه و میتونید روی یه سرور بیاریدش بالا تا روزانه یا هفتگی بکآپ بگیره :)
https://github.com/TimWitzdam/GitSave/
@DevTwitter | <Milad Niroee/>
Forwarded from code2 - تکنولوژی و فناوری
ربات تلگرام پرپلکسیتی
گویا شرکت پرپلکسیتی ربات تلگرامش رو هم منتشر کرده. برای جستجو ابزار خیلی خوبی هست. چون وقتی جوابی رو بهتون میده منابع مختلفی رو توی اینترنت در موردش جستجو میکنه.
اگر دوست داشتید یه چک بکنید.
@askplexbot
کانال کد۲
@code2_ir
گویا شرکت پرپلکسیتی ربات تلگرامش رو هم منتشر کرده. برای جستجو ابزار خیلی خوبی هست. چون وقتی جوابی رو بهتون میده منابع مختلفی رو توی اینترنت در موردش جستجو میکنه.
اگر دوست داشتید یه چک بکنید.
@askplexbot
کانال کد۲
@code2_ir