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 Gopher Academy
🔵 عنوان مقاله
Why I Ditched Docker for Podman (And You Should Too)

🟢 خلاصه مقاله:
مهاجرت از Docker به Podman برای من بیشتر یک انتخاب عملی بود تا بحث سلیقه؛ به‌ویژه در جریان‌های کاری مرتبط با Go که در Golang Weekly هم زیاد دیده می‌شود. دلیل اصلی، معماری ساده‌تر و امن‌تر Podman است: بدون daemon و با اجرای rootless به‌صورت پیش‌فرض، پس سطح حمله و دردسرهای دسترسی کاهش می‌یابد و سرویس پرامتیازِ دائمی لازم نیست. مهاجرت هم کم‌اصطکاک است؛ چون Podman با CLI و فرمت OCI سازگار است و دستورات رایج مثل podman build/run عملاً جایگزین مستقیم می‌شوند. برای Compose، ابزار Podman Compose و برای رابط گرافیکی، Podman Desktop وجود دارد؛ روی macOS و Windows هم podman machine تجربه‌ای سبک و قابل‌اتکا می‌دهد. ادغام بومی با systemd، مدیریت لاگ‌ها و قابلیت‌هایی مثل pods و podman generate kube، راه را برای استفاده در CI/CD و حتی انتقال به Kubernetes هموار می‌کند. در پروژه‌های Go، ساخت چندمرحله‌ای، ایمیج‌های کم‌حجم، و mountهای rootless بدون مشکل دسترسی، چرخه توسعه و تست را سریع و قابل‌اعتماد می‌کند. هرچند تفاوت‌هایی مثل مسیر socket و جزئیات volumes نسبت به Docker وجود دارد، اما راهکارهای روشن و مستندی برایشان هست. نتیجه: اگر Docker جواب‌گو است، خوب؛ اما Podman در اکثر سناریوهای روزمره توسعه و CI تجربه‌ای امن‌تر، ساده‌تر و سازگار ارائه می‌دهد.

#Podman #Docker #Containers #DevOps #Go #GolangWeekly #Kubernetes #Security

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


👑 @gopher_academy
Forwarded from محتوای آزاد سهراب (Sohrab)
یک لایه داشتیم برای apt روی پارچ که مستقیم میومد و ترجمه می‌کرد دستورات apt رو.

متاسفانه اون صرفاً یک عادت بد رو توی کاربران نگه می‌داشت و کسی دیگه پک‌من رو یاد نمی‌گرفت.

یک لایه جدید نوشتم که دستور معادل رو به کاربر می‌گه، یک لینک از ویکی نشون میده و در نهایت هم میگه می‌خوای من برات اجراش کنم؟


@SohrabContents
Forwarded from Python Hints
چیزایی که شخصا خیلی باهاشون مشکل دارم :

۳- وقتی این NewType هیچ runtime چکی نمیده؛ چه فرقی بین
email: Email
email: str

هست؟ استفاده از اسم متغییر درست به توسعه دهنده بعدی به درستی می‌فهمونه که باید ایمیل استفاده کنه و نه چیز دیگری

اینجا باید ترجیح بدید که Email رو تبدیل به یک کلاس کنید که validation های مختلف خودش رو هم حتما داشته باشه!

۴- احساس امنیت کاذب؛ توی مورد ۱ به این موضوع اشاره کردم!
حالا بخش بدتر این قضیه کجاس ؟ دولوپرهای حواس‌پرت به mypy تکیه می‌کنند که دولپر دیگری از کدشون سواستفاده نکنه بجای اینکه دقیقا پارامتر ورودی رو بررسی کنند و اگر ایمیل ولید نیست ارور برگردونند.

۵- توی پایتون NewType چون قوانین نامگذاری شبیه به Class داره و البته که Syntax Highlight هم مثل کلاس می‌بینه باعث سردرگمی میشه!
کلاس بدون رفتار ؟
اینم موردی دیگه و یک anti-pattern دیگه

