Dev Perfects – Telegram
Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Meitix
غیبت همیشه بد نیست😅

پروتکل gossip یه جور روش ارتباطیه بین نودها (مثلا سرورها) که مثل شایعه پخش‌کردن کار می‌کنه. فرض کن توی یه جمع بزرگ یه نفر یه خبر داره، به جای اینکه به همه بگه، فقط به چند نفر نزدیکش می‌گه. اون چند نفر هم به چند نفر دیگه می‌گن، و همینطوری خبر کم‌کم بین همه پخش میشه.

توی سیستم‌های توزیع‌شده هم همینطوره؛ هر نود هر چند ثانیه با چند تا نود تصادفی حرف می‌زنه و اطلاعات جدیدش (مثلا وضعیت سالم بودن یا داده‌ی جدید) رو می‌فرسته. بعد اون نودها هم همین کار رو تکرار می‌کنن تا در نهایت کل شبکه از تغییرات باخبر میشه.

مزیتش اینه که خود ترمیمه؛ یعنی حتی اگه چند تا نود از کار بیفتن یا شبکه قطع‌ و‌ وصل بشه، بقیه نودها بالاخره خبر رو می‌گیرن. مثلن یه جور ارتباط بدون مرکز
Forwarded from Golden Code (علی 🇨🇴)
اگه با API Resources در Laravel کار می‌کنین، احتمالا همیشه با این حالت مواجه بودید:

return PostResource::collection(Post::all());
return new PostResource($post);

تکراریه یکم؟

راه حل جدید در Laravel 12.29

حالا میتونین مستقیما در مدل مشخص کنید که از چه Resource و Resource Collection ای استفاده بشه:
use Illuminate\Database\Eloquent\Model;
use App\Http\Resources\PostResource;
use App\Http\Resources\PostCollection;
use Illuminate\Database\Eloquent\Attributes\UseResource;
use Illuminate\Database\Eloquent\Attributes\UseResourceCollection;

#[UseResource(PostResource::class)]
#[UseResourceCollection(PostCollection::class)]
class Post extends Model {}

استفاده ی ازش هم اسونه

بعده این کار، برای نمایش یک رکورد یا مجموعه کافیست:
return Post::first()->toResource(); // یک رکورد
return Post::all()->toResource(); // مجموعه

متود toResource() بطور خودکار Resource یا Resource Collection مرتبط با مدل را برمیگردونه.

مزایاش؟

•کد تمیزتر و کوتاه‌تر
•مدل خودش مسئول انتخاب Resource مناسب میشه
•مناسب برای پروژه‌های بزرگ با چندین API Resource

📌 این ویژگی فقط از Laravel 12.29 به بعد فعال هست.

#Laravel #laravel_tip #لاراول

@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1986489784408182821?t=Ju0iw4KZdb1e0wg-OzajSQ&s=19
1
Forwarded from Linuxor ?
این hyperui هم کامپوننت های خوبی برای وب داره، بر پایه tailwindcss هستش و خوبیش هم اینه که زبان فارسی و RTL هم ساپورت می‌‌کنه

www.hyperui.dev


@Linuxor
تاحالا با cli hashtag هوش‌مصنوعی qwen کار کردین؟

خب نصبش که خیلی راحته:

npm install -g @qwen-code/qwen-code

حالا تو ویندوز command prompt رو باز میکنید و به شاخه پروژه میرید
اونجا دستور qwen رو میزنید و عملیات لاگین رو با جیمیل‌تون انجام میدید
بعد از لاگین فقط کافیه بهش بگید که چیکار کنه

این cli هوش‌مصنوعی عالیه، حتی خیلی بهتر از gemini گوگل

من یک پروژه کامل رو با این cli نوشتم (laravel inertia)
بک و فرانت رو همزمان پشتیبانی میکنه

حتی کارهایی که من ازش نمیخواستم و به ذهن منم نمیرسید رو خودش انجام میداد

قبل از هر تغییری هم که بخواد ایجاد کنه، از شما سوال میکنه که آیا موافق هستید یا نه

