Обновить

Разработка

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

3D из 2D: Как получить карту глубины с одной камеры?

Для построения карты глубины иногда достаточно одной камеры и алгоритма Depth from Focus (DfF).

Как это работает:

  1. Меняем фокус на камере несколько раз и делаем снимки. Сначала фокус на переднем плане, потом в середине, потом на заднем.

  2. Фиксируем «резкость» каждого элемента на каждом кадре

  3. Строим карту. Для каждого элемента с «резкого» кадра, алгоритм вычисляет, на каком отделении от камеры находится эта точка. Всё вместе и даёт трёхмерную карту.

А как быстро менять фокус?

Классический моторный привод слишком медленный. Поэтому в таких системах часто используют жидкие линзы.

Пример устройства жидкой линзы
Пример устройства жидкой линзы

Это не стекло, а капля в гибкой оболочке. Её кривизну (а значит, и фокусное расстояние) можно менять мгновенно, подавая напряжение.

Где это применяют?

  • Контроль пайки компонентов на платах (проверка высоты).

  • Контроль на производстве (например, закрутка винтов).

  • Навигация роботов, где важно понимать рельеф местности.

Я использовал объективы с жидкими линзами в нескольких проектах, где это действительно было очень удобным и элегантным решением. Один из таких – была система контроля сборки блоков предохранителей для автомобилей. В ней за счёт технологии глубины из фокуса удалось бюджетно решить задачу контроля качества сборки и выявить ошибки установки предохранителей.

Теги:
+5
Комментарии1

OpenAI объявила о запуске модели ChatGPT Images на базе GPT-5.2, предназначенной для генерации изображений с использованием технологий искусственного интеллекта. Новая модель поддерживает широкий спектр функций редактирования, включая добавление и удаление элементов, комбинирование и смешивание изображений, а также их транспонирование. Обновление будет интегрировано в приложение ChatGPT и станет доступно пользователям во вкладке «Изображения».

В ChatGPT появился новый раздел «Изображения», в котором собраны все ваши картинки, а также есть набор из нескольких стилей для быстрого редактирования без составления промта.

Новый генератор изображений уже доступен бесплатно всем пользователям ChatGPT.

Несколько ключевых улучшений:

  • Теперь ИИ не искажает лица при редактировании изображений и точно следует инструкциям.

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

  • Скорость работы выросла в 4 раза. Это реально заметно.

  • Улучшена работа с текстом. Генератор понимает Markdown и может добавлять код на картинки.

Теги:
0
Комментарии2

Небольшое дополнение к статье про Raspberry Pi

Недавно я написал статью про небольшой домашний стенд на Raspberry Pi и Orange Pi: Tailscale, Ansible, Nginx и базовую автоматизацию.
В процессе чтения комментариев решил сделать несколько улучшений. Особенно благодарен комментариям от @Tony-Sol

Первое, что сделал — убрал root из inventory.

ansible_user=root Не надо так, лучше создать отдельного пользователя


На обеих машинах завёл отдельного пользователя ansible и команды на хосте:

sudo adduser ansible

sudo usermod -aG sudo ansible

echo 'ansible ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/ansible

sudo chmod 440 /etc/sudoers.d/ansible

2. Создание роли

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


Теперь создал роль и подключил ее в основной плейбук:

  • tasks / handlers / templates разнесены по каталогам;

  • apt заменён на package;

  • state: latestpresent;

  • become используется только там, где реально нужен;

  • проверка конфига вынесена в handler через nginx -t.

Отдельно напишу вещь, на которой споткнулся:
host_vars/<имя>.yml работает только если имя совпадает с inventory_hostname.
У меня хост назывался orange, а файл был pi2.yml — из-за этого Jinja-шаблоны молча брали дефолты.

3. ansible.cfg — мелкие, но полезные настройки

Добавил минимальный ansible.cfg в проект:

  • roles_path=./roles;

  • gathering=explicit (факты включаю только там, где нужны);

  • небольшие SSH-настройки для стабильности.

vault_password_file имеет смысл добавлять только когда реально используется vault, иначе Ansible начинает ругаться.

4. Добавил на Raspberry Pi Мониторинг: VictoriaMetrics + Grafana

Мониторинг вынес на более мощную Raspberry Pi, а Orange Pi оставил агентом:

  • VictoriaMetrics + Grafana в Docker Compose;

  • node_exporter на обоих устройствах;

  • сбор метрик через static targets.

В итоге стенд стал аккуратнее.

Если интересно — базовая архитектура и исходная версия описаны в предыдущей статье.

Теги:
-1
Комментарии0

