Code‌ Agha
197 subscribers
336 photos
20 videos
20 files
276 links
Here we are talking about computer science and the development of software and algorithms and..

Boost: https://t.me/boost/codeaghajcs
Coffie: https://www.coffeebede.com/codeagha
Github : https://github.com/AmirMahdyJebreily
Email : amirmahdyjdx@gmail.com
Download Telegram
🐳 ساختن انیمیشن های ریاضی با پایتون

- این ریپوزیتوری یک موتور انیمیت بشدت دقیق هست که دقتش برای انیمیت کردن ویدیو هایی که توش ریاضی رو آکادمیک درس میدن طراحی شده!

🔗 https://github.com/3b1b/manim

@codeaghajcs
📄 نقشه راه برای مهندس های هوش‌مصنوعی | Roadmap for AI Engineers

- هر مسیر خودآموزی، یک نقشه راه نیاز داره. جدا از این دیدن roadmap ها خوبه چون میتونید ببینید خودتون دقیقا کجای کار هستید. این مقاله کلی توضیح داده و این فهرست رو ارائه داده :

۱. مقدمه هوش‌مصنوعی (AI Introduction)
۲. برنامه نویسی (Programming)
۳. ریاضیات هوش‌مصنوعی (Mathematics)
۴. یادگیری ماشین (Machine Learning)
۵. بینایی کامپیوتر (Computer Vision)
۶. پردازش زبان طبیعی (Natural Language Processing)
۷. یادگیری تقویتی (Reinforcement Learning)
۸. هوش‌مصنوعی سازنده (Generative AI)
۹. فریمورک های هوش‌مصنوعی (AI Frameworks)
۱۰. عملیات های یادگیری ماشین (ML Operations)

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

🔗 Roadmap for AI Engineers

#آموزشی #مهم
@codeaghajcs
👍1
📄 پیاده سازی اصول SOLID در فریمورک های جاوا اسکریپت و تایپ اسکریپت | Applying SOLID Principles in JavaScript and TypeScript Framework

- اصول سالید، مبنای نوشتن برنامه های مقیاس پذیر و maintainable هستن. یعنی برنامه هایی که به راحتی میشه اون‌ها رو آپدیت کرد. SOLID توی زبان هایی شکل گرفته که شئ‌گرایی رو بطور سنتی و پیش‌فرض، پیاده میکنن و مفاهیمی مثل Abstraction، Inheritance و... رو واقعا توی لول کامپایلرشون پیاده میکنن. مثل زبان های سی‌شارپ و جاوا که اصطلاحا Mandatory Object Oriented هستند، یعنی شئ‌گرایی توشون اجباریه. (شما تو این زبونا یه 2 بنویسید، میبینید که یه زنجیره بزرگی از آبجکتا پشتش قرار میگیرن)‌.

- جاوا اسکریپت، توی لول اینترپرتر یا کامپایلر خودش شئ‌گرایی رو مستقیم اعمال نمیکنه. ولی با استفاده از prototype ها میتونه همون حرکتای سی‌شارپ و جاوا رو عینا اعمال کنه. در.نتیجه اصول SOLID توی جاوا اسکریپت و تایپ اسکریپت هم قابل پیاده سازی هستن.

🔗 Applying SOLID Principles in JavaScript and TypeScript Framework

#آموزشی
@codeaghajcs
👍1
📄چیت شیت نماد O بزرگ به همراه توضیحات | Big O Notations CheatSheet with Explanation

- پیشنهاد شخصی خودم به شما اینه که نمادگذاری های مجانبی رو درک کنید. دید خوبی نسبت به خیلی چیزا بدست میارید 🤝

🔗 Big O Notations CheatSheet with Explanation

#آموزشی #مهم
@codeaghajcs
👍1
📄 چهار تا فایل‌سیستم غیر از NTFS، برای SSD بعدیت که باید حواست بهشون باشه | 4 file systems you should consider instead of NTFS for your next SSD

-

🔗 4 file systems you should consider instead of NTFS for your next SSD

#مقاله
@codeaghajcs
👍1
🐳 18 ابزار کشیدن دیاگرام و نمودار در فرانت اند

- کتابخونه های جاوا اسکریپتی برای کشیدن گراف های UML و BPMN و ERD (منظور بیشتر دیاگرام و امثالهم هست نه مثلا کشیدن نمودار ریاضی)

🔗JointJS and JointJS+ (پیشنهادی)
🔗GoJS (پیشنهادی)
🔗MxGraph
🔗Mindfusion Diagram Library
🔗Nomnoml
🔗Mermaid.js (پیشنهادی)
🔗Diagram.js
🔗State.js

