Pishro App
145 subscribers
258 photos
50 videos
5 files
215 links
از دنیای صفر و یک



👨‍💻 @imanborumand_ir


Website: https://pishroapp.net
Download Telegram
سال 1990 بود که HTML به دنیا معرفی شد

در سال 1994 عزیز دل CSS به جهان معرفی شد تا دردسرهای HTML را حل کنند و عملا مشکلات HTML حل شود

در سال 1995 باز دیدن روی وب هیچ کاری نمیشه کرد، لذا JavaScript متولد شد

در سال 2006 باز با به دنیا آمدن JQuery توانستند جلوی خودکشی برنامه نویسها را بگیرند وگرنه اون 3 تا داشتند ملت را دیوانه میکردند

در سال 2010 باز Web Developer ها در نزدیکی سکته بودند که Angular JS به بازار آمد تا اندکی از میزان درد و خونریزی کاسته شود

در سال 2013 کل آنچه گفتیم تا الان بدرد نخور شده بود، لذا React به بازار آمد بلکی باهاش بشود اندکی درست کار کرد

در سال 2014 بود که Vuejs آمد چون ملت از React هم خسته شده بودند

در سال 2016 یکدفعه Angular به بازار عرضه شد و ملت مسلمان و غیر مسلمان با خود گفتند : اینه !. دیگه خلاص شد - این آخرین فریم ورک و تمام کننده همه چیز است، برای همیشه راحت شدیم

در سال 2017 آمدند WASM را آوردند بلکه مشکلات سرعت و امنیت و منابع و سختی یادگیری و ... را که همه موارد بالا برای بشریت درست کرده بودند را حل کنند !

در سال 2019 باز svelte آمد ، شاید که بتوان بی دردسر در Front کار کردن اندکی واقعی شود

باز در همان 2019 ، دیدن نمیشه که یکسری از بالاییها را بندازند سطل آشغال که، لذا React Hooks آمد تا کار کردن با React امکان پذیر بماند

باز در 2020 ، Vue Composition آمد تا اگر کسی دید React Hooks نمی تواند جواب باشد، از طریق آن و در فریم ورک دیگر مشکلاتش را حل کند

در 2020 ، سعی شد با HTMX هم تلاشهایی بشود بلکی مشکلات همه اینها یک طوری حل شود

در 2021 ، باز React Suspense را آوردند، باشد که بتواند با React و داسئانهایش ادامه داد

در 2023 هم svelte Runes آمد تا گند کاریهای svelte لاپوشانی شود

هم اکنون در 2024 ، همچنان JQuery در 75 درصد از بسترهای وب مورد استفاده می باشد و بقیه هم فقط در حال افزایش پیچیدکی و دردسر هستند !!DevTwitter

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
3
💧 آموزش استفاده از #Nginx به عنوان پراکسی معکوس (Reverse Proxy)


💜 پراکسی معکوس به‌عنوان واسطه‌ای بین کاربران و سرورها عمل می‌کند. در حالی که یک پراکسی معمولی درخواست‌های مشتری را به اینترنت ارسال می‌کند، پراکسی معکوس درخواست‌ها را از اینترنت به سرورهای پس‌زمینه منتقل می‌کند.

درک چگونگی استفاده از Nginx به‌عنوان یک پراکسی معکوس می‌تواند عملکرد خدمات را به‌طور چشمگیری بهینه کند و مدیریت سیستم را بهبود بخشد.


➡️ https://pishroapp.net/article/165



👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍1
😁 داشتم یه مقاله در مورد اینکه کدوم #سیستم_عامل برای توسعه مناسب تره میخوندم به این تصویر برخوردم


جالب بود در نوع خودش 😁


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
😁41
🔰بهترین وب‌سایت ها برای دسترسی به عکس های PNG

انتخاب بهترین وبسایت برای دانلود عکس های PNG به نیاز و سلیقه شما بستگی داره. با این حال، در اینجا چند مورد از محبوب ترین و معتبرترین گزینه ها رو به شما معرفی خواهم کرد: منبع: studio_amozesh


▪️ Stickpng.com
▫️ Totalpng.com
▪️ pngmart.com
▫️ Pngall.com
▪️ Pngwing.com
▫️ Cleanpng.com
▪️ Pngegg.com
▫️ Pngtree.com