Находим зловреды в любых файлах. Представлен открытый проект для анализа статического вредоносного ПО Qu1cksc0pe. Решение умеет анализировать исполняемые файлы, показывать, какие DLL файлы используются, видит все функции и API, разделы и сегменты, URL-адреса, IP-адреса, электронные письма, считает разрешения на Android, расширения и имена файлов. Проект сканирует документы: Word, Excel, HTML, Portable, OneNote, а также находит вирусы в файлах архивов ZIP, RAR и ACE.

Теги:
+5
Комментарии1

Баги на всех языках мира. Проверка LanguageTool

Всем привет! Hello, everyone! Hallo zusammen! Hola a tothom! مرحباً بالجميع!

В нашем блоге мы часто говорим про статический анализ, линтеры и подобные инструменты. Но на этот раз мы нашли их довольно интересного представителя! LanguageTool — это многоязычная программа проверки орфографии, стилистики и грамматики, которая помогает исправлять и перефразировать тексты.

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

Теги:
+4
Комментарии0

Сегодня обновим n8n, установленный по инструкции через веб-интерфейс.
Ранее я уже писал как обновлять portainer до актуальной версии через терминал(2.0.2 на момент написания поста). Сегодня расскажу как это можно сделать через браузер.

Напомню, что перед обновлением лучше сохранить бекап. Как это сделать я писал в [[Как обновить n8n на своем сервере(Docker)]].

  1. Заходим в Portainer(Если делали по инструкции выше, то это portainer.ваш_домен.com)

  2. Переходим в раздел Stacks->n8n. В секции "Containers" находим контейнер n8n, заходим в него.

  3. Нажимаем в блоке Actions кнопку Remove.

  4. Подтверждаем Удаление

  5. Возвращаемся в Stacks->n8n, Нажимаем на вкладку "Editor"

  6. Проверяем, что в конфиге, в строке "image:" значение "docker.n8n.io/n8nio/n8n:latest" - после двоеточия должно быть указано latest.

  7. Нажимаем "Update the stack"

  8. В модальном окне включаем опцию Re-pull image and redeploy и жмем "Update"

  9. Ждем пару минут, пока образ задеплоится.

  10. Заходим на n8n.ваш_домен.com и проверяем что версия обновилась

Другие инструкции по n8n:

Теги:
0
Комментарии1

Выделенные серверы переехали в личный кабинет Рег.облака

В Рег.облаке появилась возможность управлять выделенными серверами (bare-metal) прямо из личного кабинета — рядом с облачными ресурсами. Теперь физическое железо и виртуальная инфраструктура собраны в одном интерфейсе.

Гибридное облако стало ближе

Собрать полноценную гибридную платформу: мощность физических серверов и гибкость облачных сервисов — можно в одном окне. Список выделенных серверов сейчас отображается вместе с виртуальными машинами, хранилищами и сетевыми ресурсами. А это значит, что не нужно переключаться между системами — все услуги сразу под рукой.

Что уже доступно в новом интерфейсе

  • Выделенные серверы.
    Раздел находится рядом с облачными ресурсами — удобный шаг к общему реестру всех услуг.

  • Управление серверами.
    Статусы, характеристики, перезагрузка, доступ к IPMI и IP-KVM.

  • Доступы и сетевые настройки.
    Логины, пароли, DNS-настройки, управление доступами к ОС.

  • Работа с IP-адресами и сетями.
    Просмотр, заказ дополнительных IPv4/IPv6, настройка сетей и PTR-записей.

Что будет дальше

Мы продолжаем развивать интерфейс. В ближайших обновлениях появятся:

  • продление услуг в новом кабинете;

  • заказ резервного копирования;

  • встроенный мониторинг метрик;

  • заказ лицензий ispmanager;

  • виртуальный дата-центр VMware;

  • расширенный функционал для работы с ЛК.

Новый интерфейс уже доступен в личном кабинете Рег.облака. Тестируйте и делитесь впечатлениями: что понравилось, что стоит улучшить и каких функций пока не хватает. Пишите нам на team@reg.cloud — обратная связь особенно важна на этом этапе.

Теги:
+2
Комментарии0

AI-агенты для генерации дизайна интерфейсов

Появился новый термин: A2UI (Agent to UI). И хайпа вокруг него много. Особенно с появлением инструмента от Google – Stitch

Одни считают, что дизайнеры больше не нужны. Другие, что продакты не нужны. Живём во времена, когда “всех уже заменили”.

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

Для мобильных и веб-интерфейсов:

🔹 Google Stitch — хорошо генерирует мобильные интерфейсы. Можно за секунды собрать кликабельный прототип. Результаты ок, но продуманного UX там не будет. Для быстрых концептов must have.

