Click University
78 subscribers
105 photos
4 videos
90 links
کلیک، دانشگاهِ عصرِ مدرن.

🎓 t.me/ClickUniversity?direct
Download Telegram
سلام.
یه ابزاری هست به نام MobX، کارش چیه؟
قضیه ازین قراره که این ابزار مثل ابزار Redux ، میاد روی State مدیریت میکنه.
خوب حالا فرقش چیه هردو که در عمل یکین؟

این MobX این عمل کرد رو داره :

کدنویسی نسبتاً ساده و کم‌حجم


کمتر درگیر dispatch و reducer می‌شوی


برای Stateهای پیچیده و آبجکت‌های زیاد راحت است



اما Redux این عمل کرد رو داره:

یادگیریش کمی کمی پیچیده‌تر


حجم کد معمولاً بیشتره


ساختاریافته‌تر


خوب جای مقایسه زیاد داره اما همش نمیگنجه که بگم داخل این پست.

@ClickUniversity
چطور ممکنه کسی علناً بگه «AI می‌تونه نابودمون کنه» ولی خودش شبانه‌روزی داره همون رو می‌سازه و سرعتش رو هم بیشتر می‌کنه؟ خب، این مقاله می‌گه جوابش فقط طمع و ریاکاری نیست، بلکه سه تا چیز دست به دست هم دادن که عملاً توقف رو غیرممکن می‌کنه: اول، شرکت‌ها تو یه دوراهی زندانی گیر افتادن — هیچ‌کس به اون یکی اعتماد نداره، می‌ترسه کند شه و رقیبش بزنه جلو، پس همه گاز میدن! دوم، حتی اگه بخوان بایستن، مدل‌هایی که قبلاً منتشر شدن دیگه تو دست همه پخشه و جمع‌کردنشون نشدنیه. سوم، دولت‌ها هم که وارد شدن — آمریکا و چین به هم اعتماد ندارن و AI شده زیرساخت امنیت ملی، پس هر کی فکر می‌کنه اون یکی جلو زده، بیشتر فشار میاره. نتیجه؟ یه «قفل‌شدگی کامل» که هر روز محکم‌ترم می‌شه و مشکل هم از آدم‌ بده نیست، خودِ سیستم طوریه که نگه‌داشتنش تقریباً محاله!

حالا اگه دوست داشتی خودت متن کامل رو بخونی، برو اینجا 👇

📃 Link

@ClickUniversity
اگر فکر می‌کنید فرد مفیدی هستید، پس یک چیز مفیدی به ما بگید : دایرکت

@ClickUniversity
اسم pnpm رو احتمالا کمتر شنیدید و هرچی شنیدید بیشتر npm بوده٬ حالا فرقشون چیه باهم٬ در حالی که هردو بر مدیریت پکیچ های nodejs تمرکز دارن؟

pnpm:
مصرف فضای دیسک: کمتر

سرعت نصب: معمولاً سریع‌تر

محبوبیت/سازگاری: بسیار محبوب، مخصوصاً در پروژه‌های مدرن


npm:
مصرف فضای دیسک: بیشتر

سرعت نصب: خوب

محبوبیت/سازگاری :‌ بسیار گسترده و استاندارد


الان که فرقشون رو فهمیدید انتخاب با خود شماست که از کدوم استفاده میکنید.

@ClickUniversity
این وبسایت میاد اشکال های مختلف هندسی و غیر هندسی رو در دسترس شما ها قرار میده و میتونید با اضافه کردن ادویه خلاقیت ٬ بهترین تجربه کاربری رو خلق کنین.
🔗Link

@ClickUniversity
گیت خراب شد؟ نترس!

Flight Rules for Git
یه راهنمای کاربردی برای وقتی که با Git به مشکل خوردی؛ از اشتباه در commit و rebase گرفته تا چیزهایی که فکر می‌کنی دیگه قابل برگشت نیستن.

این ریپو می تونه یکی از ریپو هایی باشه که نجات دهنده‌س.

🔗 Git Flight Rules

@ClickUniversity
هوش مصنوعی سرعت کدنویسی رو بالا برده، اما GitLab ترمز کشید.
اینجا بخونید
🔗 Link

@ClickUniversity
🦀 چیزهایی که Rust دارد و C ندارد

