📄 مسیر یادگیری توسعه فرانت اند | Front-end Development Learning Path
🔗 Front-end Development Learning Path
#آموزشی #مهم
@codeaghajcs
🔗 Front-end Development Learning Path
#آموزشی #مهم
@codeaghajcs
👍2👎1
🐳 کتابایی که باید برا کنکور ایران خوند
VS .
محاسبات ریاضی ناسا برای آپولو هوا کردن
تهش: دانشگاه با اساتیدی که بلد نیستن ریکرشن چیه! 😑😂
#فان
@codeaghajcs
VS .
محاسبات ریاضی ناسا برای آپولو هوا کردن
تهش: دانشگاه با اساتیدی که بلد نیستن ریکرشن چیه! 😑😂
#فان
@codeaghajcs
👍3💩2
📄 واکنشپذیری ناهمزمان | Async Derivations in Reactivity
- واکنش پذیری تو صفحات وب گاهی لازم میشه تا Async پردازش بشه. این مقاله با jsx داره کار میکنه ولی خوبیش اینه که اگر از vue یا هر ابزار دیگه ای استفاده میکنید، میدونید تو بک گراند چه اتفاقاتی میوفته.
🔗 Async Derivations in Reactivity
#آموزشی #وب
@codeaghajcs
- واکنش پذیری تو صفحات وب گاهی لازم میشه تا Async پردازش بشه. این مقاله با jsx داره کار میکنه ولی خوبیش اینه که اگر از vue یا هر ابزار دیگه ای استفاده میکنید، میدونید تو بک گراند چه اتفاقاتی میوفته.
🔗 Async Derivations in Reactivity
#آموزشی #وب
@codeaghajcs
👍1
🐳 تایپ یک Node در مرورگر ها چیست؟
- مرورگر ها یک Ciritical Render Path دارن که تو این مسیر شروع میکنن و اجزای متن سند HTML رو شناسایی (Token گذاری) میکنند و اون ها رو به یک ساختمان داده tree در ممروی RAM تبدیل میکنن که ما اون رو به اسم Document Object Model یا همون DOM میشناسیم. حالا تو این فرایند که مرورگر درخت اشیاء داخل سند HTML رو میسازه، چیزی از قلم نمیوفته حتی Comment ها!
درواقع بخش های سند HTML همه با هم به این درخت بزرگ اظافه میشن و ما به هر کدوم میگیم یک Node که هر Node یک تایپ داره :
- حالا هر نودی که تایپش 1 باشه میشه element. و همونطور که میبینید، میتونید یک کامنت رو داخل این درخت بزرگ اشیاء داشته باشید.
🔗 مطالعه بیشتر
🔗 مطالعه داکیومت های mdn
#آموزشی #مهم
@codeaghajcs
- مرورگر ها یک Ciritical Render Path دارن که تو این مسیر شروع میکنن و اجزای متن سند HTML رو شناسایی (Token گذاری) میکنند و اون ها رو به یک ساختمان داده tree در ممروی RAM تبدیل میکنن که ما اون رو به اسم Document Object Model یا همون DOM میشناسیم. حالا تو این فرایند که مرورگر درخت اشیاء داخل سند HTML رو میسازه، چیزی از قلم نمیوفته حتی Comment ها!
درواقع بخش های سند HTML همه با هم به این درخت بزرگ اظافه میشن و ما به هر کدوم میگیم یک Node که هر Node یک تایپ داره :
1 ELEMENT_NODE
2 ATTRIBUTE_NODE
3 TEXT_NODE
4 CDATA_SECTION_NODE
5 ENTITY_REFERENCE_NODE
6 ENTITY_NODE
7 PROCESSING_INSTRUCTION_NODE
8 COMMENT_NODE
9 DOCUMENT_NODE
10 DOCUMENT_TYPE_NODE
11 DOCUMENT_FRAGMENT_NODE
12 NOTATION_NODE
- حالا هر نودی که تایپش 1 باشه میشه element. و همونطور که میبینید، میتونید یک کامنت رو داخل این درخت بزرگ اشیاء داشته باشید.
🔗 مطالعه بیشتر
🔗 مطالعه داکیومت های mdn
#آموزشی #مهم
@codeaghajcs
👍1
نسل 3.1 لاما تغییرات جالبی رو با خودش همراه کرد.
این سری از مدلهای لاما در سه نسخه 8B، 70B و 405B منتشر شدن و یه تغییر بزرگ رو توی جامعه اوپن سورس رقم زدن. این تغییر بزرگ به واسطه انتشار بزرگترین مدل این سری یعنی Llama 3.1 405B اتفاق افتاده. مدلی با 405 میلیارد پارامتر که بزرگترین مدل اوپن سورس تا به امروز هست. تا حالا هیچ کمپانیای مدلی به این عظمت رو اوپن نکرده بود و این یعنی قراره شاهد اتفاقات بزرگی توی جامعه اوپن سورس باشیم.
سنجش کیفیت مدلها با استفاده از بنچمارکها اهمیت زیادی داره چون این کار به ما امکان میده تا عملکرد مدلها رو در شرایط مختلف ارزیابی کنیم و به مقایسه دقیقتری دست پیدا کنیم. بنچمارکها بهعنوان ابزارهای استاندارد برای اندازهگیری دقت و کارایی مدلها استفاده میشن و نتایج بهدستآمده کمک میکنه تا بهطور مؤثری نقاط قوت و ضعف مدلها شناسایی بشه و بهبودهای لازم اعمال بشه. حالا با توجه به اهمیت این ارزیابیها، نگاهی میندازیم به نتایج بنچمارک مدلهای جدید لاما و تغییرات کلیدی که با خودشون به همراه داشتن.
این مدل روی 150 تا بنچمارک مختلف سنجیده شده و اتفاق جالب اینه که توی بنچمارکهایی که متا منتشر کرده، به سطحی نزدیک به Claude 3.5 Sonnet، GPT-4 و GPT-4o رسیده و حتی توی بعضی بنچمارکها بهتر عمل کرده. مثلا توی بنچمارک IFeval که مربوط به Instruction following هست، از هردوی Claude Sonnet 3.5 و GPT-4o بهتر عمل کرده.
این نتایج نشون میدن که پیشرفت های موثری تو پرفورمنس مدل های اوپن سورس در حال صورت گرفتن هست.
در رابطه با دو نسخه کوچیک 8 و 70 میلیاردی،
دو تغییر اصلی این دو مدل شامل طول کانتکست 128K و پشتیبانی از چند زبان مختلف مثل انگلیسی، فرانسوی، آلمانی، هندی، ایتالیایی، پرتغالی، اسپانیایی و تای هستن. متأسفانه، زبان فارسی هنوز بهصورت رسمی به این مدلها اضافه نشده. البته، این مدلها میتونن تا حدی فارسی صحبت کنن، اما نمیشه بهشون اعتماد کامل داشت و امیدواریم تو آپدیتهای بعدی زبان فارسی هم بهصورت کامل پشتیبانی بشه.
و همینطور عملکرد مدلهای این نسل توی کدنویسی خیلی بهتر شده.
درکل جز تغییراتی که گفته شد تغییر خیلی مهم دیگه ای صورت نگرفته و این دو مدل صرفا اپدیتی از مدل های قبلی نسل ۳ هستن.
جزییات فنی:
- دیتا: دیتای آموزشی این نسل نسبت به نسل قبل خیلی بزرگتر و باکیفیتتر شده. حجم دیتا حدود 15.6 تریلیون توکن هست که تقریباً 8 برابر دیتای نسل قبلی لاما (نسل 2) هست.
- آموزش: مدل 405B با 3.8 × 10**25 FLOPs روی 15.6T توکن آموزش داده شده. این مدل چند ماه توی فاز آموزش بوده و روی 16000 تا تراشه H100 آموزش دیده که در مجموع به 39.3 میلیون ساعت محاسباتی GPU میرسه و چند صد میلیون دلار هزینه داشته. همچنین مدلهای این سری روی 10 میلیون سوال و جواب انسانی و 25 میلیون داده مصنوعی (synthetic) فاینتیون شدن. توی این فرآیند از SFT و DPO استفاده شده. SFT یعنی مدل رو با دادههای واقعی که انسانها آماده کردن، بهبود دادن. DPO هم روشی برای تنظیم مدل هست که بر اساس ترجیحات انسانی، دادههای مصنوعی ایجاد میکنه تا عملکرد مدل بهتر بشه.
- معماری: توی معماری این سری خبری از روشهای پیچیدهای مثل MoE نیست و از یک معماری ساده Decoder Only استفاده شده. همه مدلهای این سری از تکنیکی به نام GQA یا Grouped Query Attention استفاده میکنن. GQA یه روش هست که با بهینه کردن عملکرد الگوریتم اتنشن، کمک میکنه مدل در طول آموزش، پایداری و کارایی بهتری داشته باشه.
همچنین، مدل رو از فرمت BF16 به FP8 کوانتایز کردن تا حجمش کمتر بشه و جالبه که میگن اینکار باعث شده بتونن مدل رو روی یه نود سرور واحد اجرا کنن.
اجرا و تست مدلها:
مشخصاً مدل بزرگ رو نمیتونین بهصورت لوکال اجرا کنین و باید از پروایدرهای third-party استفاده کنین. متا با 25 تا سرویس قرارداد داره مثل Nvidia Nims, fire works, ... که مدل هارو ارائه میدن. برای تست نسخههای کوچیکتر میتونین از Ollama استفاده کنین. برای استفاده از نسخه 8B کوانتایز شده میتونین با 4090 لودش کنین و نسخه کوانتایز شده 70B هم با A100، L40 یا L40S قابل اجراست.
همچنین از طریق پلتفرم ما هم میتونین از همه مدل های این سری استفاده کنین
نکات اضافی:
- متا گفته که قراره نسلهای جدید لاما MultiModal باشن.
- متا به زودی یه سرویس API برای این مدلها ایجاد میکنه که با Bing هم سازگار خواهد بود.
این سری از مدلهای لاما در سه نسخه 8B، 70B و 405B منتشر شدن و یه تغییر بزرگ رو توی جامعه اوپن سورس رقم زدن. این تغییر بزرگ به واسطه انتشار بزرگترین مدل این سری یعنی Llama 3.1 405B اتفاق افتاده. مدلی با 405 میلیارد پارامتر که بزرگترین مدل اوپن سورس تا به امروز هست. تا حالا هیچ کمپانیای مدلی به این عظمت رو اوپن نکرده بود و این یعنی قراره شاهد اتفاقات بزرگی توی جامعه اوپن سورس باشیم.
سنجش کیفیت مدلها با استفاده از بنچمارکها اهمیت زیادی داره چون این کار به ما امکان میده تا عملکرد مدلها رو در شرایط مختلف ارزیابی کنیم و به مقایسه دقیقتری دست پیدا کنیم. بنچمارکها بهعنوان ابزارهای استاندارد برای اندازهگیری دقت و کارایی مدلها استفاده میشن و نتایج بهدستآمده کمک میکنه تا بهطور مؤثری نقاط قوت و ضعف مدلها شناسایی بشه و بهبودهای لازم اعمال بشه. حالا با توجه به اهمیت این ارزیابیها، نگاهی میندازیم به نتایج بنچمارک مدلهای جدید لاما و تغییرات کلیدی که با خودشون به همراه داشتن.
این مدل روی 150 تا بنچمارک مختلف سنجیده شده و اتفاق جالب اینه که توی بنچمارکهایی که متا منتشر کرده، به سطحی نزدیک به Claude 3.5 Sonnet، GPT-4 و GPT-4o رسیده و حتی توی بعضی بنچمارکها بهتر عمل کرده. مثلا توی بنچمارک IFeval که مربوط به Instruction following هست، از هردوی Claude Sonnet 3.5 و GPT-4o بهتر عمل کرده.
این نتایج نشون میدن که پیشرفت های موثری تو پرفورمنس مدل های اوپن سورس در حال صورت گرفتن هست.
در رابطه با دو نسخه کوچیک 8 و 70 میلیاردی،
دو تغییر اصلی این دو مدل شامل طول کانتکست 128K و پشتیبانی از چند زبان مختلف مثل انگلیسی، فرانسوی، آلمانی، هندی، ایتالیایی، پرتغالی، اسپانیایی و تای هستن. متأسفانه، زبان فارسی هنوز بهصورت رسمی به این مدلها اضافه نشده. البته، این مدلها میتونن تا حدی فارسی صحبت کنن، اما نمیشه بهشون اعتماد کامل داشت و امیدواریم تو آپدیتهای بعدی زبان فارسی هم بهصورت کامل پشتیبانی بشه.
و همینطور عملکرد مدلهای این نسل توی کدنویسی خیلی بهتر شده.
درکل جز تغییراتی که گفته شد تغییر خیلی مهم دیگه ای صورت نگرفته و این دو مدل صرفا اپدیتی از مدل های قبلی نسل ۳ هستن.
جزییات فنی:
- دیتا: دیتای آموزشی این نسل نسبت به نسل قبل خیلی بزرگتر و باکیفیتتر شده. حجم دیتا حدود 15.6 تریلیون توکن هست که تقریباً 8 برابر دیتای نسل قبلی لاما (نسل 2) هست.
- آموزش: مدل 405B با 3.8 × 10**25 FLOPs روی 15.6T توکن آموزش داده شده. این مدل چند ماه توی فاز آموزش بوده و روی 16000 تا تراشه H100 آموزش دیده که در مجموع به 39.3 میلیون ساعت محاسباتی GPU میرسه و چند صد میلیون دلار هزینه داشته. همچنین مدلهای این سری روی 10 میلیون سوال و جواب انسانی و 25 میلیون داده مصنوعی (synthetic) فاینتیون شدن. توی این فرآیند از SFT و DPO استفاده شده. SFT یعنی مدل رو با دادههای واقعی که انسانها آماده کردن، بهبود دادن. DPO هم روشی برای تنظیم مدل هست که بر اساس ترجیحات انسانی، دادههای مصنوعی ایجاد میکنه تا عملکرد مدل بهتر بشه.
- معماری: توی معماری این سری خبری از روشهای پیچیدهای مثل MoE نیست و از یک معماری ساده Decoder Only استفاده شده. همه مدلهای این سری از تکنیکی به نام GQA یا Grouped Query Attention استفاده میکنن. GQA یه روش هست که با بهینه کردن عملکرد الگوریتم اتنشن، کمک میکنه مدل در طول آموزش، پایداری و کارایی بهتری داشته باشه.
همچنین، مدل رو از فرمت BF16 به FP8 کوانتایز کردن تا حجمش کمتر بشه و جالبه که میگن اینکار باعث شده بتونن مدل رو روی یه نود سرور واحد اجرا کنن.
اجرا و تست مدلها:
مشخصاً مدل بزرگ رو نمیتونین بهصورت لوکال اجرا کنین و باید از پروایدرهای third-party استفاده کنین. متا با 25 تا سرویس قرارداد داره مثل Nvidia Nims, fire works, ... که مدل هارو ارائه میدن. برای تست نسخههای کوچیکتر میتونین از Ollama استفاده کنین. برای استفاده از نسخه 8B کوانتایز شده میتونین با 4090 لودش کنین و نسخه کوانتایز شده 70B هم با A100، L40 یا L40S قابل اجراست.
همچنین از طریق پلتفرم ما هم میتونین از همه مدل های این سری استفاده کنین
نکات اضافی:
- متا گفته که قراره نسلهای جدید لاما MultiModal باشن.
- متا به زودی یه سرویس API برای این مدلها ایجاد میکنه که با Bing هم سازگار خواهد بود.
👍1
📄 روز 0.0.0.0 یک آسیب پذیری ۱۸ ساله در مرورگر ها که به هکر ها اجازه میده تمام امنیت مرورگر ها رو دور بزنن | 0.0.0.0 Day – 18 Yr Old Vulnerability Let Attackers Bypass All Browser Security
- قصه اینجاست که آیپی 0.0.0.0 توی IPv4 کلا ممنوعه و کسی نباید استفاده کنه ولی خب ما میبینیم که کلی ابزار در روز برای حالتای مختلف از این 0.0.0.0 استفاده میکنن.
- و یه سالی هم مرورگر ها به پیشنهاد گوگل اومدن یک استانداردیو به نام PNA پیاده سازی که بخاطرش کروم و مرورگر های کروم بیس و بعد موزیلا و سافاری، اجازه دسترسی به شبکه داخلی از طریق شبکه خارجی رو بطور جدی محروم میکردن.
- با اینکه استفاده از 0.0.0.0 توی IPv4 درست نیست، ولی بعضی از سرورا (مثل unicorn و امثالهم) میان از این به عنوان آدرس دیفالت استفاده میکنن.
- حالا محققا کشف کردن که توی PNA آدرس 0.0.0.0 تعریف نشده و نتیجتا، میشه از این طریق از راه دور به فایل های سرور دسترسی پیدا کرد و کد execute کرد.
🔗 لینک خبر توی Cyber security news
#خبر #مهم
@codeaghajcs
- قصه اینجاست که آیپی 0.0.0.0 توی IPv4 کلا ممنوعه و کسی نباید استفاده کنه ولی خب ما میبینیم که کلی ابزار در روز برای حالتای مختلف از این 0.0.0.0 استفاده میکنن.
- و یه سالی هم مرورگر ها به پیشنهاد گوگل اومدن یک استانداردیو به نام PNA پیاده سازی که بخاطرش کروم و مرورگر های کروم بیس و بعد موزیلا و سافاری، اجازه دسترسی به شبکه داخلی از طریق شبکه خارجی رو بطور جدی محروم میکردن.
- با اینکه استفاده از 0.0.0.0 توی IPv4 درست نیست، ولی بعضی از سرورا (مثل unicorn و امثالهم) میان از این به عنوان آدرس دیفالت استفاده میکنن.
- حالا محققا کشف کردن که توی PNA آدرس 0.0.0.0 تعریف نشده و نتیجتا، میشه از این طریق از راه دور به فایل های سرور دسترسی پیدا کرد و کد execute کرد.
🔗 لینک خبر توی Cyber security news
#خبر #مهم
@codeaghajcs
👍1
🐳 با توجه به خبری که بالا کشف شده، احتمالا سال های آینده شاهد استاندارد سازی های بزرگ تر برای وب باشیم!
@codeaghajcs
@codeaghajcs
🐳 دستور Sudo در ویندوز
- کسایی که بخاطر کار مثل من مجبورن رو لینوکس و ویندوز با هم کار کنن، میدونن گاهی استفاده از ترمینال ویندوز بدون دستور sudo سخت میشه!
🔗 با این پست مایکروسافت لرن فقط در Windows 11 Insider Preview Build 26052 میتونید با یه سری تنظیمات به sudo برسید
- ولی این خوب نیست چون مثلا تو ویندوز 10 نمیتونید داشته باشید.
- اینجاست که باید golang رو نصب کنید و از 🔗 این ریپو استفاده کنید که نه تنها بهتون sudo لینوکس رو تو ویندوز میده بلکه pipe لینوکس و کلی قابلیت دیگه رو هم میده و این بشدت برای خودم کاربردی بود
- روش نصب :
#آموزشی #ویندوز #لینوکس
@codeaghajcs
- کسایی که بخاطر کار مثل من مجبورن رو لینوکس و ویندوز با هم کار کنن، میدونن گاهی استفاده از ترمینال ویندوز بدون دستور sudo سخت میشه!
🔗 با این پست مایکروسافت لرن فقط در Windows 11 Insider Preview Build 26052 میتونید با یه سری تنظیمات به sudo برسید
- ولی این خوب نیست چون مثلا تو ویندوز 10 نمیتونید داشته باشید.
- اینجاست که باید golang رو نصب کنید و از 🔗 این ریپو استفاده کنید که نه تنها بهتون sudo لینوکس رو تو ویندوز میده بلکه pipe لینوکس و کلی قابلیت دیگه رو هم میده و این بشدت برای خودم کاربردی بود
- روش نصب :
go install github.com/mattn/sudo@latest
#آموزشی #ویندوز #لینوکس
@codeaghajcs
👍2
Forwarded from Faridreza
This media is not supported in your browser
VIEW IN TELEGRAM
دنبال ی محیطی بودم بتونم هروقت نیاز داشتم کد سی شارپ تست کنم بدون اینکه درگیر باز کردن ویژوال استادیو یا ساختن پروژه جدید بشم🕦
یهو این ربپو به چشمم خورد یک Command Line Cli برای #C هست که با کامند csharprepl میتونید وارد محیطش بشید و شروع کنید کد بزنید 🤝
😴 https://github.com/waf/CSharpRepl
💻 @iFaridreza
یهو این ربپو به چشمم خورد یک Command Line Cli برای #C هست که با کامند csharprepl میتونید وارد محیطش بشید و شروع کنید کد بزنید 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
Faridreza
دنبال ی محیطی بودم بتونم هروقت نیاز داشتم کد سی شارپ تست کنم بدون اینکه درگیر باز کردن ویژوال استادیو یا ساختن پروژه جدید بشم🕦 یهو این ربپو به چشمم خورد یک Command Line Cli برای #C هست که با کامند csharprepl میتونید وارد محیطش بشید و شروع کنید کد بزنید 🤝…
چنل آقا فرید گل 🔥
از دوستای خوب و مهندسای خفن مملکت
از دوستای خوب و مهندسای خفن مملکت
❤2
grok-algor.pdf
24.6 MB
📖 درک الگوریتم: راهنمای تصویری برای برنامه نویس ها و افراد کنجکاو
- یک کتاب بشدت عالی تو حوزه الگوریتم که کمک میکنه واقعا درک کنید الگوریتم ها چیکار میکنن همین کتاب آقای "آدیتیا بهارگاوا" هستش. اگر واقعا نیاز دارید دانشگاه ساختمان داده و الگوریتم با نمره خوب پاس شید یا دوست دارید برنامه نویس بهتری بشید تو هر تایتل مهندسی کامپیوتریای که هستید، پیشنهاد میکنم با دقت بجوریدش. این کتاب بخوبی روش هایی مثل Diviede and conquer و الگوریتم های تصادفی و حریصانه رو توضیح میده
- بعدش هم اگر بیشتر نیاز شد (که فکر نکنم بشه، ولی اگر علاقه دارید) برید سراغ کتاب بشدت عالی و کامل Introduction of algorithms نوشته C.L.R.S.
همچنین میتونید این بخش سایت Geeks For Geeks رو بطور تکمیلی نگاه کنید که خیلی کامل توضیح داده علی الخصوص برای پایتون کار ها :
🔗 Geeks For Geeks / Learn Data Structures and Algorithms | DSA Tutorial
#کتاب #آموزشی #مهم
@codeaghajcs
- یک کتاب بشدت عالی تو حوزه الگوریتم که کمک میکنه واقعا درک کنید الگوریتم ها چیکار میکنن همین کتاب آقای "آدیتیا بهارگاوا" هستش. اگر واقعا نیاز دارید دانشگاه ساختمان داده و الگوریتم با نمره خوب پاس شید یا دوست دارید برنامه نویس بهتری بشید تو هر تایتل مهندسی کامپیوتریای که هستید، پیشنهاد میکنم با دقت بجوریدش. این کتاب بخوبی روش هایی مثل Diviede and conquer و الگوریتم های تصادفی و حریصانه رو توضیح میده
- بعدش هم اگر بیشتر نیاز شد (که فکر نکنم بشه، ولی اگر علاقه دارید) برید سراغ کتاب بشدت عالی و کامل Introduction of algorithms نوشته C.L.R.S.
همچنین میتونید این بخش سایت Geeks For Geeks رو بطور تکمیلی نگاه کنید که خیلی کامل توضیح داده علی الخصوص برای پایتون کار ها :
🔗 Geeks For Geeks / Learn Data Structures and Algorithms | DSA Tutorial
#کتاب #آموزشی #مهم
@codeaghajcs
🍾2👍1
📄 چگونه به ChatGPT اجازه دهیم توابع برنامه ما را صدا بزند | How to let ChatGPT call functions in your app
- امروزه میتونید به API قوی Open AI یک فهرست از فانکشن های داخل برنامتون ارسال کنید تا هوش مصنوعی پارامتر هایی رو تولید کنه و بفرسته و اون فانکشن ها رو صدا بزنه (خودش اجرا نمیکنه توابع شما رو)
🔗 How to let ChatGPT call functions in your app
#آموزشی #هوش_مصنوعی
@codeaghajcs
- امروزه میتونید به API قوی Open AI یک فهرست از فانکشن های داخل برنامتون ارسال کنید تا هوش مصنوعی پارامتر هایی رو تولید کنه و بفرسته و اون فانکشن ها رو صدا بزنه (خودش اجرا نمیکنه توابع شما رو)
🔗 How to let ChatGPT call functions in your app
#آموزشی #هوش_مصنوعی
@codeaghajcs
🤯1👌1