- کتابخانه های جاوا اسکریپت برای رسم نمودارها با روش پلتفرم سرور زبان گرافیکی Eclipse Sprotty and Eclipse Graphical Language (GLSP) (بیشتر برای data visualization استفاده میشن و کلا برای هر جور رسم کردنی کاربردین)

🔗D3 (پیشنهادی)
🔗Svelvet (پیشنهادی)
🔗Two.js
🔗Fabric.js
🔗Paper.js (پیشنهادی) 🌟
🔗JsPlumb 👎
🔗p5.js
🔗Cytoscape.js (پیشنهادی)
🔗React Diagrams
🔗Tldraw

- ابزار های دیگه ای هم هستن فقط چون خیلی قدیمی شدن، اسم خالیشون کفایت میکنه :
JsUML2 library
vis.js
Draw2D
dagre-d3
Raphaël

#معرفی_ابزار #مهم
@codeaghajcs
👍1🎉1
📄 برنامه نویسی تابعی در تایپ اسکریپت | Functional Programming in TypeScript

- جدا از بحث تایپ اسکریپتش، پاردایم های تابع‌گرا یکم سخت تر درک میشن چون ریاضی ترن، اگر واقعا می‌خواید درکشون کنید حتما تا تهشو بخونید. خیلی خوب و کامل و ریاضی‌ای توضیح داده.

🔗 Functional Programming in TypeScript

#آموزشی #مهم
@codeaghajcs
👍1
🐳 خب من دیشب برای اولین بار تو عمرم Go رو به wasm کامپایل کردم و نتیجه این شد! پروژه خاصی نیست ولی سریعه، حتی با اینکه من از یه کتابخونه Third-party جاوا اسکریپتی قدیمیِ کُند، در حالت غیر async دارم استفاده میکنم، بازم سریعه.
(اسمش MathJax هست و برای نمایش اون عبارت ریاضی با یه پرامپت ساده LaTeX هست.)
میتونید دمو رو ببینید.

🔗 https://github.com/AmirMahdyJebreily/WasmDegreeToRadians?tab=readme-ov-file


- البته این موضوع که wasn کلا سریعه یه بحث دیگست. باید یه بار تست کنم بینم go توی wasm سریع تره یا c یا fortran یا یه چیز دیگه مثل سی‌شارپ مثلا!

@codeaghajcs
👍3💯1
The iconic Windows XP 'Bliss' desktop wallpaper shown above in 2001 and below in more recent years. location: Sonoma, California, USA
4👍1💔1
📄 ۵ دلیل برای شروع استفاده از کامند لاین لینوکس | 5 Reasons to Start Using the Linux Command Line

- ترمینال، چیزیه که از خیلیم، وقتی که هنوز رابط کاربری گرافیکی ها وجود نداشتن (اصطلاحا GUI ها)، وجود داشته و شما میبینید که حتی توی ۲۰۲۴ که ما صفحه لمسی و کلی رابط کاربری گرافیکی قشنگ داریم، گوگل پلن داره یه ترمینال برای اندروید بده بیرون 🤝. ترمینال اهمیت، سرعت و توانایی کنترل بالایی داره.

🔗 5 Reasons to Start Using the Linux Command Line

#مقاله
@codeaghajcs
👍1
📄 ۱۰ نکته مهم کلین کد | Top 10 Clean Code Rules 🎨🚀

- مقاله بشدت خوبیه برای نوشتن کد تمیز، اگر وقت خوندن کلی کتاب رو ندارین، این کمک بزرگیه. (اصلا جایگزین خوبی نیست فقط کمک بزرگیه!)

🔗 Top 10 Clean Code Rules 🎨🚀

#مقاله

@codeaghajcs
👍2
📄 ۷ پروژه بینایی رایانه برای همه سطوح | 7 Computer Vision Projects for All Levels

- حتما ببینید این مقاله رو، من توضیح بیشتری نمیدم!

🔗 7 Computer Vision Projects for All Levels

#مقاله #مهم
@codeaghajcs
👍1
📄 توسعه تست محور، یک راهنمای جامع | Test-Driven Development: A Comprehensive Guide