@DevTwitter | <sina Khaghani/>
من یه ربات تلگرام ساختم برای دانلود فایل‌ها از کانال‌ها.

باهاش می‌تونید:
- همه فایل‌های یه کانال رو دانلود کنید
- بر اساس نوع فایل فیلتر کنید (عکس، PDF، ویدیو و ...)
- تعداد فایل‌هایی که می‌خواین دانلود بشه رو مشخص کنید

یه اسکریپت ساده‌ که با Python و Telethon نوشته شده

لینک گیت هاب:
https://github.com/erfanghorbanee/Telegram-File-Downloader

@DevTwitter | <Erfan/>
سرویسی که گفت: “من دیگه نمی‌کشم…” و ما رفتیم سراغ Go!
چند ماه پیش متوجه شدم که بار روی یکی از سرویس‌هامون که مسئولیت محاسبه قیمت، تخفیف و موجودی کالا را برعهده داشت، عجیب بالا رفته.
هی باید بهش ریسورس اضافه می‌کردیم و هی فاکتور پشت‌فاکتور… هی سعی می کردیم کد های سمت node js رو باز نویسی کنیم اما باز مشکل وجود داشت

اما یک جایی ایستادم و به مانیتور زل زدم:
«واقعاً تا کی Scale out ؟ تا کی پول بریزیم برای پادهای بیشتر؟»

با بررسی لاگ های کمی که تو سیستم داشتیم و کمی تعمل بیشتر دیدم مشکل ما فقط زبان نیست بلکه دید طراحی ما برای همچین فشاری آماده نشده بود.
و دیدم که مشکل فقط «بار زیاد» نیست؛ مشکل این بود که مدلِ اجرا (single-threaded event loop + heavy allocations) با الگوی کاری سرویس (محاسبهٔ همزمان قیمت/تخفیف/موجودی) همخوانی نداشت.
هرچقدر پاد اضافه می‌کردیم، هزینه افزایش می‌یافت اما مشکل اصلی — CPU-bound hot path و فشار GC — همچنان پابرجا بود.

وقتی این‌طوری باشه، مهاجرت به runtimeی که برای concurrency و low-overhead execution طراحی شده (مثل Go) یک انتخاب فنی معقول و قابل دفاعه.

پس تصمیم گرفتم همه‌چیز را با Go دوباره بسازم؛
اما نه صرفاً rewrite — بلکه یک refactor درست در مون

اول از همه، متریک‌ها را جمع کردم.(این کار برای شروع کار حیاتیه)
p95، مصرف CPU، ترافیک همزمان، صف درخواست‌ها…
می‌خواستم دقیقاً بفهمم کجا درد می‌کنیم.

بعد شروع کردم به بازطراحی معماری:
سرویس باید کاملاً Stateless می‌شد
هر درخواست باید موازی و بدون dependency محلی قابل پاسخ باشد
عملیات سنگین محاسبات تخفیف باید Pipeline بشود

با کمک goroutineها و channelها در خواست ها را موازی و سبک تقسیم کردم و شد یک پازل برای گرفتن جواب نهایی
درخواست‌ها را تقسیم کردم، هرکدام موازی، هرکدام سبک، و در نهایت مثل قطعات پازل کنار هم جواب نهایی را ساختیم.

می خواستم برم سمت gRPC که محدودیت زمان اجازه نداد پس رفتم سمت DB و ایندکس گزاری های بهنر و جدا کردن read , write از هم
کش کویری هم اورد وسط و بعد هم از ردیس واسه کش کمک گرفتم

برای invalidate کردن قیمت و موجودی هم معماری event driven کمک گرفتم (حالا هی بگید چرا مهمه بدونیمش)

خوب گفتیم قبل از این که سرور بیاد پایین بفهیم چه خبره تو سیستم… پس یک logging , metrics هم توی سیستم گذاشتم حتی گوروتین ها رو همو پروفایل کردم که oberservity رو افزایش بدم
خلاصه بعد از این کارها . latency تا ۶۰ درصد در پیک ها پایین امد…مصرف cpu قابل حدس شد و هزینه ها به شدت کم شد و بچه های محصول خوشحال (البته بعدش یک عالمه فیچر امد سمتمون)

