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
Forwarded from DevAcademy
اون روزهایی که تازه داشتم React یاد می‌گرفتم خیلی سر درگم بودم و دنبال منابع خوب می‌گشتم!
به مرور از جاهای مختلف به یک سری newsletterهای مشتی دسترسی پیدا کردم و الان هر هفته کلی مقاله جذاب و جدید به دستم می‌رسه که باعث پیشرفت سریع‌ترم میشن.
حالا که دارم Vue.js رو یاد می‌گیرم، می‌خوام این گنجینه رو به شما انتقال بدم. یه عالمه نیوزلتر خوب که مطمئنم بهتون کمک می‌کنه. میتونید برید موضوع هر newsletter رو ببینید و هرکدوم رو که دوست داشتید subscribe کنین.
بعضی از newsletterهای جذابی که دارم:

React Digest:‌ یه گنجینه‌ی واقعی از مقالات
https://reactdigest.net/

Kent C. Dodds: این آقا یه نابغه است و بلاگش پر از نکات کاربردیه.
https://lnkd.in/dVR4sTH9

This Week in React: هر هفته خلاصه‌ای از مهم‌ترین اخبار React رو براتون می‌فرسته.
https://lnkd.in/dny5aBdU

Large Apps: برای ساختن اپلیکیشن‌های بزرگ، این newsletter عالیه.
https://lnkd.in/dArS4VK3

The T-Shaped Dev: اگه می‌خواید توسعه‌دهنده‌ی همه کاره بشید، این newsletter رو از دست ندید.
https://lnkd.in/dzipuC9r

Daily.dev:‌ یه پلتفرم جامع برای developerهاست که هر روز مقاله‌های جدید داره.
https://app.daily.dev/

Craft Better Software: برای اونایی که به تست نویسی علاقه دارن، این newsletter فوق‌العادست.
https://lnkd.in/dPseSv4V

Cassidoo:‌ یه newsletter فان و خنده‌دار با کلی نکته‌ی کاربردی.
https://lnkd.in/dBGGgfFW

System Design: اگه به معماری سیستم علاقه‌مندید، این newsletter براتون جذابه.
https://lnkd.in/d6gZXeqX

The Hustling Engineer: برای مهندس‌هایی که می‌خوان حرفه خودشون رو ارتقا بدن.
https://lnkd.in/dPWEsFgS


https://www.linkedin.com/posts/reihaneh-sadat-shokouhi-78b22a233_%D8%B3%D9%84%D8%A7%D9%85-%D8%A8%DA%86%D9%87%D9%87%D8%A7-%D8%A7%D9%85%D8%B1%D9%88%D8%B2-%D8%A8%D8%A7-%D8%AF%D8%B3%D8%AA-%D9%BE%D8%B1-%D8%A7%D9%88%D9%85%D8%AF%D9%85-%D8%A7%D9%88%D9%86-%D8%B1%D9%88%D8%B2%D9%87%D8%A7%DB%8C%DB%8C-activity-7241657143618088964-57Wm?utm_source=share&utm_medium=member_desktop


💻@DevAcaademy
💬
@DevAcademyGroup
Forwarded from Anophel | آنوفل
آشنایی با Error Handling در Go : بررسی عمیق

🔺 مدیریت خطا (Error Handling) یک جنبه حیاتی در هر زبان برنامه نویسی است و Go نیز از این قاعده مستثنی نیست. در این مقاله از سری مقالات گولنگ در آنوفل، به بررسی اشتباهات معمولی که حتی توسعه دهندگان باتجربه مرتکب می شوند اختصاص یافته است، ما بر Error Hand...

🌐 : آشنایی با Error Handling در Go : بررسی عمیق
Forwarded from Web Application Security
یه آسیب پذیری ظاهرا بی ارزش =

کد زیر رو در نظر بگیرین:
<?php
session_start();
if($_SESSION['is_admin'] != true)
{
header("Location: /home.php");
}
// Application code is here
?>

