Category : javascript

javascript
Ошибка в коде, на которую приходится не обращать внимание

В разработке статического анализатора, как и в случае с любым ПО, приходится идти на компромиссы. Иногда мы вынуждены отсекать хорошие срабатывания, чтобы инструмент в целом стал лучше. В этой заметке на реальном примере посмотрим на такой компромисс.ПредысторияСейчас мы занимаемся активной разработкой статического анализатора для JavaScript и TypeScript. Он находится в стадии EAP, на который ещё можно записаться. Мне довелось поработать над правилом V7001, которое ищет опечатки в виде одинаков…

  • вторник, 9 июня 2026 г. в 00:00:14
javascript
Как я сжёг 17,4 миллиарда токенов за 25 дней. По тарифам API это 3,2 миллиона рублей. И я не платил…

В конце цикла я прогнал скрипт по своим логам Claude Code и увидел число, в которое сам не сразу поверил. За 25 дней, с 24 апреля по 19 мая, я сжёг 17,4 миллиарда токенов. Один человек, 344 сессии, 75 587 ответов ассистента, 176 695 строк транскриптов. Посчитайте это по тарифам API, и выходит 39 651 доллар. Около 3,17 миллиона рублей. Примерно 1586 долларов в день. Почти всё это Opus, самая дорогая модель на рынке.А теперь то, ради чего вы дочитаете. Я не заплатил по API ни цента. Всё это работ…

  • вторник, 9 июня 2026 г. в 00:00:13
javascript
Пауза, двойственная по природе: контракт хука и протокол воркера

Предположим, вы пишете интерпретатор машины Тьюринга, запущенный в Web Worker’е. UI должен показывать трейс — как машина шагает от состояния к состоянию, что пишется на ленту, как двигается каретка. Чтобы пользователь успевал считывать изменения в UI, между итерациями движка нужна короткая задержка — миллисекунды, регулярно, на каждом шаге. Это приостановка движка между итерациями — регулярная и предсказуемая, не «пауза» в смысле UI-кнопки «Пауза» (та останавливает машину до клика «Продолжить»)…

  • понедельник, 8 июня 2026 г. в 00:00:09
javascript
Пять продуктов в одном FastAPI-монолите: HTMX вместо React, грабли Telegram Mini App и биллинг на S…

Привет, Хабр. Меня зовут Ярослав, в сети — SwairIt. Полтора месяца назад я начал писать обычный todo-лист на FastAPI, а в итоге под одним доменом getdoday.ru выросла небольшая студия из пяти продуктов: todo-приложение, кабинет для репетиторов, школьное Q&A, тренажёр билетов ПДД и Telegram-игра. Всё это — один FastAPI-монолит без единой строки React, ~76 000 строк кода и 1200+ тестов.В этой статье я разберу то, что считаю полезным для других:как один FastAPI-проект держит сразу несколько про…

  • понедельник, 8 июня 2026 г. в 00:00:08
javascript
10 настроек Claude Code для разработчика-архитектора

За 6 месяцев ежедневной работы с Claude Code я выработал 10 конфигов. Без них теряю по 10-15 часов в месяц на исправление того, что агент сделал не так. С ними ощутимо меньше. Это не туториал «что такое Claude Code». Это конфиги для тех, кто уже работает с инструментом и хочет выжать из него больше. Готовые конфиги в конце каждого раздела, копируйте сразу.1. CLAUDE.md до 8к символов, остальное в отдельные файлыГлавная ошибка первых месяцев: пихать в CLAUDE.md всё подряд. К марту у меня был файл…

  • воскресенье, 7 июня 2026 г. в 00:00:09
javascript
Как бесплатный заказ на Авито превратился в задачу на 2,5 месяца

Полгода назад я узнал о крутом инструменте — Apps Script. Это расширение Google для их приложений, например, Таблицы, Документы, Презентации и т. д. Сначала при помощи этого инструмента мне удалось для спортивной школы автоматизировать выгрузку информации из CRM в Google таблицу и настроить отчеты для работы с этой информацией, а потом, когда распробовал инструмент на вкус, сделал личного Telegram-бота. Обо всем этом и пойдет дальше речь.Мне хочется сделать статью интересной для широкого круга …

  • воскресенье, 7 июня 2026 г. в 00:00:08
javascript
Как я превратил хаотичные формы во Vue в типизированную модель данных (AdaptForm)

История о том, как задача «подсветить обязательные поля» превратилась в полноценную TypeScript-библиотеку с 500+ скачиваниями в неделю.ВведениеНа одном проекте нам необходимо было использовать много форм для ввода данных от пользователей. Каждая форма собиралась отдельно, максимум что мы использовали - это миксины для валидации данных и всё. Но при этом у каждого поля в таблице было несколько источников истины и описывать ошибки или добавлять стилизацию было отдельным гемором. Пусть это и было …

  • воскресенье, 7 июня 2026 г. в 00:00:06
javascript
Мы делаем ГИГАХРУЩ: браузерный survival horror без движка, ассетов и спокойной жизни

Привет. Я пресс атташе команды ГИГАХРУЩ — браузерный survival horror / ARPG shooter про вылазки внутри безграничной бетонной структуры.Да, звучит как питч из папки после этого меня точно забанят, поэтому начну с технической части. Это не Unity WebGL, не Phaser, не Godot export, не React‑обвязка вокруг canvas и не набор купленных ассетов. Игра собрана как один браузерный билд на TypeScript/Vite, WebGL/canvas, процедурных текстурах, процедурных спрайтах, процедурном звуке и плоских структурах дан…

  • суббота, 6 июня 2026 г. в 00:00:11
javascript
Mini Bucket 3.6.2: от беты к релизу. Полная установка со скринами и комментариями

Почему Debian 9, PHP 7.0 и никаких фреймворков. И как поднять HTTPS за 5 минут Предисловие для тех, кто не читал первую статьюВ прошлый раз я рассказал, как хотел сделать две странички для SAMBA и NFS, а получилась панель управления NAS на 20+ страниц. Проект назвал Mini Bucket.Важно: та версия была бета. Сырая, с недоработками, но живая. Её задача — показать концепцию. А народ заинтересовался. Значит, надо доводить до ума.Теперь — версия 3.6.2. Исправлена куча проблем, добавлена безопасность,…

  • суббота, 6 июня 2026 г. в 00:00:09