Pull to refresh
21
14
Программный Продукт @PPR

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

Send message

Как научить компьютер различать цвета?

Level of difficultyMedium
Reading time11 min
Views1.1K

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

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

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

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

Изначально были попытки обучить на размеченных данных классические детекторы объектов, например, YOLO. Однако оказалось, что модель сильно усложняет задачу — начинает ориентироваться на расстановку игроков, и из-за этого точность становится невысокой. Поэтому возникла идея попробовать более классические и, соответственно, более простые алгоритмы.

Читать далее
Total votes 7: ↑7 and ↓0+14
Comments3

Как современные технологии втягивают в алкоголизм

Level of difficultyEasy
Reading time10 min
Views3K

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

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

Но бывает так, что какие-то "плюшки" очень плохо воздействуют на психику и образ жизни людей. Например, чрезмерное увлечение онлайн-играми часто приводит к лудомании. Постоянное “зависание” в соцсетях может вызвать депрессию. А такая, казалось бы ерунда, как фильтры, способна спровоцировать дисморфофобию, когда человек не принимает собственное тело, зацикливается на внешности и стремится постоянно исправлять надуманные недостатки.

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

Но каким образом современные технологии втягивают своих адептов в алкоголизм? И кто подвержен наибольшему риску?

Читать далее
Total votes 11: ↑5 and ↓6+1
Comments9

Мир глазами ИИ

Level of difficultyEasy
Reading time9 min
Views1.5K

Многие слышали, что ИИ может видеть. Не просто ставить прямоугольники на объектах и определять, что это за объект, а видеть по‑настоящему. Понимать, что изображено на картинке, и в тексте передавать детали увиденного. Сейчас мы воспроизведем эту технологию у себя на компьютере и немного покопаемся в мозгах ИИ. Может быть эти манипуляции наведут на более серьезные мысли по поводу интеллекта машин и натолкнут на вопрос: «А так ли сильно он отличается от человеческого?»

Читать далее
Total votes 6: ↑5 and ↓1+7
Comments0

Генерация картинок на любом железе без Midjourney

Level of difficultyEasy
Reading time4 min
Views14K

Для генерации изображений сегодня существует множество сервисов. Некоторые из них платные, другие нет. И даже в большинстве бесплатных сервисов вы можете столкнуться с ограничениями, например, на количество бесплатных картинок за единицу времени, разрешение изображений и прочее. Это обстоятельство объясняется просто. Несмотря на доступность технологии, железо, которое требуется для генерации, остается дорогим. И бесплатно отдавать ресурсы GPU мало кому хочется. Однако, тягу к бесплатному трудно победить. Поэтому в этой статье мы узнаем, как, всё же, генерировать изображения только при помощи браузера и нескольких строк кода.

Читать далее
Total votes 17: ↑16 and ↓1+20
Comments16

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

Level of difficultyEasy
Reading time4 min
Views3.6K

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

Возможно, многие сталкивались с задачей: есть сервер с некими cronjob-ами, результат выполнения которых хотелось бы мониторить определенному числу лиц, но при этом сервер находится в каком-нибудь intranet и не имеет доступа к сети интернет. Вот и у нас однажды возникла подобная проблема. Единственным доступным средством коммуникации с внешним миром у сервера был почтовый шлюз, через который можно было отправить электронную почту. До некоторого времени задача решалась отправкой нескольких копий письма, но со временем стало понятно, что гораздо  удобнее читать уведомления в Telegram. Такую настройку мы произвели с помощью Yandex Cloud Functions.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments4

App Router и Pages Router: что изменилось в Next.js

Level of difficultyEasy
Reading time8 min
Views6.5K

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

Как могут заметить разработчики, фреймворк Next очень активно развивается. Так, некоторое время назад в 13 версии появилась новая парадигма (модель) для создания приложений — app router, которая должна прийти на смену старой pages router.

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

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments0

Векторизация изображений. Как создать алгоритм поиска похожих изображений на Python

Level of difficultyMedium
Reading time8 min
Views13K

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

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

В мире есть много вещей, которые интуитивно понятны и очевидны для нас. Например, если перед нами два похожих цветка, мы можем определить их принадлежность одному виду, даже не зная названий этих растений. Этот навык позволяет нам распознавать объекты и определять их в группы. Разумеется, подобные алгоритмы уже давно существуют в современных поисковиках Google, Яндекс и прочих. Но что, если вы проектируете обособленную систему с собственной базой изображений одной или нескольких конкретных тематик и вам необходим функционал поиска похожих изображений?

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments5

Композиционное тестирование: новый подход к качеству IT-продуктов

Level of difficultyMedium
Reading time9 min
Views4.2K

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

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

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments0

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

Level of difficultyMedium
Reading time6 min
Views3.8K

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments1

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

Level of difficultyMedium
Reading time9 min
Views3.2K

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

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

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

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments4

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

Level of difficultyMedium
Reading time5 min
Views4.2K

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

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

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

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

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments0

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

Level of difficultyMedium
Reading time13 min
Views6.4K

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.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

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

Level of difficultyMedium
Reading time7 min
Views4.2K

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

Читать далее
Rating0
Comments3

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

Level of difficultyMedium
Reading time5 min
Views7.4K

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

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

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments4

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

Reading time5 min
Views3.1K

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

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments8

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

Reading time8 min
Views3.4K

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

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

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

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

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

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

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

Читать далее
Rating0
Comments1

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

Reading time7 min
Views4.5K

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

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

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

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

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments2

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

Reading time7 min
Views5.4K

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

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

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

Читать далее
Total votes 3: ↑2 and ↓1+4
Comments40

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

Reading time3 min
Views5.5K

TL;DR;

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

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

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

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

Читать далее
Total votes 14: ↑7 and ↓7+6
Comments18
1

Information

Rating
483-rd
Location
Россия
Works in
Registered
Activity