Forwarded from Seyed Mahdi Notes (Seyed Mahdi)
دیروز سوال شد ازم که آیا fast api سریع هست؟
خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :)
به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست
بر فرض ما یه app رو تازه نوشتیم(به هر زبونی و فریمورکی فرقی نمیکنه) توی قدم اول رانش میکنیم!!! نمیریم استرس و لود تست ازش بگیریم که همون اول :/
بعد چندین سال صبر میکنیم تا یوزرای همزمان سایت زیادتر بشن!
بعد ازدیاد جمعیت اولین bottleneck ای که بر میخوریم اینه که اپ کند شده... خب ورکر هاشو زیاد میکنیم. توی پایتون گونیکورن این قضیه رو هندل میکنه
بعد یه مدت وقتی شلوغ تر شدیم میبینیم دیتابیس زیر فشاره. خب قبل اینکه توی این استیت باشید باید کوئری هاتون رو تا جای ممکن بهینه میکردید.
توی این مرحله ۲ تا سولوشن دارید! (دقت کنید که هنوز مهم نیست اپ رو با چی نوشتید:))
- کش کردن: بخشی از دیتای دیتابیس رو کش کنید حالا یا با قابلیتای خود دیتابیس یا ردیس ای چیزی بزارید وسط
- کلاستر کردن دیتابیس: میتونید دیتابیس رو ۳ تا اینستنس ازش بیارید بالا و یا slave و master بزارید و تمام read ها رو بفرسید سمت اسلیو
خب تا اینجا احتمالا بالای ۵۰۰ تا یوزر همزمان دارید! ادامه بدم؟
خب قدم بعد مجدد app کم میاره اگه نمیتونید ترد ها و ورکر هاشو بیشتر از این بالا ببرید ؛ اینجاست که بحث فریمورک ها رو مطرح ...
نه خب سخت در اشتباهید بیام سر قضیه فریمورک و زبان بحث کنم
وقتی شما ۱۰۰۰ تا یوزر همزمان دارید یعنی پولتون از پارو بالا میره
برید ۳ تا سرور دیگه بخرید و بکندتون رو روی اونا هم ران کنید(همزمان ۳ جا) بعد از جایی که خریدید بگید یه نتورک داخلی بین این ۴ سرورتون بزاره . روی سرور ۴ ام haproxy یا nginx بزنید که ترافیک ورودی رو پخش کنه بین این ۳ تا سرور ... ایزی
در راستای این پست ، یکی میگفت: اونایی که وسط حرفاشون کلمات انگلیسی استفاده میکنن خیلی کنسل هستن :))))
خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :)
به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست
بر فرض ما یه app رو تازه نوشتیم(به هر زبونی و فریمورکی فرقی نمیکنه) توی قدم اول رانش میکنیم!!! نمیریم استرس و لود تست ازش بگیریم که همون اول :/
بعد چندین سال صبر میکنیم تا یوزرای همزمان سایت زیادتر بشن!
بعد ازدیاد جمعیت اولین bottleneck ای که بر میخوریم اینه که اپ کند شده... خب ورکر هاشو زیاد میکنیم. توی پایتون گونیکورن این قضیه رو هندل میکنه
بعد یه مدت وقتی شلوغ تر شدیم میبینیم دیتابیس زیر فشاره. خب قبل اینکه توی این استیت باشید باید کوئری هاتون رو تا جای ممکن بهینه میکردید.
توی این مرحله ۲ تا سولوشن دارید! (دقت کنید که هنوز مهم نیست اپ رو با چی نوشتید:))
- کش کردن: بخشی از دیتای دیتابیس رو کش کنید حالا یا با قابلیتای خود دیتابیس یا ردیس ای چیزی بزارید وسط
- کلاستر کردن دیتابیس: میتونید دیتابیس رو ۳ تا اینستنس ازش بیارید بالا و یا slave و master بزارید و تمام read ها رو بفرسید سمت اسلیو
خب تا اینجا احتمالا بالای ۵۰۰ تا یوزر همزمان دارید! ادامه بدم؟
خب قدم بعد مجدد app کم میاره اگه نمیتونید ترد ها و ورکر هاشو بیشتر از این بالا ببرید ؛ اینجاست که بحث فریمورک ها رو مطرح ...
نه خب سخت در اشتباهید بیام سر قضیه فریمورک و زبان بحث کنم
وقتی شما ۱۰۰۰ تا یوزر همزمان دارید یعنی پولتون از پارو بالا میره
برید ۳ تا سرور دیگه بخرید و بکندتون رو روی اونا هم ران کنید(همزمان ۳ جا) بعد از جایی که خریدید بگید یه نتورک داخلی بین این ۴ سرورتون بزاره . روی سرور ۴ ام haproxy یا nginx بزنید که ترافیک ورودی رو پخش کنه بین این ۳ تا سرور ... ایزی
در راستای این پست ، یکی میگفت: اونایی که وسط حرفاشون کلمات انگلیسی استفاده میکنن خیلی کنسل هستن :))))
🔥8👍3👎2
Seyed Mahdi Notes
دیروز سوال شد ازم که آیا fast api سریع هست؟ خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :) به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست بر فرض ما یه app رو…
✅یه نکته در مورد این پست
خیلی ها سرعت براشون مهم هست. اما همیشه گفتم و بازم میگم شاید بیش از 90 درصد پروژه هایی که من و امثال من کار میکنیم یا کار خواهیم کرد. سرعت و پرفورمنس زبان/فریمورک توش مهم نیست.
لذا با علم به این موضوع دیگه دنبال اینکه کدوم زبان بهتره یا قوی تره و... نباشید
اونی که باهاش حال میکنی و باعث میشه بهتر و بیشتر پول در بیاری رو انتخاب کن بره
و اینم میدونیم که انتخاب تکنولوژی/زبان/فریمورک/ابزار به پروژه بستگی داره.
مثلا با پایتون میشه ویندوز فرم ساخت. اما بهترین گزینه برای ویندوز فرم همون سی شاپ/وی بی و ویژوال استودیو مایکروسافت هست.
خیلی ها سرعت براشون مهم هست. اما همیشه گفتم و بازم میگم شاید بیش از 90 درصد پروژه هایی که من و امثال من کار میکنیم یا کار خواهیم کرد. سرعت و پرفورمنس زبان/فریمورک توش مهم نیست.
لذا با علم به این موضوع دیگه دنبال اینکه کدوم زبان بهتره یا قوی تره و... نباشید
اونی که باهاش حال میکنی و باعث میشه بهتر و بیشتر پول در بیاری رو انتخاب کن بره
و اینم میدونیم که انتخاب تکنولوژی/زبان/فریمورک/ابزار به پروژه بستگی داره.
مثلا با پایتون میشه ویندوز فرم ساخت. اما بهترین گزینه برای ویندوز فرم همون سی شاپ/وی بی و ویژوال استودیو مایکروسافت هست.
👍4
Seyed Mahdi Notes
دیروز سوال شد ازم که آیا fast api سریع هست؟ خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :) به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست بر فرض ما یه app رو…
✅نکته هایی از مانی برای این پست
این پست خیلی اشتباهه؛
۱. حجم ترافیک به تعداد یوزر نیست. ممکنه یک سایت با ۲۰ یوزر خیلی ترافیک بیشتری داشته باشه. بستگی داره اون یوزرا کین و چیکار میکنن 🙂 من یادمه با یک شرکت المانی مصاحبه میکردم برای هر یوزری که داشتن یک دیتابیس sharding شده میساختن…
۲. درامد بیزنس از تعداد یوزر و ترافیک تعیین نمیشه.
۳. باتل نک صرفا cpu sensitive نیست که با بیشتر کردن ورکر ها برطرف شه.
۴. تو فست شما میتونید io bound taks رو تو بک گراند داشته باشید و تسک cpu bound هم انجام بدید یا چند تسک io bound رو باهم انجام بدید. ایا میشه تو جنگو؟شدنش میشه ولی پرفومنسش قابل مقایسه نیست با فست چون asgi نیست و همچنان داره ترد باز میکنه
۵. بحث scaling چالش های خودشو داره.دوآپس میخواد, بحث auto scaling میاد logging پیچیده تر میشه و ... . در نهایت بیزنس بیشتر خرجه دوآپس کار و سرور میکنه چرا؟ چون دولوپر مایندست سمی داشته 🙂
۶. فست بین فریم ورک های پایتونی جزو کند ترین هاست. تو بنچ مارک حداقل کلی فریم ورک بالاتر هستند ازش. خود استارلت دو برابره فست پرفومنس داره. fast تو fastapi ربطی به پرفومنس نداره بیشتر به سرعت توسعه ربط داره. چیزی که هیچ کدوم از فریم ورک های بالاترش تو بنچ مارک ندارن.
FastAPI framework, high performance, easy to learn, fast to code, ready for production
۷. اگه اینطوریه پس کلا چرا ساختمان داده میخونیم؟چرا خودمونو اذیت میکنیم؟همرو با لیست بزنیم بره دیگه . مشکل خورد تیم scale میکنه :)))
۸. خیلی وقتا scale کردن خیلی پیچیدست. مثال بارزش؟graphql یا web socket. یا اپلیکیشن هایی که stateful هستند.
این پست خیلی اشتباهه؛
۱. حجم ترافیک به تعداد یوزر نیست. ممکنه یک سایت با ۲۰ یوزر خیلی ترافیک بیشتری داشته باشه. بستگی داره اون یوزرا کین و چیکار میکنن 🙂 من یادمه با یک شرکت المانی مصاحبه میکردم برای هر یوزری که داشتن یک دیتابیس sharding شده میساختن…
۲. درامد بیزنس از تعداد یوزر و ترافیک تعیین نمیشه.
۳. باتل نک صرفا cpu sensitive نیست که با بیشتر کردن ورکر ها برطرف شه.
۴. تو فست شما میتونید io bound taks رو تو بک گراند داشته باشید و تسک cpu bound هم انجام بدید یا چند تسک io bound رو باهم انجام بدید. ایا میشه تو جنگو؟شدنش میشه ولی پرفومنسش قابل مقایسه نیست با فست چون asgi نیست و همچنان داره ترد باز میکنه
۵. بحث scaling چالش های خودشو داره.دوآپس میخواد, بحث auto scaling میاد logging پیچیده تر میشه و ... . در نهایت بیزنس بیشتر خرجه دوآپس کار و سرور میکنه چرا؟ چون دولوپر مایندست سمی داشته 🙂
۶. فست بین فریم ورک های پایتونی جزو کند ترین هاست. تو بنچ مارک حداقل کلی فریم ورک بالاتر هستند ازش. خود استارلت دو برابره فست پرفومنس داره. fast تو fastapi ربطی به پرفومنس نداره بیشتر به سرعت توسعه ربط داره. چیزی که هیچ کدوم از فریم ورک های بالاترش تو بنچ مارک ندارن.
FastAPI framework, high performance, easy to learn, fast to code, ready for production
۷. اگه اینطوریه پس کلا چرا ساختمان داده میخونیم؟چرا خودمونو اذیت میکنیم؟همرو با لیست بزنیم بره دیگه . مشکل خورد تیم scale میکنه :)))
۸. خیلی وقتا scale کردن خیلی پیچیدست. مثال بارزش؟graphql یا web socket. یا اپلیکیشن هایی که stateful هستند.
👍8❤1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
ابزار JsonCrack خیلی جالبه. از فایل های جیسونی که خوندنشون سخته براتون مثله تصویر پست یه دیاگرام تولید میکنه که میتونید ازش خروجی تصویری بگیرید.
علاوه بر JSON از YAML، XML و CSV هم پشتیبانی میکنه و برای vscode هم اکستنشن داره .
لینک گیت هاب پروژه:
https://github.com/AykutSarac/jsoncrack.com
وبسایت پروژه:
https://jsoncrack.com/
ادیتوور انلاین :
https://jsoncrack.com/editor
از اینجا این پست رو برداشتم
✅ @SEYED_BAX
علاوه بر JSON از YAML، XML و CSV هم پشتیبانی میکنه و برای vscode هم اکستنشن داره .
لینک گیت هاب پروژه:
https://github.com/AykutSarac/jsoncrack.com
وبسایت پروژه:
https://jsoncrack.com/
ادیتوور انلاین :
https://jsoncrack.com/editor
از اینجا این پست رو برداشتم
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Forwarded from Syntax | سینتکس (Alireza-fa)
با توجه به اینکه خیلیا گفتن دنبال کاریم. میخوام که درباره ساخت رزومه تا گرفتن مصاحبه براتون ویدیو ظبط کنم و یه سری نکاتی که بلدم رو توضیح بدم.
تو بخش اول، رزومه رو درستش میکنیم و تو موقعیت های شغلی ای که در وب سایت های جابینجا و جاب ویژن هست، ارسال می کنیم.
تو بخش دوم ویدیو که یک الی دو هفته بعد ظبط میشه. با هم دیگه بازخوردی که دریافت کردیم رو بررسی میکنیم.
رزومه ای که درست میکنیم برای یک شخص جونیور (Python back end developer / Django) هست که میخواد تازه وارد بازار کار بشه پس نمونه کار و تجربه کاریه زیادی نداره
اگه نظری دارید خوشحال میشم درمیون بذارید تا قبل از ظبط بهش توجه کنم
@citax_tel 👈 سیتاکس
تو بخش اول، رزومه رو درستش میکنیم و تو موقعیت های شغلی ای که در وب سایت های جابینجا و جاب ویژن هست، ارسال می کنیم.
تو بخش دوم ویدیو که یک الی دو هفته بعد ظبط میشه. با هم دیگه بازخوردی که دریافت کردیم رو بررسی میکنیم.
رزومه ای که درست میکنیم برای یک شخص جونیور (Python back end developer / Django) هست که میخواد تازه وارد بازار کار بشه پس نمونه کار و تجربه کاریه زیادی نداره
اگه نظری دارید خوشحال میشم درمیون بذارید تا قبل از ظبط بهش توجه کنم
@citax_tel 👈 سیتاکس
🔥19👍5🤮1
Forwarded from Md Daily
در مورد این هک هایی که اتفاق میفته و دیتا شرکتهای بزرگ را میبرند، الزاما همیشه از طریق آسیبپذیری نیست، لذا به نکات زیر توجه فرمایید 🤭
به هاستینگ اعتماد نکنید ( مخصوصا ایرانی )، اینها به فایلهای مشتری دسترسی دارند و اگر چیزه جذابی ببینند احتمال دارد برای خودشون کپی کنند.
یک) اگر یک کسب و کار بزرگی دارید که نیازمند سرور اختصاصیست به هر نحوی که شده از شرکتهای معتبر سرور بگیرید و به این هاست فروشهای داخل زیاد اعتماد نکنید
اگر سایت / دیتا جالبی داشته باشید اینها ممکنه درایو سرور را clone میگیرند یا با KVM وصل میشوند و سورس/دیتا سایت شما را بدزدند.
دو) کد خودتون را محافظت کنید اگر مثلا php است با چیزهایی مثل sourceguardian و ... کدتون را encrypt کنید و حتما کد را روی دامنه قفل کنید که فقط روی دامنه شما و localhost اجرا بشود
سه) سیستم عامل را encrypt کنید که سرویس دهنده توانایی دسترسی به فایلها/دیتابیس شما را نداشته باشد
<Teegra>
🆔 @MdDaily
به هاستینگ اعتماد نکنید ( مخصوصا ایرانی )، اینها به فایلهای مشتری دسترسی دارند و اگر چیزه جذابی ببینند احتمال دارد برای خودشون کپی کنند.
یک) اگر یک کسب و کار بزرگی دارید که نیازمند سرور اختصاصیست به هر نحوی که شده از شرکتهای معتبر سرور بگیرید و به این هاست فروشهای داخل زیاد اعتماد نکنید
اگر سایت / دیتا جالبی داشته باشید اینها ممکنه درایو سرور را clone میگیرند یا با KVM وصل میشوند و سورس/دیتا سایت شما را بدزدند.
دو) کد خودتون را محافظت کنید اگر مثلا php است با چیزهایی مثل sourceguardian و ... کدتون را encrypt کنید و حتما کد را روی دامنه قفل کنید که فقط روی دامنه شما و localhost اجرا بشود
سه) سیستم عامل را encrypt کنید که سرویس دهنده توانایی دسترسی به فایلها/دیتابیس شما را نداشته باشد
<Teegra>
🆔 @MdDaily
👍5
Forwarded from Md Daily
در ادامه ی پست سید مهدی عزیز منم نظر و تجربه خودم رو میگم:
وقتی شما قراره یه پروژه ایو شروع کنید، اگه تمام مدت به این فکر کنید که قراره از چه ابزاری استفاده بشه و اگه از این ابزار یا تکنولوژی استفاده کنم نکنه در آینده به مشکل بخوره، کند بشه، منسوخ بشه، پشیمون بشم و کلی افکار که قراره شما را بمباران کنه، ممکنه هیچ وقت نتونید اون ایده را شروع یا محصول کنید یا بتونید به نتیجه برسونیدش
واقعا کاربر استفاده کننده براش مهم نیست شما اون پشت از چی استفاده کردید، پروژه را با fast api زدید یا django یا حتی node js . تنها چیزی که برا کاربر مهمه اینکه اون اپ یا سایت داره بدون مشکل کار میکنه
پس شما بجای اینکه به اون تکنولوژی و ابزاری که ازش دارید استفاده میکنید وابسته باشید، باید روی مهارت های خودتون ساختار پروژه تمرکز کنید. اما این دقیقا یعنی چی؟
اینکه شما کدوم ابزار رو استفاده کنید جزئیاته بیشتر از اینکه خودتون رو در گیر جزئیات کنید ببینید دقیقا میخواین چیکار کنید
جزئیات خودش مشخص میشه
برای انتخب زبانی که قراره پروژتون رو باهاش ببرید جلو نه به بنجمارک ها اعتماد کنید و نه از روی ترند انتخاب کنید
چیز های مختلف رو تست کنید و ببینید با کدوم راحت و مسلط هستید با همون پروژه رو ببرید جلو
اما چرا نباید به بنجمارک ها اعتماد کنیم؟
بنجمارک گرفتن اصلا کار آسونی نیست
محیطی که توی اون بنجمارک گرفتن با محیط اجرایی شما فرق میکنه
کدی که توی بنجمارکه با کد شما فرق میکنه
شرایطی که توش بنجمارک گرفتن با شرایط شما فرق میکنه و کلی پارامتر دیگه هست که چرا نباید به بنجمارک ها اعتماد کنیم .
بنجمارک میتونه در حالتی قابل اعتماد باشه که مثلا بین دوتا فریم ورک شک دارید روی محیط اجرایی خودتون با شرایط یکسان از این دوتا بنجمارک میگیرد و به انتخابتون کمک میکنه
به نقل قول از دوستان:
بهترین زبان و تکنولوژی اونیکه شما ازش در آمد دارید :)
در نهایت خیلی خودتون رو قاطی دعوا های اون زبان از اون بهتره ها و اینا نکنید اینا همشون ابزارن، مهم مهارت و دانش خودتونه که مهمه تا ابزاری که دارید باهاش کار میکنید
🆔 @MdDaily
وقتی شما قراره یه پروژه ایو شروع کنید، اگه تمام مدت به این فکر کنید که قراره از چه ابزاری استفاده بشه و اگه از این ابزار یا تکنولوژی استفاده کنم نکنه در آینده به مشکل بخوره، کند بشه، منسوخ بشه، پشیمون بشم و کلی افکار که قراره شما را بمباران کنه، ممکنه هیچ وقت نتونید اون ایده را شروع یا محصول کنید یا بتونید به نتیجه برسونیدش
واقعا کاربر استفاده کننده براش مهم نیست شما اون پشت از چی استفاده کردید، پروژه را با fast api زدید یا django یا حتی node js . تنها چیزی که برا کاربر مهمه اینکه اون اپ یا سایت داره بدون مشکل کار میکنه
پس شما بجای اینکه به اون تکنولوژی و ابزاری که ازش دارید استفاده میکنید وابسته باشید، باید روی مهارت های خودتون ساختار پروژه تمرکز کنید. اما این دقیقا یعنی چی؟
اینکه شما کدوم ابزار رو استفاده کنید جزئیاته بیشتر از اینکه خودتون رو در گیر جزئیات کنید ببینید دقیقا میخواین چیکار کنید
جزئیات خودش مشخص میشه
برای انتخب زبانی که قراره پروژتون رو باهاش ببرید جلو نه به بنجمارک ها اعتماد کنید و نه از روی ترند انتخاب کنید
چیز های مختلف رو تست کنید و ببینید با کدوم راحت و مسلط هستید با همون پروژه رو ببرید جلو
اما چرا نباید به بنجمارک ها اعتماد کنیم؟
بنجمارک گرفتن اصلا کار آسونی نیست
محیطی که توی اون بنجمارک گرفتن با محیط اجرایی شما فرق میکنه
کدی که توی بنجمارکه با کد شما فرق میکنه
شرایطی که توش بنجمارک گرفتن با شرایط شما فرق میکنه و کلی پارامتر دیگه هست که چرا نباید به بنجمارک ها اعتماد کنیم .
بنجمارک میتونه در حالتی قابل اعتماد باشه که مثلا بین دوتا فریم ورک شک دارید روی محیط اجرایی خودتون با شرایط یکسان از این دوتا بنجمارک میگیرد و به انتخابتون کمک میکنه
به نقل قول از دوستان:
بهترین زبان و تکنولوژی اونیکه شما ازش در آمد دارید :)
در نهایت خیلی خودتون رو قاطی دعوا های اون زبان از اون بهتره ها و اینا نکنید اینا همشون ابزارن، مهم مهارت و دانش خودتونه که مهمه تا ابزاری که دارید باهاش کار میکنید
🆔 @MdDaily
👍6❤3
Forwarded from مطالب رایگان و آزاد🎈 ( behrad)
* ریکپچا
* Re-captcha
ریکپچا یکی از باحال ترین و زیباترین و هوشمندانه ترین پروژه های متن-بازی بود که توسط یه ایده جالب ازیه شرکت کوچولو شروع شد...
هدف این بود که ما حجم بسیار زیادی کتاب داریم که تایپ نشدن و نسخه الکترونیکی تایپ شده و قابل سرچ ندارن، هزینه تایپشونم خیلی میشه...
اگه ما بتونیم:
+ تصاویر کلمات اون کتابهارو با یه الگوریتم کراپ (crop)کنیم،
+ تصویر یه عبارت کراپ شده رو بدیم به مردمی که میخوان جایی اعتبارسنجی بشن تا برامون به جای کپچا تایپ کنن،
+ یه عبارت رو به حداقل چند نفر بدیم که همه باهم همونو تایپ کنن و اون چیزی که رای مجاریتی هست رو به عنوان جواب درست ذخیره کنیم و کپچای افراد رو قبول کنیم!
اینطوری با یه تیر چند تا نشون زدیم...
هم کتب تاریخی توی یه پروژه عام المنفعه تایپ میشن و در اختیار همه قرار میگیرن (نوعی از کرادسورسنیگ)
هم مردم توسط یه کپچا اعتبار سنجی میشن...
این تیکه آخرش خیلی باحال و هوشمندانه بوده - یعنی خود ریکپچا هم نمیدونسته جواب درست چیه ولی جوابو بدست میآورده و اعتبارسنجی میکرده🥴
مایی که اینو میدونستیم بعضی وقتا بدجنسی میکردیم و یه کرکترو از قصد غلط میزدیم که ببینیم واقعا قبول میکنه یا نه، که مجاریتی میگرفت و قبول میکرد🫣
=+=+=+=+=+=+=+=+=+=+=+=+=+
خلاصه ایده این بود که ما کتب رو بجای کپچا بدیم به مردم ، مردم همزمان که دارن پازل کپچا رو حل میکنن ، نادانسته توی تایپ کردن این همه کتاب هم شرکت میکنن و صرفا چهارتا حرف بیهوده رو نمیزنن....
و همزمان همه دنیا باهم این این پروژه رو انجام میدن...
همه چی عالی بود تا اینکه گوگل اومد دخالت کرد و پروژه رو به دست گرفت و حالا بعد از 7-8 سال داره باهاش عکس های
street-map
خودشو قوی میکنه، تا راحت تر جاسوسی کنه😐
دیگه من بیشتر حرفی نمیزنم...خودتون میدونین جریان چیه.
+=+=+=+=+=+=+=+=+=+=+=+=
این مطالبی که تا اینجا گفتمو بخونین که یه نیم ساعتی برم و برگردم و بیام داستان چالش و کپچای ترمینالی رو بگم - فعلا✨❤️🩹
* Re-captcha
ریکپچا یکی از باحال ترین و زیباترین و هوشمندانه ترین پروژه های متن-بازی بود که توسط یه ایده جالب ازیه شرکت کوچولو شروع شد...
هدف این بود که ما حجم بسیار زیادی کتاب داریم که تایپ نشدن و نسخه الکترونیکی تایپ شده و قابل سرچ ندارن، هزینه تایپشونم خیلی میشه...
اگه ما بتونیم:
+ تصاویر کلمات اون کتابهارو با یه الگوریتم کراپ (crop)کنیم،
+ تصویر یه عبارت کراپ شده رو بدیم به مردمی که میخوان جایی اعتبارسنجی بشن تا برامون به جای کپچا تایپ کنن،
+ یه عبارت رو به حداقل چند نفر بدیم که همه باهم همونو تایپ کنن و اون چیزی که رای مجاریتی هست رو به عنوان جواب درست ذخیره کنیم و کپچای افراد رو قبول کنیم!
اینطوری با یه تیر چند تا نشون زدیم...
هم کتب تاریخی توی یه پروژه عام المنفعه تایپ میشن و در اختیار همه قرار میگیرن (نوعی از کرادسورسنیگ)
هم مردم توسط یه کپچا اعتبار سنجی میشن...
این تیکه آخرش خیلی باحال و هوشمندانه بوده - یعنی خود ریکپچا هم نمیدونسته جواب درست چیه ولی جوابو بدست میآورده و اعتبارسنجی میکرده🥴
مایی که اینو میدونستیم بعضی وقتا بدجنسی میکردیم و یه کرکترو از قصد غلط میزدیم که ببینیم واقعا قبول میکنه یا نه، که مجاریتی میگرفت و قبول میکرد🫣
=+=+=+=+=+=+=+=+=+=+=+=+=+
خلاصه ایده این بود که ما کتب رو بجای کپچا بدیم به مردم ، مردم همزمان که دارن پازل کپچا رو حل میکنن ، نادانسته توی تایپ کردن این همه کتاب هم شرکت میکنن و صرفا چهارتا حرف بیهوده رو نمیزنن....
و همزمان همه دنیا باهم این این پروژه رو انجام میدن...
همه چی عالی بود تا اینکه گوگل اومد دخالت کرد و پروژه رو به دست گرفت و حالا بعد از 7-8 سال داره باهاش عکس های
street-map
خودشو قوی میکنه، تا راحت تر جاسوسی کنه😐
دیگه من بیشتر حرفی نمیزنم...خودتون میدونین جریان چیه.
+=+=+=+=+=+=+=+=+=+=+=+=
این مطالبی که تا اینجا گفتمو بخونین که یه نیم ساعتی برم و برگردم و بیام داستان چالش و کپچای ترمینالی رو بگم - فعلا✨❤️🩹
👍7❤4
سلام به همه
✔️ حدودا سه سال پیش ویدئوهام 10 هزار بار (توی آپارات) بازدید داشتن
امروز 20 هزار تارو رد کردن 😊
اینجا می نویسم برای آینده خودم
#جنگو
#پایتون
#برنامه_نویسی_از_پایه
✔️ حدودا سه سال پیش ویدئوهام 10 هزار بار (توی آپارات) بازدید داشتن
امروز 20 هزار تارو رد کردن 😊
اینجا می نویسم برای آینده خودم
#جنگو
#پایتون
#برنامه_نویسی_از_پایه
👍10👏7
Forwarded from Python Hints
این ویدئو در راستای همون صحبتی هست که داشتم :
وب رو فارغ از فریمورک یاد بگیرید
متأسفانه خیلی از بچههایی که با پایتون وب رو یاد گرفتند بخصوص جنگو، اگر فریمورک عوض بشه باید از صفر شروع کنند برای همین جابجایی بین فریمورکهای مختلف بسیار براشون سخت هست
YouTube Video
توی این ویدئو که از
از توسعه دهندههای اصلی django بهتون وب رو فارغ از فریمورک آموزش میده و شاید مقدماتی رو میگه از اینکه چطور وب فریمورک بعدی رو خودتون بنویسید.
شخصاً با خیلی از مباحث آشنا بودم ولی بازم خیلی چیز جدید داشت برام؛ اگر بخوام بگم چطوری بخونید پیشنهادم این هست :
۱- ویدئو رو ببینید و تمریناتش رو انجام بدید
۲- تمرینات رو برای کار خودتون بسط بدید (برای من
۳- تمرینات بالا و منابع معرفی شده رو برای
۴- تمرینات رو خودتون انجام بدید، حتی اگر هر تمرین بیش از زمان پیشنهادی توی ویدیو وقت بگیره (اگر با مباحث هیچ آشنایی دقیقی ندارید ممکنه هر تمرین بیش از چندین ساعت وقت بگیره ولی شک نکنید هزاران بار ارزشش رو داره)
بازم میگم؛ برای منی که با تمامی این مباحث آشنایی داشتم نکات ریز و
و حتماً به کار دوستان سطح بالاتر هم خواهد اومد.
وب رو فارغ از فریمورک یاد بگیرید
متأسفانه خیلی از بچههایی که با پایتون وب رو یاد گرفتند بخصوص جنگو، اگر فریمورک عوض بشه باید از صفر شروع کنند برای همین جابجایی بین فریمورکهای مختلف بسیار براشون سخت هست
YouTube Video
توی این ویدئو که از
PyCon
سال 2017 هست Jacob Kaplan
از توسعه دهندههای اصلی django بهتون وب رو فارغ از فریمورک آموزش میده و شاید مقدماتی رو میگه از اینکه چطور وب فریمورک بعدی رو خودتون بنویسید.
شخصاً با خیلی از مباحث آشنا بودم ولی بازم خیلی چیز جدید داشت برام؛ اگر بخوام بگم چطوری بخونید پیشنهادم این هست :
۱- ویدئو رو ببینید و تمریناتش رو انجام بدید
۲- تمرینات رو برای کار خودتون بسط بدید (برای من
RestApi
)۳- تمرینات بالا و منابع معرفی شده رو برای
ASGI
هم دنبال کنید.۴- تمرینات رو خودتون انجام بدید، حتی اگر هر تمرین بیش از زمان پیشنهادی توی ویدیو وقت بگیره (اگر با مباحث هیچ آشنایی دقیقی ندارید ممکنه هر تمرین بیش از چندین ساعت وقت بگیره ولی شک نکنید هزاران بار ارزشش رو داره)
بازم میگم؛ برای منی که با تمامی این مباحث آشنایی داشتم نکات ریز و
roadmap
خوبی بود برای پیشرفت؛ قطعاً برای عزیزانی که تازه آموزش مقدماتی جنگو یا ... رو تموم کردند فوقالعاده خواهد بود.و حتماً به کار دوستان سطح بالاتر هم خواهد اومد.
YouTube
Jacob Kaplan Moss Let's build a web framework! PyCon 2017
"Speaker: Jacob Kaplan-Moss
"Reinventing the wheel is great if your goal is to learn more about wheels."
-- James Tauber
If you're building a web app, you probably reach for your favorite framework -- Django, Flask, Pyramid, etc. But we rarely stop to…
"Reinventing the wheel is great if your goal is to learn more about wheels."
-- James Tauber
If you're building a web app, you probably reach for your favorite framework -- Django, Flask, Pyramid, etc. But we rarely stop to…
👍5
Forwarded from آکادمی دکتر مسفروش (Ali Mesforush)
با سلام
در راستای برقراری عدالت آموزشی و امکان برخورداری دانشجویان و علاقهمندان به یادگیری درسها و نرمافزارهای مرتبط با رشته ریاضی، مجموعههای آموزشی زیر توسط اینجانب علی مسفروش بهصورت کاملا رایگان آماده شده است. علاقهمندان به یادگیری میتوانند از طریق لینکهای زیر به تمام محتوای تهیه شده توسط اینجانب بهصورت کاملا رایگان دسترسی داشته باشند.
در صورتی که در گروه یا کانالی عضو هستید که درسهای زیر میتواند برایشان مفید باشد، لطفا این پست در آنها انتشار دهید.
لطفا با لایک (👍) کردن درسها و دنبال (SUBSCRIBE) کردن کانال به بیشتر دیده شدن درسها کمک کنید.
۱- دوره آموزشی حروفچینی مستندات علمی با LaTeX و بسته XePersian.
۲- دوره آموزشی برنامهنویسی با Python
۳- دوره آموزشی کار و برنامهنویسی با MATLAB
۴- دوره آموزشی معادلات دیفرانسیل مبتنی بر سرفصل درس معادلات دیفرانسیل دانشجویان رشتههای فنی و مهندسی
۵- دوره آموزشی برنامهنویس به زبان C++
۶- دوره آموزشی مبانی آنالیز عددی ویژه دانشجویان رشته ریاضی
۷- دوره آموزشی آنالیز عددی ۲ ویژه دانشجویان رشته ریاضی
۸- دوره آموزشی محاسبات عددی ویژه دانشجویان رشتههای فنی و مهندسی
۹- دوره آموزشی Numpy, Scipy
۱۰- دوره آموزشی ریاضی عمومی یک ویژه دانشجویان رشتههای فنی و مهندسی
۱۱- دوره آموزشی آنالیز عددی پیشرفته ویژه دانشجویان کارشناسی ارشد رشته ریاضی کاربردی
۱۲- آشنایی مختصر با لینوکس
۱۳- ریاضی عمومی ۲ ویژه دانشجویان فنی و مهندسی
۱۴- آموزش Maple
۱۵- ریاضی مهندسی ویژه دانشجویان رشتههای مهندسی
۱۶- معادلات دیفرانسیل با مشتقات جزئی ویژه رشته ریاضی
۱۷- روش عناصر متناهی (FEM) قابل استفاده برای دوره ارشد ریاضی و رشتههای مهندسی
۱۸- کارگاه آشنایی با لاتک و زیپرشین برگزار شده در دانشگاه کاشان
۱۹- دوره آموزشی FEniCS، نرم افزار حل معادلات دیفرانسیل با مشتقات جزئی
۲۰- روش سریع تراختنبرگ در حساب
۲۱- ریاضی پیشدانشگاهی، ویژه نودانشجویان
۲۲- جبرخطی عددی پیشرفته
۲۳- آموزش رسم در LaTeX
۲۴- کارگاه آشنایی با LaTeX و XePersian برگزار شده در پنجاه و سومین کنفرانس ریاضی ایران- بهشهر
۲۵- دوره تست معادلات دیفرانسیل
۲۶- جبرخطی و مبانی ماتریسها
۲۷- آزمون استخدامی
۲۸- مروری بر احتمال مهندسی
۲۹- برنامهنویسی پایتون (کلاس درس)
۳۰- حل تمرین دروس مختلف
۳۱- حسابان (۱) پایه یازدهم
۳۲- ریاضی (۲) پایه یازدهم تجربی
۳۳- آموزش برنامهنویسی در R
برای دانلود برخی نرمافزارهای رایگان مرتبط با لاتک و پایتون و ریاضی به وبلاگ من مراجعه فرمایید. توجه کنید با توجه به اینکه هاست داخلی است، ترافیک مصرفی شما داخلی محاسبه خواهد شد. تمام این نرمافزارها به شکل قانونی رایگان هستند.
در صورتی که در گروه یا کانالی عضو هستید که درسهای بالا میتواند برایشان مفید باشد، لطفا این پست در آنها انتشار دهید.
لطفا با لایک (👍) کردن درسها و دنبال (SUBSCRIBE) کردن کانال به بیشتر دیده شدن درسها کمک کنید.
تمام درسهای منتشر شده در کانال من رایگان است و حق کپی رایت آن برای اینجانب محفوظ است. هیچ سایت، فرد، سازمان و .... حق فروش و استفاده تجاری از درسهای من را ندارد. در صورت مشاهده موارد سواستفاده لطفا به من اطلاع دهید.
کانال آموزشی من در تلگرام
با احترام
علی مسفروش
در راستای برقراری عدالت آموزشی و امکان برخورداری دانشجویان و علاقهمندان به یادگیری درسها و نرمافزارهای مرتبط با رشته ریاضی، مجموعههای آموزشی زیر توسط اینجانب علی مسفروش بهصورت کاملا رایگان آماده شده است. علاقهمندان به یادگیری میتوانند از طریق لینکهای زیر به تمام محتوای تهیه شده توسط اینجانب بهصورت کاملا رایگان دسترسی داشته باشند.
در صورتی که در گروه یا کانالی عضو هستید که درسهای زیر میتواند برایشان مفید باشد، لطفا این پست در آنها انتشار دهید.
لطفا با لایک (👍) کردن درسها و دنبال (SUBSCRIBE) کردن کانال به بیشتر دیده شدن درسها کمک کنید.
۱- دوره آموزشی حروفچینی مستندات علمی با LaTeX و بسته XePersian.
۲- دوره آموزشی برنامهنویسی با Python
۳- دوره آموزشی کار و برنامهنویسی با MATLAB
۴- دوره آموزشی معادلات دیفرانسیل مبتنی بر سرفصل درس معادلات دیفرانسیل دانشجویان رشتههای فنی و مهندسی
۵- دوره آموزشی برنامهنویس به زبان C++
۶- دوره آموزشی مبانی آنالیز عددی ویژه دانشجویان رشته ریاضی
۷- دوره آموزشی آنالیز عددی ۲ ویژه دانشجویان رشته ریاضی
۸- دوره آموزشی محاسبات عددی ویژه دانشجویان رشتههای فنی و مهندسی
۹- دوره آموزشی Numpy, Scipy
۱۰- دوره آموزشی ریاضی عمومی یک ویژه دانشجویان رشتههای فنی و مهندسی
۱۱- دوره آموزشی آنالیز عددی پیشرفته ویژه دانشجویان کارشناسی ارشد رشته ریاضی کاربردی
۱۲- آشنایی مختصر با لینوکس
۱۳- ریاضی عمومی ۲ ویژه دانشجویان فنی و مهندسی
۱۴- آموزش Maple
۱۵- ریاضی مهندسی ویژه دانشجویان رشتههای مهندسی
۱۶- معادلات دیفرانسیل با مشتقات جزئی ویژه رشته ریاضی
۱۷- روش عناصر متناهی (FEM) قابل استفاده برای دوره ارشد ریاضی و رشتههای مهندسی
۱۸- کارگاه آشنایی با لاتک و زیپرشین برگزار شده در دانشگاه کاشان
۱۹- دوره آموزشی FEniCS، نرم افزار حل معادلات دیفرانسیل با مشتقات جزئی
۲۰- روش سریع تراختنبرگ در حساب
۲۱- ریاضی پیشدانشگاهی، ویژه نودانشجویان
۲۲- جبرخطی عددی پیشرفته
۲۳- آموزش رسم در LaTeX
۲۴- کارگاه آشنایی با LaTeX و XePersian برگزار شده در پنجاه و سومین کنفرانس ریاضی ایران- بهشهر
۲۵- دوره تست معادلات دیفرانسیل
۲۶- جبرخطی و مبانی ماتریسها
۲۷- آزمون استخدامی
۲۸- مروری بر احتمال مهندسی
۲۹- برنامهنویسی پایتون (کلاس درس)
۳۰- حل تمرین دروس مختلف
۳۱- حسابان (۱) پایه یازدهم
۳۲- ریاضی (۲) پایه یازدهم تجربی
۳۳- آموزش برنامهنویسی در R
برای دانلود برخی نرمافزارهای رایگان مرتبط با لاتک و پایتون و ریاضی به وبلاگ من مراجعه فرمایید. توجه کنید با توجه به اینکه هاست داخلی است، ترافیک مصرفی شما داخلی محاسبه خواهد شد. تمام این نرمافزارها به شکل قانونی رایگان هستند.
در صورتی که در گروه یا کانالی عضو هستید که درسهای بالا میتواند برایشان مفید باشد، لطفا این پست در آنها انتشار دهید.
لطفا با لایک (👍) کردن درسها و دنبال (SUBSCRIBE) کردن کانال به بیشتر دیده شدن درسها کمک کنید.
تمام درسهای منتشر شده در کانال من رایگان است و حق کپی رایت آن برای اینجانب محفوظ است. هیچ سایت، فرد، سازمان و .... حق فروش و استفاده تجاری از درسهای من را ندارد. در صورت مشاهده موارد سواستفاده لطفا به من اطلاع دهید.
کانال آموزشی من در تلگرام
با احترام
علی مسفروش
👍8👎1🤔1
Forwarded from نوشتههای ترمینالی
اگر یک مصورسازی خیلی زیبا از الگوریتمهای لود بالانسینگ میخواین، این یک مطلب زیبا و با عمق مناسبه.
https://samwho.dev/load-balancing/
https://samwho.dev/load-balancing/
👍2👏1
Forwarded from Microfrontend.ir
بهینه سازی جنگو از طریق defer و only
در ادامه بحث بهینه سازی جنگو در این ویدیو ابتدا به بررسی شیوه ترکیب prefetch_related و select_related در Django برای روابط سطوح بالاتر پرداختیم سپس برای جداول بزرگ کاربرد تابع های only و defer را بررسی گردیم که میتوان بر اساس آن حجم داده های خروجی را کنترل کرد.
Video Link: https://youtu.be/u629fDW5drM
Django Tips Playlist:
https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwdrfdaoOqbYev3_ocuBOfv
〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
در ادامه بحث بهینه سازی جنگو در این ویدیو ابتدا به بررسی شیوه ترکیب prefetch_related و select_related در Django برای روابط سطوح بالاتر پرداختیم سپس برای جداول بزرگ کاربرد تابع های only و defer را بررسی گردیم که میتوان بر اساس آن حجم داده های خروجی را کنترل کرد.
Video Link: https://youtu.be/u629fDW5drM
Django Tips Playlist:
https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwdrfdaoOqbYev3_ocuBOfv
〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
✅ الگوی طراحی Singleton چیه؟
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical-application-singleton-design-pattern/
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical-application-singleton-design-pattern/
👍3
جنگولرن
✅ الگوی طراحی Singleton چیه؟ https://refactoring.guru/design-patterns/singleton ☑️ مثالش توی پایتون https://refactoring.guru/design-patterns/singleton/python/example ☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده https://steelkiwi.com/blog/practical…
✅ پست (هایی) از کانال @TadavomnisT_channel در مورد این پست. توی کانالش برید و توضیحات کاملی که داده رو ببینید.
دیزاین پترن سینگلتون چیست؟
این پست از جنگولرن رو دیدم و بهانه خوبی بود برای اینکه نقبی بزنیم به شیگرایی و الگوی طراحی سینگلتون رو به زبان ساده یه توضیح کوشولو بدیم، چون چیزی بود که در عمل خودمم قبلا استفادهش کردم و کاربردی بود^_^
یه زمانی هست که ما میخوایم از یه کلاس فقط یک شی ساخته بشه، و نه بیشتر.
یعنی کلاسمون رو جوری طراحی کنیم، که صرفا یـــــــک عدد شی/آبجکت/اینستنس ازش قابل ساختن باشه.
اون موقع هست که از "الگوی طراحی سینگلتون" یا دیزاینپترن Singleton استفاده میکنیم.
الگوهای طراحی معماری نرمافزار، یا به اختصار دیزاینپترن ها، بخشی از اصول طراحی معماری نرمافزار هستن، اگر فرآیند ساخت نرمافزار رو به فرايند ساخت خونه تشبیه کنیم، بخش مهم ساختن یه خونه، طراحی معماری اون خونه هست، طراحی معماری، نقشه کشیدن، محاسبات، برآورد کردن مصالح، پی زدن، و... همه کارهای مهم، قبل از نهادن خشت اول انجام میشه.
نرمافزار هم همینه، من چرخه تولید نرمافزار رو توضیح دادم که کدزنی فقط ممکنه 10 درصد فرآیند ساخت نرمافزار باشه، همچنین توی طراحی نرم افزارهای بزرگ و کوچیک، طراحی معماری "بالابهپایین" و "پایینبهبالا" رو اسم بردم دادم که خوندنش مفیده.
اما برگردیم به سینگلتون...
سینگلتون یه دیزانپترن خیـــــــلی ساده و خیـــــــلی کاربردیه که یه کلاس رو جوری رگولاته میکنه که شما صرفا ازش همیشه یک اینستنس داشته باشی.
+ اول توضیح انتزاعی میدم
+ بعدش توضیح عملی میدم
+ بعدشم میگم که اصلا به چه دردی میخوره.
دیزاین پترن سینگلتون چیست؟
این پست از جنگولرن رو دیدم و بهانه خوبی بود برای اینکه نقبی بزنیم به شیگرایی و الگوی طراحی سینگلتون رو به زبان ساده یه توضیح کوشولو بدیم، چون چیزی بود که در عمل خودمم قبلا استفادهش کردم و کاربردی بود^_^
یه زمانی هست که ما میخوایم از یه کلاس فقط یک شی ساخته بشه، و نه بیشتر.
یعنی کلاسمون رو جوری طراحی کنیم، که صرفا یـــــــک عدد شی/آبجکت/اینستنس ازش قابل ساختن باشه.
اون موقع هست که از "الگوی طراحی سینگلتون" یا دیزاینپترن Singleton استفاده میکنیم.
الگوهای طراحی معماری نرمافزار، یا به اختصار دیزاینپترن ها، بخشی از اصول طراحی معماری نرمافزار هستن، اگر فرآیند ساخت نرمافزار رو به فرايند ساخت خونه تشبیه کنیم، بخش مهم ساختن یه خونه، طراحی معماری اون خونه هست، طراحی معماری، نقشه کشیدن، محاسبات، برآورد کردن مصالح، پی زدن، و... همه کارهای مهم، قبل از نهادن خشت اول انجام میشه.
نرمافزار هم همینه، من چرخه تولید نرمافزار رو توضیح دادم که کدزنی فقط ممکنه 10 درصد فرآیند ساخت نرمافزار باشه، همچنین توی طراحی نرم افزارهای بزرگ و کوچیک، طراحی معماری "بالابهپایین" و "پایینبهبالا" رو اسم بردم دادم که خوندنش مفیده.
اما برگردیم به سینگلتون...
سینگلتون یه دیزانپترن خیـــــــلی ساده و خیـــــــلی کاربردیه که یه کلاس رو جوری رگولاته میکنه که شما صرفا ازش همیشه یک اینستنس داشته باشی.
+ اول توضیح انتزاعی میدم
+ بعدش توضیح عملی میدم
+ بعدشم میگم که اصلا به چه دردی میخوره.
Telegram
جنگولرن
✅ الگوی طراحی Singleton چیه؟
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical…
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical…
❤4👍1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
چند مثال از جوین هایی که میتونن مشکل زا باشن توی sql و بهینه نیستند :
مثال 1: استفاده از CROSS JOIN
فرض کنید میخواهیم اطلاعات مشتریان و سفارشهای آنها را از دو جدول مجزا در SQL استخراج کنیم. برای این کار از CROSS JOIN استفاده میکنیم:
این کد همه مشتریها را با همه سفارشها جوین میکند، که میتواند به مشکلات عملکردی و مصرف منابع زیادی منجر شود.
راه حل بهتر: برای ارتباط دو جدول بهتر است از INNER JOIN یا LEFT JOIN استفاده کنید تا فقط رکوردهای متناظر با یکدیگر جوین شوند و منابع بهینهتر مدیریت شوند.
در Django ORM:
مثال 2: استفاده از WHERE برای جوین
در این مثال، میخواهیم اطلاعات مشتریانی که سفارش دادهاند را بر اساس شهر مشتریها استخراج کنیم:
این کد علاوه بر استفاده از JOIN با WHERE برای فیلترینگ، منجر به اجراهای زمانبر میشود.
راه حل بهتر: از INNER JOIN یا LEFT JOIN برای اتصال جداول استفاده کنید و شرطهای فیلترینگ را در بخش WHERE اعمال کنید.
در Django ORM:
مثال 3: استفاده از JOIN بیش از حد
در این مثال، فرض کنید بخواهیم اطلاعات مشتریان، سفارشها و محصولات را با هم جوین کنیم:
این کد ممکن است به عنوان یک JOIN زیادهروی شناخته شود که منجر به کاهش عملکرد و پیچیدگی افزایش میدهد.
راه حل بهتر: تلاش کنید فقط اطلاعات مورد نیاز خود را با INNER JOIN یا LEFT JOIN جوین کنید تا سادهتر و کارآمدتر باشد.
در Django ORM:
به این توجه کنید که در Django ORM میتوانید از
⚠️ من جنگو زیاد خوب نیستم اگر ایرادی داره توی کامنت ها بگید اصلاح کنم.
💠 @SEYED_BAX
مثال 1: استفاده از CROSS JOIN
فرض کنید میخواهیم اطلاعات مشتریان و سفارشهای آنها را از دو جدول مجزا در SQL استخراج کنیم. برای این کار از CROSS JOIN استفاده میکنیم:
SELECT * FROM Customers
CROSS JOIN Orders;
این کد همه مشتریها را با همه سفارشها جوین میکند، که میتواند به مشکلات عملکردی و مصرف منابع زیادی منجر شود.
راه حل بهتر: برای ارتباط دو جدول بهتر است از INNER JOIN یا LEFT JOIN استفاده کنید تا فقط رکوردهای متناظر با یکدیگر جوین شوند و منابع بهینهتر مدیریت شوند.
در Django ORM:
# اشتباه: استفاده از select_related برای چندین ارتباط یکبه-بیش-تا-یک
customers = Customer.objects.all().select_related('order__product')
# راه حل: استفاده از prefetch_related برای این موارد
customers = Customer.objects.all().prefetch_related('order_set__product')
مثال 2: استفاده از WHERE برای جوین
در این مثال، میخواهیم اطلاعات مشتریانی که سفارش دادهاند را بر اساس شهر مشتریها استخراج کنیم:
SELECT Customers.*, Orders.*
FROM Customers, Orders
WHERE Customers.CustomerID = Orders.CustomerID
AND Customers.City = 'New York';
این کد علاوه بر استفاده از JOIN با WHERE برای فیلترینگ، منجر به اجراهای زمانبر میشود.
راه حل بهتر: از INNER JOIN یا LEFT JOIN برای اتصال جداول استفاده کنید و شرطهای فیلترینگ را در بخش WHERE اعمال کنید.
در Django ORM:
# اشتباه: استفاده از فیلتر در select_related
customers = Customer.objects.filter(city='New York').select_related('order')
# راه حل: فیلتر را در queryset اعمال کنید
customers = Customer.objects.filter(city='New York')
مثال 3: استفاده از JOIN بیش از حد
در این مثال، فرض کنید بخواهیم اطلاعات مشتریان، سفارشها و محصولات را با هم جوین کنیم:
SELECT Customers.*, Orders.*, Products.*
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID
INNER JOIN Products ON Orders.ProductID = Products.ProductID;
این کد ممکن است به عنوان یک JOIN زیادهروی شناخته شود که منجر به کاهش عملکرد و پیچیدگی افزایش میدهد.
راه حل بهتر: تلاش کنید فقط اطلاعات مورد نیاز خود را با INNER JOIN یا LEFT JOIN جوین کنید تا سادهتر و کارآمدتر باشد.
در Django ORM:
# اشتباه: جوین بیش از حد در یک queryset
customers = Customer.objects.all().select_related('order__product')
# راه حل: جوینهای مورد نیاز را جداگانه تعریف کنید
customers = Customer.objects.all().select_related('order').prefetch_related('order__product')
به این توجه کنید که در Django ORM میتوانید از
select_related
برای اتصالهای یک به یک و prefetch_related
برای اتصالهای یک به بیش از یک استفاده کنید تا بهینهترین عملکرد را داشته باشید.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
📣 تبلیغ رایگان
📌کانال برتر تحلیل گران امنیت اطلاعات
📌آموزشهای کشف آسیب پذیری و اکسپلویت کردن آن
📌بروزترین متد های هکینگ
📌برترین و بروزترین کانال امنیت سایبری
📌کانالی برای انواع هکرهای کلاه سفید - کلاه سیاه - تیم امنیت قرمز و آبی
https://t.me/joinchat/AAAAAFOu_hbWrEmB8L7ZDg
📌کانال برتر تحلیل گران امنیت اطلاعات
📌آموزشهای کشف آسیب پذیری و اکسپلویت کردن آن
📌بروزترین متد های هکینگ
📌برترین و بروزترین کانال امنیت سایبری
📌کانالی برای انواع هکرهای کلاه سفید - کلاه سیاه - تیم امنیت قرمز و آبی
https://t.me/joinchat/AAAAAFOu_hbWrEmB8L7ZDg
Telegram
Security Analysis
- Offensive Security (Red Teaming / PenTesting)
- BlueTeam (OperationSec, TreatHunting, DFIR)
- Reverse Engineering / Malware Analysis
- Web Security
- Cryptography
- Steganography
- Forensics
- BlueTeam (OperationSec, TreatHunting, DFIR)
- Reverse Engineering / Malware Analysis
- Web Security
- Cryptography
- Steganography
- Forensics
🔥4🤮2
Forwarded from Microfrontend.ir
در این ویدیو از آموزش رایگان پروژه محور Django مدل تصاویر محصولات در فروشگاه ایجاد کردیم به گونه ای که بتوان برای هر محصول مجموعه ای از عکس ها اضافه کرد و یکی از آنها را به عنوان عکس اصلی مشخص کنیم. همچنین در صورت حذف عکس سایر عکس ها را مجدد مرتب کردیم.
Video: https://youtu.be/O8Crpne0iWg
PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwnWCHfoka0G57oL-8fuMGW
Git: https://github.com/hemanhp/djshop
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
Video: https://youtu.be/O8Crpne0iWg
PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwnWCHfoka0G57oL-8fuMGW
Git: https://github.com/hemanhp/djshop
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
❤2
Forwarded from Unk9vvN
#Web #Developer VS #Web #Security #Expert
تفاوت نگاه یک برنامه نویس وب به موضوع امنیت سرویس های تحت وب، با یک متخصص پیشرفته امنیت وب در این است که برنامه نویس وب، آسیب پذیری های عمومی را مورد بررسی و ایمن سازی قرار میدهد اما متخصص امنیت وب بیش از 100 آسیب پذیری حساس در حوزه وب رو مورد بررسی و وا کاوی قرار میدهد.
نمونه ای از تحقیقات برتر متخصصین امنیت وب:
Abusing HTTP hop-by-hop request headers by Nathan Davison
Web Cache Deception Attack by Omer Gil
HTTP Desync Attacks: Request Smuggling Reborn by James Kettle
File Operation Induced Unserialization via the “phar://” Stream Wrapper by Sam Thomas
Remote Code Execution in CouchDB by Max Justicz
Prototype pollution attack in NodeJS application by Olivier Arteau
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! by Orange Tsai
Timeless Timing Attacks by Tom Van Goethem & Mathy Vanhoef
How I Hacked Microsoft Teams and got $150,000 in Pwn2Own by Masato Kinugawa
@Unk9vvN
تفاوت نگاه یک برنامه نویس وب به موضوع امنیت سرویس های تحت وب، با یک متخصص پیشرفته امنیت وب در این است که برنامه نویس وب، آسیب پذیری های عمومی را مورد بررسی و ایمن سازی قرار میدهد اما متخصص امنیت وب بیش از 100 آسیب پذیری حساس در حوزه وب رو مورد بررسی و وا کاوی قرار میدهد.
نمونه ای از تحقیقات برتر متخصصین امنیت وب:
Abusing HTTP hop-by-hop request headers by Nathan Davison
Web Cache Deception Attack by Omer Gil
HTTP Desync Attacks: Request Smuggling Reborn by James Kettle
File Operation Induced Unserialization via the “phar://” Stream Wrapper by Sam Thomas
Remote Code Execution in CouchDB by Max Justicz
Prototype pollution attack in NodeJS application by Olivier Arteau
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! by Orange Tsai
Timeless Timing Attacks by Tom Van Goethem & Mathy Vanhoef
How I Hacked Microsoft Teams and got $150,000 in Pwn2Own by Masato Kinugawa
@Unk9vvN
😁2🔥1