Code Module | کد ماژول
1.91K subscribers
357 photos
42 videos
6 files
355 links
Hello World 🌎

<> Earth is programmable if you code it </>

Group 👇🏻
@CodeModuleGap

Contact Us 👇🏻
@MrShahiin
@neoMahan
Download Telegram
چی بگم والا 😔

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23
با Keystone.js نگران CMS ساختن نباش! 👽

‏Keystone.js یک فریمورک اوپن سورس پیشرفته هست، که برای ساخت اپلیکیشن های کاربردی و مقیاس پذیر طراحی شده، به ویژه اون هایی که به content management system (CMS) نیاز دارن. Keystone.js مجموعه ای جامع از ابزارها و ویژگی هایی ارائه میده، که فرآیند توسعه رو ساده میکنه و اون رو به یک دارایی ارزشمند برای دولوپر هایی تبدیل میکنه، که قصد ساختن برنامه های کاربردی رو دارن.

‏Keystone.js چه ویژگی های داره؟ 🤔

1⃣سیستم های مدیریت محتوا (CMS): Keystone.js در ساخت CMS، به دلیل مدیریت قدرتمند و قابلیت های مدل سازی داده های انعطاف پذیر، برتره. این به دولوپر ها این امکان رو میده که انواع محتوای مناسب بسازن، روابط بین داده های مختلف رو مدیریت کنن، و گردش های کاری پیچیده رو پیاده سازی کنن، که اون رو به یک انتخاب ایده آل برای شرکت هایی تبدیل میکنه که به راه حل های مدیریت محتوای سفارشی نیاز دارن.

2⃣ E-commerce Platforms: با توانایی مدیریت حجم زیادی از داده ها و روابط پیچیده، Keystone.js برای توسعه E-commerce Platform مناسب هست، و از مدیریت کاتالوگ محصول، پردازش سفارش و... پشتیبانی میکنه.

3⃣وب اپلیکیشن ها: Keystone.js به CMS یا E-commerce محدود نمیشه. به همان اندازه در تامین انرژی طیف گسترده ای از برنامه های کاربردی وب ماهر هست. از سایت‌های شبکه‌های اجتماعی گرفته، تا برنامه‌های چت real-time و...، که زیر ساخت‌های ضروری مورد نیاز برای ساخت وب اپلیکیشن ها با ویژگی‌های مختلف رو فراهم میکنه.

در نتیجه Keystone.js به عنوان یک فریمورک قدرتمند و همه کاره شناخته میشه که طیف گسترده ای از نیازهای توسعه وب رو برطرف میکنه. با استفاده از Keystone.js، دولوپر ها میتونن برنامه‌های کاربردی با کارایی بالا، مقیاس‌پذیر و قابل نگهداری رو بسازن. برای کسب اطلاعات بیشتر به داکیومنتش مراجعه کنید.

#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3
5 وبسایت خفن که بهت لودینگ های خیره‌کننده css تحویل میدن!! 🔵

1⃣freefrontend-css-loaders

2⃣loading.io

3⃣spinkit

4⃣preloaders

5⃣css-loaders

#loading #css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103❤‍🔥2👌1
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔵 Link

#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥4
جای هواپیما، جعبه سیاه رو تو برنامه نویسی قرار بده و بساز 🐣

تست جعبه سیاه که به عنوان تست Behavioral نیز شناخته میشه، روشی برای تست نرم‌افزاری هست که عملکرد یک برنامه کاربردی رو بدون بررسی ساختارهای داخلی یا عملکردش بررسی میکنه. این تکنیک شامل تست نرم افزار در برابر مشخصات و الزامات اون هست. هدف اصلیش اینه که اطمینان حاصل کنه که نرم افزار همونطور که از دیدگاه کاربر نهایی انتظار میره، رفتار میکنه.

نحوه اجرای این تست به چه صورته؟ 🤔

1⃣تشخیص الزامات آزمون

- تمام الزامات کاربردی، داستان های کاربر و معیارهای پذیرش رو جمع آوری کنید.
- رفتار مورد انتظار نرم افزار رو درک کنین.

