Вот игра: https://games.zenkovich.space/TokenDelivery/Вот код и ресурсы: https://github.com/o2-engine/o2-Template/pull/1Дело в том, что я знатный велосипедостроитель! Я решил сделать игру не просто сам, но еще и полностью на своих инструментах:игровой движок o2 - https://github.com/o2-engine/o2 нодовая ассето-генерилка онлайн - https://assetsline.zenkovich.space/ Одно дело баловаться синтетическими тестами, другое дело - сделать игру! Хоть и не большую. Начнем с движкаo2 game engineРедактор с …
В данной статье будет подробно рассмотрен полный цикл деплоя сайта, используюшего Vite в качестве инструмента сборки. Мы напишем многоступенчатый Dockerfile, чтобы собрать образ с готовой статикой, и поднимем контейнер с сервером Caddy, который автоматически выдаст и будет обновлять сертификаты Let's Encrypt.Нам понадобитсяАрендованный или домашний сервер на Ubuntu с публичным IPДомен, привязанный к IPDockerГотовый проект с viteТерминалСтруктура проектаПодразумевается, что у вас уже есть пр…
Давай признаем: ты чуть ли не 90% кода пишешь с помощью Claude, Codex или ещё какого-нибудь агента. Ты выпускаешь несколько MR-ов в день, пушишь несколько тысяч строк кода и быстро просматриваешь псевдокод на ревью, чтобы доказать самому себе, что это действительно ты напряг мозг и сделал задачу. Ты делаешь ровно то же, что и всегда, думая, что агент просто ускоряет цикл разработки, который ты проходил ежедневно.Однако не покидает ощущение, что это какой-то цирк. Ты просто осознанно повторяешь …
Всем привет! Я хочу рассказать про свой путь написания компилятора Svelte на языке Rust, о своих мотивах и результатах.Компилятор лежит тут: https://github.com/MrWaip/svelte-rsПредысторияМеня зовут Константин, я работаю в enterprise-компании на протяжении 5 лет фронтенд-разработчиком. Мы используем SvelteKit ещё с бета-версии.У нас огромная кодовая база Svelte. В самом большом проекте 25 тысяч компонентов вместе с внутренними пакетами. И, по-моему, в 24 году мы упёрлись в то, что проекты долго …
Проверяемый контрпример: одна сетка и два корректных завершенияОбложка собрана кодом из поля, которое используется в тесте. Четыре пропуска допускают два завершения. Главная ошибка наивного генератора судоку — проверять, что решение существует, но не проверять, что оно единственное.Вот почти заполненное поле:534..8912 672195348 198342567 859..1423 426853791 713924856 961537284 287419635 345286179 solve() быстро заполнит четыре пропуска. Только завершений здесь два: цифры 6 и 7 можно переставить…
Продолжая тему Крошечной Языковой Модели на Nodejs мы поймем где проходит граница ее возможностей. На примере Крошечной Языковой Модели (TLM) из 2 160 параметров мы проведём воспроизводимый эксперимент и увидим в цифрах: знакомый шаблон - 99,93%, перестановка токенов - 81,69%, неизвестная структура -?%.По следам обсуждения моего автограда на Node.js в ML-сообществе и отличного фидбека от инженеров на Hashnode (привет Ahmet Özel), я добавил в проект небольшое исследование границы между запоминан…
Эта статья не претендует на создание полноценной замены Node.js EventEmitter или других готовых библиотек. Цель — разобраться, как устроен Event Bus и написать собственную минимальную реализацию.Однажды, размышляя над архитектурой своего приложения, я задался вопросом: как связать модули между собой так, чтобы они оставались полностью автономными? Без импортов и экспорта функциональности.И решил я написать свою систему коммуникации модулей.В первую очередь нужно было определиться с сущностью. Б…
Эта статья — перевод оригинальной статьи «Introducing the <usermedia> HTML element».Также я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов и AI.ВступлениеПосле появления элемента <geolocation> в Chrome 144 следующим функциональным элементом набора Capability Elements стал HTML-элемент <usermedia>. Он доступен начиная с Chrome 151 и знаменует следующий этап перехода от универсальных запросов разрешений к специализир…
В одном из наших проектов бот записывает видеовстречи из Яндекс Телемоста, сохраняет их в формате WebM и отправляет на backend. После обработки запись появляется в личном кабинете пользователя и воспроизводится через Video.js.На стенде заметили проблему - если начать смотреть запись с самого начала, то все работает нормально. Перемотка на несколько минут тоже без вопросов. Но после перемотки, например, сразу на десятую минуту, плеер надолго уходил в загрузку. Браузер продолжал подтягивать данны…