Coding Lovers
2.02K subscribers
189 photos
16 videos
19 files
232 links
:همه شبکه های اجتماعی یکجا 🌐
Zil.ink/codinglovers

📌 تبلیغات:
@CodingLoversAds

:گروه 🍻
@CodingLovers_GP

:حرفی سخنی 🧑‍💻
@Amir_OfficiaI

:ثبت نمونه کار 🪄
@CodingLovers_result
Download Telegram
بیاید راجب لایبرری های http پایتون حرف بزنیم ...

1. پرطرفدار و قدیمی requests 🎖️
دیگه همتون اینو میشناسید، 13 میلیارد دانلود داشته، و اخرین اپدیت مال ۱ ماه و نیم پیش
راجبش دیگه توضیح اضافی نمیدم.
تعداد باگ های گزارش شده: نامشخص ( طرف گیتهابشو نگاه نمیکنه حتی بخواد باگ هارو دسته بندی کنه )
مزایا:
- بشدت راحت
- کامیونیتی قوی
- خیلی کم پیش میاد مشکلی توش بخورید
- همه پروتوکل های auth رو ساپورت میکنه
- باهاش میتونید حالت stream کار انجام بدید

🔴 معایب:
- سرعت بشدت پایین
- به صورت اسینک قابل استفاده نیست
- اصلا اپدیت نیست و ورژن های جدید http ساپورت نمیکنه
- قابلیت trailers در HTTP ساپورت نمیشه

2. پرقدرت و سریع aiohttp
یه لایبرری async برای http پایتونه که خیلی سریعه و با cython و c نوشته شده بخش بزرگیش ...
۳ میلیارد دانلود داشته و اخرین اپدیت مال ۲ روز پیش
📨 تعداد باگ های گزارش شده: 185
مزایا:
- سرعت بشدت بالا
- کامیونیتی قوی
- همه پروتوکل های auth رو ساپورت میکنه
- باهاش میتونید حالت stream کار انجام بدید
- نه تنها client هستش، بلکه یک لایبرری برای web server هم هستش
- پشتیبانی از websockets

🔴 معایب:
- به صورت sync قابل استفاده نیست
- ورژن های جدید http ساپورت نمیشه
- قابلیت trailers ساپورت نمیشه
- توی استفاده از loop خیلی اذیت میکنه
- فقط asyncio پشتیبانی میشه
- جدیدن توی استفاده پروکسی مشکل TLS in TLS خورده ( توضیحش سخته گوگل بزنید )

3. عشق من httpx ❤️
یه لایبرری که هم حالت async و هم حالت sync داره و سرعتش قابل قبوله ( نزدیک به aiohttp )، و هرچیزی ک فکرشو کنید پشتیبانی میشه ...
۱ میلیارد دانلود داشته و اخرین اپدیت مال هفته پیش
📨 تعداد باگ های گزارش شده: 1
مزایا:
- سرعت قابل قبول
- کامیونیتی کمتر از اون دوتا
- همه پروتوکل های auth ساپورت میشه
- پشتیبانی از websockets ( پکیج مجزا )
- پشتیبانی همزمان از trio و asyncio
- پشتیبانی از هردو حالت sync و async
- پشتیبانی از حالت trailers
- درحد requests ساده
- پشتیبانی از ورژن های جدید http

🔴 معایب:
- میتونست سریع تر باشه
- مجبوری برای هرکلاینت، فقط یک پروکسی ست کنی ( درواقع نمیتونی سر هردرخواستت پروکسی مشخص کنی، باید همون اول موقع ساخت کلاینت پروکسیو مشخص کنی )


کلی لایبرری دیگه هم هست ولی معروف ترین و بهترین هاشون همینان 🔥

پ.ن: پیشنهاد میکنم به httpcore هم یه سر بزنین اگه سرعت براتون مهمه، چون بیشترین سرعت رو داره ( httpx هم از همین استفاده میکنه اما سرعتش خب از aiohttp کمتره نمیدونم چرا )
9👍5🔥1
متود های لیست توی پایتون با مثال ⚡️

