Category : javascript

javascript
YApi заброшен с 2022 года. Я продолжил его и нашёл токены, которые может подделать любой участник п…

YApi — платформа управления API от команды YMFE (Qunar): документация интерфейсов, мок‑сервер на Mock.js, тестовые наборы с проверками и отчётами, импорт Swagger и Postman. Её ставят на свои серверы, чтобы бэкенд, фронтенд и тестировщики работали с одним описанием API. У проекта 27,7 тысячи звёзд на GitHub, а неофициальный Docker‑образ скачали больше 600 тысяч раз. В Китае это стандартный инструмент — примерно как у нас связка Swagger и Postman.Последний релиз, 1.12, вышел в ноябре 2022 года. С…

  • воскресенье, 27 сентября 2026 г. в 00:00:08
javascript
LLM уверенно называет шахматные ходы, которых на доске нет. Как я проверяю каждый ее ответ кодом

Движок знает ответ, но говорит числами: -2.7 и стрелка. Модель говорит словами, но врет. Первый же комментарий, который я получил, звучал так: «сильнее было 14.Nf6, конь врывается в лагерь черных». Коня, который может пойти на f6, в той позиции на доске не было.Сразу дисклеймер: это мой первый веб-проект. Я играю в шахматы блиц на 1300 и хотел инструмент, который объясняет мои ошибки словами, а не оценками. Часть того, что ниже, фронтендеру покажется очевидной. Мне пришлось выяснять это руками.…

  • воскресенье, 27 сентября 2026 г. в 00:00:07
javascript
Как мы создали Open-Source альтернативу закрытым платёжным системам на React, Node.js и WebNFC

превьюПредставьте парк аттракционов, фуд-корт на фестивале, корпоративную столовую или сеть автомоек. Что их объединяет? Всем им нужна своя закрытая платёжная система или внутренняя программа лояльности (клубные карты).Обычно внедрение такой системы — это боль. Нужно покупать дорогие терминалы, нанимать интеграторов и пилить самописный софт. А что делать, если система нужна «на один раз» (для трёхдневного фестиваля) или у малого бизнеса просто нет бюджета?Меня зовут Никита, и я решил закрыть эт…

  • воскресенье, 27 сентября 2026 г. в 00:00:06
javascript
Как мы дописываем оборванные ответы языковой модели и почему склейка оказалась сложнее, чем кажется

Мы делаем русскоязычный сервис с несколькими языковыми моделями в одном чате. Однажды партнёр прислал скриншот: модель начала отвечать списком из ста пунктов и оборвалась на середине слова. В админке лежал тот же обрывок. Ни ошибки, ни предупреждения.Почему ответ обрывается. У каждого запроса есть потолок max_tokens. У нас он был 1200 токенов. На английском это около 900 слов, а на русском кириллица съедает больше токенов, и 1200 токенов оказались примерно полутора тысячами знаков. Длинный спис…

  • суббота, 26 сентября 2026 г. в 00:00:12
javascript
Кризис идентичности, или как Vue-разработчик мигрировал enterprise-проект на Angular 18

Всем привет! Меня зовут Павел Барсуков, я frontend-разработчик в компании «Программный Продукт».Основной мой стек – Vue, Nuxt и все рядом лежащее. Angular до недавнего времени я видел в основном в курсах на Youtube, пару раз на фрилансе, где особо с ним не взаимодействовал, и в мемах про исключительность Angular разработчиков и очень частые обновления версий. Поэтому, когда мне прилетела задача миграции большого Angular-проекта, ощущения были примерно такие же, как если бы профессионального гит…

  • суббота, 26 сентября 2026 г. в 00:00:10
javascript
Удалить что угодно со страницы одним кликом: как устроен «пипеточный» блокировщик на Manifest V3

Бывает, что блокировщик рекламы не справляется: всплывающее окно подписки, баннер «мы используем cookies», чат‑виджет в углу, липкая шапка на пол‑экрана. Для этого было маленькое расширение ekill: жмёшь кнопку, наводишь на элемент, кликаешь — элемент исчез. Оно не обновлялось с 2019 года и перестало работать в Chrome, когда Google отключил Manifest V2.Я переписал его под Manifest V3 для Firefox, Chrome и Edge. Получился SkullClick (GitHub). Задача кажется тривиальной, но у неё неожиданно много …

  • суббота, 26 сентября 2026 г. в 00:00:09
javascript
Сонар-управление + Asteroids. Игра на 50 КБ, которой нужен флагманский смартфон

Телефон лежит на столе. Сбоку от него в воздухе ладонь. Поднимаешь её — корабль на экране поднимается, опускаешь — опускается. Экрана не касаешься. Камера не нужна: телефон пищит ультразвуком и слушает эхо своим микрофоном.Играть: sonaroids.app (лучше на iPhone). Код: github.com/neokrasav4ik/sonaroids, MIT.С чего всё началосьМне попался проект sonar.cool: Мак листает страницы жестами руки, а «видит» их через собственные динамики и микрофон. Мака у меня нет, зато есть iPhone. Отсюда вопрос: полу…

  • суббота, 26 сентября 2026 г. в 00:00:08
javascript
Калькулятор плитки: фото вместо цвета и 3D, который наконец не бесит

Всем привет, это третья часть, в которой пилю калькулятор плитки - tilely.ru. Получился довольно крупный патч, в основном вокруг 3D-режима, и там оказалось прилично багов. Многое пришлось переделывать из того, что сначала казалось логичным, а на практике оказалось вообще неудобным.Перед самим 3D - то, что допилил ещё раньше в очереди. Теперь можно загружать фото плитки, чтобы не смотреть на однотипные прямоугольники одного цвета. Есть кнопка «применить ко всем комнатам». Если у вас, скажем, са…

  • пятница, 25 сентября 2026 г. в 00:00:10
javascript
От localStorage к HttpOnly Cookie. Как меняется архитектура авторизации в SPA

Привет, я – фронтенд-разработчик и сегодня хотел бы поднять данную тему. Сразу скажу: так как работаю в основном с React, то в конце будет разбор структуры именно в разрезе React + стейт-менеджер MobX. Итак, поехали. В большинстве SPA-приложений после успешного входа сервер возвращает JWT, фронтенд сохраняет его в localStorage, а затем при каждом запросе добавляет в заголовок Authorization.Получается примерно такая последовательность:POST /login -> JWT -> localStorage -> Authorization:…

  • пятница, 25 сентября 2026 г. в 00:00:09