کدوم سریع تره بنظرتون؟؟؟
کدوم روش format استرینگ در پایتون سریع تره؟
کدوم روش format استرینگ در پایتون سریع تره؟
args = {"x": 5}
# %
"%(x)d" % args
# format
"{x}".format(**args)
# format_map
"{x}".format_map(args)
# f-string
f"{args['x']}"
Coding Lovers
کدوم سریع تره بنظرتون؟؟؟ کدوم روش format استرینگ در پایتون سریع تره؟ args = {"x": 5} # % "%(x)d" % args # format "{x}".format(**args) # format_map "{x}".format_map(args) # f-string f"{args['x']}"
تو تستی که خودم انجام دادم
روش % از format_map سریع تره
روش format_map از format سریع تره
اف استرینگ رو نمیدونستم چجوری تست بگیرم، بیخیالش شدم
روش % از format_map سریع تره
روش format_map از format سریع تره
اف استرینگ رو نمیدونستم چجوری تست بگیرم، بیخیالش شدم
❤6
Coding Lovers
این روش رو کانال PyrogramFA به عنوان جلوگیری از اسپم گذاشته بود مخصوص کتابخونه پایروگرام حالا گفتم بیام بگم که چطور میتونید دقیقا همین رو توی تلبات پیاده کنید تا بتونید جلوی اسپم رو بگیرید :) 👇 from cachetools import TTLCache from telebot import ContinueHandling…
عه من این پستو تازه دیدم
جا cachetools از cachebox استفاده کنین وگرنه حلالتون نمیکنم
جا cachetools از cachebox استفاده کنین وگرنه حلالتون نمیکنم
🌐 دیوایس های متصل به WiFi چجوری شناسایی میشن؟
تاحالا فکر کردین بعضی برنامه ها، چجوری دیوایس های متصل به شبکه WiFiتون رو پیدا میکنن؟
پروتوکل ARP
پروتکل Address Resolution Protocol (ARP) یک پروتکل اساسی است که در شبکههای رایانهای برای تطبیق یک آدرس IP با یک آدرس فیزیکی ماشین، که به عنوان Media Access Control (MAC) address شناخته میشود، استفاده میشود.
1. تطبیق آدرس IP به آدرس MAC: هنگامی که یک دستگاه میخواهد با دستگاه دیگری در همان شبکه ارتباط برقرار کند، نیاز دارد که آدرس MAC دستگاه مقصد را بداند.
2. درخواست ARP: دستگاه درخواستکننده یک بسته درخواست ARP را به تمام دستگاههای شبکه ارسال میکند و میپرسد "چه کسی این آدرس IP را دارد؟"
3. پاسخ ARP: دستگاهی که آدرس IP مطابقت دارد با یک بسته پاسخ ARP، آدرس MAC خود را ارائه میدهد.
4. کش ARP: دستگاهها یک کش ARP را حفظ میکنند که تطابقهای اخیر آدرسهای IP به MAC را ذخیره میکند تا ارتباطات آینده سریعتر شوند.
بدون ARP، دستگاهها نمیتوانند به صورت کارآمد در داخل یک شبکه ارتباط برقرار کنند.
پ.ن: وقتی موضوعی برای پست گذاشتن پیدا نمیکنی ...
تاحالا فکر کردین بعضی برنامه ها، چجوری دیوایس های متصل به شبکه WiFiتون رو پیدا میکنن؟
پروتوکل ARP
پروتکل Address Resolution Protocol (ARP) یک پروتکل اساسی است که در شبکههای رایانهای برای تطبیق یک آدرس IP با یک آدرس فیزیکی ماشین، که به عنوان Media Access Control (MAC) address شناخته میشود، استفاده میشود.
1. تطبیق آدرس IP به آدرس MAC: هنگامی که یک دستگاه میخواهد با دستگاه دیگری در همان شبکه ارتباط برقرار کند، نیاز دارد که آدرس MAC دستگاه مقصد را بداند.
2. درخواست ARP: دستگاه درخواستکننده یک بسته درخواست ARP را به تمام دستگاههای شبکه ارسال میکند و میپرسد "چه کسی این آدرس IP را دارد؟"
3. پاسخ ARP: دستگاهی که آدرس IP مطابقت دارد با یک بسته پاسخ ARP، آدرس MAC خود را ارائه میدهد.
4. کش ARP: دستگاهها یک کش ARP را حفظ میکنند که تطابقهای اخیر آدرسهای IP به MAC را ذخیره میکند تا ارتباطات آینده سریعتر شوند.
بدون ARP، دستگاهها نمیتوانند به صورت کارآمد در داخل یک شبکه ارتباط برقرار کنند.
پ.ن: وقتی موضوعی برای پست گذاشتن پیدا نمیکنی ...
👍11🤣3
Forwarded from BotNews
Bot API 7.11
• Bots can now participate in revenue sharing from Telegram Ads⭐️ – unlocking a new way to help support their development.
• Introduced Paid Broadcasts⭐️ – allowing bots to broadcast up to 1000 messages per second.
• Bots can now send and receive chat-specific hashtags that only show posts and stories from a specific chat when tapped.
• Added a new inline button to let users copy text in one tap.
• Bots can now add media to existing text messages.
• And more, see the full changelog for details:
https://core.telegram.org/bots/api-changelog#october-31-2024
⚠️ Warning: Starting December 1, 2024 messages with video posted in big communities can be delayed by the server until the respective video is reencoded. Read more here.
• Bots can now participate in revenue sharing from Telegram Ads
• Introduced Paid Broadcasts
• Bots can now send and receive chat-specific hashtags that only show posts and stories from a specific chat when tapped.
• Added a new inline button to let users copy text in one tap.
• Bots can now add media to existing text messages.
• And more, see the full changelog for details:
https://core.telegram.org/bots/api-changelog#october-31-2024
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤4👍2🔥1
BotNews
• Bots can now participate in revenue sharing from Telegram Ads ⭐️ – unlocking a new way to help support their development.
ربات ها هم مثل کانال ها میتونن درآمد کسب کنن از تبلیغات تلگرام 🔥
1🔥7👍3❤2🤣2😁1
باهم بخندیم ( به هم نخندیم )
کدی که امروز استاد نوشت از روش توضیح داد😂😂
int main() {
scanf(%d%d, &a, &b);
sum = a + b;
printf(sum, "%d");
}کدی که امروز استاد نوشت از روش توضیح داد😂😂
🤣15
Coding Lovers
باهم بخندیم ( به هم نخندیم ) int main() { scanf(%d%d, &a, &b); sum = a + b; printf(sum, "%d"); } کدی که امروز استاد نوشت از روش توضیح داد😂😂
دلم برای کسایی که از دانشگاه میخوان چیزی یاد بگیرن میسوزه واقعا
چه جامعه ایه آخه
چه جامعه ایه آخه
👍21👎3🤣1
رنک بندی گیتهاب بر اساس استار ها رو میتونین از این سایت ببینین
https://www.stardev.io/
رنک گیتهابتون چنده؟
https://www.stardev.io/
رنک گیتهابتون چنده؟
👍2
شوخیتون گرفته؟ یه زبان برنامه نویسی تقریبا معروف داریم به اسم Portugol که کاملا زبانش بریزیلیه
پ.ن داخل دبیرستان های برزیل هم تدریس میشه😐😂
مثلا
پ.ن داخل دبیرستان های برزیل هم تدریس میشه😐😂
مثلا
funcao somamatriz(n: inteiro): inteiro
var
i, j, soma : inteiro
inicio
soma <- 0
para i de 1 ate 10 faca
para j de 1 ate 10 faca
soma <- soma + a[i,j] (ref:scope)
fimpara
fimpara
retorne soma
fimfuncao
algoritmo "semnome"
var
i, j : inteiro
a : vetor [1..10,1..10] de inteiro
inicio
para i de 1 ate 10 faca
para j de 1 ate 10 faca
a[i,j] <- i + j
fimpara
fimpara
escreva ("Resultado: ", somamatriz(5))
fimalgoritmo
😁11👍1👎1
میخوام درمورد thread-safe بهتون توضیح بدم.
اول یک نسخه از هوش مصنوعی میزارم، و بعد خودم کاملش میکنم.
اول یک نسخه از هوش مصنوعی میزارم، و بعد خودم کاملش میکنم.
Coding Lovers
میخوام درمورد thread-safe بهتون توضیح بدم. اول یک نسخه از هوش مصنوعی میزارم، و بعد خودم کاملش میکنم.
در برنامهنویسی، وقتی درباره "thread safe" صحبت میکنیم، منظورمان این است که کد نوشته شده میتواند به درستی در محیطی که چندین رشته (threads) به طور همزمان در حال اجرا هستند، عمل کند، بدون اینکه منجر به مشکلاتی نظیر تداخل داده یا خطاهای دیگر شود.
فرض کنید دو یا چند رشته بخواهند به طور همزمان به یک متغیر مشترک دسترسی پیدا کنند. اگر این دسترسیها به درستی هماهنگ نشوند، ممکن است دادهها دچار مشکل شوند. به عنوان مثال، تصور کنید دو نفر در حال نوشتن بر روی یک تخته سیاه هستند. اگر هر کدام بدون هماهنگی با دیگری چیزی بنویسد، نوشتهها با هم تداخل خواهند داشت و نتیجه ناواضح خواهد بود. در برنامهنویسی، این مشکل با استفاده از مکانیزمهایی مثل قفل (lock) یا مچینگ (mutex) حل میشود.
بیایید یک مثال ساده با پایتون ببینیم:
در این مثال، ما یک متغیر مشترک به نام
به این ترتیب، میتوانیم کدی بنویسیم که "thread safe" باشد و در محیطهای چند رشتهای بدون مشکل کار کند.
فرض کنید دو یا چند رشته بخواهند به طور همزمان به یک متغیر مشترک دسترسی پیدا کنند. اگر این دسترسیها به درستی هماهنگ نشوند، ممکن است دادهها دچار مشکل شوند. به عنوان مثال، تصور کنید دو نفر در حال نوشتن بر روی یک تخته سیاه هستند. اگر هر کدام بدون هماهنگی با دیگری چیزی بنویسد، نوشتهها با هم تداخل خواهند داشت و نتیجه ناواضح خواهد بود. در برنامهنویسی، این مشکل با استفاده از مکانیزمهایی مثل قفل (lock) یا مچینگ (mutex) حل میشود.
بیایید یک مثال ساده با پایتون ببینیم:
import threading
# متغیر مشترک
shared_counter = 0
# یک قفل برای هماهنگی بین رشتهها
lock = threading.Lock()
def increment_counter():
global shared_counter
for _ in range(10000):
lock.acquire()
shared_counter += 1
lock.release()
# ایجاد دو رشته که به طور همزمان متغیر مشترک را افزایش میدهند
thread1 = threading.Thread(target=increment_counter)
thread2 = threading.Thread(target=increment_counter)
# شروع به کار رشتهها
thread1.start()
thread2.start()
# منتظر میمانیم تا هر دو رشته کارشان را تمام کنند
thread1.join()
thread2.join()
print("Final counter value:", shared_counter)
در این مثال، ما یک متغیر مشترک به نام
shared_counter داریم و دو رشته که هر کدام ۱۰۰۰۰ بار این متغیر را افزایش میدهند. اگر از قفل استفاده نکنیم، ممکن است نتیجه نهایی shared_counter درست نباشد، چرا که ممکن است دو رشته همزمان به آن دسترسی پیدا کنند و مقدار آن را به اشتباه افزایش دهند. اما با استفاده از قفل (lock.acquire() و lock.release())، اطمینان حاصل میکنیم که در هر زمان فقط یک رشته به shared_counter دسترسی دارد، و این باعث میشود که برنامه به درستی کار کند و مقدار نهایی صحیح باشد.به این ترتیب، میتوانیم کدی بنویسیم که "thread safe" باشد و در محیطهای چند رشتهای بدون مشکل کار کند.
👍4
Coding Lovers
در برنامهنویسی، وقتی درباره "thread safe" صحبت میکنیم، منظورمان این است که کد نوشته شده میتواند به درستی در محیطی که چندین رشته (threads) به طور همزمان در حال اجرا هستند، عمل کند، بدون اینکه منجر به مشکلاتی نظیر تداخل داده یا خطاهای دیگر شود. فرض کنید…
حالا یکم درباره GIL هم توضیح بدم.
پایتون خودش چیزی داره به اسم GIL که یک lock عمومی برای هر thread هستش
یعنی هرکاری بخواد صورت بگیره اول gil رو قفل میکنه بعد انجام میده ( برای همین خیلی ها نمیتونن خوب async رو درک کنن میرن هرچی تابع دارن async def میسازن )
خب چرا ما خودمون اینجا lock ساختیم؟
چون هر تردینگ یه gil مختص به خودش رو داره و به دیگری مربوط نیست
پایتون خودش چیزی داره به اسم GIL که یک lock عمومی برای هر thread هستش
یعنی هرکاری بخواد صورت بگیره اول gil رو قفل میکنه بعد انجام میده ( برای همین خیلی ها نمیتونن خوب async رو درک کنن میرن هرچی تابع دارن async def میسازن )
خب چرا ما خودمون اینجا lock ساختیم؟
چون هر تردینگ یه gil مختص به خودش رو داره و به دیگری مربوط نیست
👍8
https://core.telegram.org/api/links
لیست تمامی deep link های تلگرام
مثلا
با تشکر از فرشاد
لیست تمامی deep link های تلگرام
مثلا
tg://settings/change_number
tg://settings/devices
tg://settings/folders
tg://settings/language
tg://settings/privacy
tg://settings/auto_delete
با تشکر از فرشاد
core.telegram.org
Deep links
Telegram clients must handle special tg:// and t.iss.one deep links encountered in messages, link entities and in other apps by registering OS handlers.
👍8❤3🔥1
یه روش بگم حجم ویدیو هارو به شکل وحشتناک کاهش بدین؟ با ffmpeg
بدونه افت کیفیت و سرعت ویدیو، با ffmpeg حجم رو کاهش بدین؛ چجوری؟
جلوی -i ویدیویی که میخواید حجمش کم شه رو بزارید ( میتونه هر فرمتی باشه )
جلوی -crf میتونین مشخص کنین تعداد فریم ریت ها رو
این دستور چیکار میکنه؟ نمیدونم دقیقا چه بلایی سر ویدیو میاره 😐❤️، فقط میدونم نوع رمزنگاری فایل رو به H.265 تغییر میده که باعث کم شدن حجم ویدیو میشه.
ترفند: میخواین صدای ویدیو هم بردارین همزمان که کاهش حجم میدین؟
پ.ن: یه بار ۸۰ مگ رو کرد ۵ مگ پرام ریخت
بدونه افت کیفیت و سرعت ویدیو، با ffmpeg حجم رو کاهش بدین؛ چجوری؟
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
جلوی -i ویدیویی که میخواید حجمش کم شه رو بزارید ( میتونه هر فرمتی باشه )
جلوی -crf میتونین مشخص کنین تعداد فریم ریت ها رو
این دستور چیکار میکنه؟ نمیدونم دقیقا چه بلایی سر ویدیو میاره 😐❤️، فقط میدونم نوع رمزنگاری فایل رو به H.265 تغییر میده که باعث کم شدن حجم ویدیو میشه.
ترفند: میخواین صدای ویدیو هم بردارین همزمان که کاهش حجم میدین؟
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 -af "volume=0" output.mp4
پ.ن: یه بار ۸۰ مگ رو کرد ۵ مگ پرام ریخت
2❤16
😁7👍3🤣2
CUSTOM FILTERS ) در #تلباتفریمورک پایتونی تلبات واسه راحتی هرچه بیشتر توسعه دهندگان فیلتر هایی رو در نظر گرفته که قصد دارم توی این پست بصورت مفصل درموردشون صبحت کنم، فیلتر هایی که خیلی اوقات مانع از نوشتن کد بیهوده میشن.
AdvancedCustomFilter : کلاسپایه فیلتر
IsAdminFilter : محدود کردن به ادمین/اونر
ForwardFilter : محدود کردن به فوروارد
ChatFilter : تطابق چتایدی
IsDigitFilter : محدود کردن به عدد
IsReplyFilter : محدود کردن به ریپلای
LanguageFilter : محدود کردن به LC
SimpleCustomFilter : کلاس پایه فیلتر سفارشی
StateFilter : محدود کردن استیت
TextContainsFilter : محدود کردن به وجود متن در آپدیت
TextFilter : محدود کردن متن تایپ ها
TextMatchFilter : محدود کردن متن مسیج
TextStartsFilter : محدود کردن متن مسیج با شروعی خاص
CUSTOM_FILTERS رو از تلبات ایمپورت و سپس با متد ADD_CUSTOM_FILTER فیلتر مورد نظر رو بر شی TELEBOT اعمال کنیم :from telebot import TeleBot, custom_filters
app = TeleBot()
app.add_custom_filter(Custom_filters.TextStartsFilter()) #EX
KEY ها داخل هندلر استفاده کنیم. توی حالت کلی بنا بر نحوه پیاده سازی فیلتر ها، KEY ها میتونن هر مقداری باشند، با فرض وجود کد بالایی و اعمال کردن فیلتر START TEXT FILTER این سمپل رو با KEY مختص به این فیلتر ببینید :@app.message_handler(text_startswith='XD')
def _(message):
...
XD" شروع شده باشه، پس در نهایت :from telebot import TeleBot, custom_filters
from telebot.types import Message
app = TeleBot()
@app.message_handler(text_startswith='XD')
def _(message: Message):
app.reply_to(message=message, text='XD')
app.add_custom_filter(custom_filters.TextStartsFilter())
app.infinity_polling()
KEY و تایپ های هر فیلتر رو با هم ببینیم :💡FilterName : Key | Type
ChatFilter : key = chat_id | type = List
TextContainsFilter : key = text_contains | type = List
TextMatchFilter : key = text | type = List
LanguageFilter : key = language_code | type = List
ForwardFilter : key = is_forwarded | type = Bool
IsAdminFilter : key = is_chat_admin | type = Bool
IsDigitFilter : key = is_digit | type = Bool
IsReplyFilter : key = is_reply | type = Bool
StateFilter : key = state | type = Int
TextStartsFilter = key = text_startswith | type = String
ADD_CUSTOM_FILTER اون رو به شئ TELEBOT اد کنیم و با KEY هاشون، هندلر ها رو به آپدیت های خاصی محدود کنیم، از طرفی مانع کد زدن اضافی و از طرف دیگه موجب تمیزی و خوانایی و از همه مهمتر مدیریت کدهامون رو راحت تر میکنه، فعلا در همین اندازه شناخت داشته باشید، طی پست های آینده، از بیسیک و ریشهای ترین فیلتر ها اقدام به کالبد شکافی میکنیم بصورت مفصل.پن؛ حالا انتخابتون چیه؟!
FUNC LAMBDA؟!Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6❤4