2⃣تعریف موارد تست

‏- test cases دقیق رو بر اساس الزامات ایجاد کنین.
- هر مورد آزمون باید شرایط ورودی و نتایج مورد انتظار رو مشخص کنه.
- از پوشش تمام سناریوهای ورودی احتمالی، از جمله موارد edge اطمینان حاصل کنین.

3⃣اطلاعات تست رو آماده کنید

- توسعه یا به دست آوردن داده های مورد نیاز برای انجام موارد آزمایشی.
- مطمئن بشید که داده‌های آزمایشی همه سناریوهای ورودی ممکن، از جمله شرایط معتبر، نامعتبر و مرزی رو پوشش میدن.

4⃣اجرای موارد تست

‏- test cases رو با استفاده از داده های تست آماده شده، اجرا کنید.
- در صورت امکان از ابزارهای تست خودکار برای افزایش کارایی و تکرارپذیری استفاده کنید.

5⃣ثبت نتایج

- نتایج اجرای هر تست رو مستند کنین.
- به هر گونه اختلاف بین نتایج مورد انتظار و واقعی توجه کنین.

6⃣تحلیل نتایج

- هرگونه شکست یا رفتار غیرمنتظره رو بررسی کنید.
- تعیین کنید که آیا اشکالاتی وجود داره یا آیا مشکلاتی در مورد test cases یا داده های تستی وجود داره.

7⃣گزارش یافته ها

- گردآوری گزارشات با جزئیات نتایج تست جعبه سیاه.
- موارد شناسایی شده رو به همراه شدت و تأثیر احتمالی اون بر نرم افزار رو درج کنید.

به صورت کلی تست جعبه سیاه یک تکنیک بسیار مهم برای اطمینان از کیفیت نرم افزاره، زیرا تأیید میکنه که برنامه از دیدگاه کاربر نهایی به درستی عمل میکنه. این روش برای شناسایی اشکالات و بهبود تجربه کلی کاربر ضروری هست، و اون رو به بخش اساسی از هر استراتژی تست تبدیل میکنه. برای کسب اطلاعات بیشتر درمورد این تکنیک، به مقالات زیر مراجعه کنید.
- Article
- Article
- Article

#test
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7👌4🔥2
دیزاین پترن ها در فرانت‌اند 👨‍🚀

بدون شک دیزاین پترن ها باعث بهود سطح و کیفیت کد ما میشن و یادگیریشون، برای هر برنامه نویسی واجبه. سایت patterns.dev یک منبع آموزشی برای یادگیری این الگوهای طراحی هست.

این سایت کلی مثال و نمونه کد برای زبان جاوااسکریپت و تکنولوژی هایی مثل ریکت و ویو داره و مثل آب خوردن، دیزاین پترن هارو میتونید یاد بگیرید.

فعلا اینو داشته باشید تا تک تک بیایم شرحشون بدیم :))


#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥153
تفاوت متدهای Allocation بافر در Node.js 🤟

در Node.js مدیریت کارآمد بافرها، به ویژه هنگام مدیریت داده های باینری بسیار مهمه. متد های «Buffer.alloc()» و «Buffer.allocUnsafe()» برای همین کار در بافر ها کاربرد دارن اما یک سری تفاوت دارن.

🔵Buffer.alloc(): این متد یک بافر با اندازه مشخص رو مقداردهی اولیه میکنه و به صورت دیفالت، اون رو با صفر پر میکنه و با جلوگیری از نشت داده های قبلی، امنیت رو افزایش میده.

🔵Buffer.allocUnsafe(): در مقابل این متد یک بافر رو بدون پاک کردن محتوای اون Allocation میده، و اون رو سریع تر اما به طور بالقوه ناامن به دلیل داده های باقی مونده از Allocation های قبلی میکنه. برای سناریوهایی که در اون بازنویسی فوری محتوای بافر برنامه ریزی شده هست، ایده آله.

درک زمان استفاده از هر متد بسیار مهمه⬇️

