Обновить

Все потоки

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

С++20 и асинхронный ввод-вывод для обработки крашей приложения

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

Как асинхронно отправить диагностическую информацию на удалённые сервера для дальнейшей диагностики в условиях очень ограниченной среды? Корутины C++20 без динамической памяти и исключений, а также некоторые другие вещи, о которых вы бы никогда не подумали, что они вам нужны.

Читать далее

ФНС взялась за ИТ-компании. Как понять, что ваша компания уже находится в зоне внимания

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

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

Читать далее

Шесть основ бизнес‑анализа: почему игнорирование среды превращает блестящие решения в нежизнеспособные

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

В предыдущей статье мы разобрали четвёртое базовое понятие BABOK — Решение (Solution). Мы выяснили, что оптимальное решение — не то, которое технически совершенно, а то, что наилучшим образом закрывает сформулированную потребность в данном контексте с учётом реальных ограничений. Ключевое словосочетание здесь — «в данном контексте». Но что именно скрывается за этим словом?

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

Разберём пятое базовое понятие BABOK — Контекст (Context).

Читать далее

Корпоративные мессенджеры и воркспейс‑комбайны. Разбираем вендорский капкан

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

Импортозамещение софта подошло к тупику экстенсивного роста. Бюджеты стабилизировались, первая волна пожарной миграции завершена, и на смену паническому «на чем работать завтра» приходит трезвый аудит TCO и вендор-рисков.
В этой статье мы разберем математику сетевых эффектов, парадокс теневого Telegram, почему On-Prem отечественных «вендорских комбайнов» вместо снижения рисков оборачивается инфраструктурным взрывом, и как Matrix, TOGAF 10 и SABSA помогут бизнесу вырваться из нового вендорского капкана.

Читать далее

Найти человека по голосу среди 134 тысяч записей

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

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

Добавлять ещё одну модель смысла почти не было. Мы решили изменить сам поиск соседей: попробовать K-reciprocal re-ranking, а затем ещё раз применить AS-Norm. От этого варианта ждали примерно 0.67–0.69.

Получилось 0.7042 и 10-е место из 93. Почти весь день мы пытались выжать из моделей тысячные, а перерасчёт соседей добавил больше четырёх сотых без дополнительного обучения.

Читать далее

SAX-парсинг больших XML в Free Pascal: разбираем OpenCorpora без переполнения памяти

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

Разбор XML казался тривиальной задачей — пока я не попытался загрузить словарь OpenCorpora объёмом свыше 400 МБ через стандартный DOM-парсер. Дерево документа строилось бесконечно долго, потребление памяти росло без остановки, а до обработки данных дело так и не доходило.
Решением оказался SAX-парсинг, давно присутствующий в стандартной библиотеке Free Pascal, но почти не встречающийся в актуальных примерах и туториалах. В статье разбираю, как устроена событийная модель разбора XML, почему она принципиально экономичнее DOM для больших файлов, и как на её основе был построен парсер словаря OpenCorpora для экспериментальной библиотеки.

Читать далее

Как мы автоматизировали обработку входящих клиентских обращений

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

Привет, Хабр! Меня зовут Дмитрий Тимохин, я лидер команды ML CRM «Кластер CRM и клиентский опыт» в ВТБ. В этой статье расскажу, как мы разрабатывали сервис анализа и категоризации клиентских обращений для центра клиентской поддержки корпоративно-инвестиционного бизнеса (ЦКП КИБ). 

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

Как собрать из этого потока единое обращение, выделить необходимую информацию, чтобы корректно решить проблему клиента?

Разберемся в статье.

Читать далее

Что делать, если сервер доступен по SSH, а сайт не открывается

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

Мониторинг шлёт тревогу, пользователи пишут, что «всё лежит», но SSH пускает на сервер. Значит, машина включена и 22-й порт доступен. О домене, портах 80 и 443, TLS, веб-сервере и приложении это пока ничего не говорит… Кажется, что нужно просто перезапустить nginx, но перезапуск стирает часть следов и может превратить частичную аварию в полную беду. Под катом расскажу, как пройти путь запроса сверху вниз и найти место, где он остановился.

Читать

Драйвер шагового двигателя с векторным управлением

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

В рамках этой статьи я детально расскажу о разработке драйвера шагового двигателя. Я уже много лет держал в голове этот проект и хотел им заняться. Наконец такая возможность появилась: этот проект стал моей дипломной работой.

Вращать магнитное поле

Rust в высоконагруженной видеоаналитике: кейс «Фалькон Тех»

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

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

Именно поэтому всё больше команд, разрабатывающих высоконагруженные системы видеоаналитики, рассматривают Rust как альтернативу языкам с ручным управлением памятью (C/C++) — как минимум для критических компонентов, где важны предсказуемое время отклика и исключение ошибок работы с памятью.

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

При подготовке статьи комментариями поделился Антон Половихин, руководитель команды разработки сервисов локального комплекса в «Фалькон Тех». Он ответил на вопросы по работе с Rust в высоконагруженных бэкенд-системах и помог уточнить технические детали.

Читать далее

Как удобно и безопасно тестировать платы в лаборатории

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

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

Читать далее

Биться головой об выпирающий узел больно или как избежать шишек с помощью манекена в КОМПАС-3D

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

В июле вышел КОМПАС-3D v25, а вместе с ним — новое приложение «Эргономика: Манекены». Название «приложение» здесь скорее дань традиции: фактически перед нами специализированная САПР внутри КОМПАС-3D. Разработать ее нам помогли коллеги из компании «Ай-Джи-Эй Системы», за что им большое спасибо.

