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 CleverDevs (Mammad)
یکی دیگه از بخشای جالب Bash حلقه هاشه . توی بش یه حلقه until هم داریم که خیلی شبیه به while هست با یه تفاوت کوچیک ، توی while حلقه تا زمانی که شرطمون درسته اجرا میشه و به محض اینکه شرطمون نقض بشه تموم میشه

مثلا تو کد زیر تا زمانی که متغیرمون از 5 کوچیکتر هست شرط درسته و حلقه اجرا میشه

i=1

while [[ $i -lt 5 ]]; do
echo "CleverDevs";
let i++
done



ولی unitl برعکسه تا وقتی شرط اشتباهه حلقه اجرا میشه و به محض اینکه شرط حلقه درست بشه استپ میشه

مثلا تو کد زیر تا زمانی که شرط حلقه اشتباهه حلقه اجرا میشه ولی به محض اینکه شرط درست میشه حلقه متوقف میشه

i=1 

until [[ $i -gt 5 ]]; do
echo "CleverDevs";
let i++
done



البته با معکوس کردن شرط while کار همون until رو میکنه ولی در کل حلقه جالبی بود

#bash
@CleverDevs - @CleverDevsGp
⚡️ خب خب خب starlette چیست؟ ⚡️

ـStarlette یکی از فریم‌ورک‌های عالی برای ساخت اپلیکیشن‌های وب در پایتونه که به طور خاص برای پردازش درخواست‌ها به صورت غیرهمزمان (async) ساخته شده. این فریم‌ورک با استفاده از ASGI (Asynchronous Server Gateway Interface)
سرعت و کارایی بالایی رو به ما میده.

یکی از ویژگی‌های خوب Starlette اینه که خیلی سبک و کم‌حجم هست، به طوری که می‌تونید به راحتی ازش برای ساخت سرویس‌ها و API های پیچیده استفاده کنید بدون اینکه بخواید با پیچیدگی‌های اضافی روبه‌رو بشید. 🚀

پشت صحنه‌ی Starlette 🎬
ـASGI:
ـStarlette از ASGI به جای WSGI استفاده می‌کنه. این تغییر باعث میشه که تو بتونی درخواست‌ها رو به صورت همزمان پردازش کنی و کارایی بهتری داشته باشی، مخصوصاً در مواقعی که نیاز به پردازش‌های طولانی یا مولتی تسک داری.
ـNon-blocking I/O:
با non-blocking I/O درخواستو عملیات ها منتظر نمی‌مونن. این یعنی که هر درخواست به سرعت پردازش می‌شه و سیستم هیچ‌وقت از کار نمی‌افته.
ـEvent-driven:
ـStarlette معماری event-driven داره، به این معنی که هیچ عملیات غیرضروری انجام نمیده. فقط وقتی که یه اتفاقی بیفته، کاری انجام می‌ده، که باعث میشه سرعت پردازش بالاتر بره.
ـMiddleware:
ـStarlette کاملاً روی middleware ها بنا شده که می‌تونید به راحتی ویژگی‌هایی مثل لاگینگ، احراز هویت، یا مدیریت خطاها رو به برنامه اضافه کنید.
ـUvicorn:
معمولا از Uvicorn برای راه‌اندازی اپلیکیشن استفاده میشه که یه سرور ASGI خیلی سریع و سبک هست. این باعث میشه که اپلیکیشن شما به راحتی به HTTP/2 و WebSocket متصل بشه.
چرا Starlette سریع‌تره؟ 💨
سبک بودن:
ـStarlette به شدت مینیمال طراحی شده و چیز اضافی توش نیست که بخواد سرعت رو پایین بیاره. به همین خاطر به راحتی می‌تونید اپلیکیشن‌هایی با کارایی بالا بسازید.

پشتیبانی از async:
استفاده از async و await برای پردازش درخواست‌ها بصورت همزمان باعث میشه تا اپلیکیشن شما بدون هیچ کندی درخواست‌ها رو پردازش کنه. این یه ویژگی خیلی مهم برای اپلیکیشن‌هایی هست که نیاز به سرعت بالا دارن.

ـUvicorn:
ـ Uvicorn باعث میشه که اپلیکیشن‌ها با کمترین تأخیر و بیشترین کارایی اجرا بشن.

