کدهالیک | codehalic
3.47K subscribers
319 photos
8 videos
66 files
359 links
دوره های آموزشیمون رو از داخل سایت ببینید

https://codehalic.ir
Download Telegram
کدهالیک | codehalic
امروز یه پروژه جدید دیدم به اسم Perry که ایده‌اش برام جالب بود. ماجراش اینه که می‌خواد TypeScript رو مستقیم به اپلیکیشن Native تبدیل کنه؛ یعنی به‌جای اینکه برای ساخت اپ دسکتاپ یا موبایل مجبور باشیم بریم سمت Electron، WebView، Node Runtime یا چیزهای سنگین‌تر،…
سینتکش هم بامزه است بزارید یه مثال بزنم براتون که این جا بیوفته :

فرض کن می‌خوای یه ابزار داخلی ساده بسازی؛ مثلاً یه پنل کوچک برای تیم عملیات که فایل JSON تراکنش‌ها رو باز کنه، سرچ کنه، خطاها رو هایلایت کنه و خروجی بده.

چند تا راه داری :
یا با React وب می‌سازی و توی مرورگر بازش می‌کنی.

یا با Electron می‌سازی که بشه اپ دسکتاپ، ولی حجمش زیاد می‌شه چون با خودش runtime و مرورگر داره.

یا با زبان‌های Native مثل Swift/Kotlin/C#/C++ می‌سازی که خروجی سبک‌تره، ولی تیم فرانت/JS باید وارد فضای جدیدی بشه.

ولی Perry می‌خواد بگه: همون TypeScript رو نگه دار، ولی خروجی رو Native بده. مثلاً یه چیزی شبیه این می‌نویسی:

import { App, VStack, Text, Button, State } from "perry/ui"

const count = State(0)

App({
title: "Counter",
width: 400,
height: 300,
body: VStack(16, [
Text(`Count: ${count.value}`),
Button("Increment", () => count.set(count.value + 1)),
]),
})


بعد با یه دستور مثل perry counter.ts -o counter تبدیلش می‌کنی به برنامه‌ای که روی سیستم اجرا می‌شه. طبق داکیومنت خود Perry، همین مثال یک پنجره Native روی مک/ویندوز/لینوکس باز میکنه !
چی میخوای دیگ :))))))))

Easy peasy lemon squeezy

@codehalics | کدهالیک
5
خیلی وقت بود نرفته بودیم سر قوانین مهندسی نرم افزار امروز یه قوانین بامزه رو که تقریبا هممون تا الان حسش کردیم رو بررسی میکنیم :

امروز یه قانون بامزه دیدم به اسم Putt’s Law که خیلی خلاصه می‌گه توی سازمان‌های فنی، معمولاً اونایی که تکنولوژی رو عمیق می‌فهمن تصمیم‌گیر نهایی نیستن، و اونایی که تصمیم نهایی رو می‌گیرن، همیشه عمق فنی ماجرا رو نمی‌بینن. برای همین هم خیلی وقت‌ها مدیر فکر می‌کنه «این که کاری نداره، تا هفته بعد آماده‌ست»، ولی تیم فنی می‌دونه پشت همون «کاری نداره» کلی وابستگی، تست، ریسک، زیرساخت، دیتابیس و بدبختی خوابیده. از اون طرف هم اگر آدم‌های فنی از بیزینس و محصول دور بمونن، ممکنه بهترین راه‌حل فنی دنیا رو بسازن، اما دقیقاً مسئله درست رو حل نکنن. تهش انگار این قانون می‌گه درد اصلی تیم‌های نرم‌افزاری فقط تکنولوژی نیست؛ فاصله بین فهم فنی و قدرت تصمیم‌گیریه.

#lawsofsoftwareengineering