#معرفی_سایت


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Pishro App
🛸 بچه ها میخام یه مسابقه به مناسبت روز برنامه نویس(هرچند میدونم با تاخیر) بزارم

جایزه نفر برتر هم یک میلیون تومان هست موافق هستید؟ ⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️
بچه ها #مسابقه از این قراره

میزکارِ من

⚡️ شما تصاویر میزکارتون رو میفرستید و بعد بین تصاویر ارسالی، بهترین میزکار(از لحاظ جذابیت، شیک بودن، تمیزبودن) به نظرسنجی گذاشته میشه و توسط کاربران بهترین میزکار انتخاب میشه


من باید یه ربات برای ارسال تصاویر آماده کنم که باتوجه به اینکه سرم شلوغه یه چند روز طول میکشه پس تا اون موقع یه تصویر زیبا از میزکارتون داشته باشید😁

جایزه ی نفر اول هم یک میلیون تومان هست همونطور که گفتم


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
📱 نمره بالای هوش مصنوعی جدید OpenAI در تست IQ

📑 یه شبکه عصبی جدید به اسم o1 از OpenAI ساخته شده که اخیراً توی ChatGPT 4.0 و یک بات دیگه هم ادغام شده. این هوش مصنوعی توی تست IQ عملکرد خیره‌کننده‌ای داشته و تونسته به 25 تا از 35 سؤال درست جواب بده، حتی بهتر از خیلی از نتایج انسانی!

▪️این تست با همکاری اعضای Mensa (جامعه‌ای از افرادی با IQ بالا) طراحی شده و سؤال‌ها هم کاملاً جدید بودن، یعنی o1 از قبل آموزشی درباره‌شون ندیده بود، که این کار رو جذاب‌تر می‌کنه. RoidBest

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Pishro App
‼️ میدونیم که توی #لاراول بصورت پیشفرض فیلدهای created_at و updated_at برای ذخیره سازی زمان ایجاد و بروزرسانی ردیف های جداول هستند اما خوب ممکنه شما بخواید به دلایلی از اسامی دیگه ای استفاده کنید، مثلا به جای created_at از create_time استفاده کنید ❤️ میتونید…
🔥گاهی تو #لاراول میخواید یه فیلد بعد از ذخیره دیگه قابل ویرایش نباشه

شما میتونید از طریق مدل اینکار رو انجام بدین

🔥 فرض کنید میخاید قابلیت بروزرسانی ایمیل کاربر رو مسدود کنید، اینکار رو میتونید بصورت زیر انجام بدین:

🔘لاراول بالاتر از ۹

use Illuminate\Database\Eloquent\Casts\Attribute;
 
class User extends Model
{
protected function email(): Attribute
{
return Attribute::make(
set: fn ($value, $attributes) => $attributes['email'] ?? $value,
);
}
}

🔘لاراول کمتر از ۹
class User extends Model
{
public function setEmailAttribute($value)
{
if (isset($this->attributes['email']) && ! is_null($this->attributes['email'])) {
return;
}
$this->attributes['email'] = $value;
}
}

⚡️ توی این روش اگر اشتباهاً جایی هم بخواید ایمیل رو در طول توسعه بروز کنید مانع میشه.

#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Pishro App
‼️ میدونیم که توی #لاراول بصورت پیشفرض فیلدهای created_at و updated_at برای ذخیره سازی زمان ایجاد و بروزرسانی ردیف های جداول هستند اما خوب ممکنه شما بخواید به دلایلی از اسامی دیگه ای استفاده کنید، مثلا به جای created_at از create_time استفاده کنید ❤️ میتونید…
⚡️ بچه ها میدونید که توی #لاراول primary key بصورت پیشفرض id در نظر گرفته میشه و خوب ممکنه شما به هر دلیلی اسم کلید اصلی رو یه چیز دیگه بذارید یا حتی در طول توسعه کلید رو به دلایلی تغییر بدین

توی Eloquent لاراول یه متد هست بنام whereKey() که میاد و با توجه به کلید اصلی شما لیستی از آیتم هایی رو که بهش میدین رو جستجو میکنه

روش کار بصورت زیر هست:

$users = User::whereKey([1,2,3])->get()


💜 خوب این بصورت پیشفرض id رو در نظر میگیره
اما اگه توی مدل $primaryKey رو چیز دیگه ای تنظیم کرده باشین دیگه خودش بر اساس اون جستجو میکنه👍