🔹 BananiAI – на мой взгляд самый недооценённый продукт. Генерирует и мобилку, и веб на хорошем уровне. Сам описывает юз-кейсы. Лично пользуюсь, когда надо быстро накидать концепт для защиты бюджета или сходить на UX-исследования.

Для лендингов:

В Stitch и Banani лендинги генерируются плохо. Но есть два годных инструмента:

🔹 Magic Patterns – AI-инструмент для продуктовых команд. Хорошо делает лендинги, можно подключить свою дизайн-систему.

🔹 Relume – генерирует сайтмапы и вайрфреймы за минуты. 1000+ готовых компонентов, экспорт в Figma и Webflow, куда хотите. 

Оба платные, триал есть, но он так себе. Если ваша задача клепать лендинги, смотрите в их сторону.


И так, можно ли заменить дизайнеров? Тех, кто не хочет думать — наверно да. Во всех остальных случаях дизайнеры нужны. 

Кстати ценность дизайнера в продукте, не в рисовании картинок….

Telegram канал: "AI-заметки продакта" рассказываю про лайфхаки, полезные инструменты, а еще каждую неделю выходит дайджест с самыми важными новостями в мире AI без инфошума, только все самое важное.

Телеграм канал

Теги:
+3
Комментарии1

AI-агенты для генерации дизайна интерфейсов

Появился новый термин: A2UI (Agent to UI). И хайпа вокруг него много. Особенно с появлением инструмента от Google – Stitch

Одни считают, что дизайнеры больше не нужны. Другие, что продакты не нужны. Живём во времена, когда “всех уже заменили”.

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

Для мобильных и веб-интерфейсов:

🔹 Google Stitch — хорошо генерирует мобильные интерфейсы. Можно за секунды собрать кликабельный прототип. Результаты ок, но продуманного UX там не будет. Для быстрых концептов must have.

🔹 BananiAI – на мой взгляд самый недооценённый продукт. Генерирует и мобилку, и веб на хорошем уровне. Сам описывает юз-кейсы. Лично пользуюсь, когда надо быстро накидать концепт для защиты бюджета или сходить на UX-исследования.

Для лендингов:

В Stitch и Banani лендинги генерируются плохо. Но есть два годных инструмента:

🔹 Magic Patterns – AI-инструмент для продуктовых команд. Хорошо делает лендинги, можно подключить свою дизайн-систему.

🔹 Relume – генерирует сайтмапы и вайрфреймы за минуты. 1000+ готовых компонентов, экспорт в Figma и Webflow, куда хотите. 

Оба платные, триал есть, но он так себе. Если ваша задача клепать лендинги, смотрите в их сторону.


И так, можно ли заменить дизайнеров? Тех, кто не хочет думать — наверно да. Во всех остальных случаях дизайнеры нужны. 

Кстати ценность дизайнера в продукте, не в рисовании картинок….

Теги:
0
Комментарии0

Вебинар для разработчиков: Новое API и библиотека ParametricKit в nanoCAD BIM Строительство 25

Приглашаем на вебинар, посвященный работе с новой библиотекой ParametricKit — частью API для nanoCAD BIM Строительство 25. Обновленный API ускоряет разработку и поддержку библиотек благодаря поддержке C# и автоматизации типовых операций.

Ключевые темы:

  1. Обзор API и возможностей библиотеки ParametricKit

  2. C# как основной язык разработки библиотек

  3. Автоматизация рутинных операций при разработке библиотек

  4. Практические примеры работы с библиотекой ParametricKit

  5. Требования к среде разработки

Дата: 24 декабря (среда), 11:00–12:00 (МСК)
Участие: онлайн, бесплатно, по регистрации

Вебинар будет полезен BIM-разработчикам, программистам САПР, BIM-координаторам, технологическим компаниям в строительстве и дизайне.

Спикеры — эксперты «Нанософт»:
Вадим Мелков, руководитель группы разработки параметрических объектов
Василий Кузьмин, программист отдела BIM-технологий

Успейте зарегистрироваться! Количество мест ограничено.

Теги:
0
Комментарии0

Шифруем любой файл в PNG-картинку. Представлен открытый проект дешифратора ShadeofColor. Возможности: обход фильтров и блокировок (вместе .exe, .zip или .docx присылаем обычные изображение), незаметная передача файлов (PNG не вызывает подозрений), удобная архивация для визуальной сортировки, предпросмотра и каталогов. Это наглядный пример, как можно кодировать данные в цвета.

Теги:
+3
Комментарии5