در نهایت :
NewType
چیز بدی نیست؛ جو گیری بده. وقتی سورس کد بزرگ هست و شما این موضوع رو بیش از حد پیش بردید اتفاقات قشنگی نخواهد افتاد.
دقت کنید این موارد حتی توی زبان‌های کامپایلری و lowlevel هم قفل هست.

خلاصه که هرچیزی رو در جای درست خودش استفاده کنید؛ این مورد یک فیچر هست توی پایتون که قطعا استفاده خواهد شد ولی بهتره درجای درست و برای مفهوم درست استفاده بشه!
کل صحبت نویسنده کتاب هم همین بوده که سعی کردم با مثال توضیح بدم.
‏برای یادگیری C++ دارم (گشاد گشاد) یه mini grep می نویسم. اینو میذارم اینجا که تنبلی کردم دچار شرم بشم بشینم کاملش کنم
فقط نمیدونم طبق داکیومنت grep ببرمش جلو یا از صفر مال خودمو بنویسم
https://github.com/hamedtahmasebi/mini-grep-cpp

@DevTwitter | <Hamedooo/>
Forwarded from Python Hints
image_2025-09-25_13-16-32.png
1.2 MB
نسخه با کیفیت تصویر
Forwarded from Linuxor ?
اوراکل مشغول خودستایی کردنه؛ توی معرفی جاوای 25 اون رو زبان اول دنیا توصیف کرده 🎀


@Linuxor
Forwarded from Python Hints
پرسیدید چرا نویسنده می‌گه این مورد appalling هست؟ با اینکه بنظر رفتار خیلی خوبی میاد.

من یک نمونه کد زدم که نشون بدم چرا بد هست این رفتار؛ توی این حالت من بیش از حد سخت گرفتم و همه چیز NewType هست (یا یک رفتاری رو نباید دنبال کنید یا کل کد باید یک استاندارد رو رعایت کنه)

اولین و مهمترین نکته :
توجه کنید نویسنده همین رفتار یعنی تعریف مداوم تایپ جدید برای نوع داده‌های اصلی رو بد می‌دونه!
اینکه بجای str, bool, int تایپ جدید تعریف کنید که پارامتر ورودی شما بهتر بنظر برسه!


حالا بررسی کنیم خود ایرادات وارده رو:

۱- تعریف نوع داده‌ای جدید هیچ عملکرد بهتری برای runtime بهم نمیده!
خیلی از افرادی که اینکار رو می‌کنند برای فرار از تست کردن کدها؛ فرار از نوشتن ولیدیشن؛ فرار از چک کردن پارامتر‌های ورودی و ... اینکار رو می‌کنند! این چیزی هست که شخصا بسیار توی این مدل کد زدن دیدم (قطعا هستند افرادی که اینطوری عمل نمی‌کنند ولی خب من ندیدم)

۲- خط ۹۱ کد رو ببینید؛ هرجایی از کدم که بخوام یک str یا ... رو برای این توابع استفاده کنم حتما باید توی NewType ایی که تعریف کردم بذارمش!

ادامه پست بعدی:
Forwarded from Agora (Alireza)
بین سال‌های ۹۱ تا ۹۳ مشتری مجله‌ی دنیای بازی بودم. تنها مجله‌ی بازی که اون موقع سراغ داشتم. در کنار سایت‌هایی مثل پردیس‌گیم و گیم‌فا سورس اصلی من و رفیقام (علی و محمد که اولی الان پزشکه و دومی هم آلمانه و توی فولکس واگن مشغوله) بود برای خوندن راجع‌به بازی‌ها. مجله رو من می‌گرفتم و بین زنگ‌ها یا سر کلاسا کنار هم که می‌نشستیم می‌خونیم.

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

اینجا میتونید یه سری به آرشیوشون بزنید.
Forwarded from Gopher Academy
🔵 عنوان مقاله
How Fast is Go? Simulating Millions of Particles on a Smart TV

