Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

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

RPA 2025: Как программные роботы меняют бизнес уже сегодня

ITFB Group и Primo RPA приглашают на вебинар, посвященный роботизации бизнес-процессов в 2025 году.

Когда: 10 июня, 11:00

Формат: онлайн

➡️ Зарегистрироваться

Технологии RPA стремительно меняются, и мы разберём, как максимально эффективно использовать их сегодня.

Обсудим:

  • Как изменилось отношение к Роботизации за последние годы и почему компании продолжают внедрять RPA.

  • Как программные роботы помогают ИТ-отделам справляться с растущим потоком задач, а бизнесу — быстро получать измеримые результаты.

  • Российские кейсы: реальный опыт внедрения, ошибки и успехи.

Спикеры:

  • Илья Кочетов, директор по технологическому развитию платформы Primo RPA.

  • Николай Чекин, директор по развитию отношений с партнёрами ITFB Group.

Для кого вебинар:

  • ИТ-директора и руководители цифровой трансформации.

  • CEO, коммерческие и исполнительные директора.

  • Директора по продажам, клиентскому сервису и маркетингу.

  • ИТ-эксперты и интеграторы.

Узнайте, как RPA помогает бизнесу уже сегодня, и какие возможности откроются завтра. Регистрируйтесь сейчас!

➡️ Зарегистрироваться

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

🦥 RxJS defer — ленивая инициализация Observable

defer — это фабрика, которая создает Observable только при подписке, а не во время объявления. Идеально подходит для:

  • HTTP-запросов (чтобы избежать преждевременного выполнения)

  • динамических данных (которые должны быть свежими при каждой подписке)

  • условных потоков (когда Observable зависит от состояния времени выполнения)

📌 Основные варианты использования

  1. Свежие данные при каждой подписке

    const freshData$ = defer(() => of(Date.now()));

    // Новая временная метка при каждой подписке()

  2. Работа с изменяемым состоянием

    const token$ = defer(() => of(localStorage.getItem('token')));

    // Всегда получает текущий токен, даже если обновлен

  3. Условные наблюдаемые

    const api$ = defer(() => isLoggedIn ? http.get('/user') : http.get('/guest') );

  4. Генерация случайного значения

    const random$ = defer(() => of(Math.random()));

    // Новое случайное число на подписку

🚫 Ограничения defer

  • нет кэширования → используйте shareReplay, если вам нужно повторно использовать результаты.

  • нет отмены запроса → объедините с switchMap/takeUntil для управления отменой

⚡Когда следует выбирать defer вместо обычных наблюдаемых?

  • данные должны быть свежими при каждом subscribe()

  • cоздание наблюдаемого стоит дорого и должно быть отложено

  • поток зависит от изменяемых условий (флаги функций, статус аутентификации и т. д.)

Больше об 🅰️ngular в моём Telegram-канале

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

Тестируете сайты вручную? Ваша девушка не хочет знакомить вас с родителями? Ваши друзья-курьеры и ваша морская свинка смотрят на вас свысока?

Специально для вас наш эксперт по end-to-end тестам Даниил Дунайчук записал  гайд по старту в E2E атвотестах с помощью популярного фреймворка Playwright.

Теперь даже ваша морская свинка разберется 🐹❤️

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

На GitHub опубликовали новый инструмент для обнаружения протоколов маскировки TLS Он получил название Aparecium и способен выявлять ShadowTLS v3 и REALITY, которые маскируют зашифрованный трафик под легитимный TLS 1.3.

Aparecium использует особенности реализации TLS, чтобы обнаружить аномалии в поведении протоколов маскировки. ShadowTLS и REALITY, например, часто не обрабатывают отправляемые сервером сообщения NewSessionTicket должным образом, что позволяет выявить их использование.

Серверы на базе OpenSSL отправляют два сообщения NewSessionTicket одинаковой длины в одном TCP‑пакете, что также является характерной особенностью, отсутствующей в протоколах маскировки.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Кибербез из атомной отрасли: как Гринатом участвовал на Positive Hack Days Fest 2025

PH Days Fest — одна из крупнейших площадок по кибербезопасности в России. Для Гринатома участие — это возможность показать подходы, команды и экспертизу в ИБ, а также рассказать, как мы развиваем стажёрские программы для будущих специалистов.

