کدهالیک | codehalic
前往频道在 Telegram
3 977
订阅者
-4224 小时
-1027 天
-11630 天
帖子存档
3 969
از اون طرف توی Node.js که خیلیها فکر میکنن کلاً Single-Thread هست، کتابخونه زیربنایی libuv یک ThreadPool داره که دیفالت فقط ۴ تا ترد برای کارهای سنگین و Blocking مثل File System، عملیات Crypto (مثل bcrypt)، پکیج zlib و dns.lookup در نظر گرفته. حالا اگر ۴ تا ریکوئست همزمان بیان و با کاری مثل هش کردن پسورد هر ۴ تا ترد رو درگیر کنن، ریکوئست پنجم که فقط میخواد یک فایل ساده بخونه یا DNS رو لوکاپ کنه پشت این صف قفل میشه؛ یعنی Event Loop کاملاً بیکاره ولی کل I/O های وابسته به ThreadPool فلج شدن. برای جلوگیری از این گلوگاه توی نود، باید توی پروداکشن سایز UV_THREADPOOL_SIZE رو بیشتر کنید، به جای dns.lookup سراغ dns.resolve برید و پردازشهای سنگین CPU-bound رو به Worker Threads منتقل کنید.
@codehalics | کدهالیک
3 969
تا حالا شده توی پروداکشن ببینید سرویسهاتون Timeout میدن و ریکوئستها توی صف میمونن، در حالی که مصرف CPU زیر ۱۰ درصده و رم کاملاً آزاده؟ اینجا دقیقاً جاییه که با ThreadPool Starvation روبرو شدید. توی C# و .NET این فاجعه معمولاً به خاطر Sync-over-Async رخ میده؛ یعنی وقتی کدهای Async رو با .Result یا .Wait() بلاک میکنید. در این حالت تردهای موجود قفل میشن و چون اون تسکها برای اجرای Continuation خودشون باز هم به ترد آزاد نیاز دارن و الگوریتم Hill Climbing داتنت هم خیلی کند ترد جدید تزریق میکنه، سرور عملاً فریز میشه. راه حلش هم توی داتنت فقط رعایت کردن قانون Async All The Way و استفاده نکردن از کدهای Blocking روی تردهای ThreadPool هست.
@codehalics | کدهالیک
3 969
مثلا موسیقی معروف فیلم Interstellar از هانس زیمر رو یادتونه؟ با اینکه کل فیلم یه غم و دلتنگی عمیق داره، ولی زیمر چرخه اصلی آهنگ رو از روی نت فا شروع میکنه و طوری نتها رو میچینه که مغز ما همون کشش جادویی گام F Lydian رو همراه با صدای غولپیکرترین ساز بادی دنیا یعنی ارگ کلیسا میشنوه؛ و دقیقا به خاطر همینه که به محض شنیدنش، حس میکنیم از زمین کنده شدیم و وسط کهکشان و زمان معلقیم!
@codehalics | کدهالیک
3 969
یکمی اگر تئوری موسیقی بلد باشین و گامهای موسیقی رو بشناسین با گام Lydian آشناییت دارید! اما اگر هم اصلاً سراغ موسیقی نرفتید، «گام» یا Scale رو مثل پالت رنگی یک نقاش در نظر بگیرید؛ مجموعهای از چند نت که وقتی کنار هم چیده میشن، حال و هوای آهنگ رو مشخص میکنن که مثلاً شاد باشه، غمگین باشه یا رازآلود. حالا گام Lydian یک پالت جادوییه که توش فقط با یک تغییر کوچیک روی نت چهارم، موسیقی یهو از زمین کنده میشه و حس معلق بودن، شگفتی، مدرنیته و طلوع یک عصر جدید رو به آدم میده. جالبه بدونید توی موزیک ویدیوهای معرفی هوش مصنوعی مثل Gemini، GPT و Claude هم دقیقاً از همین تئوری و تکنیک روانشناختی Warm Futurism استفاده میکنن. غولهای تکنولوژی برای اینکه نشون بدن یک هوش فوقبشری ساختن اما قرار نیست مثل فیلمهای علمیتخیلی ازش بترسیم، به جای صداهای سرد و رباتیک، این گام فضایی Lydian رو روی گامهای گرم مثل Bb و F میبرن و با سازهای بادی مثل Trombone، French Horn و Saxophone اجراش میکنن؛ چون این سازها فقط با «نفس انسان» جون میگیرن و صدای جریان هوا توی ساز، ناخودآگاه به ما حس زندگی، امنیت و همنفسی میده. در واقع با ترکیب نفس گرم انسان توی سازهای بادی و این گام روشن و آیندهنگر، خیلی هنرمندانه به مغز ما میگن که از این قدرت فرابشری نترس، چون این آیندهی هیجانانگیز، رفیق و همراه توئه.
@codehalics | کدهالیک
3 969
جمنای ۴ بالاخره معرفی شد !
بالاخره گوگل به خودش اومد و این مدل بسیار خفن با اسم آرگون معرفی شد
@codehalics | کدهالیک
3 969
یه نکته جالب اینه که فونت وزیرمتن از قبل برای این مدل استفادهها فکر شده و نسخهی Non-Latin هم داره؛ یعنی میتونی نسخهای داشته باشی که گلیفهای لاتین اضافه داخلش نباشه و برای استفاده فارسی سبکتر باشه. خود پروژه هم ساختار مناسبی برای استفاده وب و خروجیهای مختلف فونت داره.
وزیرمتن ساختهی صابر راستیکردار بود؛ کسی که بخش بزرگی از جامعه برنامهنویسی و طراحی فارسی سالها بدون اینکه شاید حتی اسمش رو بدونن، از نتیجه کارش استفاده کردن. اسم ایشون هم بهعنوان سازنده اصلی پروژه در مخزن رسمی وزیرمتن ثبت شده.
صابر راستیکردار متأسفانه درگذشته و پروژهای مثل وزیرمتن یکی از چیزهاییه که ازش به جا مونده. اگه شما هم مثل خیلی از ما سالها از وزیر و وزیرمتن استفاده کردید، بد نیست برای آرامش روحش یه فاتحه بخونید.
@codehalics | کدهالیک
3 969
یکی از بهینهسازیهایی که توی وب خیلی راحت میشه از کنارش رد شد، فونته.
وقتی از فونت سفارشی استفاده میکنیم، بهتره بهجای فایلهای TTF یا OTF از فرمت WOFF2 استفاده کنیم، چون برای وب ساخته شده و معمولاً حجم خیلی کمتری داره.
ولی فقط تبدیل فونت به WOFF2 کافی نیست.
مثلاً اگر از یه فونت فقط وزن Regular و Bold رو استفاده میکنیم، لود کردن پنج شش وزن دیگه فقط حجم اضافهست و بدون دلیل سرعت صفحه رو پایین میاره.
یکی دیگه از کارهای مهم، Subset کردنه؛ یعنی فقط کاراکترهایی رو داخل فایل فونت نگه داریم که واقعاً توی پروژه بهشون نیاز داریم.
برای سایتهای فارسی این بخش خیلی مهمه، چون اگه Subset اشتباه انجام بشه ممکنه بعضی حروف فارسی، اعداد یا علائم از فونت حذف بشن.
استفاده از font-display هم کمک میکنه متن منتظر لود شدن فونت نمونه و کاربر محتوا رو سریعتر ببینه.
برای فونتهای مهم ابتدای صفحه هم Preload میتونه مفید باشه، ولی فقط برای فایلهایی که واقعاً همون اول لازم داریم؛ چون Preload کردن همه فونتها خودش میتونه نتیجه برعکس بده.
استفاده از Variable Font هم توی بعضی پروژهها انتخاب خوبیه، چون چند وزن مختلف رو داخل یک فایل میده و تعداد فایلهایی که باید دانلود بشن کمتر میشه.
در نهایت بهینهسازی فونت ترکیب WOFF2، وزنهای کمتر، Subset درست، font-display مناسب و Preload حسابشدهست که واقعاً تفاوت ایجاد میکنه.
@codehalics | کدهالیک
3 969
یکی از بهینهسازیهایی که توی وب خیلی راحت میشه از کنارش رد شد، فونته.
وقتی از فونت سفارشی استفاده میکنیم، بهتره بهجای فایلهای TTF یا OTF از فرمت WOFF2 استفاده کنیم، چون برای وب ساخته شده و معمولاً حجم خیلی کمتری داره.
ولی فقط تبدیل فونت به WOFF2 کافی نیست.
مثلاً اگر از یه فونت فقط وزن Regular و Bold رو استفاده میکنیم، لود کردن پنج شش وزن دیگه فقط حجم اضافهست و بدون دلیل سرعت صفحه رو پایین میاره.
یکی دیگه از کارهای مهم، Subset کردنه؛ یعنی فقط کاراکترهایی رو داخل فایل فونت نگه داریم که واقعاً توی پروژه بهشون نیاز داریم.
برای سایتهای فارسی این بخش خیلی مهمه، چون اگه Subset اشتباه انجام بشه ممکنه بعضی حروف فارسی، اعداد یا علائم از فونت حذف بشن.
استفاده از font-display هم کمک میکنه متن منتظر لود شدن فونت نمونه و کاربر محتوا رو سریعتر ببینه.
برای فونتهای مهم ابتدای صفحه هم Preload میتونه مفید باشه، ولی فقط برای فایلهایی که واقعاً همون اول لازم داریم؛ چون Preload کردن همه فونتها خودش میتونه نتیجه برعکس بده.
استفاده از Variable Font هم توی بعضی پروژهها انتخاب خوبیه، چون چند وزن مختلف رو داخل ی
3 969
25 دلار کردیت GLM 5.3 flash و DeepSeek v4.1 flash رو هم این پلتفرم بهتون میده :
https://console.river.ai
@codehalics | کدهالیک
3 969
با یه روز تأخیر، روز جهانی دختر رو به دخترای برنامهنویس تبریک میگم؛ همون اقلیت کمیابی که وسط این همه دولوپر پسر هنوز دارن با باگها میجنگن
ویدیوش بامزه بود واقعا :))))))
@codehalics | کدهالیک
3 969
چین یه OCR اوپن سورس منتشر کرده که میتونه دهها صفحه PDF رو یکجا بخونه!
اسمش Unlimited-OCRـه و توسط Baidu توسعه داده شده.
تا الان خیلی از ابزارهای OCR برای خوندن یه PDF طولانی، صفحات رو جداجدا پردازش میکردن. اما Unlimited-OCR اومده این محدودیت رو تا حد زیادی برطرف کنه.
https://github.com/baidu/Unlimited-OCR
@codehalics | کدهالیک
3 969
بکاند دولوپر یا مهندس بکاند؟
هر دوشون کد میزنن، API مینویسن و با دیتابیس کار میکنن. پس فرقشون کجاست؟ و تو الان کدومی؟
جوابش توی همین ویدیوئه
این ویدیوی کوتاه، تیکهای از فصل دوم بوتکمپ مهندسی بکاند ـه. لازم دیدم این بخش رو برای همه بفرستم.
توی بوتکمپ، یه نئوبانک شبیه بلوبانک رو از صفر طراحی میکنیم و میسازیم، و هر قدمش رو با نگاه یه مهندس جلو میبریم.
🎓 جزئیات دوره و قسمتهای رایگان:
https://codehalic.ir/courses/backend-engineering-bootcamp
@codehalic | کدهالیک
3 969
مدل GPT-6 Luna کاملاً رایگان و نامحدود شد
سرویس DuckDuckGo از طریق DuckAi این مدل رو بدون نیاز به ثبتنام و کارت بانکی باز کرده.
چی داری؟
• چت با Luna
• تولید تصویر
• مکالمه صوتی کامل (روی موبایل هم خوب کار میکنه)
فقط برو و شروع کن:
https://duck.ai
@codehalics | کدهالیک
3 969
سیستم رزرو بلیت کنسرت میسازی.
اگه دو نفر همزمان آخرین بلیت رو بزنن؟
اگه وسطِ رزرو سرور کرش کنه؟
چند تا سرور لازمه و چهجوری به هم وصل بشن؟
اگه جواب داری، مهندس بکاندی.
اگه فقط API رو مینویسی، هنوز نه.
📘 برشی از قسمت اول فصل دوم بوتکمپ مهندسی بکاند
codehalic.ir/courses/backend-engineering-bootcamp
💳 ۴ قسطه با اسنپپی
@codehalics | کدهالیک
3 969
من نظر شخصیم راجب این مقاله بخوام بگم به نظرم چیزی که بیشتر از همه عوض شده، تعریف آماده بودن برای ورود به بازار کاره. قبلاً کافی بود پایهها رو بلد باشی و شرکت روی رشدت سرمایهگذاری کنه، ولی الان خیلی جاها انتظار دارن از همون روز اول بتونی خروجی واقعی بدی.
AI هم این فاصله رو بیشتر کرده، چون بخش زیادی از کارهایی که قبلاً نقطه شروع یه جونیور بود، دیگه به همون شکل وجود نداره. برای همین فکر میکنم کسی که الان میخواد وارد تک بشه، باید خیلی زودتر از قبل از فاز صرفاً یاد گرفتن خارج بشه و بره سمت ساختن، حل کردن مسئله واقعی و کار کردن درست با AI.
ورود سختتر شده، ولی برای کسی که این تغییر رو زود بفهمه، هنوز فرصت خیلی زیاده.
@codehalics | کدهالیک
3 969
یه مقاله جالب امروز دیدم راجعبه وضعیت بازار کار تکنولوژی و راستش حرف اصلیش خیلی قابل فکر بود: شاید مسئله این نباشه که دیگه توی تک فرصت نیست، مسئله اینه که راه ورودش عوض شده.
تا چند سال پیش مسیر تقریباً مشخص بود. یه زبان و فریمورک یاد میگرفتی، چندتا پروژه میساختی، رزومه میفرستادی و بالاخره یه جایی به عنوان جونیور وارد میشدی. الان اون مسیر خیلی سختتر شده. تعداد موقعیتهای جونیور کمتر شده، بخشی از کارهایی که قبلاً به نیروی تازهکار میدادن با AI انجام میشه و شرکتها هم از همون اول انتظار دارن آدم مستقلتر باشه، مسئله حل کنه و بلد باشه از AI به عنوان ابزار استفاده کنه.
به نظرم نکته مهم مقاله همین بود: بازار کار تکنولوژی بسته نشده، ولی درِ ورودی قبلیش دیگه مثل قبل باز نیست. اگه هنوز با همون فرمول قدیمی جلو بری، احتمالاً بیشتر از اینکه مشکل از توانایی تو باشه، مشکل از مسیریه که داری امتحان میکنی.
https://dev.to/james_anderson_h/tech-is-brutal-right-now-stay-or-go-lets-think-clearly-59jk
@codehalics | کدهالیک
3 969
مشکل کدی که با AI نوشته میشه همیشه این نیست که خراب باشه. خیلی وقتها کد کار میکنه، تستها هم پاس میشن و در نگاه اول همهچیز مرتبه، ولی وقتی واردش میشی میبینی پر از چکهای اضافه، تایپهای بیدلیل، کدهای تکراری و راهحلهای موقتی شده. دلیلش هم معمولا اینه که AI فقط همون بخشی از سیستم رو میبینه که جلوشه و تصویر کامل پروژه رو نداره، برای همین هر جا اطلاعات کافی نداشته باشه یه راهحل جدید میسازه. اینجا صرفا گفتن «کد رو تمیز کن» هم خیلی جواب نمیده، چون ممکنه ظاهر کد بهتر بشه ولی مشکل اصلی سر جاش بمونه. بهتره دقیقا مشخص باشه چه چیزی باید بعد از تغییر درست شده باشه و بعد هم با تست واقعی بررسی بشه. در نهایت چیزی که کیفیت کد رو حفظ میکنه فقط lint و rule بیشتر نیست، مهمتر از اون اینه که ساختار پروژه قابل فهم باشه، مسئولیت هر بخش مشخص باشه و هر تغییری واقعا چیزی رو سادهتر یا مطمئنتر کنه.
https://www.builder.io/blog/de-slop-ai-generated-codebase
@codehalics | کدهالیک
3 969
یه زمانی جمله «Jack of all trades, master of none» بیشتر شبیه یه نقد بود یعنی کسی که از همهچیز یه کم میدونه، ولی تو هیچچیز واقعا عمیق نیست. برای همین هم ایده بدی به نظر میرسید. ولی AI داره این ماجرا رو عوض میکنه. الان لازم نیست خودت تو همه حوزهها متخصص باشی، ولی باید از چند حوزه مختلف به اندازه کافی سر دربیاری که بدونی برای حل هر مسئله باید سراغ چی بری، چه سوالی بپرسی و چطور خروجی رو ارزیابی کنی. چیزی که قبلا ضعف حساب میشد، کمکم داره تبدیل میشه به یه ضرورت. شاید مدل برنده امروز اینه: تو یکی دو حوزه واقعا عمیق باشی، ولی از بقیه هم اونقدر بدونی که بتونی همهچیز رو به هم وصل کنی.
@codehalics | کدهالیک
3 969
فکر کنم AI داره یه چیزی رو جدی عوض میکنه: اینکه همیشه ارزش آدمها به تخصص خیلی عمیق و محدودشون بود. الان خیلی از خروجیهایی که قبلا حتما باید میرفتی سراغ یه متخصص براش، با AI خیلی سریعتر و ارزونتر در دسترسه. برای همین مهارت اصلی کمکم داره میره سمت یه چیز دیگه؛ اینکه بفهمی برای حل یه مسئله دقیقا به چه تخصصهایی نیاز داری، بتونی از هرکدوم درست استفاده کنی و مهمتر از همه، تشخیص بدی خروجیای که گرفتی واقعا درسته یا نه. حتی یه مقاله از NBER نشون داده AI تونسته بخش بزرگی از فاصله بهرهوری بین نیروهای قویتر و ضعیفتر رو کم کنه. شاید برای همین مدل آدم موفق توی چند سال آینده کسی نباشه که فقط تو یه چیز خیلی عمیقه یا از همهچیز یه چیزایی میدونه؛ بیشتر کسیه که تو یکی دو حوزه عمیقه و در کنارش از چند حوزه دیگه هم به اندازه کافی سر درمیاره که بتونه همهشون رو به هم وصل کنه.
https://medium.com/@shalin73/the-end-of-the-specialist-b5ec65ec9667?via=dailydev
@codehalics | کدهالیک
3 969
یکی اومده بازی GTA V رو روی مرورگر پورت کرده و میتونین آنلاین بازیش کنید !
https://gta.deloskiyt.pl/
@codehalics | کدهالیک
