Обновить
512K+

JavaScript *

Прототипно-ориентированный язык программирования

202,24
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Эволюция Telegram-бота: От скрипта на коленке до асинхронной системы управления кластером (v1.13)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

В первой части мы создавали простого бота для управления одним сервером. Во второй — учили его измерять скорость и обновляться. Казалось бы, задача решена? Как бы не так.

В этой статье я расскажу, как проект VPS Manager перерос статус «скрипта для себя» и превратился в полноценную асинхронную платформу с Web-админкой, поддержкой Docker-кластера и базой данных SQLite. Встречайте версию 1.13.0.

Читать далее

Создание браузерного расширения с native messaging на C#

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8.4K

Привет, Хабр. Меня зовут Алексей, я бэкенд-разработчик C#. Хочу рассказать о том как я узнал что такое native messaging в браузерах и какие задачи можно с его помощью решать. В одном проекте я разрабатывал десктопную утилиту, которая должна была уметь обмениваться сообщениями с веб-страницами в браузере, чтобы в том числе управлять их содержимым и как угодно взаимодействовать с ними. Расскажу о том, как удалось решить такую задачу и покажу результат работы небольшого приложения с таким взаимодействием.

Читать далее

Как работают современные браузеры. Часть 1

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели13K

Веб-разработчики нередко воспринимают браузер как «черный ящик», который каким-то чудом превращает HTML, CSS и JS в интерактивные веб-приложения. На самом деле современный браузер — будь то Chrome (на базе Chromium), Firefox (Gecko) или Safari (WebKit) — представляет собой чрезвычайно сложное программное решение. Он управляет сетевыми запросами, разбирает (парсит) и выполняет код, рендерит графику с ускорением на графическом процессоре (GPU) и изолирует контент в отдельных процессах для обеспечения безопасности.

В этой серии статей мы подробно рассмотрим, как устроены современные браузеры, сделав акцент на архитектуре и внутреннем устройстве Chromium, но также отметим ключевые отличия в других браузерах. Мы рассмотрим весь цикл: от сетевого стека и конвейера парсинга до рендеринга с помощью Blink, выполнения JS с помощью движка V8, загрузки модулей, многопроцессной архитектуры, песочниц безопасности и инструментов разработчика. Главная цель — дать понятное и доступное объяснение того, что происходит в браузере "под капотом".

Читать далее

Реактивная Архитектура: Пишем надежный Optimistic UI на чистом RxJS (Pattern Compensating Transaction)

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.9K

Пользователи ненавидят спиннеры. Они хотят видеть лайк сразу после клика. Optimistic UI решает эту проблему, но создает новую: что делать, если сервер вернет ошибку?

В императивном коде (Promise/async-await) откат состояния превращается в ад из try/catch и ручных мутаций переменных, порождая Race Conditions.

В этой статье я покажу, как реализовать надежный паттерн Compensating Transaction на чистом RxJS. Мы построим архитектуру, где состояние это поток, который невозможно "сломать" частыми кликами или сетевыми сбоями. Никаких if/else, только чистые потоки.

Построить реактивный UI

Анализируем UDP логи Squid-proxy

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.4K

Ремейк приложения SqStat, читаем access логи по UDP. Пока анализируем не более часа, а нужно ли больше? В наше время есть GrayLog, ELK c AI-агентами. Нужен ли нам звёздный крейсер? Статья про Squid в Docker, SSL bump, анализ access-логов, Bun, Elysia, Redis, Vue. Всего по чуть-чуть.

Хотите узнать больше?

Сыч: телеграм-бот, который помнит обиды и обходит лимиты Google Gemini

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели14K

Написал бота на Google Gemini, который ведет себя как живой участник чата: у него есть характер, он помнит обиды (система репутации) и может послать, если вы это заслужили.

А еще он бесплатно расшифровывает голосовые (лучше Telegram Premium), понимает контекст переписки и обходит лимиты API через ротацию ключей. Под капотом — Node.js, никаких баз данных (только JSON) и чистый KISS-принцип.

Посмотреть код

Реверс-инжиниринг приложений на Android: знакомство с Frida

Время на прочтение13 мин
Охват и читатели14K

Реверс-инжиниринг — это трудоемкая и интересная задача, которая поддается не всем. Любой может «скормить» программу декомпилятору, но не у всех хватит выдержки разобраться в хитросплетениях машинных команд. Процесс становится сложнее, если исследование проводится над программой для другого устройства, например телефона с ОС Android.

Звучит сложно. Долгое время и мне так казалось, особенно при создании модов для приложений. Байт-код smali неплох, но писать на нем сложную логику вручную — неблагодарное занятие. Но недавно мне попался на глаза решение для динамического реверс-инжиниринга — Frida.

Frida — это инструмент, который позволяет вживлять небольшой кусок JavaScript-кода прямо в запущенное приложение и менять его поведение. Под катом я расскажу, как работать с Frida, исследовать приложения на телефоне без root-доступа и создавать свои моды.

Читать далее

Отображение Excel в React: экспериментальный прототип с merge и изначальной структурой

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.2K

Снова на связи я –Дмитрий, React-разработчик, и в этот раз мы поговорим о создании фундамента для дальнейшей разработки.

Идея — сделать компонент в реакте, который сможет отобразить файл Excel в обычной HTML-таблице со всеми слияниями ячеек, форматированием, несколькими строками заголовка и полностью сохранённой структурой.

Казалось бы, задача простая: берёшь любую библиотеку, читаешь файл и показываешь. На практике всё оказалось гораздо интереснее.

Читать далее

Первый опыт интеграции веб-приложения с 1С — о чём я бы хотел знать перед стартом

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.4K

