Если лень читать - сразу дам ссылки на важные ресурсы:Demo: https://opensa.ccRepo: https://github.com/AlexSergey/opensaNew Trailer: https://www.youtube.com/watch?v=eA1gVWzANRU Прошлые статьи серии:https://habr.com/ru/articles/1051828/https://habr.com/ru/articles/1057352/В прошлых эпизодах я описывал создание первого прототипа, а затем исправление проблем с картой.Настала пора самого интересного - сделать современную графику.Изначально движок RenderWare не предоставляет возможностей динамических…
React я использую совсем недавно и вообще я бэкенд разработчик, но жизнь завела меня во фронтенд. Получилось так, что времени на обучение и курсы у меня не было, пришлось обучаться прямо в процессе. Мой принцип был "работает и ладно", но принципы нормального фронтенда явно отличались. Шишек я набила знатных с точки зрения чистоты и логики кода. Это статья для таких же новичков, как я. Представляю вам сборник граблей, о которые я спотыкалась сама, и решений к этим граблям, которые родили…
Полгода назад я закрыл замечание аудита «на сайте нет CSP» — прописал Content-Security-Policy с белым списком хостов, проверил, что ничего не отвалилось, и забыл. За три дня на прошлой неделе я нашёл три интеграции, которые эта политика убила молча. Ни одна из них не оставила следа на сервере.Это заметка про то, почему такие поломки не видно, и про пятистрочный скрипт, который находит их все сразу.СимптомУ меня есть страница «МКС онлайн»: живая позиция станции — широта, долгота, высота, скорост…
Привет, на связи Рома Миронов из Авито. Я бывший — хотя бывших не бывает — фронтендер, а сейчас тим- и техлид. Ковыряю AI и больше ничем не занимаюсь — кроме команды, конечно :) В этой статье расскажу, почему фронтенд пока не умер, какие задачи уже можно отдавать агентам, где они красиво ошибаются и почему сначала от AI становится больнее, а не легче.Фронтенд не умер. Умирает часть ручной рутиныПочему фронтенд попал под первую волну AI-изацииДва кейса: расследование 500 и 38 PRНедостатки AI и м…
Вот игра: 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 можно переставить…