Обновить

Разработка

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

Реальный кейс настройки Pod Autoscaling в k8s с точки зрения разработчика

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели7.5K

На носу 2026 год, а я хочу поделиться своим путешествием по переводу приложения на инфраструктуру Kubernetes. Самой сложной и интересной частью была настройка автоскейлинга. Не слишком ли заезженная тема? Думаю нет, потому что я буду рассказывать именно с позиции разработчика приложения, а не девопса. Мне повезло, я без понятия как это всё настраивается. Я буду рассказывать как это всё работает. Конфигов кубера будет минимум, рассуждений и погружений в метрики максимум. В конце оставил TL;DR. Поехали?

Читать далее

Пагинация в PostgreSQL: ROW_NUMBER убивает производительность

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

Эффективная пагинация — не просто удобство, а необходимость. Анализ нагрузочного тестирования, метрик системы и планов выполнения показывает, что выбор неправильного метода может замедлить приложение в 15 раз, создавая катастрофическую нагрузку на СУБД. Одни методы работают с молниеносной скоростью, а другие превращаются в «убийц производительности».

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

Настройка VPS своими руками: Docker + Nginx + SSL

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

Всем привет! Часто требуется поднять свой проект на VPS/VDS. Именно это я и покажу в статье.

Мы настроем сервер, NGINX, выпишем SSL-сертификат и развернём код тестового приложения.

Читать далее

Автоматизация обновления компонентов АРМ на рабочих станциях

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

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

Читать далее

“JavaScript — это плохо, а Java — это хорошо”. AI, вайб-кодинг, Spring и рынок труда: что волнует джавистов сегодня

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

На конференции Joker 2025 у нас была отличная возможность понять, как живётся Java-сообществу.

Как AI влияет на Java-разработку? Вайб-кодинг — полезный инструмент или угроза рабочим местам? Spring — незаменимый фреймворк или слишком тяжёл для многих задач? Что с рынком труда и зачем кандидаты накручивают опыт? И главное — зачем писать на Java, если есть JavaScript? 

Смотрите на YouTube и VK Видео

Читать далее

Пишем HTTP-сервер на php и сокетах

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

Разбираем протокол http, создание базового http-сервера на php с использованием сокетов, обработкой запросов и формированием ответов.

Читать далее

Protobuf как контракт: spec‑first валидация с protoc‑gen‑validate

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

Protobuf как контракт: spec‑first валидация с protoc‑gen‑validate

Первая статья из мини‑серии про валидацию на базе Protobuf. В этой части — концепция spec‑first и protoc‑gen‑validate. В следующей поговорим про protovalidate и то, почему его вообще имеет смысл рассматривать как «следующее поколение» (или же как очередная эволюция в обратную сторону?)

Также, чтобы не пропустить следующую часть, очень рекомендую подписаться на мой телеграмм канал :-)

Читать далее

Как я создал стартап на 150 млн$*

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

И почему меня это не тревожит.

Всем привет. Вы наверняка наслышаны про успехи нового стартапа ИИ Aristotle (с инвестициями в 150 млн$ и оценкой в 1,5 млрд$)

Так получилось, что я - создатель это стартапа.

Ой да ладно

Как ИИ-скрипт парализовал ИТ-инфраструктуру

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

Привет, Хабр! Меня зовут Александр, я работаю в Региональном центре кибербезопасности ХМАО-Югры на базе АУ «Югорский НИИ информационных технологий», проще говоря – SOC. Мы занимаемся обеспечением информационной безопасности в органах государственной власти, органах местного самоуправления, медицинских организациях на территории ХМАО-Югры. В качестве первой статьи я выбрал кейс ИБ, который не так давно произошел в ИТ-инфраструктуре нашего Абонента (статья публикуется с согласия Абонента). Моя история о том, как инструменты с ИИ могут стать причиной выхода из строя ИТ-инфраструктуры. Надеюсь, наш опыт поможет другим избежать таких ситуаций в будущем.

Читать далее

Математика боя: ученый из МФТИ построил модель современных военных действий

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

Математик из МФТИ  разработал новую усовершенствованную модель для описания динамики современных вооруженных конфликтов, которая впервые учитывает нелинейную зависимость передвижения войск от их собственной концентрации и плотности сил противника. Модель, основанная на системе нелинейных дифференциальных уравнений в частных производных, расширяет классические законы Ланчестера, добавляя в них пространственное измерение и реалистичные тактические факторы. Для решения этих сложных уравнений был создан устойчивый и точный численный метод, позволяющий моделировать возникновение и эволюцию «горячих точек» на поле боя. Результаты исследования, опубликованные в Journal of Applied Mathematics and Physics, открывают новые возможности для стратегического планирования и оптимизации военных операций.

