Pishro App
Open in Telegram
از دنیای صفر و یک 👨💻 @imanborumand_ir Website: https://pishroapp.net
Show more253
Subscribers
No data24 hours
No data7 days
+230 days
Posts Archive
253
متأسفانه و در کمال ناباوری به دلیل تحریمهای روسیه از سمت ایالات متحده آمریکا، لینوس تروالدز در اقدامی عجیب تمامی مشارکت کنندههای روسی کرنل رو از لیست مشارکتکننده ها حذف کرد:
🔗 https://www.phoronix.com/news/Linus-Torvalds-Russian-Devs
اوپن سورسی که اوپن نیست!
منبع SohrabContents
👾 @pishroapp
253
🔥 بدون شک یکی از مهمترین بخش های هر سیستمی بخش اعتبار سنجی داده ها هست
توی لاراول هم همونطور که میدونید شما میتونید درخواست ها رو به چندین روش اعتبار سنجی کنید
نکته ای که هست اگر دقت کرده باشین توی لاراول اگر چند فیلد داشته باشید و کاربر همه اونها رو با هم اشتباه پر کنه همه بررسی و خطای همه فیلد ها برمیگرده
💡 حالا شما میتوانید با استفاده از دو روش زیر کاری کنید که در صورتی که اعتبارسنجی اولین خطا رو دریافت کرد خطا رو برگردونه
اگر از validate استفاده میکنید:
$request->validate([
'title' => 'bail|required|unique:posts|max:255',
'body' => 'required',
]);
با استفاده از bail میتونید به لاراول بگید اولین خطا رو دریافت کرد خطا رو برگردونه و اینطور دیگه لیستی از خطا ها برنمیگرده
اگر از FormRequest هم استفاده میکنید می تونید از خاصیت زیر توی FormRequest خودتون استفاده کنید:
protected $stopOnFirstFailure = true;
به اینصورت دیگه با دریافت اولین خطای اعتبارسنجی #لاراول نتیجه رو برمیگردونه
👾 @pishroapp253
نسخه جدید Next.js 15 اومده!
@next/codemod CLI
بهروز رسانی بدون دردسر!
به راحتی به آخرین نسخههای Next.js و React منتقل شو!
Async Request APIs (Breaking)
بیدردسرتر از همیشه!
گام به جلو در راستای یک مدل رندرینگ و کشینگ سادهتر.
Caching Semantics (Breaking)
کشینگ دیگه به عنوان پیشفرض نیست!
درخواستهای fetch، GET Route Handlers و روت کلاینت دیگه کش نمیشن!
React 19 Support
همیشه بهروز!
پشتیبانی از React 19 و بهبود هایدریشن!
Turbopack Dev (Stable)
دنده پنج رو بزن!
بهبود عملکرد و ثبات در زمان توسعه. ظاهرا توربو میخواد کار کنه اینبار
Static Route Indicato
چراغ سبز یا قرمز!
شناسایی مسیرهای استاتیک و داینامیک برای بهینهسازی سریعتر! اینم فیچر جذابی به نظر میرسه ولی باید تست بشه که چقدر عمل میکنه
unstable_after API (Experimental)
کارها رو بعد از دریافت رسپانس انجام بده!
با after() کارهای لازم رو بعد از ارسال پاسخ انجام بده و معطل نکن!
instrumentation.js API (Stable)
مشاهده بهتر چرخه عمر سرور.
برای نظارت بر عملکرد سرور از این API استفاده کن!
Enhanced Forms (next/form)
فرمهای هوشمند!
فرمهایی که خودشون کارها رو پیشدستی میکنن و بدون کد نویسی اضافه بهینه میشن!
next.config: TypeScript support for next.config.ts
تنظیمات با TypeScript!
حالا میتونی تنظیمات Next.js رو با TypeScript بنویسی.
Self-hosting Improvements
کنترل بیشتر!
کنترل بهتری روی هدرهای Cache-Control.
Server Actions Security
امنیت بهبود یافته!
Bundling External Packages (Stable)
مدیریت پکیج های خارجی راحتتر!
گزینههای جدید برای مدیریت پکیج ها در App و Pages Router.
ESLint 9 Support
پشتیبانی از ESLint 9 برای کدهایی با کیفیت بالاتر.
Development and Build Performance
زمانهای بیلد و Fast Refresh سریعتر!
منبع: DevTwitter
👾 @pishroapp
253
خوب دوستان همونطور که میدونید و با #git کار کردید مرج کردن و ریبیس کردن دو روش محبوب برای اعمال تغییرات از یک شاخه به شاخه دیگر هستن. که هر دوی آنها در نهایت به یک نتیجه میرسن!
اما این دو تغییراتی دارند که گاهی وقتا ممکنه حتی توی سوالات مصاحبه از شما پرسیده بشه
اما این تفاوت ها چیه؟
❌ وقتی شما از Merge استفاده میکنید، تاریخچه تغییرات به همان شکلی که رخ داده حفظ میشه و یک کامیت مرج به تاریخچه اضافه میشه که نشان میده دو شاخه با هم ترکیب شدهاند.
🧩 اما وقتی Rebase میکنید، تاریخچه تغییرات بازنویسی میشه و کامیتها به صورت خطی و مرتب روی شاخه مقصد اعمال میشوند.
👶 بصورت کلی Merge تاریخچه شاخهها رو حفظ میکنه که ممکن هست تاریخچه پروژه شامل چند شاخه و پیچیدگی باشه، اما Rebase تاریخچه رو تمیز و خطی نگه میداره که خواندن و دنبال کردن رو آسانتر میکنه.
👶 البته باید بگم که Rebase به دلیل بازنویسی تاریخچه میتونه خطرناک باشه، بهخصوص اگر روی شاخههای مشترک یا عمومی انجام بشه.
که ممکنه باعث ایجاد تناقضاتی بشه که حلشون مشکل باشه و اذیت کنه. والبته Merge این مشکل رو نداره چونکه تاریخچه رو تغییر نمیده.
✅ ما زمانی از Merge استفاده میکنیم که بخوایم تاریخچه کامل تغییرات رو حفظ کنیم. و زمانی از Rebase استفاده میکنیم که یه تاریخچه تمیز و بدون شاخههای اضافی مد نظرمون باشه.
👾 @pishroapp
253
#اوبونتو، توزیع محبوب لینوکس؛ بیستساله شد.
این توزیع، در اکتبر ۲۰۰۴ توسط «مارک شاتلورث» و بر پایه «دبیان گنو/لینوکس» با هدف تبدیل شدن به یک سیستمعامل همگانی دسکتاپ، ارائه شد.
🔥 در حال حاضر این توزیع انتخاب اول بسیاری افراد هم برای دسکتاپ و هم برای سروره.
⚙ تولدش مبارک!
#ubuntu #linux
👾 @pishroapp
253
🔥 سلام دوستان تو ORM #لاراول یه متد هست بنام tap()
🔥 این متد به شما این امکان رو میده که بدون شکستن جریان عملیات زنجیرهای (chaining)، وضعیت یک کوئری یا کالکشن رو در وسط اون مشاهده و بررسی کنید.
برای مثال، ممکنه بخواید نتیجه یک کوئری رو تو یه نقطه خاص ببینید یا اون رو ثبت کنید، بدون اینکه روند اجرا رو متوقف کنید.
این کار به شما کمک میکنه تا راحتتر بتونید جریان کد و دادهها رو مشاهده کنید.
به صورت زیر هم میتونید از tap() استفاده کنید:
User::where('active', 1)
->tap(function ($query) {
Log::debug($query->toSql(), $query->getBindings());
})
->get();
🏴☠️ یه نکته هم بگم اینکه فرق tap() با enableQueryLog اینه که این متد فقط یک query خاص رو تو یه نقطه خاص لاگ میگیره و لاگ گیری دقیقتری به شما میده
#laravel
👾 @pishroapp253
☄️2️⃣0️⃣0️⃣
۲۰۰ تا شدنمون مبارک😍
مرسی که بهم اعتماد میکنید
سعی میکنم روز به روز مطالب جدید تر و بهتری بذارم⭐️
253
سلام دوستان
🔤🔤🔤 یه ویژگی جدید تو php8.4 اضافه شده بنام Instance Method Chaining Without Parentheses
اما هدف این ویژگی چیه؟
⚡️ هدف این ویژگی ساده کردن نوشتن کد هست وقتی که داریم از method chaining استفاده میکنیم.
این یعنی چی؟
ببینید همونطور که میدونیم تا قبل از PHP 8.4، برای ایجاد یک نمونه از یک کلاس و فراخوانی متدهای آن، باید از پرانتزها برای شیء تازهساختهشده استفاده میکردید تا متدها را زنجیرهسازی کنید.
مثال:
$name = (new ReflectionClass($objectOrClass))->getShortName();
ولی حالا تو php 8.4 به این صورت میشه:
$name = new ReflectionClass($objectOrClass)->getShortName();
و دیگه نیازی به استفاده از پرانتر نیست
🔥 خوب این ویژگی به سادگی و خوانایی کد اضافه میکنه و پیچیدگی رو کمتر میکنه
#php
👾 @pishroapp253
⭕️ جستجوی خطی (Linear Search) چیست؟ با Linear Search بیشتر آشنا شویم
💡الگوریتمهای جستجو، تکنیکهایی هستند که برای یافتن اطلاعات یا دادهها در میان مجموعهای از دادهها استفاده میشوند.
در این مقاله ما به توضیح جستجوی خطی میپردازیم و در مقالات آتی سعی خواهم کرد شما را با دیگر انواع جستجو آشنا کنم.
🌐 https://pishroapp.net/article/169
👾 @pishroapp
253
من بیش از ۱۵ سال هست برنامه نویسی میکنم، از فریلنسری و پروژهای شروع کردم و الان هم دارم باهاش زندگی میکنم.
بدون شک برنامه نویسی یک شغل سخت و پر از چالش هست و هیچوقت متوجه نشدم که چرا یک عده برای کسب درآمد با تیترهای آنچنانی و وسوسه برانگیز فقط به فکر جیب خودشون هستند که بله با برنامه نویسی تمام دنیا رو بخر!
واقعا این درست نیست
شما وقتی برنامه نویس بشی باید مدام ورزش کنی، مدام مقاله بخونی، مدام ذهنت درگیر باشه، تا حدود زیادی از اجتماع دور میشی، مدام باید تکنولوژی های جدید رو یاد بگیری و هزار مدام دیگه که نیاز به ذهن بشدت خستگی ناپذیر داره اون هم توی ایران و شرایط کنونی که هیچ چیزی درست نیست
از اون طرف کارفرمای نامتوجه که واقعا فک میکنن کد زدن مثل علی بابا و چراغ جادو هست که میگی کنجد کنجد باز شو و یهو کد تولید میشه!
من مدتهاست به هرکی میخواد برنامه نویس بشه اول جنبه هایی رو میگم که متوجه بشه امثال محسن مدحج و... که با فروش آرزو پول حرام به جیب میزنن دروغ میگن.
واقعا نکنید اینکارو
آرزو نفروشید
بازارهای پردآمد دیگه ای هم هست که خیلی بهتر هست. و حتی نیاز به ساعتها مداوم نشستن نداره.
امیدوارم بزودی ریشهی این تبلیغات فیک برچیده بشه
👾 @pishroapp
253
سلام بچه ها
💧 یه ریپوی مفید که میتونید کلی آموزش برنامه نویسی پیدا کنید البته آموزش به زبان فارسی هم هست
https://github.com/EbookFoundation/free-programming-books?tab=readme-ov-file
👾 @pishraopp
253
🤖ظاهراً رباتهای اپتیموس در رویداد اخیر تسلا توسط انسانها کنترل میشدند
🔹در رویداد «We, Robot» #تسلا، گروهی از رباتهای انساننما اپتیموس حضور داشتند که برای مهمانان نوشیدنی سرو میکردند و با آنها مشغول بازی و صحبت میشدند اما عجیب این بود که این رباتها میتوانستند با دیگران حرف بزنند. به نظر میرسد این رباتها یک دستیار انسانی از راه دور نیز داشتهاند.
🔹یکی از حاضران رویداد متوجه شده در برخی موارد، انسانی از راه دور اپتیموس را کنترل میکند. «آدام جوناس»، تحلیلگر مورگان استنلی، نیز میگوید رباتهای تسلا «به tele-ops (مداخله و کمک انسانی) متکی بودند.» دلایل آشکاری برای این ادعا وجود دارد؛ برای مثال رباتها همه صداهای متفاوتی داشتند یا اینکه پاسخهای آنها فوری بود و صدا نیز با حرکاتشان دقیقاً مطابق بود.
🔹البته به نظر نمیرسد تسلا تمام تلاشش را برای پنهانکردن این امر کرده باشد تا همه فکر کنند رباتهای #اپتیموس کاملاً مستقل عمل میکنند. به گفته Jalopnik وقتی شخصی از ربات تسلا پرسید هوش مصنوعی چقدر در کنترل آن دخالت دارد، اپتیموس گفت: «شاید کمی.» مطمئناً اگر هوش مصنوعی مسئول کنترل ربات باشد، چنین پاسخی نمیداد. همچنین ربات دیگری به یکی از حاضران گفت: «امروز، یک انسان کمکم میکند.» و اضافه کرد کاملاً مستقل نیست.
#ایلان_ماسک
👾 @pishroapp
253
♨️فروشگاههای اینترنتی بدون اینماد به پلیس امنیت اقتصادی معرفی میشوند
به گفته «وحید مجید»، رئیس پلیس فتا فراجا، سایتهایی که نماد اعتماد الکترونیکی یا همان «اینماد» ندارند و فعالیت اقتصادی میکنند، به پلیس امنیت اقتصادی معرفی خواهند شد.
به گزارش روابطعمومی سازمان نظام صنفی رایانهای کشور، رئیس پلیس فتا فراجا درباره فروشگاههایی که بدون داشتن اینماد کالا خریدوفروش میکنند، گفت:
«پلتفرمهای آنلاینی که فعالیت اقتصادی میکنند ملزم به داشتن اینماد هستند. وزارت صمت، بهعنوان صادرکننده نماد اعتماد الکترونیکی، باید حسن انجام فعالیت آنها را ضمانت کند. ما هم در پلیس فتا سایتهایی را که اینماد ندارند ولی فعالیت اقتصادی انجام میدهند، به پلیس امنیت اقتصادی معرفی میکنیم.»#ایران 🔸🔸🔸 👾 @pishroapp
253
بچهها، تا حالا براتون پیش اومده که توی پروژههاتون یه کامیت یا تغییر خاص از یه شاخه دیگه رو بخواید ولی نمیخواید کل شاخه رو ادغام کنید و همه تغییراتش رو بیارید؟
مثلاً یه باگ رو توی شاخه اصلی فیکس کردید و میخواید فقط همون فیکس رو توی یه شاخه دیگه که دارین روش کار میکنید اعمال کنید، بدون اینکه کل تغییرات شاخه اصلی به شاخه شما منتقل بشه؟
⭐️ اینجاست که یه قابلیت خیلی جذاب به اسم چری پیک (Cherry-Pick) تو گیت به کمکتون میاد. این قابلیت به شما اجازه میده که فقط یک کامیت خاص رو از شاخه دیگه بردارید و روی شاخه فعلیتون اعمال کنید، بدون اینکه نیازی به ادغام کل شاخه باشه.
👩🚀 چجوری ازش استفاده کنیم؟
خیلی ساده، با این دستور:
git cherry-pick <commit-hash>
🚀 چرا این قابلیت عالیه؟
این قابلیت فوقالعاده به شما کمک میکنه که تغییرات مورد نظرتون، مثل یه فیکس باگ یا یه ویژگی کوچک رو بدون آوردن همه تغییرات شاخه منبع، به شاخه خودتون اضافه کنید. این یعنی شما میتونید فقط همون چیزی که لازم دارید رو به پروژهتون بیارید و نیازی نیست بقیه تغییرات شاخه رو که ممکنه ناسازگار باشن، قبول کنید.
🧬 یه نکته حرفهای:
چری پیک کردن خیلی به درد این میخوره که بخواید تغییرات کوچیک یا فیکسهایی رو به نسخههای قدیمیتر پروژهتون برگردونید، بدون اینکه همه تغییرات جدید رو به اون نسخهها منتقل کنید. این کار بهتون انعطاف زیادی میده توی مدیریت پروژه و رفع مشکلات.
#git
👾 @pishroapp253
🛸 ابزار های هوش مصنوعی برای توسعه دهنده ها!
1. GitHub Copilot: دستیار کدنویسی که به شما در نوشتن کدهای بهتر و سریعتر کمک میکند.
2. TensorFlow و PyTorch: برای توسعه مدلهای یادگیری عمیق.
3. Kite: یک افزونهای که پیشنهادات هوشمندانه کد را ارائه میدهد.
👾 @pishroapp
253
🔔❄️ کدام یک از گزینههای زیر به بهترین شکل تفاوت بین OAuth 2.0 و OpenID رو بیان میکنه؟
253
تایم لاین انتشار #php 8.4
نسخه 8.4 زبان برنامه نویسی PHP در نوامبر سال جاری میلادی منتشر میشه
@pishroapp
253
بچه ها توی #لاراول اگر شما یکسری seed دارید که میخواید وقتی مایگریت رو رفرش کردن seed ها هم ران بشن میتونید با دستور زیر همراه Refresh کردن مایگریشن ها این کار رو انجام بدین
php artisan migrate:refresh --seed
این میاد اول #دیتابیس رو تازه سازی میکنه و بعد seed ها رو ران میکنه
#laravel
👾 @pishroapp