@codehalics | کدهالیک
2
کدهالیک | codehalic
خیلی وقت بود نرفته بودیم سر قوانین مهندسی نرم افزار امروز یه قوانین بامزه رو که تقریبا هممون تا الان حسش کردیم رو بررسی میکنیم : امروز یه قانون بامزه دیدم به اسم Putt’s Law که خیلی خلاصه می‌گه توی سازمان‌های فنی، معمولاً اونایی که تکنولوژی رو عمیق می‌فهمن…
این قانون خیلی عمیقه. دقیقاً یکی از دردهای همیشگی ما فنی‌ها همینه؛ ممکنه بهترین، تمیزترین و مهندسی‌شده‌ترین راه‌حل دنیا رو بسازیم، ولی آخرش بفهمیم اصلاً چیزی نبوده که بیزینس لازم داشته. نمونه‌اش هم تا دلتون بخواد برای من اتفاق افتاده. یه چیزی ساختم که از نظر فنی واقعاً پرفکت بوده، همه‌چیزش فکرشده، قابل توسعه، تمیز و خفن؛ بعد آخر کار فهمیدم نیاز واقعی بیزینس یه چیزی بوده که شاید اگر اول درست حرف می‌زدیم و نیازمندی رو دقیق درمی‌آوردیم، ده دقیقه هم ازم وقت نمی‌گرفت. ولی من برای مشکلی در حد پیکان، یه فراری خیلی خفن و مجهز ساخته بودم که آخرش هیچ‌کس نه لازم داشتش، نه ازش سر درمی‌آورد.

یه زمانی آلمانی می‌خوندم، یه ضرب‌المثل بامزه داشتن که می‌گفت:
Erst denken, dann handeln.
لریش میشه: اول فکر کن، بعد عمل کن. حالا این «فکر کردن» توی کار فنی دقیقاً یعنی قبل از دست به کد شدن، بشینی با بیزینس حرف بزنی، مسئله رو بفهمی، نیازمندی رو دقیق دربیاری، بفهمی درد اصلی کجاست و بعد بری سراغ راه‌حل. ولی متأسفانه خیلی از ماها از همون اول می‌پریم وسط اجرا، چون ساختن برامون جذاب‌تر از فهمیدنه. در حالی که اشتباه محضه؛ تو اصلاً چه می‌دونی نیازمندی دقیق بیزینس چیه که داری براش سولوشن طراحی می‌کنی؟ خیلی وقت‌ها مهارت اصلی این نیست که راه‌حل پیچیده‌تر بسازیم؛ مهارت اصلی اینه که بفهمیم اصلاً لازم هست چیزی بسازیم یا نه.


@codehalics | کدهالیک
👍2
سایت بالا بود و همه‌چیز ظاهراً درست کار می‌کرد. حتی لینک مستقیم عکس‌هایی که روی S3 بودند بدون مشکل باز می‌شدند و 200 برمی‌گشتند. اما کاور بعضی عکس‌ها در پروداکشن 500 می‌داد. وقتی DevTools را چک کردم، دیدم مرورگر به‌جای اینکه مستقیم عکس را از S3 بگیرد، دارد مسیر /_next/image را صدا می‌زند. همان‌جا مشخص شد مشکل از خود عکس یا S3 نیست، بلکه از Image Optimization در Next.js است. چون وقتی از کامپوننت Image استفاده می‌کنیم و optimization روشن باشد، Next.js عکس را از منبع می‌گیرد، resize و optimize می‌کند و بعد به مرورگر تحویل می‌دهد. این یعنی سرور کوچک من با 1 vCPU و 2GB RAM عملاً داشت نقش Image CDN را بازی می‌کرد. در محیط production، داخل Docker، با عکس‌های بزرگ PNG و سایزهایی مثل 3840، این پردازش گاهی به timeout یا خطای 500 می‌رسید. راه‌حل این بود که برای این شرایط، optimization را در Next.js خاموش کنم و images.unoptimized: true بگذارم تا مرورگر مستقیم عکس را از S3 بگیرد. خلاصه اگر لینک مستقیم S3 درست کار می‌کند اما /_next/image خطای 500 می‌دهد، احتمالاً مشکل از optimizer خود Next.js است، نه از فایل عکس یا S3.