#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
یه توزیع Real Time از لینوکس داریم به اسم RTLinux که توی سیستم هایی که نیاز به پاسخگویی سریع و دقیق دارن استفاده میشه


توی صنعت خیلی از سیستم عامل های Real Time استفاده میشه، مثلا یه ماشین رو درنظر بگیرید که روی حالت رانندگی خودکاره این ماشین در لحظه داره اطلاعات محیط رو از سنسور های مختلفی که داره پردازش میکنه، یهو یه مانع جلوش ظاهر میشه این ماشین باید توی اون لحظه ترمز بگیره اصلا مهم نیست سیستم عامل چه فرایند دیگه ای رو داره اون لحظه اجرا میکنه


اگه سیستم عامل Real Time نباشه میگه حالا جناب سیستم ترمز یه لحظه صبر کن کار سنسور پردازش تصویر تموم شه بعد تو کارتو شروع کن، توی این تایم حیاتی ممکنه کلی اتفاق بد برای سرنشین های ماشین بیفته.

کرنل #لینوکس برای استفاده عام ساخته شده و Real Time نیست اما RTLinux این ویژگی رو بهش اضافه میکنه.Linuxor

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
⚡️ یه چیز جالب وجود داره و اینه که میشه از ایموجی ها به عنوان سلکتور CSS استفاده کرد :)
frontcode01


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2
تاحالا براتون پیش اومده یه کامیتی بزنید رو پروژتون و بعد کامیت  نیاز به یه تغییر خیلی کوچیک تو پروژه باشه؟

اینجور مواقع شما دیگه نمیخواید یه کامیت جدید بزنید و دلتون میخواد که همین تغییر کوچیک رو روی کامیت قبلیتون بزنید

خب اگه همچین چیزی براتون پیش اومد میتونید با کامند
git commit –amend

هر تغییری که دادید رو روی کامیت قبلیتون ثبت کنید

⭐️ اگه هم خواستید پیام کامیت قبلی رو ادیت کنید باز میتونید از فلگ m استفاده کنید به این صورت
git commit --amend -m “this fixes the previous oopsies”

اطلاعات بیشتر :
https://smartlogic.io/blog/git-commit-amend/

#trick
#git

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
91
📱 حقیقتی عجیب اما واقعی؛ هر متن ۱۰۰ کلمه‌ای نیاز به سه بطری نیم لیتری آب داره!

▪️وقتی از چت‌بات ChatGPT استفاده می‌کنید، یادتون باشه علاوه بر برق، این هوش مصنوعی آب هم مصرف می‌کنه. مثلاً نوشتن یه متن ۱۰۰ کلمه‌ای می‌تونه تا سه بطری آب نیم‌لیتری آب مصرف کنه.

▪️طبق تحقیقاتی که دانشگاه کالیفرنیا ریورساید انجام داده و واشنگتن پست منتشر کرده، استفاده از هوش مصنوعی هزینه‌های زیادی داره، از جمله مصرف آب.

▪️میزان مصرف آب به محل مراکز داده بستگی داره. مثلاً در تگزاس، تولید یه ایمیل ۱۰۰ کلمه‌ای حدود ۲۳۵ میلی‌لیتر آب مصرف می‌کنه، ولی این عدد در واشنگتن به ۱۴۰۸ میلی‌لیتر می‌رسه، یعنی تقریباً سه بطری آب!


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Pishro App
⚡️ بچه ها میدونید که توی #لاراول primary key بصورت پیشفرض id در نظر گرفته میشه و خوب ممکنه شما به هر دلیلی اسم کلید اصلی رو یه چیز دیگه بذارید یا حتی در طول توسعه کلید رو به دلایلی تغییر بدین توی Eloquent لاراول یه متد هست بنام whereKey() که میاد و با توجه…
بچه ها تو #لاراول ۱۱.۲۳ متد findOrFail() به Eloquent Collectionاضافه شده

‼️ با این متدِ جدید که اضافه شده میتونید به راحتی روی کالکشن هایی که از دیتابیس دارید برای جستجوی مدل خاصی عملیات انجام بدین

نمونه های زیر رو ببینید:

$users = User::get();
// [User(id: 1), User(id: 2)]
 
$users->findOrFail(1);
// User
 
$user->findOrFail([]);
// []
 
$user->findOrFail([1, 2]);
// [User, User]
 
$user->findOrFail(3);
// ModelNotFoundException: 'No query results for model [User] 3'
 