وقتی از C به Rust می‌ری، یه‌سری قابلیت‌ها واقعاً باعث می‌شن دلت برای Rust تنگ بشه!
از مدیریت حافظه و Resourceها گرفته تا Generics، Traitها، Pattern Matching، تست‌نویسی و Error Handling؛
این مقاله چندتا از چیزهایی رو بررسی می‌کنه که Rust توسعه رو امن‌تر و راحت‌تر می‌کنه.

🔗 Read

@ClickUniversity
همونطوری که قبلا اشاره کردم و گفتم چند مثال از هر یک اینها میزنم که تا مطالب جا بیوفته برا شما،
آقا در پروژه های بزرگ این تایپ ها :

String

Number

Boolean


ممکنه که کارساز نباشن هی دردسر برا شما بتراشن.
اینجاست که این ۴ قابلیت بکارمون میاد:

satisfies


type Config = {
port: number;
mode: "dev" | "prod";
};

const config = {
port: 3000,
mode: "dev"
} satisfies Config;


never


type Status = "loading" | "success" | "error";

function handleStatus(status: Status) {
switch (status) {
case "loading":
return "در حال بارگذاری";

case "success":
return "موفق";

case "error":
return "خطا";

default:
return assertNever(status);
}
}

function assertNever(value: never): never {
throw new Error("Unexpected value");
}


و حالا اگر بعدا بنویسی :

type Status =
| "loading"
| "success"
| "error"
| "cancelled";


این بزرگوار یعنی TypeScript بهت هشدار میده که این cancelled رو در switch مدیریت یا نکردی.

Branded Types


type UserId = string & {
__brand: "UserId";
};

type ProductId = string & {
__brand: "ProductId";
};

function getUser(id: UserId) {}

function getProduct(id: ProductId) {}


ممکنه که این ProductId رو به اشتباه به getUser() میدی اما این Branded Types میاد جلوشو میگیره.

Template Literal Types

مثلاً می‌خواهی اسم Eventها همیشه این شکلی باشند:

user:created
user:deleted
product:created
product:deleted


میتونیم اینو بنویسیم:

type Event = `${"user" | "product"}:${"created" | "deleted"}`


حالا اینو بنویسیم:

const event: Event = "user:created"; // ✅


ولی:

const event: Event = "banana:hello"; // ❌


زمانی استفاده میشه که string ها یک الگوی مشخص داره.

@ClickUniversity
یه فرم ورک جدید این روزا اومده اسمش tinyjs هستش که برای ساخت اپ های دسکتاپ (macOS، Windows و Linux) با زبان JavaScript بکار میره٬ که حجم خروجیش (Build) فقط ۶ مگابایت (حدودا٬ چون بسته به برنامه ممکنه حجم زیاد بشه ) هستش.
بریم سراغ معماری:

بک اند : بر روی موتور txiki.js (ترکیبی از QuickJS و libuv) اجرا میشه و دسترسی کامل به سیستم مانند فایل‌ها، سوکت‌ها، پروسه‌ها، FFI و دیتابیس SQLite داره.

ارتباط (IPC): به جای استفاده از پورت localhost، از طریق Unix socket بین بخش بک‌اند و فرانت‌اند ارتباط برقرار می‌کند.

بدون نیازمندی‌های سنگین: نیازی به Electron، Chromium یا اجرای محیط Node.js در زمان اجرا (Runtime) نداره.

فرانت‌اند (Frontend): از وب‌ویوی نیتیو (Native Webview) سیستم‌عامل استفاده می‌کنه.


اما بریم سراغ کامیونتی:
از اونجایی که این فریم ورک تازه متولد شدست انچنان محبوبیت نداره ٬
در حال حاضر در فاز جلب توجه اولیه (Buzz) در رسانه‌ها و انجمن‌های تکنولوژی مانند daily.dev، Reddit و Hacker News قرار داره.

@ClickUniversity
این Leptos کاری شبیه به nextjs انجام میده اما به جای JavaScript از Rust استفاده میشه.
با Leptos می‌تونی:
رابط‌های کاربری تعاملی (Interactive UI) بسازی.

برنامه‌های Single Page Application (SPA) بسازی.

از Server-Side Rendering (SSR) برای سرعت بهتر استفاده کنی.

کد فرانت‌اند و بک‌اند را با یک زبان (Rust) بنویسی.


نقاط قوت:
سرعت بالا (به دلیل Rust و WebAssembly).

امنیت بیشتر نسبت به بسیاری از زبان‌های سطح بالاتر.