در کل باید به " performance از همان ابتدای طراحی معماری فکر کرد"

@DevTwitter | <Hessam Zaheri/>
کتاب Apprenticeship Patterns راهنماییه برای برنامه‌نویس‌هایی که می‌خوان از یه تازه‌کار، تبدیل به یه حرفه‌ای واقعی بشن.
این ترجمه فارسی، نسخه‌ای روان و کاربردیه از کتاب اصلیه و بهت کمک می‌کنه مسیر رشد شخصی و فنی‌ت رو آگاهانه طی کنی.

اگه دنبال اینی بدونی چطور باید یاد بگیری، چطور تجربه کسب کنی و چطور خودت رو بسازی، این کتاب دقیقاً همونه که باید بخونی.


github.com/hheydarian/apprenticeship-patterns-persian

@DevTwitter <Hamed Heydarian/>
توی پروژه‌های Django معمولاً وقتی می‌خوای فیلترهای داینامیک بسازی (مثلاً برای API یا صفحه جستجو)، مدیریت query stringها یه دردسر تکراریه.
برای همین یه پکیج نوشتم به اسم django-query-string-parser که کارش اینه query string رو مستقیم تبدیل کنه به Q object، با یه سینتکس خوانا و امن.

چند تا قابلیت مهمش:
- پشتیبانی از عملگرهای مختلف مثل :, !=, >, <, >=, <=, ~=
- ترکیب منطقی با AND / OR و پرانتز
- تعریف فیلدهای مجاز (whitelist) برای امنیت بیشتر
- پشتیبانی از استرینگ، عدد، بولین و null
- خروجی نهایی: یه Q object تمیز برای .filter() یا .exclude()

به درد جاهایی می‌خوره که بخوای فیلترهای پیچیده ولی قابل خواندن بسازی — مثل APIها، داشبوردها یا پنل ادمین.

نصب:
pip install django-query-string-parser

گیت‌هاب:
https://github.com/sepehr-mohseni/django-query-string-parser

@DevTwitter | <Nima Naseri/>
منطق پشت کلاستر این CockroachDB چقدر قشنگه.
نوعی دیتابیس SQL که به صورت Master Master کلاستر میشه و از پروتکل RAFT استفاده میکنه.

اما چی!؟ ، مگه RAFT ساختارش به صورت Master Slave ایی تعریف نمیشد؟ پس چجوری توی دیتابیس Master Master داره استفاده‌ میشه؟
شاید اونجوری که CockroachDB میگه اصلا Master Master ایی در کار نیست یا تعریف ما متفاوته .
خلاصه اگه علاقه مند هستین چجوری توی CockroachDB ما RAFT داریم، خوشحال میشم مقاله ایی رو که نوشتم مطالعه کنین، حدودا هم ۵ دقیقه وقتتون رو میگیره.

https://medium.com/@parsagheiratian/the-mentality-behind-cockroachdb-0ed524fcc7ec

@DevTwitter | <Parsa Gheiratian/>
️️
Forwarded from محتوای آزاد سهراب (Sohrab)
بزرگترین توهینی که به یک فرد می‌تونید بکنید اینه که موقع بحث کردن باهاش توی موضوعی که بلد نیستید از هوش مصنوعی استفاده کنید و خیلی پررو پررو متن هوش مصنوعی رو کپی پیست کنید تند تند توی بحث.

#غیر_موقت


@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 نام یک برنامه نویس تنبل آنقدر معروف شده! که کلاهبرداران ارز دیجیتال از اسم این کانال سو استفاده می کند.

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 برای اولین بار در کره جنوبی, 45 دانشجو به دلیل سوابق قلدری در دانشگاه های برتر رد شدند.

#خبر

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 برای سایت خودم آمار بازدید ساده نوشتم که چند روز تست کردم و به درستی کار می کند.

