جنگولرن
3.82K subscribers
287 photos
74 videos
31 files
557 links
آموزش Django و بستگان
Download Telegram
تمرین css grid با بازی Grid Garden 😊

لینک:
https://cssgridgarden.com/
👍1
یه ریپو عجیب که n تا cheatsheet داره
از زبان های برنامه نویسی گرفته تا برگه تقلب vscode

لینک:
https://github.com/LeCoupa/awesome-cheatsheets
1👍1
از Linkedin آقای arash hosseini #مهندسی_سیستم لینک در نظرات پست
مهندسی سیستم بخش سوم:

در پست های گذشته به کارکردهای عینی پرداختیم که البته موارد دیگری نیز هست که فعلا به موارد ذکر شده بسنده می کنیم . ادامه بحث :
کارکردهای ذهنی:
تشخیص و برآورد کمیت کارکردهای ذهنی دشوارتر می باشد. نکته جالب اینجا است که ما می توانیم به میزان دلخواه به پارامترهای کارکرد ذهنی که قابل اندازه گیری، تست و قابل تائید باشند، از طریق نظرسنجی و مصاحبه اضافه کنیم. هرچند پاسخ کسانی که مورد نظرسنجی و مصاحبه قرار می گیرند به این پرسش که درجه تمایلات، توافق و خواستن/نخواستن را با جملات قابل اندازی گیری بیان کنند، نیاز به ترجمه و تفسیر، قضاوت ارزش ها وعقاید و دیگر موارد می باشد. بنابر این پاسخ ممکن است استعاره ای از تجربه و درس آموخته های گذشته باشد. مثال هایی از کارکردهای ذهنی می تواند شامل موارد ذیل باشد :
· کیفیت، شفافیت،ظاهر و رنگ
· قرابت
· دوست داشتنی بودن
· عقیده
· همواری
· رضایت، لذت و مزه

مشخصات سیستم :
هنگامی که سیستم را برای بازرایابی یا آنالیز توصیف می کنیم، چهار نوع مشخصه برای آن قائل هستیم :
· مشخصات عمومی
· مشخصه های عملیاتی و رفتاری
· مشخصات فیزیکی
· زیبایی سیستم

مشخصات عمومی :
امکانات سطح بالای یک سیستم را مشخصات عمومی می گویند. ما سرنخ این امکانات را می توانیم در بروشورهای تبلیغاتی که امکانات کلیدی سیستم برای جذب مشتری در آنها تاکید شده است، پیدا کنیم. مشخصه های عمومی معمولا موارد مشترکی در میان نسخه ها و مدل های یک سیستم دارند. مثال های ذیل را در نظر بگیرید :
· مشخصه های عمومی خودرو مانند یک در یا دو در بودن، شیشه های نشکن، سیستم تهویه مطبوع
· مشخصه های عمومی یک هلدینگ یا سازمان مانند : تعداد مستخدمین 200 نفر، تعداد کارمندان با درجه دکترا 30 نفر، تعداد مدیر 50 نفر، فروش سرانه 500 میلیون تومان در هر فصل.
· مشخصه های عمومی صنعت هوانوردی مانند : گنجایش 50 مسافر، برد 2000 مایل، فن جت
· مشخصه های عمومی شبکه مانند : معماری کلاینت و سرور، سیستم عامل و پلتفرم، امنیت دیواره آتش، دسترسی از راه دور DIALUP، ساختار فایلینگ شبکه
مشخصه های عملیاتی یا رفتاری :
یک لایه پایین تر از مشخصه های عمومی، سیستم ها دارای مشخصه های عملیاتی که امکانات سیستم را از نظر قابلیت استفاده، بقای سیستم و کارکرد تعریف شده آن برای یک محیط عملیاتی مشخص را تشریح می نماید. مثال های ذیل را در نظر بگیرید :
· مشخصه های عملیاتی خودرو : میزان مانور، شعاع چرخش 18FT، صفر تا صد زیر 6 ثانیه
· مشخصه های عملیاتی صنعت هوانوردی : کارکرد در آب و هواهای مختلف، سرعت هواپیما
· مشخصه های عملیاتی شبکه : احراض [احراز] هویت، زمان دسترسی، تاخیر