امکان استفاده مشترک از Rust در فرانت‌اند و بک‌اند.


نقطه ضعف:

یادگیری سخت‌تر چون باید Rust یاد بگیری.

اکوسیستم آن هنوز به اندازه nextjs بزرگ نیست.


بیا باهم یه قطعه کد ساده ازین Leptos ببینیم:

#[component]
fn Button() -> impl IntoView {

view! {
<button>
"Click"
</button>
}

}


@ClickUniversity
جنگ بر سر یه تکه سیلیکون!

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

خلاصه اینکه پشت یه تکه کوچیک سیلیکون، یه رقابت خیلی بزرگ بر سر فناوری و قدرت محاسباتی آینده در جریانه.

منبع:
Bureau of Industry and Security (BIS)
Reuters

@ClickUniversity
مگه صدا هم می‌تونه بپره؟!

دانشمندا تونستن برای اولین بار یک پرش کوانتومی در یک ذره‌ی صدا (فونون) رو به‌صورت مستقیم مشاهده کنن. حالا فونون چیه؟ صدا در حالت عادی از لرزش به وجود میاد. وقتی همین لرزش رو در مقیاس خیلی خیلی کوچیک بررسی کنیم، می‌تونیم انرژی اون رو به شکل بسته‌های کوچیک در نظر بگیریم که بهشون «فونون» می‌گن. چیزی که دانشمندا دیدن این بود که این سیستم می‌تونه از یک حالت انرژی به حالت دیگه یک‌دفعه تغییر کنه؛ مثل اینکه از یک پله مستقیم روی پله‌ی بعدی بپری، بدون اینکه پله‌های بینش رو رد کنی. به این اتفاق می‌گن «پرش کوانتومی».

البته قرار نیست فردا با این کشف بلندگو یا هدفون جدید بسازیم! فعلاً اهمیتش بیشتر برای شناخت بهتر دنیای کوانتومه. ولی در آینده می‌تونه به ساخت حسگرهای خیلی حساس، ابزارهای دقیق‌تر برای اندازه‌گیری لرزش‌ها و بعضی فناوری‌های محاسبات کوانتومی کمک کنه. یعنی اینجا «صدا نمی‌پره»؛ چیزی که می‌پره، حالت کوانتومیِ یک لرزش خیلی ریزه.

منبع:
ScienceDaily

۲۲ سپتامبر ۲۰۲۶

@ClickUniversity
وقتی به Dependencyها اعتماد می‌کنیم.

ما به npm install اعتماد می‌کنیم، اما واقعاً چقدر از dependencyهای پروژه‌مون خبر داریم؟

این مقاله سراغ npm audit، Lockfile، Dependabot، Snyk و خطر Supply Chain Attack می‌ره و نشون می‌ده کجای این زنجیره ممکنه مشکل ایجاد بشه.

🔗 Read

@ClickUniversity
یه ابزاری داریم به نام Plotly که کارش ساخت نمودار اونهم به صورت حرفه یی نه ساده.
میتونی باهاش هم تعامل برقرار بکنی:

روی نمودار Hover کنی

زوم کنی

اطلاعات هر نقطه را ببینی

نمودار را دانلود کنی

با داده‌ها تعامل داشته باشی.


و این ابزار برای پایتون هم در دسترسه٬یعنی هم برای js هم برای py.
خلاصه کلام برای اینکه بخوایی یه نمودار پیشرفته داشته باشی میتونی ازین ابزار استفاده کنی.

@ClickUniversity
برنامه‌نویس‌هایی توی سراسر دنیا هستن که بعد از مدتی استفاده از AI برای کدنویسی، تصمیم گرفتن دیگه ازش استفاده نکنن نه به خاطر اینکه براشون مفید نبوده، بلکه چون حس کردن دیگه مثل قبل از خودِ پروسه‌ی کدنویسی لذت نمی‌برن. AIفقط ابزار کارشون رو تغییر نداده، بلکه رابطه‌شون با شغل و چیزی که اصلاً باعث شده بود به برنامه‌نویسی علاقه‌مند بشن رو هم تغییر داده.
پ.ن: از اونجایی که همه‌مون می‌دونیم، برنامه‌نویسی از قدیم شغلی بوده که خیلی‌ها بیشتر به خاطر علاقه واردش شدن، نه صرفاً برای اینکه یه شغل داشته باشن.
🔗 Link