- امنیت در مقابل عملکرد: Buffer.alloc امنیت رو با مقداردهی اولیه بافرها در اولویت قرار میده و اون رو برای داده های حساس مناسب میکنه. Buffer.allocUnsafe با اجتناب از مقداردهی اولیه، عملکرد رو اولویت بندی میکنه، اما برای جلوگیری از قرار گرفتن در معرض داده های قدیمی نیاز به مدیریت دقیق داره.

به طور کلی دولوپر ها باید به‌طور دیفالت از «Buffer.alloc()» برای اکثر سناریوها به‌ویژه زمانی که امنیت در اولویت هست، استفاده کنن. «Buffer.allocUnsafe()» میتونه به‌طور عاقلانه برای عملیات حیاتی، مثل عملکرد استفاده بشه، مشروط بر اینکه بافر اختصاص‌یافته به‌سرعت بازنویسی بشه تا خطرات امنیتی کاهش پیدا کنه.

برای کسب اطلاعات بیشتر، به داکیومنت اصلی بافر در Node.js مراجعه کنید.

#nodejs #buffer
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
نه ببین بعدا بازم پروژه میدم بهت 😂😂

#fun
@CodeModule
😁11👌11
22 نکته و ترفند مفید CSS که هر دولوپری باید از اونها مطلع باشه. پیشنهاد میکنم مقاله زیر رو از دست ندید ❗️

♻️Article

#css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥3
با پترن Prototype آشنا بشید! 👽

دیزاین پترن پروتوتایپ، یک پترن creational هست که اشیاء جدید رو با کپی کردن یک شی موجود مشخص میکنه، بنابراین نیازی به ایجاد کلاس‌های جدید نیست. این الگو به ما اجازه میده تا اشیاء موجود رو شبیه سازی کنیم و نمونه های جدیدی رو با همون داده ها ایجاد کنیم. هر تغییری که در شیء شبیه سازی شده ایجاد میشه، بر روی شی اصلی تأثیری نداره. به خصوص زمانی که هزینه ساخت یک شی گرانتر یا پیچیده تر از کپی کردن یک شیء موجود باشد، مفیده.

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

یکی از بهترین راه های موجود برای ساخت یک شی از اشیاء موجود، متد ()clone هست. Clone ساده ترین روش برای اجرای یک الگوی نمونه اولیه هست.

با این مثال میتونید کامل این الگو رو درک کنید. تصور کنید شما یک طراح هستید که مبلمان میسازید.

🔵Prototype (صندلی نمونه): شما با دقت یک صندلی تکی رو با طراحی، مواد و پایان عالی میسازید. این صندلی به "prototype" شما تبدیل میشه - طرحی برای همه صندلی های مبلمان شما.

🔵 Cloning (تولید انبوه): به جای اینکه هر صندلی رو کاملاً از ابتدا بسازید، از prototype استفاده می کنین. یک تیم کارگاه نمونه اولیه رو میگیره و با استفاده از همون مواد و تکنیک های ساخت، کپی های دقیقی رو میسازه. این فرآیند شبیه سازی به طور موثر صندلی های جدیدی رو بر اساس نمونه اولیه ساخته شده تولید میکنه.

🔵 Customization (تغییرها): در حالی که طراحی اصلی از prototype میاد، فضایی برای سفارشی سازی وجود داره. ممکنه نسخه‌های رنگی متفاوتی از صندلی ها بسازین، از پارچه‌های مختلف برای لوازم داخلی استفاده کنین یا حتی اندازه اون رو کمی تنظیم کنید. این تغییرات نشان دهنده مد هست.


به صورت کلی بخوام این پترن رو در یک جمله تعریف کنم، "راهی برای ساخت اشیاء جدید با کپی کردن موارد موجود" میشه. برای کسب اطلاعات بیشتر و مشاهده نمونه کد ها، مقالات زیر رو مطالعه کنید.
- Article
- Article
- Article

#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👌3
توقع داشت چیز دیگه ای بگم؟ 😂

#fun
@CodeModule
😁19
با Minify کم حجم جلو برو 🦦

