Forwarded from Mir Sobhan
کد باحال
plumbum یک کتابخونه رابط هست برای تعامل بهتر با cli
توی داکیومنت نوشته بود میتونید به جای تعریف دستی از این روش هر دستوری که میخواید رو وارد کنید(دستورات چک میشن که توی شل موجود هستند یا نه)
کاری که کرده اومده مجیک متودی که برای کلاس ها تعریف میکنیم رو برای فایل تعریف کرده. خب بلاخره هر فایلی توی پایتون یک آبجکت حساب میشه.
به این ترتیب با استفاده از این مجیک متود تونسته ایمپورت هارو به این شکل زیبا بکنه
@meMirSobhan
plumbum یک کتابخونه رابط هست برای تعامل بهتر با cli
توی داکیومنت نوشته بود میتونید به جای تعریف دستی از این روش هر دستوری که میخواید رو وارد کنید(دستورات چک میشن که توی شل موجود هستند یا نه)
کاری که کرده اومده مجیک متودی که برای کلاس ها تعریف میکنیم رو برای فایل تعریف کرده. خب بلاخره هر فایلی توی پایتون یک آبجکت حساب میشه.
به این ترتیب با استفاده از این مجیک متود تونسته ایمپورت هارو به این شکل زیبا بکنه
@meMirSobhan
Forwarded from IranCoderz (Farid Ghaderi)
Forwarded from Python BackendHub (Mani)
اگه این پست و لایبری براتون مفید بود، خوشحال میشم اگه بهش استار بدید. این کار به من انگیزه بیشتری برای توسعه و بهبود فریمورک های اوپن سورس میده. از حمایتتون خیلی ممنونم 🙂 🙏
@PyBackendHub
@PyBackendHub
Forwarded from Python BackendHub (Mani)
یکی از دوستانی امروز یادم انداخت به یه لایبری قدیمی که نوشته بودم. این لایبری یه HTTP client هست که میتونه سایتهایی که زیر پوشش Cloudflare هستن و سیستم رباتیابشون فعاله رو کراول کنه. تاحالا در موردش صحبت نکرده بودم، ولی گفتم اینجا یه توضیحی بدم.
لینک گیتهابش اینجاست با httpx کاملاً سازگاره، یعنی اگه از httpx استفاده میکردید، با تغییر import میتونید به راحتی ازش استفاده کنید.
مشکل چی بود؟ سایتهایی که از Cloudflare به عنوان reverse proxy استفاده میکنن، معمولاً از یه مکانیزم تشخیص ربات استفاده میکنن که به TLS Fingerprint متکیه. حالا TLS Fingerprint چیه؟ وقتی شما به یه سایت وصل میشید، اولین چیزی که رد و بدل میشه، یه پیام به اسم Client Hello هست. این پیام اطلاعات اولیهای رو درباره کلاینت شما به سرور میده، مثل نسخه TLS که پشتیبانی میکنید و یه لیست به اسم cipher suite.
توضیح Cipher suite: در واقع مجموعهای از الگوریتمهای رمزنگاری هست که کلاینت و سرور میتونن برای برقراری یه ارتباط امن استفاده کنن. هر مرورگر یا کلاینت یه لیست مشخص از cipher suite داره که ترتیبش هم خاص همون کلاینت هست. مثلاً مرورگر کروم یه لیست مشخص داره، مرورگر فایرفاکس یه لیست دیگه، و مثلاً requests پایتون هم یه لیست کاملاً متفاوت.
کلادفلیر چطور متوجه میشه شما مرورگر نیستید؟ اون میاد این TLS Fingerprint، یعنی ترکیب نسخه TLS و ترتیب cipher suiteها، رو با user-agent شما مقایسه میکنه. اگه این دو تا با هم نخونن، مثلاً user-agent شما میگه مرورگر کروم هستید ولی cipher suiteها میگن یه اسکریپت پایتونید، Cloudflare متوجه میشه که شما مرورگر نیستید و درخواست رو بلاک میکنه.
کله سناریویی که گفتم اینجا داره اتفاق میفته تو لایبری من که کلا ۱۰ خط کده.
@PyBackendHub
لینک گیتهابش اینجاست با httpx کاملاً سازگاره، یعنی اگه از httpx استفاده میکردید، با تغییر import میتونید به راحتی ازش استفاده کنید.
مشکل چی بود؟ سایتهایی که از Cloudflare به عنوان reverse proxy استفاده میکنن، معمولاً از یه مکانیزم تشخیص ربات استفاده میکنن که به TLS Fingerprint متکیه. حالا TLS Fingerprint چیه؟ وقتی شما به یه سایت وصل میشید، اولین چیزی که رد و بدل میشه، یه پیام به اسم Client Hello هست. این پیام اطلاعات اولیهای رو درباره کلاینت شما به سرور میده، مثل نسخه TLS که پشتیبانی میکنید و یه لیست به اسم cipher suite.
توضیح Cipher suite: در واقع مجموعهای از الگوریتمهای رمزنگاری هست که کلاینت و سرور میتونن برای برقراری یه ارتباط امن استفاده کنن. هر مرورگر یا کلاینت یه لیست مشخص از cipher suite داره که ترتیبش هم خاص همون کلاینت هست. مثلاً مرورگر کروم یه لیست مشخص داره، مرورگر فایرفاکس یه لیست دیگه، و مثلاً requests پایتون هم یه لیست کاملاً متفاوت.
کلادفلیر چطور متوجه میشه شما مرورگر نیستید؟ اون میاد این TLS Fingerprint، یعنی ترکیب نسخه TLS و ترتیب cipher suiteها، رو با user-agent شما مقایسه میکنه. اگه این دو تا با هم نخونن، مثلاً user-agent شما میگه مرورگر کروم هستید ولی cipher suiteها میگن یه اسکریپت پایتونید، Cloudflare متوجه میشه که شما مرورگر نیستید و درخواست رو بلاک میکنه.
کله سناریویی که گفتم اینجا داره اتفاق میفته تو لایبری من که کلا ۱۰ خط کده.
@PyBackendHub
GitHub
GitHub - ManiMozaffar/cfcrawler: Cloudflare scraper and cralwer written in Async, In-place library for HTTPX. Crawl website that…
Cloudflare scraper and cralwer written in Async, In-place library for HTTPX. Crawl website that has cloudflare enabled, easier than ever! - ManiMozaffar/cfcrawler
Forwarded from ⚝
Google
Google Jamboard is winding down - Jamboard Help
Jamboard application end of life information The Jamboard application reached its end of life on December 31, 2024 across Web, iOS, Android and Google Meet devices. Timeline for the Jamboard wind
support.google.com/jamboard/answer/14084927
از اکتبر ۲۴، خدمت گوگل Jamboard که تختهسفیدی برخط را ارائه میداد، بازنشسته میشود. در صورت داشتن داده در داخل این نرمافزار، هر چه زودتر دادههای خود را برونریزی و نگه دارید.
#news #google
@amiria703_channel
از اکتبر ۲۴، خدمت گوگل Jamboard که تختهسفیدی برخط را ارائه میداد، بازنشسته میشود. در صورت داشتن داده در داخل این نرمافزار، هر چه زودتر دادههای خود را برونریزی و نگه دارید.
#news #google
@amiria703_channel
Forwarded from ⚝
killedbygoogle.com
از بین اینها، بیشتر از همه غم grasshopper و androidify به دلم نشست و موند.
Grasshopper یه برنامهٔ آموزش برنامهنویسی (مشابه دولینگو) بود که علاوه بر آموزش جاوا اسکریپت، بر آموزش مفاهیم راهاندازی کسبوکار و سایر نیازمندیهای برنامهنویسی هم تأکید میکرد. همدم من در دورانی بود که برنامهنویسی رو به عنوان یه تفریح میدیدم.
Androidify هم برنامهای بود که باهاش میشد اندروید خودتون رو بسازید با لباس و طرحهای مختلف. از اولین برنامههای اندرویدیای بود که روی اولین گوشی اندرویدیم داشتم.
#note #google
@amiria703_channel
از بین اینها، بیشتر از همه غم grasshopper و androidify به دلم نشست و موند.
Grasshopper یه برنامهٔ آموزش برنامهنویسی (مشابه دولینگو) بود که علاوه بر آموزش جاوا اسکریپت، بر آموزش مفاهیم راهاندازی کسبوکار و سایر نیازمندیهای برنامهنویسی هم تأکید میکرد. همدم من در دورانی بود که برنامهنویسی رو به عنوان یه تفریح میدیدم.
Androidify هم برنامهای بود که باهاش میشد اندروید خودتون رو بسازید با لباس و طرحهای مختلف. از اولین برنامههای اندرویدیای بود که روی اولین گوشی اندرویدیم داشتم.
#note #google
@amiria703_channel
Forwarded from Source Byte ( P҉d҉y҉👾)
A Syscall Journey in the Windows Kernel
Credit: Alice
https://alice.climent-pommeret.red/posts/a-syscall-journey-in-the-windows-kernel
#internals #windows
What's happening after a syscall
Credit: Alice
https://alice.climent-pommeret.red/posts/a-syscall-journey-in-the-windows-kernel
#internals #windows
Forwarded from Source Byte ( P҉d҉y҉👾)
Forwarded from PhiloLearn | فیلولرن
This media is not supported in your browser
VIEW IN TELEGRAM
میدونم قول داده بودم دیگه پست با #fun نذارم ولی خب اگر بخوایم منطقی نگاه کنیم این حتی فان هم نیست
این غم انگیزه
رائفی پور در مورد گنو حرف میزنه؟؟؟
😳😳 @PhiloLearn 😳😳
این غم انگیزه
رائفی پور در مورد گنو حرف میزنه؟؟؟
هفتاد درصد سیستم عامل های سرور های مایکروسافت که ویندوزه، لینوکسه
😳😳 @PhiloLearn 😳😳
Forwarded from Gopher Academy
🔵 عنوان مقاله
More Powerful Go Execution Traces
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته به تلاشهای تیم برنامهنویسی زبان برنامهنویسی Go در دو نسخه اخیر اشاره دارد، که در آنها به بهبود و تعمیر سیستم اجرایی tracing پرداخته شده است. این بهبودها منجر به کاهش ده برابری در بار اضافی سیستم و افزایش قابلیتهای مقیاسپذیری در traceها شدهاست. از نتایج این پیشرفتها، دو ویژگی آزمایشی جدید معرفی شدهاند. نخست، توانایی ضبط مداوم اجرا که بهعنوان 'flight recording' شناخته میشود و دوم، API مخصوص خواندن traceها. هر دو ویژگی جدید، افقهای تازهای را برای توسعهدهندگان و محققان در زمینه تحلیل کارایی و عیبیابی برنامهها فراهم میآورند و قدمهای مهمی در جهت افزایش کارایی و تحلیلپذیری برنامهها در Go بهشمار میروند.
🟣لینک مقاله:
https://go.dev/blog/execution-traces-2024
➖➖➖➖➖➖➖➖
👑 @gopher_academy
More Powerful Go Execution Traces
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته به تلاشهای تیم برنامهنویسی زبان برنامهنویسی Go در دو نسخه اخیر اشاره دارد، که در آنها به بهبود و تعمیر سیستم اجرایی tracing پرداخته شده است. این بهبودها منجر به کاهش ده برابری در بار اضافی سیستم و افزایش قابلیتهای مقیاسپذیری در traceها شدهاست. از نتایج این پیشرفتها، دو ویژگی آزمایشی جدید معرفی شدهاند. نخست، توانایی ضبط مداوم اجرا که بهعنوان 'flight recording' شناخته میشود و دوم، API مخصوص خواندن traceها. هر دو ویژگی جدید، افقهای تازهای را برای توسعهدهندگان و محققان در زمینه تحلیل کارایی و عیبیابی برنامهها فراهم میآورند و قدمهای مهمی در جهت افزایش کارایی و تحلیلپذیری برنامهها در Go بهشمار میروند.
🟣لینک مقاله:
https://go.dev/blog/execution-traces-2024
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
More powerful Go execution traces - The Go Programming Language
New features and improvements to execution traces from the last year.
Forwarded from کداکسپلور | CodeExplore (𝙰𝚖𝚒𝚗)
تنها صنفی که از ویروس کرونا آسیب ندید مهندسین نرم افزار و برنامه نویسی ها بودن
چون by default قرنطینه هستند!!!😂
#fun
☕️ @CodeExplore
چون by default قرنطینه هستند!!!
#fun
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
مانی توی این پستش یک کد زده توی چند خط، کل کلادفلر رو به مسخره گرفته
https://news.1rj.ru/str/PyBackEndHub/1096
✅ @SEYED_BAX
https://news.1rj.ru/str/PyBackEndHub/1096
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from PhiloLearn | فیلولرن
من مدت خیلی زیادیه که با qt بازی میکنم
یعنی خب واقعا نمیشه گفت که کار کردم باهاش، اکثر تجربه هام با qt از راه پایتون صرفا در حد بازی کردن و مثل بچه ها ذوق کردن بوده و هست و احتمالا هم همین خواهد ماند
اگ
یعنی خب واقعا نمیشه گفت که کار کردم باهاش، اکثر تجربه هام با qt از راه پایتون صرفا در حد بازی کردن و مثل بچه ها ذوق کردن بوده و هست و احتمالا هم همین خواهد ماند
اگ
Forwarded from PhiloLearn | فیلولرن
من مدت خیلی زیادیه که با qt بازی میکنم
یعنی خب واقعا نمیشه گفت که کار کردم باهاش، اکثر تجربه هام با qt از راه پایتون صرفا در حد بازی کردن و مثل بچه ها ذوق کردن بوده و هست و احتمالا هم همین خواهد ماند
اگر نمیدونید qt چیه که باید خیلی خلاصه بگم یه فریمورک Cpp برای ساختن gui و یه سری فریمورک برای پایتون وجود داره که بهتون اجازه میده از qt استفاده کنید مثل pyqt و pyside
حالا چی شد یادی از qt کردم؟ هیچی داشتم میگشتم توی داکیومنتاش (رسما گشت و گذار داشتم میکردم از بیخوابی) که رسیدم به یه مفهوم جدید برای خودم و این طوری بودم که چرا من این رو تاحالا ندیده بود؟؟؟
و اون هم چیزی نبود جز QtWebEngine و خب یه چیز باحالی هم که ازش دیدم و گفتم با شما هم به اشتراک بذارم این بود که میتونید با کمک QWebEngineView یک صفحه ی وب رو توی پنجرتون لود کنید
چطوری؟
الان اگر شما اول pyside6 رو نصب کنید و بعد این کد رو اجرا کنید، یه پنجره براتون باشه میشه که توش سایت پارچ لینوکس رو لود میکنه
شاید برای شما چیز عجیبی نباشه ولی برای من واقعا تجربه ی جالب و جذابی گفتم باهاتون به اشتراک بذارمش 😁
#تجربه #python #qt #pyside6 #pyqt
————————————————————————
میتونید برای حمایت از فعالیت این کانال، انتقادات و پیشنهادات خودتون رو کامنت کنید.
————————————————————————
💙💙 @PhiloLearn 💙💙
یعنی خب واقعا نمیشه گفت که کار کردم باهاش، اکثر تجربه هام با qt از راه پایتون صرفا در حد بازی کردن و مثل بچه ها ذوق کردن بوده و هست و احتمالا هم همین خواهد ماند
اگر نمیدونید qt چیه که باید خیلی خلاصه بگم یه فریمورک Cpp برای ساختن gui و یه سری فریمورک برای پایتون وجود داره که بهتون اجازه میده از qt استفاده کنید مثل pyqt و pyside
حالا چی شد یادی از qt کردم؟ هیچی داشتم میگشتم توی داکیومنتاش (رسما گشت و گذار داشتم میکردم از بیخوابی) که رسیدم به یه مفهوم جدید برای خودم و این طوری بودم که چرا من این رو تاحالا ندیده بود؟؟؟
و اون هم چیزی نبود جز QtWebEngine و خب یه چیز باحالی هم که ازش دیدم و گفتم با شما هم به اشتراک بذارم این بود که میتونید با کمک QWebEngineView یک صفحه ی وب رو توی پنجرتون لود کنید
چطوری؟
import sys
from PySide6.QtCore import QUrl
from PySide6.QtWebEngineWidgets import QWebEngineView
if __name__ == "__main__":
app = QtWidgets.QApplication([])
view = QWebEngineView()
view.load(QUrl("https://parchlinux.com"))
view.resize(1024, 750)
view.show()
sys.exit(app.exec())
الان اگر شما اول pyside6 رو نصب کنید و بعد این کد رو اجرا کنید، یه پنجره براتون باشه میشه که توش سایت پارچ لینوکس رو لود میکنه
شاید برای شما چیز عجیبی نباشه ولی برای من واقعا تجربه ی جالب و جذابی گفتم باهاتون به اشتراک بذارمش 😁
#تجربه #python #qt #pyside6 #pyqt
————————————————————————
میتونید برای حمایت از فعالیت این کانال، انتقادات و پیشنهادات خودتون رو کامنت کنید.
————————————————————————
💙💙 @PhiloLearn 💙💙
Forwarded from Go Casts 🚀
تو جلسه تیمسازی بکند، بچه ها قرار شد unit test و end to end test بنویسن، برای اینکه بشه تست integration یا end to end درستی داشت باید وابستگی ها درست راه اندازی بشه راه ها مختلفی وجود داره، مثلا اینکه از قبل وابستگی ها بالا باشن، یا از وابستگی های جایگزین و راحت تر و in-memory استفاده کرد، یا اینکه از testcontainer استفاده کرد، که بچه ها از test container استفاده کرده بودن.
این مقاله توضیحات خوبی میده در این مورد
Emulating real dependencies in Integration Tests using Testcontainers
A hands-on guide on Integration Tests in Go using Testcontainers.
https://packagemain.tech/p/integration-tests-using-testcontainers
توضیحات «دوره + تیمسازی بکند Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/491
@gocasts
#golang
#test
#گولنگ
این مقاله توضیحات خوبی میده در این مورد
Emulating real dependencies in Integration Tests using Testcontainers
A hands-on guide on Integration Tests in Go using Testcontainers.
https://packagemain.tech/p/integration-tests-using-testcontainers
توضیحات «دوره + تیمسازی بکند Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://news.1rj.ru/str/gocasts/491
@gocasts
#golang
#test
#گولنگ
Forwarded from 🎄 یک برنامه نویس تنبل
Forwarded from محتوای آزاد سهراب
از کجا متوجه شدید که کنکور فنی حرفهای داشتم؟
+ سیشارپ را روی کاغذ مینویسد
با آرزوی موفقیت برای کنکوریها (البته با تاخیر)
@SohrabContents
+ سیشارپ را روی کاغذ مینویسد
با آرزوی موفقیت برای کنکوریها (البته با تاخیر)
@SohrabContents
Forwarded from Gopher Academy
در زبان Go،
در Go، چندین نوع
🟢 1. Open-Coded Defer
ا
ویژگیها:
- از تخصیص حافظه اضافی جلوگیری میکند.
- سریعتر اجرا میشود.
- مستقیم در کد قرار میگیرد و از پیچیدگیهای معمول
🟢 2. Heap-Allocated Defer
ا
ویژگیها:
- برای مدیریت
- کندتر از
- در تابعهایی که تعداد زیادی
🟢 3. Stack-Allocated Defer
ا
🔵ویژگیها:
- روی stack تخصیص داده میشود.
- از
- به دلایلی نمیتواند
🔴 جمعبندی
- `Open-coded defer`: بهینهترین نوع، زمانی که
- `Heap-allocated defer`: کمینه کارایی دارد زیرا نیاز به تخصیص حافظه روی heap دارد.
- `Stack-allocated defer`: از stack استفاده میکند و بین کارایی و پیچیدگی قرار میگیرد.
این تمایزها به دلیل نحوه مدیریت منابع و بهینهسازیهای مختلف در کامپایلر Go است و درک آنها میتواند به نوشتن کدهای کاراتر کمک کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
defer یک مکانیزم است که به شما اجازه میدهد یک تابع را در انتهای اسکوپ (scope) اجرا کنید، معمولاً برای پاکسازی منابع یا اجرای کدهای نهایی مثل بستن فایلها، قفلها، یا کانکشنها. در Go، چندین نوع
defer وجود دارد که بر اساس نحوه پیادهسازی و تخصیص منابع، رفتارهای مختلفی دارند:🟢 1. Open-Coded Defer
ا
Open-coded defer نوعی از defer است که بهینهسازی شده و مستقیماً در کد قرار داده میشود. این نوع defer زمانی اتفاق میافتد که Go تشخیص دهد که فراخوانی defer نیازی به پیچیدگیهای اضافهی معمول (مثل تخصیص حافظه روی heap) ندارد. معمولاً این بهینهسازی زمانی انجام میشود که تعداد کمی defer در تابع وجود دارد و آنها ساده هستند.ویژگیها:
- از تخصیص حافظه اضافی جلوگیری میکند.
- سریعتر اجرا میشود.
- مستقیم در کد قرار میگیرد و از پیچیدگیهای معمول
defer اجتناب میکند.🟢 2. Heap-Allocated Defer
ا
Heap-allocated defer زمانی ایجاد میشود که defer به دلایل خاصی نیاز به تخصیص حافظه روی heap دارد. این اتفاق معمولاً در مواقعی رخ میدهد که تابع دارای چندین defer پیچیده باشد، یا زمانی که defer در یک تابع ناشناس یا گوروتین استفاده شود.ویژگیها:
- برای مدیریت
defer باید از heap استفاده کند.- کندتر از
open-coded defer است زیرا نیاز به تخصیص حافظه و مدیریت اضافی دارد.- در تابعهایی که تعداد زیادی
defer دارند یا defer در گوروتینها استفاده شده، این نوع دیده میشود.🟢 3. Stack-Allocated Defer
ا
Stack-allocated defer نوعی از defer است که در stack تخصیص داده میشود. این نوع معمولاً در مواقعی استفاده میشود که defer از لحاظ تخصیص منابع ساده است و نیازی به استفاده از heap ندارد، اما همچنان نمیتواند open-coded باشد. این نوع به نوعی میان open-coded و heap-allocated قرار میگیرد.🔵ویژگیها:
- روی stack تخصیص داده میشود.
- از
heap استفاده نمیکند، بنابراین بهینهتر از heap-allocated defer است.- به دلایلی نمیتواند
open-coded باشد (مثل پیچیدگی بیشتر یا وجود چندین defer).🔴 جمعبندی
- `Open-coded defer`: بهینهترین نوع، زمانی که
defer ساده و کم تعداد باشد.- `Heap-allocated defer`: کمینه کارایی دارد زیرا نیاز به تخصیص حافظه روی heap دارد.
- `Stack-allocated defer`: از stack استفاده میکند و بین کارایی و پیچیدگی قرار میگیرد.
این تمایزها به دلیل نحوه مدیریت منابع و بهینهسازیهای مختلف در کامپایلر Go است و درک آنها میتواند به نوشتن کدهای کاراتر کمک کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Python BackendHub (Mani)
This media is not supported in your browser
VIEW IN TELEGRAM
:)))
@PyBackendHub
@PyBackendHub
Forwarded from Python BackendHub (Mani)
یک شفاف سازی: منظوراز سرور تو این schema سرور خوده ربات ناشناسه.
این بهترین نسخه ای هست که میشه با تلگرام اپ نوشت، هویت شما با هرپیام تغییر میکنه بنابراین ناشناسه.
ولی هنوز e2e نیست چون سکرت کی ها همه تو کلاد استوریج تلگرام ذخیره میشن.
نکته دیگه هم اینه که من فرض رو براین گذاشتم که دیتایی که یک اپلیکیشن رو کلاد تلگرام ذخیره میکنه، قابل دریافت مجدد نیست توسط خوده اپلیکیشن. اگه این فرضیه درست نباشه، کلا این قضیه شدنی نیست رو تلگرام.
@PyBackendHub
این بهترین نسخه ای هست که میشه با تلگرام اپ نوشت، هویت شما با هرپیام تغییر میکنه بنابراین ناشناسه.
ولی هنوز e2e نیست چون سکرت کی ها همه تو کلاد استوریج تلگرام ذخیره میشن.
نکته دیگه هم اینه که من فرض رو براین گذاشتم که دیتایی که یک اپلیکیشن رو کلاد تلگرام ذخیره میکنه، قابل دریافت مجدد نیست توسط خوده اپلیکیشن. اگه این فرضیه درست نباشه، کلا این قضیه شدنی نیست رو تلگرام.
@PyBackendHub
Forwarded from کداکسپلور | CodeExplore (Aqa Reza)
#site #icon
Please open Telegram to view this post
VIEW IN TELEGRAM
Pictogrammers
Material Design Icons - Icon Library - Pictogrammers
The original. Following Google's Material Design guidelines for system icons, MDI is our largest library, touting over 7200 unique icons!