Ниже — короткий разбор.

С чем пришли

Доклады наших экспертов затронули ключевые направления ИБ и цифровых решений в госсекторе:

  1. Сергей Живоглядов: Централизованное управление доступами через МСЭ разных вендоров — без хаоса и ручной рутины.

  2. Александр Любинский: Цифровизация Северного морского пути — как IT ломает лёд и прокладывает маршруты.

  3. Павел Аленчев: Отраслевой VDI «КУРС 2.0» в Росатоме — как построить безопасную и устойчивую виртуализацию.

  4. Наталья Пичугина: Дискуссия о карьере в ИБ — как зайти в отрасль, что важно на старте, как подать свой опыт после госсектора.

Как выступили на кибербитве

StandOff — международная кибербитва, где команды защищают или атакуют реалистичные цифровые инфраструктуры.

От Гринатома участвовали:

Amanita — в составе атакующих (red team)

GreenWallTeam — защитники (blue team)

GreenWallTeam взяли сразу несколько номинаций:

- лучшее расследование и обнаружение инцидентов;

- самое быстрое реагирование;

- самая сплочённая команда.

Стенд

На PH Days мы не только делились опытом от наших экспертов, но и рассказывали, как студентам, выпускникам и молодым специалистам попасть в нашу команду через стажёрские программы Росатома

Это 8–14 недель практики на реальных проектах, с наставниками, оплатой и гибким форматом работы. На сайте ИТ-стажировок Росатома больше деталей.

А еще с нами был один из наших опорных вузов-партнеров — НИЯУ МИФИ. Вместе разработали игру «Припаркуй ледокол» (симуляция навигации в сложных условиях), показывали на стенде научные фокусы, делали вкусное азотное мороженое, разыгрывали мерч. Не забыли и про юных юных гостей — для них был подготовлен "Морской бой". Но главное — были разговоры по делу: про ИБ, учёбу и карьеру, подходы и инструменты.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0
Количество установок за 3 месяца
Количество установок за 3 месяца

Написали подробный разбор запуска второго продукта в рамках челленджа 12 проектов за 12 месяцев - браузерное расширение Save Emails from Gmail as PDF.

В статье рассказали про:

  • выбор идеи,

  • разработку,

  • SEO и размещение на UGC-платформах,

  • текущее кол-во пользователей.

👉🏻 https://habr.com/ru/articles/915050/

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Конвейер функций в Python

В данном примере мы создаём класс Pipe с перегрузкой метода __or__.

Метод __or__. был добавлен для поддержки синтаксиса X | Y, как замена typing.Union и также используется для указания, что переменная или функция могут принимать несколько различных типов значений.

import typing

int | str == typing.Union[int, str]  # True
class Pipe:

    def __init__(self, value):
        self.value = value

    def __or__(self, other):
        if callable(other):
            return Pipe(other(self.value))
        else:
            raise ValueError("Right operand must be callable")


def multiply_2(x):
    return x * 2


def add_3(x):
    return x + 3


changed_num = Pipe(5) | multiply_2 | add_3  # 5 * 2 + 3
print(changed_num.value)  # 13

Более "сложный" пример добавил в статью как вариант для валидации атрибутов класса.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Задача об анализе ответа сервера

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

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

Задача
Найдите флаг — строку в формате slcctf{}. Чтобы выполнить задание, перейдите на страницу http://attention.slcctf.fun/.

Делитесь решением в комментариях. А правильный ответ можно посмотреть в Академии Selectel.

Теги:
Всего голосов 5: ↑5 и ↓0+8
Комментарии1

Обновления в Terraform 🆕

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

