Привет, Хабр!Сегодня хочу поговорить о проблеме, которую многие недооценивают в своих Go‑проектах. Речь пойдет о бессрочном select {}, который легко может привести к блокировке, утечке ресурсов и деградации производительности.Что такое select {} без defaultВ языке Go select — это оператор, который позволяет конкурентно ждать операции на нескольких каналах. Когда какой‑либо канал становится доступным для чтения или записи, выбирается один из таких кейсов случайным образом.Простейший select {} бе…
Привет, Хабр! Я прочитал статью Migrating away from Rust и хочу поделиться с вами своими мыслями, заодно переведя оригинал. Я буду вести повествование от своего лица, поскольку это скорее реакция и размышления, а не традиционный перевод. Для меня тема весьма актуальна, так как я сам нахожусь в этом странном лагере разработки игр на нишевых движках. Я использую не Rust+Bevy, а Go+Ebitengine, но многие плюсы и минусы этих комбинаций интересно рассматривать как дополняющие друг друга. Когда-нибуд…
В этом посте я опишу, как настроить современную маршрутизацию и использовать сигналы для реактивного отключения выбранных ссылок.Сигналы — это просто реализация паттерна "observable". Хотя мы могли бы использовать любую библиотеку для этой цели, мы создадим свою собственную, чтобы обеспечить лучшую наглядность и понимание.export class Observable { #callbacks = new Set(); notify() { for (const fn of this.#callbacks) fn(); } subscribe(callback) { this.#callbacks.add(callba…
19 марта 2025 года вышла стабильная версия Valibot — библиотеки для валидации данных в JavaScript/TypeScript. Разработанная как альтернатива популярному Zod, она сочетает минималистичный дизайн с мощными возможностями.В этой статье мы сравним Valibot и Zod по трём ключевым параметрам: синтаксису API, размеру библиотеки и скорости работы. Вы узнаете, чем эти решения отличаются друг от друга и почему стоит использовать специализированные инструменты валидации входящих данных.Зачем нужны библиотек…
До недавнего времени программный доступ к куки в браузере осуществлялся через API document.cookie — простой строковый геттер/сеттер. Для получения одного файла куки приходилось разбирать всю строку вручную и преобразовывать ее в удобный формат. А чтобы записать куки, нужно было сначала сформировать структурированные данные, затем сериализовать их в строку и только после этого присвоить значение document.cookie. Разработчики часто используют популярные библиотеки, например js-cookie, которые …
Я знаю, что на эту тему уже было сказано много, но настал мой черед. На JS я пишу больше 10 лет, так что терпел я достаточно :) Когда мы говорим “джаваскрипт”, мы подразумеваем много разных вещей:Стандарт EcmaScriptСреда исполнения (NodeJS, браузер)Экосистема (библиотеки, фреймворки, тулинг)Иногда есть смысл поговорить об этих вещах по отдельности, но сегодня мы обсудим их все сразу, и назовем это просто “джаваскрипт”. А именно, я объясню, почему джаваскрипт это плохой язык.Что значит плохой?А …
Jelly Evolution SimulatorJelly Evolution Simulator To run this program, run this command: cmd python jes.py NOTE: This project, like all my projects, are not meant to be consumer products with perfect QA. Rather, it's just me, as one person, coding a casual experiment to the point that it works well enough on my computer to make a video from it! No more, no less. (I used to not put my code online, just like when you create a Minecraft world with your friends, you don't have to share th…
Компания SAP выпустила внеплановые патчи для NetWeaver и исправила уязвимость нулевого дня, связанную с удаленным выполнением кода (RCE). Предполагается, что эту проблему уже эксплуатируют для атак брокеры первоначальных доступов.
ФБР предлагает до 10 млн долларов США за информацию об участниках китайской хак-группы Salt Typhoon и прошлогодней атаке, в результате которой были скомпрометированы сети ряда американских телекоммуникационных компаний.