مشخصه های فیزیکی :
هر سیستمی در ارتباط با صفات غیر کارکردیش به کمک مشخصه های فیزیکی مانند سایز، وزن، رنگ، گنجایش، مشخصه های اینترفیس توصیف می گردد مانند :
· مشخصه های فیزیکی خودرو : وزن 4 تنف [تن] گنجایش مسافر 4 نفر
· مشخصه های فیزیکی سازمان : فضای دفتر 5000 متر مربع، شبکه با 15 کامپیوتر و فضای انبار 15000 متر مربع
· مشخصه های فیزیکی شبکه : پشتیبانی از اینترنت 1 مگابایت، توپوگرافی شبکه، روترز
👍2
Forwarded from Django Expert (Boby Cloud)
درود خدمت دوستان عزیز، طی چند هفته گذشته روی ریپوهای DjangoEx کار میکردیم و آپدیتی که قولش رو داده بودیم آماده شده. در زیر ریپوهارو به ترتیب معرفی میکنیم.

ریپازیتوری Awesome Python Resources: مجموعه ای از بهترین و کامل ترین ریسورس‌های مورد نیاز برای رشد در مسیر شغلی مهندسی نرم افزار (پایتون) به همراه تفکیک بر اساس Career Path و Advanced Topics
https://github.com/DjangoEx/awesome-python-resources

ریپازیتوری Awesome Python Roadmaps: مجموعه از رودمپ‌های مورد نیاز یک مهندس نرم افزار (پایتون) در Career Path هایی نظیر Backend، Data Scientist، Software Architect و ...
https://github.com/DjangoEx/awesome-python-roadmaps

ریپازیتوری Awesome Python Podcast: مجموعه‌ای از پادکست های حوزه مهندسی نرم‌افزار/پایتون برای آپدیت بودن راجع به رویدادهای کامیونیتی پایتون و اپیزودهای تکنیکالی که با پادکست میتونید یاد بگیرید:
https://github.com/DjangoEx/awesome-python-podcasts

ریپازیتوری Awesome Python Project Ideas: مجموعه‌ای از ایده‌ها برای پیاده سازی پروژه با پایتون به منظور تمرین یا کمک به رزومه، در سطوح Beginner، Intermediate و Advanced و به همراه User Stories, Project Overview, Bonus Features و ...
https://github.com/DjangoEx/awesome-python-project-ideas

ریپازیتوری Awesome Python Resources Persian: مجموعه‌ای از منابع آموزشی در زمینه پایتون به زبان فارسی
https://github.com/DjangoEx/awesome-python-resources-persian

ریپازیتوری DjangoEx Bot: احتمالا تا حالا کاربر Backend Senior Developer رو توی گروه دیدین که به سوالات پاسخ میده، این کاربر یک نوع هوش مصنوعی مبتنی بر GPT هست و توسط یکی از ادمین‌های کانال توسعه داده شده که میتونین به سورس کدش از طریق ریپازیتوری زیر دسترسی داشته باشین:
https://github.com/DjangoEx/django-expert-bot

تمام ریپازیتوری‌ها به صورت یکجا نیز در صفحه گیتهاب DjangoEx قابل دسترسی هست
https://github.com/DjangoEx

💡 لطفا اگر شما هم ایده‌هایی برای ریپازیتوری‌ها دارید، با ایجاد Issue و Pull Request به کامل‌تر شدن این ریپازیتوری‌ها کمک کنید، ما از هرگونه مشارکت عام المنفعه استقبال میکنیم.
✔️ باتشکر از همراهی همه شما عزیزانی که تا الان کانتربیوت کردید (+۵۰ نفر) و به این ریپازیتوری‌ها استار دادید و حمایت کردید به اشتراک گذاشتید. لطفا اگر این پست رو هم مفید میبینید به اشتراک بزارید.

#DjangoEx #Python #Github

