کدام یک از زبان های برنامه نویسی زیر سطح بالا نمیباشد؟
Anonymous Quiz
60%
Assembly
8%
Java
9%
C#
23%
PHP
مایکروسافت و شرکاش، هکرهای هوش مصنوعی رو به چالش کشیدن تا یک سرویس ایمیل شبیهسازیشده با قابلیتهای هوش مصنوعی رو با استفاده از حمله Prompt Injection هک کنن. تیمهای برنده جایزهای به ارزش ۱۰ هزار دلار دریافت خواهند کرد.
حمله ی Prompt Injection یک نوع آسیبپذیری امنیتی در سیستمهای مبتنی بر هوش مصنوعی، بخصوص اونایی که از مدلهای زبانی بزرگ (LLM) استفاده میکنن، هستش. در این نوع حمله، مهاجمان با دستکاری ورودیهایی که به مدل داده میشه، میتونن مدل رو فریب بدن تا بجای انجام وظایف اصلی خودش، دستورات مخربی رو اجرا کنه.
فرض کنید یک چتبات داریم که به سوالات کاربران پاسخ میده. اگه یک مهاجم بتونه با استفاده از یک Prompt خاص، چتبات رو وادار کنه تا بجای پاسخ به سوال کاربر، اطلاعات شخصی کاربر رو فاش کنه، این یک حمله ی Prompt Injection محسوب میشه.
در این چالش که توسط مایکروسافت، موسسه علوم و فناوری استرالیا و دانشگاه فنی زوریخ حمایت میشه، هدف یک سرویس ایمیلی هستش که تا حد زیادی شبیه به یک سرویس ایمیل واقعی عمل میکنه و بسیاری از ویژگیها و عملکردهای یک سرویس ایمیل معمولی رو داراست. این سرویس شبیهسازیشده، از یک مدل زبان بزرگ برای پردازش درخواستهای کاربر ایمیل و تولید پاسخها استفاده میکنه و همچنین میتونه یک فراخوانی API برای ارسال ایمیل به نمایندگی از کاربر تولید کنه.
در این چالش که از روز دوشنبه آغاز شده، شرکتکنندگان نقش یک مهاجم رو بر عهده میگیرن که ایمیلی رو برای یک کاربر ارسال میکنه. هدف در اینجا فریب دادن سرویس LLMail برای اجرای دستوری است که کاربر قصد اونو نداره، بنابراین دادهها رو نشت میده یا برخی از اعمال مخرب دیگه ای رو انجام میده که نباید انجام بشن.
مهاجم میتونه هر چیزی رو که میخواد در متن ایمیل بنویسه، اما نمیتونه خروجی مدل رو ببینه.
پس از دریافت ایمیل، کاربر با سرویس LLMail تعامل میکنه، پیام رو میخونه، از LLM سوال میپرسه (مثلاً “بروز رسانی در مورد پروژه X”) یا دستور میده تا همه ایمیلهای مربوط به یک موضوع رو خلاصه کنه. این باعث میشه سرویس، ایمیلهای مرتبط رو از یک پایگاه داده جعلی بازیابی کنه.
این سرویس به چندین اقدام دفاعی در برابر حملات Prompt Injection مجهز شده و هدف مهاجم دور زدن این دفاع ها و ساختن یک Prompt خلاقانه هستش که مدل رو فریب میده تا کارهایی رو انجام بده یا چیزهایی رو نشون بده که برای انجام اونا آموزش ندیده.
هر دوی این موارد به تهدیدات جدی و واقعی تبدیل شدن چون سازمانها و توسعه دهندگان برنامه های کاربردی، دستیاران هوش مصنوعی و چت بات ها و سایر سرویس ها رو بر روی LLM ها می سازن و به مدلها اجازه میدن مستقیماً با رایانه های کاربران تعامل داشته باشن، چت های Slack رو خلاصه کنن یا متقاضیان شغل رو قبل از بررسی رزومه های اونا توسط منابع انسانی غربالگری کنن و … .
مایکروسافت تجربه مستقیمی در مورد اونچه در صورت هک شدن یک چت بات مبتنی بر هوش مصنوعی توسط هکرها ممکنه اتفاق بیافته رو داره. اوایل سال جاری، ردموند یک سری از نقص های Copilot رو برطرف کرد که به مهاجمان اجازه میداد با زنجیره ای از حملات خاص LLM، از جمله Prompt Injection، ایمیل های کاربران و سایر داده های شخصی اونارو بدزدن.
منبع
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
حمله ی Prompt Injection یک نوع آسیبپذیری امنیتی در سیستمهای مبتنی بر هوش مصنوعی، بخصوص اونایی که از مدلهای زبانی بزرگ (LLM) استفاده میکنن، هستش. در این نوع حمله، مهاجمان با دستکاری ورودیهایی که به مدل داده میشه، میتونن مدل رو فریب بدن تا بجای انجام وظایف اصلی خودش، دستورات مخربی رو اجرا کنه.
فرض کنید یک چتبات داریم که به سوالات کاربران پاسخ میده. اگه یک مهاجم بتونه با استفاده از یک Prompt خاص، چتبات رو وادار کنه تا بجای پاسخ به سوال کاربر، اطلاعات شخصی کاربر رو فاش کنه، این یک حمله ی Prompt Injection محسوب میشه.
در این چالش که توسط مایکروسافت، موسسه علوم و فناوری استرالیا و دانشگاه فنی زوریخ حمایت میشه، هدف یک سرویس ایمیلی هستش که تا حد زیادی شبیه به یک سرویس ایمیل واقعی عمل میکنه و بسیاری از ویژگیها و عملکردهای یک سرویس ایمیل معمولی رو داراست. این سرویس شبیهسازیشده، از یک مدل زبان بزرگ برای پردازش درخواستهای کاربر ایمیل و تولید پاسخها استفاده میکنه و همچنین میتونه یک فراخوانی API برای ارسال ایمیل به نمایندگی از کاربر تولید کنه.
در این چالش که از روز دوشنبه آغاز شده، شرکتکنندگان نقش یک مهاجم رو بر عهده میگیرن که ایمیلی رو برای یک کاربر ارسال میکنه. هدف در اینجا فریب دادن سرویس LLMail برای اجرای دستوری است که کاربر قصد اونو نداره، بنابراین دادهها رو نشت میده یا برخی از اعمال مخرب دیگه ای رو انجام میده که نباید انجام بشن.
مهاجم میتونه هر چیزی رو که میخواد در متن ایمیل بنویسه، اما نمیتونه خروجی مدل رو ببینه.
پس از دریافت ایمیل، کاربر با سرویس LLMail تعامل میکنه، پیام رو میخونه، از LLM سوال میپرسه (مثلاً “بروز رسانی در مورد پروژه X”) یا دستور میده تا همه ایمیلهای مربوط به یک موضوع رو خلاصه کنه. این باعث میشه سرویس، ایمیلهای مرتبط رو از یک پایگاه داده جعلی بازیابی کنه.
این سرویس به چندین اقدام دفاعی در برابر حملات Prompt Injection مجهز شده و هدف مهاجم دور زدن این دفاع ها و ساختن یک Prompt خلاقانه هستش که مدل رو فریب میده تا کارهایی رو انجام بده یا چیزهایی رو نشون بده که برای انجام اونا آموزش ندیده.
هر دوی این موارد به تهدیدات جدی و واقعی تبدیل شدن چون سازمانها و توسعه دهندگان برنامه های کاربردی، دستیاران هوش مصنوعی و چت بات ها و سایر سرویس ها رو بر روی LLM ها می سازن و به مدلها اجازه میدن مستقیماً با رایانه های کاربران تعامل داشته باشن، چت های Slack رو خلاصه کنن یا متقاضیان شغل رو قبل از بررسی رزومه های اونا توسط منابع انسانی غربالگری کنن و … .
مایکروسافت تجربه مستقیمی در مورد اونچه در صورت هک شدن یک چت بات مبتنی بر هوش مصنوعی توسط هکرها ممکنه اتفاق بیافته رو داره. اوایل سال جاری، ردموند یک سری از نقص های Copilot رو برطرف کرد که به مهاجمان اجازه میداد با زنجیره ای از حملات خاص LLM، از جمله Prompt Injection، ایمیل های کاربران و سایر داده های شخصی اونارو بدزدن.
منبع
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
ONHEXGROUP
جایزه 10 هزار دلاری مایکروسافت برای چالش LLMail-Inject
مایکروسافت در حال برگزاری چالشی با عنوان LLMail-Inject، برای ارزیابی حمله Prompt Injection، روی یک سرویس ایمیل مبتنی بر هوش مصنوعی هستش.
🔥6
Forwarded from انجمن های علمی دانشگاه حکیم سبزواری (Amirmohamad)
مدیریت فرهنگی و اجتماعی برگزار می کند:
جشنی بزرگ به مناسبت بزرگترین شب سال، شب یلدا 🍉🌠🎉🎇🎆
با اجرای
♦️خواننده کشوری: محسن میرزازاده
♦️مجری توانمند: احسان ابراهیمی
🔴اجرای موسیقی
🟢عکاسی با تم یلدا
🔴دوبله بهصورت زنده
🟢مسابقات مهیج و ....
🕡زمان: یکشنبه 25 آذرماه ساعت ۱۸:٣٠
📍مکان: سالن شهید آیت الله رئیسی
💰بها بلیط: 20 هزار تومان
✅ درآمد حاصل از بلیط فروشی صرف دانشجویان بی بضاعت و انجمن خیره خواهد شد.
مکان و زمان تهیه بلیط: تلویزیون شهری بین دانشکده علوم انسانی و علوم پایه شنبه ساعت 12 ظهر.
#جشن_بزرگ_دانشجویی
#شب_یلدا
🌐 انتشار آخرین اخبار، رویدادها و برنامههای انجمنهای علمی دانشگاه حکیم سبزواری:
@SA_hsu
جشنی بزرگ به مناسبت بزرگترین شب سال، شب یلدا 🍉🌠🎉🎇🎆
با اجرای
♦️خواننده کشوری: محسن میرزازاده
♦️مجری توانمند: احسان ابراهیمی
🔴اجرای موسیقی
🟢عکاسی با تم یلدا
🔴دوبله بهصورت زنده
🟢مسابقات مهیج و ....
🕡زمان: یکشنبه 25 آذرماه ساعت ۱۸:٣٠
📍مکان: سالن شهید آیت الله رئیسی
💰بها بلیط: 20 هزار تومان
✅ درآمد حاصل از بلیط فروشی صرف دانشجویان بی بضاعت و انجمن خیره خواهد شد.
مکان و زمان تهیه بلیط: تلویزیون شهری بین دانشکده علوم انسانی و علوم پایه شنبه ساعت 12 ظهر.
#جشن_بزرگ_دانشجویی
#شب_یلدا
🌐 انتشار آخرین اخبار، رویدادها و برنامههای انجمنهای علمی دانشگاه حکیم سبزواری:
@SA_hsu
👍3
🌟 نگاهی به تاریخچه جذاب JavaScript
✨ زمانی که اینترنت تازه اختراع شده بود، تنها دو مرورگر در جهان وجود داشت و وبسایتها بسیار ساده، بدون استایل یا انیمیشن بودند. توسعهدهندهها آرزو داشتند که وبسایتهای جذابتری بسازند.
📅 سال 1995
مرورگر برجسته آن زمان، Netscape Navigator، تصمیم گرفت این مشکل را حل کند. برای همین، فردی به نام Brendan Eich را استخدام کرد تا در 10 روز 🤯 یک زبان جدید بسازد.
این زبان ابتدا Mocha نام داشت و هرچند نسخه اولیه بود، اما بسیاری از مفاهیم پایهای JavaScript امروزی را داشت!
📌 سال 1996
اسم این زبان از Mocha به JavaScript تغییر کرد. اما برخلاف تصور، JavaScript نسخه کوچکی از جاوا نیست! این نامگذاری صرفاً یک تصمیم بازاریابی بود تا توجه برنامهنویسان را جلب کند، چون آن زمان جاوا زبان محبوبی بود.
👀 جاوا و جاوااسکریپت چه ارتباطی دارند؟
هیچ! این دو زبان کاملاً متفاوتاند و اشتراکشان فقط در اسم است.
📅 همان سال (1996)
مایکروسافت با مرورگر Internet Explorer وارد رقابت شد و نسخهای از JavaScript را کپی کرد. اما چون نمیتوانست از اسم JavaScript استفاده کند، نام آن را JScript گذاشت.
📅 سال 1997
اولین استاندارد JavaScript با نام ES1 معرفی شد. از آن زمان، این زبان به طور مداوم بهروزرسانی شده است.
🏅 ES6: نقطه عطف JavaScript
در سال 2015، نسخه ES6 منتشر شد که یکی از بزرگترین بهروزرسانیهای JavaScript بود و ویژگیهای مدرن زیادی به این زبان اضافه کرد.
🕒 از آن زمان تاکنون
تصمیم بر این شد که بهجای تغییرات بزرگ هر چند سال یکبار، JavaScript هر سال آپدیت شود تا همیشه بهروز بماند.
#JavaScript
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
✨ زمانی که اینترنت تازه اختراع شده بود، تنها دو مرورگر در جهان وجود داشت و وبسایتها بسیار ساده، بدون استایل یا انیمیشن بودند. توسعهدهندهها آرزو داشتند که وبسایتهای جذابتری بسازند.
📅 سال 1995
مرورگر برجسته آن زمان، Netscape Navigator، تصمیم گرفت این مشکل را حل کند. برای همین، فردی به نام Brendan Eich را استخدام کرد تا در 10 روز 🤯 یک زبان جدید بسازد.
این زبان ابتدا Mocha نام داشت و هرچند نسخه اولیه بود، اما بسیاری از مفاهیم پایهای JavaScript امروزی را داشت!
📌 سال 1996
اسم این زبان از Mocha به JavaScript تغییر کرد. اما برخلاف تصور، JavaScript نسخه کوچکی از جاوا نیست! این نامگذاری صرفاً یک تصمیم بازاریابی بود تا توجه برنامهنویسان را جلب کند، چون آن زمان جاوا زبان محبوبی بود.
👀 جاوا و جاوااسکریپت چه ارتباطی دارند؟
هیچ! این دو زبان کاملاً متفاوتاند و اشتراکشان فقط در اسم است.
📅 همان سال (1996)
مایکروسافت با مرورگر Internet Explorer وارد رقابت شد و نسخهای از JavaScript را کپی کرد. اما چون نمیتوانست از اسم JavaScript استفاده کند، نام آن را JScript گذاشت.
📅 سال 1997
اولین استاندارد JavaScript با نام ES1 معرفی شد. از آن زمان، این زبان به طور مداوم بهروزرسانی شده است.
🏅 ES6: نقطه عطف JavaScript
در سال 2015، نسخه ES6 منتشر شد که یکی از بزرگترین بهروزرسانیهای JavaScript بود و ویژگیهای مدرن زیادی به این زبان اضافه کرد.
🕒 از آن زمان تاکنون
تصمیم بر این شد که بهجای تغییرات بزرگ هر چند سال یکبار، JavaScript هر سال آپدیت شود تا همیشه بهروز بماند.
#JavaScript
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
🔥3
کدام گزینه مثالی از Firewall نیست؟
Final Results
5%
در ورود و خروج ساختمان
50%
پلاک منازل یک خیابان
29%
انباردار
16%
ایست بازرسی فرودگاه
🔥5
"سلام، کلیه کلاسها تا پایان هفته مجازی است.
امتحان میانترم و کلاس درس مبانی کامپیوتر ورودی ۱۴۰۳ در روز سهشنبه برگزار نمیشود.
بیزحمت به اطلاع دانشجویان برسانید."
دکتر جعفر زاده
امتحان میانترم و کلاس درس مبانی کامپیوتر ورودی ۱۴۰۳ در روز سهشنبه برگزار نمیشود.
بیزحمت به اطلاع دانشجویان برسانید."
دکتر جعفر زاده
🙏6👍1
فایروال (Firewall) یک ابزار امنیتی است که مانند یک دربان عمل میکند و ترافیک ورودی و خروجی شبکه را بررسی میکند تا تنها ترافیک مجاز عبور کند. حالا بیایید مثالها را بررسی کنیم:
در ورود و خروج ساختمان: مثل فایروال رفتار میکند و فقط افراد مجاز را عبور میدهد.
ایست بازرسی فرودگاه: مشابه فایروال است که بررسیهای امنیتی انجام میدهد.
انباردار: این هم شبیه فایروال عمل میکند؛ چرا که بر ورود و خروج کالا نظارت دارد.
پلاک منازل یک خیابان: این گزینه مثال درستی از فایروال نیست. پلاکها تنها مشخصکننده مکان هستند و وظیفهای در محدود کردن یا نظارت بر عبور و مرور ندارند.
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
در ورود و خروج ساختمان: مثل فایروال رفتار میکند و فقط افراد مجاز را عبور میدهد.
ایست بازرسی فرودگاه: مشابه فایروال است که بررسیهای امنیتی انجام میدهد.
انباردار: این هم شبیه فایروال عمل میکند؛ چرا که بر ورود و خروج کالا نظارت دارد.
پلاک منازل یک خیابان: این گزینه مثال درستی از فایروال نیست. پلاکها تنها مشخصکننده مکان هستند و وظیفهای در محدود کردن یا نظارت بر عبور و مرور ندارند.
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
❤4
📢 بلاکچین چیست؟
بلاکچین (Blockchain) یک دفتر کل دیجیتال توزیعشده است که برای ثبت تراکنشها استفاده میشود. این فناوری دادهها را به صورت زنجیرهای از بلوکها ذخیره میکند که هر بلوک شامل اطلاعاتی دربارهی تراکنشها و یک شناسهی منحصربهفرد (هش) است.
⛓️ ویژگیهای اصلی بلاکچین:
1️⃣ توزیعشده: دادهها در میان تمام اعضای شبکه ذخیره میشود، پس هیچ مرکزیتی ندارد.
2️⃣ شفاف: همه اعضای شبکه میتوانند به اطلاعات ذخیرهشده دسترسی داشته باشند.
3️⃣ غیرقابل تغییر: اطلاعات ثبتشده پس از تایید در بلاکچین، دیگر قابل حذف یا تغییر نیست.
🔐 امنیت بلاکچین:
هر بلوک به بلوک قبلی متصل است و برای تغییر دادهها باید کل زنجیره تغییر کند، که تقریباً غیرممکن است!
کاربردها:
💰 ارزهای دیجیتال مثل بیتکوین
📜 قراردادهای هوشمند
🏥 مدیریت اطلاعات پزشکی
📦 زنجیره تأمین
بلاکچین فقط مخصوص ارزهای دیجیتال نیست؛ بلکه یک انقلاب در ذخیره و مدیریت اطلاعات محسوب میشود! 🌟
#بلاکچین
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
بلاکچین (Blockchain) یک دفتر کل دیجیتال توزیعشده است که برای ثبت تراکنشها استفاده میشود. این فناوری دادهها را به صورت زنجیرهای از بلوکها ذخیره میکند که هر بلوک شامل اطلاعاتی دربارهی تراکنشها و یک شناسهی منحصربهفرد (هش) است.
⛓️ ویژگیهای اصلی بلاکچین:
1️⃣ توزیعشده: دادهها در میان تمام اعضای شبکه ذخیره میشود، پس هیچ مرکزیتی ندارد.
2️⃣ شفاف: همه اعضای شبکه میتوانند به اطلاعات ذخیرهشده دسترسی داشته باشند.
3️⃣ غیرقابل تغییر: اطلاعات ثبتشده پس از تایید در بلاکچین، دیگر قابل حذف یا تغییر نیست.
🔐 امنیت بلاکچین:
هر بلوک به بلوک قبلی متصل است و برای تغییر دادهها باید کل زنجیره تغییر کند، که تقریباً غیرممکن است!
کاربردها:
💰 ارزهای دیجیتال مثل بیتکوین
📜 قراردادهای هوشمند
🏥 مدیریت اطلاعات پزشکی
📦 زنجیره تأمین
بلاکچین فقط مخصوص ارزهای دیجیتال نیست؛ بلکه یک انقلاب در ذخیره و مدیریت اطلاعات محسوب میشود! 🌟
#بلاکچین
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
👍6👎1
🤖 تفاوت هوش مصنوعی و برنامهنویسی
🧠 هوش مصنوعی (AI):
یعنی ساخت ماشینهایی که میتوانند یاد بگیرند، فکر کنند و تصمیم بگیرند. برخلاف برنامهنویسی سنتی، هوش مصنوعی به کمک الگوریتمهایی مثل یادگیری ماشین و یادگیری عمیق، از دادهها استفاده میکند تا عملکرد خود را بهبود دهد.
🔍 مثال: رباتی که صدای شما را تشخیص میدهد و به سوالاتتان پاسخ میدهد.
💻 برنامهنویسی:
برنامهنویسی یعنی نوشتن دستورات دقیق برای کامپیوتر. در این روش، ماشین فقط همان کاری را انجام میدهد که شما به آن گفتهاید. هیچ یادگیری یا تغییر خودکار در رفتار وجود ندارد.
🔍 مثال: یک ماشینحساب که عملیات ریاضی را بر اساس دستورات شما اجرا میکند.
✨ تفاوت اصلی:
هوش مصنوعی: یاد میگیرد و رفتار خود را بهبود میدهد.
برنامهنویسی: فقط دستورات ثابت و از پیش تعیینشده را اجرا میکند.
📌 خلاصه:
هوش مصنوعی یک سطح بالاتر از برنامهنویسی است؛ چیزی شبیه به ذهنی که میتواند فکر کند، نه فقط انجام دهد!
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
🧠 هوش مصنوعی (AI):
یعنی ساخت ماشینهایی که میتوانند یاد بگیرند، فکر کنند و تصمیم بگیرند. برخلاف برنامهنویسی سنتی، هوش مصنوعی به کمک الگوریتمهایی مثل یادگیری ماشین و یادگیری عمیق، از دادهها استفاده میکند تا عملکرد خود را بهبود دهد.
🔍 مثال: رباتی که صدای شما را تشخیص میدهد و به سوالاتتان پاسخ میدهد.
💻 برنامهنویسی:
برنامهنویسی یعنی نوشتن دستورات دقیق برای کامپیوتر. در این روش، ماشین فقط همان کاری را انجام میدهد که شما به آن گفتهاید. هیچ یادگیری یا تغییر خودکار در رفتار وجود ندارد.
🔍 مثال: یک ماشینحساب که عملیات ریاضی را بر اساس دستورات شما اجرا میکند.
✨ تفاوت اصلی:
هوش مصنوعی: یاد میگیرد و رفتار خود را بهبود میدهد.
برنامهنویسی: فقط دستورات ثابت و از پیش تعیینشده را اجرا میکند.
📌 خلاصه:
هوش مصنوعی یک سطح بالاتر از برنامهنویسی است؛ چیزی شبیه به ذهنی که میتواند فکر کند، نه فقط انجام دهد!
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
❤4
Forwarded from مسابقه نقشه گنج:اسرار پنهان
انجمن علمی علوم کامپیوتر با همکاری کانون بازی و سرگرمی تقدیم میکند:
مسابقه نقشه گنج : اسرار پنهان (هفته سوم) 🗺🏴☠
🥇جایزه نفر اول:۲۰ میلیون ریال
آشنایی با مسابقه و قوانین
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
کانون بازی و سرگرمی
🆔 @game_hsu
مسابقه نقشه گنج : اسرار پنهان (هفته سوم) 🗺🏴☠
🥇جایزه نفر اول:۲۰ میلیون ریال
آشنایی با مسابقه و قوانین
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
کانون بازی و سرگرمی
🆔 @game_hsu
🔥3👍1
با بن گودگر آشنا شوید 🔥
بن گودگر (Ben Goodger) یک توسعهدهنده نرمافزار نیوزلندی است که نقش کلیدی در تولد و پیشرفت مرورگر Mozilla Firefox داشت. در اوایل دهه 2000، زمانی که اینترنت به مرورگرهای سنگین و ناکارآمد مانند Internet Explorer محدود شده بود، گودگر با تیم موزیلا دست به کار شد تا مرورگری سریع، سبک و متنباز طراحی کند.
او رهبری تیم توسعه Firefox را بر عهده داشت و ویژگیهایی نظیر زبانهبندی (tabs) و افزونهها (extensions) را به یک استاندارد جدید در تجربه مرورگرهای وب تبدیل کرد. جذابیت کار او در این است که در یک بازار کاملاً تحت سلطه، توانست یک محصول کاملاً متنباز و مردمی خلق کند که امروزه هنوز هم الهامبخش بسیاری از نوآوریهای دیجیتال است.
#programmer
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
بن گودگر (Ben Goodger) یک توسعهدهنده نرمافزار نیوزلندی است که نقش کلیدی در تولد و پیشرفت مرورگر Mozilla Firefox داشت. در اوایل دهه 2000، زمانی که اینترنت به مرورگرهای سنگین و ناکارآمد مانند Internet Explorer محدود شده بود، گودگر با تیم موزیلا دست به کار شد تا مرورگری سریع، سبک و متنباز طراحی کند.
او رهبری تیم توسعه Firefox را بر عهده داشت و ویژگیهایی نظیر زبانهبندی (tabs) و افزونهها (extensions) را به یک استاندارد جدید در تجربه مرورگرهای وب تبدیل کرد. جذابیت کار او در این است که در یک بازار کاملاً تحت سلطه، توانست یک محصول کاملاً متنباز و مردمی خلق کند که امروزه هنوز هم الهامبخش بسیاری از نوآوریهای دیجیتال است.
#programmer
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
❤7👏1
SOLID Principles یا اصول سالید، یه سری قانونه که اگه رعایت کنیم، کدامون رو بهتر و تمیزتر مینویسیم. این قوانین رو یه مهندس نرمافزار به اسم رابرت سی مارتین(Robert Cecil Martin ملقب به Uncle Bob) در سال ۲۰۰۰ ارائه داده و بعدا یه دولوپر دیگه به اسم مایکل فیدرز(Michael Feathers) در سال ۲۰۰۴ از حروف اولشون کلمه سالید رو درست کرد.
SOLID مخفف این اصول هستش:
Single-responsibility: یعنی هر کلاس یا هر تابع فقط باید یه کار کنه و چند مسئولیت نداشته باشه، برای تغییرش هم فقط یه دلیل وجود داشته باشه.
Open-closed: یعنی هر کلاس یا هر تابع باید برای اضافه کردن قابلیتهای جدید باز و آزاد باشه، ولی برای تغییر دادن کارایی فعلی بسته و محدود باشه.
Liskov substitution: یعنی هر جا که از یه کلاس پدر استفاده میکنیم، باید بتونیم از هر کلاس فرزندی که ازش مشتق شده هم استفاده کنیم، بدون اینکه مشکلی پیش بیاد.
Interface segregation: یعنی هر کلاس یا هر تابع، نباید به چیزی بیشتر از اون متدها یا اون پارامترهایی که نیاز داره وابستگی داشته باشه.
Dependency inversion: یعنی هر کلاس یا هر تابع باید به شکل انتزاعی تعریف بشه، نه با جزئیات کامل.
این اصول باعث میشن که کدامون قابل فهمتر، انعطافپذیرتر و با نگهداریِ راحتتر بشن و میتونن به ما کمک کنن که از بینظمی و تکرار کد و در نتیجه یه فاجعهٔ بزرگ جلوگیری کنیم.
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
SOLID مخفف این اصول هستش:
Single-responsibility: یعنی هر کلاس یا هر تابع فقط باید یه کار کنه و چند مسئولیت نداشته باشه، برای تغییرش هم فقط یه دلیل وجود داشته باشه.
Open-closed: یعنی هر کلاس یا هر تابع باید برای اضافه کردن قابلیتهای جدید باز و آزاد باشه، ولی برای تغییر دادن کارایی فعلی بسته و محدود باشه.
Liskov substitution: یعنی هر جا که از یه کلاس پدر استفاده میکنیم، باید بتونیم از هر کلاس فرزندی که ازش مشتق شده هم استفاده کنیم، بدون اینکه مشکلی پیش بیاد.
Interface segregation: یعنی هر کلاس یا هر تابع، نباید به چیزی بیشتر از اون متدها یا اون پارامترهایی که نیاز داره وابستگی داشته باشه.
Dependency inversion: یعنی هر کلاس یا هر تابع باید به شکل انتزاعی تعریف بشه، نه با جزئیات کامل.
این اصول باعث میشن که کدامون قابل فهمتر، انعطافپذیرتر و با نگهداریِ راحتتر بشن و میتونن به ما کمک کنن که از بینظمی و تکرار کد و در نتیجه یه فاجعهٔ بزرگ جلوگیری کنیم.
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
👍4
✅ حتما شنیدید که میگن جاوااسکریپت تک رشته ای (Single-threaded) است. یعنی چی؟
🌀 یعنی جاوااسکریپت فقط میتونه یک کار رو در یک زمان انجام بده. مثل این میمونه که یه نفر باشه که فقط یه کار رو میتونه انجام بده و باید کارها رو یکی یکی انجام بده.
📝 اما یه نکته جالب اینه که جاوااسکریپت با استفاده از چیزی به نام Event Loop (حلقه رویداد) میتونه به نظر برسه که همزمان چند کار رو انجام میده.
🧐 مثلاً فرض کن داری یه برنامه مینویسی که همزمان باید یه تایمر رو نشون بده و یه درخواست به سرور بفرسته. جاوااسکریپت این کار رو با استفاده از صف وظایف (Task Queue) و حلقه رویداد مدیریت میکنه.
به زبان ساده، جاوااسکریپت کارها رو توی صف میذاره و یکی یکی انجامشون میده، ولی چون خیلی سریع این کار رو میکنه، به نظر میرسه که همزمان داره چند کار رو انجام میده.
#JavaScript
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
🌀 یعنی جاوااسکریپت فقط میتونه یک کار رو در یک زمان انجام بده. مثل این میمونه که یه نفر باشه که فقط یه کار رو میتونه انجام بده و باید کارها رو یکی یکی انجام بده.
📝 اما یه نکته جالب اینه که جاوااسکریپت با استفاده از چیزی به نام Event Loop (حلقه رویداد) میتونه به نظر برسه که همزمان چند کار رو انجام میده.
🧐 مثلاً فرض کن داری یه برنامه مینویسی که همزمان باید یه تایمر رو نشون بده و یه درخواست به سرور بفرسته. جاوااسکریپت این کار رو با استفاده از صف وظایف (Task Queue) و حلقه رویداد مدیریت میکنه.
به زبان ساده، جاوااسکریپت کارها رو توی صف میذاره و یکی یکی انجامشون میده، ولی چون خیلی سریع این کار رو میکنه، به نظر میرسه که همزمان داره چند کار رو انجام میده.
#JavaScript
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
👍4❤3
شب یلدا را بر همه دانشجویان گرامی تبریک میگوییم
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
دست به مهره پیشرفت... 💻
انجمن علمی علـوم کامـپـیوتر
🆔 @HSU_CS
❤8