آموزش برنامه نویسی پایتون و Django
2.79K subscribers
272 photos
557 videos
52 files
2.67K links
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs

* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
Download Telegram


خبر فوری: OpenAI ده‌ها کمپین مخرب هوش مصنوعی را متوقف کرده است!


🌿🌿 شرکت OpenAI در گزارشی جدید اعلام کرده که از ابتدای سال ۲۰۲۵ تا کنون، موفق شده دست‌کم ۱۰ کمپین مخرب را که با سوءاستفاده از چت‌بات ChatGPT طراحی شده بودند، شناسایی و متوقف کند. این خبر نشان‌دهنده چالش‌های فزاینده در حوزه امنیت سایبری و هوش مصنوعی است.


🟣 فعالیت‌های دولتی و گروه‌های وابسته:

طبق گزارشی با عنوان «مقابله با سوءاستفاده‌های مخرب از هوش مصنوعی: ژوئن ۲۰۲۵»، بسیاری از این فعالیت‌های مخرب توسط عوامل دولتی یا گروه‌های وابسته به دولت‌ها انجام شده‌اند. OpenAI مدعی است کشورهایی مانند ایران، روسیه و چین نیز در این کمپین‌ها دست داشته‌اند. این موضوع اهمیت امنیت و نظارت بر کاربردهای هوش مصنوعی را بیش از پیش نمایان می‌کند.


🔴 نقش هوش مصنوعی در تهدیدات نوین:

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



🔵 چگونه این کمپین‌ها شناسایی شدند؟

جزئیات فنی دقیقی از نحوه شناسایی این کمپین‌ها منتشر نشده، اما می‌توان حدس زد که OpenAI از الگوریتم‌های پیشرفته برای پایش الگوهای استفاده از ChatGPT، شناسایی محتوای مشکوک و ردیابی فعالیت‌های ناهنجار بهره برده است. این تلاش‌ها نشان‌دهنده تعهد شرکت به مقابله با سوءاستفاده از فناوری‌های قدرتمند خود است.


🟢 با توجه به سرعت رشد هوش مصنوعی، انتظار می‌رود که در آینده نیز شاهد مواجه با چالش‌های امنیتی مشابه باشیم. آگاهی و همکاری بین‌المللی در این زمینه می‌تواند به مقابله مؤثرتر با این تهدیدات کمک کند.


#OpenAI #امنیت_هوش_مصنوعی #ChatGPT #امنیت_سایبری #تهدیدات_سایبری


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی:
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🌠 نبرد حقوقی هالیوود علیه هوش مصنوعی: دیزنی و یونیورسال از Midjourney شکایت کردند!



🌿🌿 در یک تحول مهم، شرکت‌های غول‌پیکر دیزنی و یونیورسال، علیه Midjourney، ابزار محبوب تولید تصویر با هوش مصنوعی، به دلیل نقض حقوق کپی‌رایت شکایت کرده‌اند. این نخستین جنگ حقوقی بزرگ هالیوود علیه یک ابزار تولید محتوای هوش مصنوعی به شمار می‌رود.


🟣 کپی‌رایت شخصیت‌های معروف در خطر؟

دلیل اصلی این شکایت، تولید تصاویر هوش مصنوعی از شخصیت‌های نمادینی مانند شرک، دارث ویدر (از سری جنگ ستارگان) و باز لایتر (فضانورد انیمیشن‌های داستان اسباب‌بازی‌ها) توسط Midjourney است. این شرکت‌های سرگرمی معتقدند که Midjourney بدون مجوز، از این شخصیت‌های دارای کپی‌رایت برای آموزش مدل‌های خود و تولید محتوای جدید استفاده کرده است.


🔴 ابزار Midjourney متهم به "ماشین فروش خودکار مجازی" تصاویر غیرمجاز

