Forwarded from Pishro App
خوب دوستان توی #لاراول، برای گرفتن(بارگذاری) داده ها از #دیتابیس دو روش وجود داره که هر کدوم مزیا و معایب خودش رو داره.
من بصورت خلاصه شما رو با اونها آشنا میکنم و در پست های بعد هر کدوم رو بیشتر توضیح میدم.
❌ انواع بارگذاری داده از دیتابیس در لاراول:
😐 بارگذاری تنبل (Lazy Loading)
😐 بارگذاری پیشدستانه (Eager Loading)
💎 بارگذاری تنبل (Lazy Loading): تو این روش، دادههای مرتبط تنها زمانی بارگذاری میشوند که به آنها نیاز داشته باشید.
برای نمونه فرض کنید مدل User به مدل Profile متصل هست، وقتی user->profile رو صدا بزنید، لاراول در همان لحظه یک کوئری جدید برای بارگذاری پروفایل کاربر اجرا میکنه. این روش در مواردی مناسب هست که دادههای مرتبط در همه جا نیاز نیست، این ممکنه منجر به اجرای کوئریهای اضافی شود و به مشکل N+1 منجر گردد!
💎 بارگذاری پیشدستانه (Eager Loading):
توی این روش لاراول از همون ابتدا دادههای مرتبط رو بارگذاری میکنه و این کارایی رو بهتر خواهد کرد
مثلاً با استفاده از متد with:
این روش از یک کوئری برای بارگذاری همه کاربران و پروفایلهایشان استفاده میکنه و به این ترتیب از ایجاد کوئریهای اضافی جلوگیری میکند.
🖥 بطور خلاصه میشه گفت:
بارگذاری تنبل برای زمانی مناسب هست که دادهها همیشه مورد نیاز نیستند، و بارگذاری پیشدستانه برای بهبود کارایی و جلوگیری از اجرای کوئریهای اضافی مناسب هست.
#laravel
👾 @pishroapp
من بصورت خلاصه شما رو با اونها آشنا میکنم و در پست های بعد هر کدوم رو بیشتر توضیح میدم.
برای نمونه فرض کنید مدل User به مدل Profile متصل هست، وقتی user->profile رو صدا بزنید، لاراول در همان لحظه یک کوئری جدید برای بارگذاری پروفایل کاربر اجرا میکنه. این روش در مواردی مناسب هست که دادههای مرتبط در همه جا نیاز نیست، این ممکنه منجر به اجرای کوئریهای اضافی شود و به مشکل N+1 منجر گردد!
توی این روش لاراول از همون ابتدا دادههای مرتبط رو بارگذاری میکنه و این کارایی رو بهتر خواهد کرد
مثلاً با استفاده از متد with:
$users = User::with('profile')->get(); این روش از یک کوئری برای بارگذاری همه کاربران و پروفایلهایشان استفاده میکنه و به این ترتیب از ایجاد کوئریهای اضافی جلوگیری میکند.
بارگذاری تنبل برای زمانی مناسب هست که دادهها همیشه مورد نیاز نیستند، و بارگذاری پیشدستانه برای بهبود کارایی و جلوگیری از اجرای کوئریهای اضافی مناسب هست.
#laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from mnr tech
اگر از wsl روی ویندوز استفاده میکنید حتما شده که فایلی رو از ویندوز به wsl کپی کنید یا انتقال بدید. وقتی این کار رو میکنید یه فایل به همون اسم با پسوند
فایلهای Zone.Identifier فایلهای متادادهای هستند که توسط ویندوز ایجاد میشوند تا اطلاعات مربوط به منطقه امنیتی فایلها (security zone) را ذخیره کنند. این اطلاعات مشخص میکنند که یک فایل از چه منبعی آمده است (مثلاً اینترنت، شبکه محلی، یا سیستم محلی) و به ویندوز کمک میکنند تصمیم بگیرد که آیا فایل باید با احتیاط بیشتری باز شود یا نه.
آیا حذف این فایلها مشکلی ایجاد میکند؟
حذف فایلهای Zone.Identifier معمولاً مشکلی ایجاد نمیکند و باعث نمیشود فایل اصلی تحت تأثیر قرار بگیرد، زیرا این فایلها تنها اطلاعات متاداده هستند. با این حال، با حذف آنها ممکن است برخی ویژگیهای امنیتی ویندوز از کار بیفتند (مثلاً هشدار درباره باز کردن فایلهای دانلود شده).
نکنه اول اینکه حتما این فایل هارو به .gitignore اضافه کنید تا الکی توی پروژه هاتون پوش نشن.
بعد اگر فایل ها رو اعصابتونن و الکی ریپویی که روش کار میکنید رو شلوغ کردن دو راه دارین یا برین توی روت پروژه و دستور زیر رو بزنید تا همه فایل ها کلا حذف بشن
یا اینکه ولشون کنین و بذارین به زندگی خودشون ادامه بدن (سازمان حمایت از حقوق فایل های Zone.Identifier 😂) ولی یه کاری کنید که توی vsCode نشون داده نشن برای این کار کافیه کانفیگ زیر رو به فایل setting.json اضافه کنید
محتوای این پست با کمک chat GPT درست شده
:Zone.Identifier ساخته میشه.فایلهای Zone.Identifier فایلهای متادادهای هستند که توسط ویندوز ایجاد میشوند تا اطلاعات مربوط به منطقه امنیتی فایلها (security zone) را ذخیره کنند. این اطلاعات مشخص میکنند که یک فایل از چه منبعی آمده است (مثلاً اینترنت، شبکه محلی، یا سیستم محلی) و به ویندوز کمک میکنند تصمیم بگیرد که آیا فایل باید با احتیاط بیشتری باز شود یا نه.
آیا حذف این فایلها مشکلی ایجاد میکند؟
حذف فایلهای Zone.Identifier معمولاً مشکلی ایجاد نمیکند و باعث نمیشود فایل اصلی تحت تأثیر قرار بگیرد، زیرا این فایلها تنها اطلاعات متاداده هستند. با این حال، با حذف آنها ممکن است برخی ویژگیهای امنیتی ویندوز از کار بیفتند (مثلاً هشدار درباره باز کردن فایلهای دانلود شده).
نکنه اول اینکه حتما این فایل هارو به .gitignore اضافه کنید تا الکی توی پروژه هاتون پوش نشن.
*.Identifier
// یا این
*:Zone.Identifier
بعد اگر فایل ها رو اعصابتونن و الکی ریپویی که روش کار میکنید رو شلوغ کردن دو راه دارین یا برین توی روت پروژه و دستور زیر رو بزنید تا همه فایل ها کلا حذف بشن
find . -type f -name "*:Zone.Identifier" -exec rm -f {} +یا اینکه ولشون کنین و بذارین به زندگی خودشون ادامه بدن (سازمان حمایت از حقوق فایل های Zone.Identifier 😂) ولی یه کاری کنید که توی vsCode نشون داده نشن برای این کار کافیه کانفیگ زیر رو به فایل setting.json اضافه کنید
"files.exclude": {
"**/*:Zone.Identifier": true
}محتوای این پست با کمک chat GPT درست شده
Forwarded from Linuxor ?
آقا سهراب (Saurabh Kurve) اومده 16 تا از پترن های کلیدی برای حل الگوریتم ها رو همراه با Use Case هاشون جمع آوری کرده
https://dev.to/saurabhkurve/16-essential-problem-solving-patterns-31p2
🐧 @Linuxor
https://dev.to/saurabhkurve/16-essential-problem-solving-patterns-31p2
🐧 @Linuxor
Forwarded from Linuxor ?
وقتی یه جا مصاحبه میکنید و ریجکت میشید، معمولا دلایل ریجکت شدن رو بهتون اعلام نمیکنند. یه نفر که سالها با بخش HR شرکتها کار کرده، دلیلش رو توضیح داده.
بخش HR یه شرکت کارش اینه که به نیازهای افراد داخل شرکت رسیدگی کنه. مصاحبهها هم در راستای اهداف شرکت انجام میشه.
وقتی تو بخش HR باشید، انرژیتون رو روی کارکنان شرکت متمرکز میکنید، نه افرادی که به هر دلیلی نتونستن وارد شرکت بشن. وقتی یه نفر جذب میشه، ریکروترها انرژیشون رو روی اون نفر متمرکز میکنند، و واقعا وقت زیادی ندارند که به افرادی که نتونستن تو مصاحبه موفق باشن توضیح بدن.
ولی این هم هست که افرادی که ریجکت میشن لزوما ضعیف نیستن. گاهی ۱۰ نفر در مصاحبهها موفق هستند. حالا شرکت باید یک نفر رو انتخاب کنه. مساله این نیست که اون ۹ نفر مشکل دارند. گاهی دلیل ریجکت شدن شما اینه که یکی باید انتخاب میشده و اگه اون یه نفر نبود، شاید شما انتخاب میشدید!
🐧 @Linuxor ~ HRKeshavarz
بخش HR یه شرکت کارش اینه که به نیازهای افراد داخل شرکت رسیدگی کنه. مصاحبهها هم در راستای اهداف شرکت انجام میشه.
وقتی تو بخش HR باشید، انرژیتون رو روی کارکنان شرکت متمرکز میکنید، نه افرادی که به هر دلیلی نتونستن وارد شرکت بشن. وقتی یه نفر جذب میشه، ریکروترها انرژیشون رو روی اون نفر متمرکز میکنند، و واقعا وقت زیادی ندارند که به افرادی که نتونستن تو مصاحبه موفق باشن توضیح بدن.
ولی این هم هست که افرادی که ریجکت میشن لزوما ضعیف نیستن. گاهی ۱۰ نفر در مصاحبهها موفق هستند. حالا شرکت باید یک نفر رو انتخاب کنه. مساله این نیست که اون ۹ نفر مشکل دارند. گاهی دلیل ریجکت شدن شما اینه که یکی باید انتخاب میشده و اگه اون یه نفر نبود، شاید شما انتخاب میشدید!
🐧 @Linuxor ~ HRKeshavarz
Forwarded from LearnPOV | لرن پی او وی
سلام بچه ها شبتون بخیر باشه
اگر تو دور و اطرافیان خودتون تور لیدری میناسید که قابل اعتماد و کارش خوب باشه ممنون میشم معرفی کنید بهم ❤️
اگر تو دور و اطرافیان خودتون تور لیدری میناسید که قابل اعتماد و کارش خوب باشه ممنون میشم معرفی کنید بهم ❤️
Forwarded from محتوای آزاد سهراب
Media is too big
VIEW IN TELEGRAM
توی ماستادون لینک کانال تلگرامش رو دیدم، گوشی روسی Rosa Mobile هستش با یک میزکار انحصاری فورک شده از پلاسما موبایل :))
@SohrabContents
@SohrabContents
Forwarded from Linuxor ?
با یه پایگاه داده توزیع شده تصور کنین یک فروشگاه اینترنتی بزرگ داریم. اگه بخوایم اطمینان حاصل کنیم که هر محصول تنها یک بار در پایگاه داده ثبت میشه و اطلاعاتش همیشه دقیق و به روزه، باید از مکانیزمهای پیچیدهای برای حفظ یکپارچگی دادهها استفاده کنیم. این مکانیزمها اگرچه به ما اطمینان میدن که دادههای ما صحیح ان، اما میتونن سرعت جستجو و بازیابی اطلاعات رو کاهش بدن.
از سمت دیگه، اگه به دنبال افزایش سرعت پاسخگویی سایت باشیم، ممکنه مجبور شیم از برخی از این مکانیزمها صرف نظر کنیم. برای مثال، ممکنه اجازه بدین نسخههای قدیمی از یک محصول به صورت موقت در پایگاه داده باقی بمانند تا از ایجاد اختلال در روند خرید جلوگیری کنیم. این کار میتونه منجر به ایجاد برخی ناسازگاریهای موقت در دادهها شود، اما به طور کلی سرعت سیستم را افزایش میده.
در واقع میشه گفت Consistency و Availability دو روی یه سکه ان.
🐧 @Linuxor
از سمت دیگه، اگه به دنبال افزایش سرعت پاسخگویی سایت باشیم، ممکنه مجبور شیم از برخی از این مکانیزمها صرف نظر کنیم. برای مثال، ممکنه اجازه بدین نسخههای قدیمی از یک محصول به صورت موقت در پایگاه داده باقی بمانند تا از ایجاد اختلال در روند خرید جلوگیری کنیم. این کار میتونه منجر به ایجاد برخی ناسازگاریهای موقت در دادهها شود، اما به طور کلی سرعت سیستم را افزایش میده.
در واقع میشه گفت Consistency و Availability دو روی یه سکه ان.
🐧 @Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 شرکت Chegg قربانی ChatGPT شد که سهامش ۹۹ درصد سقوط کرده است.
شرکتی که به کرایه کتابهای درسی و کمک به انجام تکالیف معروف است، فعالیت می کند. سهام شرکت Chegg نسبت به اوج خود در سال 2021، 99 درصد کاهش یافته است و ارزش 14.5 میلیارد دلاری را از دست داده است و این شرکت نیم میلیون مشترک پولی خود را از دست داده است. پس از اینکه درآمد فصل به فصل کاهش می یابد، تردیدهایی وجود دارد که بتواند به پرداخت بدهی های خود ادامه دهد. حتی با راهاندازی ChatGPT مدل تجاری Chegg را نابود کرد.
#خبر
@TheRaymondDev
شرکتی که به کرایه کتابهای درسی و کمک به انجام تکالیف معروف است، فعالیت می کند. سهام شرکت Chegg نسبت به اوج خود در سال 2021، 99 درصد کاهش یافته است و ارزش 14.5 میلیارد دلاری را از دست داده است و این شرکت نیم میلیون مشترک پولی خود را از دست داده است. پس از اینکه درآمد فصل به فصل کاهش می یابد، تردیدهایی وجود دارد که بتواند به پرداخت بدهی های خود ادامه دهد. حتی با راهاندازی ChatGPT مدل تجاری Chegg را نابود کرد.
#خبر
@TheRaymondDev
Gizmodo
Chegg Is On Its Last Legs After ChatGPT Sent Its Stock Down 99%
With subscriptions tumbling, there are doubts the online education company will be able to pay its debts.
Forwarded from محتوای آزاد سهراب
ولی جالبه، ویدروید هم داره پیشفرض.
@SohrabContents
تقریباً ۹۹ درصد این چیزها رو روی پارچ موبایل ما پیادهسازی کرده بودیم، اما سختافزار مورد نیاز برای اجراشو نداریم :))
احتمالا پارچ موبایل به آپادانا موبایل ریبرند بشه.
@SohrabContents
Forwarded from PhiloLearn | فیلولرن
از من به شما نصیحت، هیچ وقت پکیجی که نمیدونید چیه رو نصب نکنید
از اون بدتر، هیچ پکیجی که نمیدونید چیه رو پاک هم نکنید😂😂😂🤦🏻♂
وگرنه به حال و روز من دچار میشید😂😂🤦🏻♂
از اون بدتر، هیچ پکیجی که نمیدونید چیه رو پاک هم نکنید😂😂😂🤦🏻♂
وگرنه به حال و روز من دچار میشید😂😂🤦🏻♂
Forwarded from Accio
I have been trying to understand signal compression for the past few weeks. It's amazing how simple image/audio compression works. Both images and audios can be considered as signals. Take audio for example; an analog audio signal can be represented as below
Forwarded from Accio
Notice that at any given point in time we have a certain amplitude, plus there are infinite points of time. This signal can be captured via a microphone and stored in something like a gramophone record. But we want to store them digitally right? We no longer have gramophones. Or in other words, we need this signal to be discrete rather than continues in order for us to store it in a computer. So we have to sample this signal at a frequency. This raises a few questions:
- At what frequency we should sample our continues signal (sample rate)
- How many bits we should use for storing each sample, or rather what is the amplitude range we are willing to cover (bit depth)
p.s: Bit-rate is basically sample rate multiplied by bit depth
For the first question, the answer lies in Nyquist–Shannon sampling theorem. Which states that to reconstruct a signal via samples, we have to at least sample at double the frequency of the original signal. This makes a lot of sense if we just look at visualization:
- At what frequency we should sample our continues signal (sample rate)
- How many bits we should use for storing each sample, or rather what is the amplitude range we are willing to cover (bit depth)
p.s: Bit-rate is basically sample rate multiplied by bit depth
For the first question, the answer lies in Nyquist–Shannon sampling theorem. Which states that to reconstruct a signal via samples, we have to at least sample at double the frequency of the original signal. This makes a lot of sense if we just look at visualization:
Forwarded from Accio
You can see if we sample double the frequency of our audio signal we have a chance for a good reconstruction later on. Note that this is the most optimistic view. For example in the pictures above we started sampling with a little bit delay to capture the peak of our signal. In reality this is not feasible. If we started sampling at 0s, we would've ended up with a straight line, even if we sampled double the frequency.
So its fair to say that most signals will require even more than double for a good reconstruction
So its fair to say that most signals will require even more than double for a good reconstruction