© @DjangoEx
🔥4👏3
Forwarded from آکادمی دکتر مس‌فروش (Ali Mesforush)
سلام.
ویدیوهایی که توسط من تهیه شده، در دفتر کارم و بدون تجهیزات استودیویی تهیه شده است، به ویژه میکروفون مورد استفاده من میکروفن داخلی خود کامپیوتر است. برای بهبود کیفیت صدای ویدیوها و حذف نویز قصد دارم یک میکروفون نیمه حرفه‌ای بخرم. چون تمام درسهای من رایگان است، لذا امکان اینکه هزینه را شخصا متقبل بشوم وجود ندارد. ضمن اینکه هیچ اسپانسری هم تا کنون نداشته‌ام و حمایت مالی تا کنون از من صورت نگرفته است. لذا یک لینک حمایت مالی آماده کرده‌ام تا کسانی که تمایل به حمایت مالی از آکادمی رایگان من دارند در زمینه خرید میکروفون حمایت مالی کنند. طبق برآورد انجام شده به حدود 4 تا 5 میلیون تومان برای تهیه یک میکروفون نیمه حرفه‌ای مورد نیاز است که هدف را همین عدد قرار داده‌ام.
کسانی که تمایل دارند می‌توانند از طریق لینک زیر به هر میزان که می‌خواهند در تامین بودجه حمایت کنند.
https://hamibash.com/DrMesforushAcademy
با سپاس
/مس‌فروش
1🤮1
آیا یادگیری ریاضی می تواند شما را برنامه نویس بهتری کند؟

متن زیر رو بخونید- بخشی از مطلبی که لینکش رو آخر پست گذاشتم (توی نظراتش یکی گفته آخه html css ریاضی میخواد 😂 ):

ریاضیات لازم برای برنامه نویسی
جبر بولی
برای درک برنامه نویسی، باید مفاهیم جبر بولی را درک کنید. شما از منطق هایی مانند AND، OR، NOT، XOR و XNOR برای ساختن کد استفاده خواهید کرد، ریاضی در برنامه نویسی که همگی بخشی از چیزهایی هستند که در جبر بولی که نحوه عملکرد مدارهای کامپیوتری را نشان می دهد، یاد خواهید گرفت.

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

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

استقراء ریاضی
همه برنامه نویسان باید درک کاملی از استقرای ریاضی داشته باشند، که اساس هر مشکل مبتنی بر بازگشت در برنامه نویسی است.

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

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

نظریه گراف
اثبات ها و قضایای نظریه گراف به برنامه نویسان کمک می کند تا کدهای قابل پیمایش را ایجاد کنند و همچنین در برنامه نویسی راحت تر حرکت کنند.

همانطور که تئوری گراف را یاد می‌گیرید، با اثبات‌ها و قضایایی مانند جستجوی اول عمق، ریاضی در برنامه نویسی مرتب‌سازی توپولوژیکی، الگوریتم Dijkstra و جستجوی اول عرض بیشتر آشنا می‌شوید.

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

اینم لینک مطلب بالا:
https://www.iraniancyber.com/math-programming-contact/
👍3🤮1
پست قابل تاملی از @pyHints

اینم سوال جالبی بود که از من شد (چند هفته گذشته ولی خب ...)

اگر قرار بود از اول شروع کنی، چه مطالبی رو دنبالش میرفتی ؟

قطعاً برای برنا‌مه‌ نویسی :
بجای اون همه جابجایی فقط ۳ تا زبان رو نگه می داشتم

Assembly, Rust, Python3

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

قطعاً توی این مسیرم باز هم
Cisco CCNA, CCNP
رو میخوندم. (البته پیشنهادم برای برنامه‌نویس‌ها این روزها درحد همون CCNA هست)

قطعاً بازهم
Linux RedHat
رو آزمون‌هاش رو میدادم (مدرک lpic رو دوس ندارم چون خیلی کاغذی هست)

این موارد واجباتی هستند که فکر می‌کنم خیلی از سواد امروزم رو مدیون یادگیریشون هستم.
👍3🤮1
Meysam
دموی جرمی هاوارد برای زبان برنامه نویسی mojo این زبان در واقع یه چیزی مثل همون تایپ اسکریپت که برای جاوااسکریپت بود برای پایتون قراره باشه. خیلی سرعت رو بیشتر می‌کنه و تایپینگش عالیه.
💬 کامنت یکی از دوستان درباره این مطلب:

تایپ اسکریپت در نهایت به جاوا اسکریپت تبدیل میشه ولی این داستانش فرق داره. کلا یه زبان دیگه هست فقط سعی کردن با پایتون سازگارش کنن که بتونن از کتابخانه هاش استفاده کنن. از ابتدا هم به صورت کامپایلری طراحی شده و مفسر نداره. اگه بتونه به قولهایی که داده عمل کنه ( سرعت بالا، سازاگاری کامل با کتابخانه های فعلی پایتون) میتونه جایگزین پایتون بشه نه اینکه در کنارش استفاده بشه
🤮1
مطلبی از @djangoex