- توسعه تست محور، مبناش بر این اساسه که شما قبل از نوشتن کد اصلی، تست اون کد رو بنویسی. مثلا اگر میخوای یه لایبرری بسازی برای تبدیل تایم‌استمپ به زمان و تاریخ آدمیزادی خودمون، اول باید تستشو بنویسی :
public class TimeStampConverterTest
{
[Fact]
public void TestConvert()
{
var got = Converter.Convert(1);
var want = new DateTime(1970,1,1);
Assert.Equal(want, got);
}
}

- حالا که تستشو نوشتی میای و fake آمادش میکنی تا تستت ران بشه و خطا نده:
public static class Converter
{
public static DateTime Convert(long tmstmp){
return new DateTime(1970,1,1)
}
}

- حالا که تستات ران شدن میای و کد رو کامل میکنی 👍

- توسعه تست محور اینطوریه و کلی مزایا و معایب داره که میتونید کاملشو تو این مقاله که اونم با #سی_شارپ کار کرده ببینید. اگر تازه کار هستین بازم تست نوشتن رو باید یاد بگیرین:

🔗 Test-Driven Development: A Comprehensive Guide

#مقاله #مهم
@codeaghajcs
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🐳 یه کار باحال با سینتکس جاوا اسکریپت

- یه چیزی داریم که تو بیشتر زبون های تابع‌گرا بهش پرداخته میشه و اون هم Clouser یا بَستار هست. وقتی اتفاق میوفته که شما یه تابع رو توی scope مشخصی تعریف میکنی و حالا اون تابعی که داری تعریف میکنی، به تمام متغیرای اون scope دسترسی داره (توی ویدیو میگم چرا براشون جالبه این اتفاق).

- با این Clouser ها میشه یه کار باحال کرد:
function sum(n){

// Clouser 👇
return function(m){
if(m == null){
return n
}
return sum(n + m)
}
}

- توی ویدیو بهتر توضیح میدم که چی می‌شه ولی تهش میتونید همینقدر جالب ازش استفاده کنید:
sum(5)(4)(-3)(45)(34)()

- و جواب کل این جمع ما میشه 85 !

- حتما ویدیو رو ببینین و اگر میخواید درمورد Clouser ها بیشتر بدونید این مقاله رو بخونید:
🔗 MDN / Web / JavaScript / Closures

#آموزشی #فان

@codeaghajcs
👍41
🐳 کار های باحالا با iota در زبان Go

- من تو گپ پینک اورکا گفتم iota توی زبان گو کاربرد های بزرگ تری بجز صرفا مثل بقیه زبون ها enum ساختن داره و این و یه سری پست بعدی در این مورد هستن.

- یکی از چیزایی که همیشه توی go دوست دارم اینه که نمیاد ساختار های دست‌وپا گیر بقیه زبون ها رو بهت قالب کنه. میزاره خلاق باشی. مثلا اگر شما بخوای توی چیزی مثل سی‌شارپ enum داشته باشی، محدود خواهی بود :

enum ErrorCode : ushort
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}


- شما اینجا محدودی به یه تایپ و اگر هم عدد بدی عدد شما قبوله و اگر عدد ندی خودش یکی یکی اضافه میکنه و شما کنترل بیشتری نداری (فرض بر اینه که نیاز بیشتری نداری)
- ولی در go شما همچین ساختاری نداری، بجاش فقط یه کلمه کلیدی داری به نام iota که یه سری کار انجام میده و با اون کار ها، میتونی خودت برای خودت همچین ساختاری رو اوکی کنی و حتی خلاقیت خودتم قاطیش کنی :
const(
None = 1 << iota
Unknown
ConnectionLost
)

- کد های بالا یکم عجیبن (چرا باید شیفت بیتی استفاده کنم ؟)
- در واقع هیچ دلیلی نداشت فقط چون دلم میخواست هر بار به توان 2 برسن عددای بیشتر از یک، شیفت بیتی دادم (چون دلم خواسته و گو هم دستمو تو این کار ها باز گذاشته)

- یا مثلا یه نمونه که این واقعا کاربردیه. شما میتونی اینطوری به یه سری عدد ثابت که از فرمول های ثابت بدست میان رو داشته باشی، مثل کیبی‌بایت :
const (
_ = 1 << (10 * iota) // دلم این مقدارو نخواست
KB // 1024
MB // 1048576
)

- این مثال معروفیه، چند جا دیدمش و قبلشم مشابهشو پیاده کردم پس نمیشه گفت کپیه (ولی مثال بعدی کپیه 🙃)


- نمونه های بالا، یکم از سر خالی شدن حرصم روی ساختار های دست‌وپا گیر بود، ولی یه مثال کاربردی ببینیم که از اینجا ورش داشتم :