‏Minify یک پکیج قدرتمند برای ساده کردن کدهای Html ،Css و جاوااسکریپت هست. Minify اندازه فایل‌ها رو کاهش میده و زمان بارگذاری سریع‌تر و تجربه کاربری روان‌تری رو تضمین میکنه. Minify با یکپارچگی ساده و الگوریتم‌های کارآمد، ابزاری هست که جهت بهینه‌سازی استفاده میشه. این پکیج ویژگی های زیادی داره، مانند:

1⃣پشتیبانی از چند فرمت

این ابزار قادر به Minify فایل‌های CSS، JavaScript، HTML، JSON و SVG هست. به این معنا که می‌تونید فایل‌های مختلفی رو با استفاده از این ابزار بهینه‌سازی کنید.

2⃣قابلیت استفاده از خط فرمان

‏minify ابزار خط فرمانی رو هم فراهم می‌کنه که امکان کمینه‌سازی فایل‌ها رو از طریق خط فرمان امکان پذیر میکنه. این ویژگی به دولوپرا اجازه میده تا به طور خودکار و یا در فرآیندهای CI/CD از اون استفاده کنن.

3⃣تنظیمات پیشرفته

این ابزار به شما امکان میده تا تنظیمات پیشرفته‌ای رو برای Minify فایل‌ها اعمال کنید. به عنوان مثال، شما می‌تونید نیازمندی‌های خاص خودتون رو برای فرآیند Minify تعریف کنید.

4⃣نمایش خطاها و اخطارها

در صورت وجود هر گونه خطا یا اخطار در فرآیند Minify، این ابزار به شما گزارش میده و خطاها رو به شما نمایش میده تا بتونید اونها رو برطرف کنید و فایل‌های بهینه‌سازی شده رو به درستی دریافت کنید.

به صورت کلی پکیج Minify یک راه آسون و موثر برای بهینه سازی کد های شما ارائه میده، که منجر به زمان بارگذاری سریع تر و تجربه کاربری بهتر میشه.

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

Document 🌐

#minify
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114
با ‏Cheerio هر سایتی که میخوای scrap کن! 🐙

اگه با Node.js کار میکنید و به ابزاری برای دستکاری و تجزیه HTML نیاز دارید، پکیج Cheerio راه حل شماست. Cheerio یک API قدرتمند، سریع و انعطاف پذیر مشابه jQuery برای دستکاری HTML سمت سرور ارائه میده. با Cheerio میتونید به راحتی ساختارهای DOM رو پیمایش و دستکاری کنین، و کارهای مختلفی رو بدون محیط کامل مرورگر انجام بدید.

‏Cheerio چه کاربردی داره؟ 🤔

1⃣Web Scraping: از این پکیج به طور گسترده برای web scraping استفاده میشه. با واکشی محتوای HTML از یک صفحه وب، میتونید از Cheerio برای استخراج و دستکاری داده ها استفاده کنید. این برای کارهایی مانند بازیابی قیمت محصولات از یک سایت e-commerce، استخراج مقالات خبری یا جمع آوری اطلاعات برای اهداف تحقیقاتی عالیه.

2⃣استخراج داده: چه با فایل های HTML استایتک کار کنید و چه با محتوای تولید شده به صورت داینامیک، Cheerio به شما اجازه میده تا داده های لازم رو به طور موثر تجزیه و استخراج کنید. این به ویژه برای مدیریت رسپانس های HTML از سرویس های وب یا API هایی که داده های HTML رو برمیگردونن، مفیده.

3⃣تست و اتوماسیون: Cheerio میتونه در محیط های تستی برای تایید ساختار و محتوای اسناد HTML استفاده بشه. این به صورت یکپارچه با فریمورک های تست مانند Mocha و Chai ادغام میشه و شما رو قادر میسازه تا تست‌های قدرتمندی برای برنامه‌های وب خود بنویسید.