نتیجه ساده است: اگر لینک مستقیم عکس درست کار می‌کند اما /_next/image خطای 500 می‌دهد، احتمالاً مشکل از S3 نیست؛ مشکل از این است که سرور Next.js توان پردازش و optimize کردن آن عکس را ندارد. برای سرورهای کوچک، image optimization واقعی باید روی CDN انجام شود، نه روی خود اپلیکیشن.

Hossein Molavi | The Engineering Mind

@codehalics | کدهالیک
👍12
در دیجیکالا برای حفظ سلامت معماری کدبیس‌های TypeScript و کنترل وابستگی بین ماژول‌ها، از ابزاری داخلی برای تحلیل coupling و cohesion استفاده می‌کنیم. حالا تصمیم گرفتیم نسخه ساده‌ای از این ابزار را با نام ts-modularity متن‌باز کنیم. این ابزار با اجرای دستور npx ts-modularity کدبیس را اسکن می‌کند و ساختار وابستگی‌ها، کلاسترهای طبیعی، چرخه‌های پنهان و بخش‌هایی را که نیاز به refactor دارند، به‌صورت بصری در مرورگر نمایش می‌دهد. هدف ts-modularity این است که تیم‌ها بتوانند خیلی سریع تصویر واضح‌تری از معماری واقعی کد خود داشته باشند و تصمیم‌های بهتری برای بهبود ساختار ماژول‌ها بگیرند.

https://github.com/mberneti/ts-modularity


@codehalics | کدهالیک
👏20👍2
یه قابلیت خیلی کم‌تر دیده‌شده توی Git هست به اسم rerere.

اسمش یعنی: Reuse Recorded Resolution
یعنی چی؟ یعنی اگه یه بار یه merge conflict رو حل کردی، Git می‌تونه یادش بمونه دفعه بعد اگه همون conflict تکرار شد، همون راه‌حل قبلی رو خودش دوباره اعمال کنه.
فقط کافیه یک بار فعالش کنی:
git config --global rerere.enabled true
از اون به بعد، مخصوصاً توی rebase، mergeهای تکراری، branchهای طولانی یا وقتی چند بار به یه conflict مشابه می‌خوری، Git کم‌کم می‌فهمه قبلاً چی کار کردی.

https://git-scm.com/book/en/v2/Git-Tools-Rerere

نمونه واقعی:
https://gist.github.com/skipcloud/f1033afb4fa5681d69fa63458cc95928

@codehalics | کدهالیک
9👎1
کدهالیک | codehalic
یه قابلیت خیلی کم‌تر دیده‌شده توی Git هست به اسم rerere. اسمش یعنی: Reuse Recorded Resolution یعنی چی؟ یعنی اگه یه بار یه merge conflict رو حل کردی، Git می‌تونه یادش بمونه دفعه بعد اگه همون conflict تکرار شد، همون راه‌حل قبلی رو خودش دوباره اعمال کنه. فقط…
مثلاً فرض کن یه branch قدیمی داری و هر بار که با main ری‌بیسش می‌کنی، سر یک فایل config یا یک import خاص conflict می‌خوری.
بار اول خودت conflict رو حل می‌کنی و به Git می‌گی کدوم نسخه درسته.
از دفعه بعد، اگر دوباره دقیقاً همان conflict پیش بیاد، Git می‌گه:
Resolved using previous resolution
یعنی: «داداش اینو قبلاً با هم حل کرده بودیم، من یادمه.»
همین‌جاست که rerere از یه قابلیت عجیب Git تبدیل می‌شه به یه نجات‌دهنده واقعی.

@codehalics | کدهالیک
5👎1
امروز یه چیزی دیدم که بعد مدت ها خستگیمو در کرد :))))
کدهالیک از مرز ۳۰۰۰ کاربر گذشت.