Я требую добавить в настройки ленты хабра фильтр, который будет прятать всё г**но, которое тормоза интернетные а) генерили через ИИ

б) про ИИ

в) генерили с ИИ про ИИ.

Теги:
+42
Комментарии11

Нагрузочное тестирование YMatrix

Привет, друзья! Мой коллега Марк, ведущий архитектор GlowByte, поделился в новой статье результатами тестирования YMatrix.

Сразу оговорюсь, что это дополнение к предыдущей статье, для того, чтобы сформировать понимание сравнимости результатов различных форков GreenPlum, поэтому акцентировать внимание будем только на YMatrix. Детали по методике тестирования и как были получены результаты для GP6, GP7 и Cloudberry 1.6, можно прочитать в предыдущей статье по ссылке выше. 

Добро пожаловать в статью! Комментарии приветствуются.

Теги:
+1
Комментарии2

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

Новый курс «Платформа Tantor 6.x» на «Астра Знания»!

Мы подготовили новый курс «Платформа Tantor 6.х», посвященный новым функциям платформы управления любыми Postgres-like СУБД и возможностям, доступным DBA после выхода обновления. Размещен курс на платформе «Астра Знания». Он сочетает структурированный теоретический материал и практические задания, которые помогают закрепить приобретенные знания и навыки.

В программе:
▪️архитектура Платформы и ее возможности
▪️интеграция и работа со Swagger UI
▪️инструменты мониторинга, конфигурирования и обслуживания PostgreSQL
▪️браузер БД
▪️анонимайзер
▪️работа с уведомлениями

↗️ Программа и регистрация

Теги:
+1
Комментарии0

🎄Habr, пришло время добавить ещё больше новогодней атмосферы!🎄

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

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

Готовые работы отправляйте мне в личные сообщения в Telegram
Все подробности читайте — тут

Итоги будут подведены 25 сентября: я отберу лучшие работы, а победителя выберите Вы — участники конкурса.
Приз — Telegram Premium на месяц🎁

Давайте вместе сделаем декабрь ещё лучше и прекрасней! 🌟

Теги:
-1
Комментарии0

94 ГБ ОЗУ может утилизировать приложение Discord — реддитор поделился скриншотом этой ситуации. Он надеется, что фича с принудительной перезагрузкой приложения исправит ситуацию.

Ранее разработчики Discord для Windows «научили» мессенджер автоматически перезапускаться в фоновом режиме, если он использует более 4 ГБ ОЗУ. На Reddit создатели объяснили, что это часть текущего исследования и временная мера, призванная снизить нагрузку на память, с которой сталкиваются пользователи.

Теги:
+4
Комментарии0

77-летняя стримерша из России под ником i_olga стала победительницей международной премии NNYS, получив награду в категории «Лучший игровой момент года» по Counter‑Strike 2. Жюри и зрители отметили эпизод, который за несколько дней стал вирусным в сообществе.

Речь идёт об эйсе на карте Dust II: Ольга заняла позицию у «ямы» на «лонге» и с M4A1-S поочерёдно отправила в нокаут всю команду соперников. Ранее этот момент уже принёс стримерше номинацию на NNYS, а теперь — и главную награду. Для Counter‑Strike‑сообщества эйс i_olga стал одним из самых обсуждаемых хайлайтов года, выйдя далеко за пределы русскоязычной аудитории.

Ольга Ивановна стримит с 2021 года и за это время превратилась в одну из самых узнаваемых фигур русскоязычного Twitch. На её канале — более 220 тысяч подписчиков, а помимо Counter-Strike 2 она регулярно играет в Minecraft, Atomic Heart, Diablo II и другие проекты.

Теги:
+2
Комментарии4

📊 Multi-LLM Orchestrator v0.7.0: подсчёт токенов и мониторинг через Prometheus

На этой неделе вышел релиз v0.7.0 — завершена фаза observability. Теперь библиотека автоматически считает токены, оценивает стоимость запросов и экспортирует метрики в Prometheus. Всё работает из коробки.

Предыдущие релизы:

🔢 Автоматический подсчёт токенов

Библиотека автоматически считает токены для каждого запроса — и для prompt, и для completion. Используется tiktoken с fallback на оценку по словам.

from orchestrator import Router
from orchestrator.providers import GigaChatProvider, ProviderConfig

router = Router()
router.add_provider(GigaChatProvider(ProviderConfig(
    name="gigachat",
    api_key="your_key",
    model="GigaChat",
    verify_ssl=False
)))

# Токены считаются автоматически
response = await router.route("Напиши стихотворение про Python")