Единственное что я знал про 1С до начала работы с ним — это очень сложный механизм, внешне напоминающий свой собственный браузер со своим собственным фреймворком, что код 1С модулей пишется на своём языке стандарта ecmascript, на кириллице — по‑русски, который после сурового frontend выглядит забавно.
И вот что ещё я теперь знаю.

Читать далее

Как начать работать с Nuxt UI - библиотекой компонентов для Vue и Nuxt

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели10K

Недавно UI-библиотека Nuxt UI получила серьёзное обновление — версию Nuxt UI 4. Это принесло два больших изменения. Во-первых, теперь можно использовать Nuxt UI не только с Nuxt, но и с Vue напрямую. Во-вторых, все ранее платные возможности (Pro-компоненты, стартовые шаблоны и Figma UI Kit) теперь полностью бесплатны.

Всё это хороший повод разобраться, как же устроена Nuxt UI, в чём её преимущества и как начать с ней работать.

Читать далее

Делаю своего ИИ-помощника для экосистемы HalNet

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.7K

Локальный ИИ-ассистент прямо в мессенджере HalChat: без серверов, без рисков, только приватность и RAG.

Читать далее

Принимаем сложные решения с помощью плагина Datacore. А может поиграем в игру внутри Obsidian?

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели10K

Я много использую Obsidian для работы и постоянно использую плагин Dataview для сбора и анализа данных, но в нем довольно много недостатков. И основная проблема — нельзя получить доступ к обычным данным в заметках. Поэтому в этой статье я расскажу о новом плагине Datacore, который открывает, практически, безграничные возможности работы с заметками.

Я покажу, как с помощью Datacore решать стандартный кейс с проблемой выбора из нескольких вариантов или даже как в плагине сделать игру на React.

Читать далее

История о том, как ТехВилл сделал первый в России offline‑first PWA для курьерской доставки

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.8K

Я, Алексей Борискин из команды ТехВилла, рассказываю, как мы сделали первый в России offline-first PWA для курьеров-партнеров. Теперь никакой зависимости от интернета — ваши заказы закрываются своевременно, и сотни курьеров-партнёров работают спокойно даже при полном отсутствии связи.Подробнее об этом проекте и других технических деталях — в моём канале: https://t.me/dostavka_bagov.

Читать далее

Ближайшие события

Запускаем C++ SQL-движок в браузере: как парсить Excel, CSV и Parquet через WebAssembly (без сервера)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.5K

Современный фронтенд давно перестал быть просто "лицом" приложения. Мы переносим в браузер нейросети, обработку видео и криптографию. Но когда дело доходит до банальной аналитики файлов — например, локального парсинга тяжелого Excel или Parquet-файла и выполнения SQL-запросов по ним — мы часто упираемся в ограничения JS-библиотек или вынуждены гонять данные на сервер.

Команда r7-consult решила задачу радикально: мы взяли наш C++17 движок excel_loader, скомпилировали его в WebAssembly и получили возможность выполнять полноценный SQL по локальным файлам прямо в браузере.

В этой статье разберем архитектуру решения wasm-sqlite-database, посмотрим, как C++ код дружит с JS, и покажем, как превратить браузер в локальный ETL-инструмент.

Читать далее

Грани полиморфизма React: полиморфные декораторы

Время на прочтение6 мин
Охват и читатели6.9K

Привет, снова Костя из Cloud.ru. Мы поговорили уже про as для типобезопасного полиморфизма, asChild для композиции и FACC для вариативного дизайна. Но что, если я скажу, что есть способ комбинировать логику ещё элегантнее и не смешивать ее с отрисовкой? Сегодня разбираем полиморфные декораторы - HOC'и на стероидах.

Интересно

Идеально размещённые тултипы: по углам

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K

Мы продолжаем делать тултипы, которые “следуют” за своим якорем, и на этот раз поработаем с новыми позициями и изучим новые приёмы. Я буду исходить из того, что вы прочитали и поняли первые две части, поэтому не стану заново объяснять уже разобранные вещи. Сразу предупрежу: если вы их пропустили, местами можно ощутимо запутаться.

Читать далее

Первая в мире библиотека Web Components в духе shadcn. Серьёзно, я проверял

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели26K

Первая в мире библиотека Web Components в духе shadcn/ui

Насколько я проверил — это первая подобная библиотека для Web Components. Если ошибаюсь — поправьте в комментах! 🤓

Let's get it

Baseline: ноябрь 2025

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели6.5K

Baseline: ноябрь 2025

Обзор на браузерные API, которые стали Widely available в ноябре 2025. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.

Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем.

2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.

Узнать, что можно применять в проде

Ответ фронтендера на «Не занимайтесь преждевременной оптимизацией»

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели20K

Я хочу показать, почему распространённая фраза "не занимайтесь преждевременной оптимизацией" почти всегда используется неправильно, особенно в современных фронтенд-проектах. Я посмотрю на исторический контекст, разберу, что именно Кнут называл оптимизацией, и почему многие вещи, которые считаются "преждевременной оптимизацией", на деле — нормальная инженерная дисциплина.

Читать далее

Изменение размера выгружаемых файлов изображений в браузере

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели6.7K

Представим распространённые ситуации:

— пользователь вашего сайта пытается выложить фото или другое изображение, но натыкается на фрюстрирующее сообщение об ошибке, гласящее, что размер файла непозволительно большой;

— ваш сайт активно использует изображения, присылаемые пользователями, и по мере роста аудитории, вы всё чаще сталкиваетесь с падением производительности серверов, а то и с падением оных.

Данная статья предлагает решение данных проблем путём изменения и/или создания файлов изображений «налету» прямо перед отправкой на сервер. (Спойлер: это просто). Здесь вы найдёте исчерпывающую информацию для разработки специальных собственных скриптов, а так же готовое решение, которое можно просто подключить и пользоваться.

Читать далее