الان خانواده کدهالیک به ۳٬۰۱۶ نفر رسیده و تا امروز ۵٬۵۸۲ ثبت‌نام روی دوره‌ها داشتیم. بیشتر از ۱۷٬۷۴۴ بازدید محتوا ثبت شده، ۱۱٬۱۵۹ بازدید یکتا داشتیم و فقط در بخش ویدیوها، یادگیرنده‌ها بیش از ۸۳۳ ساعت و ۳۳ دقیقه آموزش دیده‌اند. ( این آمار مربوط به یک ماه گذشته است و کدهالیک نزدیک به 1 ساله که متولد شده و آماری از اون تایم تا یه ماه پیش ازش در دسترسمون نیست دی:)

چیزی که برای ما جذاب‌تر از خود عددهاست، عمق یادگیریه. تا امروز ۲٬۷۳۹ ویدیو کامل دیده شده، ۴٬۱۳۷ ویدیو توسط کاربران تماشا شده، ۱۹۹٬۳۵۵ رویداد یادگیری ثبت شده و ۴۰۷ یادگیرنده فعال داریم که واقعاً دارن مسیرشون رو جلو می‌برن.

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

https://codehalic.ir/

@codehalics | کدهالیک
16🔥5
کدهالیک | codehalic
امروز یه چیزی دیدم که بعد مدت ها خستگیمو در کرد :)))) کدهالیک از مرز ۳۰۰۰ کاربر گذشت. الان خانواده کدهالیک به ۳٬۰۱۶ نفر رسیده و تا امروز ۵٬۵۸۲ ثبت‌نام روی دوره‌ها داشتیم. بیشتر از ۱۷٬۷۴۴ بازدید محتوا ثبت شده، ۱۱٬۱۵۹ بازدید یکتا داشتیم و فقط در بخش ویدیوها،…
یه آمار خیلی جذاب دیگه از کدهالیک:

بین فعال‌ترین یادگیرنده‌های کدهالیک، کاربری داریم که تا امروز ۲۷ ساعت و ۱۶ دقیقه آموزش دیده. بعد از اون هم چندین کاربر دیگه داریم که بین ۱۲ تا ۲۵ ساعت از آموزش‌های سایت رو تماشا کردن.

یعنی فقط ۱۳ نفر از فعال‌ترین یادگیرنده‌ها، روی هم بیشتر از ۲۰۷ ساعت آموزش دیدن.

جذاب‌تر اینکه میانگین تکمیل آموزش بین این کاربران، در بیشتر موارد بالای ۹۰٪ بوده. یعنی صرفاً وارد دوره نشدن؛ واقعاً نشستن، دیدن، جلو رفتن و یاد گرفتن.

برای من این عددها فقط آمار نیستن. نشونه اینه که کدهالیک داره کم‌کم به بخشی از مسیر یادگیری آدم‌ها تبدیل میشه.

@codehalics | کدهالیک
🔥8👍3
کدهالیک | codehalic
یه آمار خیلی جذاب دیگه از کدهالیک: بین فعال‌ترین یادگیرنده‌های کدهالیک، کاربری داریم که تا امروز ۲۷ ساعت و ۱۶ دقیقه آموزش دیده. بعد از اون هم چندین کاربر دیگه داریم که بین ۱۲ تا ۲۵ ساعت از آموزش‌های سایت رو تماشا کردن. یعنی فقط ۱۳ نفر از فعال‌ترین یادگیرنده‌ها،…
یه آمار قشنگ دیگه هم از همراهی شما داریم.
در طول یک سال گذشته، ۳۶ نفر از مسیر «کافی بده» از کدهالیک حمایت کردن و مجموع حمایت‌ها به ۵٬۱۶۵٬۳۷۶ تومان رسیده.

شاید این عدد در ظاهر فقط یک مبلغ باشه، اما برای من معنی بزرگ‌تری داره. یعنی آدم‌هایی بودن که محتوای کدهالیک براشون مفید بوده، به مسیرش اعتماد کردن و خواستن سهمی در ادامه‌دار شدنش داشته باشن.
اگر آموزش‌های کدهالیک براتون مفید بوده و دوست داشتید از ادامه این مسیر حمایت کنید، می‌تونید از این لینک کنارمون باشید:

https://www.coffeebede.com/codeholic

