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 Python BackendHub (Mani)
تو بحث کردن دو روش داریم:
Strawman: یعنی ضعیف‌ترین و دم‌دستی‌ترین برداشت از حرف طرف مقابل رو می‌گیری و همونو می‌کوبی.
Steelman: یعنی قوی‌ترین و منطقی‌ترین نسخه از حرف طرف مقابل رو تصور می‌کنی و بعد اونو نقد می‌کنی.

تو بحث‌های تکنیکال و تو حوزه خودمون، حداقل steelman باشید. یعنی قبل از اینکه یه ایده رو بکوبید، سعی کنید بهترین حالت ممکنش رو در بیارید و بعد نقد کنید. ولی می‌بینم یک عده اخیرا کلا دلیلی نمیارن؛ ایده رو از بیسیک می‌زنن و میگن «کلا خوب نیست» بدون حتی یه خط استدلال! جملشون هم انگلیسی مینویسن که مثلا جذبه بیشتری داشته باشه :)) اینطوری نه بحث جلو میره، نه کسی چیزی یاد می‌گیره. اگه می‌خواید نقد کنید، اول قوی‌ترین نسخه‌ی ایده رو بسازید، بعد برید سراغ نقد.

@PyBackendHub
Forwarded from محتوای آزاد سهراب (Sohrab)
خب آموزش گنو/لینوکس رو دوباره از سر گرفتم، این دفعه از صفر شروع کردیم و مستقیماً با خود پارچ آموزش دادن رو شروع کردم.


در آینده به سراغ مسائل دیگه‌ای از قبیل دستورات، مدیریت سرویس‌ها، مدیریت توزیع و .... خواهیم رفت.


تماشا از یوتوب


تماشا از پیرتوب


تماشا از آپارات


@SohrabContents
Forwarded from Python BackendHub (Mani)
یک سوال رو میخوام مطرح کنم , شما یک فانکشن parent دارید. داخل این فانکشن شما باید یوزر رو بگیرید (`getUser`) و بعد سه تا فانکشن inner1 و inner2 و inner3 رو صدا بزنید و یوزر رو بهشون بدید تا یک پردازشی تو دیتابیس انجام بده.
فانکشن inner1 و inner2 یوزر آیدی میگیرن و نیاز دارن یوزر لاک باشه تو دیتابیس وگرنه ممکنه ریس کاندیشن بخوره. ولی فانکشن ۳ براش مهم نیست چون پردازشی که میکنه ریس کاندیشن نمیخوره.

سوالی که پیش میاد اینه که شما چطور توابعتون رو طراحی میکنید که این مشکل به وجود نیاد؟ کدتون احتمالا این شکلیه.


def parent():
user = get_user(lock=True)
inner1(user)
inner2(user)
inner3(user)


همونطور که میبینید نحوه استفاده inner1 و inner2 کاپل شده به یوزر. من اگه حواسم نباشه lock=true رو نذارم کدم در برابر ریس کاندیشن سیف نیست. اگه یک نفر دیگه یک جای دیگه دوباره inner1 رو استفاده کنه و یادش بره یوزر رو لاک کنه بازم همین مشکلو داریم. درواقع یک استیت مشترک بین چند فانکشن داریم که فقط میشه چشمی دنبالش کرد... قبل اینکه پست بعدیو بخونید یکم بهش فکر کنید ببینید راه حلی داره این موضوع؟


@PyBackendHub
Forwarded from Python BackendHub (Mani)
برند تایپ یا همون New Type یعنی یه تایپ جدید بسازی رو همون تایپ قدیمی، بدون این که تو ران‌تایم هیچ خرجی داشته باشه. یه جورایی مثل اینه که سابکلس بسازی ولی واقعاً سابکلس نکردی.

فایده‌ش چیه؟ به تایپ‌چکر می‌فهمونی مثلا UserId با یه string فرق داره. تو ران‌تایم هردوش استرینگن ولی تو تایپ دیگه یکی نیستن.

