Понадобилось мне как-то раз сделать из PWA мобильные приложения. Приключение на 20 минут, зашли и вышли - подумал я и пропал на пару месяцев. В статье будет гремучая смесь из Java, C#, NodeJS, Swift, bash, Dockerfile и github actions. Но в результате возможность непрерывно поставлять свежие сборки в магазины приложений.Погружаемся.Первым делом я нашел сайт PWA builder который позволяет для любого PWA скачать сборки для iOS и Android. Интересное. В процессе изучения как оно работает я обнаружил …
Привет, Хабр! У нас на носу 2026 год, Илон Маск обещал AGI ещё вчера (раз уж упомянул: это действительно было в одном из его интервью, где он сказал, что ожидает AGI в 25-26 годах), а AI-ассистенты для кода слышны из каждого утюга. Все мы знакомы с Cursor, многие пробовали его коммерческие (Windsurf) и открытые (Cline, Continue.dev) альтернативы. И поначалу — чистый восторг. Кажется, еще чуть-чуть, и можно будет просто говорить машине, что делать.Но эйфория проходит, как только ты начинаешь исп…
...или как я сделал протокол связи через свет с точностью 99.2 %Когда мы говорим “оплата телефоном”, в голове сразу всплывает NFC или QR.А что, если экран и фонарик сами могут обмениваться данными?Без радиоволн, без Wi-Fi, без сети вообще.Так появился Lightprint — протокол, который передаёт данные светом, а камера принимает их и распознаёт как уникальный “отпечаток”.И всё это работает прямо в браузере, на чистом JavaScript.⚙️ Как это работаетLightprint — это Visible Data Communication (VDC):экр…
Цели в блокнотах, Excel и «в голове» превращают стратегию компании в пазл без картинки. Для С-Маркетинга команда Далее собрала этот пазл в единое решение — специальный модуль на смарт-процессах Битрикс24. Но реализовали мы его со своими интерфейсом и логикой на bx.vue.Узнайте о функциональных возможностях системы для бизнеса, где больше тысячи сотрудников.О целяхУ более тысячи специалистов С-Маркетинга — десятки тысяч целей, которые определяют эффективность компании. Все они должны работать на …
ПредысторияРешил мигрировать с WebStorm на VS Code, но обнаружил, что нет поддержки автоимпорта Angular-компонентов. В WebStorm это работало из коробки — начинаешь писать <app-, IDE сразу подсказывает компоненты и автоматически добавляет импорт. В VS Code такого не было.На первый взгляд задача выглядела несложной — пару регулярок накидать и можно сделать своё решение.Но пока я разбирался с регулярками, Angular-разработчики выпустили официальную поддержку: добавили импорты на автокомплит и ди…
В предыдущей статье мы подробно рассмотрели такую фичу JS как веб-воркеры, позволяющей запускать код в фоновом потоке браузера. В этой и последующих статьях, мы рассмотрим воркеры в серверном JavaScript, где они существуют с 10-й версии Node.js В целом механизм идентичен браузерной версии языка. Взаимодействие потоков, всё также основано на обмене сообщениями, за создание воркеров отвечает класс Worker. Конкретно данная статья подробно описывает аргументы принимаемые конструктором класса Worker…
API URLPattern официально стал базовой возможностью и доступен во всех основных браузерах с сентября 2025 года. Однако он может не работать на старых устройствах или в старых браузерах. Узнать больше.Когда требуется функциональность, реагирующая на изменения URL, часто приходится писать сложные регулярные выражения или подключать сторонние библиотеки для маршрутизации. Теперь, когда URL Pattern API вошел в Baseline, у нас появилось стандартное, мощное и универсальное решение для этой задачи.API…
Object-Relational Mapping (ORM) — технология, призванная «поженить» реляционную природу SQL-баз (PostgreSQL, MySQL, SQLite и т.п.) с объектной моделью языков программирования. Она настолько популярна, что её пытаются реализовать даже в необъектных языках — например, в Go или Erlang.Если в Java без ORM действительно неудобно, то в экосистеме Node.js (и TypeScript в частности) ситуация принципиально иная. И ORM здесь — зачастую избыточная абстракция. В большинстве случаев рациональнее обойтись ко…
Однажды при работе с крупной кодовой базой одного фронтенд-приложения я заметил, что функционал постепенно группируется относительно команд (доменов). Каждая из таких групп функционала постепенно накладывает собственные ограничения на архитектуру. Как оказалось, обработка ошибок при сравнении кода двух разных команд неоднородна. В одном случае разработчики структурировали ошибки стандартным наследованием JS/TS, в другом были использованы перехваты возникающих ошибок и логирование.Стало ясно, чт…