سناریو اینه که این فایل مربوط به یکی از فایل های پنل ادمینه که طبیعتا باید فقط ادمین دسترسی داشته باشه، از داخل sessionی که برای هر کاربر ست کرده چک میکنه ببینه اگه سطح دسترسی ای که به این کاربر داده ادمین نبود redirect کنه به صفحه home.
مشکلی که تو این کد هست اینه که درسته redirect میکنه ولی جلوی اجرا شدن کد رو نمیگیره بعد redirect و باعث میشه مابقی کد هم اجرا بشن بعد redirect. ولی چه تهدیدی داره؟
1⃣ افشا شدن response بعد از redirect :
اگه با دستور زیر به اون مسیر curl بزنیم میتونیم کل ریسپانس رو ببینیم:
curl https://target.com/admin_panel.php

نکته : ما فقط میتونیم response رو ببینیم نه سورس کد اپلیکیشن. ممکنه برنامه نویس از توابعی استفاده کرده باشه که اطلاعات مهمی رو روی صفحه چاپ کنه مثل echo. برای درک بهتر کد زیر رو در نظر بگیرید :
<?php
if($_SESSION['is_admin'] != true)
{
hedaer("Location : /home.php");
}

echo "username : adm2ish";
echo "password : pa19ehw";
?>

2⃣ تست آسیب پذیری های مختلف!
کد زیر رو در نظر بگیرین:
<?php
session_start();
if($_SESSION['is_admin'] != true)
{
header("Location: /home.php");
}
if (isset($_GET['cmd']) && !empty($_GET['cmd'])) {
$admin_input = $_GET['cmd'];
echo system("ping $admin_input");
} else {
echo "No command provided.";
}
?>

آسیب پذیری ای که این کد داره Command Injectionهست. ولی نکته ای که مهمه اینه که این صفحه چون redirect میکنه خیلیا اینجا parameter fuzz انجام نمیدن و آسیب پذیری های این صفحه فقط با دسترسی ادمین قابل دیدن و تست کردنه، ولی بخاطر اشتباه برنامه نویس مهاجم میتونه parameter fuzz انجام بده و آسیب پذیری های مختلفی رو تست کنه که بسته به logic برنامه ممکنه آسیب پذیری های مختلفی رو داشته باشه. اگه باگ هانترین حتما به این نکته توجه داشته باشین موقع مواجه شدن با redirect ها.
نمونه پیلود با curl برای تست آسیب پذیری :

curl "https://target.com/admin_panel.php?cmd=1.1.1.1|whoami"
curl "https://target.com/admin_panel.php?cmd=1.1.1.1||whoami||"
curl "https://target.com/admin_panel.php?cmd=1.1.1.1;whoami"

نکته مهم : کد های نوشته شده با php رو اگه تو سیستمتون اجرا کنین به درستی کار نمیکنن چون باید خودتون session کاربر رو ست کنین.

⁉️روش جلوگیری چیه؟

بعد redirect باید جلوی اجرا شدن ادامه کد رو بگیریم که میتونیم با توابع زیر انجام بدیم:
<?php
exit()
die()
?>

اسم آسیب پذیری :
Execution After Redirect = EAR

#EAR
#parameter_fuzz
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 کامپایل و اجرای زبان C از جاوا اسکریپت در نسخه ۱.۲۸ ران تایم Bun.js

#جاوااسکریپت

@TheRaymondDev
Forwarded from Go Casts 🚀
سلام، پیشنهاد می کنم حتما پادکست «تفکر شفاف» بی پلاس رو گوش بدید. هم به مهارت های نرم شما کمک میکنه که ارتباط موثرتری با همکاراتون داشته باشید، هم بهتون کمک میکنه تحلیلگر و معمار و مهندس بهتری باشید، چون مهندسی همه ش فکر کردن و تصمیم گرفتنه، پس بهتر بستر مناسبی برای تفکر خودتون آماده کنید.


https://bpluspodcast.com/podcast/seventh-season/%D8%AA%D9%81%DA%A9%D8%B1-%D8%B4%D9%81%D8%A7%D9%81/


@gocasts
Forwarded from Sadra Codes
💀
Forwarded from 
t.iss.one/joinchat/P2Pv304Nh19E_uiD

گروه کاربران گنو/لینوکس گیلان (GulLUG):

#موقت
Forwarded from ASafaeirad
Persepolis Download Manager 5.0.0 is out! 🎉

Release notes