@ClickUniversity
اگه واقعاً می‌خوای بفهمی Graphics Programming چطور کار می‌کنه.

یکی از منابع کلاسیک و فوق‌العاده، کتاب معروف Michael Abrash درباره‌ی برنامه‌نویسی گرافیکی و بهینه‌سازی سطح پایین محسوب می‌شه.

چیزهایی مثل:

- CPU و Memory
- Assembly
- Rendering
- Performance Optimization
- Graphics Pipeline
- الگوریتم‌های گرافیکی


حتی اگر C++/C کار نمی‌کنی، خوندن چنین مطالبی دید خیلی خوبی نسبت به اینکه «کامپیوتر واقعاً زیر کد ما چه کار می‌کنه» می‌ده.

🔗 Link

@ClickUniversity
Wallet Card
رو شخصی‌سازی کن.

AirCard
برای شخصی‌سازی ظاهر Apple Wallet Card روی iOS ساخته شده.

جالبیش اینه که برای استفاده ازش Jailbreak لازم نیست.

یک نمونه‌ی خوب از پروژه‌هایی که با محدودیت‌های سیستم‌عامل کار می‌کنن و در عین حال تجربه‌ی کاربر رو تغییر می‌دن.

🔗 Repo_Link

@ClickUniversity
اگر به AI Agentها علاقه داری، Awesome Listها معدن ایده‌ان.

این ریپو با اسم awesome-jev
مجموعه‌ای از پروژه‌ها، Integrationها و بحث‌های مرتبط با Jev رو جمع می‌کنه.

به جای اینکه تک‌تک دنبال پروژه‌های جدید بگردی، یک Repository می‌تونه نقطه‌ی شروع خوبی برای Exploration باشه.

🔗 Repo_Link

@ClickUniversity
داخل APK چه خبره؟

Reverse Engineering

یعنی تلاش برای فهمیدن ساختار و رفتار یک نرم‌افزار بدون داشتن Source Code اصلی.

این Repository مجموعه‌ای از ابزارها و تکنیک‌ها برای تحلیل APKهای Android فراهم می‌کنه.

موضوعاتی مثل:
"APK"
"Reverse Engineering"
"Static Analysis"
"Android Internals"


که می تونید برسی ش کنید : apk-reverse

@ClickUniversity
یک آسیب‌پذیری جدی در F5 BIG-IP پیدا شده که حتی در حملات واقعی هم ازش سوءاستفاده شده.

این آسیب‌پذیری با شناسه CVE-2026-94127 شناخته میشه و مربوط به بخش APM در F5 BIG-IP هست. طبق گزارش منتشرشده، F5 این آسیب‌پذیری رو ۲۲ سپتامبر ۲۰۲۶ اعلام کرده.

اما اصلاً F5 BIG-IP چیه؟
یک سری تجهیزات و نرم‌افزارهای شبکه‌ایه که شرکت‌ها جلوی سرورها و برنامه‌هاشون قرار میدن.
مثلاً فرض کن یک شرکت ۱۰۰ تا سرور داره. به‌جای اینکه کاربران مستقیماً به سرورها وصل بشن، درخواست‌ها اول میرن سمت BIG-IP و اونجا مدیریت میشن؛ مثل ترافیک شبکه، ورود کاربران، VPN، امنیت و توزیع درخواست‌ها.
یکی از بخش‌هاش هم APM (Access Policy Manager) هست که برای مدیریت دسترسی کاربران استفاده میشه.

حالا مشکل چی بوده؟
این باگ می‌تونه به یک مهاجم اجازه بده از راه دور روی دستگاه کد اجرا کنه؛ یعنی اگر یک سیستم آسیب‌پذیر در معرض اینترنت باشه، مهاجم می‌تونه از این حفره برای نفوذ استفاده کنه.

اینجا اصطلاح Zero-Day هم مهم میشه.
خیلی ساده، Zero-Day یعنی یک حفره امنیتی که مهاجم‌ها قبل از اینکه فرصت کافی برای برطرف کردنش وجود داشته باشه، ازش سوءاستفاده می‌کنن.
پس نکته مهم این خبر فقط پیدا شدن یک باگ نیست؛ گزارش شده که این آسیب‌پذیری در دنیای واقعی هم مورد سوءاستفاده قرار گرفته.
برای جزئیات بیشتر:
🔗 Link

@ClickUniversity