✔️ شاید تا الان براتون پیش اومده باشه که موقع نوشتن حلقه‌های for در پایتون، با خودتون فکرکنید که شاید راه‌های بهتری هم وجود داشته باشه.

در این مقاله ۳۰ مثال پایتونیک مختلف رو بررسی میکنیم تا از نوشتن حلقه‌های for اجتناب کنیم. مثال‌هایی که با استفاده از توابع built-in پایتون به دلیل پیاده‌سازی‌های داخلی پایتون (cpython) پرفورمنس بهتری دارن تا روش های functional programming که در کامیونیتی پایتون و متدهای built-in پایتون وجود داره و ...

توضیحات بیشتر همراه با مثال‌های مختلف رو می‌تونید در این مقاله مطالعه کنید:
👉 30 Pythonic Ways To Avoid For Loops — A Decade-Long Journey Best Practices

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

#python #best_practice

© @DjangoEx
👍8👏1🤮1
مطلبی از @PinkOrca
در مورد مقایسه Bootstrap و Tailwind

به شکل کلی، تو دنیای فرانت‌اند، تیلویند تکنولوژی جدیدتری محسوب میشه نسبت به بوتسترپ، ولی محبوبیتش به شدت زیاد و همینطور رو به افزایشه.

تاکید تیلویند بر سبک و بهینه بودن خروجیه، یعنی شما از کدی که نوشتید خروجی می‌گیرید و کلاس‌هایی که استفاده نشده ازشون دیگه باعث سنگین‌شدن فایل CSS شما نمیشن.
چیزی که در بوتسترپ برعکسه و صرفا خودش به تنهایی +۲۰۰ کیلوبایت به حجم پروژه شما اضافه می‌کنه که اگه به بهینگی تاکید داشته باشید تیلویند انتخاب مناسب‌تریه.

بوتسترپ یه فریمورک Component-based هستش و از تعداد زیادی استایل آماده برای اجزای مختلف تشکیل شده، ولی تیلویند Utility-first هستش و تک تک ویژگی‌های اجزاء رو خود شما مثل CSS عادی توش با کلاس‌ها تعریف می‌کنید.
این از طرفی به این معنیه که نه تو تیلویند برخلاف Pure CSS، کدهای شما تکرار میشن، نه مثل بوتسترپ وابسته به چهارچوب هستید و اکثر خروجی‌ها مشابه از آب در میان!🫣 پس دستتون باز تره...
ولی مشکلاتی هم داره این موضوع.
برای کسی که تو CSS مهارت خوبی نداره و صرفا هدفش ساخت سریع یه UI هستش(مثلا برای یک بک‌اند دولوپر)، بوتسترپ می‌تونه ساده‌تر باشه. از طرفی چون کلاس‌ها خیلی جزئی و متنوع هستن تو تیلویند، باعث  میشه برخلاف فایل CSS که توش از تکرار کد جلوگیری شده، این‌بار فایل HTML ما یکم شلوغ‌تر بشه.🥴

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

سوال مهم:
بهترین منبع برای یادگیری تیلویند css کجاست؟
مثل بوتسترپ، تیلویند هم داکیومنتیشن خوب و کاملی داره. بهترین کار اینه که یه روز بهش مراجعه کنید و در کمتر از یک بعد از ظهر، کار رو باهاش یاد بگیرید! البته قبلش بهتره تو CSS، سطحتون متوسط رو به بالا باشه.

به نظرم چیزی که مهم بود رو رسوندم تو این نوشته و تا همینجا کافیه، نتیجه با شما.

~> @PinkOrca
👍9🤮1
Forwarded from Python Hints
این باگ ۱ ماه تیم رو درگیر کرده بود :

توسعه و تست همزمان بصورت پارالل توی تیم‌هایی که هستم پیش میره (اگر تعداد نیرو کافی باشی)

یک بخشی از کد رو داریم که همه‌ی تست هارو به درستی پشت سر میذاره، حتی تست‌هایی که توی pipeline و CI/CD داریم

همه چیز حتی بصورت هفتگی روی سیستم ها درست کار می‌کنه
اما بمحض اینکه میره روی سرور تست‌ خصوصی یا
A/B test