$user->findOrFail([1, 2, 3]);
// ModelNotFoundException: 'No query results for model [User] 3'

همونطور که میبینید اگر هم نتیجه ای یافت نکنه، یه اکسپشن برمیگردونه

#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
سلام بچه ها

اگر #وردپرس کار هستید و دنبال کار هستید
یه موقعیت شعلی برای وردپرس توی تهران، سمت توحید

یکی از دوستان من هست اگه مایل بودین رزومه بفرستید

کار حضوری هست، تمام وقت
و حقوق توافقی

سایتشون هم یه فروشگاه فروش محصولات بهداشتی هست

دوستان حقوق تو رنج ۲۵ تا ۳۰ هست
تعطیلی ۲ روز اخر هفته
ساعت کاری از ۹ تا ۶


میتونید به آی دی زیر پیام بدین
@Shoaib_rastin


#موقعیت_شغلی
👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
Pishro App
بچه ها تو #لاراول ۱۱.۲۳ متد findOrFail() به Eloquent Collectionاضافه شده ‼️ با این متدِ جدید که اضافه شده میتونید به راحتی روی کالکشن هایی که از دیتابیس دارید برای جستجوی مدل خاصی عملیات انجام بدین نمونه های زیر رو ببینید: $users = User::get(); // [User(id:…
⚡️ بچه ها توی Eloquent  #لاراول یه متد داریم بنام  toBase

کار این متد چیه؟

در حالت عادی query زیر رو در نظر بگیرید:
$orders = Order::all();

خوب اینجا لاراول میاد و اشیای کلاس مدل را برای هر رکورد آماده می‌کنه و اگر حجم داده ها بالا باشه این باعث میشه که حافظه بشدت درگیر بشه!

‼️ اما راه حل چیه؟

🛸 اینجا میتونیم از toBase استفاده کنیم!
بصورت زیر:
$orders = Order::toBase()->get();


اما تفاوتش با حالت اول چیه؟؟؟؟

🧠 تو این حالت، متغیر $orders شامل یه کالکشن از نوع Illuminate\Support\Collection هست که اشیای اون از نوع StdClass هستند. و نه کل مدل.

با استفاده از این متد، داده‌ها از پایگاه‌داده بازیابی می‌شن، اما لاراول کلاس مدل را برای اونها آماده نمی‌کند.

این کار باعث کاهش حافظه مصرفی و افزایش سرعت می‌شه!


#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
Pishro App
⚡️ بچه ها توی Eloquent  #لاراول یه متد داریم بنام  toBase کار این متد چیه؟ در حالت عادی query زیر رو در نظر بگیرید: $orders = Order::all(); خوب اینجا لاراول میاد و اشیای کلاس مدل را برای هر رکورد آماده می‌کنه و اگر حجم داده ها بالا باشه این باعث میشه…
این رو هم یکی از دوستان زحمت کشیده و benchmark گرفته

    $m1 = memory_benchmark(function () {
        $cities = \App\Models\City::all();
    });
    $m2 = memory_benchmark(function () {
        $cities = \App\Models\City::get();
    });
    $m3 = memory_benchmark(function () {
        $cities = \App\Models\City::toBase()->get();
    });

    dd($m1, $m2, $m3);



و خوب توی تصویر میبینید که تو حالت سوم از لحاظ زمانی خیلی بهتر بوده

و البته اگر ستون هایی رو هم که میخوایم تو خروجی داشته باشیم به متد get بدیم باز هم پرفورمنس استفاده از این روش بخاطر عدم استفاده از مدل سبکتر و سریعتر میشه که خوب توی حجم بالاتر بهتر خودش رو نشون میده


متشکر @PhpWebDeveloper جان


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Pishro App
بچه ها #مسابقه از این قراره میزکارِ من ⚡️ شما تصاویر میزکارتون رو میفرستید و بعد بین تصاویر ارسالی، بهترین میزکار(از لحاظ جذابیت، شیک بودن، تمیزبودن) به نظرسنجی گذاشته میشه و توسط کاربران بهترین میزکار انتخاب میشه من باید یه ربات برای ارسال تصاویر آماده…
بچه تصاویر میزکارتون رو به این آی دی ارسال کنید لطفا

شرایط تصویر ارسالی از میز کار

💜 تصویر باید با کیفیت باشه و اسم خودتون رو همراه تصویر بفرستید لطفا

