Forwarded from Unknown Place (Abolfazl)
اگه screen time گوشیتون زیاده یا بعضی وقت ها بی اینکه حواستون باشه چند ساعت پشت سر هم دارید با گوشی کار میکنید این برنامه کمکتون میکنه که مدیریت زمان بهتری تو استفاده از گوشی داشته باشید.
میتونید محدودیت زمانی برای برنامه ها بزارید و یه قابلیت دیگه که داره اینه که وارد هر برنامه ای که میشید اون بالای صفحه مدت استفاده اون روز از برنامه رو نشون میده
برای افزایش پروداکتیوتی پیشنهاد میشه👌
اسمش YourHour هست و نسخه پرمیومش رو میتونید از فارسروید دانلود کنید.
میتونید محدودیت زمانی برای برنامه ها بزارید و یه قابلیت دیگه که داره اینه که وارد هر برنامه ای که میشید اون بالای صفحه مدت استفاده اون روز از برنامه رو نشون میده
برای افزایش پروداکتیوتی پیشنهاد میشه👌
اسمش YourHour هست و نسخه پرمیومش رو میتونید از فارسروید دانلود کنید.
Forwarded from Linuxor ?
میدونستین Qiankun به شما این امکان رو میده که چندین اپلیکیشن مستقل وب رو داخل یک اپلیکیشن اصلی (Parent App) بارگذاری و اجرا کنید. هرکدوم از این اپلیکیشنها میتونن با فریمورکهای مختلفی مثل React، Vue، Angular یا حتی ترکیبی از اینها ساخته بشن. در واقع، Qiankun بهعنوان یک container عمل میکنه که این میکرو اپلیکیشنها رو در خودش mount میکنه.
برای اپلیکیشن های بزرگ که با چند تا فریم ورک کار میکنن خیلی جوابه در واقع Qiankun مثل یک قاب بزرگه که چند پنجره کوچیک داخلش وجود داره. هر پنجره مستقله و حتی میتونه با رنگ و طراحی خودش باشه ولی همه توی یک قاب به کاربر نشون داده میشن.
برای یادگیریش از این بخش مستندات سایتشون بخونید:
qiankun.umijs.org/guide
@Linuxor
برای اپلیکیشن های بزرگ که با چند تا فریم ورک کار میکنن خیلی جوابه در واقع Qiankun مثل یک قاب بزرگه که چند پنجره کوچیک داخلش وجود داره. هر پنجره مستقله و حتی میتونه با رنگ و طراحی خودش باشه ولی همه توی یک قاب به کاربر نشون داده میشن.
برای یادگیریش از این بخش مستندات سایتشون بخونید:
qiankun.umijs.org/guide
@Linuxor
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
باگ در sudo
هشدار CISA: باگ خطرناک در Sudo، لینوکس و یونیکس را تحت تأثیر قرار داده است! اقدام فوری تا ۲۰ اکتبر لازم است
آسیبپذیری مورد بحث با شناسه CVE-2025-32463 و امتیاز تهدید 9.3 CVSS، تمامی نسخههای Sudo پیش از 1.9.17p1 را در توزیعهای لینوکسی و سیستمهای شبهیونیکسی تحت تأثیر قرار میدهد.
طبق گزارش CISA:
بسته «Sudo حاوی یک آسیبپذیری است که به عملکردهای شخص ثالث اجازه میدهد بدون بررسی دامنه کنترل فراخوانی شوند. این آسیبپذیری به مهاجم محلی اجازه میدهد با استفاده از گزینه sudo -R (chroot) دستورات دلخواهی را با سطح دسترسی root اجرا کند، حتی اگر نام او در لیست کاربران مجاز Sudo وجود نداشته باشد.»
تأیید شده است که این آسیبپذیری روی سیستمهای دارای Ubuntu 24.04.1 (نسخههای Sudo 1.9.15p5 و 1.9.16p2) و Fedora 41 Server (Sudo 1.9.15p5) مورد سوءاستفاده قرار گرفته است. همچنین نشریه Hacker News لیستی از توزیعهای لینوکسی که در مورد این باگ هشدار امنیتی دادهاند منتشر کرده است: علاوه بر اوبونتو، این لیست شامل Alpine Linux، Amazon Linux، Debian، Gentoo و Red Hat نیز میشود.
مشاهده نسخه جاری
sudo -V
بروز رسانی :
🔵Debian/ubuntu
sudo apt install --only-upgrade sudo
🔵RHEL/CentOS
sudo yum update sudo
sudo dnf upgrade sudo
🔵 Fedora
sudo dnf upgrade sudo
⚪️ openSUSE (Leap / Tumbleweed)
sudo zypper refresh
sudo zypper update sudo
⚫️ Gentoo
sudo emerge --sync
sudo emerge --ask --verbose --update sudo
🟣 Alpine Linux
sudo apk update
sudo apk upgrade sudo
هشدار CISA: باگ خطرناک در Sudo، لینوکس و یونیکس را تحت تأثیر قرار داده است! اقدام فوری تا ۲۰ اکتبر لازم است
آسیبپذیری مورد بحث با شناسه CVE-2025-32463 و امتیاز تهدید 9.3 CVSS، تمامی نسخههای Sudo پیش از 1.9.17p1 را در توزیعهای لینوکسی و سیستمهای شبهیونیکسی تحت تأثیر قرار میدهد.
طبق گزارش CISA:
بسته «Sudo حاوی یک آسیبپذیری است که به عملکردهای شخص ثالث اجازه میدهد بدون بررسی دامنه کنترل فراخوانی شوند. این آسیبپذیری به مهاجم محلی اجازه میدهد با استفاده از گزینه sudo -R (chroot) دستورات دلخواهی را با سطح دسترسی root اجرا کند، حتی اگر نام او در لیست کاربران مجاز Sudo وجود نداشته باشد.»
تأیید شده است که این آسیبپذیری روی سیستمهای دارای Ubuntu 24.04.1 (نسخههای Sudo 1.9.15p5 و 1.9.16p2) و Fedora 41 Server (Sudo 1.9.15p5) مورد سوءاستفاده قرار گرفته است. همچنین نشریه Hacker News لیستی از توزیعهای لینوکسی که در مورد این باگ هشدار امنیتی دادهاند منتشر کرده است: علاوه بر اوبونتو، این لیست شامل Alpine Linux، Amazon Linux، Debian، Gentoo و Red Hat نیز میشود.
مشاهده نسخه جاری
sudo -V
بروز رسانی :
🔵Debian/ubuntu
sudo apt install --only-upgrade sudo
🔵RHEL/CentOS
sudo yum update sudo
sudo dnf upgrade sudo
🔵 Fedora
sudo dnf upgrade sudo
⚪️ openSUSE (Leap / Tumbleweed)
sudo zypper refresh
sudo zypper update sudo
⚫️ Gentoo
sudo emerge --sync
sudo emerge --ask --verbose --update sudo
🟣 Alpine Linux
sudo apk update
sudo apk upgrade sudo
Forwarded from نوشتههای ترمینالی
برای هر کامیت git خوبه که یه مسیج خوب بنویسیم. معمولا git commit -m میزنیم و همونجا توی ترمینال یه مسیج یک خطی مینویسیم. اما اگه بخوایم حرفهای تر عمل کنیم چی؟
یه راهش استفاده از git commit template ئه. اگر از این آپشن استفاده کنیم زمانی که git commit رو بدون -m بزنیم ادیتور باز میشه و اون تمپلیت رو به عنوان متن اولیه ما نشون میده و میتونیم روی اون تغییرات رو اعمال کنیم.
این مطلب هم آموزش فوقالعادهای برای شروع کار با کامیت مسیج ها بود. من لینک قسمت commit template ش رو گذاشتم براتون، ولی اسکرول کنید و باقی قسمت ها رو هم ببینید.
https://axolo.co/blog/p/git-commit-messages-best-practices-examples#how-to-set-up-a-git-commit-message-template
یه راهش استفاده از git commit template ئه. اگر از این آپشن استفاده کنیم زمانی که git commit رو بدون -m بزنیم ادیتور باز میشه و اون تمپلیت رو به عنوان متن اولیه ما نشون میده و میتونیم روی اون تغییرات رو اعمال کنیم.
این مطلب هم آموزش فوقالعادهای برای شروع کار با کامیت مسیج ها بود. من لینک قسمت commit template ش رو گذاشتم براتون، ولی اسکرول کنید و باقی قسمت ها رو هم ببینید.
https://axolo.co/blog/p/git-commit-messages-best-practices-examples#how-to-set-up-a-git-commit-message-template
axolo.co
Ultimate Guide to Git Commit Message Templates: Best Practices and Examples | Axolo Blog
Dive into the ultimate guide to Git commit message templates. Discover best practices for crafting clear, informative, and consistent commit messages. Explore real-world examples and learn how to improve your Git workflow and collaboration.
Forwarded from Geek Alerts
ایلان ماسک گفته ورژن Grokipedia 0.1 دو هفته دیگه منتشر میشه. هنوز اطلاعاتی رسمی از سمت تیم xAI از اینکه ماهیتش قراره چیباشه منتشر نشده. پستهایی که تو X دربارهاش منتشر شده میگه هدف اینه که گراکیپدیا بزرگترین و دقیقترین منبع اطلاعات برای انسان و هوشمصنوعی باشه.
این پلتفرم قراره از گراک برای آنالیز و صحتسنجی منابعی مثل ویکیپدیا استفاده کنه و اون رو بازنویسی کنه یا کاملتر توضیح بده. ماسک قبلا از ویکیپدیا و منبع مالی اون انتقاد کرده بود و معتقد بود که محتوای اون به چپ گرایش داره. [L]
🤓 abolfazl @geekalerts
این پلتفرم قراره از گراک برای آنالیز و صحتسنجی منابعی مثل ویکیپدیا استفاده کنه و اون رو بازنویسی کنه یا کاملتر توضیح بده. ماسک قبلا از ویکیپدیا و منبع مالی اون انتقاد کرده بود و معتقد بود که محتوای اون به چپ گرایش داره. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
نصف عمر اکثر برنامه نویس ها مشغول توسعه ERP یا نرمافزار مدیریت منابع سازمانی گذشته و توسعهاش برای هر شرکت و یا کسب و کار ها خیلی چیز پیچیده ایه؛ این پیچیدگی به قدری هزینه و زمان مصرف میکنه که قبل توسعهاش باید از خودتون بپرسید آیا واقعا نیازه خودمون بسازیمش؟
نسخه های رایگان و اوپن سورس هم وجود داره که این هزینه سنگین رو از روی دوش کسب و کارتون بر میداره یکی از اونا ErpNext هست که با پایتون نوشته شده و میتونید خیلی راحت بالا بیاریدش
دقت کنید وقتی وارد سایتش میشید تعرفه های متفاوتی داره و اون تعرفه ها بخاطر میزبانی و پشتیبانیشه؛ خودش رایگانه ولی باید self-hosted یا روی سرور شخصی خودتون بالا بیاریدش:
frappe.io/erpnext
سورس کدش:
github.com/frappe/erpnext
@Linuxor
نسخه های رایگان و اوپن سورس هم وجود داره که این هزینه سنگین رو از روی دوش کسب و کارتون بر میداره یکی از اونا ErpNext هست که با پایتون نوشته شده و میتونید خیلی راحت بالا بیاریدش
دقت کنید وقتی وارد سایتش میشید تعرفه های متفاوتی داره و اون تعرفه ها بخاطر میزبانی و پشتیبانیشه؛ خودش رایگانه ولی باید self-hosted یا روی سرور شخصی خودتون بالا بیاریدش:
frappe.io/erpnext
سورس کدش:
github.com/frappe/erpnext
@Linuxor
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
استیو جابز
در ۵ اکتبر ۲۰۱۱، جهان یکی از بزرگترین visionaries (آیندهنگران و نوآوران) زمان ما را از دست داد.
استیو جابز تنها همبنیانگذار اپل نبود؛ او پیشگامی بود که فناوری، طراحی و فرهنگ را دگرگون ساخت.
از مکینتاش تا آیپاد، از آیفون تا آیپد، جابز باور داشت که فناوری نباید فقط بهخوبی کار کند، بلکه باید حس جادویی هم داشته باشد. تمرکز بیوقفه او بر سادگی، ظرافت و تجربه کاربری، اپل را به شرکتی تبدیل کرد که تنها محصول تولید نمیکرد، بلکه صنایع کامل را تعریف میکرد.
استیو روزی گفته بود: «کسانی که بهقدری دیوانه هستند که فکر میکنند میتوانند جهان را تغییر دهند، همانهایی هستند که این کار را میکنند.»
در ۵ اکتبر ۲۰۱۱، جهان یکی از بزرگترین visionaries (آیندهنگران و نوآوران) زمان ما را از دست داد.
استیو جابز تنها همبنیانگذار اپل نبود؛ او پیشگامی بود که فناوری، طراحی و فرهنگ را دگرگون ساخت.
از مکینتاش تا آیپاد، از آیفون تا آیپد، جابز باور داشت که فناوری نباید فقط بهخوبی کار کند، بلکه باید حس جادویی هم داشته باشد. تمرکز بیوقفه او بر سادگی، ظرافت و تجربه کاربری، اپل را به شرکتی تبدیل کرد که تنها محصول تولید نمیکرد، بلکه صنایع کامل را تعریف میکرد.
استیو روزی گفته بود: «کسانی که بهقدری دیوانه هستند که فکر میکنند میتوانند جهان را تغییر دهند، همانهایی هستند که این کار را میکنند.»
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🚨 هشدار CISA: آسیبپذیری بحرانی در Sudo 🚨
آسیبپذیری جدیدی به فهرست آسیبپذیریهای فعالاً مورد سوءاستفاده (KEV) توسط CISA اضافه شد:
🔹 CVE-2025-32463
امتیاز CVSS: ۹.۳ (بحرانی)
تحتتأثیر: تمام نسخههای Sudo پیش از 1.9.17p1
پلتفرمها: تمام توزیعهای لینوکس و سیستمهای شبهیونیکس
طبق گزارش CISA:
دستور Sudo دارای یک نقص است که اجازه میدهد قابلیتهای شخص ثالث بدون بررسی دامنهی کنترل فراخوانی شوند. این آسیبپذیری به مهاجم محلی اجازه میدهد با استفاده از گزینه sudo -R (chroot) دستورات دلخواه را با سطح دسترسی root اجرا کند—even اگر در لیست sudoers نباشد.
بهرهبرداری تأیید شده در:
✔️ Ubuntu 24.04.1 (نسخههای Sudo 1.9.15p5 و 1.9.16p2)
✔️ Fedora 41 Server (Sudo 1.9.15p5)
✔️ سایر توزیعها با هشدار امنیتی: Alpine Linux، Amazon Linux، Debian، Gentoo، Red Hat
بررسی نسخه فعلی:
sudo -V
بروزرسانی فوری:
🔵 Debian / Ubuntu
sudo apt update
sudo apt install --only-upgrade sudo
🔵 RHEL / CentOS
sudo yum update sudo # نسخههای قدیمی
sudo dnf upgrade sudo # نسخههای جدید
🔵 Fedora
sudo dnf upgrade sudo
⚪️ openSUSE (Leap / Tumbleweed)
sudo zypper refresh
sudo zypper update sudo
⚫️ Gentoo
sudo emerge --sync
sudo emerge --ask --verbose --update sudo
🟣 Alpine Linux
sudo apk update
sudo apk upgrade sudo
💡 توصیه: همهی مدیران لینوکس/یونیکس باید همین حالا سیستمهای خود را بهروز کنند.
predator-os . ir
آسیبپذیری جدیدی به فهرست آسیبپذیریهای فعالاً مورد سوءاستفاده (KEV) توسط CISA اضافه شد:
🔹 CVE-2025-32463
امتیاز CVSS: ۹.۳ (بحرانی)
تحتتأثیر: تمام نسخههای Sudo پیش از 1.9.17p1
پلتفرمها: تمام توزیعهای لینوکس و سیستمهای شبهیونیکس
طبق گزارش CISA:
دستور Sudo دارای یک نقص است که اجازه میدهد قابلیتهای شخص ثالث بدون بررسی دامنهی کنترل فراخوانی شوند. این آسیبپذیری به مهاجم محلی اجازه میدهد با استفاده از گزینه sudo -R (chroot) دستورات دلخواه را با سطح دسترسی root اجرا کند—even اگر در لیست sudoers نباشد.
بهرهبرداری تأیید شده در:
✔️ Ubuntu 24.04.1 (نسخههای Sudo 1.9.15p5 و 1.9.16p2)
✔️ Fedora 41 Server (Sudo 1.9.15p5)
✔️ سایر توزیعها با هشدار امنیتی: Alpine Linux، Amazon Linux، Debian، Gentoo، Red Hat
بررسی نسخه فعلی:
sudo -V
بروزرسانی فوری:
🔵 Debian / Ubuntu
sudo apt update
sudo apt install --only-upgrade sudo
🔵 RHEL / CentOS
sudo yum update sudo # نسخههای قدیمی
sudo dnf upgrade sudo # نسخههای جدید
🔵 Fedora
sudo dnf upgrade sudo
⚪️ openSUSE (Leap / Tumbleweed)
sudo zypper refresh
sudo zypper update sudo
⚫️ Gentoo
sudo emerge --sync
sudo emerge --ask --verbose --update sudo
🟣 Alpine Linux
sudo apk update
sudo apk upgrade sudo
💡 توصیه: همهی مدیران لینوکس/یونیکس باید همین حالا سیستمهای خود را بهروز کنند.
predator-os . ir
Forwarded from DevTwitter | توییت برنامه نویسی
تا حالا به این فکر کردید که فرق بین کولیشن utf8mb4_0900_ai_ci و utf8mb4_bin دقیقا چیه؟ یا همینطور بقیه کولیشن ها؟
کولیشن utf8mb4_0900_ai_ci: کولیشن پیشفرض MySQL 8 برای utf8mb4.
معنی اسم:
0900 → بر اساس Unicode 9.0.0
ai → accent insensitive (تفاوت حروف با/بدون لهجه رو نادیده میگیره)
ci → case insensitive (تفاوت حروف بزرگ و کوچک رو نادیده میگیره)
یعنی:
'a' = 'A'
'é' = 'e'
پس برای سرچ و مقایسه، راحتتره چون نرمالسازی بیشتری میکنه.
کولیشن utf8mb4_bin: کولیشن باینری برای utf8mb4.
اینجا همهچیز دقیقا بایت به بایت مقایسه میشه.
یعنی case-sensitive و accent-sensitive:
'a' != 'A'
'é' != 'e'
معمولا برای جاهایی که شناسهها (ID، Token، UUID، Hash، آدرس والت و ...) ذخیره میشن استفاده میشه، چون اونجا نباید نرمالسازی بشه.
خلاصه:
کولیشن utf8mb4_0900_ai_ci: مناسب برای دادههای متنی کاربر (نام، توضیحات، محتوا) → جستجو راحتتر.
کولیشن utf8mb4_bin: مناسب برای دادههای حساس به حروف/بایت (شناسه، کلید، رمز، UUID، مقایسه دقیق).
یک قانون عملی:
متن قابل خواندن توسط کاربر → utf8mb4_0900_ai_ci
دادهی تکنیکال/یونیک → utf8mb4_bin
@DevTwitter | <Abbas Goudarzi/>
کولیشن utf8mb4_0900_ai_ci: کولیشن پیشفرض MySQL 8 برای utf8mb4.
معنی اسم:
0900 → بر اساس Unicode 9.0.0
ai → accent insensitive (تفاوت حروف با/بدون لهجه رو نادیده میگیره)
ci → case insensitive (تفاوت حروف بزرگ و کوچک رو نادیده میگیره)
یعنی:
'a' = 'A'
'é' = 'e'
پس برای سرچ و مقایسه، راحتتره چون نرمالسازی بیشتری میکنه.
کولیشن utf8mb4_bin: کولیشن باینری برای utf8mb4.
اینجا همهچیز دقیقا بایت به بایت مقایسه میشه.
یعنی case-sensitive و accent-sensitive:
'a' != 'A'
'é' != 'e'
معمولا برای جاهایی که شناسهها (ID، Token، UUID، Hash، آدرس والت و ...) ذخیره میشن استفاده میشه، چون اونجا نباید نرمالسازی بشه.
خلاصه:
کولیشن utf8mb4_0900_ai_ci: مناسب برای دادههای متنی کاربر (نام، توضیحات، محتوا) → جستجو راحتتر.
کولیشن utf8mb4_bin: مناسب برای دادههای حساس به حروف/بایت (شناسه، کلید، رمز، UUID، مقایسه دقیق).
یک قانون عملی:
متن قابل خواندن توسط کاربر → utf8mb4_0900_ai_ci
دادهی تکنیکال/یونیک → utf8mb4_bin
@DevTwitter | <Abbas Goudarzi/>
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
توی پروژه خودم وحشتناک کمکم کرد
چون هم سرویسای دیگه خیلی گرون بودن و هم طراحی همچنین چیزی کلی زمانو و انرژی میبرد
استفاده ازشم خیلی اسونه و برای ایرانم به خوبی کارمیکنه
چون هم سرویسای دیگه خیلی گرون بودن و هم طراحی همچنین چیزی کلی زمانو و انرژی میبرد
استفاده ازشم خیلی اسونه و برای ایرانم به خوبی کارمیکنه
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
احتمالا درمورد GeoPandas هم پست بزارم لایبری جالبیه
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
خب یکم میخوام امروز همه تجربه بدم هم بگیرم
چیزی بوده که ذهنتون رو توی این چند وقت درگیر کرده باشه؟ یا درگیرش باشید؟
چیزی بوده که ذهنتون رو توی این چند وقت درگیر کرده باشه؟ یا درگیرش باشید؟
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 ارائه دهنده هاستینگ پارس دیتا هدف حمله سایبری از نوع باج افزاری قرار گرفت.
https://www.parsdata.com/
#خبر
@TheRaymondDev
https://www.parsdata.com/
#خبر
@TheRaymondDev
Forwarded from Linuxor ?
اگه پایتون میخوای یاد بگیری و همیشه به این نتیجه میرسی که خب پایتون چی داره من یاد بگیرم؟ اینجارو ببین.
یه مجموعه بزرگ و خوبی از انواع ابزار ها و چیز های ساخته شده با پایتونه که بهت نحوه کد زدن و ایده های خوبی یاد میده
github.com/mahmoud/awesome-python-applications
@Linuxor
یه مجموعه بزرگ و خوبی از انواع ابزار ها و چیز های ساخته شده با پایتونه که بهت نحوه کد زدن و ایده های خوبی یاد میده
github.com/mahmoud/awesome-python-applications
@Linuxor
Forwarded from Linuxor ?
اگه میخوای کد فرانت بزنی و حوصله درگیری با فریم ورک های سنگین فرانت رو نداری riot رو تست کن سادگیش مثل jquery هستش ولی یه سیسیتم مدیریت UI و State خوب داره و کامپوننت بیس هم هست
مستنداتش رو از اینجا بخونید :
riot.js.org/documentation
@Linuxor
مستنداتش رو از اینجا بخونید :
riot.js.org/documentation
@Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
#کدبوک
دانشگاه MIT یه کتاب رایگان داده بیرون دربارهی مبانی (Deep Learning) که پر از نکتهست
توش همه چی هست: از ریاضیات DL گرفته تا روشهای آموزش مدل، شبکههای CNN، شبکههای گرافی (GNN) و حتی ترنسفورمرها!
هم تئوری داره، هم کد، هم اسلاید — یعنی هر چی لازمه یه مهندس هوش مصنوعی واقعی شی.
لینک دانلود اینجاست:
https://udlbook.github.io/udlbook/
* همچنین فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter | <Mohsen Rad/>
دانشگاه MIT یه کتاب رایگان داده بیرون دربارهی مبانی (Deep Learning) که پر از نکتهست
توش همه چی هست: از ریاضیات DL گرفته تا روشهای آموزش مدل، شبکههای CNN، شبکههای گرافی (GNN) و حتی ترنسفورمرها!
هم تئوری داره، هم کد، هم اسلاید — یعنی هر چی لازمه یه مهندس هوش مصنوعی واقعی شی.
لینک دانلود اینجاست:
https://udlbook.github.io/udlbook/
* همچنین فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter | <Mohsen Rad/>
Forwarded from Golden Code (علی 🇨🇴)
در بسیاری از پروژهها وقتی داخل یک database transaction هستیم، نیاز داریم بعد از ذخیرهی موفق دیتاها یک Event اجرا کنیم (مثل ارسال ایمیل، ثبت لاگ یا بروزرسانی سرویس خارجی).
اما اگه Event قبل از commit اجرا بشه و transaction به هر دلیلی rollback بشه، یک ناسازگاری بزرگ به وجود میاد:
کاربر ایمیل "ثبت موفق" دریافت میکنه، در حالیکه دیتایی ذخیره نشده.
سرویس خارجی بروزرسانی میشه، در حالیکه دیتابیس شما تغییر نکرده.
🔴 این یعنی Event شما از وضعیت واقعی دیتابیس عقب میمونه.
📌 راهحل لاراول براش:
لاراول برای این سناریو یک راهحل خیلی تمیز ارائه داده:
کافیه Event شما این اینترفیس رو پیادهسازی کنه:
وقتی این Event رو dispatch کنید:
لاراول تضمین میکنه که اجرای Event فقط بعده موفقیت کامل transaction و commit نهایی اتفاق بیفته.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1974077531943838164?t=ZlSaB6_aM-qXwNDa_ttadw&s=35
اما اگه Event قبل از commit اجرا بشه و transaction به هر دلیلی rollback بشه، یک ناسازگاری بزرگ به وجود میاد:
کاربر ایمیل "ثبت موفق" دریافت میکنه، در حالیکه دیتایی ذخیره نشده.
سرویس خارجی بروزرسانی میشه، در حالیکه دیتابیس شما تغییر نکرده.
🔴 این یعنی Event شما از وضعیت واقعی دیتابیس عقب میمونه.
📌 راهحل لاراول براش:
لاراول برای این سناریو یک راهحل خیلی تمیز ارائه داده:
کافیه Event شما این اینترفیس رو پیادهسازی کنه:
use Illuminate\Contracts\Events\ShouldDispatchAfterCommit;
class OrderCreated implements ShouldDispatchAfterCommit
{
public $order;
public function __construct($order)
{
$this->order = $order;
}
}
وقتی این Event رو dispatch کنید:
event(new OrderCreated($order));
لاراول تضمین میکنه که اجرای Event فقط بعده موفقیت کامل transaction و commit نهایی اتفاق بیفته.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1974077531943838164?t=ZlSaB6_aM-qXwNDa_ttadw&s=35
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
Laravel Tip 🚀
Yesterday I talked about the DB::afterCommit, on the same topic, if you want to dispatch events only after the DB transaction has been committed, you can do it by making your Event class implement the Illuminate\Contracts\Events\ShouldDispatchAfterCommit…
Yesterday I talked about the DB::afterCommit, on the same topic, if you want to dispatch events only after the DB transaction has been committed, you can do it by making your Event class implement the Illuminate\Contracts\Events\ShouldDispatchAfterCommit…
❤1
Forwarded from محتوای آزاد سهراب (Sohrab)
دیروز یک پستی توی توییتر زده شد که حساب پارچ داخلش منشن شده بود، من پاسخ مستقیم ندادم ولی خب یک سری چیزارو توی ماستادونم نوشتم.
https://mastodon.bsd.cafe/@sohrab/115322490638333343
اینطور که معلوم شده جوامع خارجی هم از دست DHH و کاراش شاکیان :))
@SohrabContents
https://mastodon.bsd.cafe/@sohrab/115322490638333343
اینطور که معلوم شده جوامع خارجی هم از دست DHH و کاراش شاکیان :))
@SohrabContents
BSD.cafe Mastodon Portal
Sohrab Behdani :freebsd: (@[email protected])
A user on Twitter, or X as it's called now, posted something saying: "Parch Linux is a stupid project. Period."
Then, when someone asked for their reason, they replied:
"A useless project driven by the ego of its creator. Look at what DHH has done with…
Then, when someone asked for their reason, they replied:
"A useless project driven by the ego of its creator. Look at what DHH has done with…