ممنونیم که فقط مخاطب نیستید؛ همراه این مسیر هستید.

@codehalics | کدهالیک
👍156🔥1
یه چیز جدید توی css یاد گرفتم باهاتون میخوام شیر کنم !

پارالاکس یعنی وقتی کاربر صفحه رو اسکرول می‌کنه، لایه‌های مختلف با سرعت متفاوت حرکت کنن؛ مثلاً متن عادی بالا بیاد ولی عکس پس‌زمینه کمی کندتر جابه‌جا بشه و صفحه حس عمق بگیره. قبلاً برای این کار معمولاً سراغ JavaScript می‌رفتیم، ولی الان با CSS جدید می‌شه خود انیمیشن رو به اسکرول وصل کرد؛ یعنی انیمیشن به جای زمان، با حرکت اسکرول جلو می‌ره. مثلاً خیلی ساده می‌تونیم بگیم عکس داخل یک بخش، موقع اسکرول کمی بالا و پایین حرکت کنه:
.parallax {
overflow: hidden;
view-timeline-name: --parallax;
}

.parallax img {
animation: moveImage linear both;
animation-timeline: --parallax;
animation-range: cover;
}

@keyframes moveImage {
from {
transform: translateY(-20%);
}

to {
transform: translateY(20%);
}
}

خلاصه‌اش اینه: برای افکت‌هایی مثل پارالاکس، قبل از اینکه سریع بریم سراغ JS، بهتره اول ببینیم خود CSS راه‌حل سبک‌تر و تمیزتری نداره.

https://dan-webnotes.com/posts/2026-06-02-css-native-parallax-effect/

@codehalics | کدهالیک
16🔥2
کدهالیک | codehalic
یه چیز جدید توی css یاد گرفتم باهاتون میخوام شیر کنم ! پارالاکس یعنی وقتی کاربر صفحه رو اسکرول می‌کنه، لایه‌های مختلف با سرعت متفاوت حرکت کنن؛ مثلاً متن عادی بالا بیاد ولی عکس پس‌زمینه کمی کندتر جابه‌جا بشه و صفحه حس عمق بگیره. قبلاً برای این کار معمولاً…
از این داریم توی صفحه دوره کدهالیک استفاده میکنیم میتونین به طور نمونه یکی از دوره ها رو با دسکتاپ باز کنین سمت چپ که ثبت نام دوره است داره با همین انمیشن parallax کند تر از باقی قسمت ها بالا میره که روی هر دیوایس با هر Height ای تمرکزش روی ثبت نام در دوره باشه که دیده شه !
خود همینم از دل یه باگ برای یه کاربر میومد که Height دیوایسش انقد کم بود که دکمه ثبت نام رو نمیدید !

به طور مثال این صفحه رو توی دسکتاپ ببینید :
https://codehalic.ir/courses/frontend-codecamp-beginners

@codehalics | کدهالیک
🔥82
یه باگ عجیب توی VSCode و github.dev پیدا شده که داستانش خیلی ترسناکه:

فقط با کلیک روی یه لینک، ممکن بود مهاجم به GitHub Token شما برسه؛ یعنی همون چیزی که می‌تونه به ریپوهای خصوصی‌تون دسترسی داشته باشه و حتی روی بعضی ریپوها تغییر ایجاد کنه.

ماجرا از اینجا شروع می‌شه که github.dev در واقع یه VSCode داخل مرورگره. حالا پژوهشگر امنیتی نشون داده بود که با ترکیب یک Jupyter Notebook، Webview و چند میان‌بر کیبورد، می‌شه کاری کرد VSCode فکر کنه خود کاربر داره یه اکستنشن رو نصب می‌کنه؛ در حالی که پشت صحنه، یه کد مخرب داره توکن GitHub رو می‌دزده.

جزییات این باگ در این لینک :
https://blog.ammaraskar.com/github-token-stealing/


