Forwarded from Gopher Academy
🔵 عنوان مقاله
🗣️ Do Gophers Really Tend to Build Everything From Scratch?
🟢 خلاصه مقاله:
در یک بحث در ردیت، توسعهدهندهای که به تازگی با زبان برنامهنویسی Go آشنا شده بود، سوال کرد که چرا در Go تعداد فریمورکهای بزرگ کم است و آیا معمولاً همه چیز را از ابتدا میسازیم. پاسخ برتر به خوبی رویکرد معمول به زبان Go را خلاصه میکند: ما تعداد زیادی کتابخانه عالی داریم و Go این امکان را فراهم میکند که آنها را به راحتی با هم ترکیب کنیم. این تبادل نظر به بحث بیشتری در مورد چگونگی بهرهگیری و ترکیب کتابخانهها در Go برای توسعه نرمافزار به جای تکیه بر فریمورکهای بزرگ و جامع منجر شد، که این موضوع نشاندهنده تمایل توسعهدهندگان Go به استفاده از رویکردهای سادهتر و مدولارتر است.
🟣لینک مقاله:
https://www.reddit.com/r/golang/comments/1cmk0bp/from_python_to_go_do_you_really_tend_to_build/l3170pi/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🗣️ Do Gophers Really Tend to Build Everything From Scratch?
🟢 خلاصه مقاله:
در یک بحث در ردیت، توسعهدهندهای که به تازگی با زبان برنامهنویسی Go آشنا شده بود، سوال کرد که چرا در Go تعداد فریمورکهای بزرگ کم است و آیا معمولاً همه چیز را از ابتدا میسازیم. پاسخ برتر به خوبی رویکرد معمول به زبان Go را خلاصه میکند: ما تعداد زیادی کتابخانه عالی داریم و Go این امکان را فراهم میکند که آنها را به راحتی با هم ترکیب کنیم. این تبادل نظر به بحث بیشتری در مورد چگونگی بهرهگیری و ترکیب کتابخانهها در Go برای توسعه نرمافزار به جای تکیه بر فریمورکهای بزرگ و جامع منجر شد، که این موضوع نشاندهنده تمایل توسعهدهندگان Go به استفاده از رویکردهای سادهتر و مدولارتر است.
🟣لینک مقاله:
https://www.reddit.com/r/golang/comments/1cmk0bp/from_python_to_go_do_you_really_tend_to_build/l3170pi/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Reddit
Secret-Concern6746's comment on "From Python to Go: do you really tend to build everything from scratch?"
Explore this conversation and more from the golang community
Forwarded from DevTwitter | توییت برنامه نویسی
یه وقتایی میشه که با حجم دیتای بالا سروکار داریم و سعی میکنیم تا جای ممکن کدمون رو بهینه کنیم ولی چیزی که گاهی وقتا از دستمون در میره که اون رو هم میتونیم بهینه تر کنیم مصرف حافظه هست.
فرض کن کوئری خودت رو تا جای ممکن بهینه کردی و میخوای دیتای نهایی که از دیتابیس گرفتی رو پردازش کنی ولی خب این دیتا هم میتونه منابع حافظه رو درگیر کنه اینجاس که Lazy Collection لاراول میاد وسط. فیچری که باهاش میتونی دیتای fetch شده رو دونه به دونه پردازش کنی و اینطوری حجم حافظه خیلی کمتری مصرف میشه.
اگه دوست داری بیشتر راجع به این فیچر ساده و خیلی کاربردی بدونی یه مقاله توی مدیوم منتشر کردم و با یه مثال ساده توضیح دادم که چطور کار میکنه. راستی خوشحال میشم بهم فیدبک بدی
https://farshadth.medium.com/optimizing-memory-usage-in-laravel-by-lazy-collections-71ea6346c9d8
@DevTwitter | <Farshad Tofighi/>
فرض کن کوئری خودت رو تا جای ممکن بهینه کردی و میخوای دیتای نهایی که از دیتابیس گرفتی رو پردازش کنی ولی خب این دیتا هم میتونه منابع حافظه رو درگیر کنه اینجاس که Lazy Collection لاراول میاد وسط. فیچری که باهاش میتونی دیتای fetch شده رو دونه به دونه پردازش کنی و اینطوری حجم حافظه خیلی کمتری مصرف میشه.
اگه دوست داری بیشتر راجع به این فیچر ساده و خیلی کاربردی بدونی یه مقاله توی مدیوم منتشر کردم و با یه مثال ساده توضیح دادم که چطور کار میکنه. راستی خوشحال میشم بهم فیدبک بدی
https://farshadth.medium.com/optimizing-memory-usage-in-laravel-by-lazy-collections-71ea6346c9d8
@DevTwitter | <Farshad Tofighi/>
Forwarded from IRCF | اینترنت آزاد برای همه
Forwarded from DevTwitter | توییت برنامه نویسی
یه ریپازیتوری زدم که توش داکر فایل و کامپوز
(Flask-Gunicorn-Nginx reverse proxy)
رو قرار دادم. اگر توسعه دهنده Flask هستید میتونید از داکر فایل های این ریپازیتوری استفاده کنید
+ اگر احساس کردید میتونید بهترش کنید بی صبرانه منتظر PR های زیباتون هستم :)
https://github.com/free-programmers/flask-gunicorn-nginx
@DevTwitter | <Ali-Sharify/>
(Flask-Gunicorn-Nginx reverse proxy)
رو قرار دادم. اگر توسعه دهنده Flask هستید میتونید از داکر فایل های این ریپازیتوری استفاده کنید
+ اگر احساس کردید میتونید بهترش کنید بی صبرانه منتظر PR های زیباتون هستم :)
https://github.com/free-programmers/flask-gunicorn-nginx
@DevTwitter | <Ali-Sharify/>
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
زبان RSQL مخفف Restricted SQL برای فیلتر کردن دادهها در APIهای RESTful استفاده میشه
مستندات
اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید
این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter
#python #django
مستندات
اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید
این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter
#python #django
Forwarded from Web Application Security
Authentication & Authorization =
پروتکل HTTP یک پروتکل stateless هست. اگه شخصی دوبار پشت سرهم به وب سرور درخواست بفرسته، HTTP متوجه نمیشه که این کاربر همون کاربر قبلیه که درخواست فرستاده بود یعنی وضعیت کاربر رو نگه نمیداره. واسه حل این مشکل پروتکل باید وضعیت کاربر رو جایی ذخیره کنیم(باید یک شناسه از کاربر رو نگه داریم). یکی از اولین ویژگی ها و مکانیزمی که واسه این کار به وجود اومد session بود. برنامه نویس بعد از login برای کاربر یک session سمت سرور ست میکرد که بتونه کاربر رو بشناسه و Authentication و Authorization رو میتونست هندل کنه. session سمت سرور معمولا داخل یک فایل ذخیره میشه و بعد بسته شدن مرورگر کاربر از بین میره.
❓حالا Authentication و Authorization چین؟ Authentication مشخص میکنه من کیم و ما تو این مرحله باید ثابت کنیم که چه کسی هستیم. Authorization بعد از مرحله Authentication میاد و مشخص میکنه کاربر به چه چیز هایی دسترسی داره(سطح دسترسی های مختلفی تو یک web application وجود داره، هر کاربر فقط باید بتونه اطلاعات خودش رو ویرایش کنه و ببینه و همچنین کاربر معمولی نباید به فایل های ادمین سایت دسترسی داشته باشه)
❓کوکی یا cookie چیه؟
بخاطر مشکلی که session داشت و بعد بستن مرورگر از بین میرفت، cookie رو ساختن. Cookie تو مرورگر کاربر ذخیره میشه و طول عمرش دست برنامه نویسه و به خاطر همین کاربر میتونه مدت زمان بیشتری لاگین باشه. Session ID که سمت سرور بود رو به صورت encrypt داخل cookie قرار میدن که کاربر نتونه دست کاریش کنه. به ازای هر درخواستی که کاربر میفرسته سمت سرور، مرورگر به صورت خودکار cookie رو هم واسه اون دامنه میفرسته.
❓ انواع روش های Authentication:
1⃣ Basic Authentication
2⃣ Dijest Authentication
3⃣ Form base Authentication
4⃣ Certificate Authentication
5⃣ Integrated Windows Authentication
6⃣ Token base Authentication(JWT in header)
7⃣ OAuth
8⃣ SSO
هر کدوم از روش های Authentication محدودیت ها و آسیب پذیری های مربوط به خودش رو داره. برای مثال :
- تو token base Authentication آسیب پذیری هایی مثل csrf و cors misconfiguration و cache deception به وجود نمیاد.
- وقتی اطلاعات تو cookie یا localstorage ذخیره میشه با xss میشه اطلاعات رو خوند ولی اگه تو header باشه با xss نمیتونیم بخونیمش.
- روش Basic Authentication آسیب پذیره به MITM.
- تو OAuth یک آسیب پذیری نسبتا بی ارزش مثل open redirect میتونه منجر به Account Takeover بشه.
- روش Integrated Windows Authentication مختص شبکه های مایکروسافتیه.
- روش های certificate Authentication و Integrated Windows Authentication رو تو شبکه های داخلی معمولا استفاده میکنن.
- اگه private key تو certificate Authentication لو بره منجر به mitm میشه.
- وقتی از session استفاده بشه کاربر نمیتونه دست کاریش کنه بر خلاف سایر موارد که سمت کاربر ذخیره میشه(برنامه نویس باید با encryption جلوی تغییر cookie/jwt و.... رو بگیره).
- تو form base Authentication اگه مواردی مثل Error handling رو انجام ندیم ممکنه آسیب پذیری username enumeration به وجود بیاد.
#Authentication
پروتکل HTTP یک پروتکل stateless هست. اگه شخصی دوبار پشت سرهم به وب سرور درخواست بفرسته، HTTP متوجه نمیشه که این کاربر همون کاربر قبلیه که درخواست فرستاده بود یعنی وضعیت کاربر رو نگه نمیداره. واسه حل این مشکل پروتکل باید وضعیت کاربر رو جایی ذخیره کنیم(باید یک شناسه از کاربر رو نگه داریم). یکی از اولین ویژگی ها و مکانیزمی که واسه این کار به وجود اومد session بود. برنامه نویس بعد از login برای کاربر یک session سمت سرور ست میکرد که بتونه کاربر رو بشناسه و Authentication و Authorization رو میتونست هندل کنه. session سمت سرور معمولا داخل یک فایل ذخیره میشه و بعد بسته شدن مرورگر کاربر از بین میره.
❓حالا Authentication و Authorization چین؟ Authentication مشخص میکنه من کیم و ما تو این مرحله باید ثابت کنیم که چه کسی هستیم. Authorization بعد از مرحله Authentication میاد و مشخص میکنه کاربر به چه چیز هایی دسترسی داره(سطح دسترسی های مختلفی تو یک web application وجود داره، هر کاربر فقط باید بتونه اطلاعات خودش رو ویرایش کنه و ببینه و همچنین کاربر معمولی نباید به فایل های ادمین سایت دسترسی داشته باشه)
❓کوکی یا cookie چیه؟
بخاطر مشکلی که session داشت و بعد بستن مرورگر از بین میرفت، cookie رو ساختن. Cookie تو مرورگر کاربر ذخیره میشه و طول عمرش دست برنامه نویسه و به خاطر همین کاربر میتونه مدت زمان بیشتری لاگین باشه. Session ID که سمت سرور بود رو به صورت encrypt داخل cookie قرار میدن که کاربر نتونه دست کاریش کنه. به ازای هر درخواستی که کاربر میفرسته سمت سرور، مرورگر به صورت خودکار cookie رو هم واسه اون دامنه میفرسته.
❓ انواع روش های Authentication:
1⃣ Basic Authentication
2⃣ Dijest Authentication
3⃣ Form base Authentication
4⃣ Certificate Authentication
5⃣ Integrated Windows Authentication
6⃣ Token base Authentication(JWT in header)
7⃣ OAuth
8⃣ SSO
هر کدوم از روش های Authentication محدودیت ها و آسیب پذیری های مربوط به خودش رو داره. برای مثال :
- وقتی اطلاعات تو cookie یا localstorage ذخیره میشه با xss میشه اطلاعات رو خوند ولی اگه تو header باشه با xss نمیتونیم بخونیمش.
- روش Basic Authentication آسیب پذیره به MITM.
- تو OAuth یک آسیب پذیری نسبتا بی ارزش مثل open redirect میتونه منجر به Account Takeover بشه.
- روش Integrated Windows Authentication مختص شبکه های مایکروسافتیه.
- روش های certificate Authentication و Integrated Windows Authentication رو تو شبکه های داخلی معمولا استفاده میکنن.
- اگه private key تو certificate Authentication لو بره منجر به mitm میشه.
- وقتی از session استفاده بشه کاربر نمیتونه دست کاریش کنه بر خلاف سایر موارد که سمت کاربر ذخیره میشه(برنامه نویس باید با encryption جلوی تغییر cookie/jwt و.... رو بگیره).
- تو form base Authentication اگه مواردی مثل Error handling رو انجام ندیم ممکنه آسیب پذیری username enumeration به وجود بیاد.
#Authentication
Forwarded from Gopher Academy
🔵 عنوان مقاله
Product for Engineers: A Newsletter Helping Flex Your Product Muscle
🟢 خلاصه مقاله:
متاسفانه متنی که ارائه دادهاید، شامل اطلاعات کافی برای تهیه خلاصهای از یک مقاله نمیباشد. عبارت ارائه شده تنها دعوتی است برای عضویت جهت دریافت مشاوره در زمینه ساخت محصولات عالی و بهترین روشها از شرکتهای برتر استارتاپی. برای ارائه خلاصهای جامع و دقیق، نیازمند دسترسی به متن کامل مقاله با جزئیات بیشتری هستم. اگر متن کاملی دارید که میخواهید خلاصه شود، لطفا آن را به اشتراک بگذارید.
🟣لینک مقاله:
https://newsletter.posthog.com/?utm_source=gonews&utm_campaign=gonews
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Product for Engineers: A Newsletter Helping Flex Your Product Muscle
🟢 خلاصه مقاله:
متاسفانه متنی که ارائه دادهاید، شامل اطلاعات کافی برای تهیه خلاصهای از یک مقاله نمیباشد. عبارت ارائه شده تنها دعوتی است برای عضویت جهت دریافت مشاوره در زمینه ساخت محصولات عالی و بهترین روشها از شرکتهای برتر استارتاپی. برای ارائه خلاصهای جامع و دقیق، نیازمند دسترسی به متن کامل مقاله با جزئیات بیشتری هستم. اگر متن کاملی دارید که میخواهید خلاصه شود، لطفا آن را به اشتراک بگذارید.
🟣لینک مقاله:
https://newsletter.posthog.com/?utm_source=gonews&utm_campaign=gonews
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Posthog
Product for Engineers | Substack
Helping engineers and founders flex their product muscles. Click to read Product for Engineers, a Substack publication with hundreds of thousands of subscribers.
Forwarded from Gopher Academy
خط زیر در فایل
این خط شامل اطلاعات زیر است:
1. modernc.org/ccgo/v3:
- این بخش نام ماژول است. در اینجا، ماژول
2. v3.16.6/go.mod:
- این قسمت نسخهای از ماژول را که به آن ارجاع داده شده است، مشخص میکند. در اینجا، نسخه
3. h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ=:
- این قسمت یک هش رمزنگاری است (هشینگ شده با الگوریتم SHA-256) که برای تأیید صحت و یکپارچگی فایل
### مفهوم کلی:
این خط به Go میگوید که ماژول
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.work.sum یه نمونه هست از یک کتابخونه که مربوط به مدیریت ماژولها و وابستگیهای پروژه Go است:modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ=
این خط شامل اطلاعات زیر است:
1. modernc.org/ccgo/v3:
- این بخش نام ماژول است. در اینجا، ماژول
ccgo از مسیر modernc.org/ccgo/v3 وارد شده است.2. v3.16.6/go.mod:
- این قسمت نسخهای از ماژول را که به آن ارجاع داده شده است، مشخص میکند. در اینجا، نسخه
v3.16.6 مورد استفاده قرار گرفته است. همچنین، این مشخص میکند که این خط به فایل go.mod این نسخه اشاره دارد.3. h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ=:
- این قسمت یک هش رمزنگاری است (هشینگ شده با الگوریتم SHA-256) که برای تأیید صحت و یکپارچگی فایل
go.mod برای این ماژول استفاده میشود. این هش تضمین میکند که فایل go.mod مربوط به این ماژول و نسخهی خاص آن بدون تغییر است و همان نسخهای است که در ابتدا دانلود و استفاده شده است.### مفهوم کلی:
این خط به Go میگوید که ماژول
ccgo نسخه v3.16.6 از مسیر modernc.org/ccgo/v3 استفاده شده و صحت فایل go.mod آن با هش مشخص شده تایید میشود. این اطلاعات در فایل go.work.sum ذخیره میشود تا اطمینان حاصل شود که تمامی وابستگیها در پروژه به درستی مدیریت میشوند و هیچگونه تغییر ناخواستهای در فایلهای ماژولها ایجاد نشده است.➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from DevTwitter | توییت برنامه نویسی
اگر می خواهید در مصاحبه های برنامه نویسی سوال های بک اند فرانت اند و انواع استک جواب دهید این اپلیکیشن ها در موبایلتان نصب و مطالعه کنید
javanoscript interview
Front-end interview
frontend QA interview
که سومی سوال جواب تمام زبان ها فریم ورک ها و تکنولوژی های،برنامه نویسی داره
حتی سومی من چک کردم مثلا postman bi و... هم داره
react.js interview
typenoscript Quiz
@DevTwitter | <Pooria AshkevarVakili/>
javanoscript interview
Front-end interview
frontend QA interview
که سومی سوال جواب تمام زبان ها فریم ورک ها و تکنولوژی های،برنامه نویسی داره
حتی سومی من چک کردم مثلا postman bi و... هم داره
react.js interview
typenoscript Quiz
@DevTwitter | <Pooria AshkevarVakili/>
Forwarded from DevTwitter | توییت برنامه نویسی
فریم ورک ویو جی اس ورژن 3.5 متشر کرد و در این ورژن یک سری قابلیت و بهبود های خوبی شاهد هستیم و در این پست به صورت کامل این تغییرات بررسی میکنیم.
https://code-news.com/p/vue-3-5-updates
@DevTwitter | <Code News/>
https://code-news.com/p/vue-3-5-updates
@DevTwitter | <Code News/>
Forwarded from محتوای آزاد سهراب
برای اجرای یک دستور پشت یک پروکسی میتونید از برنامه proxychains استفاده کنید.
نصب روی آرچ:
بعد از نصب فایل
رو باز میکنید و آخر فایل نوع پروکسیتون رو مینویسید مثلاً من از وارپ پلاس استفاده میکنم
و برای اجرا هم
پیشفرض بر روی تور تنظیم شده.
@SohrabContents
نصب روی آرچ:
sudo pacman -S proxychains-ng
بعد از نصب فایل
/etc/proxychains.conf
رو باز میکنید و آخر فایل نوع پروکسیتون رو مینویسید مثلاً من از وارپ پلاس استفاده میکنم
socks5 127.0.0.1 8087
و برای اجرا هم
proxychains yourcommand
پیشفرض بر روی تور تنظیم شده.
@SohrabContents
Forwarded from Yasha
بچهها من اسکریپت ایردراپ Goats رو آپدیت کردم الان هر یه دقیقه 200 تا توکن میگیره که میشه روزی حدود فاکینگ 300k توکن رایگان...🙌🏻 لینکش
این ایردراپ خیلی مطمئنه! قطعا لیست میشه.
این ایردراپ خیلی مطمئنه! قطعا لیست میشه.
Gist
GOAT airdrop noscript
GOAT airdrop noscript. GitHub Gist: instantly share code, notes, and snippets.
Forwarded from Yasha
اگه به هر دلیلی خودتون نمیتونید اجرا کنید یا اینکه سیستم ندارید میتونم براتون با یه هزینه خیلی خیلی کمی روی سرور خودم به اکانت شما هم وصلش کنم.
@pesarrrak
@pesarrrak
Forwarded from Woland's Linux Journal (Woland)
💠برگه تقلب ripgrep💠
ریپگرپ چیست؟
ریپگرپ یک ابزار جستجوی بازگشتی است.
هدف از آن ارائه یک جایگزین سریعتر برای
مثالها:
🔸جستجوی بازگشتی در دایرکتوری فعلی بر اساس یک عبارت منظم (regex):
🔸جستجوی عبارات منظم به صورت بازگشتی در دایرکتوری فعلی، شامل فایلهای پنهان و فایلهای موجود در
🔹جستجوی عبارت منظم تنها در یک زیرمجموعه از دایرکتوریها:
🔹جستجوی عبارت منظم در فایلهایی که با یک گلوب خاص همخوانی دارند (مثل
♦️جستجو برای نام فایلهایی که با یک عبارت منظم همخوانی دارند:
♦️نمایش فقط فایلهای همخوانی (استفادهی مفید در اتصال به دستورات دیگر):
🔸نمایش خطوطی که با عبارت منظم داده شده همخوانی ندارند:
🔸جستجوی الگوی رشته:
اطلاعات بیشتر:
💠👉🔗 RipGrep💠
#نکته #معرفی #لینوکس #آموزش
ریپگرپ چیست؟
ریپگرپ یک ابزار جستجوی بازگشتی است.
هدف از آن ارائه یک جایگزین سریعتر برای
grep است.مثالها:
🔸جستجوی بازگشتی در دایرکتوری فعلی بر اساس یک عبارت منظم (regex):
rg regular_expression
🔸جستجوی عبارات منظم به صورت بازگشتی در دایرکتوری فعلی، شامل فایلهای پنهان و فایلهای موجود در
.gitignore:rg --no-ignore --hidden regular_expression
🔹جستجوی عبارت منظم تنها در یک زیرمجموعه از دایرکتوریها:
rg regular_expression set_of_subdirs
🔹جستجوی عبارت منظم در فایلهایی که با یک گلوب خاص همخوانی دارند (مثل
README.*):rg regular_expression --glob glob
♦️جستجو برای نام فایلهایی که با یک عبارت منظم همخوانی دارند:
rg --files | rg regular_expression
♦️نمایش فقط فایلهای همخوانی (استفادهی مفید در اتصال به دستورات دیگر):
rg --files-with-matches regular_expression
🔸نمایش خطوطی که با عبارت منظم داده شده همخوانی ندارند:
rg --invert-match regular_expression
🔸جستجوی الگوی رشته:
rg --fixed-strings -- string
اطلاعات بیشتر:
💠👉🔗 RipGrep💠
#نکته #معرفی #لینوکس #آموزش
Forwarded from یک برنامه نویس تنبل (Raymond 🐈⬛ Dev)
تبادل تبلیغات —————————————-
Forwarded from Trick william
اینجا یاد میگیری هر فایلی رو خودت طراحی کنی هر روز فایل لایه باز و پک 3d و فونت گذاشته میشه 🗂 ✒️
اگه دوست داری میتونی به خانوادمون جوین شی 👇
✉️ @house_of_graphics
اگه دوست داری میتونی به خانوادمون جوین شی 👇
✉️ @house_of_graphics