سرعتش تا ۲۰ برابر کندتر می‌شه شایدم بیشتر
ولی این مشکل رو روی سیستم دولوپر‌ها نداریم.

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

مشکل چی بود:

if item in mylist:

همین خط کد، ۲ تا مسئله داشتیم،
۱- نیروی junior ایی از طرف شرکت به تیم اضافه شده
۲- توی تیم DevOps هم چون کار روتین شده بوده، سپرده‌اند به یک نیروی Mid-level نگهداری رو

و همزمان ۲ تا خطا انجام شده :
۱- نیروی تیم توسعه و استفاده از in توی پایتون
۲- نیروی تیم DevOps و تبدیل یکی از pipeline های تست، ازش پرسیدند چرا انقدر تست طول می‌کشه بنده خدا رفته چک کرده دیده یک دیتاست بزرگ داریم برای تست
اومده این رو با یک دیتای کوچیکتر جایگزین کرده

و چون نیروی junior توسعه دهنده هم سواد کافی نداشته روی
mylist
توی مثال بالا برای چک کردن اینکه آیا یک نمونه‌ای وجود داره یا نه از
in

استفاده کرده، که روی حجم بالای دیتا منبع اصلی کند بودن هست :

راهکار :
۱- چون روی دیتاهای حجیم کار می‌کنیم، DevOps نباید دیتای تست رو تغییر میداد (اینجوری باگ خیلی زودتر خودش رو نشون میداد)

۲- نیروی تیم توسعه نباید از in و list استفاده میکرد :
۲-۱ : اول به این دلیل که ما اندیس داده رو نمی‌خواهیم فقط وجود یا عدم وجودش توی کدها مهم بوده که نوع داده‌ای set بسیار اینجا کمک کننده بود, همین که بدونیم ۱ مورد وجود داره برامون کفایت می‌کنه این یعنی فضای جستجو کوچکتر

۲-۲ : دستور in بطور کلی کند هست (برای list, set کوچیک خوبه) باید بجاش از الگوریتم‌ها و ساختمان داده درستش استفاده میکرد که Tree گزینه خوبی هست قطعاً.

دو تا اشتباه همزمان می‌تونه ۱ ماه همه‌ی تیم رو سردرگم کنه

نکته‌ی مهم :
حواستون باشه کجا از in استفاده می‌کنید و مهمتر اگر برای داده حجیم کد میزنید حتماً یکبار روی این حجم داده هم تست انجام بدید.
🔥11👍5👏1🤮1
Forwarded from a pessimistic researcher (Kc)
آقای Emanuele Viola استاد دانشگاه Northeastern هستند و حوزه کاریشون Computational Complexity هستش. اگه بخوام خیلی خیلی ساده بگم یعنی دنبال این قضیه هستند که کامپیوتر چه مسائلی رو میتونه حل بکنه و چه مسائلی رو نمی‌تونه حل بکنه. از وجناتشون اگر بخوام بگم علاوه بر مقالات خیلی خوبشون، مدرس خوبی هم هستند، فیلمای دوتا کلاس طراحی الگوریتم و نظریه محاسبات‌شون روی کانال یوتیوب‌شون هست. علاوه براین دست به قلمم هستند و یه وبلاگ خیلی جذاب دارند.

حالا همه اینا رو گفتم که برسیم اینجا. ایشون همین چند ساعت پیش، نسخه‌ی Draft کتابشون رو منتشر کردند. عنوان کتابشون هست : Mathematics of the impossible: Computational Complexity
همونطور که از اسمش پیداست، موضوع کتاب درباره‌ی نظریه پیچیدگیه و یا همون بحثی که بالاتر گفتم. منتهی فرق خیلی اساسی با کتابای دیگه این حوزه داره. یک، حجم جمع و جوری داره و میشه با یک برنامه‌ریزی خوبی خوندش. دو، برخلاف کتاب‌های این حوزه اصلا ترسناک نیست، یعنی اینطوری نیست که تا کتاب رو باز می‌کنی این حس بهت دست بده که زبان کتاب یونانیه. سه، بشدت متن روون و داستان وار و جذابی داره. مثلا توی فصل اولش میاد میگه میخوام یه تیزری از این کتاب بدم، بعد میاد میگه فرض کن یک کامپیوتر داری با ۳ بیت حافظه. این کامپیوتر یه کلاک داره که سر هر پالسش یکی از این دو عملیات رو انجام میده، یا یک بیت دیتا ورودی میخونه و حافظه رو آپدت می‌کنه، و یا متوقف میشه و یک مقداری رو برمی‌گردونه.

