خیلی وقت ها توی پایتون مجبور میشیم برای یه عملیات ساده، یه function چند خطی با def تعریف کنیم. اما امروز میخوام بهتون بگم که سینتکس lambda این مشکل رو حل میکنه.
بزارید توی یه مثال خیلی ساده اینو بهتون بگم. فرض کنید میخواید یه تابع تعریف کنید که عدد رو 2 برابر کنه؛
با def :
اما باlambda :
@ClickUniversity
بزارید توی یه مثال خیلی ساده اینو بهتون بگم. فرض کنید میخواید یه تابع تعریف کنید که عدد رو 2 برابر کنه؛
با def :
def double(x):
return x * 2
print(double(5)) # 10
اما با
double = lambda x: x * 2
print(double(5)) # 10
@ClickUniversity
مجموعهای عالی از منابع Python
A Great Collection of Python Resources
یک مجموعه از منابع آموزشی پایتون که برای یادگیری و عمیقتر شدن در اکوسیستم پایتون جمعآوری شده.
اگر دنبال منابع مختلف براش هستید، این لینک میتونه نقطه شروع خوبی باشه.
🔗 Link
@ClickUniversity
A Great Collection of Python Resources
یک مجموعه از منابع آموزشی پایتون که برای یادگیری و عمیقتر شدن در اکوسیستم پایتون جمعآوری شده.
اگر دنبال منابع مختلف براش هستید، این لینک میتونه نقطه شروع خوبی باشه.
🔗 Link
@ClickUniversity
هوش مصنوعی ها در عصر دیزاین پترن ها.
با ورود AI، نقش Design Patternها هم داره تغییر میکنه،
امروز AI میتونه Pattern پیشنهاد بده یا حتی پیادهسازیش کنه؛
پس سؤال مهمتر اینه:
اصلاً اینجا به Pattern نیاز دارم؟
این مقاله سوال هایی که ممکنه پیش بیاد رو برسی کرده.
🔗 Link
@ClickUniversity
با ورود AI، نقش Design Patternها هم داره تغییر میکنه،
امروز AI میتونه Pattern پیشنهاد بده یا حتی پیادهسازیش کنه؛
پس سؤال مهمتر اینه:
اصلاً اینجا به Pattern نیاز دارم؟
این مقاله سوال هایی که ممکنه پیش بیاد رو برسی کرده.
🔗 Link
@ClickUniversity
سلام.
یه ابزاری هست به نام MobX، کارش چیه؟
قضیه ازین قراره که این ابزار مثل ابزار Redux ، میاد روی State مدیریت میکنه.
خوب حالا فرقش چیه هردو که در عمل یکین؟
این MobX این عمل کرد رو داره :
اما Redux این عمل کرد رو داره:
خوب جای مقایسه زیاد داره اما همش نمیگنجه که بگم داخل این پست.
@ClickUniversity
یه ابزاری هست به نام MobX، کارش چیه؟
قضیه ازین قراره که این ابزار مثل ابزار Redux ، میاد روی State مدیریت میکنه.
خوب حالا فرقش چیه هردو که در عمل یکین؟
این MobX این عمل کرد رو داره :
کدنویسی نسبتاً ساده و کمحجم
کمتر درگیر dispatch و reducer میشوی
برای Stateهای پیچیده و آبجکتهای زیاد راحت است
اما Redux این عمل کرد رو داره:
یادگیریش کمی کمی پیچیدهتر
حجم کد معمولاً بیشتره
ساختاریافتهتر
خوب جای مقایسه زیاد داره اما همش نمیگنجه که بگم داخل این پست.
@ClickUniversity
چطور ممکنه کسی علناً بگه «AI میتونه نابودمون کنه» ولی خودش شبانهروزی داره همون رو میسازه و سرعتش رو هم بیشتر میکنه؟ خب، این مقاله میگه جوابش فقط طمع و ریاکاری نیست، بلکه سه تا چیز دست به دست هم دادن که عملاً توقف رو غیرممکن میکنه: اول، شرکتها تو یه دوراهی زندانی گیر افتادن — هیچکس به اون یکی اعتماد نداره، میترسه کند شه و رقیبش بزنه جلو، پس همه گاز میدن! دوم، حتی اگه بخوان بایستن، مدلهایی که قبلاً منتشر شدن دیگه تو دست همه پخشه و جمعکردنشون نشدنیه. سوم، دولتها هم که وارد شدن — آمریکا و چین به هم اعتماد ندارن و AI شده زیرساخت امنیت ملی، پس هر کی فکر میکنه اون یکی جلو زده، بیشتر فشار میاره. نتیجه؟ یه «قفلشدگی کامل» که هر روز محکمترم میشه و مشکل هم از آدم بده نیست، خودِ سیستم طوریه که نگهداشتنش تقریباً محاله!
حالا اگه دوست داشتی خودت متن کامل رو بخونی، برو اینجا 👇
📃 Link
@ClickUniversity
حالا اگه دوست داشتی خودت متن کامل رو بخونی، برو اینجا 👇
📃 Link
@ClickUniversity
اسم pnpm رو احتمالا کمتر شنیدید و هرچی شنیدید بیشتر npm بوده٬ حالا فرقشون چیه باهم٬ در حالی که هردو بر مدیریت پکیچ های nodejs تمرکز دارن؟
pnpm:
npm:
الان که فرقشون رو فهمیدید انتخاب با خود شماست که از کدوم استفاده میکنید.
@ClickUniversity
pnpm:
مصرف فضای دیسک: کمتر
سرعت نصب: معمولاً سریعتر
محبوبیت/سازگاری: بسیار محبوب، مخصوصاً در پروژههای مدرن
npm:
مصرف فضای دیسک: بیشتر
سرعت نصب: خوب
محبوبیت/سازگاری : بسیار گسترده و استاندارد
الان که فرقشون رو فهمیدید انتخاب با خود شماست که از کدوم استفاده میکنید.
@ClickUniversity
این وبسایت میاد اشکال های مختلف هندسی و غیر هندسی رو در دسترس شما ها قرار میده و میتونید با اضافه کردن ادویه خلاقیت ٬ بهترین تجربه کاربری رو خلق کنین.
🔗Link
@ClickUniversity
🔗Link
@ClickUniversity
گیت خراب شد؟ نترس!
Flight Rules for Git
یه راهنمای کاربردی برای وقتی که با Git به مشکل خوردی؛ از اشتباه در commit و rebase گرفته تا چیزهایی که فکر میکنی دیگه قابل برگشت نیستن.
این ریپو می تونه یکی از ریپو هایی باشه که نجات دهندهس.
🔗 Git Flight Rules
@ClickUniversity
Flight Rules for Git
یه راهنمای کاربردی برای وقتی که با Git به مشکل خوردی؛ از اشتباه در commit و rebase گرفته تا چیزهایی که فکر میکنی دیگه قابل برگشت نیستن.
این ریپو می تونه یکی از ریپو هایی باشه که نجات دهندهس.
🔗 Git Flight Rules
@ClickUniversity
🦀 چیزهایی که Rust دارد و C ندارد
وقتی از C به Rust میری، یهسری قابلیتها واقعاً باعث میشن دلت برای Rust تنگ بشه!
از مدیریت حافظه و Resourceها گرفته تا Generics، Traitها، Pattern Matching، تستنویسی و Error Handling؛
این مقاله چندتا از چیزهایی رو بررسی میکنه که Rust توسعه رو امنتر و راحتتر میکنه.
🔗 Read
@ClickUniversity
وقتی از C به Rust میری، یهسری قابلیتها واقعاً باعث میشن دلت برای Rust تنگ بشه!
از مدیریت حافظه و Resourceها گرفته تا Generics، Traitها، Pattern Matching، تستنویسی و Error Handling؛
این مقاله چندتا از چیزهایی رو بررسی میکنه که Rust توسعه رو امنتر و راحتتر میکنه.
🔗 Read
@ClickUniversity
همونطوری که قبلا اشاره کردم و گفتم چند مثال از هر یک اینها میزنم که تا مطالب جا بیوفته برا شما،
آقا در پروژه های بزرگ این تایپ ها :
ممکنه که کارساز نباشن هی دردسر برا شما بتراشن.
اینجاست که این ۴ قابلیت بکارمون میاد:
و حالا اگر بعدا بنویسی :
این بزرگوار یعنی TypeScript بهت هشدار میده که این cancelled رو در switch مدیریت یا نکردی.
ممکنه که این ProductId رو به اشتباه به getUser() میدی اما این Branded Types میاد جلوشو میگیره.
مثلاً میخواهی اسم Eventها همیشه این شکلی باشند:
میتونیم اینو بنویسیم:
حالا اینو بنویسیم:
ولی:
زمانی استفاده میشه که string ها یک الگوی مشخص داره.
@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) فقط ۶ مگابایت (حدودا٬ چون بسته به برنامه ممکنه حجم زیاد بشه ) هستش.
بریم سراغ معماری:
اما بریم سراغ کامیونتی:
از اونجایی که این فریم ورک تازه متولد شدست انچنان محبوبیت نداره ٬
در حال حاضر در فاز جلب توجه اولیه (Buzz) در رسانهها و انجمنهای تکنولوژی مانند daily.dev، Reddit و Hacker News قرار داره.
@ClickUniversity
بریم سراغ معماری:
بک اند : بر روی موتور 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 میتونی:
نقاط قوت:
نقطه ضعف:
بیا باهم یه قطعه کد ساده ازین Leptos ببینیم:
@ClickUniversity
با 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
شاید عجیب باشه، ولی یکی از دعواهای بزرگ بین آمریکا و چین سر چیزیه که با چشم هم به زور میشه دید: تراشهها.
ریزپردازندهها و تراشههای پیشرفته فقط برای کامپیوتر و موبایل نیستن؛ توی هوش مصنوعی، ابرکامپیوترها و حتی تجهیزات نظامی هم استفاده میشن. آمریکا برای محدود کردن دسترسی چین به بعضی تراشههای پیشرفته و تجهیزات ساختشون محدودیت گذاشته. چین هم داره بیشتر روی ساخت تراشههای خودش سرمایهگذاری میکنه تا وابستگیش کمتر بشه.
خلاصه اینکه پشت یه تکه کوچیک سیلیکون، یه رقابت خیلی بزرگ بر سر فناوری و قدرت محاسباتی آینده در جریانه.
منبع:
Bureau of Industry and Security (BIS)
Reuters
@ClickUniversity
مگه صدا هم میتونه بپره؟!
دانشمندا تونستن برای اولین بار یک پرش کوانتومی در یک ذرهی صدا (فونون) رو بهصورت مستقیم مشاهده کنن. حالا فونون چیه؟ صدا در حالت عادی از لرزش به وجود میاد. وقتی همین لرزش رو در مقیاس خیلی خیلی کوچیک بررسی کنیم، میتونیم انرژی اون رو به شکل بستههای کوچیک در نظر بگیریم که بهشون «فونون» میگن. چیزی که دانشمندا دیدن این بود که این سیستم میتونه از یک حالت انرژی به حالت دیگه یکدفعه تغییر کنه؛ مثل اینکه از یک پله مستقیم روی پلهی بعدی بپری، بدون اینکه پلههای بینش رو رد کنی. به این اتفاق میگن «پرش کوانتومی».
البته قرار نیست فردا با این کشف بلندگو یا هدفون جدید بسازیم! فعلاً اهمیتش بیشتر برای شناخت بهتر دنیای کوانتومه. ولی در آینده میتونه به ساخت حسگرهای خیلی حساس، ابزارهای دقیقتر برای اندازهگیری لرزشها و بعضی فناوریهای محاسبات کوانتومی کمک کنه. یعنی اینجا «صدا نمیپره»؛ چیزی که میپره، حالت کوانتومیِ یک لرزش خیلی ریزه.
منبع:
ScienceDaily
۲۲ سپتامبر ۲۰۲۶
@ClickUniversity
دانشمندا تونستن برای اولین بار یک پرش کوانتومی در یک ذرهی صدا (فونون) رو بهصورت مستقیم مشاهده کنن. حالا فونون چیه؟ صدا در حالت عادی از لرزش به وجود میاد. وقتی همین لرزش رو در مقیاس خیلی خیلی کوچیک بررسی کنیم، میتونیم انرژی اون رو به شکل بستههای کوچیک در نظر بگیریم که بهشون «فونون» میگن. چیزی که دانشمندا دیدن این بود که این سیستم میتونه از یک حالت انرژی به حالت دیگه یکدفعه تغییر کنه؛ مثل اینکه از یک پله مستقیم روی پلهی بعدی بپری، بدون اینکه پلههای بینش رو رد کنی. به این اتفاق میگن «پرش کوانتومی».
البته قرار نیست فردا با این کشف بلندگو یا هدفون جدید بسازیم! فعلاً اهمیتش بیشتر برای شناخت بهتر دنیای کوانتومه. ولی در آینده میتونه به ساخت حسگرهای خیلی حساس، ابزارهای دقیقتر برای اندازهگیری لرزشها و بعضی فناوریهای محاسبات کوانتومی کمک کنه. یعنی اینجا «صدا نمیپره»؛ چیزی که میپره، حالت کوانتومیِ یک لرزش خیلی ریزه.
منبع:
ScienceDaily
۲۲ سپتامبر ۲۰۲۶
@ClickUniversity
وقتی به Dependencyها اعتماد میکنیم.
ما به npm install اعتماد میکنیم، اما واقعاً چقدر از dependencyهای پروژهمون خبر داریم؟
این مقاله سراغ npm audit، Lockfile، Dependabot، Snyk و خطر Supply Chain Attack میره و نشون میده کجای این زنجیره ممکنه مشکل ایجاد بشه.
🔗 Read
@ClickUniversity
ما به npm install اعتماد میکنیم، اما واقعاً چقدر از dependencyهای پروژهمون خبر داریم؟
این مقاله سراغ npm audit، Lockfile، Dependabot، Snyk و خطر Supply Chain Attack میره و نشون میده کجای این زنجیره ممکنه مشکل ایجاد بشه.
🔗 Read
@ClickUniversity
یه ابزاری داریم به نام Plotly که کارش ساخت نمودار اونهم به صورت حرفه یی نه ساده.
میتونی باهاش هم تعامل برقرار بکنی:
و این ابزار برای پایتون هم در دسترسه٬یعنی هم برای js هم برای py.
خلاصه کلام برای اینکه بخوایی یه نمودار پیشرفته داشته باشی میتونی ازین ابزار استفاده کنی.
@ClickUniversity
میتونی باهاش هم تعامل برقرار بکنی:
روی نمودار Hover کنی
زوم کنی
اطلاعات هر نقطه را ببینی
نمودار را دانلود کنی
با دادهها تعامل داشته باشی.
و این ابزار برای پایتون هم در دسترسه٬یعنی هم برای js هم برای py.
خلاصه کلام برای اینکه بخوایی یه نمودار پیشرفته داشته باشی میتونی ازین ابزار استفاده کنی.
@ClickUniversity
برنامهنویسهایی توی سراسر دنیا هستن که بعد از مدتی استفاده از AI برای کدنویسی، تصمیم گرفتن دیگه ازش استفاده نکنن نه به خاطر اینکه براشون مفید نبوده، بلکه چون حس کردن دیگه مثل قبل از خودِ پروسهی کدنویسی لذت نمیبرن. AIفقط ابزار کارشون رو تغییر نداده، بلکه رابطهشون با شغل و چیزی که اصلاً باعث شده بود به برنامهنویسی علاقهمند بشن رو هم تغییر داده.
پ.ن: از اونجایی که همهمون میدونیم، برنامهنویسی از قدیم شغلی بوده که خیلیها بیشتر به خاطر علاقه واردش شدن، نه صرفاً برای اینکه یه شغل داشته باشن.
🔗 Link
@ClickUniversity
پ.ن: از اونجایی که همهمون میدونیم، برنامهنویسی از قدیم شغلی بوده که خیلیها بیشتر به خاطر علاقه واردش شدن، نه صرفاً برای اینکه یه شغل داشته باشن.
🔗 Link
@ClickUniversity
اگه واقعاً میخوای بفهمی Graphics Programming چطور کار میکنه.
یکی از منابع کلاسیک و فوقالعاده، کتاب معروف Michael Abrash دربارهی برنامهنویسی گرافیکی و بهینهسازی سطح پایین محسوب میشه.
چیزهایی مثل:
🔗 Link
@ClickUniversity
یکی از منابع کلاسیک و فوقالعاده، کتاب معروف 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
رو شخصیسازی کن.
AirCard
برای شخصیسازی ظاهر Apple Wallet Card روی iOS ساخته شده.
جالبیش اینه که برای استفاده ازش Jailbreak لازم نیست.
یک نمونهی خوب از پروژههایی که با محدودیتهای سیستمعامل کار میکنن و در عین حال تجربهی کاربر رو تغییر میدن.
🔗 Repo_Link
@ClickUniversity