Представлен локальный и бесплатный сервис BentoPDF для работы с PDF. Вся обработка происходит в браузере. Умеет объединение, разделение, поворот, удаление страниц и кроппинг, а также в нём можно быстро добавить вотермарку, сделать нумерацию страниц и поменять текст в файлах. При этом бесплатно, без лимитов и даже регистрацию не просят.
Инфраструктура, платформы и эксплуатация — темы, к которым в 2025 году вы возвращались чаще всего. Мы собрали эти материалы в один дайджест, чтобы к ним было удобно вернуться в любой момент.
Скрипт устанавливает и настраивает dumbproxy c TLS-сертификатами от LetsEncrypt, выпущенными прямо на IP-адрес сервера, без домена.
Настройка браузеров и прочих клиентов уже обсуждалась в одной из предыдущих статей. Добавлю только, что на сегодняшний день в качестве клиента для Android я бы выбрал NekoBox.
Обновлён проект Python Scripts, где более 60 Python-скриптов для любых задач, включая алгоритмы по парсингу, работе с видео и фото, клонированию сайтов, скачиванию с сайтов и другие популярные решения.
«Существуют цифры\числа\значения, которые должен знать каждый программист на Python. Например, насколько быстро или медленно добавляется элемент в список в Python? А как насчёт открытия файла? Это занимает меньше миллисекунды? Есть ли что‑то, что замедляет этот процесс? Если у вас есть алгоритм, чувствительный к производительности, какую структуру данных следует использовать? Сколько памяти занимает число с плавающей запятой? А как насчёт одного символа или пустой строки? Насколько быстр FastAPI по сравнению с Django? Я хотел бы уделить немного времени и записать показатели производительности, специально ориентированные на разработчиков Python», — сообщил автор проекта Майкл Кеннеди.
Открытый проект mail2telegram позволяет перенаправляет электронную почту сразу в Telegram. Можно настроить фильтры пересылки, выбрать группу, в которую будут падать письма и автоматом отсеивать весь спам.
Запустить в Dimension-UI мониторинг данных PostgreSQL с помощью запроса с интервалом 3 сек.
WITH params AS (
SELECT
15 AS total_frames,
20 AS canvas_height,
3 AS frame_duration_sec
),
animation_state AS (
SELECT
(CAST(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) AS INTEGER) / frame_duration_sec) % total_frames AS frame_idx
FROM params
),
tree_definition AS (
SELECT
frame_id,
y_pos,
CASE
-- ═══════════════════════════════════════
-- ЗВЕЗДА на верхушке
-- ═══════════════════════════════════════
WHEN y_pos = 20 AND frame_id = 7 THEN '*'
-- ═══════════════════════════════════════
-- ВЕРХУШКА елки (острая)
-- ═══════════════════════════════════════
WHEN y_pos = 19 AND frame_id = 7 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 1 (y=16-18) — расширяется книзу
-- ═══════════════════════════════════════
WHEN y_pos = 18 AND frame_id BETWEEN 6 AND 8 THEN 'G'
WHEN y_pos = 17 AND frame_id BETWEEN 5 AND 9 THEN 'G'
WHEN y_pos = 16 AND frame_id BETWEEN 4 AND 10 THEN 'G' -- широкий низ яруса
-- Сужение перед ярусом 2
WHEN y_pos = 15 AND frame_id BETWEEN 5 AND 9 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 2 (y=12-14)
-- ═══════════════════════════════════════
WHEN y_pos = 14 AND frame_id BETWEEN 4 AND 10 THEN 'G'
WHEN y_pos = 13 AND frame_id BETWEEN 3 AND 11 THEN 'G'
WHEN y_pos = 12 AND frame_id BETWEEN 2 AND 12 THEN 'G' -- широкий низ яруса
-- Сужение перед ярусом 3
WHEN y_pos = 11 AND frame_id BETWEEN 4 AND 10 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 3 (y=8-10)
-- ═══════════════════════════════════════
WHEN y_pos = 10 AND frame_id BETWEEN 3 AND 11 THEN 'G'
WHEN y_pos = 9 AND frame_id BETWEEN 2 AND 12 THEN 'G'
WHEN y_pos = 8 AND frame_id BETWEEN 1 AND 13 THEN 'G' -- широкий низ яруса
-- Сужение перед ярусом 4
WHEN y_pos = 7 AND frame_id BETWEEN 3 AND 11 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 4 — нижний, самый широкий (y=4-6)
-- ═══════════════════════════════════════
WHEN y_pos = 6 AND frame_id BETWEEN 2 AND 12 THEN 'G'
WHEN y_pos = 5 AND frame_id BETWEEN 1 AND 13 THEN 'G'
WHEN y_pos = 4 AND frame_id BETWEEN 0 AND 14 THEN 'G' -- во всю ширину!
-- ═══════════════════════════════════════
-- СТВОЛ (y=1-3)
-- ═══════════════════════════════════════
WHEN y_pos BETWEEN 1 AND 3 AND frame_id BETWEEN 6 AND 8 THEN 'T'
-- Всё остальное — фон
ELSE 'S'
END AS pixel_char
FROM generate_series(0, 14) AS frame(frame_id)
CROSS JOIN generate_series(1, 20) AS y(y_pos)
),
pixel_data AS (
SELECT td.*
FROM tree_definition td
JOIN animation_state ast ON td.frame_id = ast.frame_idx
),
layers_logic AS (
SELECT
y_pos,
pixel_char,
MAX(CASE WHEN pixel_char IN ('T', 'G', '*') THEN y_pos ELSE 0 END) OVER () as max_obj_height
FROM pixel_data
)
SELECT
CURRENT_TIMESTAMP as dt,
CASE
WHEN pixel_char = 'T' THEN '4_Trunk'
WHEN pixel_char = 'G' THEN '3_Tree'
WHEN pixel_char = '*' THEN '2_Star'
WHEN pixel_char = 'S' THEN
CASE WHEN y_pos > max_obj_height
p.s. Данные по запросу любезно предоставлены Claude Opus 4.5.
Представлен открытый проект на Python под названием Reverse API engineer. Это консольный инструмент, который фиксирует трафик браузера и автоматически генерирует готовые к работе клиенты Python API. Больше никакого ручного реверс‑инжиниринга — просто просматривайте, записывайте и получайте чистый API‑код.
«Этот инструмент выполняет код локально, используя Claude Code‑ пожалуйста, следите за выводом/ На некоторых веб‑сайтах используется расширенная система обнаружения ботов, которая может ограничивать захват или требовать ручного взаимодействия», — пояснил автор проекта.
Особенности Reverse API:
автоматизация браузера: создан на базе Playground с режимом скрытности для реалистичного просмотра;
режим автономного агента: полностью автоматизированное взаимодействие с браузером с помощью агентов искусственного интеллекта (автоматический режим с MCP, использование браузера, stagehand);
запись HAR: фиксирует весь сетевой трафик в архивном формате HTTP;
генерация на основе искусственного интеллекта: использует Claude 4.5 для анализа трафика и генерации чистого кода на Python;
поддержка нескольких SDK: встроенная интеграция с Claude и OpenCode SDK;
Для российского ИТ этот год снова оказался непростым. Но, пожалуй, именно такие периоды лучше всего показывают реальную зрелость рынка и команд. Мы много перестраивались, пересобирали продукты и процессы, часто принимали сложные решения на ходу и при этом не останавливались.
За это время стало заметно, как меняется сам рынок. Отечественные ИТ-решения повзрослели: появилось больше осмысленных внедрений и ответственности за результат, больше реальной инженерной и продуктовой работы. Импортозамещение окончательно перестало быть абстрактным лозунгом и превратилось в ежедневную практику. Это сложно, иногда нервно, но точно полезно для всей отрасли.
Хочу поблагодарить всех, кто в этом году не просто адаптировался, а продолжал создавать и улучшать продукты: разработчиков, инженеров, архитекторов, заказчиков и партнеров. Тех, кто спорил, искал лучшие решения, не соглашался на посредственность и держал высокую планку качества. Именно благодаря такому взаимодействию рынок не просто выстоял, а продолжает развиваться.
В новом году хочется пожелать устойчивости и профессиональной смелости:работать на перспективу, делать качественные продукты и не бояться развивать сложные системы.
С Новым годом! Пусть он принесет больше ясности, сильных решений и поводов гордиться своей работой.
Обновлён сборник твикеров, кастомайзеров и проверенных системных решений для Windows под названием System Tools. База данных проект включает ссылки на популярные и полезные утилиты для очистки, твика, удалённого доступа, мониторинга, виртуальных машин, менеджеров дисков, периферии и аудио в системе.
Представлен открытый удобный календарь на 2026 год, на котором все даты года отображаются на одной странице. Он автоматически поместится на одном листе бумаги любого размера. Для достижения наилучших результатов установите альбомную ориентацию при печати и отключите верхний и нижний колонтитулы.
Готово ли ваше облако к 2026 году? Быстрый FinOps-чек-лист
Облачные расходы растут, а контроль и прозрачность часто не поспевают. Чтобы понять, насколько процессы готовы к следующему году, эксперты из Практики FinOps подготовили короткий чек-лист.
Это бесплатный инструмент в формате гугл-таблицы. Прохождение занимает 5–7 минут.
Что дает чек-лист:
видно, где процессы уже работают, а где есть пробелы
понятно, на каких этапах теряется прозрачность расходов
есть конкретные шаги, что имеет смысл внедрять дальше
Чек-лист можно пройти одному, например CTO или Head of Engineering, либо вместе с командой, инженером, архитектором и финансовым специалистом.
Результат, понятный срез текущего состояния и ориентиры, как корректировать облачные расходы в 2026 году.
Подборка инструкций по работе с сетью для начинающих
Привет, Хабр! В пятницу я снова с подборкой статей. На этот раз несу инструкции по работе с сетями.
Зачем сетям нужен RADIUS и как его развернуть. Как работает RADIUS, за что отвечает AAA и как развернуть свой сервер на базе FreeRADIUS в облаке — от установки до интеграции с оборудованием MikroTik.
Настройка SSL-сертификата на Nginx. Как установить и настроить SSL-сертификат для серверов на nginx. Разбираем получение сертификата Let’s Encrypt® или работу со своим для настройки HTTPS-соединения.
Мы много писали, вы много читали — и вместе мы сделали этот год насыщенным. А теперь самое интересное: давайте посмотрим, каким был 2025 год для нашего блога.
📚 215 публикаций Столько материалов мы выпустили за год. А вы их (почти все) прочитали. Спасибо за доверие!
👀 1 851 319 читателей Почти два миллиона взглядов на наши продукты, инфраструктуру и разработки команды.
⭐ 852 добавления в избранное Тексты, которые вы сохраняли, чтобы вернуться к ним позже и перечитать внимательнее. А чаще всего вы читали про облачные сервисы, OpenStack, DevOps-практики и тестирование — тексты, основанные на нашем опыте.
И ещё один повод гордиться этим годом — спецпроекты. Их посмотрели, прокомментировали и сохранили на будущее больше 350 000 человек! Масштаб, если честно, впечатляет даже нас.
И если этот год чему-то научил нас, то вот чему: честные истории, понятные разборы и свежие идеи важны и нужны. Поэтому мы продолжим в новом году!
Academic Earth — огромная библиотека бесплатных курсов обо всем на свете от ведущих специалистов мира. От обучения химии и информатике до бизнеса и психологии;
Classcentral — самый удобный поисковик по бесплатным курсам на любую тему;
Edx — тут собраны обучающие курсы от самых топовых ВУЗов мира, таких как Гарвард, Стэнфорд и Массачусетский технологический институт. Разумеется, бесплатно;
Google Garage Courses — библиотека бесплатных курсов от Google с возможностью получить карьерный сертификат от технологического гиганта;
Khanacademy — лучший сайт для углубленного изучения математики и других прикладных наук;
Udemy — для тех, кто планирует работать в «диджитале»: отличные курсы по программированию, дизайну, веб‑разработке, графике;
Treehouse — мастхэв для будущих программистов. Простые и понятные курсы по Python, Data Science, React и другим темам.
Хотите выяснить, где учиться IT? В экосистеме Хабра есть маркетплейс курсов на Хабр Карьере, на котором собраны сотни онлайн‑обучений в самых разных специализациях: программировании, аналитике, дизайне, менеджменте и других. Чтобы пользователи могли проверить качество курсов, там показаны отзывы от тех, кто уже прошел обучение — изучайте и выбирайте лучшее для себя.
Cloud GPU: как работает и для каких задач используется
GPU в облаке — это вычислительный ресурс для задач с высокой долей параллельных операций. Такие серверы используют, когда стандартных CPU недостаточно по производительности или времени выполнения. Ниже — как устроен Cloud GPU и для каких задач его применяют на практике на примере сервиса в Рег.облаке.
Cloud GPU — это виртуальный сервер с подключенным графическим ускорителем. Он используется для:
обучения и использования моделей ИИ;
обработки изображений, видео и звука;
3D-моделирования и рендеринга;
параллельных вычислений и аналитики.
Инфраструктура Cloud GPU построена на серверах с процессорами AMD EPYC и накопителями NVMe SSD. Используются видеокарты NVIDIA A4000 (16 ГБ), A5000 (24 ГБ) и A100 (80 ГБ). Для работы доступен готовый образ Ubuntu GPU с предустановленными библиотеками и инструментами для ML и ИИ. Управлять серверами можно через облачную платформу.
Сервис работает по модели pay-as-you-go — пользователь оплачивает только фактическое время работы GPU. Такой формат подходит для сценариев с переменной нагрузкой: обучение и дообучение моделей, периодические расчеты и inference.
количество пользователей Cloud GPU выросло на 189%;
среднее время выполнения задачи на одном сервере составило 15 часов в сутки;
среднее количество дней использования GPU на одного клиента выросло в два раза;
48% пользователей повторно заказывают Cloud GPU для новых задач.
Cloud GPU используют в e-commerce, розничной торговле и сфере услуг для аналитики, рекомендательных систем и автоматизации процессов. Наиболее востребованной видеокартой за последние шесть месяцев стала NVIDIA A5000 (24 ГБ) — ее выбрали почти 60% пользователей как сбалансированный вариант для ML- и inference-задач.
Больше о технических параметрах сервиса, доступных конфигурациях и условиях использования GPU Cloud можно узнать на сайте Рег.облака.
Программист Тирекс написал праздничное веб-приложение с обратным отсчетом до Нового года и хочет поздравить им всех коллег. Приложение уже собрано: в директории web находятся готовые статические артефакты (HTML, JavaScript и изображения). У Тирекса есть TLS-сертификат и приватный ключ, и он хочет, чтобы приложение работало по HTTPS.
Задача
Нужно упаковать приложение в Docker-контейнер, чтобы его можно было легко запускать на любом сервере, и сделать доступным из интернета. Времени у Тирекса осталось совсем немного!