Forwarded from Geek Alerts
تصویر نجومی امروز، پدیده خورشید کاذب در پارک ملی آبسیکو سوئد. این پدیده که پیراخورشید هم نامیده میشه که خورشید نزدیک به افق ایستاده باشه و نور اون از ابرهای پراکنده سیروس گذشته و به ما برسه و بلورهای یخ هوا، نور اون رو بشکنن. درنتیجه دو هاله نوری شبیه به خورشید در سمت چپ و راستش نمایان میشه.
https://apod.nasa.gov/apod/ap250215.html
hadi
📱 geekalerts
🤓 @geekalerts
https://apod.nasa.gov/apod/ap250215.html
hadi
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
بحث حریمخصوصی در اهدای استارز تلگرام به کانالها
وقتی به کانالها استار یا همون ریاکشن ستاره میفرستید که جور حمایت شما از کانالها هست میدونید که اگه تیک گزینه Show me in Top Senders رو بردارید میتونید ناشناس استار خودتون رو ارسال کنید با این حال برای کاربرها ناشناس هستید و صاحب کانال میتونه از تب کسبدرآمد کانالش ببینه شما دقیقا کی هستید که بهش استار هدیه دادید.
به تازگی هم امکان هدیه دادن استار از طرف کانالها فعال شده و صاحبان کانال میتونن در کنار دونیت کردن استار اسم کانالشون رو هم نمایش بدن، ولی اینجا هم باز امکان مشاهده اهدا کننده توسط مدیر کانال وجود داره، یعنی مدیر کانال اطلاع داره که دقیقا چه اکانتی از طرف کانال اهدا کننده استار هست و امکان لو دادن اکانت ادمین کانال شما وجود داره.
تلگرام تا این لحظه هشداری در این مورد اطلاعرسانی نکرده با این حال قبل از هدیه دادن استار به کانالها این موارد رو به خاطر داشته باشید.
tginfo
📱 geekalerts
🤓 @geekalerts
وقتی به کانالها استار یا همون ریاکشن ستاره میفرستید که جور حمایت شما از کانالها هست میدونید که اگه تیک گزینه Show me in Top Senders رو بردارید میتونید ناشناس استار خودتون رو ارسال کنید با این حال برای کاربرها ناشناس هستید و صاحب کانال میتونه از تب کسبدرآمد کانالش ببینه شما دقیقا کی هستید که بهش استار هدیه دادید.
به تازگی هم امکان هدیه دادن استار از طرف کانالها فعال شده و صاحبان کانال میتونن در کنار دونیت کردن استار اسم کانالشون رو هم نمایش بدن، ولی اینجا هم باز امکان مشاهده اهدا کننده توسط مدیر کانال وجود داره، یعنی مدیر کانال اطلاع داره که دقیقا چه اکانتی از طرف کانال اهدا کننده استار هست و امکان لو دادن اکانت ادمین کانال شما وجود داره.
تلگرام تا این لحظه هشداری در این مورد اطلاعرسانی نکرده با این حال قبل از هدیه دادن استار به کانالها این موارد رو به خاطر داشته باشید.
tginfo
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
قابلیت Deep Research به Perplexity میاد
بالاخره Perplexity داره قابلیت Deep Research Alpha رو منتشر می کنه، مشابه چیزی هست که توی Gemini و ChatGPT دیدید، یه ابزار که به کمک مدل AI با دقت بیشتر میتونه بری تحقیقات یا و نیازهایی که دارید گزارش تهیه کنه و در پایان بهتون خروجی در کنار منابع معتبر بده، فقط برای تحقیقات بزرگ نیست و سوالات شخصی رو هم میتونید ازش کمک بگیرید.
البته Perplexity به تازگی یه گزینه برای export کردن پاسخها به PDF و markdown هم اضافه کرده که برای Deep Research خیلی خوبه. این ابزار دیپریسرچ طی روزهای آینده اضافه میشه و میتونید رایگان استفاده کنید.
testingcatalog
📱 geekalerts
🤓 @geekalerts
بالاخره Perplexity داره قابلیت Deep Research Alpha رو منتشر می کنه، مشابه چیزی هست که توی Gemini و ChatGPT دیدید، یه ابزار که به کمک مدل AI با دقت بیشتر میتونه بری تحقیقات یا و نیازهایی که دارید گزارش تهیه کنه و در پایان بهتون خروجی در کنار منابع معتبر بده، فقط برای تحقیقات بزرگ نیست و سوالات شخصی رو هم میتونید ازش کمک بگیرید.
البته Perplexity به تازگی یه گزینه برای export کردن پاسخها به PDF و markdown هم اضافه کرده که برای Deep Research خیلی خوبه. این ابزار دیپریسرچ طی روزهای آینده اضافه میشه و میتونید رایگان استفاده کنید.
testingcatalog
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
امکان آپلود فایل در Gemini گوگل حالا برای تمام کاربران رایگان هست، فعلا فقط با مدل Gemini Flash 2.0 کار میکنه و فرمتهای زیر پشتیبانی میشن:
متن ساده: TXT
فایل کد شامل C, CPP, PY, JAVA, PHP, SQL و HTML
سند: DOC, DOCX, PDF, RTF, DOT, DOTX, HWP, HWPX و گوگل داکس
جدول: CSV, TSV
اکسل: XLS, XLSX و گوگل شیت
9to5google
https://gemini.google.com/
📱 geekalerts
🤓 @geekalerts
متن ساده: TXT
فایل کد شامل C, CPP, PY, JAVA, PHP, SQL و HTML
سند: DOC, DOCX, PDF, RTF, DOT, DOTX, HWP, HWPX و گوگل داکس
جدول: CSV, TSV
اکسل: XLS, XLSX و گوگل شیت
9to5google
https://gemini.google.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
ادوبی مجموعه خودش یعنی Firefly Video رو داره کامل میکنه، الان Generate Video رو داده که در واقع رقیب Sora هست و میتونه متن به ویدیو یا عکس به ویدیو تبدیل کنه. کیفیت ویدیوهایی تولیدی ۱۰۸۰ با ۲۴ فریم هست و میشه تا ۹۰ ثانیه ویدیو تولید کرد که خیلی بیشتر از ۲۰ ثانیه Sora هست.
سایت Firefly هم آپدیت شده و الان به نرمافزارهای Creative Cloud مثل Photoshop، Premiere Pro و Express هم وصل شده. تا سطحی رایگان هست ولی برای ساخت تقریبا ۲۰ تا ویدیو ۵ ثانیهای با کیفیت ۱۰۸۰ باید پلن ۱۰ دلاری فایرفلای استاندارد تهیه کنید.
https://firefly.adobe.com/
blog.adobe
📱 geekalerts
🤓 @geekalerts
سایت Firefly هم آپدیت شده و الان به نرمافزارهای Creative Cloud مثل Photoshop، Premiere Pro و Express هم وصل شده. تا سطحی رایگان هست ولی برای ساخت تقریبا ۲۰ تا ویدیو ۵ ثانیهای با کیفیت ۱۰۸۰ باید پلن ۱۰ دلاری فایرفلای استاندارد تهیه کنید.
https://firefly.adobe.com/
blog.adobe
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
این perplexity یه مدل Deep Research داده بیرون، که تا نزدیک ده دقیقه وقت میگیره جواب بده و به جاش یه مطلب رو دقیق تر با امار و رفرنس درست حسابی تحلیل میکنه تحویلت میده.
جون میده برای ریپورت و پروپوزال و …گرچه که هنوز جای کار داره ولی حداقل دیگه رفرنس سازی فیک نمیکنه
@DevTwitter | <Shana/>
جون میده برای ریپورت و پروپوزال و …گرچه که هنوز جای کار داره ولی حداقل دیگه رفرنس سازی فیک نمیکنه
@DevTwitter | <Shana/>
Forwarded from LearnPOV | لرن پی او وی (Reyhan Jhr)
Forwarded from Gopher Academy
SIMD مخفف Single Instruction, Multiple Data
(یک دستورالعمل، چندین داده) است. این یک تکنیک پردازشی است که در معماری کامپیوتر استفاده میشود و به پردازنده اجازه میدهد تا یک عملیات را همزمان روی چندین داده اجرا کند. این کار باعث افزایش کارایی و سرعت پردازش، به ویژه در عملیاتهای موازی مانند محاسبات برداری یا ماتریسی، میشود.
### توضیح بیشتر:
- Single Instruction:
یک دستورالعمل واحد به پردازنده داده میشود.
- Multiple Data:
این دستورالعمل به طور همزمان روی چندین داده (مثلاً چندین عنصر در یک آرایه) اعمال میشود.
### مثال:
فرض کنید میخواهید چهار عدد را با هم جمع کنید. در حالت عادی، پردازنده باید چهار بار عملیات جمع را انجام دهد. اما با استفاده از SIMD، میتوانید این چهار عدد را به صورت موازی و در یک عملیات جمع کنید.
### کاربرد SIMD در SwissTable:
در SwissTable، از SIMD برای بهینهسازی عملیاتهایی مانند جستجو، درج و حذف استفاده میشود. به این صورت:
- جستجو: با استفاده از SIMD، میتوان چندین کلید را به طور همزمان بررسی کرد و سرعت جستجو را افزایش داد.
- درج و حذف: عملیاتهای مرتبط با مدیریت دادهها نیز میتوانند به صورت موازی انجام شوند.
### مزایای SIMD:
1. سرعت بیشتر: انجام عملیاتها به صورت موازی باعث کاهش زمان اجرا میشود.
2. بهینهسازی مصرف انرژی: با کاهش تعداد دستورالعملها، انرژی کمتری مصرف میشود.
3. کارایی بالا: به ویژه در عملیاتهای تکراری و محاسبات سنگین، کارایی سیستم افزایش مییابد.
### معایب SIMD:
1. پیچیدگی: برنامهنویسی با SIMD نیاز به دانش خاص و توجه به جزئیات دارد.
2. وابستگی به سختافزار: برای استفاده از SIMD، پردازنده باید از این قابلیت پشتیبانی کند.
در کل، SIMD یک تکنیک قدرتمند برای افزایش سرعت و کارایی در عملیاتهای موازی است و در SwissTable نیز از آن برای بهبود عملکرد
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
(یک دستورالعمل، چندین داده) است. این یک تکنیک پردازشی است که در معماری کامپیوتر استفاده میشود و به پردازنده اجازه میدهد تا یک عملیات را همزمان روی چندین داده اجرا کند. این کار باعث افزایش کارایی و سرعت پردازش، به ویژه در عملیاتهای موازی مانند محاسبات برداری یا ماتریسی، میشود.
### توضیح بیشتر:
- Single Instruction:
یک دستورالعمل واحد به پردازنده داده میشود.
- Multiple Data:
این دستورالعمل به طور همزمان روی چندین داده (مثلاً چندین عنصر در یک آرایه) اعمال میشود.
### مثال:
فرض کنید میخواهید چهار عدد را با هم جمع کنید. در حالت عادی، پردازنده باید چهار بار عملیات جمع را انجام دهد. اما با استفاده از SIMD، میتوانید این چهار عدد را به صورت موازی و در یک عملیات جمع کنید.
### کاربرد SIMD در SwissTable:
در SwissTable، از SIMD برای بهینهسازی عملیاتهایی مانند جستجو، درج و حذف استفاده میشود. به این صورت:
- جستجو: با استفاده از SIMD، میتوان چندین کلید را به طور همزمان بررسی کرد و سرعت جستجو را افزایش داد.
- درج و حذف: عملیاتهای مرتبط با مدیریت دادهها نیز میتوانند به صورت موازی انجام شوند.
### مزایای SIMD:
1. سرعت بیشتر: انجام عملیاتها به صورت موازی باعث کاهش زمان اجرا میشود.
2. بهینهسازی مصرف انرژی: با کاهش تعداد دستورالعملها، انرژی کمتری مصرف میشود.
3. کارایی بالا: به ویژه در عملیاتهای تکراری و محاسبات سنگین، کارایی سیستم افزایش مییابد.
### معایب SIMD:
1. پیچیدگی: برنامهنویسی با SIMD نیاز به دانش خاص و توجه به جزئیات دارد.
2. وابستگی به سختافزار: برای استفاده از SIMD، پردازنده باید از این قابلیت پشتیبانی کند.
در کل، SIMD یک تکنیک قدرتمند برای افزایش سرعت و کارایی در عملیاتهای موازی است و در SwissTable نیز از آن برای بهبود عملکرد
map استفاده شده است.➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from SoniaCircuit (Sony)
الان سگارو آزاد شده
ولی پست هایی که میزنه هیچ شباهتی به سگارو قبلی نداره
ایا من دارم اشتباه میکنم یا اینکه یه نفر دیگه داره میاد تو ایکس فالس آلارم میده ؟
ولی پست هایی که میزنه هیچ شباهتی به سگارو قبلی نداره
ایا من دارم اشتباه میکنم یا اینکه یه نفر دیگه داره میاد تو ایکس فالس آلارم میده ؟
Forwarded from SoniaCircuit (Sony)
یه وب interface برای api توییتر انقدری ترسناک نیست که اینطور مطرح بشه
اون هم با اصطلاح برادرا و گونی.
اون هم با اصطلاح برادرا و گونی.
Forwarded from Geek Alerts
کوه تای (Mount Tai) توی شاندونگ چین به خاطر داشتن ۷۰۰۰ پله معروف هست، ویدیوهایی وایرال زیادی توی تیکتاک پیدا میکنید که آدمها دارن از یهجایی به بعد با دست و پا بالا میرن یا رو زمین بیهوش شدن.
بعد یه شرکت اومده پایین این پلهها پای رباتیک اجاره میده که بالا رفتن رو خیلی آسونتر میکنه، کرایش ۷۰ یوآن حدود ۹.۵ دلار هست و میگن ماه پیش ۲۰۰ نفر از این رباتها واسه بالا رفتن استفاده کردن.
وسیله ساخت یه شرکت فناوری توی شنزن به اسم Kenqing Technology هست و ۱.۸ کیلوگرم وزن داره که دور کمر و رون بسته میشه، باتریش ۵ ساعت دووم میاره، یکی از کسایی که استفاده کرده میگه حس میکنی یه نفر داره تورو از پلهها میکشه بالا.
این پاهای کمک کننده رباتیک فعلا تو فاز آزمایشی هستن ولی میخوان از ماه بعدی به تولید انبوه برسونن که احتمالا کشورهای دیگه هم در دسترس بشه. میگن خیلی هدفمون اینه برای هر کاری که پیادهروی زیاد یا بالا رفتن نیاز داره این رباتها کاربرد داشته باشه.
digitaltrends
📱 geekalerts
🤓 @geekalerts
بعد یه شرکت اومده پایین این پلهها پای رباتیک اجاره میده که بالا رفتن رو خیلی آسونتر میکنه، کرایش ۷۰ یوآن حدود ۹.۵ دلار هست و میگن ماه پیش ۲۰۰ نفر از این رباتها واسه بالا رفتن استفاده کردن.
وسیله ساخت یه شرکت فناوری توی شنزن به اسم Kenqing Technology هست و ۱.۸ کیلوگرم وزن داره که دور کمر و رون بسته میشه، باتریش ۵ ساعت دووم میاره، یکی از کسایی که استفاده کرده میگه حس میکنی یه نفر داره تورو از پلهها میکشه بالا.
این پاهای کمک کننده رباتیک فعلا تو فاز آزمایشی هستن ولی میخوان از ماه بعدی به تولید انبوه برسونن که احتمالا کشورهای دیگه هم در دسترس بشه. میگن خیلی هدفمون اینه برای هر کاری که پیادهروی زیاد یا بالا رفتن نیاز داره این رباتها کاربرد داشته باشه.
digitaltrends
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
اگر میخواید در مورد swiss map ها اطلاعات بیشتر داشته باشید این رفرنس ها به شما کمک می کندد
https://www.dolthub.com/blog/2023-03-28-swiss-map/
https://www.youtube.com/watch?v=JZE3_0qvrMg
https://abseil.io/about/design/swisstables
https://www.youtube.com/watch?v=ncHmEUmJZf4
http://graphics.stanford.edu/~seander/bithacks.html##ValueInWord
https://aras-p.info/blog/2016/08/09/More-Hash-Function-Tests/
https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
https://www.dolthub.com/blog/2023-03-28-swiss-map/
https://www.youtube.com/watch?v=JZE3_0qvrMg
https://abseil.io/about/design/swisstables
https://www.youtube.com/watch?v=ncHmEUmJZf4
http://graphics.stanford.edu/~seander/bithacks.html##ValueInWord
https://aras-p.info/blog/2016/08/09/More-Hash-Function-Tests/
https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
با پیشرفت روزافزون agent های کدنویسی هوش مصنوعی، مهندسان نرمافزار باید تواناییهای زیر را داشته باشند:
۱- توانایی بررسی سریع و دقیق کد نوشته شده توسط هوش مصنوعی
۲- توانایی توصیف مشکلات بهصورت واضح و کامل
۳- توانایی انجام همزمان چند کار و تغییر سریع بین زمینههای مختلف
خوب است که از حالا این مهارتها را تمرین کنید!
@DevTwitter | <Mehdi Allahyari/>
۱- توانایی بررسی سریع و دقیق کد نوشته شده توسط هوش مصنوعی
۲- توانایی توصیف مشکلات بهصورت واضح و کامل
۳- توانایی انجام همزمان چند کار و تغییر سریع بین زمینههای مختلف
خوب است که از حالا این مهارتها را تمرین کنید!
@DevTwitter | <Mehdi Allahyari/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
با گذاشتنِ http://r.jina.ai قبل از هر URL، محتوایِ اون صفحه رو به صورتِ مارکداون بهتون میده. مثلاً میتونید آخرین نسخهٔ مستنداتِ محصول رو به چتبات بدید تا جوابِ بهروز بده. اگر قبل از لینکِ یک PDF بگذارید متنش رو بهتون میده. رویِ بعضی از PDFهای فارسی هم کار میکنه.
@DevTwitter | <Ayub Kokabi/>
@DevTwitter | <Ayub Kokabi/>
Forwarded from جادی | Jadi
نظرتون چیه برای مدتی به شکل آزمایشی کامنتهای اینجا رو باز کنم؟ ببینیم چطور پیش میره و محتوای مفیدی برای همهمون اضافه میکنه یا نه.
Anonymous Poll
66%
موافقم، باز کنیم
18%
مخالفم، باز نکنیم
17%
نظری ندارم
Forwarded from دستاوردهای یادگیری عمیق(InTec)
چند روز قبل Elon Musk یک توییت زد که، Grok-3 بهترین AI ایی خواد بود که دیدید.
همینطوری که ملت در حالی خوشگذرانی با Gemini 2.0 Flash Thinking بودند (اتفاقاً خیلی از شرکتها هم رفتند سراغش بخصوص اونایی که در زمینه RAG کار میکنند)
نسخه Early Release مدل Grok-3 منتشر شد، و رتبه اول رو تا اینجا کار به خودش اختصاص داده
توی اکثر بنچمارکهای معروف مثل lmarena حتی اختلاف با مدل دوم حدود 20 امتیاز هست.
نظر کاربرا راجب این مدل هم بسیار مثبت هست.
پینوشت: توی تمام زمینههای lmarena رتبه اول رو داره این مدل (یادم رفت بگم)
همینطوری که ملت در حالی خوشگذرانی با Gemini 2.0 Flash Thinking بودند (اتفاقاً خیلی از شرکتها هم رفتند سراغش بخصوص اونایی که در زمینه RAG کار میکنند)
نسخه Early Release مدل Grok-3 منتشر شد، و رتبه اول رو تا اینجا کار به خودش اختصاص داده
توی اکثر بنچمارکهای معروف مثل lmarena حتی اختلاف با مدل دوم حدود 20 امتیاز هست.
نظر کاربرا راجب این مدل هم بسیار مثبت هست.
پینوشت: توی تمام زمینههای lmarena رتبه اول رو داره این مدل (یادم رفت بگم)
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
✅ انتخاب یک توزیع لینوکس ( #linux distro) مناسب برای شروع 😎
⁉️ بهترین توزیع گنو/لینوکس مناسب برای شروع ؟
🗓 جامعه :
نسخه لینوکسی که جامعه کاربری بزرکتری دارد یعنی فراوانی آموزش و رفع مشکلات بیشتر
🔥 مربی:
از اطرافیان شما #لینوکس کار هستند توزیع هایی که انها استفاده میکنند باعث میشود مشکلات شما زود تر حل شود
😎 تخصص :
چک کنید جامعه کاربری تخصص شما از کدام توزیع بیشتر استفاده میکند
🤩 نیاز خواسته:
ببینید از لینوکس چه میخواهید و نیاز شما چیست تمرکز جامعه روی نیاز شما است
💠 چند توزیع معروف که اگر سردرگم هستید فقط نصب کنید 😍
1️⃣مینت Linux Mint
2️⃣ابونتو Linux Ubuntu
3️⃣المنتری او-اس elementary OS
4️⃣منجارو Arch Manjaro
5️⃣فيدورا Fedora
⁉️ با چه توزیعی #linux شروع کردید ؟ الان با چی کار میکنید؟
⁉️ بهترین توزیع گنو/لینوکس مناسب برای شروع ؟
🗓 جامعه :
نسخه لینوکسی که جامعه کاربری بزرکتری دارد یعنی فراوانی آموزش و رفع مشکلات بیشتر
🔥 مربی:
از اطرافیان شما #لینوکس کار هستند توزیع هایی که انها استفاده میکنند باعث میشود مشکلات شما زود تر حل شود
😎 تخصص :
چک کنید جامعه کاربری تخصص شما از کدام توزیع بیشتر استفاده میکند
🤩 نیاز خواسته:
ببینید از لینوکس چه میخواهید و نیاز شما چیست تمرکز جامعه روی نیاز شما است
توصیه مهردادلینوکس:
در لینوکس دنبال ویندوز نگردید،کنترل پنلش کجاست درایو C کو ؟ رجیستری کجاست و ...
برای ویندوز وقت گذاشتید که تسلط دارید برای لینوکس هم باید وقت بگذارید
یک شبه نمیشه
از اشتباه کردن نترسید، ۱۰۰ بار ویندوز را خراب کردید دوباره نصب کردید
فقط شروع کنید ، اندروید گوشی یک لینوکسه ولی شما مسلط هستید
💠 چند توزیع معروف که اگر سردرگم هستید فقط نصب کنید 😍
1️⃣مینت Linux Mint
2️⃣ابونتو Linux Ubuntu
3️⃣المنتری او-اس elementary OS
4️⃣منجارو Arch Manjaro
5️⃣فيدورا Fedora
⁉️ با چه توزیعی #linux شروع کردید ؟ الان با چی کار میکنید؟
Forwarded from Ninja Learn | نینجا لرن
خب خب خب جلوگیری از Race Condition در جنگو با select_for_update 🔒🚀
توی این پست در مورد Race Condition صحبت کردیم و گفتیم چطور ممکنه چندتا درخواست همزمان بیان و دیتا رو خراب کنن. حالا بریم ببینیم جنگو چه ترفندهایی برای کنترل این مشکل داره و چطور میتونیم از select_for_update استفاده کنیم.
مشکل چیه؟ 🤔
فرض کن یه سیستم بانکی داری و کاربرا دارن پول جابهجا میکنن. حالا دو نفر همزمان میخوان از حسابشون پول بردارن و موجودی حساب فقط 100 تومنه. اگه این درخواستها بدون قفل کردن دیتا پردازش بشن، ممکنه هر دو برداشت موفق بشن و سیستم بدهکار بشه 😬
چطوری select_for_update مشکل رو حل میکنه؟ 🔐
وقتی از select_for_update استفاده میکنی، رکورد دیتابیس قفل میشه تا هیچ درخواست دیگهای نتونه همزمان تغییرش بده. این یعنی هر درخواستی که بعد از اولین درخواست بیاد، باید منتظر بمونه تا قفل آزاد بشه و بعد پردازش بشه.
مثال 1: جلوگیری از برداشت همزمان از حساب بانکی 🏦
✅ این کد مطمئن میشه که وقتی یه درخواست داره موجودی رو چک میکنه و کم میکنه، هیچ درخواست دیگهای همزمان وارد عمل نشه.
مثال 2: انتقال وجه بین دو حساب 💳
حالا یه چالش سختتر انتقال پول از یه حساب به حساب دیگه. باید هر دو حساب همزمان قفل بشن تا مشکلات همزمانی پیش نیاد.
✅ اینجا هر دو حساب رو قفل میکنیم تا حتی اگه دو درخواست انتقال پول به صورت همزمان بیاد، هیچکدوم نتونن وسط کار رو همدیگه تأثیر بذارن.
چندتا نکته 🚀
🔹 انتخاب نوع قفل (select_for_update(nowait=True))
اگه بخوای درخواستهای معطل رو سریع رد کنی، میتونی nowait=True بذاری که اگه رکورد قفل بود، درخواست جدید منتظر نمونه و مستقیم خطا بده.
☝️ این باعث میشه که اگه رکورد قفل باشه، جنگو بلافاصله یه DatabaseError بده و منتظر نمونه.
🔹 قفل کردن رکوردها بدون مسدود کردن خواندن (select_for_update(skip_locked=True))
اگه درخواستهای زیادی داری و نمیخوای که یک درخواست کل سیستم رو بلاک کنه، میتونی از skip_locked=True استفاده کنی که درخواستهای دیگه بتونن رکوردهای آزاد رو پردازش کنن.
☝️ این کار باعث میشه که اگه یه رکورد قفل بود، درخواست بیخیال اون رکورد بشه و فقط رکوردهایی که قفل نیستن رو انتخاب کنه.
🔹 مدیریت تایماوت قفل (set statement_timeout)
اگه نمیخوای که درخواستها مدت زیادی بلاک بشن، توی PostgreSQL میتونی یه تایماوت برای قفل تعیین کنی:
☝️ این یعنی اگه یه درخواست بیشتر از ۵ ثانیه قفل بمونه، بهش خطا داده میشه و میره بیرون.
جمعبندی ✍
select_for_update یکی از قویترین ابزارها برای جلوگیری از Race Condition توی جنگوئه. مهمترین نکاتش اینان:
✅ قفل کردن رکوردهای دیتابیس موقع آپدیت برای جلوگیری از دستکاری همزمان
✅ استفاده از nowait=True برای جلوگیری از انتظار بیش از حد
✅ استفاده از skip_locked=True برای رد کردن رکوردهای قفلشده و ادامه پردازش.
➖➖➖➖➖➖➖➖➖
توی این پست در مورد Race Condition صحبت کردیم و گفتیم چطور ممکنه چندتا درخواست همزمان بیان و دیتا رو خراب کنن. حالا بریم ببینیم جنگو چه ترفندهایی برای کنترل این مشکل داره و چطور میتونیم از select_for_update استفاده کنیم.
مشکل چیه؟ 🤔
فرض کن یه سیستم بانکی داری و کاربرا دارن پول جابهجا میکنن. حالا دو نفر همزمان میخوان از حسابشون پول بردارن و موجودی حساب فقط 100 تومنه. اگه این درخواستها بدون قفل کردن دیتا پردازش بشن، ممکنه هر دو برداشت موفق بشن و سیستم بدهکار بشه 😬
اینجا همون جاییه که select_for_update میاد وسط و دیتا رو از فاجعه نجات میده.
چطوری select_for_update مشکل رو حل میکنه؟ 🔐
وقتی از select_for_update استفاده میکنی، رکورد دیتابیس قفل میشه تا هیچ درخواست دیگهای نتونه همزمان تغییرش بده. این یعنی هر درخواستی که بعد از اولین درخواست بیاد، باید منتظر بمونه تا قفل آزاد بشه و بعد پردازش بشه.
مثال 1: جلوگیری از برداشت همزمان از حساب بانکی 🏦
from django.db import transaction
from myapp.models import Account
def withdraw_money(account_id, amount):
with transaction.atomic(): # شروع تراکنش
account = Account.objects.select_for_update().get(pk=account_id) # قفل کردن رکورد
if account.balance >= amount:
account.balance -= amount
account.save()
print("برداشت موفقیتآمیز بود!")
else:
print("موجودی کافی نیست!") # جلوگیری از برداشت بیش از حد
✅ این کد مطمئن میشه که وقتی یه درخواست داره موجودی رو چک میکنه و کم میکنه، هیچ درخواست دیگهای همزمان وارد عمل نشه.
مثال 2: انتقال وجه بین دو حساب 💳
حالا یه چالش سختتر انتقال پول از یه حساب به حساب دیگه. باید هر دو حساب همزمان قفل بشن تا مشکلات همزمانی پیش نیاد.
from django.db import transaction
from myapp.models import Account
def transfer_money(from_id, to_id, amount):
with transaction.atomic():
accounts = Account.objects.select_for_update().filter(pk__in=[from_id, to_id]).order_by("id")
sender = accounts[0]
receiver = accounts[1]
if sender.balance >= amount:
sender.balance -= amount
receiver.balance += amount
sender.save()
receiver.save()
print("انتقال وجه موفقیتآمیز بود!")
else:
print("موجودی کافی نیست!") # جلوگیری از انتقال اشتباه
✅ اینجا هر دو حساب رو قفل میکنیم تا حتی اگه دو درخواست انتقال پول به صورت همزمان بیاد، هیچکدوم نتونن وسط کار رو همدیگه تأثیر بذارن.
چندتا نکته 🚀
🔹 انتخاب نوع قفل (select_for_update(nowait=True))
اگه بخوای درخواستهای معطل رو سریع رد کنی، میتونی nowait=True بذاری که اگه رکورد قفل بود، درخواست جدید منتظر نمونه و مستقیم خطا بده.
account = Account.objects.select_for_update(nowait=True).get(pk=1)
☝️ این باعث میشه که اگه رکورد قفل باشه، جنگو بلافاصله یه DatabaseError بده و منتظر نمونه.
🔹 قفل کردن رکوردها بدون مسدود کردن خواندن (select_for_update(skip_locked=True))
اگه درخواستهای زیادی داری و نمیخوای که یک درخواست کل سیستم رو بلاک کنه، میتونی از skip_locked=True استفاده کنی که درخواستهای دیگه بتونن رکوردهای آزاد رو پردازش کنن.
account = Account.objects.select_for_update(skip_locked=True).get(pk=1)
☝️ این کار باعث میشه که اگه یه رکورد قفل بود، درخواست بیخیال اون رکورد بشه و فقط رکوردهایی که قفل نیستن رو انتخاب کنه.
🔹 مدیریت تایماوت قفل (set statement_timeout)
اگه نمیخوای که درخواستها مدت زیادی بلاک بشن، توی PostgreSQL میتونی یه تایماوت برای قفل تعیین کنی:
SET statement_timeout = '5s';
☝️ این یعنی اگه یه درخواست بیشتر از ۵ ثانیه قفل بمونه، بهش خطا داده میشه و میره بیرون.
جمعبندی ✍
select_for_update یکی از قویترین ابزارها برای جلوگیری از Race Condition توی جنگوئه. مهمترین نکاتش اینان:
✅ قفل کردن رکوردهای دیتابیس موقع آپدیت برای جلوگیری از دستکاری همزمان
✅ استفاده از nowait=True برای جلوگیری از انتظار بیش از حد
✅ استفاده از skip_locked=True برای رد کردن رکوردهای قفلشده و ادامه پردازش.
#️⃣ #python #programming #db
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from کانال مهرداد لینوکس
🔥 مناظرهٔ تاننباوم–توروالدز «LINUX منسوخ شده است»
🗓بین اندرو اس. تاننباوم، خالق سیستمعامل آموزشی مینیکس
🗓 و لینوس توروالدز، خالق هستهٔ لینوکس، بود.
💠این مناظره در گروه خبری Usenet به نام comp.os.minix در سال ۱۹۹۲ رخ داد
✅ موضوع سر معماری هستههای سیستمعامل، بهویژه مقایسهٔ هستههای یکپارچه (monolithic) و ریزهستهها (microkernel)، تمرکز داشت.
🔥 تاننباوم بحث را با استدلال اینکه طراحی هستهٔ یکپارچهٔ لینوکس از نظر مفهومی قدیمی و ریزهستهها به دلیل قابلیت حمل و پایداری، برتر هستند آغاز کرد
و گفت معماری پردازندههای x86 که لینوکس بر پایهٔ آن توسعه یافته، در آینده جای خود را به معماریهای RISC خواهد داد.
🔥 توروالدز در پاسخ، ضمن اذعان به مزایای نظری ریزهستهها، از تصمیم خود برای استفاده از هستهٔ یکپارچه دفاع کرد.
او اشاره کرد که مینیکس دارای محدودیتهایی مانند نبود پشتیبانی از چندنخی (multithreading) و هدف او از توسعهٔ لینوکس، ایجاد یک سیستمعامل کاربردی برای استفادهٔ شخصی بوده است.
✅ با گذشت زمان،
هر دو مدل هسته در حوزههای مختلف به کار گرفته شدند
منبع wikipedia
#linux
🗓بین اندرو اس. تاننباوم، خالق سیستمعامل آموزشی مینیکس
🗓 و لینوس توروالدز، خالق هستهٔ لینوکس، بود.
💠این مناظره در گروه خبری Usenet به نام comp.os.minix در سال ۱۹۹۲ رخ داد
✅ موضوع سر معماری هستههای سیستمعامل، بهویژه مقایسهٔ هستههای یکپارچه (monolithic) و ریزهستهها (microkernel)، تمرکز داشت.
🔥 تاننباوم بحث را با استدلال اینکه طراحی هستهٔ یکپارچهٔ لینوکس از نظر مفهومی قدیمی و ریزهستهها به دلیل قابلیت حمل و پایداری، برتر هستند آغاز کرد
و گفت معماری پردازندههای x86 که لینوکس بر پایهٔ آن توسعه یافته، در آینده جای خود را به معماریهای RISC خواهد داد.
🔥 توروالدز در پاسخ، ضمن اذعان به مزایای نظری ریزهستهها، از تصمیم خود برای استفاده از هستهٔ یکپارچه دفاع کرد.
او اشاره کرد که مینیکس دارای محدودیتهایی مانند نبود پشتیبانی از چندنخی (multithreading) و هدف او از توسعهٔ لینوکس، ایجاد یک سیستمعامل کاربردی برای استفادهٔ شخصی بوده است.
✅ با گذشت زمان،
هر دو مدل هسته در حوزههای مختلف به کار گرفته شدند
منبع wikipedia
#linux
Forwarded from Laravel News
Working with JSON Column Updates in Laravel https://laravel-news.com/json-column-updates
Laravel News
Working with JSON Column Updates in Laravel - Laravel News
Master Laravel's JSON column update capabilities using the arrow syntax. Learn to efficiently modify specific portions of JSON data in your database while maintaining data integrity and structure.