تو مثال ما، یه UserId درست می‌کنیم، بعد یه برند جنریک به اسم Locked<T>. اگه تو getUser(true) صدا بزنیم خروجیش میشه Locked<UserId>. حالا توابعی که می‌خوان یوزر لاک شده باشه فقط همینو قبول می‌کنن. یعنی دولوپر مجبوره قبل استفاده یوزر رو لاک کنه، وگرنه تایپ‌چکر گیر میده و کدت دیپلوی نمیشه.

اگه اینو نداشتیم، باید تو هر تابع دوباره یوزر رو لاک می‌کردیم که هم تکراری میشه هم ران‌تایم گرون‌تر.

مزایا:
- جلوی خطا رو می‌گیره
- خودش یه جور داکیومنت زنده‌ست
- یه بار لاک می‌کنی، ران‌تایم سریع‌تره
- نگه داری کدتون رو راحت تر میکنه (maintainability)

ضررش؟ فقط دو سه خط تایپ بیشتر می‌نویسی، همین. که البته مقایسه کنی با کدی که باید بیشتر مینوشتی چون این تایپا رو نداشتی هیچ بود.

@PyBackendHub
اخیراً فرصتی شد که سراغ Goravel برم و کمی باهاش کار کنم.
فریموورک Goravel در واقع یک فریم‌ورک شبیه به Laravel اما برای زبان Go هست. چیزی که برام خیلی جالب بود اینه که دقیقا همون حس و حال لاراول رو منتقل می‌کنه؛ از ساختار پوشه‌ها گرفته تا ORM به سبک Eloquent، migrationها و حتی سیستم queue و job.
اگر قبلاً با Laravel کار کرده باشید، ورود به Goravel خیلی راحت میشه و می‌تونید سریع پروژه‌هاتون رو توی Go استارت بزنید. سرعت بالای Go هم در کنار معماری آشنا و تمیز لاراول باعث میشه تجربه جذابی باشه.
به نظرم برای کسایی که دنبال قدرت و سرعت Go هستن ولی در عین حال نمی‌خوان از دنیای راحتی و productivity لاراول جدا بشن، Goravel می‌تونه انتخاب خیلی خوبی باشه.
لینک پروژه:
https://goravel.dev

@DevTwitter | <ehsan moradi/>
Forwarded from Gopher Academy
اخیراً فرصتی شد که سراغ Goravel برم و کمی باهاش کار کنم.
فریموورک Goravel در واقع یک فریم‌ورک شبیه به Laravel اما برای زبان Go هست. چیزی که برام خیلی جالب بود اینه که دقیقا همون حس و حال لاراول رو منتقل می‌کنه؛ از ساختار پوشه‌ها گرفته تا ORM به سبک Eloquent، migrationها و حتی سیستم queue و job.
اگر قبلاً با Laravel کار کرده باشید، ورود به Goravel خیلی راحت میشه و می‌تونید سریع پروژه‌هاتون رو توی Go استارت بزنید. سرعت بالای Go هم در کنار معماری آشنا و تمیز لاراول باعث میشه تجربه جذابی باشه.
به نظرم برای کسایی که دنبال قدرت و سرعت Go هستن ولی در عین حال نمی‌خوان از دنیای راحتی و productivity لاراول جدا بشن، Goravel می‌تونه انتخاب خیلی خوبی باشه.
لینک پروژه:
https://goravel.dev

<ehsan moradi/>
👎1
کی‌تورنت یک کارخواه (Client) پروتوکل BitTorrent است که توسط کی‌‌دی‌ای توسعه داده شده است.
این کارخواه قابلیت‌های مهم و جذابی ارائه می‌کند از جمله:
1-صف‌بندی تورنت‌ها و اولویت‌بندی بین آن‌ها
2-اعمال محدودیت سرعت بر بارگیری و بارگذاری تورنت‌ها
3-قابلیت پیش‌نمایش اسناد صوتی یا ویدیویی در هنگام بارگیری
4-وارد کردن اسناد نیمه‌بارگیری شده برای ادامه دادن بارگیری
5-اعمال اولویت‌بندی دانلود اسناد در تورنت‌های چند سندی
6-پروکسی و رمزگذاری پروتکل برای امنیت بیشتر