💝 لطفا هنگام عکس از میزکارتون توی یه کاغذ اسم پیشرو اپ رو بنویسید و کنار میزکارتون بزارین که توی تصویر مشخص باشه

منتظر تصاویر قشنگتون هستیم

🔥 👉 @imanborumand

#مسابقه
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧠 با الگوی طراحی ساگا (Saga Design Pattern) در معماری میکروسرویس آشنا شویم


معماری میکروسرویس اگر به درستی پیاده سازی نشود بدون شک مشکلات بسیار زیادی میتواند ایجاد کند. از همین رو برای این معماری الگوهای طراحی متفاوتی برای بخش های مختلف آن موجود می باشد.
در این مطلب ما قصد داریم با الگوی طراحی ساگا(Sage) در معماری #میکروسرویس آشنا شویم.

💡 ساگا یک الگوی طراحی هست که می‌تواند هماهنگی بین چندین تغییر در حالت سیستم را بدون نیاز به قفل کردن منابع برای مدت زمان طولانی انجام دهد.

🔘 https://pishroapp.net/article/166


#microservices #saga


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍1
سلام بچه ببخشید چند روزی نبودم

سعی میکنم جبران کنم 😁

یکی از مهمترین اصول هنگام برنامه نویسی نامگذاری درست برای فایل ها، توابع، متدها، کلاس ها و... می باشد

💡 من چند  Naming Conventions توی #لاراول رو در ادامه برای شما می نویسم که امیدوارم برای شما مفید باشه

👍 برای نامگذاری مدل سعی کنید همیشه از اسم مفرد اون مدل استفاده کنید:

// Correct
class User extends Model {
    // Model methods
}

// Incorrect
class Users extends Model {
    // Model methods
}

👍 برای فایل های کانفیگ رو بصورت زیر نامگذاری کنید:

// Correct
config/app.php
config/database.php

// Incorrect
config/App.php
config/DataBase.php

👍 ایونت ها و Listener ها باید با توجه به کاری که میخوان انجام بشن یعنی، رویدادها باید با استفاده از زمان گذشته نامگذاری شوند و Listener ها باید بر اساس عملی که انجام می دهند نامگذاری بشن. برای نمونه:

// Correct
class UserRegistered extends Event
{
    // Event methods
}

class SendWelcomeEmail extends Listener
{
    // Listener methods
}

// Incorrect
class RegisterUser extends Event
{
    // Event methods
}

class WelcomeEmailSender extends Listener
{
    // Listener methods
}


👍 در آخر برای نامگذاری کلاسهاتون اون ها رو بصورت PascalCase بنویسید. مثلا برای یه پرووایدر بصورت زیر نامگذاری کنید:

// Correct
class AppServiceProvider extends ServiceProvider
{
    // Service provider methods
}

// Incorrect
class appserviceprovider extends ServiceProvider
{
    // Service provider methods
}

⭐️ همیشه سعی کنید از نامگذاری های صحیح استفاده کنید که اگر خودتون چند سال بعد یا یه برنامه نویس جدید خواست روی پروژه‌ی شما کار کنه به راحتی با ساختار آشنا بشه.


#laravel


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥1
همه متد های HTTP در یک نگاه

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
✔️ گروه هکری IRLEAKS فعالیت خود را متوقف کرد.

گروه هکری IRLEAKS با اعلام این خبر از طریق کانال تلگرامی خود، از خاتمه دائمی فعالیت‌هایش خبر داد:

«پایان همیشگی فعالیت گروه IRLeaks!
با توجه به تغییرات جدید در سیاست‌های تلگرام مبنی بر همکاری با دولت‌ها برای ارائه اطلاعات کاربران و عدم وجود جایگزین مناسب، تصمیم گرفتیم که به فعالیت‌های خود پایان دهیم.

توجه ۱: از این پس هر گونه فعالیتی تحت نام #IRLeaks، قطعاً کلاهبرداری بوده و ارتباطی با ما ندارد.

توجه ۲: اطلاعات مربوط به بیمه، تپسی و حج که قبلاً برای فروش عرضه می‌شدند، دیگر در دسترس نخواهد بود.»

شایان ذکر است که این گروه در آخرین حمله خود، با هک ۲۰ بانک کشور، موفق به اخذ ۳ میلیون دلار باج از شرکت توسن شدند.

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
5😁2