پشتیبانی از WebSocket:
ـStarlette از WebSocket به خوبی پشتیبانی می‌کنه که باعث میشه اپلیکیشن‌های real time سریع و کارآمد اجرا بشن.

ویژگی‌های کاربردی Starlette 🛠️
ـWebSocket:
پشتیبانی از WebSocket برای اپلیکیشن‌های realt time مثل چت یا نوتیفیکیشن‌های زنده.


ـBackground Tasks:
امکان اجرای کارهای پس‌زمینه‌ای مثل ارسال ایمیل یا پردازش داده‌ها بدون معطلی کاربر.


ـMiddleware قدرتمند:
می‌تونید به راحتی هر middleware دلخواهی رو برای احراز هویت، لاگینگ و موارد دیگه اضافه کنید.


ـRouting منعطف:
مسیرهای URL رو می‌تونید به صورت خیلی دقیق و منعطف تعریف کنید.


و...

چرا starllete باعث سرعت Fastapi میشه؟ 🔄
در حقیقت، FastAPI یه فریم‌ورک مبتنی بر Starlette هست که ویژگی‌هایی مثل Pydantic برای اعتبارسنجی و OpenAPI برای مستندسازی خودکار API‌ها و... موارد دیگه رو اضافه کرده. بنابراین، FastAPI از Starlette استفاده می‌کنه.
پس الان کاملا براتون واضح هست که چرا Fastapi سریع هست

نمونه کد ساده از Starlette 🖥️
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route

async def homepage(request):
return JSONResponse({'message': 'Hello, Starlette!'})

routes = [
Route("/", endpoint=homepage)
]

app = Starlette(debug=True, routes=routes)

برای اجرای اپلیکیشن:
uvicorn app:app --reload 


اینم سایت خود starllette
https://www.starlette.io/


شیرو و ریکشن فراموش نشه ❤️


#programming #fastapi #web