#FreeDurov
212👍4
آموزش برنامه نویسی نبین
جاش یه دقیقه وقت بزار اینو ببین:
👨🏻‍💻 https://youtu.be/OKvQtUaaQEU
8🔥4👍1😁1
😐 همه توزیع های لینوکس رو یجا تست کن!

اگه میخوای لینوکس بریزی و نمیدونی کدوم توزیع رو علاقه داری 🗨️
یا به هردلیلی میخوای توزیع هارو بدونه نصب کردن تست کنی

فقط کافیه بری به سایت https://www.distrosea.com
توزیعی ک میخوای رو انتخاب کن و راحت تستش کن، حتی بوت شدنش هم میتونی تست کنی

پ.ن: حتما باید با PC برید
5👍1
جواب این کد بنظرتون چیه؟

const years = [1, 2, 3];
console.log(years + 100);

نظرسنجی نمیزارم فقط میخوام یکم برگامون بریزه
🤣11👍2
بازم از عجایب Js اوردم براتون:

let arr = [];
arr[1] = 10;
console.log(arr);
// Array [ <empty slot>, 10 ]

یه تنه تمام منطق های برنامه نویسی رو زیر سوال برده
میترسم بعد از یاد گرفتنش، زبانای دیگم رو فراموش کنم 😐😐
🤣15
برنامه PDANet، انتقال فیلترشکن گوشیت به سیستمت!
این برنامه رو چند روز پیش چنل Code Explore معرفی کرده بود، خیلی به کارم اومد گفتم منم راجبش پست بزارم.

این برنامه به شما این امکان رو میده که فیلترشکن گوشیتون رو به سیستم‌تون شیر کنید؛ چجوری؟ با استفاده از proxyایی که خودش برا خودش میسازه.

🎖️ این برنامه برای Android و iOS و Windows درست شده، اما میشه با یکم زحمت داخل linux و macos هم ازش استفاده کرد

◀️ لینک دانلود

روش استفاده در Linux:
قراره یکم براتون عجیب باشه، ولی خب. برنامه رو داخل گوشیتون نصب کنید. WiFi گوشی خودتون رو روشن کنید ( بله WiFi، هات اسپات نه ). دکمه WiFi Direct Hotspot رو بزنید، یه حالتی هات اسپات شکل میگیره و بهتون یه ip و port میده. حالا داخل سیستم بهش وصل شید، و داخل هربرنامه ای که استفاده میکنید، به اون ip و port به عنوان پروکسی http متصل بشید و تمام.

پ.ن: فقط لینوکس دارم بقیه رو بلد نیستم
👍53
نه داداش الان با اکانت واتسپ اومدیم اینجا :)
🤣26👍1🔥1😁1
هرگز با itertools.cycle شوخی نکنید.
امروز حواسم نبود زدم کل سرور رو باهاش ترکوندم

برای اینکه عمق انفجار رو درک کنید:

files = [
f"a.{i}" for i in itertools.cycle(["zip", "txt"])
]
😁1
Coding Lovers
هرگز با itertools.cycle شوخی نکنید. امروز حواسم نبود زدم کل سرور رو باهاش ترکوندم برای اینکه عمق انفجار رو درک کنید: files = [ f"a.{i}" for i in itertools.cycle(["zip", "txt"]) ]
خُب، itertools.cycle یه جور چرخشِ بی‌پایان توی یه لیست یا هر چیز قابل شمارش (iterable) دیگه ایجاد می‌کنه.

فرض کن یه لیست از میوه‌ها داری: ['سیب', 'موز', 'گلابی'].
وقتی این لیست رو به itertools.cycle می‌دی، یه iterator می‌گیری که می‌تونی باهاش بارها و بارها از این میوه‌ها استفاده کنی:

1. اول: 'سیب'
2. دوم: 'موز'
3. سوم: 'گلابی'
4. چهارم: 'سیب' (از اول شروع میشه)
5. پنجم: 'موز' (و به همین ترتیب)

یعنی این چرخش هیچ وقت تموم نمی‌شه و به طور مداوم میوه‌ها رو بهت میده.

