کدهالیک | codehalic
4.15K subscribers
529 photos
51 videos
67 files
600 links
دوره های آموزشیمون رو از داخل سایت ببینید

https://codehalic.ir
Download Telegram
گوگل فاز آزمایشی ارائه بازی‌ها در پلتفرم‌های اندروید اتو و سیستم‌عامل اندروید اتوموتیو را به پایان رساند و انتشار عمومی آن‌ها را رسماً آغاز کرد. با این تغییر، توسعه‌دهندگان می‌توانند بازی‌های خود را پس از بهینه‌سازی برای نمایشگر خودروها، در بخش عمومی و تست باز گوگل پلی منتشر کنند. این بازی‌ها به منظور رعایت ایمنی و پیشگیری از حواس‌پرتی راننده، تنها در حالت پارک خودرو اجرا می‌شوند و توسعه‌دهندگان برای ارائه بازی‌های خود در خودرو باید مواردی نظیر تنظیم دسته‌بندی برنامه، اعلام پشتیبانی از دسته‌های بازی و سازگاری با ابعاد مختلف صفحات نمایش خودرو را در فایل مانیفست پروژه پیاده‌سازی کنند.

https://android-developers.googleblog.com/2026/09/bring-android-game-to-car-screen.html

@codehalics | کدهالیک
❤3
برخلاف تصور خیلی‌ها، فرسودگی شغلی توی برنامه‌نویس‌ها اصلاً خودش رو با افت خروجی یا عقب افتادن ددلاین‌ها نشون نمیده؛ اتفاقاً نیروهای کلیدی حتی موقعی که تا مرز بریدن پیش میرن، اجازه نمیدن کیفیت کارشون افت کنه. ریشه اصلی برن‌اوت هم صرفاً کارِ زیاد نیست، بلکه نادیده گرفته شدن تلاش‌ها، حس بی‌اثری و نبود اعتماده. واسه همین مرخصی رفتن فقط یه مسکّن کوتاه‌مدته و تا وقتی ساختار محیط کار اصلاح نشه، همه‌چی سریع برمی‌گرده به حالت قبل. فرسودگی یه ضعف فردی نیست، بلکه یه مشکل ساختاریه؛ یه مدیر کاربلد هم منتظر استعفای ناگهانی نیروهاش نمی‌مونه، بلکه خیلی زودتر از روی تغییرات رفتاری، حواسش به حال‌وهوای تیمش هست.

https://www.blog4ems.com/p/how-to-spot-burnout-in-your-engineers

@codehalics | کدهالیک
❤12🔥3
Media is too big
VIEW IN TELEGRAM
آنتروپیک از مدل opus 5.5 رونمایی کرد !
انتروپیک مدعی شده در بیشتر کارها در سطح Claude Fable 5.1 عمل می‌کند و هزینه‌ی اجرای آن ۴۰٪ کمتر از Opus 5 است.
تازه توی این آپدیت تا یکبار در ماه میتونین دستی یوزیجتون رو ریست کنین

https://www.anthropic.com/claude-opus-5-5

@codehalics | کدهالیک
❤2😁1
اشتباه تو زندگیم زیاد کردم، ولی هیچ‌وقت Jevگیر نشدم!
اما واقعاً JEV چیه؟ این روزها خیلی درباره‌اش صحبت می‌کنند.

تصور کن توی برنامه‌ات، به‌جای این‌که یک مدل سنگین مثل GPT-4 را صدا بزنی تا با کلی تاخیر یک جواب متنیِ طولانی برگرداند، یک «تابع فوق‌سریع و باهوش» داری. تابعی که دیتای ورودی را به آن می‌دهی و در کسر از ثانیه، خروجیِ شسته‌رفته‌ای مثل یک تصمیمِ «بله یا خیر»، یک امتیاز، یا یک انتخابِ مشخص به تو می‌دهد؛ آن هم بدون این‌که حتی یک کلمه متن اضافی بنویسد یا دچار توهم (Hallucination) شود.

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

@codehalics | کدهالیک
👍9❤3
کدهالیک | codehalic
اشتباه تو زندگیم زیاد کردم، ولی هیچ‌وقت Jevگیر نشدم! اما واقعاً JEV چیه؟ این روزها خیلی درباره‌اش صحبت می‌کنند. تصور کن توی برنامه‌ات، به‌جای این‌که یک مدل سنگین مثل GPT-4 را صدا بزنی تا با کلی تاخیر یک جواب متنیِ طولانی برگرداند، یک «تابع فوق‌سریع و باهوش»…
یه مثال باحال باهاش بزنم ببینید چقد میتونه از این ب بعد برنامه نویسی رو جذاب کنه
فرض کنین یه لاجیک کدی قراره بنویسی که چک کنه اگر دیتابیس اومد پایین یه ایونت پابلیش کنه که حالا اون ایونت میره و پیامی میفرسته به اعضای تیم که اقا سرورت داون شده یا دیتابیست اومده پایین
برای اینکار خب باید کلی کد بزنی ولی خب ممکنه تعداد حالت هاش هم زیاد باشه ولی اگر از Jev بخوای این تصمیم گیری رو بنویسه با سی شارپ یه همچین کدی میشه !


// ۱. دقیقاً مشخص می‌کنی مدل فقط حق دارد یکی از این موارد را انتخاب کند
public enum TicketCategory
{
Technical,
Billing,
Spam
}

// ۲. ساختار خروجی مورد انتظار
public record ClassificationResult(TicketCategory Category, double Confidence);

// ۳. فراخوانی مدل در لایه‌ی سرویس
var ticketText = "سلام، سرور دیتابیس دان شده و ریکوئست‌ها تایم‌اوت می‌خورن!";

var result = await _jevClient.AskChoiceAsync<ClassificationResult>(
context: ticketText,
choices: Enum.GetNames<TicketCategory>()
);

// ۴. استفاده مستقیم و بدون باگ در لاجیک برنامه (بدون نیاز به پارس کردن متن)
if (result.Category == TicketCategory.Technical && result.Confidence > 0.85)
{
// هدایت مستقیم به صف تیم فنی
await _messageBus.Publish(new RouteToTechTeamEvent(TicketId));
}
else if (result.Category == TicketCategory.Spam)
{
// حذف خودکار
}


خیلی آینده برنامه نویسی داره ساده و جذاب میشه

@codehalics | کدهالیک
❤4
کدهالیک | codehalic
یه مثال باحال باهاش بزنم ببینید چقد میتونه از این ب بعد برنامه نویسی رو جذاب کنه فرض کنین یه لاجیک کدی قراره بنویسی که چک کنه اگر دیتابیس اومد پایین یه ایونت پابلیش کنه که حالا اون ایونت میره و پیامی میفرسته به اعضای تیم که اقا سرورت داون شده یا دیتابیست…
کد رو که یکم دقیق‌تر بخونی، شاید بگی: «خب که چی؟ مگه بیشتر از یه API Call ساده‌ست؟» ولی داستان اصلاً فقط یه صدا زدنِ ساده نیست!

برخلاف بقیه مدل‌های هوش مصنوعی که اونا هم این قابلیت رو بهت میدن، JEV به سرعت بسیار بالا تو پاسخ‌گویی، سریالایز کردنِ بی‌نقص و تحویل دادنِ یه دیتای شسته‌رفته معروف شده. کافیه یه مدل براش تعریف کنی تا دقیقاً همون رو بهت برگردونه؛ طبق داکیومنتش، تصمیمات رو زیر ۱۰۰ میلی‌ثانیه می‌گیره!

البته جدای از بحث API Call که شاید واسه همچین چیزی کار خیلی جذابی به نظر نیاد (چون عملاً داری لاجیک کُدت رو برون‌سپاری می‌کنی)، ولی واسه یه سری پروژه‌ها استفاده ازش واقعاً کاربردیه و پیشنهادش می‌کنم.

قطعاً مسیر هنوز خیلی طولانیه، ولی هر روز داره یه چیز جدید میاد که آدم فقط می‌گه: «واو! مگه میشه؟ مگه داریم؟»

@codehalics | کدهالیک
👍5❤1
برای اینکه دانش کلی Jev رو ببینم چطوره ۱۲۲ سؤال کنکور تجربی ۱۴۰۵ رو دادم به اون و ۵ مدل دیگه. مدل‌های بزرگ بهتر، کند‌تر و گرون‌تر هستن اما مهم برام مدل‌های کوچیک بود. مثلا از لونا ۲۵٪ بهتر عمل‌ کرد در حالی که ۴.۵ برابر ارزون‌تر و ۳.۷ برابر سریع‌تره. دیپ‌سیک و Qwen رو هم لوله کرد.
The Big Rad ✍️

@codehalics | کدهالیک
👍8❤1
خیلی‌ها فکر می‌کنن تو عصر کدنویسی با هوش مصنوعی دیگه فرقی نمی‌کنه از چه فریم‌ورکی استفاده کنیم و ساختن فریم‌ورک‌های جدید هم بی‌فایده‌ست چون هوش مصنوعی خودش همه‌چیز رو می‌نویسه. اما واقعیت اینه که فریم‌ورک‌ها به پروژه نظم و چارچوب می‌دن؛ اگه خودت یه فریم‌ورک استاندارد و مشخص دست هوش مصنوعی ندی، اون خودش شروع می‌کنه به ساختن یه فریم‌ورک من‌درآوردی و شلخته که بعداً کار باهاش کابوس می‌شه. هوش مصنوعی فقط سرعت کار رو بالا می‌بره، یعنی اگه چارچوب درستی نداشته باشی، صرفاً با سرعت بیشتری کد کثیف تولید می‌کنه. پس فریم‌ورک‌ها هنوزم کاملاً مهم هستن و اتفاقاً الان بهترین وقته که فریم‌ورک‌های جدیدتر، فول‌استک‌تر و سازگارتر با هوش مصنوعی بسازیم تا کنترل پروژه‌ها دست خودمون بمونه.

https://brookslybrand.com/posts/do-frameworks-matter-anymore/

@codehalics | کدهالیک
👍4❤3
آمار جدید گیت‌هاب نشون میده حدود هشتاد درصد برنامه‌نویس‌ها دوست دارن کدهای بهینه‌تر و کم‌مصرف‌تری بنویسن و نگران مصرف انرژی هوش مصنوعی هستن، اما ابزار و معیار مشخصی برای شناسایی و اندازه‌گیری این اتلاف انرژی ندارن. گیت‌هاب توی این مقاله می‌گه بهینه‌سازی کد نباید یه شعار باشه، بلکه باید بیاد توی چرخه روزمره مهندسی و جاهای پرمصرف توی کد، دیتابیس یا شبکه شناسایی بشه. راهکار پیشنهادی اینه که از ایجنت‌های هوش مصنوعی برای پیدا کردن این اتلاف‌ها و فرستادن پیشنهادهای بنچمارک‌شده استفاده کنیم، اما تایید نهایی و سنجیدن اثر واقعی روی سیستم رو به خود برنامه‌نویس واگذار کنیم تا خروجی واقعاً بهینه‌تر بشه.

https://github.blog/news-insights/research/developers-want-more-efficient-software-heres-what-over-1000-github-users-told-us-they-need

@codehalics | کدهالیک
👍3❤1🔥1
۱۰۰ دلار کردیت رایگان برای قابلیت جدید Claude Session!

کاربران اشتراک‌های Pro و Max کلود، می‌تونن ۱۰۰ دلار اعتبار رایگان ( پلن مکس ۲۵۰ دلار میده ) برای بخش کلود کد دریافت کنن.

مراحل دریافت:
🔸 وارد لینک https://claude.ai/code بشید.
🔸 اکانت گیت‌هاب‌تون رو به کلاد کد وصل کنید.
🔸 از بخش Usage، اعتبارتون رو Claim کنید.

❓ چرا Claude Session جذابه؟
چون می‌تونید پرامپت‌ها و تسک‌هاتون رو مستقیماً روی سرورهای کلود اجرا کنید. سیستم شما می‌تونه خاموش یا آفلاین باشه، اما کلود بدون قطعی کارتون رو تا آخر انجام می‌ده!

@codehalics | کدهالیک
❤3🔥1
نسل جدیدی از المان‌های گرافیکی واکنش‌گرا برای فریم‌ورک React معرفی شده که با بهره‌گیری از توان محاسباتی WebGL، افکت‌های بصری شبیه‌سازی‌شده‌ی پلاسما و مایعات را روی canvas پیاده‌سازی می‌کند. این پنل‌های هوشمند در صورت برقراری تماس با یکدیگر ادغام شده و با ایجاد شکست نور در لایه‌های پس‌زمینه و قابلیت چسبندگی منظم ، بستری نوآورانه برای طراحی‌های پیچیده فراهم می‌سازند. با توجه به اتکای شدید این افکت‌ها به پردازشگر گرافیکی (GPU)، بهترین عملکرد آن در مرورگرهای دسکتاپ ارائه می‌شود برای همین این نسخه خیلی برای دیزاین های موبایلی مناسب نیست !

https://cruxgarden.github.io/plasma-ui/

@codehalics | کدهالیک
❤6
نرم‌افزار خود لنوو (Vantage) برای لپ‌تاپ‌های Legion روی لینوکس اجرا نمی‌شه، ابزارهایی هم که جاشو گرفتن کار می‌کنن ولی ظاهرشون خیلی قدیمیه. واسه همین خودم Cohort رو ساختم: یه اپ Qt که با Material 3 طراحی شده و رنگ‌ها و فونت دسکتاپتو خودش برمی‌داره.

پاور مودها (با محدودیت‌های پاور دلخواه)، حالت Conservation و شارژ سریع باتری، فن‌کِرو، نور RGB چهار ناحیه‌ای کیبورد، Fn lock، گرافیک هیبریدی و کلی چیز دیگه رو کنترل می‌کنه. فقط هم چیزایی رو نشون می‌ده که لپ‌تاپت واقعاً ساپورت می‌کنه.

کاملاً رایگان و اوپن‌سورسه (GPL-3.0) و روی هر دیستریبیوشنی کار می‌کنه.

لینک گیت‌هاب:
https://github.com/yappologistic/Cohort

E_Gurl ✍️

@codehalics | کدهالیک
🔥9❤1
نودجی‌اس برای اینکه ایونت لوپ (Event Loop) اصلیش موقع کارهای سنگین قفل نشه، یه سری از کارها رو میسپاره به یه بخش پس‌زمینه به اسم ترد پول که توسط کتابخونه libuv مدیریت میشه. تعداد این تردها به‌صورت پیش‌فرض ۴ تاست و کارهایی مثل رمزنگاری (crypto)، فشرده‌سازی (zlib) یا یک‌سری عملیات دیسک رو انجام میدن. شما میتونید با تغییر متغیر محیطی UV_THREADPOOL_SIZE تعدادشون رو بیشتر یا کمتر کنید.
توی نودجی‌اس سایز پیش‌فرض ترد پول روی ۴ تنظیم شده و می‌تونی اون رو دستی بین ۱ تا ۱۰۲۴ تغییر بدی. تابع os.availableParallelism() این کار رو اتوماتیک انجام نمیده و فقط تعداد هسته‌های در دسترس پردازنده رو میده.

نویسنده توی این مقاله میگه افزایش خودکار تعداد تردهای ترد پول بر اساس تعداد هسته‌های CPU (مثلاً با تابع `availableParallelism`) اصلاً ایده درستی نیست. دلیلش اینه که این تابع فقط تعداد هسته‌های موجود رو نشون میده، نه میزان آزاد بودنشون رو. اگه برنامه‌های مختلف فکر کنن همه هسته‌ها خالیه و کلی ترد جدید بسازن، سرور دچار رقابت شدید بین پروسس‌ها میشه. این کار باعث افزایش جابه‌جایی‌های پردازنده (Context Switching) و پر شدن کش میشه که در نهایت حتی خود ایونت لوپ اصلی نودجی‌اس رو هم کُند میکنه.

از طرف دیگه، زیاد کردن تردها شاید برای کارهای I/O که منتظر دیسک می‌مونن خوب باشه، اما برای کارهای محاسباتی سنگین مثل bcrypt و gzip اوضاع رو بدتر میکنه و زمان پاسخگویی به درخواست‌ها رو بالا می‌بره. نویسنده اشاره میکنه که پایین آوردن اولویت تردها (مثل nice 10) هم مشکل رو کامل حل نمیکنه. در نهایت حرفش اینه که سایز ترد پول نباید اتوماتیک تغییر کنه، بلکه باید بر اساس تست کارایی واقعی روی سرور شلوغ و نوع برنامه به شکل دستی تنظیم بشه.

https://blog.platformatic.dev/more-threads-on-an-already-busy-machine

@codehalics | کدهالیک
👍6❤2
This media is not supported in your browser
VIEW IN TELEGRAM
چرا بلوبانک برای انتقال وجه رمز دوم نمی‌خواد؟ مگه ممکن نیست کسی بتونه توکن احراز هویتش رو بدزده ؟! جوابش توی این ویدیوئه.

توی بوت‌کمپ پاییزه کدهالیک، یه نئوبانک مثل بلوبانک رو از صفر تا صد خودمون می‌سازیم. شروع ۱۰ مهر، به شکل آموزش ویدیویی آنلاین.

برای گرفتن کد تخفیف ، توی دوره میتونی از الان پیش ثبت نام کنی !👇

https://codehalic.ir/courses/backend-engineering-bootcamp

@codehalics | کدهالیک
🔥14❤2🥰2👏1
این مقاله خیلی قشنگ توضیح می‌ده که تو دنیای مهندسی نرم‌افزار ما دو جور توصیه داریم: یه سری قواعد صفر و صدی و سرراست مثل «توابع رو کوچیک بنویس» یا DRY که یادگیریشون راحته اما رعایت کورکورانه‌شون لزوماً ما رو تبدیل به برنامه‌نویس بهتری نمی‌کنه؛ و یه سری توصیه‌های عمیق‌تر که نیاز به قضاوت دارن، مثل اینکه «کد تکراری خیلی بهتر از یه Abstraction اشتباهه». نویسنده تأکید می‌کنه بهترین و ارزشمندترین نصیحت‌ها دقیقاً همون‌هایی هستن که هیچ فرمول و چک‌لیست مشخصی ندارن و اجرا کردنشون سخته، چون درک درستشون فقط با سال‌ها تجربه، درگیر شدن با چالش‌های مختلف و رسیدن به یه «شهود مهندسی» به دست میاد که بهمون نشون می‌ده کِی باید قوانین رو کنار بذاریم و بر اساس شرایط واقعیِ پروژه بهترین تصمیم رو بگیریم.

https://dev.to/remojansen/why-the-best-software-advice-is-the-hardest-to-follow-4kg8?via=dailydev

@codehalics | کدهالیک
❤10👍4🔥1
نیازی نیست برای هر تغییر، یه استیت جدید تعریف کنی و با useEffect آپدیتش کنی؛ این کار فقط باعث دوباره رندر شدن کامپوننت، فلش زدن صفحه و سنگین شدن برنامه میشه.

اگه متغیری داری که میشه اون رو از رو بقیه استیت‌ها یا Propها حساب کرد، دقیقاً همون موقع رندر کردن حسابش کن؛ اگر هم محاسباتش خیالی سنگینه، بذارش داخل useMemo. یادت باشه افکت‌ها برای ارتباط با دنیای بیرون کامپوننت طراحی شدن، نه جابه‌جا کردن داده‌ها بین استیت‌های داخلی!

@codehalics | کدهالیک
❤8
This media is not supported in your browser
VIEW IN TELEGRAM
یادش بخیر ایونت آخر سال پیش که چقدر پرانرژی بود و واقعاً دلم برای اون روزها و دورهمی‌هامون تنگ شده؛ همیشه تلاش کردیم ایونت‌هامون بار فنی خیلی بالایی داشته باشه و توی همین برنامه هم عرفان عباسی عزیزم راجع به یه موضوع فوق‌العاده جذاب یعنی پرفورمنس React در اپلیکیشن‌های ریل‌تایم و چالش‌های سامانه معاملاتی صحبت کرده که امیدوارم به‌زودی دوباره شرایطش پیش بیاد و بتونیم دور هم جمع بشیم و ایونت جدید بذاریم، پس حتماً ویدیو رو ببینید و با لایک و سابسکرایب از کانال حمایت کنید امیدوارم بتونیم به زودی به 1000 تا کاربر توی یوتیوب برسیم !

پ.ن : ببخشید کیفیت ویدیو رو آوردم پایین که حجمش زیاد نشه ویدیو اصلی رو با کیفیت بالا از یوتیوبمون ببینید !

https://www.youtube.com/watch?v=3saUAscSY7g

@codehalics | کدهالیک
❤17🔥3🥰1
دلیل اصلی کند شدن پستگرس توی حجم داده‌های بالا، کندی دیسک‌های ابری مثل EBS هستش و اگر اون رو روی حافظه‌های پرسرعت محلی NVMe اجرا کنین، سرعت تراکنش‌ها چند برابر میشه و فشار سیستم به شدت افت میکنه. البته این تغییر دیسک فقط سرعت کار با داده‌های ردیفی را بالا می‌بره و ماهیت ساختاری دیتابیس را عوض نمیکنه؛ یعنی برای گزارش‌گیری و تحلیل داده‌های خیلی بزرگ، همچنان لازمه که داده‌ها را به یک دیتابیس ستونی مثل کلیک‌هاوس منتقل کنین تا بهترین نتیجه را بگیرین.

https://clickhouse.com/blog/postgres-on-nvme

@codehalics | کدهالیک
👍3🔥1🥰1