شکایت دیزنی و یونیورسال روز چهارشنبه در دادگاه فدرال ناحیه مرکزی کالیفرنیا ثبت شد. در متن شکایت آمده است که ابزار تولید تصویر مبتنی بر هوش مصنوعی Midjourney مانند یک "دستگاه فروش خودکار مجازی" عمل می‌کند که تصاویر غیرمجازی را بر اساس آثار دارای کپی‌رایت این دو شرکت تولید می‌کند. این عبارت نشان‌دهنده میزان جدی بودن اتهامات مطرح شده است.


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

#هوش_مصنوعی #کپی_رایت #دیزنی #یونیورسال #Midjourney


ـــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی:
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk


انجمن تجارت الکترونیک به محدودیت کسب‌وکارهای دیجیتال اعتراض کرد!


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


🟣 اثرات مخرب بر اقتصاد دیجیتال:

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


🔴 استانداردهای دوگانه در برخورد با تخلفات:

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


🔵 این اعتراض نشان می‌دهد که جامعه کسب‌وکارهای دیجیتال به دنبال شفافیت، ثبات و رویه‌های عادلانه در فضای کسب‌وکار است تا بتوانند به رشد و اشتغال‌زایی خود ادامه دهند.



#اقتصاد_دیجیتال #تجارت_الکترونیک #فیلترینگ #کسب_وکارهای_آنلاین #نماوا


ــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی:
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته برنامه نویسی

یک تکنیک مرموز و جالب در بهینه‌سازی کد "Loop Unrolling" (بازکردن حلقه) است.

در این روش، به‌جای این‌که یک حلقه بارها تکرار شود، چند تکرار را به‌صورت دستی پشت‌سرهم می‌نویسی تا تعداد پرش‌های حلقه (iteration jumps) کمتر شود و سرعت پردازش بالاتر برود.

مثال ساده:

کد معمولی:

for (int i = 0; i < 8; i++) {
sum += arr[i];
}


Loop Unrolled:

sum += arr[0];
sum += arr[1];
sum += arr[2];
sum += arr[3];
sum += arr[4];
sum += arr[5];
sum += arr[6];
sum += arr[7];


مزایا:

کاهش overhead شرط و پرش حلقه.

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

معایب:

کد طولانی‌تر و خوانایی کمتر.

سخت‌تر شدن نگهداری.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Eclipse - Build Project

🟢 کیفیت : متوسط

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

🟣 Eclipse

🟢 زبان آموزش: انگلیسی

🟣 دوره آموزش Eclipse


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk


نقشه‌راه اتحادیه اروپا برای دسترسی به داده‌های خصوصی تا سال 2030 اعلام شد!


🌿🌿 اتحادیه اروپا قصد دارد تا سال 2030 به داده‌های خصوصی کاربران دسترسی پیدا کرده و آن‌ها را رمزگشایی کند. بر اساس گزارش‌ها، کمیسیون اتحادیه اروپا در اولین گام از استراتژی امنیتی ProtectEU، نقشه‌راهی را معرفی کرده است که هدف آن تضمین دسترسی قانونی و مؤثر مقامات انتظامی به داده‌های شهروندان است.

🟣 این نقشه‌راه جزئی از یک استراتژی جامع‌تر است که توسط گروه سطح بالا (HLG) ایجاد شده و در چارچوب ابتکار «Going Dark» شکل گرفته است.

🔴 این گروه که در ژوئن 2023 توسط شورای اتحادیه اروپا مأموریت یافته بود، در مارس 2025 گزارشی منتشر کرد که رمزنگاری سرتاسری را به عنوان بزرگ‌ترین چالش فنی در مسیر تحقیقات نیروهای انتظامی معرفی کرد.

🔵 این گزارش به طور ویژه استفاده از سرویس‌های VPN، اپلیکیشن‌های پیام‌رسان رمزنگاری شده و ابزارهای مشابه را هدف قرار داده است.

#اتحادیه_اروپا #حریم_خصوصی #رمزنگاری #امنیت #داده‌ها

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی:
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین

مراقب Overfitting باش!

تعریف Overfitting یعنی مدل روی داده‌های آموزشی خیلی خوب عمل کنه ولی روی داده‌های جدید (واقعی) ضعیف باشه.

🔹 روش‌های جلوگیری از Overfitting:

استفاده از بیشتر داده آموزشی

استفاده از Regularization مثل L1 یا L2

کاهش پیچیدگی مدل (مثلاً تعداد لایه‌های کمتر در شبکه عصبی یا عمق کمتر در درخت تصمیم)

روش Dropout در شبکه‌های عصبی

روش Early Stopping: متوقف کردن آموزش وقتی خطای validation شروع به زیاد شدن کرد

به زبان ساده: مدلی که فقط “حافظه‌” داره، یاد نگرفته! باید تعادل بین یادگیری و تعمیم‌پذیری پیدا کنی.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


توقف فروش سونی اکسپریا 1 VII در ژاپن به‌دلیل مشکلات فنی!


🌿🌿 شرکت سونی در پی بروز اختلالات فنی و گزارش‌های نگران‌کننده از سوی کاربران، به ناچار فروش گوشی پرچمدار اکسپریا 1 VII را در بازار ژاپن به حالت تعلیق درآورد.

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

🔴 علت این توقف، گزارش‌های متعدد کاربران درباره مشکلاتی مانند خاموش شدن ناگهانی گوشی، راه‌اندازی مجدد غیرمنتظره و حتی روشن نشدن کامل دستگاه است. هرچند این مشکلات ممکن است جزئی به‌نظر برسند، اما تأثیر آن‌ها روی تعداد قابل توجهی از گوشی‌ها باعث نگرانی سونی شده است.


#سونی #اکسپریا #موبایل #مشکل_فنی #ژاپن

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی:
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0


🔵 نکات برنامه‌نویسی



## 🌀 Idempotency


(ایدمپوتنسی یا بی‌اثر بودن چندباره)** 🌀


به زبان ساده یعنی:
👉 اگر یک عملیات رو چند بار پشت سر هم انجام بدی، نتیجه همیشه یکی باشه.



📌 چرا مهمه؟

تصور کن یک کاربر روی دکمه پرداخت کلیک می‌کنه و اینترنتش قطع میشه. دوباره کلیک می‌کنه.

⬅️ اگر سیستم Idempotent باشه → فقط یک بار پول برداشت میشه.
⬅️ اگر نباشه → کاربر دوبار پول از دست میده 😬



مثال ساده (Python)

# درخواست برداشت پول
def withdraw(balance, amount, already_processed):
if already_processed: # اگر قبلاً انجام شده
return balance
return balance - amount

print(withdraw(100, 20, False)) # 80
print(withdraw(80, 20, True)) # 80 (هیچ تغییری نکرد)


📖 جاهای کاربردی

* پرداخت‌های آنلاین 💳 (Stripe, PayPal, بانک‌ها)
* APIهای REST (مثلاً PUT و DELETE معمولاً باید Idempotent باشن)
* سیستم‌های لاگ‌گذاری (اگر یک لاگ دوباره ارسال شد، تکراری ذخیره نشه)



🛠️ مزایا

⬅️ افزایش اعتماد کاربر (چند بار کلیک کنه هم امنه)
⬅️ جلوگیری از پردازش تکراری و هزینه اضافی
⬅️ راحتی در Retry (در صورت خطای شبکه)



⚠️ نکته مهم

Idempotency با عدم تغییر (Immutability) فرق داره.

* Immutability = داده هیچ‌وقت تغییر نمی‌کنه.
* Idempotency = ممکنه تغییر کنه، ولی چند بار پشت سر هم زدن نتیجه یکسان میده.



👉 تشبیه ساده

مثل کلید چراغ برق 💡

⬅️ هرچقدر دکمه "خاموش" رو بزنی → چراغ خاموش می‌مونه.
⬅️ هرچقدر دکمه "روشن" رو بزنی → چراغ روشن می‌مونه.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🔵 نکات برنامه‌نویسی




📜 Event Sourcing

(منبع‌یابی رویدادها)



🔹 ایده اصلی

ذخیره تمام تغییرات (رویدادها) به جای فقط ذخیره وضعیت فعلی.