می‌توانید در این پیوند اطلاعات بیشتری راجع به کی‌تورنت کسب
کنید.
#چیز‌های_کی‌دی‌ای
@kde_fa
Forwarded from ‌BenDev
متاسفانه خیلی از کانال‌ها هنوز «پایتون مدرن» رو جدی نمی‌گیرن؛ مخصوصا بحث type hints و هم‌روندی.
بعضی‌ها فکر می‌کنن اینا فقط یه آپشن تزئینی هستن، نه چیزی حیاتی.

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

اما اون دلیل چیه؟ می‌تونی حدس بزنی خودت؟

اوایل تصور می‌کردن پایتون و جاوااسکریپت فقط برای اسکریپت‌های دم‌دستی یا پروژه‌های کوچیک خوبن و اگه بحث enterprise باشه باید سراغ جاوا بری.
اما بعدا دیدن واقعیت اینه که:

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

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

پس:
برای هندل کردن درخواست‌های سنگین → Concurrency
برای نگهداری کدبیس بزرگ و تمیز → Strong Typing

@BenDevelop
Forwarded from Gopher Academy
🔵 عنوان مقاله
Observe Live SQL Queries in Go with DTrace

🟢 خلاصه مقاله:
این مطلب از Golang Weekly نشان می‌دهد چطور با استفاده از DTrace بدون تغییر کد و توقف سرویس، کوئری‌های SQL را در برنامه‌های Go به‌صورت زنده مشاهده کنیم. نویسنده با معرفی کوتاهی از DTrace به‌عنوان یک ابزار ردیابی پویا و کم‌سربار، قدم‌به‌قدم نحوه راه‌اندازی روی سیستم‌عامل‌های پشتیبانی‌شده، اتصال به پردازه در حال اجرا و نوشتن اسکریپت‌های ساده برای دیدن متن کوئری، زمان اجرا و الگوهای فراوانی را توضیح می‌دهد؛ همراه با فیلترگذاری برای محدود کردن خروجی به سرویس/کاربر/درایور موردنظر و نکاتی برای حفظ سربار کم.

کاربرد این روش، عیب‌یابی سریع مسائلی مثل کوئری‌های کند، الگوهای N+1، شاخص‌های مفقود و ORM پرحرف در شرایط واقعی تولید است. این رویکرد مکمل لاگ‌ها و APM است و امکان تشخیص فوری و تأیید سریع اصلاحات را می‌دهد. در بخش ملاحظات، به تفاوت پشتیبانی پلتفرم‌ها (مثل FreeBSD و برخی نسخه‌های macOS؛ و پیشنهاد eBPF روی Linux)، نیاز به دسترسی‌های بالا، حساسیت داده‌های متنی کوئری و ضرورت سنجش سربار در محیط staging اشاره می‌شود.

#Go #DTrace #SQL #Observability #Performance #GolangWeekly #eBPF #Database

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


👑 @gopher_academy
Forwarded from Linuxor ?
یه چیز مهندسی بهتون یاد بدم درباره نظرات یک ستاره :)

اول اینکه یک ستاره نشونه آشغال بودن محصول، اپلیکیشن یا خدماتی هست که ارائه می‌دید و باید تلاش کنید(کنم) که بهترش کنید(کنم)

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


@Linuxor
Forwarded from LinNews (Benyamin)
یک کاربر ردیت با موفقیت بایوس RX 9070XT را در نسخه معمولی (RX 9070) فلش کرد. تا ۲۵ درصد افزایش عملکرد مشاهده می‌شود!
#AMD #GPU #Radeon

