All streams
Search
Write a publication
Pull to refresh
20
16
Программный Продукт @PPR

Разработчик ПО

Send message

Статический анализатор Ktlint для Kotlin в Android

Level of difficultyMedium
Reading time6 min
Views6.3K

Kotlin — это статически типизированный язык программирования на основе JVM, разработанный компанией JetBrains. Он был представлен Google в первую очередь для создания мобильных приложений на платформе Android. Используя Kotlin, разработчики могут писать код быстрее и более качественно. Тем не менее, как и в случае с любым другим языком программирования, важно соблюдать набор правил, чтобы обеспечить высокую производительность и читаемость кода.

Читать далее

Как создать интерактивные виджеты на iOS 17

Level of difficultyMedium
Reading time9 min
Views3.7K

5-9 июня 2023 года состоялась ежегодная презентация Apple WWDC23, на которой было представлено много интересных новшеств для iOS-разработчиков. Одну из таких фич — интерактивные виджеты, мы рассмотрим в этом руководстве.

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

В iOS 17 реализован функционал для создания интерактивных виджетов. Теперь у них появились элементы управления и анимации, виджет может сам выполнять некоторую работу без запуска основного приложения. Грубо говоря, обновленные виджеты представляют собой небольшие отдельные приложения, как AppClip.

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

Читать далее

Алгоритм поиска ключевых словосочетаний «на пальцах». Анализируем новости

Level of difficultyMedium
Reading time5 min
Views6.5K

В современном мире объем данных в интернете постоянно растет с огромной скоростью. Возникает логичный вопрос: как ориентироваться в этом информационном потоке? 

Чтобы упростить себе задачу поиска и обобщения информации IT-энтузиасты применяют технологии генеративно обученных чат-ботов. Наиболее широкое распространение получил  ChatGPT. Яндекс, в свою очередь, добавил в браузер YandexGPT, который позволяет тезисно ознакомиться с содержанием страницы. Всё чаще вакансия Prompt-инженера начинает встречаться на hh и Хабр Карьере. Специалисты и чат-боты помогают конечному пользователю экономить время для поиска необходимой информации. 

Но что делать, если возможности обратиться за помощью к подобным технологиям нет? Указанные выше языковые модели нельзя интегрировать в собственные проекты, сценариев их использования много, но они всё равно ограничены. 

В статье мы расскажем, как (не без нейронных сетей) можно создать простой алгоритм на Python, который поможет извлекать ключевые слова из любого текста, тем самым избавляться от ненужной информации и автоматизировать процесс анализа материалов. Мы будем работать с русским текстом, а именно — с новостными постами. Поэтому в частном случае используются пакеты для обработки, поддерживающие именно русский язык. В том числе используются модели, обученные на корпусах текстов с новостной семантикой. 

Читать далее

Миграция конфигурации сборки с Groovy на Kotlin

Level of difficultyMedium
Reading time13 min
Views9K

DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.

С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.

Это предстоящее изменение обеспечило возможность  переноса конфигураций Gradle на основе Groovy DSL на Kotlin DSL. Перевод файлов Gradle с Groovy на Kotlin DSL может значительно улучшить рабочий процесс разработки для Android. Особенно, если вы уже знакомы с Kotlin. Такой переход на единый знакомый язык не только повышает вашу производительность, но и устраняет необходимость переключаться между двумя языками для выполнения задач разработки и настройки. Надежность и интуитивность Kotlin DSL дает уверенность в создании пользовательских задач Gradle без необходимости прибегать к зачастую нечеткому синтаксису Groovy.

Статья задумана, как руководство, которое поможет вам на этапе перехода на Kotlin DSL. Материал написан с акцентом на проекты Android, но обсуждаемые моменты могут быть применимы и к другим проектам на основе Gradle, таким как приложение Spring Boot.

Читать далее

Как автоматизировать тестирование сложных API форм и не потратить время впустую

Level of difficultyMedium
Reading time7 min
Views4.6K

Привет, Хабр! Наша компания создает множество полезных программ и сервисов, в том числе для автоматизации работы с данными граждан. Сегодня расскажем вам о том, как у нас тестируются сложные API формы и как мы справились с основными проблемами в автоматизации их тестирования.

Читать далее

Уведомления о деплое Gitlab через Telegram-бота при помощи Yandex Cloud Functions