Но сначала разберемся, зачем вообще инженеру помещать человека внутрь CAD-модели.

Читать далее

Harness, Да пребудет с тобой JavaScript

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

Современные AI-агенты действуют в реальном мире с помощью доступных им инструментов (tools). Ядро вокруг модели (LLM), которое позволяет всему этому работать (harness), серьезно влияет на качество и стоимость конечных ответов. При этом добавление в harness простого JavaScript может существенно прокачать AI-агента и заменить часть долгих и дорогих рассуждений простейшим кодом, который будет лучше, точнее и быстрее.

В этой статье разберу как такие интерпретаторы могут помогать. Начну с примера, который можно повторить у себя в LM Studio, а потом перейду к более общему устройству на LangChain, где простой JS-интерпретатор становится уже не таким простым, а забирает часть логики с LLM и помогает ей фокусироваться на том, что нужно, делегируя детерминированную логику скрипту.

Читать далее

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

Как узнать с помощью ИИ где вы сами себе мешаете в работе и бизнесе — Роуэн Чунг, основатель The Rundown AI

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

Роуэн Чунг создал одну из крупнейших в мире рассылок об искусственном интеллекте. Ее читают более 2 млн человек, включая спецов из Google, Apple, OpenAI и NASA.

Короче, штука прикольная.

Можно поугарать над своими тараканами, которыми кормишь чат-бота годами. Дайте своему ИИ шанс выговориться.

Читать далее

Знает больше, ездит дальше, получает меньше? Зарплаты в АСУ ТП и IT

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

Программист АСУ ТП пишет код, работает с ПЛК и SCADA, читает электрические схемы, разбирается в технологическом процессе, ездит на пусконаладку и отвечает за реальное оборудование. Но почему при таком наборе задач он часто получает меньше обычного IT-разработчика?

Четыре года назад на Хабре вышла статья «АСУ ТП — тухлая отрасль, надо идти в IT?». Я решил проверить, что изменилось с тех пор: собрал актуальные вакансии hh.ru, сравнил зарплаты по опыту и условиям работы, изучил требования работодателей и зарубежные исследования.

Читать далее

Я DevOps-инженер. Моя работа — чтобы вы обо мне не вспоминали

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

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

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

Читать далее

Gemini API: получаем ключ, разбираемся в моделях и платим из России

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

Я подключаю API нейросетей почти каждую неделю. Собираю пайплайны для генерации контента, тестирую модели под задачи клиентов, веду сервис, который гоняет запросы через десяток провайдеров. Дольше всего из всех провайдеров я разбирался с Gemini: модели у Google сильные, а вот добраться до них сложнее, чем до любых других.

У OpenAI один кабинет и один ключ. У Google три названия на два реальных способа доступа — Google AI Studio, Gemini Developer API и Vertex AI. На то, чтобы понять, что из этого одно и то же, а что разные вещи, уходит отдельный вечер. Новичок открывает документацию, тыкает не в тот раздел и заводит биллинг в Google Cloud вместо бесплатного ключа в AI Studio. А в России к этому добавляются региональные ограничения.

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

Читать далее

Как мы сделали бота‑консультанта: нейросети и машинное обучение

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

Одно из важнейших направлений нашего бизнеса — разработка программ для автоматизации бизнес‑процессов, управления и учёта предприятий и организаций. А одна из наших главных обязанностей перед пользователями наших продуктов — предоставлять им техподдержку, отвечать на вопросы — как использовать наши продукты для различных бизнес‑процессов и в соответствии с текущим законодательством и нормативами. Для этого у нас есть сервис с базой знаний, называется ИТС (информационно‑технологическое сопровождение).

На сегодня у нас есть 30+ программных продуктов и документация по ним. А ещё есть постоянно пополняемая база нормативных документов. Идеальная схема процесса:

1. Пользователь задает вопрос в привычной ему форме, например:

— Как в 1С драйв начислить бонусные баллы покупателю

— Налоговая реформа 2025

— Розница 2.3 настроить продажу разливного пива

2. И получает ответ

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

— Выдержки из нормативных документов, относящихся к заданному вопросу, со ссылками на исходный текст этих документов.

На заре времен все подобные вопросы решались на уровне телефонной техподдержки с живым экспертом на нашем конце провода. Потом поддержка в основном перешла в онлайн‑чат с тем же экспертом у монитора‑клавиатуры.

С появлением и взрослением ИИ логичным шагом стал переход с живого эксперта на ИИ‑бота.

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

Читать далее

Пожизненный наём в Японии: что это такое и насколько хорошо

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

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

Это цикл статей для тех, кто интересуется Японией, её современной жизнью и культурой повседневных деталей. В прошлый раз я писал о том, как искать работу в Японии.

Читать далее

Как отдать копию базы 1С подрядчику и не отдать вместе с ней персональные данные

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

Поговорим про псевдонимизацию?

Есть довольно типичная ситуация в проектах на 1С. На рабочей базе возникает ошибка или нужно доработать нетиповой сценарий. Разработчику желательно получить именно копию базы: на демо-базе ошибка может не воспроизводиться. И тут появляется неприятный вопрос: что еще мы передаем вместе с этой копией?

ФИО сотрудников и клиентов, телефоны, адреса, ИНН, банковские реквизиты, начисления зарплаты, комментарии пользователей — все это легко оказывается на сервере подрядчика или компании-франчайзи. А потом копия может путешествовать между разработчиками, виртуальными машинами и резервными серверами значительно дольше, чем существует сама задача.

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

Важно сразу уточнить терминологию. Это именно псевдонимизация, а не необратимая анонимизация: соответствие между исходными и подставными значениями существует и хранится отдельно.

Читать далее