‏Cheerio یک ابزار ارزشمند برای دولوپر های Node.js هست. API jQuery مانند اون یادگیری و استفاده ازش رو آسون میکنه، در حالی که ماهیت سبکش تضمین میکنه که برنامه های شما سریع و کارآمد باقی بمونه. برای کسب اطلاعات بیشتر به داکیومنت اصلی اون مراجعه کنید.

#nodejs #cheerio
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥4
از sendBeacon جاوااسکریپت چی می‌دونید؟

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

راه حلی که قبل از معرفی sendBeacon وجود داشت، ارسال اطلاعات بصورت Synchronous (همگام) درست قبل از ترک کردن کاربر بود که باعث میشد صفحه برای لحظاتی قفل (بلاک) بشه که در نتیجه باعث آسیب تجربهٔ کاربر میشد. همین دلایل بود که توسعه‌دهنده‌ها رو به فکر یک API قابل اطمینان‌تر انداخت


‏sendBeacon چیه؟ 😄

‏sendBeacon متدیه که از آبجکت سراسری navigator که یک Web API هست، قابل دسترسه و هدف از معرفی اون، ارسال اطلاعات آماری (Analytics) و کم‌حجم به سرور هست. نحوهٔ استفاده از اون به صورت زیر هست:

navigator.sendBeacon(url); 
navigator.sendBeacon(url, data);


این متد، اطلاعات رو همیشه با متد POST و بصورت Asynchronous (غیر همگام) به سرور می‌فرسته. نکتهٔ مهم اینه که این متد اطلاعاتی از سرور برنمی‌گردونه. خروجی اون یک Boolean هست و در صورتی true برمی‌گردونه که مرورگر بتونه اطلاعات رو بفرسته. در غیر این صورت false. پس زمانی که به اطلاعات بازگشتی از سرور احتیاج داریم، sendBeacon گزینه مناسبی نیست.

چطوری از sendBeacon استفاده کنیم؟ 🦦

فرض کنید می‌خوایم درست قبل از ترک کردن صفحه توسط کاربر، اطلاعاتی رو به سرور بفرستیم. برای این کار ابتدا باید به رویداد visibilitychange گوش بدیم:

document.addEventListener('visibilitychange', () => { 

});

این رویداد زمانی اجرا میشه که صفحه قابل مشاهده باشه (visible) یا نباشه (hidden). حالا باید تصمیم بگیریم که اگه وضعیت صفحه hidden بود، بیایم و اطلاعات مد نظر رو به سرور پاس بدیم:
document.addEventListener('visibilitychange', () => { 
if (document.visibilityState === 'hidden') {
const data = JSON.stringify({ spent: 3600 });
navigator.sendBeacon('/log', data);
}
});


به طور کلی این API کمک می‌کنه تا اطلاعات رو به صورت غیر همگام به سرور ارسال کنیم. از برتری‌های مهم sendBeacon نسبت به ajax اینه که اگه قصد دارید از اون برای ارسال اطلاعاتمون به سرور، درست قبل از ترک شدن صفحه توسط کاربر استفاده کنیم، مرورگر به ما این اطمینان رو میده که حتماً اون رو اجرا کنه. در صورتی که همونطور که برای ajax گفتیم، مرورگر ممکنه قبل از ترک شدن صفحه، تصمیم بگیره که عملیات ajax رو اجرا نکنه.

#sendBeacon
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥4
با این سایت یه آمار کلی از گیتهابت در بیار 🌪

سایت githubprofileviewer، یک سایت خلاقانه و کاربردیه که شما میتونید با وارد کردن آیدی اکانتتون یا هر اکانت دیگه ای، هر اطلاعاتی که مورد نیازتون هست رو ببینید!

🌐 Website

#github
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3
‏Node.js چطور با انواع عملیات فایل ها برخورد میکنه؟ 🤟

یکی از جنبه های ضروری بسیاری از برنامه ها مدیریت فایل هست، مثل خوندن و نوشتن فایل ها و ... اما قبل از دونستن نحوه کار مدیریت فایل ها، باید بدونیم خود فایل چیه. به طور خلاصه، فایل یک محفظه داده ای هست که روی یک هارد دیسک ذخیره شده و توسط سیستم عامل (OS) قابل دسترسی و مدیریت هست.

