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

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

Send message

Собственный ИИ локально, бесплатно и без GPU

Level of difficultyEasy
Reading time5 min
Views29K

Сегодня каждый может обзавестись своим собственным ИИ. И даже не потребуется супер-пупер компьютера и дата-центра с кучей GPU. При этом он будет работать без Интернета. Давайте, приступим к тому, чтобы обзавестись на компьютере милым и пушистым питомцем.

Читать далее

Self-modifying SQL: динамическое изменение SQL-кода в процессе выполнения

Level of difficultyMedium
Reading time6 min
Views3.9K

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

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

Читать далее

Vouch Proxy для OAuth2 при авторизации пользователей в нагруженных системах

Level of difficultyMedium
Reading time8 min
Views1.1K

Vouch Proxy (VP) представляет собой мощный инструмент для обеспечения безопасности и удобства использования веб-приложений, особенно в условиях высокой нагрузки. VP позволяет использовать различные Identity Provider (IdP) для аутентификации пользователей и предоставления им доступа к защищенным ресурсам. В этой статье мы рассмотрим, как Vouch Proxy может быть использован для реализации OAuth2 в нагруженных системах.

Читать далее

Приоритизация тест-кейсов или как пройти регресс, не потеряв рассудок

Level of difficultyEasy
Reading time7 min
Views1.7K

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

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

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

Если уйти от идеализации, то обычно в начале регрессионного тестирования мы видим огромное количество тест-кейсов в виде большого списка, который, как правило, структурировано выделен по папкам и разбит на модули, связанные между собой. Такое тестирование занимает большой объем работы и времени, а главная задача — это не упустить ничего, что может блокировать нам использование нашего продукта.

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

Читать далее

Как нейросеть мне приложение писала

Level of difficultyEasy
Reading time29 min
Views3.8K

Данная статья содержит описание личного опыта взаимодействия автора и нейросетей DeepSeek и GigaChat на уровне <рядовой пользователь – машина>. Автор не является профессиональным программистом и профессиональным промпт-инженером, поэтому воздерживается от комментариев относительно качества кода и обоснованности того или иного решения, предлагаемого ИИ.

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

Читать далее

Bloom-фильтры в Postgres: скрытый инструмент для оптимизации запросов

Level of difficultyEasy
Reading time7 min
Views2.2K

В мире разработки и работы с базами данных Bloom-фильтры – это мощный, но малоизвестный инструмент, который может значительно ускорить выполнение запросов и снизить нагрузку на систему. Однако, несмотря на их потенциал, многие разработчики даже не знают, что Postgres поддерживает Bloom-фильтры "из коробки" (функциональность Bloom-фильтров доступна сразу после установки Postgres, при включении соответствующего расширения) через расширение bloom.

Bloom-фильтры особенно полезны в ситуациях, когда нужно быстро проверить, принадлежит ли элемент к множеству, или когда требуется оптимизировать запросы с несколькими условиями. Например, они могут ускорить JOIN-запросы, поиск по нескольким столбцам или агрегатные функции.

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

Читать далее

Проблемы Nginx в организации микросервисной архитектуры IT-проекта. Способы их решения

Level of difficultyEasy
Reading time11 min
Views6.9K

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

Читать далее

Автоматизированное документирование баз данных на Markdown

Level of difficultyMedium
Reading time14 min
Views5.5K

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

Для решения данной задачи разработаны два PHP-скрипта, предназначенные для работы с PostgreSQL. Эти скрипты выполняют две основные функции:

1.  Сравнение старой и новой структуры базы данных с выявлением добавленных, удалённых и изменённых таблиц.

2.  Создание Markdown-документации, которая содержит подробное описание назначения таблиц и характеристик их полей, что делает изменения в структуре базы данных прозрачными для разработчиков.

Читать далее

Внедрение электронной цифровой подписи в мобильное приложение на Android

Level of difficultyEasy
Reading time14 min
Views2.9K

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

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

Читать далее

Создаем алгоритм определения скорости объектов по видео

Level of difficultyMedium
Reading time6 min
Views5.1K

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

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

Читать далее

Перспективы роботизации: андроиды в космосе и на кухне

Level of difficultyEasy
Reading time10 min
Views999

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

Дискуссионный тезис о том, что советская плановая система экономики была не так уж и плоха и ее надо бы вернуть, перестал быть предметом дискуссий. Теперь это реальность. Глава государства и правительство РФ ставят задачи, а ведомства разрабатывают соответствующие планы по отраслям. Стратегическое планирование коснулось и области высоких технологий. В частности, на недавнем ПМЭФ-2024 Владимир Путин заявил о нетривиальной цели: «Россия за короткий срок должна войти в топ-5 стран мира по плотности роботизации». Глава государства отметил, что производство роботов следует развивать на собственной технологической базе.

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

Читать далее

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

Level of difficultyMedium
Reading time11 min
Views1.6K

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

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Views3.3K

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

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time9 min
Views1.9K

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views15K

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views6.3K

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views14K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time8 min
Views16K

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Views4.5K

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

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

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views6.3K

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

Читать далее
1

Information

Rating
532-nd
Location
Россия
Works in
Registered
Activity