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

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Linuxor ?
توی بعضی ریپو های گیت دیدید کامیت ها چقدر منظم نوشته می‌شن ؟ مثلا عکس بالا رو ببینید اول همشون نوشته fix یا feat که البته اینارو دستی نمی‌نویسن و یا اگه دستی بنویسن ممکنه توی بعضی کامیتا فراموش کنن.
یه ابزار هست بهتون کمک میکنه قبل از کامیت پیام کامیت رو آماده کنید و طبق قالب خاصی براتون کامیت رو درست می‌کنه. فقط کافیه نصبش کنید و بجای
git commit
بزنید
git cz
ازتون سولای لازم رو می‌پرسه و کامیت رو براتون آماده می‌کنه


نصب‌:
commitizen.github.io/cz-cli

@Linuxor
Forwarded from Linuxor ?
یه استکی بود به اسم MERN که خیلی معروف بود و ترکیب خوبی بود از نودجی اس، اکسپرس و مونگو برای دیتابیس و ری اکت برای فرانت (هنوز هم خیلی استفاده می‌شه)

برای پنج سال آینده من حدس می‌زنم استک BERMM قراره بیاد بالا. (البته ممکنه اینطور پیش نره...)
مونگو و ری اکت سر جاشون هستن فقط مونگو اون زمان روی هایپ بود الان فهمیدن و ترکیبش با MySql خیلی نتیجه بهتری می‌ده. همچنین Node.js با Bun عوض می‌شه Bun همه مزیت های Node.js + سرعت چند برابری داره فقط دوتا مشکل داره یکی کامیونیتی ضعیف و دومی پایداری ضعیف تر نسبت به Node.js

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

@Linuxor
Forwarded from Golden Code (علی 🇨🇴)
خیلی مواقع بعده گرفتنه داده از دیتابیس، نیاز داریم سریع و تمیز به اطلاعات دسترسی داشته باشیم.
تابع array_column در PHP دقیقا برای همین ساخته شده!

🔹 چی کار میکنه؟

میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.

حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.

📌 یه مثال:

$users = [
['id' => 1, 'name' => 'Ali', 'email' => '[email protected]'],
['id' => 2, 'name' => 'Sara', 'email' => '[email protected]'],
['id' => 3, 'name' => 'Reza', 'email' => '[email protected]'],
];

// Reindex بر اساس id
$indexed = array_column($users, null, 'id');

حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.

📌 کاربردهاش؟

ساخت lookup table سریع

کدنویسی تمیزتر و کوتاه‌تر

عالی برای caching و join کردن دیتاست‌ها

خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip

@GoldenCodeir 🔥

(به منبع و مثالش توجه کنید👇🏾)
https://x.com/MrPunyapal/status/1969823906816250147?t=9s-5Sez6ckqd63_S0tMWlg&s=35
Forwarded from Golden Code (علی 🇨🇴)
خیلی مواقع بعده گرفتنه داده از دیتابیس، نیاز داریم سریع و تمیز به اطلاعات دسترسی داشته باشیم.
تابع array_column در PHP دقیقا برای همین ساخته شده!

🔹 چی کار میکنه؟

میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.

حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.

این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.

📌 یه مثال:
$users = [
['id' => 1, 'name' => 'Ali', 'email' => '[email protected]'],
['id' => 2, 'name' => 'Sara', 'email' => '[email protected]'],
['id' => 3, 'name' => 'Reza', 'email' => '[email protected]'],
];

// Reindex بر اساس id
$indexed = array_column($users, null, 'id');

حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.


کاربردهاش؟

ساخت lookup table سریع

کدنویسی تمیزتر و کوتاه‌تر

عالی برای caching و join کردن دیتاست‌ها

خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip

@GoldenCodeir

(به منبع و مثالش توجه کنید👇🏾)
https://x.com/wendell_adriel/status/1969010695279989061?t=h88vjyQnlMap9vvVDFxhXQ&s=35
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 بازنویسی به زبان Rust نکنید.

بازنویسی صرفاً برای ایمنی حافظه مثل بهینه ‌سازی زود هنگام است: یعنی داری روی چیزی تمرکز می‌کنی که بازده زیادی ندارد. نسخه‌های قدیمی و آزموده ‌شده‌ی C/C++ خطا های حافظه‌ی کمی دارند. بیشتر باگ ‌های حافظه در کدهای جدید C/C++ دیده می‌شوند.