کارت‌گرافیک PowerColor RX9070 کاربران ساب‌ردیت Radeon، تا 25 درصد در بنچمارک‌ها و حدود 8 تا 12 درصد در بازی‌ها افزایش عملکرد داشته است.
در بنچمارک 3DMark Steel Nomad، نسخه عادی در حالت پیشفرض به امتیازی حدود 5,821 می‌رسد. درحالی‌که همان کارت‌گرافیک با بایوس XT تا 6,461 امتیاز کسب می‌کند و با کمی دستکاری در ولتاژ و سرعت کلاک حافظه، حتی به امتیاز 7,277 نیز می‌رسد که در برابر حالت پیشفرض، افزایش عملکرد بسیار قابل توجه است.
بعلاوه، کاربر مذکور گفته است که vBIOS را با ابزاری اوپن‌سورس (منتشر شده در Overclock.net) فلش کرده است.
منبع خبر
به ما بپیوندید :
@LinNews | @LinAcademy
ابزار Django-MG یک ابزار سریع برای ساخت مدل‌های جنگو بدون نیاز به پیکربندی است. فقط با چند دستور کوتاه و انتخاب کدهای عددی می‌توان مدل‌ها را با فیلدهای آماده تولید کرد.
ویژگی‌ها
تولید خودکار مدل با فیلدهای متنوع (CharField, Money, DateTime و …) با کدهای عددی.
پشتیبانی از افزونه‌های جانبی مثل django-money، django-ckeditor، django-taggit و غیره.
مناسب برای پروژه‌های سریع، نمونه‌سازی و کاهش خطا در تعریف مدل‌ها.

https://pypi.org/project/django-mg/

@DevTwitter | <خالی/>
Forwarded from a pessimistic researcher
بخشی از کلاس سیستم عامل استاد روحانی در مورد ترجمه اصطلاحات فنی علم کامپیوتر :)))
AI.Rahnemon-@Computer_IT_Engineering.rar
767.7 MB
فیلم های آموزشی هوش مصنوعی (فارسی) دکتر رامین رهنمون،117 قسمت همه در یکجا با حجم 767MB
#ویدئو #فیلم #هوش_مصنوعی
#Video #Artificial_Intelligence #ArtificialIntelligence #AI
@Computer_IT_Engineering
AI.AskarZade-@Computer_IT_Engineering.pdf
2.9 MB
کتاب درس هوش مصنوعی Artificial Intelligence (فارسی) 406 صفحه، حسن عسکرزاده، دانشگاه پیام نور
#کتاب #هوش_مصنوعی
#Book #Artificial_Intelligence #ArtificialIntelligence #AI
@Computer_IT_Engineering
مدتیه روی یکی از پروژه هام کار می کنم و در این مسیر به یک Slider نیاز داشتم. در ابتدا به دلیل آشنایی قبلی، سراغ Swiper رفتم. اما زمانی که بحث ریسپانسیو مطرح شد، متوجه شدم کار کردن با اون پیچیدگی های زیادی داره و زمان زیادی رو صرف رفع مشکلاتش کردم، بدون نتیجه مطلوب.

بعد از بررسی گزینه های دیگه، با Keen-Slider آشنا شدم و تجربه کار با اون بسیار روان تر و ساده تر بود.


مزایای Keen-Slider:
- استفاده آسان و بدون دردسر
- سازگار با ساختارهای flex و grid (بدون ایجاد اختلال در عملکرد)
- مستندات کامل همراه با مثال های کاربردی
- ریسپانسیو کردن بسیار ساده و سریع


معایب Swiper (از نگاه من):
- پیچیدگی و دشواری در پیاده سازی
- مشکل جدی در سازگاری با flex و grid هنگام ریسپانسیو


در مجموع، تجربه من از کار با Keen-Slider بسیار مثبت بود و استفاده از اون رو به سایر توسعه دهنده ها توصیه می کنم.

@DevTwitter | <Sahand Feizi/>
Forwarded from Linuxor ?
تشخیص چهره توی مرورگر

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

ایده جالبیه برای مرورگر، بخش آموزش هم داره :

github.com/justadudewhohacks/face-api.js

@Linuxor