const (
read = 1 << iota // 0001 = 1
write // 0010 = 2
remove // 0100 = 4
admin = read | write | remove // 7
)


شما میبینید که تهش، admin میشه Or شده همه مقادیر بانری قبلی، یعنی یه جورایی داریم طی یه قائده ای کد های enum خودمون رو بر اساس مقدار های دیگه میچینیم.

- حالا بیاین از خواص دیگر go استفاده کنیم، بیاید یه تایپ تعریف کنیم برای ارور های Http و ببینیم چقدر راحت میشه این ها رو با ترکیب قابلیت های go توی برنامه آورد :
type HttpErr int  

const ClientErrs = 400

func (e *HttpErr) PrntErr() string {
// ارور مناسب رو چاپ کن
}

const (
BadRequest HttpErr = ClientErrs + iota
Unauthorized
PaymentRequired
Forbidden
NotFound
)

- حالا برای استفاده از این ارور ها توی برنامه، کافیه همچین کاری کنی :
log(BadRequest.PrntErr())

- این همه قابلیت، در کنار هم هیچکدوم اون Class های سنتی دات نت و جاوا و پایتون و... نیستن ولی معادل اونها عمل میکنن و به شما اجازه میدن خلاقیتتونو بکار بگیرید. یکی از دوستای من یه جمله گفت در مورد Go اونم این بود که شما با سی‌شارپ و پایتون و جاوا و... نمیتونی ادای Go رو در بیاری ولی با Go میتونی ادای همشونو در بیاری (عملا میشه ساختار ارثبری کلاس ها رو چه با prototype چه بدون اون پیاده سازی کرد با خود Go)
- با سی و راست هم میشه ادای بقیه رو در آورد (جهت جلو گیری از سوء برداشت)

پ.ن : اگر شیفت های بیتی این مثال ها رو متوجه نشدین، این پست همین کانال رو ببینین.

#آموزشی #مهم
@codeaghajcs
12👍1
Forwarded from Woland's Linux Journal (Woland)
💠جایزه‌ی بنیاد نرم‌افزار آزاد اروپا💠

جایزه‌ی بنیاد نرم‌افزار آزاد اروپا به برم مولنار خالق ویم اهدا شد.

این جایزه که به‌صورت پس از مرگ (posthumously) به او اهدا شده، گرامی‌داشت زحمات ۳۲ ساله‌ی او در خلق بهترین و کامل‌ترین ویرایشگر متن و کمک به بهینه‌سازی مدل‌های ویرایش متنی و پرداخت ایده‌های نوین در این زمینه است.

#vim
#ویم
#خبر
2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
~> آراسته

چند وقت پیشا تعدادی از دوستان تو کامیونیتی یه ابزار معرفی کرده بودن که یه‌جور figlet فارسیه و خیلی باحاله.
اسمش آراسته هستش و می‌تونید از [این صفحه] بیشتر باهاش آشنا بشید.

اگه توزیع بر پایه آرچ دارید هم می‌تونید با AUR پکیج araste-git رو به سادگی نصب کنید.

#معرفی #لینوکس #فان
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
📄 پلی‌فیل هایی که بیشتر توی مصاحبه ها پرسیدن میشن در جاوا اسکریپت | Most Asked Polyfills in JavaScript Interviews

- پلی‌فیل به قطعه کد هایی میگن که کار های جاوا اسکریپت های جدید رو توی مرورگر های قدیمی انجام میدن و یه جورایی مثل پُل هستن بیین دنیای بعد از Es6 و قبل اون. نمونش همین foreach هست که وسط مقاله بهش پرداخته شده :
Array.prototype.myForEach = function(callback) {
for (let i = 0; i < this.length; i++) {
callback(this[i], i, this);
}
};

const arrData = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

arrData.myForEach((element) => {
console.log(element);
});

- در js های قدیمی، foreach توی پروتوتایپ آرایه ها وجود نداشته (اطلاعات بیشتر در این پست) و مجبور بودن اینطوری اضافه کنن و این میشه که خیلی جا ها این رو توی مصاحبه ها بپرسن که ببینن اینی که داره foreach استفاده میکنه، میدونه چطوری ساخته میشه یا نه!

- پیشنهاد میکنم حتی اگر نمیخواید جایی برید مصاحبه، باز هم یه نگاهی به این مقاله خیلی قشنگ بندازین :

🔗 Most Asked Polyfills in JavaScript Interviews

#مقاله #آموزشی #مهم
@codeaghajcs
1👍1