Читать далее

Статичный сайт на webpack5 с svg sprite

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

Этот стартовый сборка для разработки статичного сайта на Webpack5. Максимально упростил разработку: можно подключать встариваемы модули шаблонов для страниц (header/footer), использовать SASS с удобными миксинами, автоматически собирать SVG-спрайты для иконок. Для продакшна - минификация CSS/JS, удаление console.log и разделение кода на чанки для кэширования.

Ключевые части сборки: html-webpack-plugin генерирует HTML из src/html/views, raw-loader подтягивает include-фрагменты.

SCSS миксины для удобных медиа запросов, краткой их записи +r($md).

Автоматическая генерация SVG-sprite, svg-sprite-loader собирает все src/icons/*.svg в inline-спрайт — иконки затем вставляются в шаблоны через .

Читать далее

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

Чего нам стоит перевод фильма AI построить

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

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

Читать далее

Подключение SD карты по SPI (Капсула памяти)

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

В этом тексте я написал про некоторые особенности работ c SD картами при соединении их с микроконтроллером по интерфейсу SPI.

Читать далее

Ouroboros — язык программирования почти без синтаксиса

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

От переводчика: статья немного сокращена по сравнению с оригиналом, исключён раздел об этимологии слова "Ouroboros", а также полные каламбуров отсылки автора к латинским, прочим романским и английским корням.

Далее - от автора.

Можно ли создать язык программирования, в котором нет синтаксиса? Кажется, что это чистое противоречие. Вся суть языков программирования заключается в синтаксисе, плюс немного в генерации и оптимизации кода, настройке сред выполнения и т.д. Но с точки зрения программиста — именно синтаксис самая важная часть языка. Когда вы приступаете к изучению нового языка программирования, вам обязательно придётся уделить время освоению синтаксиса. 

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

Именно этих целей мы попытались достичь, создав язык Ouroboros. Его синтаксис максимально прост. Настолько, что в этом языке даже не предусмотрен синтаксический анализатор. В нём есть только лексический анализатор, код которого составляет 20 строк.

Читать далее

Объяснение алгоритма деления двухразрядных чисел по материалам Дональда Кнута

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

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

Ограничимся делением двухразрядных чисел без знака. Деление чисел большей разрядности можно обобщить, при необходимости обратившись к первоисточнику [1]. Описываемый алгоритм назовем «программный 128/128». Заметим, что во многих 64-битных компиляторах он реализован (GCC, Clang, Intel Compiler) и может быть использован напрямую без изобретения велосипеда.

Цель данной статьи — подробно объяснить детали алгоритма, чтобы снизить порог входа в энциклопедические труды Д. Кнута, в том числе объяснить почему деление в процессоре дает лишь одноразрядное частное (конкретно для 64-битных процессоров можно делить 128-битное число на 64-битное, получая лишь 64-битное частное). Назовем процессорный алгоритм деления как «аппаратный 128/64».

Ключевым моментом в понимании алгоритма деления является процесс нормализации чисел, который позволяет воспользоваться встроенным в процессор делением 128/64.

Алгоритм деления двухразрядных чисел в зависимости от разрядности делителя разделяется на два: половинчатое деление, когда делитель по факту одноразрядный, и полное деление, когда делитель двухразрядный. Назовем первый алгоритм как «половинчатый программный», а второй как «полный программный». Заметим, что «аппаратный 128/64» является половинчатым; он будет использован в обеих ветках программного алгоритма.

Читать далее

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

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

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

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

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

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

Связь без мобильной сети: как я развернул свою VoIP-телефонию на участке

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

Когда мобильная связь подводит, особенно важно оставаться на связи с близкими. Почему бы тогда не организовать собственную телефонную сеть на основе VoIP? Меня зовут Дима Абакумов, и под катом расскажу, как я решал эту задачу и с какими трудностями столкнулся

Читать далее

Как реализовать эффект, подобный Liquid Glass, при помощи CSS без JavaScript и шейдеров

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

В этой статье я разберу, как создать интерфейс Liquid Glass компании с логотипом фрукта без использования различных npm-модулей или шейдеров, нагружающих видеопамять устройства.

Читать далее
12 ...
50