Category : javascript

javascript
Калькулятор сметы и фильтр каталога. Что теряется между макетом и кодом

Я проектировал каталог и калькулятор сметы для сайта компании, которая строит загородные дома. Моя часть была в проектировании и дизайне, вёрстку и бэкенд делала другая команда. Сайт запущен и работает. Недавно я снял с него разметку, CSS и клиентский скрипт и положил рядом с макетами, чтобы проверить, как решения дошли до кода.Расскажу, как я раскладывал смету на данные, как она устроена в продакшене, какие граничные случаи я оставил без правила и какую спецификацию я передал бы сейчас. Почти …

  • среда, 28 октября 2026 г. в 00:00:11
javascript
# Capacitor: от веба к мобильным приложениям. Часть 6. Встраиваем Capacitor в native-приложение

Давно не виделись Хабровчане! Сегодняшняя тема для статьи мне показалась достаточно интересной и не такой уж очевидной. Сегодня мы будем пытаться встроить Capacitor-приложение в нативное приложение. Эту идею мне подкинул мой друг @solyonyvlad, за что ему спасибо.Давайте представим такую гипотетическую ситуацию когда у нас есть основное мобильное приложение полностью написанное нативно(iOS,Android) и другая команда у которой есть определенный функционал в веб приложении который срочно нужно доба…

  • среда, 28 октября 2026 г. в 00:00:09
javascript
Смотрю сериалы с английскими субтитрами и не жму паузу: что умеет расширение для Chrome через месяц…

Месяц назад я рассказывал здесь про расширение, которое сделал для себя. С тех пор его поставили около двухсот раз, и мне написали люди, у которых что-то не работало или чего-то не хватало. Пишу вторую часть про сам продукт, без разбора багов: что оно делает сейчас, как с ним начать и что я знаю про него плохо. Сразу главное ограничение, чтобы не тратить ваше время: нужен Google Chrome 138 или новее на компьютере. На телефоне его не будет: там нет встроенных моделей. В Brave встроенные ИИ-функц…

  • среда, 28 октября 2026 г. в 00:00:08
javascript
Выгрузка истории чата через Telegram API в браузере: было 29 минут, стало две с половиной

Я делаю сайт, который считает статистику переписки прямо в браузере. Обычно для этого нужен экспорт чата Telegram из Desktop, а с телефона его не сделать. Поэтому у меня есть второй путь, без компьютера и без файла. Человек входит со своего телефона, а страница сама выкачивает историю выбранного чата через Telegram API, то есть MTProto, как настоящий клиент. Работает это на mtcute поверх WebSocket к серверам веб-клиента Telegram, со своими api_id и api_hash с my.telegram.org.Три недели всё рабо…

  • среда, 28 октября 2026 г. в 00:00:07
javascript
Редактор писал «Сохранено» и ничего не сохранял: TipTap поверх чужого HTML

Я делаю сервис, который пишет статьи и сам публикует их на сайты клиентов. Как устроена публикация в четыре CMS, я уже рассказывал здесь. Сегодня про соседний кусок: редактор в личном кабинете, где человек правит статью перед публикацией.Как минимум два месяца этот редактор показывал «Сохранено» и не сохранял ни символа. Сама ошибка глупая, на неё хватит одного абзаца. Хуже, что очевидное исправление уничтожило бы статьи. По дороге к правильному нашлись ещё три ловушки. Санитайзер nh3 тратит по…

  • среда, 28 октября 2026 г. в 00:00:05
javascript
Правый клик с памятью: почему я храню счётчик в id пункта меню Chrome

Мои хобби-проекты - небольшие расширения для Хрома и сайты-микросервисы. Одно из расширений, PDF to PNG, внезапно забралось на первое место в поиске Chrome Web Store по запросу “pdf to png” (ну, почти всегда), и им пользуются аж под 500 человек - это потрясающе!Раз PDF в картинки получилось, немедленно загорелось сделать и наоборот - картинки -> PDF, только ещё круче: чтоб работало через правый клик по картинке на любой странице, чтоб была лёгкая(!) возможность настроек - и чтоб всё прям лок…

  • среда, 28 октября 2026 г. в 00:00:05
javascript
Рост и вес неандертальца по одной кости: я сделал открытый калькулятор по научным формулам

В июле 2026 года в PNAS вышла статья Кевина Хаталы и соавторов про следы на берегу древнего озера в северной Кении. Около 1,4 млн лет назад там прошли восемь парантропов вида Paranthropus boisei. От этого вида до сих пор находили в основном черепа с огромными челюстями и зубами, а ниже шеи почти ничего. По отпечаткам стоп авторы оценили рост до 1,8 м и массу около 75 кг. Это заметно больше, чем получалось раньше по редким костям.Меня в этой новости зацепило не то, что парантропы оказались крупн…

  • вторник, 27 октября 2026 г. в 00:00:24
javascript
Тыквенный король: хэллоуинский босс для браузерной драки — от календаря до 2000 игроков на улице

Я в одиночку делаю Brawl Town - уличную драку в браузере в духе Final Fight: одна длинная улица, сотни бойцов, все против всех, круглые сутки. https://habr.com/ru/articles/1095682/После запуска поток игроков быстро сдулся, и стало понятно, что нужен повод вернуться в игру - и повод о ней рассказать. До Хэллоуина оставалась неделя. В статье - как я за эту неделю сделал сезонный ивент: что он должен был уметь кроме тыкв, как устроен босс, почему пришлось переделывать ему анимацию и что показал на…

  • вторник, 27 октября 2026 г. в 00:00:22
javascript
Свой тренажёр печати для детей: три ошибки и одна догадка, которая сработала

Я преподаю детям программирование и вижу одну и ту же картину: на обычных тренажёрах печати дети быстро устают, начинают отвлекаться, а некоторые просто просят выключить. Тренажёра для детей с дислексией я не нашла ни одного. Ждать, пока его кто-то придумает, я не стала и сделала свой — Клавитраж.Идея пришла не только с занятий: у меня самой дислексия, и именно клавиатура когда-то помогла мне справиться с письмом. Как я живу с этим и почему печать стала для меня спасением, расскажу в отдельной …

  • вторник, 27 октября 2026 г. в 00:00:22