Рассказываем, где и какие фичи теперь доступны:

  1. Kubernetes. Добавили поддержку конфигуратора воркер-нод, тейнтов и лейблов для групп нод, установку аддонов и редактирование манифестов. А также теперь можно передавать идентификатор VPC-сети при создании кластера и фильтровать пресеты по локациям.

  2. S3. Добавили поддержку конфигуратора для стандартного и холодного хранилища.

  3. Балансировщики. Добавили поддержку плавающих IP-адресов и новые параметры для гибкой настройки: maxconn, connect_timeout, client_timeout, server_timeout, httprequest_timeout.

  4. И, конечно, не обошлось без багфиксов и улучшений. Оставим для вас списком:

  • Теперь можно менять логин в twc_database_user

  • Поправили создание сервисов с токеном доп пользователя

  • Добавили обработку ошибок при устаревших типах баз данных

  • Исправили проблемы с кластерами PostgreSQL и Redis

  • is_autoscaling в Kubernetes больше не обязателен

  • В документации по базам данных добавили пример привязки к приватной сети

Уже бегу тестить обновы →

Теги:
Всего голосов 6: ↑6 и ↓0+8
Комментарии0

💥 Майская версия Gramax 💥

Что нового мы добавили в open source-платформу для управления технической документацией Gramax.

  • ИИ-поиск для портала документации. Раньше поиск по документации был ограничен точным совпадением слов, теперь можно подключить ИИ-поиск от любого провайдера (например, OpenAI, Anthropic и др.) и искать по смыслу. Даже при неточном запросе пользователь получит релевантные результаты. Поддерживается как облачное подключение, так и запуск собственного сервера — для тех, кому важна приватность.

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

  • Шаблоны. Добавили возможность создавать шаблоны со свойствами и использовать их в статьях. 

  • Заметки. Теперь можно прямо в каталоге сохранять идеи и предложения для изменения документации. Заметки сохраняются в репозитории, но не отображаются на портале для чтения. 

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

  • Выбор формата для исходных файлов. Добавили 2 дополнительных формата хранения статей — XML и GitHub Flavored Markdown. Изменить формат можно в настройках каталога.

  • Вход для внешних пользователей в Gramax Enterprise Server. Добавили возможность настроить вход на портал для чтения по почте: таким читателям не нужно иметь учетную запись в SSO. Достаточно указать свою почту при входе и ввести одноразовый код.

О других изменениях читайте в статье — https://gram.ax/resources/docs/whats-new

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Чек-лист для проектирования API

За 5 лет, что я проектирую API, вывела для себя шесть базовых принципов, которых стараюсь придерживаться:

  1. Проектировать для потребителя

    • Ориентироваться на потребности клиентов API, а не на простоту реализации или устройство базы данных. Об этом, кстати, подробно написано в отличной книге Лоре Арно “Проектирование веб-API”.

    • Учитывать интересы всех клиентов. Не забывать, что могут появиться новые клиенты.

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

  2. Проектировать понятные API-схемы

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

    • Избегать обобщающих наименований, типа “flag”. Описывать в названии, какой бизнес-смысл несет этот параметр или метод. Например, флаг с признаком пустой упаковки можно назвать “isEmpty”.

    • Человек при прочтении схемы должен без дополнительной документации понять, зачем нужен этот API и что он делает.

    • Отдавать адекватные текстовые коды ошибок, из которых будет однозначно понятно, что поправить в запросе для успешного его выполнения. Например, отдавать не 400 BAD_REQUEST, а 400 PRODUCT_NOT_FOUND.

  3. Принять конвенции и придерживаться их

    • Использовать везде либо snake_case, либо camelCase, либо kebab-case, не менять правила от метода к методу.

    • Стандартизировать формат ошибок - во всех методах отдавать их в одинаковой структуре.

    • Если это HTTP, то зафиксировать, в каких случаях какие коды ответов будут возвращаться. Например, иногда возвращается всегда 200, а потребители ориентируются только на тело ответа.

    • Договориться о формате версионирования API.

    • Стандартизировать типы данных: формат дат, UUID и пр.

  4. Думать о безопасности, производительности и надежности

    • Использовать аутентификацию, авторизацию и ACL. Разграничивать доступ на уровне конкретных методов и даже параметров.

    • Оценивать количество запросов и объем ответов.

    • Индексировать БД по тем полям, по которым собираются выборки данных для API.

    • Использовать асинхронное взаимодействие, если задача на сервере выполняется ощутимое количество времени.

    • Делать обратную совместимость везде, где это возможно.

  5. Документировать

    • Сначала писать документацию, а только потом разрабатывать. Такой подход минимизирует количество ошибок и проблем с API.

    • Помечать изменения тегами задач и, при необходимости, цветом.

    • Описывать логику работы методов/топиков/очередей. При необходимости добавлять диаграммы последовательности и маппинги данных.

  6. Мониторить и анализировать

    • Понимать, какие методы как часто вызываются и как быстро работают. Как быстро обрабатываются сообщения в очередях и топиках, какое их количество и размеры. Это важно для принятия решений о дальнейших доработках API.

    • Смотреть в консоли разработчика на проде, как быстро отрабатывают те или иные запросы и т.д.

    • По возможности настраивать системы мониторинга и алертинга. Это помогает прогнозировать рост нагрузки и отслеживать эффективность системы.