Level of difficultyMedium
Reading time5 min
Views10K

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

Данная статья и родилась вследствие того, что на текущем проекте в нашей команде разработки есть боль: когда на беке вливают МР в ветку develop, то стенд падает на время деплоя. Основные участники, испытывающие эту боль — фронтенд разработчики и аналитики, которым чаще всего приходится взаимодействовать с бекендом. И во время недоступности стенда непонятно, деплой идёт или стенд упал из-за ошибки.

Нет, конечно, можно зайти в Gitlab, проверить, идёт ли сейчас деплой или посмотреть логи контейнера. Но для этого нужно быть в курсе, из-за деплоя каких конкретно микросервисов (естественно мы говорим о микросервисной архитектуре) стенд может быть временно недоступен. Ну и плох тот программист, который не хотел бы упростить жизнь себе и коллегам, автоматизировав при этом чаво-нибудь! :)

Читать далее

Методология генерации случайных строк посредством регулярных выражений

Reading time5 min
Views3.5K

Привет, Хабр!

Если ваш проект вырос, в нем  бэкенд с фронтендом, различные точки входа API, интеграции с внешними системами, сложные алгоритмы, проверки введенных данных пользователем на валидность, диаграммы бизнес-процессов имеют тысячи ветвей, то скорее всего регрессионное тестирование занимает кучу времени, и проводить его вручную уже не выгодно. Проще эту работу поручить машине и тестировать продукт автоматически.  Первый вопрос, который возникает — «Как генерировать данные?», а конкретнее, как генерировать то, что может ввести пользователь. Этот вопрос мы и разберем в данной статье.

Читать далее

Шифровальщики-вымогатели: только бизнес и ничего личного?

Reading time8 min
Views3.5K

Привет, Хабр!

Несмотря на вроде бы прошедший пик громких историй, связанный с криптолокерами (ransomware), сам этот сектор «теневой экономики» продолжает генерировать различные неприятные сюжеты.

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

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

Или же какую-то роль на себя возьмет само сообщество хакеров?

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

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

Читать далее

Обдурить Шаи-Хулуда

Reading time7 min
Views4.5K

Привет, Хабр!

Сегодня поговорим о «больших данных» в кибербезопасности, а точнее, о том насколько легко - или сложно - обойти защиту, использующую Big Data. Иначе говоря, как надурить и объегорить передовые системы обнаружения угроз, мимо всевидящего ока которых, как утверждают маркетологи, лишний байт не проскочит.

О чём, собственно говоря, речь? О системах идентификации кибератак, использующих анализ «больших данных» в качестве одного из основных инструментов выявления подозрительной активности, - системы SIEM и XDR. Такие платформы в принципе ориентированы на средний и крупный бизнес, крупные сети и облачную инфраструктуру, в которой происходят миллионы событий ежечасно. Естественно, и речи не может идти о том, чтобы анализировать их «вручную», всё это осуществляется с интенсивным использованием технических средств, хотя наличие квалифицированных специалистов - и в области «больших данных», и в области кибербезопасности, - абсолютно необходимая составляющая.

Что делают такие системы? Позволяют идентифицировать в огромных (Big, очень Big) массивах структурированных и неструктурированных данных признаки несанкционированной активности. Иначе говоря, кибератак. Учитывая, что в средних размеров сети, насчитывающей 20 тысяч конечных точек, за сутки транслируется около 50 терабайт данных, задача «прошерстить» всё это становится очень неординарной.

Для этого существуют множественные алгоритмы. Основным критерием качества платформ обнаружения угроз - в частности, XDR, является точность обнаружения аномалий в системах, которые они защищают. XDR-решения, как правило, включают в себя и SIEM-платформы, отвечающие за сбор и обработку событий, и EDR - обнаружение и реагирование на аномалии, и UBA/UEBA - системы, которые собирают (большие) массивы данных о действиях пользователей и/или конечных точек, серверов и сетевого оборудования, а затем с помощью алгоритмов машинного обучения выстраивают модели поведения и пытаются выявить отклонения от них.

Читать далее

Уличное видеонаблюдение: тысячеглазый Паноптикон или помощь обществу?

Reading time7 min
Views5.6K