فرآیند کلی مدیریت فایل به چه شکله؟ 🤔

بیشتر زبان های برنامه نویسی برای مدیریت عملیات فایل به سیستم عامل (OS) متکی هستن. این تعامل برای خوندن و نوشتن فایل ها بدون مدیریت مستقیم پیچیدگی های سخت افزاری ضروری هست.

1⃣Function Call: ما به عنوان دولوپر یک فانکشن رو برای باز کردن، خوندن، نوشتن یا دستکاری یک فایل می‌نویسیم. این فانکشن معمولاً بخشی از کتابخانه استاندارد اون زبانه.( در Node.js به عنوان رانتایم این کار رو با ماژول fs هندل میکنه)

2⃣Library Abstraction: تابع استاندارد کتابخانه پیچیدگی تعامل با سیستم عامل رو خلاصه میکنه. این درخواست رو به گونه ای بسته بندی میکنه که سیستم عامل بتونه اون رو درک کنه. (Node.js از کتابخونه Libuv برای اینکار استفاده میکنه)

3⃣System Call: فانکشن کتابخانه یک تماس سیستمی برقرار می‌کنه. فراخوانی سیستم مکانیزمی هست که به برنامه در سطح کاربر اجازه میده تا خدمات رو از سیستم عامل درخواست کنن. فراخوانی های رایج سیستمی برای عملیات فایل شامل «open»، «read»، «write» و «close» هست.

4⃣OS Handling: سیستم عامل تماس سیستم رو دریافت میکنه، عملیات درخواستی رو انجام میده (مثلاً مکان یابی فایل روی دیسک، خواندن داده ها، نوشتن داده ها)، و نتیجه رو برمیگردونه.

5⃣Data Retrieval: سیستم عامل داده های فایل یا وضعیت عملیات رو از طریق کتابخانه استاندارد به برنامه برمیگردونه.

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

- Article
- Article
- Article

#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5
بلاخره یه اسم برای متغیرم انتخاب کردم 🤟

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁28
😎با WebGL بیشتر آشنا بشید !

در واقع WebGL مخفف Web Graphics Library هست که یک کتابخانه ی جاوااسکریپتیه که با اون میشه اشیاء تعاملی دو بعدی و سه بعدی ایجاد کرد.

کتابخانه WebGL با تمام مرورگر ها سازگاره و همچنین یک تکنولوژی cross-platform هست، و برای رندر کردن تصاویر مستقیما از کارت گرافیک استفاده میکنه

‼️پس بهتره برای دریافت تصاویر بهتر همیشه درایور کارت گرافیکتونو به آخرین نسخه ی موجود آپدیت کنید.

کتابخانه WebGL به هیچ نرم افزار خاص یا پلاگینی وابسته نیست و فقط با استفاده از HTML5 و JavaScript میشه اونو پیاده سازی کرد. پیش از این گرافیک سه بعدی محدود به کنسول های بازی و یا کامپیوتر های سطح بالا بود ولی امروزه با پیشرفت کامپیوتر های شخصی و مرورگر های اینترنت، نمایش گرافیک سه بعدی از طریق تکنولوژی های مدرن و شناخته شده ی وب امکان پذیره.

میتونیم بگیم نسل های آینده ی وب متعلق به WebGL هست چرا که این تکنولوژی بدون شک نقش مهمی رو در ui های نسل بعدی وب بازی خواهد کرد.

مزایای استفاده از WebGL چیه :

🔴نبود نیاز به پلاگین برای اجرا شدن

🔴سرعت بالا

🔴فیچر های پیشرفته

🔴پشتیبانی خوب از مرورگر ها


معایب استفاده از WebGL چیه :

🔴پیچیدگی در استفاده

🔴ناسازگاری سخت افزاری


برای کسب اطلاعات بیشتر میتونید به داکیومنتش مراجعه کنید 💀

Document 🌕

