Forwarded from Linuxor ?
نصب macOS روی لینوکس کار راحتی نیست و با همه سیستما خوب جواب نمیده و حتی ممکنه با kernel panic و boot loop مواجه بشین ابزار OSX-KVM خیلی از مشکلات رایج Hackintosh و VM قدیمی رو حل کرده.
با این ابزار میتونی آخرین نسخه macOS رو روی لینوکس داشته باشی و اپلیکیشنها و تستها رو بدون مک واقعی اجرا کنی. یه تجربه smooth و خوب میده!
دستورات نصب رو دونه به دونه کپی پیست کنید:
github.com/kholia/OSX-KVM
@Linuxor
با این ابزار میتونی آخرین نسخه macOS رو روی لینوکس داشته باشی و اپلیکیشنها و تستها رو بدون مک واقعی اجرا کنی. یه تجربه smooth و خوب میده!
دستورات نصب رو دونه به دونه کپی پیست کنید:
github.com/kholia/OSX-KVM
@Linuxor
🔶 حمله گسترده به زنجیره تأمین NPM: سرقت مخفیانه ارزهای دیجیتال از طریق تغییر آدرسها
هکرها موفق شدهاند به حساب NPM یک توسعه دهنده خوشنام دسترسی پیدا کنند و نسخههای آلودهای از بسته های محبوب را منتشر کنند. این اقدامات منجر به آلوده شدن ۱۸ بسته کاربردی شامل debug و chalk شدهاند. این بستهها مجموعاً میلیاردها بار در هفته دانلود میشوند.
بدافزار جاسازی شده در این بسته ها به صورت خاص برای هدف گیری برنامههای Web3 توسعه داده شدهاند. با دسترسی به context اجرای جاوااسکریپت در کیفپولهای مرورگر (مانند MetaMask)، این بدافزار قادر است تراکنشها را مخفیانه تغییر دهد تا وجوه به آدرسهای مهاجم منتقل شود .
هکرها از طریق یک کمپین فیشینگ پیشرفته که از ایمیلهای با دامنه جعلی (مثل support@npmjs.help) استفاده شده، توانسته اند اعتبار نگه دارندگان بستهها را سرقت کنند و نسخههای مخرب را منتشر کنند.
زیرا آلودگی در زمان نصب بسته اتفاق میافتد، توسعه دهندگانی که این بسته های دست کاری شده را نصب کنند، در معرض خطر هستند. حمله از طریق دستکاری تراکنش ها در Web3 کیف پول های نرم افزاری انجام میشود و تنها با استفاده از کیف پول های سخت افزاری (hardware wallets) که آدرس مقصد را مستقل نمایش میدهند، میتوان تا حد زیادی در امان بود.
پ.ن : اگر از کیف پول سخت افزاری با تأیید واضح (clear signing) استفاده میکنید که با دقت آدرس مقصد را قبل از امضا بررسی کنید. این روش، تا حد زیادی ایمن است و اگر از کیف پول نرمافزاری استفاده میکنید: از انجام تراکنشهای on-chain خودداری کنید تا خطر را کاهش دهید.
و اطلاعات دیگر:
https://jdstaerk.substack.com/p/we-just-found-malicious-code-in-the
#خبر
@TheRaymondDev
هکرها موفق شدهاند به حساب NPM یک توسعه دهنده خوشنام دسترسی پیدا کنند و نسخههای آلودهای از بسته های محبوب را منتشر کنند. این اقدامات منجر به آلوده شدن ۱۸ بسته کاربردی شامل debug و chalk شدهاند. این بستهها مجموعاً میلیاردها بار در هفته دانلود میشوند.
بدافزار جاسازی شده در این بسته ها به صورت خاص برای هدف گیری برنامههای Web3 توسعه داده شدهاند. با دسترسی به context اجرای جاوااسکریپت در کیفپولهای مرورگر (مانند MetaMask)، این بدافزار قادر است تراکنشها را مخفیانه تغییر دهد تا وجوه به آدرسهای مهاجم منتقل شود .
هکرها از طریق یک کمپین فیشینگ پیشرفته که از ایمیلهای با دامنه جعلی (مثل support@npmjs.help) استفاده شده، توانسته اند اعتبار نگه دارندگان بستهها را سرقت کنند و نسخههای مخرب را منتشر کنند.
زیرا آلودگی در زمان نصب بسته اتفاق میافتد، توسعه دهندگانی که این بسته های دست کاری شده را نصب کنند، در معرض خطر هستند. حمله از طریق دستکاری تراکنش ها در Web3 کیف پول های نرم افزاری انجام میشود و تنها با استفاده از کیف پول های سخت افزاری (hardware wallets) که آدرس مقصد را مستقل نمایش میدهند، میتوان تا حد زیادی در امان بود.
پ.ن : اگر از کیف پول سخت افزاری با تأیید واضح (clear signing) استفاده میکنید که با دقت آدرس مقصد را قبل از امضا بررسی کنید. این روش، تا حد زیادی ایمن است و اگر از کیف پول نرمافزاری استفاده میکنید: از انجام تراکنشهای on-chain خودداری کنید تا خطر را کاهش دهید.
و اطلاعات دیگر:
https://jdstaerk.substack.com/p/we-just-found-malicious-code-in-the
#خبر
@TheRaymondDev
❤1👍1
🔶 یکی از چیزهایی که بیشتر در مورد Inertia.js به آن افتخار میکنم، نحوه مدیریت به روزرسانیهای asset است. وقتی شما یک باندل جاوا اسکریپت جدید را منتشر می کنید، سرور در درخواست بعدی این تغییر را تشخیص میدهد و به فرانت اند میگوید که به جای یک بازدید SPA، یک بارگذاری کامل صفحه انجام دهد تا assets به صورت خودکار به روزرسانی شوند. ما هش فعلی asset را در هر درخواست پیگیری میکنیم و اگر تغییر کند، سرور یک پاسخ 409 conflict بر میگرداند.
چیزی که واقعاً جالب است این است که این هش در state تاریخچه نیز ذخیره میشود و بنابراین اگر به عقب برگردید و assets شما با چیزی که در یک درخواست قبلی استفاده شده مطابقت نداشته باشد، این مکانیزم یک بارگذاری تازه از سرور را اعمال میکند. این یعنی دادههای سرور و props کلاینت هرگز از هماهنگی خارج نمی شوند.
#توییت
@TheRaymondDev
چیزی که واقعاً جالب است این است که این هش در state تاریخچه نیز ذخیره میشود و بنابراین اگر به عقب برگردید و assets شما با چیزی که در یک درخواست قبلی استفاده شده مطابقت نداشته باشد، این مکانیزم یک بارگذاری تازه از سرور را اعمال میکند. این یعنی دادههای سرور و props کلاینت هرگز از هماهنگی خارج نمی شوند.
#توییت
@TheRaymondDev
🔶 بسیاری از مهندسان ارشد و مدیران از این می ترسند که حقوق بالاتر، گزینه های جابجایی شغلی را محدود کند. نظر من این است...
بله، جبران خدمات بیشتر (حقوق بالاتر) یعنی گزینه های کمتری برای انتخاب خواهید داشت، اما «کمتر» به معنای «هیچ» نیست. تا زمانی که بتوانید تأثیر قابل اندازه گیری نشان دهید، همیشه در هر سطح حقوقی فرصت هایی وجود خواهد داشت.
شرکتها زمانی خوب پرداخت میکنند که باور داشته باشند شما میتوانید تحولی ایجاد کنید.
به همین دلیل ساختن سابقه کاری قوی و ارائه نتایج ملموس بسیار مهم است. در سطوح بالاتر، تأثیر شما باید دقیق و شفاف باشد و مستقیماً با یکی از این موارد هم راستا شود: صرفهجویی در درآمد، کاهش زمان، توسعه تیم یا ساخت سیستمها.
اگر سابقه قوی نداشته باشید، احتمالاً در موقعیت فعلی گیر میکنید.
همچنین، با کمتر شدن گزینه های جابجایی، احتمالاً مدت طولانی تری در یک شرکت میمانید. پس هنگام انتخاب شرکت بعدی باید دقت بیشتری داشته باشید.
از آنجایی که استخدام یک مهندس یا مدیر ارشد هزینه قابلتوجهی برای شرکت دارد، فرآیند انتخاب بسیار سخت گیرانه است و داشتن چندین شغل کوتاهمدت در سطح ارشد میتواند یک علامت خطر باشد.
هر چه در مسیر شغلی بالاتر میروید، تمرکز بر انتخابهای درست اهمیت بیشتری پیدا میکند. محیط هایی را انتخاب کنید که در آن شکوفا شوید، نه صرفاً دوام بیاورید. اشکالی ندارد برای یک جابجایی درست زمان بگذارید، اما مطمئن شوید این تغییر با تخصص شما همسو است.
هرچه بالاتر میروید، باید روی نقاط قوت خود بیشتر سرمایهگذاری کنید تا تأثیرتان چندبرابر شود.
@TheRaymondDev
بله، جبران خدمات بیشتر (حقوق بالاتر) یعنی گزینه های کمتری برای انتخاب خواهید داشت، اما «کمتر» به معنای «هیچ» نیست. تا زمانی که بتوانید تأثیر قابل اندازه گیری نشان دهید، همیشه در هر سطح حقوقی فرصت هایی وجود خواهد داشت.
شرکتها زمانی خوب پرداخت میکنند که باور داشته باشند شما میتوانید تحولی ایجاد کنید.
به همین دلیل ساختن سابقه کاری قوی و ارائه نتایج ملموس بسیار مهم است. در سطوح بالاتر، تأثیر شما باید دقیق و شفاف باشد و مستقیماً با یکی از این موارد هم راستا شود: صرفهجویی در درآمد، کاهش زمان، توسعه تیم یا ساخت سیستمها.
اگر سابقه قوی نداشته باشید، احتمالاً در موقعیت فعلی گیر میکنید.
همچنین، با کمتر شدن گزینه های جابجایی، احتمالاً مدت طولانی تری در یک شرکت میمانید. پس هنگام انتخاب شرکت بعدی باید دقت بیشتری داشته باشید.
از آنجایی که استخدام یک مهندس یا مدیر ارشد هزینه قابلتوجهی برای شرکت دارد، فرآیند انتخاب بسیار سخت گیرانه است و داشتن چندین شغل کوتاهمدت در سطح ارشد میتواند یک علامت خطر باشد.
هر چه در مسیر شغلی بالاتر میروید، تمرکز بر انتخابهای درست اهمیت بیشتری پیدا میکند. محیط هایی را انتخاب کنید که در آن شکوفا شوید، نه صرفاً دوام بیاورید. اشکالی ندارد برای یک جابجایی درست زمان بگذارید، اما مطمئن شوید این تغییر با تخصص شما همسو است.
هرچه بالاتر میروید، باید روی نقاط قوت خود بیشتر سرمایهگذاری کنید تا تأثیرتان چندبرابر شود.
@TheRaymondDev
❤4
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بزرگترین حملهی supply-chain تاریخ دیروز اتفاق افتاد.
با یه ایمیل فیشینگ ساده به حسابهای اصلی دسترسی گرفتند و نسخههای آلوده منتشر شد.
تو متن نوشته اگه احراز هویتت رو آپدیت نکنی حسابت لاک میشه و تمام، تارگت کلیک کرد.
باید به همه چیز شک داشت مگه اینکه خلافش ثابت بشه.
@DevTwitter | <Sabber/>
با یه ایمیل فیشینگ ساده به حسابهای اصلی دسترسی گرفتند و نسخههای آلوده منتشر شد.
تو متن نوشته اگه احراز هویتت رو آپدیت نکنی حسابت لاک میشه و تمام، تارگت کلیک کرد.
باید به همه چیز شک داشت مگه اینکه خلافش ثابت بشه.
@DevTwitter | <Sabber/>
🔥2
Forwarded from Golden Code (@lix)
گاهی در API یا فرمها نیاز داری مطمئن بشی یک آرایه ورودی دقیقا شامل کلیدهایی باشه که انتظار داری. از لاراول 10.9 به بعد میتونی بهراحتی با rule جدید required_array_keys این کارو انجام بدی.
📌 مثال:
فرض کن ورودیه API به این شکل میاد:
برای اینکه مطمئن بشیم حتما کلیدهای name و email داخل user وجود دارن، کافیه اینطوری بنویسیم:
حالا اگه یکی از این کلیدها در ورودی نبود، لاراول خطا میده.
این روش خیلی تمیزتر و کوتاهتر از نوشتن چندین rule برای هر فیلده و مخصوصا در API ها بسیار کاربردیه.
#Laravel #لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/PovilasKorop/status/1964988360193155402?s=35
📌 مثال:
فرض کن ورودیه API به این شکل میاد:
{
"user": {
"name": "Ali",
"email": "ali@example.com"
}
}برای اینکه مطمئن بشیم حتما کلیدهای name و email داخل user وجود دارن، کافیه اینطوری بنویسیم:
$request->validate([
'user' => ['required', 'array', 'required_array_keys:name,email'],
]);
حالا اگه یکی از این کلیدها در ورودی نبود، لاراول خطا میده.
این روش خیلی تمیزتر و کوتاهتر از نوشتن چندین rule برای هر فیلده و مخصوصا در API ها بسیار کاربردیه.
#Laravel #لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/PovilasKorop/status/1964988360193155402?s=35
👍7
🔶 یاد گرفتن HTML، CSS و JavaScript و ساختن لندینگ پیج رو توسعه دهنده وب صدا نزنید.
#توییت
@TheRaymondDev
#توییت
@TheRaymondDev
💅6👍5
🔶 گرافیک با درایور Nouveau برای لینوکس منیت لگ زیاد داره.
جرات نمی کنم نسخه ۵۷۵ انویدیا رو نصب کنم.
برای نسخه 575 مشکل پرش تصویر و شناسایی نشدن مانیتور دوم داره...
#لینوکس
@TheRaymondDev
جرات نمی کنم نسخه ۵۷۵ انویدیا رو نصب کنم.
برای نسخه 575 مشکل پرش تصویر و شناسایی نشدن مانیتور دوم داره...
#لینوکس
@TheRaymondDev
👍3
Forwarded from Pink Orca | پینک اورکا
رابط کاربری بهتر.pdf
24.8 MB
📚 رابط کاربری بهتر (ترجمه فارسی کتاب Refactoring UI)
💢 کتابی بسیار ارزشمند برای بهبود تواناییهاتون در زمینه طراحی رابط کاربری.
✍️ توسط آدام واتان که بیشتر بخاطر توسعهٔ Tailwind CSS دوستداشتنی میشناسیمش نوشته شده و سیدایوب کوکبی عزیز حسابی زحمت کشیده و به فارسی ترجمه کرده این اثر رو.
#کتاب #طراحی_وب #فرانت_اند #رابط_کاربری
~> @PinkOrca | آزاد بیندیشیم 💼
💢 کتابی بسیار ارزشمند برای بهبود تواناییهاتون در زمینه طراحی رابط کاربری.
✍️ توسط آدام واتان که بیشتر بخاطر توسعهٔ Tailwind CSS دوستداشتنی میشناسیمش نوشته شده و سیدایوب کوکبی عزیز حسابی زحمت کشیده و به فارسی ترجمه کرده این اثر رو.
#کتاب #طراحی_وب #فرانت_اند #رابط_کاربری
~> @PinkOrca | آزاد بیندیشیم 💼
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 رابط کاربری گرافیکی زبان GO
نه فریم ورک الکترون است و نه از زبان HTML, CSS, JavaScript استفاده شده است.
#go
@TheRaymondDev
نه فریم ورک الکترون است و نه از زبان HTML, CSS, JavaScript استفاده شده است.
#go
@TheRaymondDev
👍6
🔶 براساس اعلام مایکروسافت، این شرکت هزینهی ثبتنام ۱۹ دلاری مایکروسافت استور را بهصورت کامل برای توسعهدهندگان حذف کرد و به توسعه دهندگان اجازه میدهد اپلیکیشن خود را رایگان در مایکروسافت استور ثبت و منتشر کنند.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Windows Developer Blog
Free developer registration for individual developers on Microsoft Store
We’re excited to share that individual developers can now publish apps to the Microsoft Store without paying any onboarding fees — and this new experience is now globally available in nearly 200 markets worldwide. Developers will no longer need a
❤1
Forwarded from Linuxor ?
🥴11
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 قسمت جدید طراحی سایت شرکتی با لاراول ۱۲ منتشر شد.
۹- ایجاد خدمات ما
قیمت دوره با تخفیف ۴۰ درصد : ۹۰۰,۰۰۰ تومان
https://rayium.ir/course/?p=1613
#لاراول
@TheRaymondDev
۹- ایجاد خدمات ما
قیمت دوره با تخفیف ۴۰ درصد : ۹۰۰,۰۰۰ تومان
https://rayium.ir/course/?p=1613
#لاراول
@TheRaymondDev
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 قسمت جدید طراحی سایت شرکتی با لاراول ۱۲ منتشر شد.
۱۰- ایجاد درباره ما
قیمت دوره با تخفیف ۴۰ درصد : ۹۰۰,۰۰۰ تومان
https://rayium.ir/course/?p=1613
#لاراول
@TheRaymondDev
۱۰- ایجاد درباره ما
قیمت دوره با تخفیف ۴۰ درصد : ۹۰۰,۰۰۰ تومان
https://rayium.ir/course/?p=1613
#لاراول
@TheRaymondDev
🔥3
Forwarded from Golden Code (علی 🇨🇴)
گاهی اوقات میخوای برای یک فیلد چندین حالت معتبر تعریف کنی، طوری که فقط یکی ازونا پاس بشه، نه همه با هم.
لاراول از نسخههای جدید متود Rule::anyOf() رو معرفی کرده که این نیاز رو خیلی تمیز حل میکنه.
📌 مثال :
کاربر میتونه برای تماس یا ایمیل بده یا شماره موبایل.
✅ اگه ایمیل معتبر وارد بشه → اوکی
✅ اگه شماره موبایل معتبر وارد بشه → اوکی
❌ اگه هیچکدوم درست نباشه → خطای ولیدیشن
مزیتهاش چیه؟
تمیزتر و قابلخواندنتر از شرطهای پیچیده
کاربردی برای ورودیهایی که میتونن فرمتهای متفاوت داشته باشن (مثل کد ملی یا پاسپورت، کارت بانکی یا شبا و …)
با Rule::anyOf() میتونی ولیدیشنهای انعطافپذیر بسازی، بدون نیاز به شرطگذاریهای اضافی و کدهای شلوغ.
#Laravel #لاراول
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/PovilasKorop/status/1966051846386012636?t=Erp47hWetRxKXZ7pKJ_GSA&s=3
لاراول از نسخههای جدید متود Rule::anyOf() رو معرفی کرده که این نیاز رو خیلی تمیز حل میکنه.
📌 مثال :
کاربر میتونه برای تماس یا ایمیل بده یا شماره موبایل.
use Illuminate\Validation\Rule;
$request->validate([
'contact' => [
Rule::anyOf([
['email'],
['regex:/^09\d{9}$/'], // شماره موبایل ایران
])
]
]);
✅ اگه ایمیل معتبر وارد بشه → اوکی
✅ اگه شماره موبایل معتبر وارد بشه → اوکی
❌ اگه هیچکدوم درست نباشه → خطای ولیدیشن
مزیتهاش چیه؟
تمیزتر و قابلخواندنتر از شرطهای پیچیده
کاربردی برای ورودیهایی که میتونن فرمتهای متفاوت داشته باشن (مثل کد ملی یا پاسپورت، کارت بانکی یا شبا و …)
با Rule::anyOf() میتونی ولیدیشنهای انعطافپذیر بسازی، بدون نیاز به شرطگذاریهای اضافی و کدهای شلوغ.
#Laravel #لاراول
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/PovilasKorop/status/1966051846386012636?t=Erp47hWetRxKXZ7pKJ_GSA&s=3
X (formerly Twitter)
Povilas Korop | Laravel Courses Creator & Youtuber (@PovilasKorop) on X
Laravel tip.
Need to validate multiple validation rule sets where only one needs to pass?
Use `Rule::anyOf()` to create flexible validation that accepts different valid formats for the same field.
Link to the docs: https://t.co/HNJmi1nbjq
#practicalLaravelDocs
Need to validate multiple validation rule sets where only one needs to pass?
Use `Rule::anyOf()` to create flexible validation that accepts different valid formats for the same field.
Link to the docs: https://t.co/HNJmi1nbjq
#practicalLaravelDocs
❤6
🔶 چند وقتی است که در گروه های تولید دوره دانشجویار پست هایی می خونم که دانشجویان از دوره های فعلی که بدون مفاهیم پایه و صفر تا صد دوره کامل تولید نمیشن, شکایت دارند.
واقعیت اینه به عنوان مدرس دوره صفر تا صد و غیره ... شعار تبلیغاتی بیش نیست و صرفا برای جذب مخاطب دوره بکار می رود.
چیزی به نام دوره کامل نداریم.
دوره ای که تولید میشه مثلا در طراحی قالب فروشگاهی با ووکامرس سعی می کنیم المان یا ویجت هایی پیاده سازی کنیم که شلوغ نباشه و هم زمان دوره اضافه نکند یعنی اینکه دوره کمترین زمان تولید بشه مثلا زیر ۲۰ ساعت باشه و اگر به دوره های خارجی یه نگاهی بندازیم می ببینید که مدرسان سعی می کنن دوره ها کمتر از ۱۵ ساعت تولید کنن و سرعت ویدئو رو بالا ببرن و باعث میشه دانشجو یادگیری رو ترک نکند.
چون دانشجویان حوصله تماشای دوره های بالای ۱۵ ساعت ندارن و وقت کافی برای یادگیری ندارن و بنابراین نمیشه المان با ویجت های اضافی باعث افزایش زمان دوره میشه رو در پروژه پیاده سازی کرد و خودت به عنوان دانشجو این چیزی در دوره یاد گرفتید, المان یا ویجت های اضافی پیاده سازی کنید.
به عنوان مدرس فقط دوره پروژه محور تولید می کنم و درگیر مفاهیم پایه نمیشم و چون واقعا بهش نمی رسم و زمان زیادی می ببره. دانشجویی که بخواد مفاهیم پایه یاد بگیره می تونه سایت ها یا یوتیوب پیگیری کنه و از مدرسی که دوره پروژه محور تولید می کنه انتظار زیادی نداشته باشد.
@TheRaymondDev
واقعیت اینه به عنوان مدرس دوره صفر تا صد و غیره ... شعار تبلیغاتی بیش نیست و صرفا برای جذب مخاطب دوره بکار می رود.
چیزی به نام دوره کامل نداریم.
دوره ای که تولید میشه مثلا در طراحی قالب فروشگاهی با ووکامرس سعی می کنیم المان یا ویجت هایی پیاده سازی کنیم که شلوغ نباشه و هم زمان دوره اضافه نکند یعنی اینکه دوره کمترین زمان تولید بشه مثلا زیر ۲۰ ساعت باشه و اگر به دوره های خارجی یه نگاهی بندازیم می ببینید که مدرسان سعی می کنن دوره ها کمتر از ۱۵ ساعت تولید کنن و سرعت ویدئو رو بالا ببرن و باعث میشه دانشجو یادگیری رو ترک نکند.
چون دانشجویان حوصله تماشای دوره های بالای ۱۵ ساعت ندارن و وقت کافی برای یادگیری ندارن و بنابراین نمیشه المان با ویجت های اضافی باعث افزایش زمان دوره میشه رو در پروژه پیاده سازی کرد و خودت به عنوان دانشجو این چیزی در دوره یاد گرفتید, المان یا ویجت های اضافی پیاده سازی کنید.
به عنوان مدرس فقط دوره پروژه محور تولید می کنم و درگیر مفاهیم پایه نمیشم و چون واقعا بهش نمی رسم و زمان زیادی می ببره. دانشجویی که بخواد مفاهیم پایه یاد بگیره می تونه سایت ها یا یوتیوب پیگیری کنه و از مدرسی که دوره پروژه محور تولید می کنه انتظار زیادی نداشته باشد.
@TheRaymondDev
👍6👎2