Привет, Хабр!

 Сегодня хотим поговорить на одну непростую тему, в той или иной степени всех нас затрагивающую, - про уличное видеонаблюдение. Тем более, что буквально вчера она вновь получила развитие со стороны государства: в России хотят создать «Национальную платформу видеонаблюдения», которая через пять лет должна объединить данные с городских камер всей страны.

Сразу оговоримся: всё сказанное - предмет для дискуссий и для попыток взглянуть на положение вещей "на холодную голову" и в перспективе.

Читать далее

Как трассировка запросов сломала API

Reading time3 min
Views5.8K

TL;DR;

История провала со счастливым концом о том, как команда узнала о трассировке запросов, AOP, а потом сломала API.

ВВедение Благие намерения Невинное начало

Каждый проект содержит логирование. Наш проект использовал Lombok и его @Slf4j аннотацию. Мы логировали выполнение бизнес операций, но нам не хватало контекста.

Логи содержали что-то типа такого:

Читать далее

Получение идентификатора CVE

Reading time2 min
Views3.8K
После публикации нашей статьи «CSRF в Umbraco CMS», мы получили несколько сообщений с вопросами, которые касались процесса получения CVE. В данной статье рассматривается, как правильно поступить в том случае, когда вендор отказывается присваивать индекс CVE найденной в его продукте уязвимости.

Работа с обнаруженными уязвимостями производится в три основных этапа:

  1. Уведомление вендора
  2. Подтверждение и исправление найденной уязвимости
  3. Публичное раскрытие информации
Читать дальше →

UML для разработчиков

Reading time5 min
Views85K
Интернет полон статей про UML, вы найдете сотни примеров для каждого вида диаграмм, и без проблем создадите свои, нотация не сложная. Но так ли уж необходимо тратить на это время? Наш богатый опыт говорит «Да». Если у вас в команде более 2 человек и проект от 3 месяцев, то уже имеет смысл отрисовать 2-3 вида диаграмм. В одной нашей команде более 30 человек, проект длительностью более 3 лет, и мы используем...2-3 вида диаграмм.

Нотация UML избыточна. С другой стороны она недостаточна для проектирования распределенных систем, и здесь нам помогает Archimate. В этой статье мы расскажем, что действительно полезно из всего этого многообразия, и рассмотрим на примере полный цикл создания диаграмм для проекта.
Читать дальше →

CSRF в Umbraco CMS

Reading time4 min
Views1.5K
Подделка межсайтовых запросов может быть использована для проведения произвольных веб-запросов к системе управления контентом Umbraco CMS и идентификации её пользователей без их ведома. Такая атака всегда требует взаимодействия с пользователем, но, как правило, жертве достаточно перейти по специально подготовленной ссылке или посетить веб-страницу, которая находится под контролем злоумышленника. Благодаря этому появляется возможность активировать, деактивировать или полностью удалять учетные записи пользователей. Как следствие, возникает угроза DoS-атак на учетные записи.


Читать дальше →

Где уязвимы более 20 млн транспортных карт в России: разбираем и развиваем MIFARE Classic

Reading time8 min
Views33K
Стандарт бесконтактных карт MIFARE Classic создан более 20 лет назад и, несмотря на ряд найденных с тех пор уязвимостей, широко используется до сих пор (в частности в Москве и Санкт-Петербурге). В этой статье мы вспомним, какие уязвимости были найдены, и расскажем, как их можно устранить.


Источник: Instagram@pro.ticketing

Традиционно для подобных статей напоминаем, что в России подделка и сбыт билетов преследуются по закону (ст. 327 и 165 УК РФ), и призываем читателей оставаться на светлой стороне силы.
Читать дальше →

Государство не знает, сколько тратит на ИТ. Доказываем на цифрах

Reading time7 min
Views13K
В России сейчас нет единой, полной и достоверной информации об уровне госрасходов на ИКТ (информационно-коммуникационные технологии). Все, что можно найти, – очень противоречиво, нет единообразия этих данных.

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

На прошлой неделе вышел рейтинг агентства CNews Analytics «Крупнейшие поставщики решений для госсектора» и обзор «ИКТ в госсекторе».

Давайте разберемся, какой же реальный уровень государственных расходов на ИТ в нашей стране.

image
Читать дальше →
2

Information

Rating
444-th
Location
Россия
Works in
Registered
Activity