#webgl #ui #library
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3
فایل fstab لینوکس چیه و چه کاربردی داره؟🪴

شما برای اینکه بتونید در سیستم عامل لینوکس از یک فایل سیستم یا پارتیشن استفاده کنید، بایستی اون رو در سیستم mount کنید. یکی از فایل هایی که در خصوص mount کردن بسیار به شما و سیستم عامل کمک میکنه، فایلی به اسم fstab هست.

در لینوکس هر دستگاه اکسترنال مثل usb disk ها که ما به طور مداوم اونها رو متصل و جدا میکنیم، یک اسم یونیک و یک دایرکتوری برای ماونت شدن دارن تا از اونجا قابل دسترس باشن. اگر بخوایم ازشون استفاده کنیم بدون اینکه اونارو داخل فایل fstab اضافه کرده باشیم، مجبوریم از اول دوباره به محل مورد نظر با اسم جدید mount کنیم، چون هر دفعه تغییر میکنن و ممکنه گیج بشید.

👍برای اینکه این اتفاق نیوفته باید اون دیوایس هارو داخل فایل fstab با uuid شون به fstab اضافه کنیم، که در دایرکتوری /etc میتونید بهش دسترسی داشته باشید.

🔵برای اضافه کردن هر دیسک باید یکسری اطلاعات از اون رو داخل این فایل قرار بدید:

◀️اطلاعات file system : شناسه اون دیسک یا دیوایسی که در کامپیوتر با اون اسم ذخیره شده مثل uuid.

◀️اطلاعات mount point : مکانی که اون دیسک یا دیوایس mount شده.

◀️اطلاعات type :نوع فایل سیستمی که اون دیوایس یا دیسک به اون فرمت شده.

◀️گزینه های مربوط به فایل سیستم (options) : این اپشن ها نحوه نصب و استفاده از سیستم فایل رو کنترل میکنن. بعضی از گزینه های رایج:

🔵آپشن auto: سیستم فایل رو به صورت خودکار در زمان بوت نصب میکنه.

🔵آپشن noauto: فایل سیستم رو به صورت خودکار در زمان بوت سوار نمیکنه.

🔵آپشن user: به هر کاربری اجازه میده تا فایل سیستم رو نصب کنه.

🔵آپشن nouser: فقط به کاربر root اجازه میده تا فایل سیستم رو mount کنه.

🔵آپشن sync: از I/O همزمان برای سیستم فایل استفاده میکنه.

◀️فلگ Dump :این فلگ یا پرچم نشون میده که آیا سیستم فایل باید در زمان بک آپ گیری، توسط ابزار dump بک‌ آپ گیری بشه یا نه. که یه صورت دیفالت 0 قرار داره که یعنی انجام نشه.

◀️فلگ Pass : این فلگ به ترتیبی که fsck (ابزار بررسی و تعمیر سیستم فایل) باید هنگام بوت، فایل سیستم ها رو بررسی کنه، اشاره داره. این ابزار در سیستم عامل لینوکس، سازگاری و سلامتی سیستم فایل رو بررسی و در صورت نیاز تعمیر میکنه. که مقدار دیفالتش 0 هست که یعنی برسی انجام نشه.

‼️اگر میخواید سیستم فایلتون رو هر بار بررسی کنید، باید اون رو روی یکی از مقادیر بالاتر تنظیم کنید.

# <file system> <dir> <type> <options> <dump> <pass>

UUID=1328-jsu383-jseu2j-hndid3 / ext4 defaults,noatime 0 1


به طور کلی این فایل کاربردی در لینوکس به شما این امکان رو میده، تا اطلاعات mount کردن دیسک‌ها و پارتیشن‌ها رو در زمان بوت سیستم عامل تعیین کرده، و دستورات mount رو به صورت خودکار اجرا کنید. همچنین از این فایل میتونید برای تنظیمات مربوط به نحوه استفاده از فایل سیستم و تعیین نحوه بک‌آپ گیری و بررسی سیستم فایل استفاده کنید.
#linux #fstab
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
9❤‍🔥4🔥4