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

🎓 t.me/ClickUniversity?direct
Download Telegram
گیت خراب شد؟ نترس!

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
یک موتور Knowledge برای پروژه‌های شخصی.

این پلتفرم، یک پلتفرم Open Source برای Knowledge Work.

ایده اینه که اطلاعات ابزارها و سرویس‌های مختلفت رو متصل کنی و بعد بتونی از داخل یک سیستم روی اون‌ها Search و Question Answering انجام بدی.

ترکیب:
Open Source + AI + Search + Knowledge


🔗 Repo_Link

@ClickUniversity
Timeout
فقط setTimeout() نیست.

در Network ممکنه DNS، اتصال، Server یا دریافت Response طول بکشه؛ برای همین Timeout، Retry و Cancellation در سیستم‌های واقعی مهمن.
در سایت زیر می تونید مطالعه کنید.

🔗 Link

@ClickUniversity
یه ابزار کاربردی برای وقتی که می‌خواید ساختار یه پروژه GitHub رو سریع‌تر بفهمید:

گیت دیاگرام میاد آدرس یک ریپازیتوری GitHub رو می‌گیره و از روی ساختار پروژه و README، یه دیاگرام معماری تعاملی می‌سازه و شما میتونید رو هر بخش کلیک کنید و به فایل مربوطه برید.
برای پروژه‌های بزرگ که پیدا کردن ارتباط بین بخش‌های مختلف کد سخته، میتونه خیلی کاربردی باشه.
دسترسی بهش هم ساده ست :
شما باید به جای Hub در کلمه GitHub بنویسید diagram مثل مثال پایین:
gitdiragram.com/repo_name

@ClickUniversity
اگه از کدتون برای پست و آموزش عکس می‌گیرید، این سایت خیلی به دردتون می‌خوره:

Carbon

کدتون رو داخلش می‌نویسید یا Paste می‌کنید و در چند ثانیه یه تصویر مرتب و خوشگل از کد تحویل می‌گیرید.
فونت، رنگ، پس‌زمینه، اندازه و ظاهر کد رو هم می‌تونید تغییر بدید.
برای پست‌های تلگرام، لینکدین یا آموزش‌های برنامه‌نویسی خیلی کاربردیه.

carbon.now.sh

@ClickUniversity
تا حالا خواستی کد های css رو تبدیل کنی به tailwind اما نه دستی همه چی خودکار انجام بشه و اینکه حوصله تبدیل کردن دستی رو نداری.
اینجاست که پای ابزار آنلاین transform tools میاد وسط٬ چکار مکنه حالا ؟
میایی اون کد های css خامتو میدی به این ابزار خودش میاد برات تبدیلش میکنه به tailwind ٬ به همین راحتی.
اما به css و tailwind ختم نمیشه این وبسایت چندین ابزار دیگه هم داره که میتونید در صورت نیاز ازش استفاه کنید.
🔗 Link

@ClickUniversity