#news #tools
Forwarded from ASafaeirad
Deno 2 is set to be released tomorrow! 🎉

Milestone

#news #deno
Forwarded from Code Module | کد ماژول (Mahan-Heydari)
کتابخانه Lit چیه و چه کاربردی داره؟ 😎

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

👍‏Lit به شما این امکان رو میده تا کامپوننت‌های reusable و scalable ایجاد کنید که می‌تونن در پروژه‌های مختلف وب به کار گرفته بشن.

‏Lit از ویژگی‌های وب‌کامپوننت‌ها مثل Shadow DOM و Custom Elements بهره گیری می‌کنه و به دولوپرا این امکان رو می‌ده که با استفاده از تگ‌های HTML، کامپوننت‌های خودشونو بسازن. این کتابخانه به‌خصوص برای پروژه‌هایی که نیاز به تعاملات پیچیده و داینامیک دارن، خیای مناسبه.

ویژگی‌های کتابخانه Lit
⬇️

1️⃣سادگی و کارایی: Lit طوری طراحی شده که یادگیری و استفاده ازش آسون باشه. با استفاده از Syntax ساده و مختصر، دولوپرا می‌تونن به سرعت کامپوننت‌های خودشونو بسازن.

2️⃣پرفورمنس بالا: Lit با استفاده از تکنیک‌های بهینه‌سازی، مثل تغییرات هوشمند DOM، پرفورمنس بالایی رو ارائه می‌ده. این ویژگی باعث می‌شه که بارگذاری و تعاملات در صفحات وب سریع‌تر‌ و راحت تر باشه.

3️⃣قابلیت استفاده مجدد: کامپوننت‌های ساخته‌شده با Lit به راحتی قابل استفاده مجدد داخل پروژه‌های مختلف هستن.


4️⃣قابلیت ادغام آسان: Lit به راحتی با باقی فریم‌ورک‌ها و کتابخانه‌ها ادغام میشه، بنابراین می‌تونید ازش در پروژه‌های موجود هم استفاده کنید.

5️⃣پشتیبانی از TypeScript: ‏Lit‏ از TypeScript پشتیبانی می‌کنه که به دولوپرا این امکان رو می‌ده که کدهاشونو با data type مشخص کنن و از مزایای type safety بهره‌مند بشن.

کتابخانه Lit یک ابزار قدرتمند و کارآمد برای ساخت وب‌کامپوننت‌هاست که با ویژگی‌های منحصر به فردش، می‌تونه به دولوپرا کمک کنه تا رابط‌های کاربری پیچیده و تعاملی بسازن.اگر به دنبال راهی برای بهبود فرآیند توسعه وب خود هستید، Lit قطعاً یکی از گزینه‌های قابل توجه برای بررسیه.

برای یادگیری و مطالعه بیشتر این کتابخانه میتونید به داکیومنتش مراجعه کنید.

Document 🌕

#lit #library
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
نگارش جدید پارچ منتشر شد.

مشکل کالامارس در این نگارش رفع شده.

دریافت نگارش پلاسما

دریافت نگارش گنوم (با گنوم ۴۷)

@ParchLinux
میدونستید با استفاده از متد vibrate داخل میتونید ویبره گوشی کاربر رو مدیریت کنید ؟

برای استفاده ازشم کافیه از گلوبال آبجکت navigator متد vibrate رو کال بکنید و به عنوان ورودی بهش مدت زمان ویبره رو به میلی‌ثانیه بهش بدید

نمونه کد 🚀
navigator.vibrate(200);
Forwarded from 🎄 یک برنامه نویس تنبل (  MΞ)
🔸ژاکت به عنوان مرجع بازار وردپرس ایران پی دی افی با عنوان اولین گزارش جامع وردپرس در ایران منتشر کرده

@TheRaymondDev
Forwarded from Gopher Academy
🔵 عنوان مقاله
How I Made My GitHub Profile README Dynamic

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

🟣لینک مقاله:
https://tduyng.github.io/blog/dynamic-github-profile-readme/


👑 @gopher_academy
میدونستید با استفاده از متد vibrate داخل جاوااسکریپت میتونید ویبره گوشی کاربر رو مدیریت کنید ؟

🔸 برای استفاده ازشم کافیه از گلوبال آبجکت navigator متد vibrate رو کال بکنید و به عنوان ورودی بهش مدت زمان ویبره رو به میلی‌ثانیه بهش بدید

نمونه کد 🚀
navigator.vibrate(200);


💎 مشاهده استفاده عملی
توی پروژه بالا براتون یه مثال عملی از این متد رو براتون گذاشتم‌ 🔺


🌐 داکیومنت متد vibrate

#️⃣ #javascript #vibrate

🚀 @coolycode
Forwarded from Python BackendHub (Mani)
https://jsontopydantic.com/
خیلی خوبه. بهش جیسون میدین, بهتون مدل pydantic اون جیسون رو میده. برای integrate کردن api عالیه که سریع یک مدل داشته باشین.

یک ابزار دیگه هم هست که advance تره. یک cli tool هست که بر اساس openapi یا json یا xml براتون مدل پایندنتیک مینویسه.

https://github.com/koxudaxi/datamodel-code-generator/

@PyBackendHub
Forwarded from Python BackendHub (Mani)
۲۷۰ هزار خط جیسون رو تو ۴ ثانیه فایل جنریت کرد.
برای همچین کاری از gpt استفاده نکنید بهتره چون:

۱. امکان خطا خیلی زیاده. جی پی تی یک LLM هست نمیتونه <فکر> کنه صرفا پترن مچ میکنه و یک ضرب و تقسیم ساده هم اشتباه میکنه. پس هیچوقت برای کد جنریت کردن ازش استفاده نکنید.

۲. سواگر یا redoc یا خانواده این ابزار ها همه از openapi استفاده میکنن. openapi یک Specification هست برای نوشتن api های rest. و داره از json schema استفاده میکنه. جیسون اسکیما هم دوباره یک Specification هست که تایپ ولیدیشن رو بین همه زبون ها استاندارد کرده. این ابزار AI نیست. چون تعداد حالت محدوده, و جیسون مشخصه چه چیزایی میتونه داخلش باشه پس میتونه به صورت static درست ‍parse کنه.
اگه از جیسون پایندنتیک بسازین احتمال اینکه یک خروجی باشه که تو اون مثالتون نبوده هست. ولی اگه از json schema پایندنتیک بسازین, دیگه امکان نداره اشتباه parse کنید.

@PyBackendHub
Forwarded from Geek Alerts
برزیل توییتر رو فیلتر کرده، بعد ایلان‌ماسک اومده واسه کاربرای برزیلی توییتر رو برده پشت کلادفلر :) الان توییتر اونجا وصله.
قاضی دیوان عالی هم دستور داده که دوباره فیلترش کنن «معلوم نیست چقدر شدنی باشه» ولی گفته هر روزی که توییتر در دسترس باشه ۹۲۰ هزار دلار جریمش میکنیم.
BBC News
@geekalerts
🐇 استفاده از RabbitMQ برای Celery توی جنگو 🥦

امروز می‌خوایم در مورد Celery و RabbitMQ حرف بزنیم و ببینیم چطوری می‌تونیم از این دو تا ابزار خفن برای مدیریت کارهای پس‌زمینه توی Django استفاده کنیم 😎.

حالا Celery چیه؟ 🍃

اگه نمیدونید سلری چیه و چیکار میکنه میتونید به این پست سر بزنید 😉


حالا RabbitMQ چیه؟ 🐇

اگه نمیدونید ربیت ام کیو چیه و چیکار میکنه میتونید به این پست سر بزنید 😉

چرا باید از RabbitMQ برای Celery استفاده کنیم؟ 🧐

1⃣ پایداری و سرعت: RabbitMQ خیلی سریع و پایدار کار می‌کنه و می‌تونه حجم زیادی از پیام‌ها رو مدیریت کنه.

2⃣ مقیاس‌پذیری (Scalability):
اگه پروژه‌ات بزرگ شد، RabbitMQ می‌تونه بدون مشکل تسک‌های بیشتری رو هندل کنه.

3⃣ پشتیبانی از Celery: Celery به خوبی با RabbitMQ سازگاره و به راحتی می‌تونن با هم کار کنن.