У каждого API‑проектировщика со временем появляется свой набор правил. Было бы интересно сравнить — добавляйте свои пункты в комментариях.

Другие мои материалы можно почитать в телеграм-канале breakfront.

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

ВЫШЛА КНИЖКА САЙМОНА ПРИНСА

Как обещал, сообщаю о выходе в издательстве "Бомбора" на русском языке (в моем переводе) монографии Саймона Принса, которую я неоднократно упоминал в своих публикациях. Оригинал называется "Understanding Deep Learning (2023)", перевод вышел под заглавием "Машинное обучение. От основ до продвинутых моделей (2025)".

Судя по тому, что на Литрес книга передана 19 мая 2025 года, из типографии вышла совсем недавно.

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

В "электронных библиотеках" книжки пока не вижу, когда украдут увижу - сообщу дополнительно.

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

Вот она
Вот она
Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

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

Приглашаем на бесплатный вебинар «Принципы построения архитектуры фронтенд-приложений».

Разберём, что собой представляет архитектура приложений, а также какие задачи она решает и какие ограничения накладывает на разработку. Также детально обсудим три ключевых принципа для фронтенда, включая методологии Solid и Grasp, которые помогут вам создать более эффективные и масштабируемые проекты.

📅 Дата: 05.06.2025

Время: 17:00-19:00 (Мск)

Содержание:

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

✔️ Solid

✔️ Grasp

👨‍🎓 Спикер: Щербаков Александр — эксперт в области фронтенд-разработки.

✍️ Записаться на вебинар

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

IMPulse - менеджмент инцидентов. Интеграция с Google Calendar, вложенные цепочки эскалации.

Предыдущие публикации:
https://habr.com/ru/articles/865208/
https://habr.com/ru/posts/889768/

Мы продолжаем развивать нашу систему менеджмента инцидентов. И рады представить интеграцию с Google Calendar, благодаря которой вы сможете гибко настраивать график дежурств и цепочки эскалации для этих дежурств.

Помимо интеграции с Google Calendar, мы реализовали вложенные цепочки эскалации. Теперь в chain можно добавить другой chain (nested), благодаря чему размер конфигурационного файла уменьшится.

Мы хотим создать достаточно гибкую, но не перегруженную систему цепочек эскалации, чтобы на проектах разной величины вы могли использовать IMPulse так как вам удобно. Для этого в комментариях расскажите, какой самый сложный кейс уведомлений / эскалации вам необходимо было реализовать. Например: во вторник нужно дёргать Антона, через 5 минут Олега, а по средам - только дёргать Геннадия, в остальное время, если severity == 'critical', звонить Грише.
Будем рады почитать самые сложные варианты и предложить наше универсальное решение для них.

Остаёмся на связи в нашем Telegram канале - там можно общаться / задавать вопросы.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

Устройство компилятора (кратко) на LLVM
Компилятор - инструмент конвертации исходного кода, написанного на высокоуровневом языке программирования в машинный код, который может исполнять компьютер.

Компилятор делится на 3 этапа:

  • FRONTEND - анализирует текст исходного кода и преобразует его в IR.

  • MIDDLE - анализирует и оптимизирует этот сгенерированный код IR.

  • BACKEND - преобразует IR в машинный код.

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

Lexer - лексер

Лексер сканирует и превращает сырой текст в токены. То есть сам исходный код разбиваеты на набор токенов (такие как литералы, идентификаторы, ключевые слова, операторы, разделители)
Лексер читает исходный код символ за символом и идентифицирует последовательности символов, соответствующие определённым правилам языка.