این کدی که اشتراک می زارم اینه که بدون نیاز به دیتابیس است و از تاریخ‌های ذخیره شده برای محاسبه استفاده می‌کند.
داده‌ها در جدول wp_options ذخیره می‌شوند و هر بار که کاربر وارد سایت می‌شود، بازدید ثبت می‌شود.
از کوکی استفاده می‌کند تا هر کاربر فقط یک‌بار در روز شمارش شود و ربات‌های گوگل و موتورهای جستجو را تشخیص داده و شمارش نمی‌کند.

گیت هاب :

https://github.com/Rayiumir/wp-stats

#وردپرس

@TheRaymondDev
Forwarded from Codino School (ایمان غفوری)
💥 اولین نسخه از دستور artisan check:stat در لاراول میکروسکوپ منتشر شد.

v1.0.428

composer update imanghafoori/laravel-microscope imanghafoori/php-token-analyzer imanghafoori/composer-json



@codino
نرمی بصری هنگام تغییر حالت در تنظیمات چندمانیتوره با صفحه‌های دارای وی‌آرآر بهبود یافت.

پلاسما ۶.۶.۰
مصرف حافظه پلاسما بیش از ۱۰۰ مگابایت با هوشمندانه‌تر تخلیه تصاویر پس‌زمینه غیرضروری کاهش یافت. این عارضه جانبی باعث شد پس‌زمینه‌های کاشی‌شده به دلایل فنی با سیستم جدید غیرممکن شود، پس دوباره به شکل افزونه جدید «کاشی‌شده» برگردانده شد تا همچنان بتوانید از پس‌زمینه بینی کد۱ مورد علاقه‌تان لذت ببرید.

استحکام عملیات کشیدن‌و‌انداختن بین پنجره‌های اکس‌وی‌لند و پنجره‌های ویلند بومی بهبود یافت.

تغییر وضعیت بلوتوث دیگر رابط کاربری را که با آن تغییر دادید لحظه‌ای نمی‌بندد.

فعالیت کنونی حالا در پرونده وضعیت ذخیره می‌شود، نه پرونده پیکربندی.


@KDE_fa
Forwarded from محتوای آزاد سهراب (Sohrab)
این رو علتی که هنوز ننوشتم اینه که اون هفته ارائه من کنسل شد، قرار بود فردا ارائه بدم که استاده پیام گذاشته نمیاد کلاس و کلاس کنسله (مارو مسخره خودش کرده).


من فردا وقت آزاد گیر بیارم این رو یا به رشته تحریر درمیارم یا یک ویدئو می‌گیرم، احتمالا هم یک شل یونیکسی وایب‌کد کنیم توی ویدئو و توی این لینوکسشتاین (لینوکس + فرانکشتاین) فرو کنیم :))


@SohrabContents
🎉 لینوکس مینت 22.3 و ابزار “System Information” جدید

لینوکس مینت ابزار قدیمی «System Reports» را کامل بازطراحی کرده و به «System Information» تبدیل کرده 🤩 تا عملکرد سخت‌افزار را بهتر به‌نمایش بده😎

🔹بخش USB: همه دستگاه‌های متصل شده، نوع‌شان، شناسه‌ها (ID)، سرعت اتصال و توان مصرفی‌
🔹بخش GPU: مدل کارت گرافیک، درایورش، وضعیت شتاب سخت‌افزاری
🔹بخش PCI: اطلاعات داخلی‌تر از قطعات کامپیوتر مثل کنترلرها، درایورها، برندها
🔹بخش BIOS: مادربورد، نسخه BIOS، حالت بوت، وضعیت Secure-Boot
🔥منتظر اپدیت جدید باشید
منبع
@MehrdadLinuxchannel
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۷۶۸

عقل و دل من چه عیشها میداند
گر یار دمی پیش خودم بنشاند
صد جای نشیب آسیا میدانم
کز بی آبی کار فرو میماند

#مولانا | گنجور
📍@iipoem