با همین کامپیوتر ساده شروع میکنه مسئله حل کردن. مسئله‌ی AND یک رشته n بیتی، مسئله‌ی چک کردن پالیندورم بودن یک رشته n بیتی و میرسه به مسئله‌ی Majority یک رشته n بیتی، یعنی بیش از نصف رشته اگر یک بود، روی یک توافق میشه و اگر نصف بیشتر رشته صفر بود روی صفر توافق میشه. سوالی مطرح می‌کنند که هر کسی در مرحله‌ی اول جوابش رو میگه نه، ولی متوجه می‌شید که میشه مسئله رو در زمانی که مد نظر مسئله هست حل کرد! و همونجا متوجه می‌شید که چقدر ارزش این علم بالاست.

خلاصه همینطوری فصل به فصل میان جلو و توی فصل آخر میگن I believe P=NP :))))

سر این قضیه که P = NP باشه خوبه یا بده قبلا یه پست توی کانال رفتم که بدون داشتن ذره‌ای سواد نظریه پیچیدگی می‌تونید متوجه‌اش بشید. پسته اینجاست.
🔥7👍1🤮1
🔵 آشنایی با defaultdict در پایتون

در هنگام استفاده از دیکشنری‌های پایتونی، گاهی به کلیدهایی برمی‌خوریم که از قبل در دیکشنری ما وجود ندارند و این اتفاق، باعث دریافت خطا در برنامه می‌شود. کانتینر defaultdict قرار است در حل این مسئله به ما کمک کند؛ با مطالعه این پست با این امکان از زبان پایتون آشنا می‌شوید.
#پایتون #Python


لوپینو | آموزش های برنامه نویسی
• Telegran: @loopino
• Instagram: https://www.instagram.com/loopino_fa/
👍5🤮1
Forwarded from Python BackendHub
یکی دیگه از کاربرد های fingerprinting میتونه request limit باشه.

تو هر api شما نیاز دارین برای gateway سرویس هاتون یک لیمیت بنویسید که کسی شما رو ddos نکنه.
یکی از راه حل های ابتدایی استفاده از IP Address هست. البته بخاطر وجود CGNAT عملا راهکار جالبی نیست چون هکر میتونه پشت CGNAT قایم شه که شما وایت لیست کردین و همچنان سیستمتون رو پایین بیاره.

پس برای یک راهکار safe باید چیکار کرد؟

1. برای روتر های private: از authentication header استفاده کنید و ریت لیمیت رو روی اون بذارین. در حالی که میتونه راه حل بنظر مناسبی باشه ولی هکر میتونه تعداد زیادی کاربر بسازه و با JWT هر کدوم بازم اسپم کنه. پس بازم راهکار کاملی نیست.

2. برای روتر ثبت نام: لیمیت کردن و حساسیت رو سرویس ثبت نام به ازای هر آی پی بدون داشتن وایت لیستی برای CGNATکه به طور periodic بلک لیست کنه اون آی پی رو و بعد چند ساعت دوباره بتونه حساب کاربری بسازه.

3. برای روتر پابلیک : استفاده از browser fingerprinting برای تشخیص دیوایس کاربر و گذاشتن ریمیت لیت روی ترکیب GPU fingerprint (مثل webgl یا webtrc) و IP بدون هیچ وایت لیستی. همین تکنیک میتونه رو روتر ثبت نام هم پیاده شه تا حساسیت روتر ثبت نام رو روی CGNAT کم کنه.


راهکار سوم راهکاریه که ddos shield ها ازش استفاده میکنن مثل cloudflare. راهکار بهترش اینه که خودتون مدل کاستومایز و فینگرپرینت مخصوص خودتون داشته باشین یا از سرویس پرمیومشون استفاده کنید که فایل جاوا اسکریپتشو تند تند آپدیت میکنن و به اطلاعات ویزیتور ها هم دسترسی میدن.


از نمونه سایت هایی که از راهکار سوم استفاده میکنن:
Sony Entertainment
Apple Store
Youtube


برای دیدن browser fıngerprint خودتون به این صفحه برین
@ManiFoldsPython
👍1🤮1