Парсинг

Парсинг немного сложнее чем лексический анализ. Существует множество паресров и парсеров-генераторов.

Парсеры в компиляторах обычно принимают входные данные в форме токенов и строят определенное дерево - AST или дерево парсинга.

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

Советую держать эти компоненты как можно более простыми и автономными — модульность сильно облегчит процесс. По-моему, то же можно сказать и о многих других аспектах разработки ПО.

AST

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

IR

Эта часть занимается созданием [[1.2 IR]]. Через примитивы LLVM мы можем сгенерировать промежуточное представление. Каждому типу в AST дается метод, называемый codegen, который всегда возвращает объект значение LLVM, используемый для представления одного регистра присваивания (single assignment register), который является переменной для компилятора, которая может быть назначена только один раз. Интересно, что в этих примитивах IR то, что в отличии от ассемблера, они не зависят от какой-либо конкретной архитектуры машины, и это значительно упрощает работу для разработчиков языков, которым больше не нужно сопоставлять вывод в набор инструкций процессора. Теперь, когда фронтенд может генерировать IR, инструмент LLVM Optimizer используется для анализа и оптимизации сгенерированного кода. Он выполняет несколько проходов по IR и выполняет такие действия как устранение мертвого кода и скалярная замена агрегатов, и, наконец, это приводит нас к бекенду, где мы пишем модуль, который принимает IR в качестве входных данных, который выдает объектный код, который может работать на любой архитектуре.

Теги:
Всего голосов 6: ↑4 и ↓2+3
Комментарии0

Alfa Analyze IT Meetup #4

19 июня наше SA-сообщество проведёт четвёртый Alfa Analyze IT Meetup — поговорим о том, как оценивать навыки по матрицам компетенций, принимать решения о повышении и адаптироваться к изменениям от ИИ.

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

В программе:

  • процесс ассессмента для аналитиков в Альфа-Банке,

  • выстраивание и развитие матрицы компетенций системного аналитика Газпромбанк.Тех в эпоху цифровой трансформации,

  • развитие системных аналитиков в X5 Tech: от внутреннего поиска до повышения с опорой на матрицу компетенций,

  • архитектура DWH в Яндекс Go: технологии, подходы, матрица компетенций.

Присоединяйтесь онлайн и офлайн — зарегистрироваться можно по ссылке.

Где: Офис Альфа-Банка по адресу Москва, Андропова пр-т., 18 к.3, в трёх минутах пешком от метро «Технопарк».

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

BI-система помогает аптечным сетям управлять продажами быстро и эффективно

Если вы хотите оперативно принимать решения, опираясь на точные данные, приглашаем вас на вебинар-демонстрацию решения по BI-аналитике специально для аптечных сетей.

  • Дата: 24 июня

  • Время: 12:00 мск

  • Бонус для участников: скидка 10% на проведение предпроектного обследования

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

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

На вебинаре руководитель проектного отдела Анна Светличная расскажет:

  • какое решение поможет управлять аптечной сетью на основе данных,

  • почему бизнес-аналитика становится стандартом в аптечном ритейле,

  • как с помощью BI можно находить точки роста и управлять показателями в реальном времени.

Также проведем демонстрацию продукта на примере данных аптечных сетей и ответим на ваши вопросы.

Регистрируйтесь по ссылке

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Открытый проект Cursor Free VIP позволяет получить бесплатный доступ к нейросети Сursor Pro для исследовательских целей. Решение я активирует бесконечный триал с откатом данных.

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

Новое средневековье.

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

Известно, что когда Аристотель написал, что у мухи 8 ног, то почти полторы тысячи лет это утверждение воспроизводилось со ссылками на авторитет, и никому в голову не приходило пересчитать (ну он там вроде на самом деле писал про подёнок с 4 ногами и 4 крыльями, но кому какое дело). Сейчас эти времена вернулись, любой ребёнок спросит: “Алиса, сколько ног у мухи?” вместо натурного эксперимента.

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

Пруфов не будет.

Теги:
Всего голосов 17: ↑15 и ↓2+17
Комментарии8