کد جدید را در Rust بنویس.

#rust
#توییت

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



https://t.iss.one/sohrabcontents/6


حالا نمی‌دونم، ولی حس می‌کنم محتوای کانال از اون موقع یکم بدتر شده وضعش😂


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



@SohrabContents
سلام خدمت دوستانی که به تازگی به جمع ما اضافه شدن‌ :)

گفتم با خودم که یک توضیح بدم که من رو بهتر بشناسید و درمورد من بدونید.

من سهراب هستم، توسعه‌دهنده‌ی توزیع پارچ لینوکس ۲۰ سالمه مشتاق یادگیری.
توی این کانال از تجربیاتم می‌نویسم، چیزهایی که برام جالب هست رو به اشتراک می‌ذارم، به سوالات شما پاسخ میدم، یا روند توسعه‌ی پارچ لینوکس رو توضیح میدم.

اطلاعات بیشتر درمورد توزیع پارچ رو از کانال پارچ میتونید ببینید:
@parchlinux

لیست شبکات اجتماعی من:

Pixelfed
Mastodon
Twitter
Peertube
Lemmy
YouTube
Matrix
Website


انبار کتابم:

https://t.iss.one/+YPUGPgfr0QM3ZWM0



محتوای غیرآزاد(کانال خصوصی):

https://t.iss.one/+YHtlQZVMMDRjOGJk

عضویت صرفا با تایید است.
اگر روی نسخه‌های اخیر Rust هستید (édition:2024) پیشنهاد می‌کنم به آخرین نسخه آپدیت کنید توی آپدیت 1.90 یک تغییر جذاب داریم:

LLD is now the default linker

همین مورد روی build هایی که دارم سرعت رو نسبت به قبل افزایش داده اما من یک مورد دیگه هم دیدم؛ حجم فایل نهایی ریلیز‌ها هم کم شده.

مثلاً توی یک کد بکند که شخصاً داشتم؛ حجم پروژه به ۱۳ مگ میرسید الان با 1.90 که بیلد انجام دادم روی ۱۲ مگ هست.
برای اطمینان بیشتر؛ یک پروژه‌ای رو تازه شروع کردم بکند نیست (crate های متفاوتی رو داره) روی سیستمی که هنوز آپدیت نکردم Rust رو با معماری و توزیع و ورژن یکسان لینوکس حجم فایل خروجی پروژه (تو همین وضعیت شروع) ۱.۵ مگ بود ولی روی سیستم دیگه با Rust 1.90 به ۱ مگ کاهش یافت؛ که خب خیلی عالیه این موضوع بنظرم 👌
Forwarded from محتوای آزاد سهراب (Sohrab)
کاملا موقت

سامانتل برای شماهم دچار اختلال شده؟
یکی از روشهای آخوندا برای انحراف جامعه و پرت کردن حواس مردم اینه که از حس گوگولی پرست بودن و سلبریتی دوستی عموم جامعه سواستفاده کنن و اصل داستان رو ببرن توی حاشیه
مثلا میان یه تعداد آدم معروف و سلبریتی رو دستگیر میکنن و بعد از اینکه کلی توی مدیا سرش مانوور رفتن و همه جا رسانه‌ای شد، میخوابونن تو آب‌نمک تا سر فرصت همزمان با یه کاری مثل اعدام کردن مخالفان واقعیشون که در سکوت انجام میشه اون مخالفان پلاستیکی رو آزاد میکنن با بوق و بزرگ‌سازی.
و متاسفانه عموم مردم هم چشاشون قلبی میشه و اکلیل میپاشن برای پلاستیکی و خبر اصلی تو این شلوغی گم و گور میشه.
یعنی پست و توییت کردن درباره خاطرات فلانی بعد از زندون خیلی دلچسب‌تره تا اعدام فلانی
👍1
یک سال گذشت.
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۳۴

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

#مولانا | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
GopherCon 2025 Go Contributor Summit Notes