# Получаем статистику
metrics = router.get_metrics()
print(f"Total tokens: {metrics['gigachat'].total_tokens}")
print(f"  Prompt: {metrics['gigachat'].total_prompt_tokens}")
print(f"  Completion: {metrics['gigachat'].total_completion_tokens}")

Результат:

Total tokens: 75
  Prompt: 20
  Completion: 55

💰 Оценка стоимости запросов

Расчёт стоимости в реальном времени. Цены настраиваются в pricing.py (фиксированные значения для демонстрации — для production рекомендуется настроить под свои тарифы).

Результаты тестов с реальными провайдерами:

  • GigaChat: 75 tokens → ₽0.0750

  • YandexGPT: 105 tokens → ₽0.1575

  • Streaming: 342 tokens → ₽0.3420

📈 Интеграция с Prometheus

HTTP-эндпоинт /metrics в формате Prometheus. Метрики обновляются в реальном времени и готовы для scraping.

# Запускаем metrics server
await router.start_metrics_server(port=9090)

# Делаем запросы
await router.route("Привет!")

# Метрики доступны: http://localhost:9090/metrics

Экспортируемые метрики:

  • llm_requests_total — количество запросов

  • llm_request_latency_seconds — histogram латентности

  • llm_tokens_total — токены (prompt/completion)

  • llm_cost_total — стоимость в RUB

  • llm_provider_health — health status (0-1)

Готово для визуализации с Grafana.

🏗️ Архитектура

Router → Metrics Engine → Prometheus Exporter → Grafana.
Router → Metrics Engine → Prometheus Exporter → Grafana.

✅ Тестирование на реальных провайдерах

Все функции протестированы с production API и реальными ключами:

Подсчёт токенов:

  • GigaChat — 75 токенов, ₽0.0750 (стихотворение про Python)

  • YandexGPT — 105 токенов, ₽0.1575 (объяснение ML концепции)

Streaming-режим:

  • GigaChat — 342 токена, ₽0.3420 (генерация длинного текста)

Prometheus endpoint:

  • HTTP /metrics — корректный формат, все метрики экспортируются

Качество кода: 203 теста • 81% покрытие • mypy strict без ошибок


📦 Установка

pip install multi-llm-orchestrator==0.7.0

Новые зависимости: prometheus-client, tiktoken, aiohttp

🎯 Планы на v0.8.0

В следующей версии планируется добавить:

  • Динамическое обновление цен — автоматическое получение актуальных тарифов через API провайдеров

  • Provider-specific tokenizers — нативные токенизаторы для GigaChat и YandexGPT (вместо универсального tiktoken)

  • Расширенная аналитика латентности — percentiles p50, p95, p99 для детального анализа производительности

  • Cost analytics — уведомления о превышении бюджета, детальная разбивка расходов по моделям

  • Prometheus Pushgateway — поддержка push-модели для serverless окружений

Если используете библиотеку — пишите в комментариях, какие функции нужны вам!

🔗 Ссылки

Теги:
+1
Комментарии0

Когда система зарастает костылями: мысли об архитектуре и способах её лечить

Архитектура редко ломается в одном месте — обычно она тихо зарастает костылями, «временными» решениями и компромиссами. В новой статье нашего корпоративного архитектора «Мысли об архитектуре и о том, как можно побороть в ней проблемы» — разбор того, какие системные проблемы копятся в архитектуре большого банка и что с ними можно сделать на уровне принципов, а не разовых затычек.​

Мысли об архитектуре и о том, как можно побороть в ней проблемы
Меня зовут Максим Седов, я корпоративный архитектор. Хочу рассказать о проблемах, с которыми мы (а м...
habr.com

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

  • Какой была архитектура до 2020 года. 

  • Накопленные за годы проблемы.

  • Куда бы хотели прийти.

Автор описывает типичные боли, а затем показывает, куда команда хочет прийти: к более надёжной, предсказуемой архитектуре, где есть ненавязчивый, но прозрачный контроль, понятные границы ответственности и общие правила игры для всех участников.​ Материал будет полезен архитекторам, техлидам, продактам и всем, кто живёт в сложных системах и хочет не просто латать проблемы, а постепенно вытаскивать четкую архитектуру.

Теги:
0
Комментарии0

Замена формул значениями

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

Правка → Специальная вставка → Только значения

Или, что гораздо быстрее, воспользоваться последовательными сочетаниями клавиш:

  • Ctrl + C / ⌘ + C (копировать ячейку)

  • Shift + Ctrl + V / Shift + ⌘ + V (вставить как значение)

Работает как с одиночными ячейками, так и с целыми диапазонами.

Теги:
0
Комментарии0