🟢 خلاصه مقاله:
این مقاله با اجرای یک شبیه‌سازی بزرگ روی یک Smart TV نشان می‌دهد Go در عمل چقدر سریع است. نتیجه اصلی: شبیه‌سازی ۲.۵ میلیون ذره با نرخ ۶۰ فریم‌برثانیه و هم‌زمان ارسال داده با ۳۰ فریم‌برثانیه به بیش از ۳۰۰ کلاینت (و احتمالاً تا حدود هزار) ممکن شده است. ترکیب کار محاسباتی سنگین و ارسال شبکه هم‌زمان، توان Go در مدیریت بارهای بلادرنگ و استفاده مؤثر از همزمانی را نشان می‌دهد. با بهینه‌سازی تخصیص حافظه و استفاده از الگوهای همزمانی Go، تأثیر GC کم و تأخیر قابل‌پیش‌بینی باقی مانده و سیستم روی دستگاهی محدود مثل Smart TV نیز پایدار عمل می‌کند.

#Go #Golang #Performance #Concurrency #RealTime #SmartTV #Simulation #Scalability

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


👑 @gopher_academy
برنامه نویس خوش ذوق که برای هر ریلیز از کاور یه انیمه استفاده کرده
https://github.com/panjf2000/ants/releases

@DevTwitter | <Mdhesari/>
Forwarded from محتوای آزاد سهراب (Sohrab)
اینکه در توسعه #نرم‌افزارآزاد افراد توسعه دهنده رو با پشتیبانی ۲۴/۷ اشتباه می‌گیرن، از این سرچشمه می‌گیره که جا نیفتاده که توسعه دهنده ای که داره وقتش رو پای این نرم‌افزار می‌ذاره هیچ پولی دریافت نمی‌کنه، هیچ وظیفه‌ای در قبال پشتیبانی از اون نرم‌افزار هم نداره.

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

-----------------------

https://github.com/sundarnagarajan/licenses/blob/057b7ff5ddf6d2624f5920d79d4d96415a037e38/GPL-3.txt#L565


۱۵. سلب مسئولیت از ضمانت
هیچ‌گونه ضمانتی برای این برنامه وجود ندارد، تا جایی که قوانین قابل اجرا اجازه می‌دهند. مگر در مواردی که به‌طور کتبی خلاف آن ذکر شده باشد، دارندگان کپی‌رایت و/یا سایر طرف‌ها، برنامه را «همان‌طور که هست» بدون هیچ‌گونه ضمانتی ارائه می‌کنند؛ چه ضمانت صریح و چه ضمنی، از جمله (و نه محدود به) ضمانت ضمنی قابلیت فروش یا انطباق برای یک هدف خاص. تمام ریسک مربوط به کیفیت و عملکرد برنامه بر عهده شماست. اگر برنامه معیوب باشد، شما مسئول تمام هزینه‌های لازم برای سرویس‌دهی، تعمیر یا اصلاح آن خواهید بود.



هرچند که جا داره در این مورد من یک مطلب توی بلاگ خودم بنویسم و در اون بیشتر توضیح بدم.



@SohrabContents
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥

Found 9 new trending repositories:

1. humanlayer by humanlayer
📝 The best way to get AI to solve hard problems in complex codebases.
💻 TypeScript | 2,781 | 🌟 Today: 82
🔗 Link
2. yt-dlp by yt-dlp
📝 A feature-rich command-line audio/video downloader
💻 Python | 127,663 | 🌟 Today: 189
🔗 Link
3. everyone-can-use-english by ZuodaoTech
📝 人人都能用英语
💻 TypeScript | 29,150 | 🌟 Today: 458
🔗 Link
4. memvid by Olow304
📝 Video-based AI memory library. Store millions of text chunks in MP4 files with lightning-fast semant...
💻 Python | 8,762 | 🌟 Today: 186
🔗 Link
5. router by TanStack
📝 🤖 Fully typesafe Router for React (and friends) w/ built-in caching, 1st class search-param APIs, cl...
💻 TypeScript | 11,192 | 🌟 Today: 28
🔗 Link
6. x402 by coinbase
📝 A payments protocol for the internet. Built on HTTP.
💻 TypeScript | 1,225 | 🌟 Today: 95
🔗 Link
7. 30-Days-Of-Python by Asabeneh
📝 30 days of Python programming challenge is a step-by-step guide to learn the Python programming lang...
💻 Python | 49,931 | 🌟 Today: 221
🔗 Link
8. deepeval by confident-ai
📝 The LLM Evaluation Framework
💻 Python | 11,071 | 🌟 Today: 103
🔗 Link
9. onyx by onyx-dot-app
📝 Gen-AI Chat for Teams - Think ChatGPT if it had access to your team's unique knowledge.
💻 Python | 13,581 | 🌟 Today: 15
🔗 Link

🔘 @github_trending_daily
Forwarded from Linuxor ?
ورژن جدید جاوااسکریپت ECMAScript 2026 یه متود جدید به اسم try به Promise اضافه کرده

باهاش می‌تونید یه تابع sync رو با ظاهر async اجرا کنید و فرقش با حالت then اینه که این همون لحظه اجرا میشه اما then اجرا رو به میکروتسک بعدی منتقل می‌کنه، یعنی کمی تأخیر داره.


@Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 کار طراحی قالب راییوم شروع کردم

نظرت درباره Header آن چیه؟

با فریم ورک TailwindCSS زدم.

@TheRaymondDev
یک بلاگ بسیار جالب از کمپانی HuggingFace که توضیح میده چطور یک مدل سبک VLM) vision–language) تونسته مهارت‌های کار با رابط‌ کاربری رو یاد بگیره و کم‌کم تبدیل بشه به یه coding agent برای GUI. تمام پروسه را هم کامل توضیح دادند از دستورالعمل‌های آموزش، ابزارهای پردازش داده، خود مدل، دمو و دیتاست‌ها. تا کامل قابل تکرار باشه. خیلی خوبه! Blog: https://huggingface.co/blog/smol2operator

@DevTwitter | <Mehdi Allahyari/>
Forwarded from محتوای آزاد سهراب (Sohrab)
این رو هم اضافه کنم وقتی یک پروژه‌ای وبسایتی داره که توش توضیحات کاملی درمورد اون پروژه داده شده، شدیداً مضحک و مسخره است که باز بیای یکیو منشن کنی ازش سوالات تکراری بپرسی.


پارچ با ارچ چه فرقی داره؟ ویکی و سایت برای خوشگلیش نوشته نشده:

parchlinux.com/whitepaper
https://wiki.parchlinux.com/fa/Frequently_asked_questions


و صد درصد، اونایی هم که عقیده دارن کار خاصی نیست، خیلی عجیبه که باز سر سوالات تکراری که ۲۰۰ تا ویدئو توی یوتوب وجود داره درموردش سوال می‌کنن.



@SohrabContents
Forwarded from Linuxor ?
این مقاله هوش مصنوعی هم جالب بود :

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


@Linuxor
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
یکی از دوستان به یک نفر که به لینوکس مسلط باشه در تهران به صورت حضوری نیازمند هستند.

به ای دی زیر پیام بدهید.
@ShAyaann7
Forwarded from Linuxor ?
ساختن README همیشه یه کار سخت بوده، کلی زحمت می‌کشیم کد های پروژه رو می‌زنیم اما وقتی می‌رسه به README نمی‌دونیم توش چی بنویسیم‌؟ و جالب اینجاست اگه README خوب نباشه کسی جذبش نمی‌شه و ممکنه کل زحماتمون هدر بره. اینجا کلی README که خوب نوشته شدن رو جمع کرده ازش می تونید برای پروژه های خودتون الگو بگیرید:


github.com/matiassingers/awesome-readme

@Linuxor