Syntax | سینتکس
الذهاب إلى القناة على Telegram
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
إظهار المزيد3 262
المشتركون
+224 ساعات
+77 أيام
-330 أيام
أرشيف المشاركات
3 261
فرض کنید کارفرما هستید: کدام نمونه یا نمونهها را برای یک سایت تیمی فریلنسری ترجیح میدهید؟
3 261
از نظر شما، چه نوع رنگبندی برای یک سایت برنامهنویسی و طراحی وب مناسبتر است؟
3 261
اگر تا اینجا در نظرسنجی شرکت کردهاید از شما متشکریم!😇
این سوالات مربوط به بخش عمومی نظرسنجی بودند. دقایقی دیگر سوالات اصلی نظرسنجی منتشر میشود. حتما به آنها نیز پاسخ دهید.
@Syntax_fa
3 261
ویژگیهای کارفرمایانی که با آنها کار کردهاید چه بوده است؟ (چند گزینه قابل انتخاب است)
3 261
⚡️ درود خدمت همهی دوستان سینتکسی!
در چند ساعت آینده، چندین نظرسنجی در کانال منتشر میشود. در این نظرسنجی سوالاتی بیشتر در زمینه تجارب شما برنامهنویسان مطرح خواهد شد؛ بنابراین لطفا در پاسخ به سوالات صادق باشید. همچنین حتی اگر به یکی از سوالات هم پاسخ دادهاید، باید به تمام سوالات دیگر نیز پاسخ دهید.
برخی سوالات نیاز به پاسخ متنی و نوشته شده دارند بنابراین اگر چنین سوالی را دید، در کامنتهای مربوط به آن سوال پاسخ دهید.
#news
@Syntax_fa
3 261
خبر دارین که میتونین با js به اس ام اس OTP دسترسی پیدا کنید دیگه ؟
اینو فکنم 6 ماه پیش بهش بر خوردم و دارم الان پستشو میسازم
توی خیلی از PWA هایی که توسعه دادم سعی میکردم که شبیه به native اپ ها بشن و این حس خوبی بهم میداد
ولی وقتی به قسمت OTP میرسید قشنگ میخورد تو ذوقم
به دنبال راهی بودم که بتونم OTP SMS رو بخونم ولی Js و Browser چنین امکانی رو بهم نمیداد
اما پس از سرچ بسیار متوجه شدم که Chrome ای پی ای جدیدی ارائه داده به اسم WebOTP API /Web Auth Api
که به شما تحت شرایطی اجازه میده با استفاده از js و این API به پیام OTP دسترسی پیدا کنید و کد رو بخونید و دیگه کاربر مجبور نباشه که بره پیام رو بخونه کد رو حفظ کنه و بیاد وارد کنه
و شاید باورتون نشه خیلی حرکت خفن و کولی میباشد این حرکت 😁
لینک پیاده سازی و استفاده ازش:
https://developer.chrome.com/docs/identity/web-apis/web-otp
Source:
Link
#note
@Syntax_fa
3 261
تحلیل BSOD پتچ امنیتی CrowdStrike
مشکل اصلی که در نرمافزار CrowdStrike رخ داد، به دلیل دسترسی نادرست به حافظه از طریق یک اشارهگر تهی (NULL pointer) در زبان برنامهنویسی C++ بود. حافظه در کامپیوتر به صورت یک آرایه بزرگ از اعداد سازماندهی شده است. اگر برنامهای تلاش کند به یک آدرس حافظه نامعتبر دسترسی پیدا کند، سیستمعامل بلافاصله برنامه را متوقف میکند و این موضوع منجر به خرابی سیستم میشود.
در این حالت خاص، برنامه سعی کرد به آدرس حافظه 0x9c (که معادل 156 در مبنای 10 است) دسترسی پیدا کند. این آدرس حافظه نامعتبر است و دسترسی به آن باعث میشود که سیستمعامل برنامه را متوقف کند. این مسئله به دلیل عدم بررسی اشارهگر تهی توسط برنامهنویس اتفاق افتاد.
برای مثال:
struct Obj {
int a;
int b;
};
Obj* obj = NULL;
print(obj->a);
در این مثال، اشارهگر obj تهی (NULL) است. هنگامی که برنامه سعی میکند به عضو a از شیء obj دسترسی پیدا کند، به دلیل تهی بودن اشارهگر، به یک آدرس نامعتبر دسترسی پیدا میکند و باعث خرابی برنامه میشود.
این مشکل بهخصوص خطرناک بود زیرا در یک درایور سیستمی رخ داد. درایورهای سیستمی دسترسیهای سطح بالایی به منابع سیستم دارند و خرابی در این درایورها میتواند منجر به توقف کل سیستمعامل و نمایش صفحه آبی مرگ (BSOD) شود.
برای جلوگیری از چنین مشکلاتی، برنامهنویسان باید همیشه قبل از دسترسی به اشارهگرها، آنها را بررسی کنند. استفاده از زبانهای برنامهنویسی مدرن مانند Rust که از دسترسیهای نادرست به حافظه جلوگیری میکنند، میتواند به کاهش این خطرات کمک کند.
Source:
@GoInsights
#note
@Syntax_fa3 261
👑 این فرصت طلایی رو برای برنامه نویس خفن شدن توی بک اند رو از دست ندید👇👇🔥
🔹آموزش نکات مهم و کلیدی در زبان برنامه نویسی گولنگ
🔹 نکات مهم طلایی در مصاحبه فنی و لایو کد ها
🔹مقالات بروز در زمینه گولنگ
🔹مقالات جدید در مورد اصول مهندسی نرم افزار , سیستم دیزاین , انواع دیتابیس ها و ابزارهای رایج برای بک اند کارها
در کانال گوفر آکادمی👇👇
➖➖➖➖➖➖➖➖
🕊 @gopher_academy
3 261
البته یه نکته رو اضافه کنم:
توی گولنگ ما میتونیم از atomic operation استفاده کنیم.
یک تایپ integer بسازیم که تو سطح پایین(سی پی یو) تضمین میکنه که race condition رخ نمیده
الان مقاله مرتبط باهاشو میفرستم
3 261
+1
تفاوتهای Go و Rust در مدیریت Race Condition
فرض کنید برنامهای می نویسید که چندین ترد یا پروسس به طور همزمان در حال اجرا هستند. این ترد ها ممکن است به داده های مشترکی دسترسی داشته باشند و آنها را بروزرسانی کنند. حال اگر این دسترسی و بهروزرسانی بدون کنترل و نظم انجام شود، به طوری که ترتیب دقیق دسترسی و بهروزرسانی داده ها توسط ترد ها مشخص نباشد، شرایط رقابتی (Race Condition) رخ می دهد. در این مثال، متغیر counter به عنوان یک شمارنده استفاده می شود. 10 تابع به طور همزمان مقدار counter را با استفاده از تابع increment افزایش می دهند.
در Rust با وجود اینکه ما با چندین ترد به شمارنده دسترسی داریم، سیستم مالکیت Rust تضمین میکند که فقط یک ترد میتواند همزمان شمارنده را بهصورت تغییرپذیر یا میوتیبل در اختیار بگیرد و با قطعیت میتوان گفت که عدد ۱۰ چاپ خواهد شد. در Go با استفاده از یک اشاره گر مستقیماً به متغیر شمارنده دسترسی داریم. این یک Race Condition بالقوه ایجاد می کند زیرا چندین گوروتین می توانند همزمان آن را تغییر دهند. مقدار نهایی شمارنده بسته به اینکه کدام گوروتین در مسابقه برای دسترسی به آن "برنده" شود، می تواند غیرقابل پیش بینی باشد. ** البته که در Go هم با مکانیزمهای میشه جلوش رو گرفت ولی بهرحال نبود race condition در زبان راست چیز باحالیه
https://www.linkedin.com/posts/hemanhosseinpana_rust-go-golang-activity-7220074271119736833-26sk?utm_source=share&utm_medium=member_android
3 261
تستر اول:
من توی دو ساعت پنج تا باگ پیدا کردم 😃
برنامه نویسا:
چی؟ به چه جراتی باگ پیدا کردی؟😠
میزنیم دهنشو سرویس میکنیم 🙁😟
تستر دوم و QA:
منو تو نفر بعدی هستیم
تو پونزده تا باگ پیدا کردی و من بیستو پنج تااا 😥😥😔
#fun
@Syntax_fa
3 261
یک تمرین کاربردی برای کار با فایل و اپلیکیشن های تحت خط فرمان
سیستم مدیریت کتابخانه شخصی
امکانات پروژه:
افزودن کتاب جدید:
کاربران میتوانند کتابهای جدیدی با عنوان، نویسنده، سال انتشار و ژانر اضافه کنند.
اطلاعات کتابها فقط در فایل متنی (txt یا csv و ..) ذخیره میشود.
مشاهده لیست کتابها:
کاربران میتوانند لیستی از همه کتابهای موجود را مشاهده کنند.
نمایش اطلاعات کتابها شامل عنوان، نویسنده، سال انتشار و ژانر.
ویرایش اطلاعات کتابها:
کاربران میتوانند اطلاعات کتابهای موجود را ویرایش کنند.
انتخاب کتاب بر اساس شناسه یا عنوان و ویرایش جزئیات مانند عنوان، نویسنده، سال انتشار و ژانر.
حذف کتابها:
کاربران میتوانند کتابها را از سیستم حذف کنند.
انتخاب کتاب بر اساس شناسه یا عنوان و حذف آن از فایل ذخیرهسازی.
جستجوی کتابها:
امکان جستجوی کتابها بر اساس عنوان، نویسنده، سال انتشار یا ژانر.
نمایش نتایج جستجو به کاربر.
علامتگذاری کتابها به عنوان خوانده شده/نشده:
کاربران میتوانند وضعیت کتابها را به عنوان خوانده شده یا نشده علامتگذاری کنند.
امکان فیلتر کردن کتابها بر اساس وضعیت خوانده شده یا نشده.
نیازمندیهای پروژه:
ساختار فایل:
استفاده فقط از فایل txt و csv و ... برای ذخیره اطلاعات کتابها.
هر کتاب شامل فیلدهای عنوان، نویسنده، سال انتشار، ژانر و وضعیت خوانده شده.
رابط کاربری CLI:
پیادهسازی دستورات مختلف برای افزودن، مشاهده، ویرایش، حذف و جستجوی کتابها.
ارائه منوی انتخاب به کاربر برای اجرای دستورات.
مدیریت ورودی و خروجی فایل:
خواندن و نوشتن اطلاعات کتابها به/از فایل.
اطمینان از حفظ اطلاعات موجود در فایل و جلوگیری از از دست رفتن دادهها.
این پروژه به کاربران اجازه میدهد تا کتابهای خود را به راحتی مدیریت کنند و یک سیستم کامل برای مدیریت کتابخانه شخصی خود داشته باشند.
(اگه نوشتید به اشتراک بذارید تا با هم بررسیش کنیم و اشکالاتش رو رفع کنیم )
#exercise
@Syntax_fa