پ.ن:
گفتم شاید جالب باشه برای اونایی که نمیدونن، بدونن این فانکشن چه کاری می‌کنه.
پس خودم یه توضیحی راجبش نوشتم، ولی حس کردم یکم پیچیده است به Gpt گفتم ساده اش کنه اینو داد
👍63
تو این ویدیو ۵ تا از مهم‌ترین تکنیک‌هایی که برنامه‌نویس‌های خوب پایتون استفاده می‌کنن رو یاد می‌گیریم.
اگه می‌خوای کدهات تمیزتر و حرفه‌ای‌تر بشه، این ویدیو رو از دست نده!

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

از اینجا ببینید:
https://youtube.com/@CodingLovers
11
میدونین نرم افزار ها از چه قوانینی برای ورژن‌شون استفاده میکنن؟
امروز یه پروژه ای رو دیدم که هیچ قانونی رو دنبال نمیکرد ( و از قضا ایرانی هم بود 😐💔 )، به سرم زد درباره ورژن بندی توضیح بدم.

1. Semantic Versioning (SemVer)
از پراستفاده ترین 🔥 روش های ورژن بندی، که تشکیل شده از این فرمت
MAJOR.MINOR.PATCH
که تغییر دادنه هرکدوم قوانین خودش رو داره
فرمت کامل تر:
MAJOR.MINOR.PATCH[-beta][+number]

مثال:
1.0.4-beta+132483

2. CalVer (Calendar Versioning)
تاریخ انتشار 📅 رو میزارن به عنوان ورژن برنامه ( اینستاگرام این کار رو میکنه فکر کنم )
فرمت:
YYYY.MM.DD
مثال:
2024.8.12

3. Incremental Versioning
1️⃣ هیچ قانونی نداره فقط یه عدد میزاری برای هر ورژن. مثلا داخل api ها کاربرد داره. برای مثال مسیر یه api میتونه اینجوری باشه:
/api/v2
/api/v3

4. Revision Control Versioning
اینجا بحث عدد نیست. برای هر ورژن یک hash در نظر میگیریم ( مثلا a6wyehb48 ) و قانون خاصی نداره. از این روش git برای ورژن بندی کردن و کنترل پروژه استفاده میکنه

باز هم روش هایی هست ولی پراستفاده ترین و معقول ترین هاش همینان ...

راجب Semver پست خواهم گذاشت ...
1👍64
قوانین Semantic Versioning
روش ها رو معرفی کردیم، حالا وقتشه مهم ترین‌شون رو یاد بدیم.
تمامی پروژه های معروف جز چند تا، از این روش استفاده میکنن.

ما داخل این روش سه عدد اصلی داریم که با نقطه از هم جدا میشن:
MAJOR.MINOR.PATCH

1️⃣ قانون یک:
عدد Major: این عدد تنها زمانی اجازه تغییر دارد که تغییری که در نرم افزار ایجاد شده است با نسخه های قبلی ناسازگار است. برای مثال سینتکس پایتون 2 داخل پایتون 3 اجرا نمیشه و برعکس.

2️⃣ عدد Minor: این عدد تنها زمانی اجازه تغییر دارد که فیچری اضافه شده، یا تغییر مهمی صورت گرفته که با نسخه های قبلی سازگار است. برای مثال داخل پایتون 3.10 ویژگی match اومد، ولی سورس های ورژن 3.9 قابل اجرا هستن داخل 3.10

3️⃣ عدد Patch: این عدد تنها زمانی اجازه تغییر دارد که باگی یا مشکلی یا هر تغییر جزئی داخل نرم افزار صورت گرفته است.

قانون دو:
وقتی عددی رو ارتقا میدید، عدد های بعدیش باید صفر بشن.
برای مثال اگه minor رو تغییر میدید، باید patch صفر بشه.
3.18.4 -> 3.19.0

شروع ورژن گذاری

نسخه های ازمایشی:
دیدید بعضی برنامه ها ورژن های ازمایشی میدن بیرون ( مثلا تلگرام )
ورژن های ازمایشی رو اینجا این شکلی نشون میدیم:
Major.Minor.Patch-rc0

