🥇رنکینگ زبان های برنامه نویسی توی May 2026
توی این مدت رتبه زبان های برنامه نویسی چه تغییری کرده؟
پایتون جایگاهش رو حفظ کرده البته با کاهش 5 درصدی رتبه نسبت به سال قبل.
جاوا و C نسبت به سال قبل یه پله رشد داشتن.
و ++C از جایگاه دوم به چهارم رسیده.
بقیه زبان هارو هم میتونید از اینجا ببینید:
👉🏻 https://tiobe.com/tiobe-index/
#programming #language #ranking
☕️ Telegram | Website | Discord
توی این مدت رتبه زبان های برنامه نویسی چه تغییری کرده؟
پایتون جایگاهش رو حفظ کرده البته با کاهش 5 درصدی رتبه نسبت به سال قبل.
جاوا و C نسبت به سال قبل یه پله رشد داشتن.
و ++C از جایگاه دوم به چهارم رسیده.
بقیه زبان هارو هم میتونید از اینجا ببینید:
👉🏻 https://tiobe.com/tiobe-index/
#programming #language #ranking
☕️ Telegram | Website | Discord
🔥10⚡3😁2❤🔥1😱1
تو این مدت با بعضی ها که صحبت میکردم میگفتن یه خط کد هم ننوشتیم و برنامه نویسی یادمون رفته.
و افرادی هم بودن که چیزای جدیدی یاد میگرفتن و تجربه های جدید رو امتحان میکردن.
شما چیکار میکردید؟🤔
اگر پروژه جدیدی زدید که دوست دارید با بقیه share کنید لینک ریپازیتوری یا خود پروژه رو بزارید👇🏻
و افرادی هم بودن که چیزای جدیدی یاد میگرفتن و تجربه های جدید رو امتحان میکردن.
شما چیکار میکردید؟🤔
اگر پروژه جدیدی زدید که دوست دارید با بقیه share کنید لینک ریپازیتوری یا خود پروژه رو بزارید👇🏻
🔥19⚡3❤🔥3
🔍 براتون پیش اومده بخواید تفاوت کدی که خودتون نوشتید با یه کد شبیه به کد خودتون باشه مثلا راه حلی که توی استک آورفلو هست یا هوش مصنوعی بهتون گفته مقایسه کنید و ببینید چه تفاوت هایی دارن.
جدا از ابزارهایی که خود IDE ها برای اینکار دارن میتونید از سایت های Diffchecker و Littlediffer استفاده کنید.
1⃣ https://diffchecker.com
2⃣ https://littlediffer.com
شما از چه روشی برای اینکار استفاده میکنید؟
#different #code
☕️ Telegram | Website | Discord
جدا از ابزارهایی که خود IDE ها برای اینکار دارن میتونید از سایت های Diffchecker و Littlediffer استفاده کنید.
1⃣ https://diffchecker.com
2⃣ https://littlediffer.com
شما از چه روشی برای اینکار استفاده میکنید؟
#different #code
☕️ Telegram | Website | Discord
🔥14❤🔥2⚡1
⏰ گاهی نیاز داریم دو بازه زمانی رو با هم مقایسه کنیم یا اختلافشون رو محاسبه کنیم. جاوااسکریپت Date داره ولی برای بازه زمانی کافی نیست.
اینجا این روش رو استفاده میکنیم : ساختن یه TimeInterval با استفاده از همون Date ولی با اضافه کردن متدهای جدید💡
ایده اصلی اینه که به جای ارث بری کلاسمحور، یه تابع بنویسیم که:
- یه Date جدید میسازیم
- متدهای مورد نیازمون رو بهش اضافه میکنیم
- همون رو برمیگردونیم
ساخت با پارامترهای مختلف (بدون overloading):
تابع TimeInterval میتونه ورودیهای مختلف قبول کنه:
با چک کردن arguments.length میفهمیم کاربر چه چیزی داده.
اینو هم برای نمایش خروجی (override کردن toString) به تابع TimeIntervalاضافه میکنیم:
مثال از استفاده:
توی این روش TimeInterval از Date ارث بری نکرده. اومدیم یه Date ساختیم، بعد متدهای جدید روش ریختیم. این روش رو توی جاوااسکریپت بهش میگن Object Augmentation و خیلی تمیز کار میکنه.
اگه توی پروژه هاتون نیاز به جمع و تفریق زمان یا محاسبه اختلاف بازه های زمانی دارین، این روش هم سادست هم انعطافپذیره، نیازی به هیچی نداره و خود جاوااسکریپت با یه کم خلاقیت جواب میده.
#js #timeinterval
☕️ Telegram | Website | Discord
اینجا این روش رو استفاده میکنیم : ساختن یه TimeInterval با استفاده از همون Date ولی با اضافه کردن متدهای جدید💡
ایده اصلی اینه که به جای ارث بری کلاسمحور، یه تابع بنویسیم که:
- یه Date جدید میسازیم
- متدهای مورد نیازمون رو بهش اضافه میکنیم
- همون رو برمیگردونیم
var TimeInterval = function(){
var obj = new Date(0);
if(arguments.length === 1){
obj.setTime(arguments[0]);
} else if(arguments.length > 1){
var ms = (arguments[0] || 0) * 86400000 +
(arguments[1] || 0) * 3600000 +
(arguments[2] || 0) * 60000 +
(arguments[3] || 0) * 1000 +
(arguments[4] || 0);
obj.setTime(ms);
}
obj.add = function(t){
if(t.getTime){
this.setTime(this.getTime() + t.getTime());
}
};
obj.subtract = function(t){
if(t.getTime){
this.setTime(this.getTime() - t.getTime());
}
};
obj.equals = function(t){
return this.getTime() === t.getTime();
};
return obj;
}
function diff(t1, t2){
return TimeInterval(t1.getTime() - t2.getTime());
}ساخت با پارامترهای مختلف (بدون overloading):
تابع TimeInterval میتونه ورودیهای مختلف قبول کنه:
TimeInterval(3600000) // 1 ساعت به میلیثانیه
TimeInterval(1,0,0) // 1 ساعت (ساعت، دقیقه، ثانیه)
TimeInterval(1,2,0,0) // 1 روز و 2 ساعت
TimeInterval(1,2,0,0,500) // 1 روز و 2 ساعت و 500 میلیثانیه
با چک کردن arguments.length میفهمیم کاربر چه چیزی داده.
اینو هم برای نمایش خروجی (override کردن toString) به تابع TimeIntervalاضافه میکنیم:
obj.toString = function(){
var days = Math.floor(this.getTime() / 86400000);
return days + " Day(s) " +
this.getUTCHours() + ":" +
this.getUTCMinutes() + ":" +
this.getUTCSeconds();
}مثال از استفاده:
var interval1 = TimeInterval(1, 2, 30, 0, 500); // 1 روز, 2 ساعت, 30 دقیقه, 500 میلیثانیه
var interval2 = TimeInterval(3600000 * 25); // 25 ساعت (معادل 1 روز و 1 ساعت)
interval1.add(interval2);
var difference = diff(interval1, interval2); // 1 Day(s) 2:30:0
توی این روش TimeInterval از Date ارث بری نکرده. اومدیم یه Date ساختیم، بعد متدهای جدید روش ریختیم. این روش رو توی جاوااسکریپت بهش میگن Object Augmentation و خیلی تمیز کار میکنه.
اگه توی پروژه هاتون نیاز به جمع و تفریق زمان یا محاسبه اختلاف بازه های زمانی دارین، این روش هم سادست هم انعطافپذیره، نیازی به هیچی نداره و خود جاوااسکریپت با یه کم خلاقیت جواب میده.
#js #timeinterval
☕️ Telegram | Website | Discord
❤🔥10⚡3🔥2
بریم یکم راجب زبانی حرف بزنیم که بهش کم توجهی شده
زبان برنامهنویسی (لوا👩💻 Lua)
برای نصب و استفاده هم کافیه برید توی سایت رسمی خود زبان لوا یعنی
توی سایت خود لوا که برید برای تازه کار ها شاید یکم عجب باشه و دنبال فایل نصبی و یا باینریش بگردن برای ویندوز. ولی باید بگم که اونجوری نیست و فقط سورس زبان توی سایت در دسترسه و باید اون رو با زبان سی بیلد کنید و تبدیل به باینری کنید تا بتونید استفاده کنید چون هیچ نصب کننده ای و یا رابط گرافیکی مثل پایتون براش وجود نداره ولی میتونید از گیتهاب و سایت های مختلف اخرین نسخه بیلد شده و اماده رو دانلود کنید
ولی بر خلافش توی لینوکس راحته و توی ترمینال با دستور
#lua #article
☕️ Telegram | Website | Discord
زبان برنامهنویسی (لوا
یکی از شاهکارهای دنیای نرمافزار که با هدف سادگی، سرعت زیاد و حجم بسیار کم طراحی شده این زبان در سال 1993 توسط تیمی از دانشمندان دانشگاه کاتولیک ریو دو ژانیرو در برزیل متولد شد.
نام لوا در زبان پرتغالی به معنای ماه (🌕 ) است. این زبان به صورت کاملاً مستقل اجرا نمیشود بلکه به عنوان یک زبان اسکریپتنویسی تزریقی طراحی شده است تا درون برنامههای بزرگتر قرار بگیرد و به کاربران اجازه شخصیسازی و کنترل محیط برنامه را بدهد.
موفقیت بزرگ لوا در دنیای بازیسازی رقم خورد جایی که به عنوان موتور اصلی اسکریپتنویسی بازیهای معروفی مثل Roblox و دنیای وارکرفت انتخاب شد
و حتی Nginx هم توی خودش از زبان لوا استفاده کرده
مدیریت حافظه در لوا کاملا خودکاره و برنامهنویس نیازی به آزادسازی دستی حافظه نداره این زبان از یک سیستم جمعآوری زباله بسیار پیشرفته و مرحلهای استفاده میکنه که در پسزمینه اجرا میشه و اشیایی رو که دیگه در کد استفاده نمیشه، از حافظه پاک میکنه تا از کند شدن برنامه جلوگیری کنه
ساختار داده ها توی لوا در اوج سادگیه؛ این زبان تنها یک ساختار داده همهفنحریف به نام Tabel دارد که میتواند به عنوان آرایه، لیست، دیکشنری و حتی برای شبیهسازی برنامهنویسی شیگرا استفاده بشه
یعنی ما توی زبان لوا شی گرایی نداریم ولی همون کار شی گرایی و حتی ارث بری رو میتونیم با همون تیبل ها شبیه سازی کنیم و استفاده کنیم
تمام هسته اصلی کامپایلر و مفسر لوا با زبان برنامهنویسی (👩💻 ) نوشته شده انتخاب زبان سی به این دلیل بود که لوا بتونه روی هر دستگاهی، از ابر رایانهها گرفته تا ساعتهای هوشمند و روترهای شبکه، بدون هیچ مشکلی اجرا بشه کل حجم مفسر لوا تنها چندصد کیلوبایته که نشون میده بهینهسازی فوقالعاده کدهای سی در ساختارشه
وقتی شما یک خط کد در لوا مینویسید، این کد بلافاصله به زبان ماشین تبدیل نمیشه بلکه یک فرآیند چندمرحلهای را پشت سر میگذارد
در مرحله اول، تحلیلگر متنی کد شما را میخواند و ساختار متنی را به نشانهها یا توکنها تبدیل میکند.
در مرحله دوم، این توکنها به یک درخت ساختار درختی یا همان درخت نحو انتزاعی تبدیل میشوند تا منطق برنامه بررسی شود.
در مرحله سوم، کامپایلر داخلی لوا این درخت را به یک زبان میانی بسیار بهینه به نام بایتکد تبدیل میکند. بایتکدها دستورالعملهای فشردهای هستند که برای پردازندههای واقعی نیستند، بلکه برای یک پردازنده فرضی ساخته شدهاند.
در مرحله چهارم، ماشین مجازی لوا که بر پایه ثباتها طراحی شده است، این بایتکدها را برداشته و یکی پس از دیگری به دستورات بومی پردازنده یا همان کد ماشین تبدیل و اجرا میکند.
این معماری مبتنی بر ثبات باعث شده که لوا نسبت به زبانهایی مثل پایتون که از معماری پشته استفاده میکنند، سرعت اجرای بسیار بالاتری داشته باشد.
اگر از نسخههای پیشرفتهتر مثل Lua JIT استفاده کنید، مرحله بایتکد مستقیماً در زمان اجرا به کد ماشین کامپایل میشود که سرعتی نزدیک به زبان سی رو میده
برای نصب و استفاده هم کافیه برید توی سایت رسمی خود زبان لوا یعنی
https://www.lua.org
توی سایت خود لوا که برید برای تازه کار ها شاید یکم عجب باشه و دنبال فایل نصبی و یا باینریش بگردن برای ویندوز. ولی باید بگم که اونجوری نیست و فقط سورس زبان توی سایت در دسترسه و باید اون رو با زبان سی بیلد کنید و تبدیل به باینری کنید تا بتونید استفاده کنید چون هیچ نصب کننده ای و یا رابط گرافیکی مثل پایتون براش وجود نداره ولی میتونید از گیتهاب و سایت های مختلف اخرین نسخه بیلد شده و اماده رو دانلود کنید
ولی بر خلافش توی لینوکس راحته و توی ترمینال با دستور
sudo apt install lua نسخه باینری و قابل استفاده لوا براتون نصب میشه و در مک هم قضیه همینطوره#lua #article
☕️ Telegram | Website | Discord
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥12⚡4🔥3😁1
📊 از 8 آوریل تا 8 مه 2026 یه نظرسنجی برگزار شده که 7,258 برنامه نویس وب توی این نظرسنجی شرکت کردن و خلاصه نتیجه اون رو باهم بررسی میکنیم.
1. میانگین کدی که با کمک هوش مصنوعی تولید شده از 28 درصد توی سال 2025 به %54 رسیده. تعداد افرادی که "روزمره" از AI استفاده میکنن هم نسبت به سال قبل دو برابر شده.
2.از نظر تجربه و احساس مثبت کاربران، Claude Code با %43 محبوب ترینه و بعد از اون OpenAI Codex و GitHub Copilot قرار دارن.
3. با اینکه ChatGPT محبوبیت عمومی بیشتری داره، اما Claude مدلیه که با 69 درصد اولین مدلیه که کاربرا براش هزینه میکنن و بعد از اونChatGPT با 49 درصد و Gemini با 32 درصد دوم و سوم هستن.
4. بیشترین تهدید ها و نگرانی هایی که کاربران از AI داشتن چی بوده؟
- از دست دادن شغل (48 درصد)
- کاربرد های نظامی (45 درصد)
- اثرات زیستمحیطی (40 درصد)
- هجوم محتوای بی کیفیت (AI slop) (34 درصد)
- اثرات منفی شناختی مثل تنبلی ذهن (30 درصد)
5. بزرگترین مشکلی که حین کار با AI دارن و احتمالا رو اعصاب شما هم هست اینه که %64 از افراد توهمات و عدم دقت (Hallucination) رو بزرگترین مشکل میدونن.
بعد از اون 53 درصد از کیفیت پایین کد ناراضی هستن. و در ادامه هم مشکلاتی مثل نداشتن پیش زمینه کافی AI از پروژه و به خطر افتادن حریم خصوصی رو میبینیم.
🔸اگر خواستید نمودارهاشو ببینید یا با جزئیات بیشتری بخونید میتونید از این لینک استفاده کنید:
🔗 https://2026.stateofai.dev/
ری اکشن و اشتراک گذاری پست فراموش نشه😉🧡
#ai #stateofai
☕️ Telegram | Website | Discord
1. میانگین کدی که با کمک هوش مصنوعی تولید شده از 28 درصد توی سال 2025 به %54 رسیده. تعداد افرادی که "روزمره" از AI استفاده میکنن هم نسبت به سال قبل دو برابر شده.
2.از نظر تجربه و احساس مثبت کاربران، Claude Code با %43 محبوب ترینه و بعد از اون OpenAI Codex و GitHub Copilot قرار دارن.
3. با اینکه ChatGPT محبوبیت عمومی بیشتری داره، اما Claude مدلیه که با 69 درصد اولین مدلیه که کاربرا براش هزینه میکنن و بعد از اونChatGPT با 49 درصد و Gemini با 32 درصد دوم و سوم هستن.
4. بیشترین تهدید ها و نگرانی هایی که کاربران از AI داشتن چی بوده؟
- از دست دادن شغل (48 درصد)
- کاربرد های نظامی (45 درصد)
- اثرات زیستمحیطی (40 درصد)
- هجوم محتوای بی کیفیت (AI slop) (34 درصد)
- اثرات منفی شناختی مثل تنبلی ذهن (30 درصد)
5. بزرگترین مشکلی که حین کار با AI دارن و احتمالا رو اعصاب شما هم هست اینه که %64 از افراد توهمات و عدم دقت (Hallucination) رو بزرگترین مشکل میدونن.
بعد از اون 53 درصد از کیفیت پایین کد ناراضی هستن. و در ادامه هم مشکلاتی مثل نداشتن پیش زمینه کافی AI از پروژه و به خطر افتادن حریم خصوصی رو میبینیم.
🔸اگر خواستید نمودارهاشو ببینید یا با جزئیات بیشتری بخونید میتونید از این لینک استفاده کنید:
🔗 https://2026.stateofai.dev/
ری اکشن و اشتراک گذاری پست فراموش نشه😉🧡
#ai #stateofai
☕️ Telegram | Website | Discord
🔥12⚡4❤🔥4
🦀 چه تغییراتی توی Rust 1.96 اتفاق افتاده؟
ورژن جدید Rust تازه منتشر شده و قراره یه نگاه به جدیدترین تغییراتش بندازیم.
1. اضافه شدن رنج تایپ های جدید
تا الان Rangeها Iterator رو پیاده سازی میکردن، در نتیجه امکان Copy بودن نداشتن. از این نسخه، نوعهای جدیدی اضافه شده که IntoIterator دارند و میتونن Copy باشن.
حالا امکانش هست که slice accessorها رو بدون جدا کردن start و end در نوعهای Copy ذخیره کرد.
2. ماکروهای assert_matches برای بررسی تطابق الگو با مقدار اضافه شدن. این ماکروها به prelude اضافه نشدن و برای جلوگیری از تداخل با سایر crateها، باید از core یا std ایمپورت بشن.
3. از این نسخه، --allow-undefined به linker ارسال نمیشه. یعنی undefined symbolها الان خطای linker میدن نه اینکه خودکار به import تبدیل بشن. برای برگشتن به حالت قبلی:
4. لیست API های جدید
- CVE-2026-5223 (معمولی): مشکل استخراج tarball با symlink
- CVE-2026-5222 (کم اهمیت): مشکل احراز هویت با URLهای نرمالشده
منبع: RustLangBlog
#rust #new
☕️ Telegram | Website | Discord
ورژن جدید Rust تازه منتشر شده و قراره یه نگاه به جدیدترین تغییراتش بندازیم.
1. اضافه شدن رنج تایپ های جدید
تا الان Rangeها Iterator رو پیاده سازی میکردن، در نتیجه امکان Copy بودن نداشتن. از این نسخه، نوعهای جدیدی اضافه شده که IntoIterator دارند و میتونن Copy باشن.
حالا امکانش هست که slice accessorها رو بدون جدا کردن start و end در نوعهای Copy ذخیره کرد.
use core::range::Range;
#[derive(Clone, Copy)]
pub struct Span(Range<usize>);
impl Span {
pub fn of(self, s: &str) -> &str {
&s[self.0]
}
}
2. ماکروهای assert_matches برای بررسی تطابق الگو با مقدار اضافه شدن. این ماکروها به prelude اضافه نشدن و برای جلوگیری از تداخل با سایر crateها، باید از core یا std ایمپورت بشن.
use core::assert_matches;
fn get_random_number() -> u32 { 4 }
assert_matches!(get_random_number(), 1..=6);
3. از این نسخه، --allow-undefined به linker ارسال نمیشه. یعنی undefined symbolها الان خطای linker میدن نه اینکه خودکار به import تبدیل بشن. برای برگشتن به حالت قبلی:
RUSTFLAGS=-Clink-arg=--allow-undefined
4. لیست API های جدید
assert_matches!5. رفع دو آسیبپذیری در Cargo
debug_assert_matches!
From<T> for AssertUnwindSafe<T>
From<T> for LazyCell<T, F>
From<T> for LazyLock<T, F>
core::range::RangeToInclusive
core::range::RangeFrom
core::range::RangeFromIter
core::range::Range
core::range::RangeIter
- CVE-2026-5223 (معمولی): مشکل استخراج tarball با symlink
- CVE-2026-5222 (کم اهمیت): مشکل احراز هویت با URLهای نرمالشده
منبع: RustLangBlog
#rust #new
☕️ Telegram | Website | Discord
❤🔥9🔥3⚡2
این مقاله رو هر برنامه نویسی باید بخونه و بلد باشه
برنامه نویسی همزمان
برنامهنویسی همزمان یا همان Concurrency یکی از جذابترین و البته حیاتیترین مفهوم تو دنیای برنامه نویسیه که واقعا دید و کارایی خیلی خوبی بهمون میده
◀️ برای درک این مفهوم به نظرم یه مثال از زندگی روزمره خودمون کافیه و تماما جا میوفته براتون:
◀️ یک مثال عملی و واقعی:
◀️ یه مثال بزنیم براش:
◀️ خروجی:
◀️ توضیحات:
◀️ نکته: برای تلف کردن تایم در تابع تسک اول ما اومدیم از async time استفاده کردیم و با ماژول time خود پایتون نمیشه چون asyncable نیست خود ماژول
اونیم که میگفت منتظر میمونم باید بگم که کارش غیر همزمان محسوب میشه و نیازی به همزمان کردن کد نداره حتما شخص بیکاره دیگه میتونه برسه با کاراش🤷♂️
#python #learn
☕️ Telegram | Website | Discord
برنامه نویسی همزمان
برنامهنویسی همزمان یا همان Concurrency یکی از جذابترین و البته حیاتیترین مفهوم تو دنیای برنامه نویسیه که واقعا دید و کارایی خیلی خوبی بهمون میده
تصور کنید در حال آشپزی کردنید, پیازها رو خورد میکنید و توی ماهیتابه میریزین یعنی تا وقتی که پیازها سرخ بشن, دست به سینه جلوی گاز همینجوری میمونید؟ قطعاً نه (هر کسیم که بگه آره منتظر میمونم اونو توی اخر مقاله توی یه نکته میگم) با این حال تو همون چند دقیقه ای که پیازا در حال تفت خوردنن شما به سراغ شستن ظرفها یا خرد کردن گوجهفرنگیها میرین و خودتون رو به یه کار مشخص دیگه ای مصروف میکنید.
این دقیقاً همون کاریه که برنامهنویسی همزمان انجام میده
یعنی مدیریت و پیشبردن چند کار مختلف در یک بازه زمانی، بدون اینکه منتظر تموم شدن کار قبلی بمونیم در دنیای سنتی برنامهنویسی، همه چیز خط به خط و پشت سر هم اجرا میشه. مثلا اگه برنامتون قرار بود فایلی رو از اینترنت دانلود کنه کل برنامه منتظر میموند تا دانلود تموم بشه و واقعا هم تایم هدر میرفت و هم خسته کننده و رو مخ بود
ولی در برنامهنویسی همزمان، مشکلمون حل میشه هسته اصلی این ایده، استفاده بهینه از زمانهای مردست. وقتی یک بخش از برنامه منتظر پاسخ سرور، دریافت یک فایل یا خواندن اطلاعات از هارد دیسکه پردازنده معطل نمیمونه بلکه سریعاً به سراغ اجرای بخش بعدی از برنامه میره که آماده کاره. به این ترتیب، سرعت ظاهری و پاسخگویی سیستم به شدت بالا میره بدون اینکه لزوماً نیاز به سختافزار قویتری داشته باشیم
سیستم چت آنلاین یا همون رباتهای پیامرسان فرض کن هزار نفر همزمان به یه ربات مدیریت گروه پیام میدن. اگر برنامه همزمان نباشه ربات باید پیام نفر اولو بگیره پردازش کنه پاسخ بده و بعد که تموم شد سراغ نفر بعدی بره. نیعنی اینجوری باید نفر هزارم اینقدر منتظر بمونه تا کار اینا تموم بشه ولی با برنامهنویسی همزمان، ربات پیام نفر اول رو دریافت میکنه و در همان کسری از ثانیهای که منتظر تایید سرور برا ارسال پاسخه پیامهای نفرات بعدی رو هم تحویل میگیره. در واقع کارها به موازات هم جلو میرن و هیچکس در صف طولانی معطل نمیشه
ما این کار رو توی پایتون با دوتا کلمه کلیدی async و await انجام میدیم و ماژول بیلت این asyncio که در خود پایتون موجوده و نیازی به نصب نیست
پایتون به طور پیشفرض کد هارو خط به خط میخونه ولی این ماژول رفتارش رو تغییر میده و استفاده از تایم رو بهش یاد میده و مثل یک موتور عمل میکنه
import asyncio
async def task1():
await asyncio.sleep(2)
print(1)
async def task2():
print(2)
async def task3():
print(3)
async def main():
await asyncio.gather(task1(), task2(), task3())
asyncio.run(main())
2
3
1
کدمون اگه غیر همزمان بود به تابع task1 میرسید و یه sleep میخورد و تا اون مکثه تموم نمیشد هیچ جوره نمیرفت خط بعدی ولی الان که کدمون همزمانه میاد و به همون تابع میرسه و میبینه که کارش طول میکشه میره بعدیارو اجرا میکنه و بعد هر موقع که کارش تموم شد کارش تسک اولم اجرا میشه
اونیم که میگفت منتظر میمونم باید بگم که کارش غیر همزمان محسوب میشه و نیازی به همزمان کردن کد نداره حتما شخص بیکاره دیگه میتونه برسه با کاراش
#python #learn
☕️ Telegram | Website | Discord
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤🔥16🔥3⚡1👏1
اگر به هر دلیلی نیاز به یه جایگزین برای Postman داشتید HTTPie میتونه کارتون رو راه بندازه🥶
رابط کاربری شبیه به Postman داره و میتونید کالکشن های Postman رو هم داخلش ایمپورت و استفاده کنید.
نسخه وب هم داره بجز اون لینوکس مک و ویندوز رو هم پشتیبانی میکنه✅
🔗 https://httpie.io
چرا حالا جایگزین Postman؟ نیاز میشه؟🤔
توی قطعی اینترنتا به کارتون میاد. البته امیدوارم دفعه بعدی وجود نداشته باشه.
بجز اون چی؟ در کل خوبه طرفدارای خودشو هم داره.
#api #test #httpie
☕️ Telegram | Website | Discord
رابط کاربری شبیه به Postman داره و میتونید کالکشن های Postman رو هم داخلش ایمپورت و استفاده کنید.
نسخه وب هم داره بجز اون لینوکس مک و ویندوز رو هم پشتیبانی میکنه✅
🔗 https://httpie.io
چرا حالا جایگزین Postman؟ نیاز میشه؟🤔
توی قطعی اینترنتا به کارتون میاد. البته امیدوارم دفعه بعدی وجود نداشته باشه.
بجز اون چی؟ در کل خوبه طرفدارای خودشو هم داره.
#api #test #httpie
☕️ Telegram | Website | Discord
⚡9🔥3❤🔥1
باگ بانتی (Bug Bounty)
زاویه دید یه هکر یا همون بانتر به 4 چیزه:
#article
☕️ Telegram | Website | Discord
یه پلتفرم و حوزه (برد - برد) در دنیای امنیت سایبریه(حوزه مورد علاقه خودم)
تو این حوزه سازمانها از شرکتهای بزرگی مثل گوگل و متا گرفته تا بانکها، به صورت قانونی به متخصصای امنیت اجازه میدن تا سیستم هاشونو هک کنن
به این متخصصان که با هدف ارتقای امنیت و دریافت پاداش کار میکنن باگ بانتر (Bug Hunter) یا هکر کلاهسفید میگن(بستگی داره بعضی وقتام کلاه سیاه میشن اگه یکی اذیتشون کنه😔 )
برنامههای باگ بانتی به دو صورت برگزار میشن:
عمومی (Public) که همه هکرها بهش دسترسی دارن
خصوصی (Private) که فقط هکرهای باسابقه و دعوتشده میتونن روش کار کنن
حالا یه برنامه دیگه هم داریم که به طور مسابقه برگذار میشه و به دزدیدن پرچم معروفه که بعدا اون رو هم توضیح میدم
کار بانتر با بررسی سند برنامه (Policy) شروع میشه در این سند یا صفحه، قلمرو کاری (In-Scope) مشخص میکنه که هکر مجازه به چه سایتها یا سرورهایی حمله کنه و چه بخشهایی خط قرمز یا Out-of-Scope هستند. همچنین قوانینی مثل عدم تخریب دادهها و ممنوعیت حملات منع سرویس (DoS/DDoS) در اینجا ذکر میشه اگر مثال بزنیم مثلا یه سایتی مثل اسنپ توی قلمرو کاری یا بخش باگ بانتی نوشته که دیداس زدن بانتی نداره و پاداشی نداره و شما نمیتونید با این کار پاداشی بگیرین و فقط آسیب پذیری های مهم رو میتونید گزارش کنید یا امتحان کنید
زاویه دید یه هکر یا همون بانتر به 4 چیزه:
1️⃣ . شناسایی (Recon): جمعآوری اطلاعات از زیردامنهها، پورتها و ساختار هدف بدون جلب توجه و کاملا مخفی
2️⃣ اسکن و تحلیل: یافتن شکاف ها, متغیرها و رفتارهای مشکوک سیستم و یا هم نقطه ای برای ورود یا شکستن
3️⃣ . بهرهبرداری (Exploitation): تست نفوذ برای اطمینان از وجود باگ یا همون اکسپلویت خودمون که بیشتر با اسکریپت صورت میگیره
4️⃣ . مستندسازی: ثبت دقیق مراحل بازتولید باگ و راه حل برای رفع باگ
پس از کشف باگ، بانتر باید یه گزارش فنی و دقیق از باگ و طریقه رفع باگ بنویسه که شامل پو سی (PoC - Proof of Concept) یا همان نمونه اثبات ادعا (فیلم یا کد مخرب بیخطر) است تا ثابت کنه آسیبپذیری واقعیه. آسیبپذیریها معمولاً بر اساس استاندارد OWASP Top 10 دسته بندی میشن که شامل موارد معروفی مثل XSS (تزریق کد به مرورگر کاربران)، SQLi (دسترسی به پایگاه داده)، و IDOR (دسترسی به اطلاعات کاربران دیگر) است و موارد دیگه
پس از ارسال گزارش در پلتفرمهایی مثل HackerOne یا Bugcrowd، تیم داوری (Triage) اونو بررسی میکنن. اگه باگ قبلاً توسط کسی گزارش نشده باشه وضعیتش New و بعد Triaged میشه. ولی اگه تکراری باشه برچسب Duplicate میخوره و پاداشی تعلق نمیگیره
شدت خطرات باگها بر اساس استاندارد جهانی CVSS (یک سیستم نمرهدهی از ۰ تا ۱۰) سنجیده شده و به ۴ دسته Low، Medium، High و Critical تقسیم میشن. با وجود همین، مبلغی به عنوان پاداش یا Bounty به هکر پرداخت میشه. علاوه بر پول، هکرها امتیاز مهارتی یا Reputation دریافت میکنن که رتبه آنها را در لیدربورد پلتفرم بالا میره. در نهایت، پس از حل مشکل توسط سازمان، وضعیت گزارش به Resolved تغییر میکنه و هکرها با اجازه سازمان میتونن گزارششون رو برا آموزش بقیه به صورت عمومی منتشر کنن (Disclosure).
#article
☕️ Telegram | Website | Discord
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👏3❤🔥1😁1
📚کتاب Claude Code from Source به طور عمیق به معماری، پترن ها و استراتژی های پیاده سازی Claude Code اشاره میکنه.
این کتاب فقط سراغ مفاهیم تئوری نرفته و تکنیک هایی مثل بهینه سازی حافظه، کاهش هزینه های پردازش و مدیریت ابزارها در مقایس بزرگ رو توضیح داده.
با ارائه 18 فصل کاربردی یه کتاب خیلی خوب برای یادگیری استاندارد های معماری هوش مصنوعیه👌
برای مطالعه:
🔗 https://claude-code-from-source.com
#book #ai #claudecode
☕️ Telegram | Website | Discord
این کتاب فقط سراغ مفاهیم تئوری نرفته و تکنیک هایی مثل بهینه سازی حافظه، کاهش هزینه های پردازش و مدیریت ابزارها در مقایس بزرگ رو توضیح داده.
با ارائه 18 فصل کاربردی یه کتاب خیلی خوب برای یادگیری استاندارد های معماری هوش مصنوعیه👌
برای مطالعه:
🔗 https://claude-code-from-source.com
#book #ai #claudecode
☕️ Telegram | Website | Discord
🔥11😍4👏3❤🔥1