⬅️ به جای اینکه فقط نتیجه نهایی یک حساب کاربری را ذخیره کنیم، تمام تراکنش‌ها یا عملیات قبلی را نگه می‌داریم.
⬅️ بعداً می‌توان وضعیت کنونی را از روی این رویدادها بازسازی کرد.



🔹 چرا مهمه؟

⬅️ قابلیت بازگردانی به گذشته (Undo / Audit)
⬅️ ردیابی کامل تاریخچه تغییرات
⬅️ امکان بازسازی وضعیت سیستم در صورت خرابی



مثال ساده (Python)

class EventStore:
def __init__(self):
self.events = []

def add_event(self, event):
self.events.append(event)

def get_balance(self):
balance = 0
for e in self.events:
if e['type'] == 'deposit':
balance += e['amount']
elif e['type'] == 'withdraw':
balance -= e['amount']
return balance


# استفاده
store = EventStore()
store.add_event({'type': 'deposit', 'amount': 100})
store.add_event({'type': 'withdraw', 'amount': 30})
store.add_event({'type': 'deposit', 'amount': 50})

print("💰 موجودی فعلی:", store.get_balance()) # خروجی: 120


📖 کاربردهای واقعی

⬅️ سیستم‌های مالی و بانکی → ذخیره تراکنش‌ها
⬅️ سیستم‌های سفارش آنلاین → نگه داشتن تاریخچه تغییر وضعیت سفارش
⬅️ سیستم‌های بازی → ذخیره اعمال بازیکن به صورت رویداد برای بازسازی و تحلیل



🛠️ مزایا

⬅️ تاریخچه کامل تغییرات
⬅️ قابلیت Undo / Replay
⬅️ تحلیل دقیق رفتار سیستم و کاربران



🎯 تشبیه ساده

Event Sourcing مثل فیلمبرداری از تمام مراحل آشپزی 🎥:

⬅️ اگر دوست دارید دوباره مرحله‌ای را تکرار کنید یا اشتباهی رخ داده → کافیست ویدئو را نگاه کنید و وضعیت را بازسازی کنید.
⬅️ فقط نگه داشتن نتیجه نهایی (غذا) این امکان را نمی‌دهد.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk


🔵 نکته برنامه نویسی

یک نکته مهم درباره‌ی «بهینه‌سازی رو بذار برای آخر» اینه که:

🌿🌿 اولویت اول باید همیشه درستی و خوانایی کد باشه، چون کد درست و واضح راحت‌تر قابل توسعه و رفع اشکال است.

خیلی از برنامه‌نویس‌ها وسوسه میشن زود برن سراغ بهینه‌سازی (مثلاً سرعت یا مصرف حافظه) و زمان زیادی صرف پیچیده کردن کد می‌کنن. اما این کار ممکنه باعث بشه:

⬅️ باگ‌های پنهان ایجاد بشه،
⬅️ کد سخت‌خوان و غیرقابل نگهداری بشه،
⬅️ زمان توسعه خیلی بیشتر بشه.

وقتی کد درست کار کرد و تست شد، اون‌وقت به سراغ بهینه‌سازی برو.

مثلاً اول کدی بنویس که قابل فهم باشه، بعد پروفایلینگ کن و ببین دقیقاً کدوم بخش‌ها واقعا نیاز به بهینه شدن دارند.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین

برای بررسی Stationarity در سری‌های زمانی از تست‌های آماری مثل ADF و KPSS استفاده می‌کنیم.

🔹 ADF Test (Augmented Dickey-Fuller):

فرض صفر: سری غیرایستا (Non-Stationary) است.

اگر p-value کوچک باشه، فرض صفر رد می‌شه → سری ایستا است.

🔹 KPSS Test (Kwiatkowski-Phillips-Schmidt-Shin):

فرض صفر: سری ایستا است.

اگر p-value کوچک باشه، فرض صفر رد می‌شه → سری غیرایستا است.

🔹 نکته مهم: معمولاً از هر دو تست استفاده می‌کنن تا مطمئن بشن سری واقعاً ایستا یا غیرایستا است.

به زبان ساده: این تست‌ها مثل “ترمومتر” هستن تا بفهمیم داده‌ها آرام و ثابت هستن یا نوسان زیادی دارن 🌡📊

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0


🔵 نکته برنامه نویسی



بریم سراغ CQRS (Command Query Responsibility Segregation) 📑



🎯 تعریف

در معماری‌های معمول، هم خواندن (Query) و هم نوشتن/تغییر (Command) داده‌ها از یک مدل/دیتابیس استفاده می‌کنن.
اما وقتی سیستم بزرگ میشه، این کار باعث شلوغی و افت کارایی میشه.

اینجاست که CQRS وارد میشه:

* Command → تغییر وضعیت (Create, Update, Delete).
* Query → فقط خواندن داده (Read).
هرکدوم می‌تونن مدل یا حتی دیتابیس جدا داشته باشن.



چرا خوبه؟

* خواندن (Query) می‌تونه خیلی سریع و بهینه باشه (حتی کش شده).
* نوشتن (Command) می‌تونه امن‌تر و دقیق‌تر باشه (ولیدیشن کامل).
* مقیاس‌پذیری راحت‌تر: دیتابیس خواندن می‌تونه Replication بشه.



🐍 مثال ساده در Python

# Command Model (برای تغییر داده‌ها)
class UserCommandModel:
def __init__(self):
self.users = {}

def create_user(self, user_id, name):
self.users[user_id] = {"id": user_id, "name": name}
return f"User {name} created "

def update_user(self, user_id, name):
if user_id in self.users:
self.users[user_id]["name"] = name
return f"User {user_id} updated "
return "User not found "


# Query Model (فقط برای خواندن)
class UserQueryModel:
def __init__(self, command_model):
self.command_model = command_model

def get_user(self, user_id):
return self.command_model.users.get(user_id, "Not found")

def list_users(self):
return list(self.command_model.users.values())


# استفاده
command = UserCommandModel()
query = UserQueryModel(command)

print(command.create_user(1, "Ali"))
print(command.create_user(2, "Sara"))
print(command.update_user(1, "Ali Reza"))

print(query.get_user(1))
print(query.list_users())


💡 مزایا:

* خواندن و نوشتن جدا میشن → طراحی ساده‌تر.
* برای سیستم‌های بزرگ مقیاس عالیه (مثلاً فروشگاه اینترنتی با میلیون‌ها کاربر).
* میشه برای Query از دیتابیس سبک (مثل Elasticsearch یا Redis) و برای Command از دیتابیس امن (مثل PostgreSQL) استفاده کرد.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏مثال عملی: یافتن مشتریانی که هرگز سفارشی ثبت نکرده‌اند

‏ساده‌ترین راه برای پیدا کردن مشتری‌های بی‌سفارش، استفاده از LEFT JOIN بین جدول Customers و Orders هست. بعدش تو قسمت WHERE بگو اونایی رو می‌خوام که order_idشون IS NULL باشه! 🕵️‍♀️ خیلی کاربردیه!

‏تصور کن دو تا دفتر داری، یکی برای مشتری‌ها، یکی برای سفارش‌ها. حالا می‌خوای بدونی کدوم مشتری‌ها اسمشون تو دفتر سفارش‌ها نیست. این دقیقا همون کاریه که این کوئری انجام میده! 💡

‏یه روش دیگه که خیلی هم سریع عمل می‌کنه، استفاده از NOT EXISTS با یه ساب‌کوئری (Subquery) هست. تو ساب‌کوئری چک می‌کنی که آیا سفارشی برای اون مشتری وجود داره یا نه. اگه نبود، یعنی مشتری ماست! 🚀

‏اگه دوست داری از NOT IN استفاده کنی، می‌تونی آی‌دی مشتری‌هایی که سفارش دادن رو تو یه ساب‌کوئری لیست کنی و بعدش بگی اونایی رو بهم بده که آی‌دی‌شون تو اون لیست نیست. فقط مواظب NULL تو ساب‌کوئری باش! 🚨

‏یادت باشه که حتماً باید جدول مشتری‌ها و سفارش‌ها رو با ستون مشترک (معمولاً customer_id) به هم وصل کنی. این کلید ارتباطیه! 🔑 بدون اون گُم می‌شی!

‏همیشه برای خوندایی بهتر، اسم جداولت رو معنی‌دار بذار. مثلاً customers و orders. اینجوری خودت یا هرکی دیگه بعداً کوئری رو می‌بینه، راحت متوجه میشه. 😉

‏چرا این کوئری مهمه؟ چون باهاش می‌تونی کمپین‌های بازاریابی هدفمند برای جذب دوباره این مشتریان راه‌اندازی کنی یا بهشون پیشنهادهای ویژه بدی! 🎁 خیلی بدردبخوره!

‏اگه جدول سفارشاتت خیلی بزرگه، حتماً روی customer_id توی جدول Orders ایندکس (Index) بذار. این کار سرعت کوئریت رو حسابی بالا می‌بره!

‏همیشه قبل از اجرای کوئری روی داده‌های اصلی، با یه مقدار داده نمونه (Sample Data) تستش کن تا مطمئن بشی نتیجه‌ای که می‌خوای رو بهت میده. اینجوری خیالت راحته!

‏فکر کن می‌خوای بدونی کدوم دانشجوها تو هیچ کلاسی ثبت‌نام نکردن. این کوئری دقیقاً همین کارو برای مشتری‌ها و سفارش‌ها انجام میده. جالبه نه؟ 🤔


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🔵 نکات برنامه‌نویسی




🚦 Rate Limiting

(محدودسازی نرخ درخواست‌ها)


🔹 ایده اصلی

کنترل تعداد درخواست‌ها یا عملیات در یک بازه زمانی مشخص.
مثلاً:

⬅️ یک کاربر فقط می‌تونه ۱۰ درخواست در دقیقه بفرسته.
⬅️ یا هر IP نهایتاً ۱۰۰۰ درخواست در روز داشته باشه.



🔹 چرا مهمه؟

⬅️ جلوگیری از سوءاستفاده (DoS, Brute Force, Spam)
⬅️ کنترل هزینه‌های سرور و API
⬅️ ایجاد عدالت بین کاربران (یکی همه منابع رو نبلعه 😅)



مثال ساده (Python)

import time

class RateLimiter:
def __init__(self, max_calls, period):
self.max_calls = max_calls
self.period = period
self.calls = []

def allow(self):
now = time.time()
# پاک کردن درخواست‌های قدیمی‌تر از period
self.calls = [t for t in self.calls if t > now - self.period]

if len(self.calls) < self.max_calls:
self.calls.append(now)
return True
return False


# مثال: حداکثر 3 درخواست در 10 ثانیه
limiter = RateLimiter(3, 10)

for i in range(5):
if limiter.allow():
print(f" درخواست {i+1} پذیرفته شد")
else:
print(f" درخواست {i+1} رد شد")
time.sleep(2)


📖 کاربردهای واقعی

➡️ APIهای عمومی (مثل GitHub API → محدودیت درخواست‌ها در ساعت)
⬅️ سیستم لاگین → جلوگیری از Brute Force (مثلاً نهایتاً ۵ بار تلاش در ۱ دقیقه)
⬅️ وب‌سایت‌ها برای جلوگیری از اسپم در فرم‌ها یا چت‌ها
⬅️ پرداخت آنلاین → محدود کردن تعداد تراکنش‌های یک کارت در روز



🛠️ مزایا

⬅️ افزایش امنیت
⬅️ بهبود پایداری سیستم در برابر ترافیک زیاد
⬅️ مدیریت منصفانه منابع



⚠️ چالش‌ها

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



🎯 تشبیه ساده

Rate Limiting مثل چراغ قرمز سر چهارراه 🚦 هست:

⬅️ حتی اگه همه بخوان رد شن، چراغ فقط به تعداد مشخصی اجازه میده.
⬅️ بقیه باید صبر کنن تا دوباره نوبتشون بشه.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir