Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
لینک وبسایت 🔻
https://9elements.github.io/fancy-border-radius/


لینک ریپازیتوری پروژه 🔻
https://github.com/9elements/fancy-border-radius
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 کانال یوتیوب CSharpDesignPro طراحی UI نرم افزار به صورت حرفه ای با C# آموزش می دهد.

https://www.youtube.com/@CSharpDesignPro

#دوره

@TheRaymondDev
Forwarded from Syntax | سینتکس (𝙰𝚖𝚒𝚛𝚑𝚘𝚜𝚜𝚎𝚒𝚗)
📊 Raw Queries and Connection Proxy in Django

🔍 How to Get Raw Queries in ORM

در جنگو، اگر ویژگی .query یک QuerySet را چک کنیم، می‌توانیم پرس‌وجو SQL مربوطه را دریافت کنیم. به عنوان مثال:

from author import models
all_authors = models.Author.objects.filter(email__endswith='@gmail.com').values_list('name').query


خروجی:

SELECT "author_author"."name" FROM "author_author" WHERE "author_author"."email"::text LIKE '%@gmail.com'



⚠️ چالش!

در جستجوهای ORM جنگو، دستورهایی داریم که غیر از QuerySet هستند و استفاده از .query باعث ایجاد خطا می‌شود. به عنوان مثال:

from author import models
author_count = models.Author.objects.filter(email='a').count().queries


خطا:

Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'int' object has no attribute 'query'



🛠 راه‌حل با استفاده از Connection Proxy

برای حل این مشکل، از connection در django.db استفاده می‌کنیم:

from django.db import connection
from author import models

author_count = models.Author.objects.filter(email='a').count()
connection.queries[-1]


خروجی:

{'sql': 'SELECT COUNT(*) AS "__count" FROM "author_author" WHERE "author_author"."email" = \'a\'', 'time': '0.166'}



📌 توجه!

شی connection فقط زمانی نتیجه می‌دهد که سرور جنگو در حالت DEBUG=True در حال اجرا باشد!

📝 نوشتن Debug Queries برای درک Connection Proxy

from django.db import connection
from django.db import reset_queries

def database_debug(func):
def inner_func(*args, **kwargs):
reset_queries()
results = func(*args, **kwargs)
query_info = connection.queries
print(f'function_name: {func.__name__}')
print(f'query_count: {len(query_info)}')
queries = [f'{query["sql"]}\n' for query in query_info]
print(f'queries: \n{"".join(queries)}')
return results
return inner_func


📌 توجه! تابع reset_queries تمام پرس‌وجوهای ذخیره شده در connection را پاک می‌کند!

🔧 استفاده از کد:

@database_debug
def regular_query():
blogs = models.Blog.objects.all()
return [blog.author.name for blog in blogs]


خروجی:

function_name: regular_query
query_count: 4
queries:
SELECT "blog_blog"."id", "blog_blog"."title", "blog_blog"."content", "blog_blog"."author_id"



💡 توضیح کد:

با استفاده از دستور reset_queries تمام پرس‌وجوهای ذخیره شده در connection را حذف می‌کنیم تا فقط کوئری‌های خواسته شده دیباگ شوند. سپس کوئری‌های داخل inner_function که دکوراتور شده‌اند اجرا می‌شوند و شی connection حاوی لیست از پرس‌وجوها می‌شود. بعد از آن، تمام پرس‌وجوها را از connection.queries بازیابی می‌کنیم.


🔗 منبع : کتاب django in productions
Forwarded from Gopher Academy
🔵 عنوان مقاله
FAIR: A Go Library for Serving Resources 'Fairly'

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

🟣لینک مقاله:
https://golangweekly.com/link/159873/web


👑 @gopher_academy
This media is not supported in your browser
VIEW IN TELEGRAM
تغییر دادن response در chrome؛

اگر نیاز دارید response که از سرور دریافت میکنید را تغییر بدهید فقط کافی است DevTools را باز کنید و مثل ویدیو زیر دیتای response مورد نظرتان را به آن شکلی که دوست دارید تغییر بدهید، این تغییر در chrome ذخیره میشود و در زمان reload صفحه پایدار میماند.
به طور مثال از این روش میتوان برای تست application و یا ساختن data mock استفاده کرد.


@DevTwitter | <Mohammad Reza M./>
Forwarded from CleverDevs (CleverDevs Ads)
Forwarded from CleverDevs (CleverDevs Ads)
هرماه، تو این کانال به صورت اشتراکی، اکانت chat gpt تهیه میکنم و با دوستایی که مایل باشن، به صورت اشتراکی با هم هزینه اون اکانت رو پرداخت می‌کنیم


این یه فرصت خوب، برای کاهش هزینه هامون و تهیه اکانت chat gpt plus هست

اگه دوست دارید تو این کامیونیتی باشید و با هزینه خیلی کم، اکانت gpt plus داشته باشید،‌ تو اینجا منتظرتونیم👇

https://t.iss.one/+T4cO7OlORGc1Zjc0
به زودی بر روی پارچ سرور، ابزار cockpit که یک محیط تحت‌وب برای مدیریت سرور است به صورت پیشفرض نصب خواهد بود.

به این صورت که بعد از نصب پارچ سرور، برای مدیریت سرور خود تنها کافیست به

your-ip-address:9090

مراجعه کنید.

ابزار cockpit امکان مدیریت داکر، پادمن و بسته‌های نصب شده بر روی سرور شما را دارد.

@ParchLinux
This media is not supported in your browser
VIEW IN TELEGRAM
چجوری سایت سه بعدی بسازیم ... ⁉️🤩

اگر آموزش های بیشتر در مورد سایت های سه بعدی میخواید زیر همین پست براتون میزارم آدرس پیجش رو تو چنل

#️⃣ #3d_website

💢 𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣
اگر شما هم مثل من مشکل دارید که وقتی میرید توی سایت medium.com و مقالات اکثرا پریمیوم هست و نمیتونید بخونید، باید بگم که خدا شما رو دوست داشته که این پست رو دیدید.
خب حالا راه حل چیه؟
فقط کافیه لینک مقاله رو توی این سایت بزارید readmedium.com و تمام

@DevTwitter | <Amirreza Heydari/>
یک خبر خوب برای علاقمندان به شعر و ادبیات فارسی!

برنامه ساغر که یک کلاینت رومیزی برای گنجور است به مخازن پارچ اضافه شد.

روش نصب:
sudo pacman -Syy
sudo pacman -S saaghar



@ParchLinux
Forwarded from Code Module | کد ماژول (𔓙)
چرا PHP نسبت به بقیه زبان‌ها کندتر است و راهکار چیست؟ - قسمت اول

پی اچ پی در مقایسه با زبان‌هایی مثل GO کندتر است. دلیلش این است که هر درخواست PHP یک فرآیند جدید را شروع می‌کند. این فرآیند باید از ابتدا تجزیه و اجرا شود و سپس خاموش شود. یعنی هر پروسه به طور کامل بسته شده و از حافظه خارج می‌شود.

این یعنی PHP نمی‌تواند چیزی از پردازش‌های قبلی را در حافظه نگه دارد و باید برای هر درخواست جدید از صفر شروع کند. نتیجه این کار، در تعداد درخواست‌های بالا، عملکرد کندتر و مصرف بیشتر منابع سرور است. این روش را "Request-Response" می‌نامند.

اما راهکار برای وردپرس و PHP چی بود؟

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

اما هنوز این روش در مقایسه با زبان GO کندتر است. پس راهکار نهایی چیست؟

در قسمت‌های بعدی توضیح خواهیم داد.

@poianir پوینا
Disabled changed their name to Enderman