🔆 CHANNEL | GROUP
Forwarded from جادی | Jadi
شاید این ماه‌ها من به نظر خیلی کم کار بیام (: ولی در عمل ماجرا اینه که دارم یه دوره جدید و کامل پایتون با مکتبخونه ضبط می کنم و پیگیری و دقت اونها کار رو مفصل می کنه! فعلا حدود ۶۰ تا ویدئو داریم و نکات مقدماتی تا پیشرفته پایتون جدید رو توش توضیح می دم. تقریبا آخرهاشه و امیدوارم به زودی منتشر بشه.
تابع لامبدا تو پایتون یه جور تابع کوچیک و جمع‌وجوره که می‌شه تو یه خط نوشتش. خیلی ساده‌ست و لازم نیست مثل توابع معمولی با def تعریفش کنیم. بیشتر برای کارای ساده و سریع استفاده می‌شه.

تو تصویر بالا می‌تونید مثال‌ها و کاربردهای اون رو مشاهده کنید.

@DevTwitter | <Reza Jafari/>
Forwarded from Linuxor ?
یکی از نکته های مثبتی که تو دسکتاپ های لینوکسی میبینم اینه که دهنت سرویس میشه یه بازی نصب کنی ...

امروز صبح امدم رو ابونتوم یه CS GO نصب کنم یه تفریحی کنم (تازه این مال Steam هستش که زیاد مشکلی با لینوکس نداره) بعد هزار مکافات و فرووم به زور اجراش کردم اخرش وسط بازی پرید بیرون دیگه مخم نکشید زدم پاکش کردم رفتم نشستم پای کد زدن و دیباگ کردن کدام

خلاصه از صبح تا همین الان که یکه صبحه داشتم کد میزدم بلاخره باگی که چند هفته رو مخم بود رو دیباگ کردم....

ممنون لینوکس جان که نزاشتی CS GO ران بشه و focus کنم رو کارم اگه ویندوز بودم قطعا چند هفته دیگه درگیر باگه بودم.

🐧 @Linuxor
Forwarded from Linuxor ?
استفاده از chat-gpt بدون نیاز به شماره خارج از کشور !!

متاسفانه ما به علت ایرانی بودنمون نمیتونیم توی chat-gpt ثبت نام کنیم , خیلیا با شماره مجازی تونستن واردش بشن ولی بازم استفاده از شماره مجازی برای همه مقدور نیست ؛ سایت
https://freegpt.one/
با استفاده از api های chat-gpt محیطش رو براتون شبیه سازی کرده که بدون حتی ثبت نام میتونید ازش استفاده کنید.

پ.ن : توی عکس بالا ازش خواستم که یه بش اسکریپت بنویسه هر ۲۰ دقیقه ۲۰ ثانیه مانیتور رو خاموش کنه که پلک بزنید ؛ این اسکریپت برای اونایی که خشکی چشم کار با مانیتوردارن فوق العادس ...


🐧 @Linuxor
Forwarded from Go Casts 🚀
اگه برای یادگیری گولنگ یه دلیل خیلی موجه میخوای، این پست رو با دقت مطالعه کن

آخرش رو اولش بخوام بگم میشه: یادگیری برنامه نویسی بدون فریمورک
حالا این قضیه چرا مهمه؟

درک practiceهای برنامه نویسی و ترکیب کردن اونا کار سختیه. ولی وقتی درکشون کنی و تجربه به کارگیری شون رو داشته باشی، یه دریچه ای به روت باز میشه که خیلی ارزشمند هست و بهت این قدرت رو میده که با انتخاب خودت و با تحلیل خودت انواع ترکیب الگوهارو در کنار هم برای سیستم خودت بسته به نیازت به کار بگیری.

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

گولنگ مزیت بزرگش یادگیری بدون فریمورک همین الگوهاست. بعد از یه مدت که الگوهای مختلف رو خودت تو گولنگ به کار میگیری با خیلی هاشون به اندازه کافی آشنا میشی و برای پروژه های جدیدت با خیال راحت تر و دست باز تصمیم میگیری چه ترکیبی از practiceهارو استفاده کنی.
گولنگ زبان جمع و جوریه و این خودش باز باعث میشه خیلی نتونی تو پیاده سازی الگوها شیوه های مختلفی رو به کار بگیری که انتخاب شیوه پیاده سازی وسواس برات ایجاد کنه.

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

@gocasts
از DeepSeek-V3 بگیم که یه مدل با هزینه کم به حساب میاد.
یه آزمایشگاه چینی این مدل رو توی ۲ ماه با ۵.۵ میلیون دلار ساخته که میشه مقایسه کرد با آموزش GPT-4o با ۱۰۰ میلیون دلار هزینه.
در واقع میشه یه مدل AI اوپن‌سورس ترکیبی و (Mixture-of-Experts یا MoE). یعنی به جای یه مدل بزرگ که همه‌کاره باشه، میان چند تا مدل «تخصصی» کوچیکتر میسازن که با هم کار میکنن.

با ۱۴.۸ تریلیون توکن آموزش داده شده، از تکنیک‌های جدیدی مثل Multi-Head Latent Attention (MLA) استفاده کردن.

برای توضیح این تکنیک باید به اصل «مفهوم توجه» یا همون Attention توی مدل‌های زبانی نگاه کنیم.
در مدل‌های زبانی، «توجه» یه مکانیزمه که به مدل اجازه میده تا روی کلمات مهم‌تر تمرکز کنه و کلمات کم‌اهمیت‌تر رو نادیده بگیره. این بهش کمک میکنه ارتباط کلمات رو بیشتر بفهمه و جواب بهتری بده.

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

طراحی و آموزش این مدل هم روی چیپ NVIDIA H800 بوده که میشه یه مدل ارزون و محدود از H100 برای بازارهای تحریمی مثل چین.

از ویژگی‌هاش توانایی پردازش تا ۱۲۸۰۰۰ توکن در یه ورودی که برای کارهایی مثل بررسی اسناد قانونی و تحقیقات دانشگاهی خیلی خوبه. ین مدل ۶۷۱ میلیارد پارامتر داره، اما گفته میشه فقط ۳۷ میلیاردش برای انجام هر کار فعال میشه.

تو آزمون‌های مختلف با مدل‌های دیگه مثل Claude-3.5، GPT-4o، Qwen2.5 و Llama3.1 مقایسه شده و عملکرد خوبی داشته. به خصوص تو ریاضیات و کدنویسی، تو آزمون‌هایی مثل MATH-500 و LiveCodeBench از رقباش بهتر بوده. همچنین تو کارهایی که نیاز به درک متن‌های طولانی داره خیلی خوبه.

@DevTwitter | <Soroush Ahmadi/>
Forwarded from جادی | Jadi
می پرسن «چرا با مکتبخونه؟»

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

۱. کارهای خیلی طولانی و بدون سر فصل مشخص رو من به تنهایی خیلی سخت پیش می‌برم؛ زور و مدیریت که بالا سرم باشه اما تموم می‌شه (: خودم ۷۰ قسمتی در مورد پایتون نمی‌ساختم و اگر می‌ساختم تمرین و تکلیف و حل تمرین و .. نمی‌داشت.

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

۳. همیشه در مورد کارهای من پذیرفته که روش هایی باشه که کسانی که مشکل مالی دارن هم به محتواها دسترسی پیدا کنن.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 یه کتابخانه کوچیک برای نمایش لیست تگ ها با قابلیت افزودن و حذف آن نوشتم که مشابه setect2 است.

گیت هاب :

https://github.com/Rayiumir/list-tags

#معرفی

@TheRaymondDev
خبر خفن امروز 😁
This media is not supported in your browser
VIEW IN TELEGRAM
#fun

نحوه دیباگینگ در برنامه نویسی 😂

🚀 @coolycode
This media is not supported in your browser
VIEW IN TELEGRAM
آماده کردن محیط برنامه نویسی از جمله کارهای مهمی هست که هر دولوپر یا برنامه نویس کلی براش وقت میذاره، چون که قراره دائما باهاش کار کنه. این ریپو یک template درست کرده و قدم به قدم توضیح میده که چطور محیط پایتون را با استفاده از VS code و داکر با هم آماده کنید. یکبار set up میکنید و دیگه راحت میشید. البته میشه برای زبان های دیگه هم تغییرش داد و ازش استفاده کرد.
github: https://github.com/RamiKrispin/vscode-python

@DevTwitter | <Mehdi Allahyari/>
Forwarded from CleverDevs (Mammad)
یکی از آشناها برای پروژه ای نیاز به برنامه نویس ios داره
اگه تجربه ای تو این زمینه دارید برای حرف زدن درباره شرایط کار میتونید پیوی پیام بدید


@CleverDevs - @CleverDevsGp
Forwarded from Linuxor ?
اگه خواستین سرور بخرین این ریپو اومده لیستی از ارائه دهنده های خارجی رو همراه با قیمت و مقدار پلن Trial شون نوشته

https://github.com/dalisoft/awesome-hosting

@Linuxor
در ریپوی Awesome Ghostty روی گیت‌هاب، مجموعه‌ای از ابزارها و شیدرهای اختصاصی برای ترمینال Ghostty داره لیست میشه.

https://github.com/fearlessgeekmedia/Awesome-Ghostty

@DevTwitter | <Yaser Shahi/>
Forwarded from Syntax | سینتکس (Daimon)
توی پایتون بجای isinstance از singledispatch استفاده کن!

۱. ابتدا دو کلاس با استفاده از @dataclass تعریف میکنیم:
@dataclass
class UserCanceledSubnoscription:
username: str

@dataclass
class UserSubscribed:
username: str

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

۲. روش اول با استفاده از isinstance:
def process(event):
if isinstance(event, UserSubscribed):
print(f"Enable access to user {event.username}")
elif isinstance(event, UserCanceledSubnoscription):
print(f"Disable access to user {event.username}")

در این روش، برای هر نوع رویداد یک شرط if نوشته شده که نوع رویداد را چک می‌کند.

۳. روش دوم با استفاده از singledispatch:
@singledispatch
def process(event):
pass

@process.register(UserCanceledSubnoscription)
def _(event):
print(f"Disable access to user {event.username}")

@process.register(UserSubscribed)
def _(event):
print(f"Enable access to user {event.username}")

در این روش، برای هر نوع رویداد یک تابع جداگانه تعریف می‌شود که فقط برای آن نوع خاص اجرا می‌شود.

مزایای استفاده از singledispatch:

۱. کد تمیزتر: به جای زنجیره‌ای از `if/elif`، هر منطق در یک تابع جداگانه قرار می‌گیرد.

۲. قابلیت توسعه بهتر: اضافه کردن نوع جدید فقط نیاز به اضافه کردن یک تابع جدید دارد، نه تغییر کد موجود.

۳. جداسازی مسئولیت‌ها: هر تابع فقط مسئول پردازش یک نوع خاص است.

۴. کاهش پیچیدگی: به جای یک تابع بزرگ با شرط‌های متعدد، چندین تابع کوچک و ساده داریم.

نحوه کار:
- @singledispatch
یک تابع پایه تعریف می‌کند
- @process.register()
توابع مختلف را برای انواع مختلف ورودی ثبت می‌کند
- در زمان اجرا، بر اساس نوع ورودی، تابع مناسب فراخوانی می‌شود

کاربرد این الگو در مواردی مثل:
- پردازش انواع مختلف پیام‌ها یا رویدادها
- تبدیل داده‌ها بین فرمت‌های مختلف
- اعمال عملیات‌های متفاوت روی انواع مختلف داده
- پیاده‌سازی الگوی Observer یا Event Handler

نمونه استفاده نهایی:
events = [
UserSubscribed(username="johndoe"),
UserCanceledSubnoscription(username="johndoe"),
]

for event in events:
process(event)


این کد به طور خودکار تابع مناسب را برای هر نوع رویداد فراخوانی می‌کند.

#python #singledispatch

@Syntax_fa
👍1
Forwarded from Geek Alerts
الگوریتم‌هایی جدید در توییتر قراره محتوای آموزنده و سرگرم‌کننده‌ رو بیشتر نشون بده. ایلان ماسک میگه هدفمون اینه کاربرها بدون پیشمونی از این پلتفرم استفاده کنن، الان محتوای منفی زیاد هست که نتیجش اینه کاربرها بعد چک کردن توییتر حس خوبی ندارن.

واکنش‌های مثبت بیشتر بودن و کاربرها استقبال کردن که توییتر یا همون x میتونه ارزشمند‌ترین سوشال برای یادگیری باشه.

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

در کنار این گفتن دارن روی کاستوم کردن فید یا home توییتر هم کار میکنن که بتونید تنظیم کنید در لحظه چی جور محتواهایی رو ببینید.
x
@geekalerts
Forwarded from Geek Alerts
سایت اختصاصی مدل Grok راه‌اندازی شد. فعلا با ای‌پی هند باز میشه.
ایلان ماسک در توییتی توضیح داد که مدل گراک ۳ در راه هست.

این مدل جدید ۱۰ برابر قدرت محاسباتی بیشتر نسبت به گراک ۲ داره و از طریق توییتر اکس یا سایت رسمی و جدید گراک میشه به اون دسترسی داشت.
grok.com
@geekalerts
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰هشدار فوری: پایان پشتیبانی از ویندوز 10 و تاثیر آن بر 32 میلیون کامپیوتر
🔰شرکتESET آلمان اخیراً یک پست وبلاگ جدید منتشر کرده است(کارشناس امنیت IT شرکت ESET آلمان، تورستن اوربانسکی)

🔹در آن به پایان پشتیبانی از ویندوز 10و تأثیر آن بر حدود 65٪ یا تقریباً 32 میلیون کامپیوتر در این کشور پرداخته است. این شرکت امنیتی نگرانی خود را در این زمینه ابراز کرده است، زیرا اکثریت قریب به اتفاق مالکان رایانه‌های دسکتاپ هنوز از سیستم عامل قدیمی استفاده می‌کنند که آنها را در معرض آسیب‌پذیری قرار می‌دهد. به همین دلیل، این شرکت توصیه می‌کند که به ویندوز 11 ارتقا یابند.

🔹این وضعیت از زمانی که پشتیبانی از ویندوز 7 در اوایل سال 2020 پایان یافت، خطرناک‌تر است.

🔹مجرمان سایبری این آمار را به خوبی می‌دانند و فقط منتظر روزی هستند که پشتیبانی تمام شود.

🔹حدود 65 درصد از کاربران در آلمان از ویندوز 10 استفاده می‌کنند . همچنین در اتریش (63 درصد) و سوئیس (56 درصد) اکثریت کاربران هنوز از سیستم‌عامل رو به پایان ویندوز استفاده می‌کنند. مایکروسافت هنوز به‌طور منظم به‌روزرسانی‌های امنیتی برای ویندوز 10 منتشر می‌کند، اما از تاریخ 14 اکتبر 2025 این به‌روزرسانی‌ها پایان خواهد یافت و آسیب‌پذیری‌های جدید امنیتی دیگر برطرف نخواهند شد

📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir