کدهالیک | codehalic
بچهها، شاید بپرسید وقتی دو تا درخواست تو یک نانوثانیه به دیتابیس میرسن، دیتابیس چطور جادو میکنه که همزمانی (Concurrency) پیش نمیاد؟ راز دیتابیس در دو کلمه خلاصه میشه: B-Tree Index و Latches وقتی ما یک ستون رو یونیک میکنیم، دیتابیس تو پسزمینه یک ساختار…
حالا هر چی گفتم رو به عنوان خط آخر دفاعی توی کدتون باید در نظر بگیرید یعنی بدترین اتفاق که میوفته آخرین خط ما میشه دیتابیس چرا ؟ چون دیتابیس با اون قفلهای سختافزاریش عالیه، ولی مثل گاوصندوق ته بانکه؛ درگیر کردن دیتابیس گرونه و نباید بذاریم هر درخواست تکراری اصلاً پاش به اونجا برسه! تو سیستمهای پرترافیک، ما سپرها رو میاریم جلوتر. راحتترین راهکار ردیس (Redis) و دستور
@codehalics | کدهالیک
SETNX هست که مثل یه بادیگارد فرز دم در، تو همون رم (RAM) و در کسری از ثانیه قفل رو میگیره و اجازه ورود همزمان نمیده (Distributed Lock). راهکار خفنتر، معماریهای مبتنی بر ایونت مثل کافکا یا ربیتامکیو هست؛ وقتی کلید پرداخت رو به عنوان Message Key بدیم، کافکا تمام درخواستهای تکراری رو میفرسته تو یک پارتیشن و به صورت کاملاً ترتیبی پردازش میکنه؛ اینطوری کلاً صورتمسئلهی همزمانی از ریشه پاک میشه! یه سولوشن جذابِ مهندسی دیگه هم اکتور مدل (Actor Model) هست که هر تراکنش رو مثل یک کارمند با یه «صندوق پستی» اختصاصی میبینه که تو هر لحظه فقط و فقط یک نامه (درخواست) رو از صندوقش برمیداره و باز میکنه. در واقع تو یه معماری تمیز، ردیس سپر اوله، کافکا ترافیک رو تو صفهای تکنفره منظم میکنه، و دیتابیس هم با اون Unique Constraint به عنوان خط آخر دفاعی، خیالمون رو کاملاً راحت میکنه.@codehalics | کدهالیک
کدهالیک | codehalic
ر SETNX
FYI :
کلمه SETNX مخفف SET if Not Exist عه. کارش دقیقاً همینه: «تنها در صورتی این کلید رو بساز که از قبل وجود نداشته باشه».
در حالت عادی، وقتی تو ردیس مینویسی
اگر کلید وجود نداشته باشه: اون رو میسازه و عدد
اگر کلید وجود داشته باشه: هیچ کاری نمیکنه و عدد
قدیما توسعهدهندهها اول
امروزه در ردیس سینیورها از دستور توسعهیافتهی
SET idempotency_key_123 "processing" NX EX 60
این دستور یعنی: «کلید رو بساز فقط اگر نبود (NX) و بعد از ۶۰ ثانیه منقضیش کن (EX 60)». همه اینها در یک میلیثانیه و بدون هیچ فاصلهای انجام میشه.
@codehalics | کدهالیک
کلمه SETNX مخفف SET if Not Exist عه. کارش دقیقاً همینه: «تنها در صورتی این کلید رو بساز که از قبل وجود نداشته باشه».
در حالت عادی، وقتی تو ردیس مینویسی
SET key value، اگر کلید از قبل وجود داشته باشه، مقدار جدید روی قبلی اوررایت (Overwrite) میشه. اما SETNX اینطوری نیست:اگر کلید وجود نداشته باشه: اون رو میسازه و عدد
1 (یا همان True) برمیگردونه.اگر کلید وجود داشته باشه: هیچ کاری نمیکنه و عدد
0 (یا همان False) برمیگردونه.قدیما توسعهدهندهها اول
SETNX میزدن، بعد تو خط بعدی برای کلید یک زمان انقضا (EXPIRE) میذاشتن تا کلید تا ابد تو حافظه نمونه. اما این کار خطرساز بود! اگر سرور دقیقاً بعد از خط اول کرش میکرد، کلید تا ابد میموند و سیستم قفل میشد (Deadlock).امروزه در ردیس سینیورها از دستور توسعهیافتهی
SET با آپشنهای اختصاصی استفاده میکنند که کل این پروسه را اتمیک میکند:SET idempotency_key_123 "processing" NX EX 60
این دستور یعنی: «کلید رو بساز فقط اگر نبود (NX) و بعد از ۶۰ ثانیه منقضیش کن (EX 60)». همه اینها در یک میلیثانیه و بدون هیچ فاصلهای انجام میشه.
@codehalics | کدهالیک
1
خلاصه ماجرا اینکه تو سیستمهای حساس همیشه فرمول طلایی «اول تصاحب کن، بعد انجام بده» (Claim-Then-Act) رو بچسبید؛ حالا بسته به حجم ترافیک پروژهتون، چه با بادیگاردیِ سریعِ ردیس دم در، چه با نظمِ صف کافکا، و چه با Unique Constraint دیتابیس به عنوان خط آخر دفاع! 😉👊
@codehalics | کدهالیک
@codehalics | کدهالیک
1👍6
اولین خبر جذاب این md عه که توی ریپو اپل توی گیت هاب منتشر شده
اپل یه قدم جدیتر به دنیای کانتینرها نزدیک شده. توی پروژهی جدیدش به اسم container، قابلیتی به نام container machine معرفی کرده که عملاً یه محیط لینوکسی سبک و سریع روی مک میسازه؛ چیزی بین کانتینر و VM، اما خیلی یکپارچهتر با خود macOS. میتونی روی مک کدت رو با IDE خودت ادیت کنی، همون repo و dotfileهات داخل محیط لینوکسی هم در دسترس باشن، بعد build و run رو داخل لینوکس انجام بدی. حتی اگر ایمیجت systemd داشته باشه، میتونی سرویسهایی مثل PostgreSQL رو واقعی مثل یه ماشین لینوکسی اجرا کنی. جذابترش اینه که با imageهای استاندارد OCI کار میکنه، یعنی از دنیای Docker و رجیستریهای معمول خیلی دور نیست. خلاصه اپل داره برای دولوپرهای Apple Silicon یه تجربهی بومیتر و تمیزتر از توسعه و تست لینوکسی روی مک میسازه؛ مخصوصاً برای کسایی که همیشه بین macOS برای کار روزمره و Linux برای اجرا و تست پروژه گیر بودن.
https://github.com/apple/container/blob/main/docs/container-machine.md
@codehalics | کدهالیک
اپل یه قدم جدیتر به دنیای کانتینرها نزدیک شده. توی پروژهی جدیدش به اسم container، قابلیتی به نام container machine معرفی کرده که عملاً یه محیط لینوکسی سبک و سریع روی مک میسازه؛ چیزی بین کانتینر و VM، اما خیلی یکپارچهتر با خود macOS. میتونی روی مک کدت رو با IDE خودت ادیت کنی، همون repo و dotfileهات داخل محیط لینوکسی هم در دسترس باشن، بعد build و run رو داخل لینوکس انجام بدی. حتی اگر ایمیجت systemd داشته باشه، میتونی سرویسهایی مثل PostgreSQL رو واقعی مثل یه ماشین لینوکسی اجرا کنی. جذابترش اینه که با imageهای استاندارد OCI کار میکنه، یعنی از دنیای Docker و رجیستریهای معمول خیلی دور نیست. خلاصه اپل داره برای دولوپرهای Apple Silicon یه تجربهی بومیتر و تمیزتر از توسعه و تست لینوکسی روی مک میسازه؛ مخصوصاً برای کسایی که همیشه بین macOS برای کار روزمره و Linux برای اجرا و تست پروژه گیر بودن.
https://github.com/apple/container/blob/main/docs/container-machine.md
@codehalics | کدهالیک
GitHub
container/docs/container-machine.md at main · apple/container
A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon. - apple/container
❤1
کدهالیک | codehalic
اولین خبر جذاب این md عه که توی ریپو اپل توی گیت هاب منتشر شده اپل یه قدم جدیتر به دنیای کانتینرها نزدیک شده. توی پروژهی جدیدش به اسم container، قابلیتی به نام container machine معرفی کرده که عملاً یه محیط لینوکسی سبک و سریع روی مک میسازه؛ چیزی بین کانتینر…
حالا سؤال اصلی اینه: اینی که اپل ساخته رقیب داکره؟ جواب کوتاه: آره، ولی نه دقیقاً اون مدلی که فکر میکنیم. Docker فقط یه ابزار اجرای کانتینر نیست؛ یه اکوسیستم کامل از CLI، رجیستری، Dockerfile، Compose، Desktop و کلی ابزار جانبیه. چیزی که اپل ساخته بیشتر داره نقطهضعف اصلی Docker روی مک رو هدف میگیره: اینکه macOS ذاتاً لینوکس نیست و کانتینرهای لینوکسی روی مک باید داخل یه ماشین مجازی اجرا بشن. Docker Desktop سالها همین کار رو کرده، ولی همیشه یه لایه نسبتاً سنگین و جدا از خود سیستمعامل بوده. اپل حالا داره میگه چرا این تجربه مستقیمتر، بومیتر و هماهنگتر با Apple Silicon نباشه؟ یعنی به جای اینکه برای توسعه لینوکسی روی مک همیشه به یک ابزار ثالث وابسته باشیم، خود macOS یه مسیر رسمیتر برای اجرای کانتینرهای لینوکسی بده؛ با ایمیجهای استاندارد OCI، محیط لینوکسی قابل نگهداری، mount شدن فایلهای مک داخل لینوکس و اجرای سرویسهایی مثل PostgreSQL با systemd. پس فعلاً جایگزین کامل Docker نیست، اما جهت حرکتش واضحه: اپل میخواد تجربهی container روی مک کمتر شبیه «یه لینوکس چسبیده به مک» باشه و بیشتر شبیه بخشی طبیعی از خود macOS.
@codehalics | کدهالیک
@codehalics | کدهالیک
❤2
کدهالیک | codehalic
حالا سؤال اصلی اینه: اینی که اپل ساخته رقیب داکره؟ جواب کوتاه: آره، ولی نه دقیقاً اون مدلی که فکر میکنیم. Docker فقط یه ابزار اجرای کانتینر نیست؛ یه اکوسیستم کامل از CLI، رجیستری، Dockerfile، Compose، Desktop و کلی ابزار جانبیه. چیزی که اپل ساخته بیشتر داره…
البته با توجه به قیمت دلار و وضعیت جنگ نزدیکترین تجربمون به macos تقریبا 200 میلیون آب میخوره که خیلیم عالی اصلا کجای این ناراحت کنندس اصلا ؟!
@codehalics | کدهالیک
@codehalics | کدهالیک
😁6
و فاینالی npm به خودش اومده دوستان !
حالا npm بالاخره داره یکی از ترسناکترین بخشهای دنیای جاوااسکریپت رو جدیتر کنترل میکنه. توی npm v12 قرار نیست هر پکیجی که نصب میکنیم، همینطوری خودکار اسکریپتهای preinstall، install و postinstall خودش رو اجرا کنه؛ یعنی اون لحظه معروفی که فقط میزنی npm install و یک عالمه کد ناشناس از dependencyها روی سیستم یا CI/CD اجرا میشه، دیگه قرار نیست پیشفرض و بیاجازه اتفاق بیفته. از این به بعد باید پکیجهایی که واقعاً بهشون اعتماد داری رو approve کنی و بقیه بلاک میشن. حتی Git dependencyها و dependencyهایی که از URL مستقیم میآیند هم بدون اجازه صریح resolve نمیشن. این تغییر شاید اولش برای بعضی پروژهها دردسر migration داشته باشه، مخصوصاً پکیجهای native که node-gyp دارند، ولی از نظر امنیت supply chain اتفاق مهمیه؛ چون حمله به npm همیشه لازم نیست از خود کد اصلی پروژه بیاد، گاهی همین اسکریپتهای نصب میتونن در لحظه install تبدیل به در ورودی حمله بشن. خلاصه npm v12 داره میگه: نصب پکیج نباید مساوی اجرای بیچونوچرای کد غریبه باشه !
https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/
@codehalics | کدهالیک
حالا npm بالاخره داره یکی از ترسناکترین بخشهای دنیای جاوااسکریپت رو جدیتر کنترل میکنه. توی npm v12 قرار نیست هر پکیجی که نصب میکنیم، همینطوری خودکار اسکریپتهای preinstall، install و postinstall خودش رو اجرا کنه؛ یعنی اون لحظه معروفی که فقط میزنی npm install و یک عالمه کد ناشناس از dependencyها روی سیستم یا CI/CD اجرا میشه، دیگه قرار نیست پیشفرض و بیاجازه اتفاق بیفته. از این به بعد باید پکیجهایی که واقعاً بهشون اعتماد داری رو approve کنی و بقیه بلاک میشن. حتی Git dependencyها و dependencyهایی که از URL مستقیم میآیند هم بدون اجازه صریح resolve نمیشن. این تغییر شاید اولش برای بعضی پروژهها دردسر migration داشته باشه، مخصوصاً پکیجهای native که node-gyp دارند، ولی از نظر امنیت supply chain اتفاق مهمیه؛ چون حمله به npm همیشه لازم نیست از خود کد اصلی پروژه بیاد، گاهی همین اسکریپتهای نصب میتونن در لحظه install تبدیل به در ورودی حمله بشن. خلاصه npm v12 داره میگه: نصب پکیج نباید مساوی اجرای بیچونوچرای کد غریبه باشه !
https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/
@codehalics | کدهالیک
👍1
آنتروپیک مهربون هم مدل جدیدش Claude Fable 5 رو معرفی کرده و این یکی فقط یه «مدل قویتر» ساده نیست؛ بیشتر شبیه یه قدم جدی به سمت AI agentهاییه که میتونن کارهای طولانیتر و پیچیدهتر رو واقعاً جلو ببرن. طبق ادعای Anthropic، Fable 5 توی نرمافزار، تحلیل اسناد، vision، کارهای پژوهشی و مخصوصاً تسکهای چندمرحلهای از مدلهای قبلیشون جلوتره؛ یعنی به جای اینکه فقط چند خط کد پیشنهاد بده، قرار شده بتونه مهاجرت کد، تحلیل کدبیس بزرگ، ساخت اپ از روی اسکرینشات، کار با دیتای طولانی و حتی حل مسئلههای پژوهشی رو جدیتر انجام بده. کنار این، یه نسخه محدودتر به اسم Mythos 5 هم هست که همون مدل زیربناییه ولی برای گروههای قابلاعتماد مثل تیمهای دفاع سایبری و بعضی پژوهشگرها با محدودیت کمتر ارائه میشه. بخش جالبتر ماجرا اینه که Anthropic خودش هم میگه این سطح از توانایی خطر داره؛ برای همین Fable 5 روی موضوعات حساس مثل هک، زیستشناسی، شیمی و تلاش برای کپیبرداری از مدل، محافظهکارتر عمل میکنه و گاهی جواب رو به مدل ضعیفتر Opus 4.8 میسپره. خلاصه اگر موج قبلی AIها درباره «کمک به کدنویسی» بود، این خبر بیشتر دربارهی اینه که مدلها دارن میرن سمت انجام کارهای واقعیتر، طولانیتر و پرریسکتر؛ جایی که هم جذابه، هم ترسناک، هم خیلی جدی.
https://www.anthropic.com/news/claude-fable-5-mythos-5
@codehalics | کدهالیک
https://www.anthropic.com/news/claude-fable-5-mythos-5
@codehalics | کدهالیک
Anthropic
Claude Fable 5 and Claude Mythos 5
Today we’re launching Claude Fable 5: a Mythos-class model that we’ve made safe for general use.
❤2
یه داستان بامزه هم چند وقت پیش اتفاق افتاد
یه شرکت خدمات عمومی یه فرم آنلاین مهم داشت که مردم باید باهاش درخواست سرویس ثبت میکردن. قبلش چند بار تلاش کرده بودن درستش کنن، حتی یه نسخه React هم ساخته بودن، ولی خروجی پر از loading، stateهای پیچیده، مشکل accessibility و دردسرهای عجیب شده بود؛ تا حدی که بعد از چند روز جمعش کردن. بعد یه نفر اومد گفت شاید مشکل اینه که داریم برای یه فرم ساده، زیادی مهندسی فضایی میکنیم. نسخه جدید رو HTML-first ساخت؛ یعنی فرمها واقعاً فرم بودن، هر مرحله submit میشد، دادهها و آپلودها سمت backend ذخیره میشدن، بدون JavaScript هم کار میکرد و JavaScript فقط برای بهتر کردن تجربه اضافه شده بود، نه اینکه کل محصول بهش وابسته باشه. نتیجه؟ تعداد آدمهایی که فرم رو کامل میکردن، یکشبه دو برابر شد. نکتهاش خیلی سادهست: همه کاربرها اینترنت عالی، گوشی جدید و مرورگر تمیز ندارن. بعضی وقتها حرفهایترین تصمیم این نیست که اپلیکیشن سنگینتر بسازیم؛ اینه که چیزی بسازیم که روی بدترین شرایط هم کار کنه.
https://mohkohn.co.uk/writing/html-first/
@codehalics | کدهالیک
یه شرکت خدمات عمومی یه فرم آنلاین مهم داشت که مردم باید باهاش درخواست سرویس ثبت میکردن. قبلش چند بار تلاش کرده بودن درستش کنن، حتی یه نسخه React هم ساخته بودن، ولی خروجی پر از loading، stateهای پیچیده، مشکل accessibility و دردسرهای عجیب شده بود؛ تا حدی که بعد از چند روز جمعش کردن. بعد یه نفر اومد گفت شاید مشکل اینه که داریم برای یه فرم ساده، زیادی مهندسی فضایی میکنیم. نسخه جدید رو HTML-first ساخت؛ یعنی فرمها واقعاً فرم بودن، هر مرحله submit میشد، دادهها و آپلودها سمت backend ذخیره میشدن، بدون JavaScript هم کار میکرد و JavaScript فقط برای بهتر کردن تجربه اضافه شده بود، نه اینکه کل محصول بهش وابسته باشه. نتیجه؟ تعداد آدمهایی که فرم رو کامل میکردن، یکشبه دو برابر شد. نکتهاش خیلی سادهست: همه کاربرها اینترنت عالی، گوشی جدید و مرورگر تمیز ندارن. بعضی وقتها حرفهایترین تصمیم این نیست که اپلیکیشن سنگینتر بسازیم؛ اینه که چیزی بسازیم که روی بدترین شرایط هم کار کنه.
https://mohkohn.co.uk/writing/html-first/
@codehalics | کدهالیک
mohkohn.co.uk
How building an HTML-first site doubled our users overnight
My client was a utility company, and they had a big problem...
🔥3
یه نکته جالب از کنفرانس WWDC اپل!
توی ویدیو هر بار که کلمه سیری گفته میشد فرکانسهای ۳، ۴، ۵ و ۶ کیلوهرتز صدا رو کات میکردن. چرا؟
برای اینکه وقتی دارید ویدیو رو میبینید، سیری توی دیوایسهای اطراف شما بیدلیل بیدار نشه.
Behrad Javed
@codehalics | کدهالیک
توی ویدیو هر بار که کلمه سیری گفته میشد فرکانسهای ۳، ۴، ۵ و ۶ کیلوهرتز صدا رو کات میکردن. چرا؟
برای اینکه وقتی دارید ویدیو رو میبینید، سیری توی دیوایسهای اطراف شما بیدلیل بیدار نشه.
Behrad Javed
@codehalics | کدهالیک
❤6👍3
یه چیزی این چند روزه خیلی ترند شده اینکه میگن lets encrypt که یکی از مهم ترین ابزار ها برای ssl گرفتن بود ایران رو تحریم میکنه و این صحبتا
برای شفافسازی، لازمه به اظهارات عمومی یکی از کارکنان ISRG/Let’s Encrypt اشاره کنم:
در ترد عمومی Hacker News که پس از انتشار این آپدیت منتشر شد، کاربر jaas (از کارکنان ISRG) در پاسخ به سؤالات و نگرانیها موارد زیر را بیان کرد:
این آپدیت بیشتر یک شفافسازی حقوقی است و تغییر عمدهای در عمل ایجاد نکرده است.
گواهینامهها همچنان برای موجودیتهای غیر دولتی در ایران، بدون مشکل در دسترس هستند.
محدودیتهای اصلی عمدتا متوجه دولت و نهادهای دولتی است، نه مردم عادی.
متنکامل رو اینجا میتونید ببینید.
https://news.ycombinator.com/item?id=48453275
Alireza Manafi
@codehalics | کدهالیک
برای شفافسازی، لازمه به اظهارات عمومی یکی از کارکنان ISRG/Let’s Encrypt اشاره کنم:
در ترد عمومی Hacker News که پس از انتشار این آپدیت منتشر شد، کاربر jaas (از کارکنان ISRG) در پاسخ به سؤالات و نگرانیها موارد زیر را بیان کرد:
این آپدیت بیشتر یک شفافسازی حقوقی است و تغییر عمدهای در عمل ایجاد نکرده است.
گواهینامهها همچنان برای موجودیتهای غیر دولتی در ایران، بدون مشکل در دسترس هستند.
محدودیتهای اصلی عمدتا متوجه دولت و نهادهای دولتی است، نه مردم عادی.
متنکامل رو اینجا میتونید ببینید.
https://news.ycombinator.com/item?id=48453275
Alireza Manafi
@codehalics | کدهالیک
👍2
اگه برای کار اپلای میکنید این به دردتون میخوره!
یکی یه ابزار CLI درست کرده که براتون دنبال کار میگرده، بر اساس معیارهاتون بهش امتیاز میده، رزومه و CV براش optimize میکنه و تمامی مراحل رو track میکنه!
جالبش اینه که هر چی بیشتر اپلای کنید، بهتر شما رو میشناسه و امتیازبندی دقیقتری انجام میده! پلتفرمهای که ساپورت میکنه: Greenhouse, Lever, Workday, LinkedIn و...
حواستون باشه که این یک بات auto-apply نیست ولی پروسه پیدا کردن کار رو خیلی براتون راحت میکنه :)
https://github.com/santifer/career-ops
Amir
@codehalics | کدهالیک
یکی یه ابزار CLI درست کرده که براتون دنبال کار میگرده، بر اساس معیارهاتون بهش امتیاز میده، رزومه و CV براش optimize میکنه و تمامی مراحل رو track میکنه!
جالبش اینه که هر چی بیشتر اپلای کنید، بهتر شما رو میشناسه و امتیازبندی دقیقتری انجام میده! پلتفرمهای که ساپورت میکنه: Greenhouse, Lever, Workday, LinkedIn و...
حواستون باشه که این یک بات auto-apply نیست ولی پروسه پیدا کردن کار رو خیلی براتون راحت میکنه :)
https://github.com/santifer/career-ops
Amir
@codehalics | کدهالیک
❤8
کدهالیک | codehalic
آنتروپیک مهربون هم مدل جدیدش Claude Fable 5 رو معرفی کرده و این یکی فقط یه «مدل قویتر» ساده نیست؛ بیشتر شبیه یه قدم جدی به سمت AI agentهاییه که میتونن کارهای طولانیتر و پیچیدهتر رو واقعاً جلو ببرن. طبق ادعای Anthropic، Fable 5 توی نرمافزار، تحلیل اسناد،…
🚫 شرکت انتروپیک تحت فشار دولت آمریکا، دسترسی کاربران غیرآمریکایی به مدلهای فیبل ۵ و میتوس ۵ را بهطور ناگهانی قطع کرد. واشینگتن این ابزارها را تهدیدی برای امنیت ملی میداند و انتروپیک برای رعایت این دستور، دسترسی جهانی را متوقف کرده است.
🚫 بر اساس دستور دولت ایالات متحده، حتی غیرآمریکاییهای ساکن در آمریکا (ازجمله کارمندان انتروپیک) هم نباید به فیبل ۵ و میتوس ۵ دسترسی داشته باشند.
حالا ما یه چارتا هدر و فوتر باهاش درست کردیم انقد ننه من غریبن بازی نداشت آقای آنتروپیک
@codehalics | کدهالیک
🚫 بر اساس دستور دولت ایالات متحده، حتی غیرآمریکاییهای ساکن در آمریکا (ازجمله کارمندان انتروپیک) هم نباید به فیبل ۵ و میتوس ۵ دسترسی داشته باشند.
حالا ما یه چارتا هدر و فوتر باهاش درست کردیم انقد ننه من غریبن بازی نداشت آقای آنتروپیک
@codehalics | کدهالیک
🤬15😁12
بچهها یه چیزی رو خیلی وقتها توی حرف زدن با آدمهای فنی میبینم؛ خیلیها از نظر تخصصی واقعاً قویان، مسئله رو خوب میفهمن، تجربه دارن، کد میزنن، تصمیم فنی میگیرن، ولی وقتی پای زبان انگلیسی وسط میاد، مخصوصاً توی مصاحبه، جلسه یا وقتی باید درباره پروژهها و تجربهشون حرف بزنن، یهدفعه اعتمادبهنفسشون میریزه.
به نظرم مشکل خیلی وقتها این نیست که زبان بلد نیستن؛ مشکل اینه که زبانی که یاد گرفتن، خیلی به درد دنیای کاریشون نمیخوره. برای یه برنامهنویس، اینکه توی هتل چی بگه یا توی فرودگاه چطور آدرس بپرسه، اولویت اول نیست. چیزی که واقعاً لازم داره اینه که بتونه توی مصاحبه خودش رو خوب معرفی کنه، درباره تجربههاش حرف بزنه، توی جلسه فنی نظر بده و تواناییهاش رو درست منتقل کنه.
جابزلینگو دقیقاً از همین نقطه اومده. یه پلتفرم آموزش زبان انگلیسی برای آدمهای حوزه تکنولوژی و برنامهنویسی که بهجای آموزشهای عمومی و کلی، روی چیزهایی تمرکز کرده که واقعاً توی کار لازم میشه؛ مصاحبه کاری، جلسه فنی، توضیح پروژه، ارتباط با تیمهای بینالمللی و بهتر حرف زدن درباره تخصص خودت.
اگه از نظر فنی جلو هستی، ولی زبان باعث شده برای موقعیتهای بهتر عقب بکشی، به نظرم جابزلینگو رو ببین. شاید دقیقاً همون چیزی باشه که کمک کنه تخصصت همونقدر که واقعاً هست، دیده بشه.
ازشون میتونین کمک بگیرین
@jobzlingo
@codehalics | کدهالیک
به نظرم مشکل خیلی وقتها این نیست که زبان بلد نیستن؛ مشکل اینه که زبانی که یاد گرفتن، خیلی به درد دنیای کاریشون نمیخوره. برای یه برنامهنویس، اینکه توی هتل چی بگه یا توی فرودگاه چطور آدرس بپرسه، اولویت اول نیست. چیزی که واقعاً لازم داره اینه که بتونه توی مصاحبه خودش رو خوب معرفی کنه، درباره تجربههاش حرف بزنه، توی جلسه فنی نظر بده و تواناییهاش رو درست منتقل کنه.
جابزلینگو دقیقاً از همین نقطه اومده. یه پلتفرم آموزش زبان انگلیسی برای آدمهای حوزه تکنولوژی و برنامهنویسی که بهجای آموزشهای عمومی و کلی، روی چیزهایی تمرکز کرده که واقعاً توی کار لازم میشه؛ مصاحبه کاری، جلسه فنی، توضیح پروژه، ارتباط با تیمهای بینالمللی و بهتر حرف زدن درباره تخصص خودت.
اگه از نظر فنی جلو هستی، ولی زبان باعث شده برای موقعیتهای بهتر عقب بکشی، به نظرم جابزلینگو رو ببین. شاید دقیقاً همون چیزی باشه که کمک کنه تخصصت همونقدر که واقعاً هست، دیده بشه.
ازشون میتونین کمک بگیرین
@jobzlingo
@codehalics | کدهالیک
👏5❤1🥰1
یه خبر امنیتی خیلی خفن اومده: تیم Depthfirst میگه ایجنت امنیتی خودکارشون تونسته ۲۱ تا Zero-day توی FFmpeg پیدا کنه؛ همون FFmpeg معروفی که تقریباً همهجا هست، از مرورگرها و سرویسهای استریم گرفته تا ابزارهای تبدیل و پردازش ویدئو. جذابیت ماجرا اینه که این باگها بعد از کلی بررسی امنیتی سنگین توسط تیمهایی مثل Google و Anthropic پیدا شدن و بعضیهاشون ظاهراً ۱۵ تا ۲۰ سال توی کد خوابیده بودن. از اون مهمتر، خروجی ایجنت فقط «احتمالاً اینجا باگه» نبوده؛ برای هر مورد ورودی قابل بازتولید ساخته که ثابت کنه مشکل واقعاً وجود داره. یکی از نمونهها هم تا حد Primitive برای اجرای کد از راه دور جلو رفته؛ یعنی اگر FFmpeg یک استریم RTSP مخرب رو باز کنه، ماجرا میتونه جدی بشه. خلاصه اینکه AI توی امنیت داره از مرحله حرف و دمو رد میشه و کمکم وارد فاز شکار واقعی باگهای عمیق توی کدهای قدیمی و سخت میشه.
https://depthfirst.com/research/21-zero-days-in-ffmpeg
@codehalics | کدهالیک
https://depthfirst.com/research/21-zero-days-in-ffmpeg
@codehalics | کدهالیک
❤6
نسخه جدید Docker Desktop 4.77 منتشر شد؛ آپدیتی که بیشتر روی پایداری، دیباگ و بهبود تجربه توسعهدهندهها تمرکز دارد. در این نسخه امکان خروجی گرفتن از لاگها اضافه شده، جستوجوی لاگها قابلیت Case-sensitive گرفته، ابزارهای اصلی مثل Docker Engine، Buildx، containerd، Docker Agent و MCP Gateway آپدیت شدهاند و نصب و آپدیت اکستنشنها هم با pinned manifest digest امنتر شده است. در کنار اینها، چند باگ مهم هم در Windows و WSL رفع شده؛ از جمله مشکل گیر کردن Docker Engine در حالت Starting و مشکل خروج تمیز از برنامه در Windows Containers mode.
https://docs.docker.com/desktop/release-notes/
@codehalics | کدهالیک
https://docs.docker.com/desktop/release-notes/
@codehalics | کدهالیک
Docker Documentation
Docker Desktop release notes
Find the Docker Desktop release notes for Mac, Linux, and Windows.
یه ایده ساده ولی خیلی مهم توی طراحی محصول هست به اسم «Every Frame Perfect»؛ یعنی اگر از اپلیکیشنت در هر لحظهای اسکرینشات بگیری، همون فریم هم باید قابلفهم، تمیز و منطقی باشه. نه فقط حالت نهایی صفحه، نه فقط وقتی لودینگ تموم شده، نه فقط وقتی انیمیشن کامل شده؛ حتی وسط جابهجایی بین دو صفحه، وسط لود شدن دیتا، وسط انیمیشنها و تغییر وضعیتها هم UI نباید شلخته و نصفهنیمه به نظر بیاد.
حرف مقاله اینه که کاربر کد ما رو نمیبینه، معماری ما رو نمیفهمه و نمیدونه پشت محصول چقدر زحمت کشیده شده؛ تنها چیزی که میبینه همون رابط کاربریه. وقتی صفحه سفید فلش میزنه، محتوا نصفه لود میشه، دکمهها میپرن، انیمیشنها با هم سینک نیستن یا یک جای اپ میگه «در حال بررسی» و جای دیگه میگه «یک آپدیت موجوده»، ناخودآگاه حس میکنه محصول خامه. شاید مشکل کوچیک باشه، ولی اعتماد کاربر دقیقاً از همین جزئیات ریز ساخته یا خراب میشه. خلاصه اینکه UI خوب فقط طراحی قشنگ در حالت نهایی نیست؛ مسیر رسیدن به اون حالت هم باید تمیز، دقیق و قابلاعتماد باشه.
https://tonsky.me/blog/every-frame-perfect/
@codehalics | کدهالیک
حرف مقاله اینه که کاربر کد ما رو نمیبینه، معماری ما رو نمیفهمه و نمیدونه پشت محصول چقدر زحمت کشیده شده؛ تنها چیزی که میبینه همون رابط کاربریه. وقتی صفحه سفید فلش میزنه، محتوا نصفه لود میشه، دکمهها میپرن، انیمیشنها با هم سینک نیستن یا یک جای اپ میگه «در حال بررسی» و جای دیگه میگه «یک آپدیت موجوده»، ناخودآگاه حس میکنه محصول خامه. شاید مشکل کوچیک باشه، ولی اعتماد کاربر دقیقاً از همین جزئیات ریز ساخته یا خراب میشه. خلاصه اینکه UI خوب فقط طراحی قشنگ در حالت نهایی نیست؛ مسیر رسیدن به اون حالت هم باید تمیز، دقیق و قابلاعتماد باشه.
https://tonsky.me/blog/every-frame-perfect/
@codehalics | کدهالیک
این مقاله یه نکته مهم درباره کار با AI و مخصوصاً AI Coding میگه: خیلی به «کانتکست بزرگ» مدلها اعتماد نکنین. اینکه یه مدل میگه ۲۰۰ هزار، یک میلیون یا حتی دو میلیون توکن کانتکست داره، الزاماً یعنی همه اون اطلاعات رو با کیفیت خوب نمیفهمه و نگه نمیداره. نویسنده میگه کانتکست مدلها یه فضای کاملاً هوشمند و یکدست نیست؛ انگار یه بخشی ازش «منطقه باهوش»ه که مدل هنوز دقیق و تیز کار میکنه، ولی وقتی چت خیلی طولانی میشه و فایلها، لاگها، تستها و توضیحات زیاد واردش میکنی، کمکم وارد «منطقه کندتر و گیجتر» میشه.
این دقیقاً برای برنامهنویسها مهمه؛ چون وقتی با Coding Agent کار میکنی، خیلی راحت وسوسه میشی کل ریپو، چندتا فایل، لاگ خطا، خروجی تست و کلی توضیح رو بریزی توی یه سشن و انتظار داشته باشی مدل همهچیز رو مثل اول بفهمه. اما واقعیت اینه که مدل ممکنه وسط کار جزئیات مهم رو فراموش کنه، تصمیمهای قبلی یادش نمونه یا روی بخشهای کماهمیت زیادی گیر بده. پیشنهاد مقاله اینه که با کانتکست مثل بودجه رفتار کنیم: سشنها رو بیش از حد طولانی نکنیم، خروجیهای مهم رو خودمون تبدیل کنیم به یه سند کوچیک، اسپک، پلن یا خلاصه دقیق و برای ادامه کار، یه سشن تازه رو با همون اطلاعات تمیز و ضروری شروع کنیم. خلاصه اینکه بهجای اینکه همهچیز رو داخل یه چت بیپایان نگه داریم، بهتره کار رو مرحلهبهمرحله و با مستندات کوچیک و قابلاتکا جلو ببریم.
https://garrit.xyz/posts/2026-05-06-dont-trust-large-context-windows
@codehalics | کدهالیک
این دقیقاً برای برنامهنویسها مهمه؛ چون وقتی با Coding Agent کار میکنی، خیلی راحت وسوسه میشی کل ریپو، چندتا فایل، لاگ خطا، خروجی تست و کلی توضیح رو بریزی توی یه سشن و انتظار داشته باشی مدل همهچیز رو مثل اول بفهمه. اما واقعیت اینه که مدل ممکنه وسط کار جزئیات مهم رو فراموش کنه، تصمیمهای قبلی یادش نمونه یا روی بخشهای کماهمیت زیادی گیر بده. پیشنهاد مقاله اینه که با کانتکست مثل بودجه رفتار کنیم: سشنها رو بیش از حد طولانی نکنیم، خروجیهای مهم رو خودمون تبدیل کنیم به یه سند کوچیک، اسپک، پلن یا خلاصه دقیق و برای ادامه کار، یه سشن تازه رو با همون اطلاعات تمیز و ضروری شروع کنیم. خلاصه اینکه بهجای اینکه همهچیز رو داخل یه چت بیپایان نگه داریم، بهتره کار رو مرحلهبهمرحله و با مستندات کوچیک و قابلاتکا جلو ببریم.
https://garrit.xyz/posts/2026-05-06-dont-trust-large-context-windows
@codehalics | کدهالیک
garrit.xyz
Don't trust large context windows | Garrit's Notes
Generalist software developer writing about scalable infrastructure, fullstack development and DevOps practices.
کدهالیک | codehalic
این مقاله یه نکته مهم درباره کار با AI و مخصوصاً AI Coding میگه: خیلی به «کانتکست بزرگ» مدلها اعتماد نکنین. اینکه یه مدل میگه ۲۰۰ هزار، یک میلیون یا حتی دو میلیون توکن کانتکست داره، الزاماً یعنی همه اون اطلاعات رو با کیفیت خوب نمیفهمه و نگه نمیداره. نویسنده…
دیروز داشتم یه مقاله خیلی جالب روی arXiv برای دانشگاه کرونل رو میخوندم که استاد شریف زارچی معرفیش کرده بود توی ویدیو اخیرش درباره اینکه وقتی با مدلهای زبانی کار میکنیم، «همه اطلاعات رو اول کار بدیم» بهتره یا «کمکم و مرحلهبهمرحله توضیح بدیم». نتیجهاش برای من خیلی مهم بود، چون دقیقاً به تجربه روزمره ما با ChatGPT و ابزارهای AI Coding ربط داره.
مقاله میگه مدلها وقتی کل مسئله، محدودیتها، دیتا و هدف رو همون اول کامل و مرتب میگیرن، معمولاً خیلی بهتر عمل میکنن. ولی وقتی همون اطلاعات رو تکهتکه و وسط مکالمه بهشون میدیم، احتمال اینکه گیج بشن، زود فرض بسازن یا روی مسیر اشتباه قفل کنن بیشتر میشه. یعنی همیشه اینطور نیست که «آرومآروم توضیح دادن» بهترین روش باشه. برای کارهای جدی مثل کدنویسی، تحلیل محصول، نوشتن تسک یا دیباگ، بهتره اول یه تصویر کامل از مسئله بدیم، بعد بریم سراغ اصلاح و رفتوبرگشت.
https://arxiv.org/abs/2505.06120
@codhalics | کدهالیک
مقاله میگه مدلها وقتی کل مسئله، محدودیتها، دیتا و هدف رو همون اول کامل و مرتب میگیرن، معمولاً خیلی بهتر عمل میکنن. ولی وقتی همون اطلاعات رو تکهتکه و وسط مکالمه بهشون میدیم، احتمال اینکه گیج بشن، زود فرض بسازن یا روی مسیر اشتباه قفل کنن بیشتر میشه. یعنی همیشه اینطور نیست که «آرومآروم توضیح دادن» بهترین روش باشه. برای کارهای جدی مثل کدنویسی، تحلیل محصول، نوشتن تسک یا دیباگ، بهتره اول یه تصویر کامل از مسئله بدیم، بعد بریم سراغ اصلاح و رفتوبرگشت.
https://arxiv.org/abs/2505.06120
@codhalics | کدهالیک
arXiv.org
LLMs Get Lost In Multi-Turn Conversation
Large Language Models (LLMs) are conversational interfaces. As such, LLMs have the potential to assist their users not only when they can fully specify the task at hand, but also to help them...
👍3
تلگرام قابلیت های جدیدی به بخش فرمتینگ اضافه کرده همون بخشی که میتونی متنت بولد کنی یا مارک داون بنویسی
از الان میتونی فرمول ریاضی هم توش بنویسی و یا استراکچر بدی به پیامات یا پیام طولانی مینویسی دکمه مشاهده بیشتر برات فعال کنه تا جایی که میخوای و کلی چیز جالب دیگ
از این بات میتونین قابلیت های جدید فرمتینگ تلگرام رو ببینید !
@richtextdemobot
@codehalics | کدهالیک
از الان میتونی فرمول ریاضی هم توش بنویسی و یا استراکچر بدی به پیامات یا پیام طولانی مینویسی دکمه مشاهده بیشتر برات فعال کنه تا جایی که میخوای و کلی چیز جالب دیگ
از این بات میتونین قابلیت های جدید فرمتینگ تلگرام رو ببینید !
@richtextdemobot
@codehalics | کدهالیک
❤8