🟢 خلاصه مقاله:
در GopherCon 2025 جمع زیادی از مشارکت‌کنندگان Go گرد هم آمدند و درباره مدیریت وابستگی‌ها، روند بررسی و پذیرش پیشنهادهای زبانی، کارایی و الگوهای بهینه در cgo، امنیت و پیاده‌سازی WebAuthn، وضعیت فازینگ و پوشش تست، و هدف‌گیری WebAssembly (و حتی به‌صورت گذرا JVM) گفتگو کردند. محورهای اصلی شامل بهبود reproducible builds و امنیت در اکوسیستم ماژول‌ها، شفاف‌تر و کارآمدتر شدن فرآیند پروپوزال‌ها با درس‌آموخته‌های generics و حفظ سازگاری عقب‌رو، کاهش سربار مرز Go/C در cgo، بلوغ فازینگ و پوشش در CI، و چالش‌های Wasm/WASI مانند اندازه باینری، زمان راه‌اندازی و async بود. هرچند یادداشت‌ها خام‌اند، اما جهت‌گیری‌ها، اولویت‌ها و سوالات باز را روشن می‌کنند و انتظار می‌رود با مسائل پیگیری، اسناد طراحی و دعوت به بازخورد از سوی جامعه ادامه یابد.

#Go #GopherCon #cgo #WebAuthn #WebAssembly #Fuzzing #DependencyManagement #OpenSource

🟣لینک مقاله:
https://golangweekly.com/link/174417/web


👑 @gopher_academy
اگر کاربر دسکتاپی اوبونتو هستین من اینجا با قابلیت نصب خودکار اوبونتوهای جدید، یک ساختار خودکار درست کردم که فرایند نصب اوبونتو رو ساده و قابل تکرار کنه و چیزهای ضروری‌تون رو هم نصب میکنه (مثلا کروم، تلگرام، php و go و ...)

https://github.com/ohmydevops/ohmyautoinstaller

@DevTwitter | <Amir.local/>
درود
فک کنم دیگه زمان کنار کشیدن من رسیده
توی این چند سالی که فعال بودم، کنار زندگی خودم، همیشه سعی داشتم تا بتونم به جامعه‌ای که عضوی ازش هستم کمک کنم و تاثیرگذار باشم. مدتیه که منتظر روزی بودم که ذهن و روح و روانم رو آماده کنم تا این پیام رو بنویسم و خداحافظی کنم و امروز، اون روز است.
قبلا هم این تصمیم رو موقت گرفته بودم، ولی اینبار متفاوته.
امروز ۳۱ شهریور، روزی که برام خیلی مهم و متفاوته تصمیم گرفتم تا این کار رو بالاخره انجام بدم.

مراقب خودتون باشید
مرتضی باشسیز
Forwarded from Gopher Academy
🔵 عنوان مقاله
How to Implement the Outbox Pattern in Go and Postgres

🟢 خلاصه مقاله:
** این مقاله توضیح می‌دهد چگونه با الگوی Outbox در کنار Go و Postgres، مشکل دو‌نوشتن را حل کنیم و ارسال رویدادها را قابل‌اعتماد کنیم. ایده اصلی این است که در یک تراکنش واحد، هم تغییرات دامنه و هم رکورد مربوط به رویداد در جدول outbox ذخیره شود تا یا هر دو باهم انجام شوند یا هیچ‌کدام. سپس یک پردازشگر پس‌زمینه رکوردهای معوق را با SELECT … FOR UPDATE SKIP LOCKED برداشته، آن‌ها را به سامانه‌ای مثل Kafka یا RabbitMQ یا یک وب‌هوک ارسال می‌کند و وضعیت‌شان را به processed تغییر می‌دهد.

نکات کلیدی پیاده‌سازی شامل: طراحی جدول outbox با فیلدهایی مانند type، payload (معمولاً JSON)، status، retry_count و زمان‌ها؛ پوشش هر دو عملیات (نوشتن دامنه و درج outbox) در یک تراکنش؛ پیاده‌سازی worker در Go برای برداشت دسته‌ای، ارسال، ثبت موفقیت/خطا و بازآزمایی با backoff؛ تکیه بر تحویل حداقل-یک‌بار همراه با مصرف‌کننده‌های idempotent برای مدیریت تکرار؛ و پایش شاخص‌هایی مثل تأخیر برداشت و نرخ شکست. برای بهینگی عملیاتی، پاکسازی دوره‌ای رکوردهای پردازش‌شده، ایندکس‌گذاری مناسب، رسیدگی به پیام‌های مشکل‌دار (dead-letter) و حفظ ترتیب رویدادها در سطح aggregate ضروری است. ترکیب polling با LISTEN/NOTIFY در Postgres می‌تواند زمان واکنش را بهتر کند. نتیجه، راهکاری ساده و مقیاس‌پذیر است که بدون تراکنش‌های توزیع‌شده، قابلیت اتکا را در معماری رویدادمحور فراهم می‌کند.

#OutboxPattern #Go #Postgres #Microservices #EventDriven #TransactionalOutbox #Messaging #Reliability

🟣لینک مقاله:
https://golangweekly.com/link/174422/web


👑 @gopher_academy
Forwarded from Python Hints
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب (Sohrab)
یک RFC باز شده برای چند کرنلی کردن هسته لینوکس.

پروژه‌ی Multikernel برای لینوکس رسماً کد خود را به‌صورت آزاد منتشر کرد. همزمان، کونگ وانگ، مهندس گوگل، نخستین پچ‌ها را برای بررسی به فهرست پستی کرنل لینوکس (LKML) ارسال کرده است. این حرکت می‌تواند نقطه‌ی عطفی در تاریخ توسعه‌ی گنو/لینوکس باشد.

تا به امروز لینوکس، با وجود توانایی چشمگیر در مقیاس‌پذیری، بر پایه‌ی مدل تک‌کرنلی بنا شده بود: یک هسته‌ی مرکزی که همه‌ی منابع سخت‌افزاری را مدیریت می‌کند. اما Multikernel رویکرد متفاوتی را معرفی می‌کند. به جای اتکا بر یک کرنل واحد یا لایه‌های سنگین مجازی‌سازی، این پروژه از kexec استفاده می‌کند تا چند کرنل مستقل روی یک ماشین بوت شوند و به‌عنوان «همکار» با همدیگر ارتباط بگیرند.

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

خب این امکان از ۳۵ سال پیش جزو اهداف هرد بوده. گنو/هرد یک میکروکرنل سروره برای کرنل گنو ماخ که اون‌هارو در کنار هم اجرا کنه، هرچند درمورد هرد حرف زیاد زدم، پروژه جدای از جالب بودنش از کمبود توسعه دهنده رنج می‌بره و بعد از ۳۰ و اندی سال بالاخره یک پورت ۶۴ بیتی ازش بر روی دبیان ساختن.


https://multikernel.io/2025/09/18/multikernel-goes-open-source/


@SohrabContents
روزی ۲۰ دقیقه دارم Ocaml یاد میگیرم. به عنوان یه زبان فانکشنال اینقدر با زبان های قبلی که کار کردم متفاوت هست که انگار دفعه اولمه کد میزنم.
به عنوان تمرین مغزی و یادگیری یه شیوه جدید فکری بهش نگاه میکنم و هدف خاصی ازش ندارم.

@DevTwitter | <Soroush Sardashti/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️ کتاب مرجع کامل مدرک بین‌المللی Linux Essentials

🔹پس از انتشار کتاب LPIC1 و کتاب 1001 دستور لینوکس این بار با افتخار کتابی جامع و کاربردی دیگه ای برای شما آماده کرده‌ام.
🔹 راهنمایی گام‌به‌گام برای ورود به دنیای لینوکس، مبتنی بر منابع بین‌المللی معتبر و تجربه‌های عملی.
مخصوص افرادی است که می‌خواهند گام اول در لینوکس را محکم بردارند. شما با مطالعه آن با مفاهیم پایه‌ای آشنا می‌شوید و برای آزمون بنیاد LPI آماده شوید.

🔹 این کتاب منابع معتبر زیر را پوشش میدهد و نیاز به خواندن کتاب دیگری نیست:


🔸Linux Essentials Exam 010 Objectives
🔸Linux Essentials, 2nd Edition — Wiley
🔸LPI Linux Essentials Study Guide: Exam 010 v1.6 — Sybex / Wiley
🔸LPI Linux Essentials Certification All-in-One Exam Guide — McGraw-Hill

و منابع مستقل منتشر شده در Amazon KDP

🔻تماماً رنگی
🔻۲۸۰ صفحه، قطع وزیری (شومیز)
🔻ویرایش اول، سال انتشار ۱۴۰۴
🔻منتشر شده توسط: انتشارات یافته
🔻نویسنده :حسین سیلانی
🔻فرمت فایل: PDF

https://learninghive.ir/product/book11-linux-essentials/

📥 دانلود فایل نمونه کتاب به همراه فهرست کامل
Linux Essentials PDF