چجوری RabbitMQ رو برای Celery توی جنگو تنظیم کنیم؟ 🛠️

خب، بیایید بریم سراغ بخش فنی و ببینیم چطور می‌تونیم از RabbitMQ و Celery توی جنگو استفاده کنیم.

1⃣ نصب RabbitMQ و Celery

اول از همه باید RabbitMQ رو نصب کنی. اگه از اوبونتو استفاده می‌کنی، این دستور رو بزن:

sudo apt-get install rabbitmq-server

حالا Celery رو نصب کن:

pip install celery


2⃣ تنظیمات Celery توی پروژه جنگو

توی پروژه جنگوت، یه فایل جدید به اسم celery.py بساز و تنظیمات Celery رو توش بنویس. این فایل معمولاً توی کنار settings.py قرار می‌گیره.

from __future__ import absolute_import
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')

app = Celery('your_project')

app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()

بعد توی فایل init.py پروژه‌ات این خط رو اضافه کن تا Celery لود بشه:

from .celery import app as celery_app

3⃣ تنظیمات RabbitMQ توی settings.py:
توی settings.py، تنظیمات مربوط به RabbitMQ رو به Celery اضافه کن:


CELERY_BROKER_URL = 'amqp://localhost'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'

4⃣ ساختن تسک‌ها (Tasks)

حالا که تنظیمات انجام شد، می‌تونیم تسک‌های پس‌زمینه رو بسازیم. توی هر اپلیکیشنی که تسک‌ها رو می‌خوای ایجاد کنی، یه فایل tasks.py بساز و تسک‌هات رو توش تعریف کن:

from celery import shared_task

@shared_task
def send_email_task(email_address):
# کد ارسال ایمیل
print(f"ایمیل به {email_address} ارسال شد.")

5⃣ اجرای Celery Worker

برای اینکه Celery تسک‌ها رو هندل کنه، Worker راه بندازی. با این دستور می‌تونی Worker رو اجرا کنی:

celery -A your_project worker --loglevel=info

جمع‌بندی 🎯

فهمیدیم RabbitMQ و Celery یه ترکیب عالی برای اجرای تسک‌های پس‌زمینه توی پروژه‌های جنگو هستن. با استفاده از RabbitMQ به‌عنوان message broker و Celery برای مدیریت تسک‌ها، می‌تونی کارهای سنگین و زمان‌بر رو به صورت پس‌زمینه اجرا کنی و تجربه کاربری اپلیکیشن رو بهتر کنی 😎

امید وارم مفید بوده باشه :)

#django #celery #rabbitmq #ambq


@ninja_learn_ir
Forwarded from Python Hints
بسیاری از دوستان اعتراض کردند که ویدیو‌ها روی یوتیوب قرار نگرفته (آخرین مورد فصل ۸ کتاب بود، چون وقت نشد.)

و خب همین موضوع، باعث شده خیلی از بچه‌ها عقب بیوفتند (یاد امتحانات ترم تابستان دانشگاه نبودم)

برای همین این هفته جلسه لایو نخواهیم داشت تا فرصت کنیم ویدئو‌ها رو برسونیم

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

علاوه بر همه این‌ موارد امروز چند اتفاق مهم و سخنرانی و ... هست که شخصاً می‌خوام براشون وقت بذارم و گوش بدم.


ولی درحال حاضر اولویت با آپلود ویدیو‌ها روی یوتیوب هست.

#موقت
Forwarded from Geek Alerts
دکتر ساول جایزه ایگ‌نوبل(یه جایزه طنزآمیز برای کسانی که با تحقیقات‌شون باعث خنده و به فکر فرورفتن مردم می‌شن) رو برده چون ثابت کرده جاهایی مثل ژاپن که میگن تعداد زیادی آدم بالای ۱۰۰ سال دارن، در واقع دروغ میگن.
این ۱۰۰ ساله‌ها خیلی وقت هست مردن و فقط توی سوابق دولتی زنده نوشته شدن.
یا راز ۱۰۰ ساله شدن توی اوکیناوا ژاپن مصرف سبزیجاته دروغه، اوکیناوا کمترین مصرف سبزیجات‌رو داره.
ucl.ac.uk
@geekalerts