@codehalics | کدهالیک
😱1
مایکروسافت توی Build 2026 یه خبر مهم برای دنیای AI Agentها داد: OpenClaw داره رسمی‌تر وارد اکوسیستم ویندوز و Microsoft 365 می‌شه. OpenClaw همون ایده‌ی «دستیار هوش مصنوعی که فقط جواب نمی‌ده، کار انجام می‌ده» رو جلو می‌بره؛ یعنی می‌تونه چند مرحله کار رو پشت سر هم انجام بده، با فایل‌ها، ابزارها، ایمیل، تقویم یا سرویس‌های سازمانی درگیر بشه و نقش یه عامل اجرایی واقعی رو بازی کنه، نه فقط یه چت‌بات معمولی.

نکته‌ی مهم خبر اینه که مایکروسافت نمی‌خواد این مدل ایجنت‌ها همین‌طوری ول و بدون کنترل روی سیستم شرکت‌ها اجرا بشن. برای همین OpenClaw روی ویندوز با چیزی به اسم Microsoft Execution Containers یا MXC اجرا می‌شه؛ یعنی نود و گیت‌وی OpenClaw داخل محیط کنترل‌شده و ایزوله بالا می‌آیند تا IT و Security بتوانند مشخص کنند ایجنت به چه فایل، شبکه، داده یا منبعی دسترسی داشته باشد. از آن طرف Microsoft Scout هم معرفی شده؛ یک ایجنت همیشه‌فعال داخل Microsoft 365 که با Teams، Outlook، OneDrive و SharePoint کار می‌کند و طبق اعلام مایکروسافت، بر پایه تکنولوژی متن‌باز OpenClaw ساخته شده.

@codehalics | کدهالیک
1
استک اورفلو که سال‌ها پاتوق اصلی برنامه‌نویسا برای یادگیری و رفع باگ بود، حسابی افت کرده

تعداد سوالات ماهانه‌اش از حدود ۲۰۷ هزار تا در ۲۰۱۴ رسیده به کمتر از ۴ هزار تا در ۲۰۲۶!

حالا Stack Overflow کم‌کم داره از یه انجمن زنده، تبدیل می‌شه به موزه‌ای از دانش برنامه‌نویس‌ها؛ همون دانشی که حالا خود AIها ازش تغذیه می‌کنن.

@codehalics | کدهالیک
👍16😱2🤬1
میدونم که دلتون برای قوانین مهندسی نرم افزار تنگ شده بود (الکی)

یه تصور خطرناک توی تیم‌سازی هست که می‌گه: «کار عقب افتاده؟ آدم اضافه کن.»

ولی اثر رینگلمان دقیقاً همین‌جا می‌زنه زیر میز.

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

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

توی تیم فنی هم همین داستانه. همیشه اضافه کردن دولوپر یعنی سرعت بیشتر نیست. گاهی یعنی کانفلیکت بیشتر، مرج بیشتر، جلسه بیشتر، وابستگی بیشتر، منتظر موندن بیشتر. یعنی تیم به جای اینکه انرژی‌اش بره پای ساختن محصول، خرج هماهنگ کردن خودش می‌شه.

#lawsofsoftwareengineering

@codehalics | کدهالیک
👍63🔥1
کدهالیک | codehalic
میدونم که دلتون برای قوانین مهندسی نرم افزار تنگ شده بود (الکی) یه تصور خطرناک توی تیم‌سازی هست که می‌گه: «کار عقب افتاده؟ آدم اضافه کن.» ولی اثر رینگلمان دقیقاً همین‌جا می‌زنه زیر میز. می‌گه هرچی تعداد آدم‌های یک گروه بیشتر می‌شه، الزاماً خروجی بیشتر…
من همیشه برای توضیح این خطای مدیریتی یه مثال ساده می‌زنم: به دنیا اومدن یک بچه ۹ ماه زمان می‌بره؛ حالا اگر ۹ نفر رو کنار هم بذاریم، بچه یک‌ماهه به دنیا نمیاد.

خیلی وقت‌ها مدیرها با تیم و پروژه هم همین‌طوری برخورد می‌کنن. فکر می‌کنن هر کاری که زمان‌بر شده، با اضافه کردن آدم سریع‌تر می‌شه. در حالی که بعضی کارها ذاتاً زمان، بلوغ، هماهنگی و تمرکز می‌خوان. آدم اضافه کردن، اگر بدون طراحی درست نقش‌ها، مرز مسئولیت‌ها و مسیر تصمیم‌گیری باشه، نه‌تنها کار رو سریع‌تر نمی‌کنه، بلکه تیم رو کندتر هم می‌کنه.

چون از یه جایی به بعد، مسئله دیگه «کمبود آدم» نیست؛ مسئله اینه که آدم‌ها دارن وقتشون رو صرف هماهنگ شدن با هم می‌کنن، نه جلو بردن کار.

@codehalics | کدهالیک
👍5😁4
حمایت از دوره‌های رایگان و باکیفیت فارسی، همیشه جزو ارزش‌های کدهالیک بوده و هست.

دوست خوبمون مرجان عزیزاللهی، به‌تازگی یه دوره جذاب UX Research توی سایت سکان آکادمی منتشر کرده که کاملاً رایگانه و حاصل تجربیات عملی خودشه. دیدن این دوره رو به همه علاقه‌مندان این حوزه پیشنهاد می‌کنیم!

لینک دسترسی به دوره:
👇
https://sokanacademy.com/academy/courses/ux-research

پ.ن: بدون vpn باید وارد سایت بشید وگرنه خطای ۵۰۴ میگیرید !

@codehalics | کدهالیک
17👍1🔥1
چند آسیب‌پذیری مهم در 7Zip طی ماه‌های اخیر افشا شده که می‌توانند از طریق فایل‌های ZIP دستکاری‌شده، به مهاجم اجازه اجرای کد مخرب روی سیستم قربانی را بدهند.

مهم‌ترین این موارد مربوط به نحوه پردازش Symbolic Linkها در فایل‌های ZIP است. مهاجم می‌تواند آرشیوی بسازد که هنگام Extract شدن، فایل‌هایی را خارج از مسیر مورد انتظار بنویسد (Directory Traversal) و در برخی سناریوها این موضوع به Remote Code Execution منجر شود. CVE-2025-11001 و CVE-2025-11002 از شناخته‌شده‌ترین نمونه‌های این دسته هستند.

همچنین اخیراً یک آسیب‌پذیری Heap Overflow در Handler مربوط به NTFS Archiveها گزارش شده که حتی باز کردن یک آرشیو آلوده می‌تواند زمینه اجرای کد مخرب را فراهم کند. این مشکل در نسخه 26.00 وجود داشته و در 26.01 برطرف شده است.

نکته نگران‌کننده اینجاست که 7Zip مکانیزم Auto Update ندارد و هنوز تعداد زیادی از سیستم‌ها نسخه‌های قدیمی و آسیب‌پذیر را اجرا می‌کنند.

@codehalics | کدهالیک
نسخه جدید زبان برنامه‌نویسی الکسیر (نسخه ۱.۲۰) به تازگی منتشر شده است که مهم‌ترین تغییر آن، توانایی تشخیص خودکار خطاهای کدنویسی قبل از اجرای برنامه است. در این آپدیت، الکسیر بدون نیاز به درگیر کردن برنامه‌نویس با کدهای پیچیده، باگ‌ها را پیشاپیش پیدا می‌کند تا نرم‌افزار پایداری بسیار بیشتری داشته باشد. اگر با این زبان آشنایی ندارید، جالب است بدانید که الکسیر برای مدیریت سیستم‌های بسیار شلوغ طراحی شده و به همین دلیل در شبکه‌های مخابراتی کاربرد گسترده‌ای دارد؛ به عنوان یک مثال ملموس، بخش چت اپلیکیشن دیوار نیز با همین زبان نوشته شده تا بتواند همزمان حجم عظیمی از پیام‌های کاربران را در لحظه و بدون قطعی
پردازش کند.

https://elixir-lang.org/blog/2026/06/03/elixir-v1-20-0-released/

@codehalics | کدهالیک