Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
اگه میخواهید یک code interpreter یا دستیار برای کد نویسی داشته باشید Qwen-2.5-Coder 1.5B خیلی خوبه. کاملا آفلاین/لوکال و توی خود browser، سریع، و دقتش هم خیلی خوب هست.
https://github.com/cfahlgren1/qwen-2.5-code-interpreter
@DevTwitter | <Mehdi Allahyari/>
https://github.com/cfahlgren1/qwen-2.5-code-interpreter
@DevTwitter | <Mehdi Allahyari/>
Forwarded from Ninja Learn | نینجا لرن
💎 چطوری مشکلات Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock رو هندل کنیم؟ 💎
توی پست قبلی درباره چند تا مشکل مثل Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock حرف زدیم. امروز میخوایم ببینیم چطوری میتونیم اینا رو توی برنامهمون هندل کنیم. اینا مشکلاتیه که میتونن عملکرد دیتابیس و اپلیکیشن رو خراب کنن، ولی با استفاده از تکنیکهای کنترل همزمانی و ایزولیشن میشه جلوی اینا رو گرفت.
1⃣ Dirty Read 💾
برای جلوگیری از Dirty Read، باید از سطح ایزولیشن مناسبی استفاده کنیم. یکی از بهترین سطوح ایزولیشن برای این کار Read Committed هست. این سطح تضمین میکنه که فقط دادههای commit شده قابل خوندن هستن.
مثال:
فرض کن توی دیتابیستون از سطح ایزولیشن Read Committed استفاده میکنی. اگه تراکنش A داره دادههایی رو آپدیت میکنه، تراکنش B تا وقتی که A کارش تموم نشده و دادهها رو commit نکرده، نمیتونه اون دادهها رو ببینه. پس از Dirty Read جلوگیری میشه.
2⃣ Non-Repeatable Read 🔄
برای جلوگیری از Non-Repeatable Read، باید سطح ایزولیشن رو به Repeatable Read تغییر بدیم. این سطح ایزولیشن تضمین میکنه که اگر یک بار دادهای رو توی تراکنش خوندیم، تا پایان تراکنش دیگه تغییر نمیکنه.
مثال:
فرض کن توی یه فروشگاه آنلاین، وقتی یه کاربر قیمت یه محصول رو چک میکنه، باید مطمئن بشی که اون قیمت تا پایان تراکنش تغییر نمیکنه. با استفاده از Repeatable Read، هر چی کاربر دید، همون میمونه.
3⃣ Phantom Read 👻
برای حل مشکل Phantom Read باید از سطح ایزولیشن Serializable استفاده کنیم. این سطح از ایزولیشن باعث میشه که نه تنها دادههای موجود، بلکه هر داده جدیدی هم تا پایان تراکنش دیده نشه.
مثال:
فرض کن یه مدیر داره گزارش تعداد کارمندای یه بخش رو چک میکنه. با سطح ایزولیشن Serializable، اگر کارمند جدیدی در طول تراکنش اضافه بشه، مدیر اون رو تا پایان تراکنش نمیبینه و از Phantom Read جلوگیری میشه.
4⃣ Deadlock 🔐
برای هندل کردن Deadlock، چند راه وجود داره:
1⃣ اجتناب از قفلهای طولانی:
تراکنشها رو سبک و سریع نگه دار تا قفلهای طولانی ایجاد نشن.
2⃣ ترتیب دسترسی یکسان:
مطمئن شو که تراکنشها به منابع به یه ترتیب دسترسی پیدا میکنن. یعنی اگر A و B هر دو به رکوردهای ۱ و ۲ نیاز دارن، هر دو اول رکورد ۱ رو قفل کنن و بعد برن سراغ رکورد ۲.
3⃣ زمانبندی دوباره تراکنشها:
میتونی از دیتابیس بخوای که اگه Deadlock تشخیص داد، یکی از تراکنشها رو ریست کنه و دوباره اجرا کنه.
مثال:
فرض کن توی اپلیکیشن مالیات دو تراکنش همزمان دارن از منابع یکسان استفاده میکنن. یکی از راههای جلوگیری از Deadlock اینه که مطمئن بشی تراکنشها به یه ترتیب مشخص به منابع دسترسی دارن، مثلاً اول رکورد ۱ رو قفل میگیرن و بعد رکورد ۲.
جمعبندی 🎯
با استفاده از سطوح ایزولیشن و یه سری تکنیکهای مدیریت تراکنش، میتونیم مشکلاتی مثل Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock رو توی دیتابیسهامون حل کنیم. اگر این نکات رو توی اپلیکیشنهاتون رعایت کنید، کارتون خیلی راحتتر و پایدارتر میشه.
امید وارم مفید بوده باشه :)
@ninja_learn_ir
توی پست قبلی درباره چند تا مشکل مثل Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock حرف زدیم. امروز میخوایم ببینیم چطوری میتونیم اینا رو توی برنامهمون هندل کنیم. اینا مشکلاتیه که میتونن عملکرد دیتابیس و اپلیکیشن رو خراب کنن، ولی با استفاده از تکنیکهای کنترل همزمانی و ایزولیشن میشه جلوی اینا رو گرفت.
1⃣ Dirty Read 💾
برای جلوگیری از Dirty Read، باید از سطح ایزولیشن مناسبی استفاده کنیم. یکی از بهترین سطوح ایزولیشن برای این کار Read Committed هست. این سطح تضمین میکنه که فقط دادههای commit شده قابل خوندن هستن.
مثال:
فرض کن توی دیتابیستون از سطح ایزولیشن Read Committed استفاده میکنی. اگه تراکنش A داره دادههایی رو آپدیت میکنه، تراکنش B تا وقتی که A کارش تموم نشده و دادهها رو commit نکرده، نمیتونه اون دادهها رو ببینه. پس از Dirty Read جلوگیری میشه.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
2⃣ Non-Repeatable Read 🔄
برای جلوگیری از Non-Repeatable Read، باید سطح ایزولیشن رو به Repeatable Read تغییر بدیم. این سطح ایزولیشن تضمین میکنه که اگر یک بار دادهای رو توی تراکنش خوندیم، تا پایان تراکنش دیگه تغییر نمیکنه.
مثال:
فرض کن توی یه فروشگاه آنلاین، وقتی یه کاربر قیمت یه محصول رو چک میکنه، باید مطمئن بشی که اون قیمت تا پایان تراکنش تغییر نمیکنه. با استفاده از Repeatable Read، هر چی کاربر دید، همون میمونه.
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
3⃣ Phantom Read 👻
برای حل مشکل Phantom Read باید از سطح ایزولیشن Serializable استفاده کنیم. این سطح از ایزولیشن باعث میشه که نه تنها دادههای موجود، بلکه هر داده جدیدی هم تا پایان تراکنش دیده نشه.
مثال:
فرض کن یه مدیر داره گزارش تعداد کارمندای یه بخش رو چک میکنه. با سطح ایزولیشن Serializable، اگر کارمند جدیدی در طول تراکنش اضافه بشه، مدیر اون رو تا پایان تراکنش نمیبینه و از Phantom Read جلوگیری میشه.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
4⃣ Deadlock 🔐
برای هندل کردن Deadlock، چند راه وجود داره:
1⃣ اجتناب از قفلهای طولانی:
تراکنشها رو سبک و سریع نگه دار تا قفلهای طولانی ایجاد نشن.
2⃣ ترتیب دسترسی یکسان:
مطمئن شو که تراکنشها به منابع به یه ترتیب دسترسی پیدا میکنن. یعنی اگر A و B هر دو به رکوردهای ۱ و ۲ نیاز دارن، هر دو اول رکورد ۱ رو قفل کنن و بعد برن سراغ رکورد ۲.
3⃣ زمانبندی دوباره تراکنشها:
میتونی از دیتابیس بخوای که اگه Deadlock تشخیص داد، یکی از تراکنشها رو ریست کنه و دوباره اجرا کنه.
مثال:
فرض کن توی اپلیکیشن مالیات دو تراکنش همزمان دارن از منابع یکسان استفاده میکنن. یکی از راههای جلوگیری از Deadlock اینه که مطمئن بشی تراکنشها به یه ترتیب مشخص به منابع دسترسی دارن، مثلاً اول رکورد ۱ رو قفل میگیرن و بعد رکورد ۲.
BEGIN TRANSACTION;
-- Lock resources in the same order
جمعبندی 🎯
با استفاده از سطوح ایزولیشن و یه سری تکنیکهای مدیریت تراکنش، میتونیم مشکلاتی مثل Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock رو توی دیتابیسهامون حل کنیم. اگر این نکات رو توی اپلیکیشنهاتون رعایت کنید، کارتون خیلی راحتتر و پایدارتر میشه.
#sql #dead_lock #programing
Forwarded from PhiloLearn | فیلولرن
دوستان اگر خواستید از ollama استفاده کنید، حتما یه نگاهی هم به open webui بندازید
یه محیط شبیه به chat gpt بهتون میده که متصل میشه به ollama روی سیستمتون
کلی قابلیت های باحال داره
و بشدت کار باهاش لذت بخشه
https://openwebui.com/
اگر لینوکس دارید احتمالا توی اتصالش با ollama مشکل خواهید داشت
یه سری به لینک های زیر بزنید:
اولی
دومی
@PhiloLearn
یه محیط شبیه به chat gpt بهتون میده که متصل میشه به ollama روی سیستمتون
کلی قابلیت های باحال داره
و بشدت کار باهاش لذت بخشه
https://openwebui.com/
اگر لینوکس دارید احتمالا توی اتصالش با ollama مشکل خواهید داشت
یه سری به لینک های زیر بزنید:
اولی
دومی
@PhiloLearn
Forwarded from DevTwitter | توییت برنامه نویسی
اگر در حال ساخت workflow های RAG یا نیاز به یک API برای استخراج متون از فایل ها و ساخت embeding هستید، میتونید از api اوپن سورسی که نوشتم استفاده کنید. از یک مدل لوکال برای ساخت embeding ها استفاده میکنه که فارسی خیلی خوبی ساپورت میکنه.
https://github.com/xmannii/Maux-API
@DevTwitter | <Mani/>
https://github.com/xmannii/Maux-API
@DevTwitter | <Mani/>
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
همچنین Perplexity توی آپدیت جدیدش جستجوی مالی رو هم اضافه کرده که شما حالا میتونید باهاش نمودارها، قیمت سهام و ... رو مشاهده و تحلیل کنید. تقریباً از همه ارزها، کریپتوها و سهامها پشتیبانی میکنه.
tweet.
hadi @geekalerts
tweet.
hadi @geekalerts
Forwarded from Syntax | سینتکس (Daimon)
درود دوستان عزیز. ما در تیممون به یک فرانت اند دولوپر نیاز داریم.
مواردی که از شما انتظار میره:
- مشتاق یادگیری و به اشتراکگذاری دانش
- آشنا با next.js و پکیج های مرسوم
- خلاق در طراحی رابط کاربری
- علاقهمند به کار تیمی و همکاری نزدیک با بکاند دولوپرها
- متعهد و مسئولیتپذیر
چه چیزی در انتظار شماست؟
- فرصت یادگیری و رشد در کنار همتیمیها
- درآمدزایی از پروژههای فریلنسری
اگه فکر میکنید تیم ما میتونه به رشد شما کمک کنه و تأثیرگذار ظاهر میشید، ما مشتاقانه منتظر شما هستیم.
اطلاعات بیشتر پیوی 🙏🏻
مواردی که از شما انتظار میره:
- مشتاق یادگیری و به اشتراکگذاری دانش
- آشنا با next.js و پکیج های مرسوم
- خلاق در طراحی رابط کاربری
- علاقهمند به کار تیمی و همکاری نزدیک با بکاند دولوپرها
- متعهد و مسئولیتپذیر
چه چیزی در انتظار شماست؟
- فرصت یادگیری و رشد در کنار همتیمیها
- درآمدزایی از پروژههای فریلنسری
اگه فکر میکنید تیم ما میتونه به رشد شما کمک کنه و تأثیرگذار ظاهر میشید، ما مشتاقانه منتظر شما هستیم.
اطلاعات بیشتر پیوی 🙏🏻
Forwarded from uncodev
آموزش گولنگ برای مهندسان Devops و SRE
در این دوره، بدون نیاز به پیشزمینه گولنگ، از ابتدا با این زبان آشنا میشوید و یاد میگیرید چگونه ابزارهای پیشرفتهای برای DevOps و SRE توسعه دهید. تمرکز اصلی دوره بر Kubernetes است و به شما میآموزد چگونه ابزارهای جدیدی برای مدیریت، اتوماسیون، و گسترش قابلیتهای Kubernetes بسازید. همچنین با توسعه ابزارهای خط فرمان، مانیتورینگ، و لود تست، فرآیندهای استقرار و مدیریت زیرساختها را بهبود خواهید داد.
https://uncodev.com/bootcamps/golang-for-devops-and-sre?ref=tg
@uncodev
@uncodev
در این دوره، بدون نیاز به پیشزمینه گولنگ، از ابتدا با این زبان آشنا میشوید و یاد میگیرید چگونه ابزارهای پیشرفتهای برای DevOps و SRE توسعه دهید. تمرکز اصلی دوره بر Kubernetes است و به شما میآموزد چگونه ابزارهای جدیدی برای مدیریت، اتوماسیون، و گسترش قابلیتهای Kubernetes بسازید. همچنین با توسعه ابزارهای خط فرمان، مانیتورینگ، و لود تست، فرآیندهای استقرار و مدیریت زیرساختها را بهبود خواهید داد.
https://uncodev.com/bootcamps/golang-for-devops-and-sre?ref=tg
@uncodev
@uncodev
Forwarded from ⚝ (ZiZiGuLu)
Telegram
Daily Contents of 'Amiria'
A curious geek with an ecocenteric mind.
I love Japan, GIS, Video techniques, Compression methods, Literature and loads of science stuff.
A software developer based in Tehran, Iran.
Send me a science-based fact and I'll be your friend: @amiria703
I love Japan, GIS, Video techniques, Compression methods, Literature and loads of science stuff.
A software developer based in Tehran, Iran.
Send me a science-based fact and I'll be your friend: @amiria703
Forwarded from Ninja Learn | نینجا لرن
دوستان اگه سوالی درمورد پستا دارید یا مطلبی رو خوب متوجه نشدید و براتون جانیفتاده حتما تو کامنتا بپرسید تا براتپن توضیح بدیم 😊
Forwarded from Yasha
اونا تموم شدن. اینا رو فک کنم حداقل ۶ ماه طول بکشه بخونم تموم شن.
من http/2 رو ۲ سال پیش خریدم، فکر میکردم باهاش میشه واقعا نسخه 2 رو یاد گرفت ولی اشتباه فکر میکردم. اول باید http 1.1 رو یاد بگیری بعدی 2 رو بخونی تازه میفهمی که داره چه مشکلاتی رو توی 1.1 حل میکنه.
من http/2 رو ۲ سال پیش خریدم، فکر میکردم باهاش میشه واقعا نسخه 2 رو یاد گرفت ولی اشتباه فکر میکردم. اول باید http 1.1 رو یاد بگیری بعدی 2 رو بخونی تازه میفهمی که داره چه مشکلاتی رو توی 1.1 حل میکنه.
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
روی سرورهای شخصیم، معمولا از این تلهها استفاده میکنم.
ابزار Ghostport برای گمراهکردن port scannerها با زبان Rust طراحی شده که با شبیهسازی serviceها به صورت fake در تمام portها و استفاده از امضای سفارشی، باعث ایجاد نتایج غلط در اسکنرها میشود.
https://github.com/vxfemboy/ghostport
@DevTwitter | <Vahid Nameni/>
ابزار Ghostport برای گمراهکردن port scannerها با زبان Rust طراحی شده که با شبیهسازی serviceها به صورت fake در تمام portها و استفاده از امضای سفارشی، باعث ایجاد نتایج غلط در اسکنرها میشود.
https://github.com/vxfemboy/ghostport
@DevTwitter | <Vahid Nameni/>
Forwarded from محتوای آزاد سهراب
Forwarded from Rust for Python developers
#Quick
اگر از
الان اومد یک کدی رو بزنم چندتا از
اگر از
vscode برای Rust استفاده میکنید حتما این extension رو نصب کنید که دستورات sql رو براتون وسط کدهای rs به خوبی highlight میکنه ( از حالت str& خالی در میاد)الان اومد یک کدی رو بزنم چندتا از
Sql Query هاش خیلی طولانی و سخت شد بدون highlight خوندنش قطعا آزار دهنده بود با سرچ به این رسیدم و بنظرم گزینه بسیار کمک کننده و عالیای هست.Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 در آینده نزدیک فروشگاه های اینترنتی, بخش گالری محصولات به صورت انیمیشنی مجهز می شوند که بتواند به صورت سه بعدی و انیمیشنی به مشتریان خود نمایش دهد و دید بهتری از محصولات داشته باشند.
@TheRaymondDev
@TheRaymondDev