◀️ جای rc میتونه اسم های beta، alpha یا nightly قرار بگیره، در بعضی جاها فقط اولین کلمه رو میزارن: a یا b یا n

و عدد بعد از rc میتونه سر هر تغییری در نسخه ازمایشی، تغییر کنه ( یا کلا میتونین عددی نزارین اینجا )
برای مثال:
7.2.9-alpha8 -> 7.2.9-alpha9

نرم افزار دارای فایل های metadata:
اول اینکه فایل های metadata چی هستن؟ هر فایل چرت و پرتی که مربوط به برناممون نیست ولی ازشون استفاده میکنیم.
مثلا نرم افزار های iana که برای تشخیص مکان آیپی استفاده میشن، از دیتابیس های از پیش اماده استفاده میکنن که این دیتابیس هارو میتونیم به عنوان metadata در نظر بگیریم.

ما در این روش، این فایل هارو اینشکلی ورژن بندی میکنیم:
Major.Minor.Patch+number

برای مثال:
4.1.4+1234
و هروقت اگه اون فایل های metadata رو فقط اپدیت کنیم، میتونیم این اعداد رو بیشتر کنیم:
4.1.4+1269

امیدوارم لذت برده باشید ...
یه مثال کُلی از همه ی موارد:
1.81.2-b1+728466
6👍4🔥1
امروز روز برنامه نویس هاست، روز ۲۵۶م از سال ۲۰۲۴
روزتون مبارک ❤️


حالا میدونستین ۴۲ روز دیگه باز هم روز برنامه نویسه؟ میدونین چرا؟
18👎4
بهترین لحظه ای که میتونی کسی رو به قتل برسونی
اون لحظه‌س که به طرف قیمت میدی، میاد بهت اسکرین شات از هوش مصنوعی میده میگه بفرما

ما داریم اینجا زحمت میکشیم :/
🤣8😁4🔥3👍1
سبک زندگی برنامه نویس چگونه باید باشد؟
امروز یه مطلب خوندم خیلی باهاش حال کردم که عنوانش همین بود

درواقع ۱۵ مشکل و نکته رو میگه که حتما باید حواسمون بهشون باشه
خودم سه چهار تاش رو رعایت نمیکنم

خواستم باهاتون به اشتراک بزارم ❤️

https://nabeghesaz.com/the-lifestyle-of-a-programmer/
👍112
🐉 یه حرکت بشدت جالب از Kali Linux
خبر قدیمیه، ولی من تازه فهمیدمش
۹۰ درصدتون میدونید کالی لینوکس یه سیستم عامل هست که با هدف امنیت و هک و پینترست طراحی شده که الان نزدیک ۸ گیگ ابزار هکینگ رو توسعه داده و در خودش داره

🟣 امسال یه سیستم عامل جدید داده بیرون!
اسمش Purple Kali هستش و دقیقا ضد Kali Linux عمل میکنه
این سیستم عامل با هدف حفظ امنیت و پشتیبانی و ریکاوری اطلاعات طراحی شده و دقیقا حریف Kali Linux قرار میگیره ...
کلی ابزار ریکاوری و حفظ امنیت داخل خودش داره که میشه باهاش امنیت یک مکان رو حفظ کرد

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

پ.ن: جوگیر شدم امشب کالی میریزم 😂
👍16😁2👎1
دوتا فانکشن بیلت این پرکاربر پایتون
وقتی میخواید یه Iterable رو چک کنید که همه آیتم ها Truthy هستند یا نه، یا وقتی میخواید ببینید یکی از ایتم ها Truthy هست یا ن، از اینا استفاده میشه

https://youtube.com/shorts/UEt87e0CeLU?si=bLpR27L712PsPVI6
4
کار رو سرم ریخته بدجور
خیلی تو برنامه ریزی خوب نیستم و تنبل بودن هم باعث میشه کارام همیشه عقب بیفته و همشون یجا یهو باید انجام بدم

واسه همینه که خیلی فعال نیستم، اوکیش میکنم و میام

شما وضعتون چطوره؟ پروژه میاد قطار قطار؟
خیلی پروژه زیاد شده اخیرا یا من توهم زدم؟
🔥112👍1