Pull to refresh
-25
0
Илья @Arbane

Программист, руководитель

Send message

Производительность базового поиска в Ozon как культурный феномен

Level of difficultyMedium
Reading time22 min
Views22K

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

Читать далее
Total votes 68: ↑63 and ↓5+71
Comments87

Технология единого входа: как работает SSO

Level of difficultyEasy
Reading time15 min
Views16K

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

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

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

Первые идеи SSO зародились в конце 1990-х, когда корпоративные сети стали более сложными, и потребность в централизованном управлении доступом стала очевидной. Это был период, когда организации начали искать способы упростить управление учетными записями для своих сотрудников.
В начале 2000-х было активное развитие технологий SSO. Организации начали внедрять SSO для упрощения доступа к корпоративным приложениям и ресурсам. Это также был период появления стандартов, таких как Kerberos, который лег в основу многих ранних реализаций SSO.
С развитием облачных технологий и мобильных устройств SSO начало получать ещё большее распространение. Возникли такие стандарты, как OAuth и OpenID, которые позволили SSO выйти за пределы корпоративных сетей и обеспечить интеграцию с обширным спектром внешних онлайн-сервисов и приложений.

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

Читать далее
Total votes 20: ↑15 and ↓5+13
Comments7

Распознавание русского жестового языка: распознаём до 3+ жестов в секунду на обычном ПК без видеокарты

Level of difficultyEasy
Reading time8 min
Views4.3K

Привет!

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

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

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

А между тем, глухие или неговорящие - достаточно большая группа людей, которая посещает государственные учреждения, ходит в магазины, банки и пр. По данным ВОЗ, более 5% населения мира, или 430 миллионов человек, имеют проблемы со слухом, а к 2050 г. с этой проблемой столкнется каждый десятый, или более 700 миллионов человек.

Читать далее
Total votes 14: ↑13 and ↓1+16
Comments11

Своё облако на CasaOS

Level of difficultyEasy
Reading time4 min
Views24K

В последнее время я всё чаще задумывался о создании собственного домашнего облака. Я решил исследовать различные варианты операционных систем, специально предназначенных для домашних серверов. В моем поиске я рассмотрел несколько популярных решений, таких как TrueNAS и OpenMediaVault (OMV), каждое из которых предлагало свои уникальные функции и возможности. Однако, несмотря на их многочисленные преимущества, я искал что-то еще более простое и гибкое в настройке. И вот тогда я наткнулся на CasaOS – легковесную и интуитивно понятную операционную систему, которая идеально подошла для моих целей. В этой статье я поделюсь своим опытом работы с CasaOS, расскажу о ее особенностях, возможностях и преимуществах, которые сделали её идеальным решением для моего домашнего облака.

Читать далее
Total votes 15: ↑5 and ↓10-3
Comments33

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views222K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Total votes 90: ↑87 and ↓3+114
Comments216

C VDI на Руси жить хорошо? Функциональные особенности российского VDI

Reading time8 min
Views5.5K

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

Для начала отметим, что VDI по своей сути — это система автоматизации двух ключевых процессов:

— Управление жизненным циклом виртуальных рабочих мест (ВРМ) (развертывание из шаблона с регистрацией в службе каталога, пауза, перезапуск, удаление, переразвертывание после внесения изменений в шаблоны и т. п.).
— Управление пользовательскими сессиями: авторизация пользователей, организация сессий, проброс пользовательских устройств на виртуальные АРМ.

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

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

Разработка браузерных игр с использованием Phaser3, React, Typescript

Level of difficultyMedium
Reading time15 min
Views17K

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

Разработка игр это круто и весело! В данной статье разберем пошагово разработку демо небольшой браузерной игры.

Читать далее
Total votes 19: ↑18 and ↓1+22
Comments7

Kafka, go и параллельные очереди

Level of difficultyEasy
Reading time10 min
Views12K

В этой статье я расскажу о паре способов увеличить пропускную способность системы с помощью партиций kafka и каналов go. В качестве библиотеки-клиента kafka буду использовать segmentio/kafka-go. Статья будет полезна начинающим go-разработчикам, которые уже знакомы с основными концепциями Apache Kafka (producer, consumer, consumer group, offset, топик, партиция), но еще не задумывались о масштабировании. Все рассуждения будут опираться на игрушечный пример, который, я надеюсь, хотя бы немного напоминает реальные системы.

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments19

Отказоустойчивая архитектура: почему Tarantool не падает?

Reading time8 min
Views6.8K


Основная проблема в высоконагруженных приложениях — отказоустойчивость. Нагрузка с упавших узлов в кластере должна переключаться на живые. Это кажется несложной задачей, но на практике появляется много подводных камней. Мы с yngvar_antonsson потратили много времени на поддержку различных кластеров, построенных на Tarantool и наших кластерных фреймворках Cartridge и TDG, и сегодня расскажем вам, как обеспечивается отказоустойчивость в наших приложениях. Будет интересно всем, кто хочет подробнее узнать, как устроен фейловер в Cartridge, и тем, кто хочет узнать о нашем опыте создания автоматических фейловеров.
Читать дальше →
Total votes 29: ↑27 and ↓2+41
Comments0

Читаем/записываем файл в Андроиде без запроса пермишинсов

Level of difficultyEasy
Reading time2 min
Views6.9K

Считаете, что для чтения файла в андроиде нужен

Manifest.permission.READ_EXTERNAL_STORAGE

Сейчас я раскажу как это сделать совсем без запроса пермишинов.

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments19

Свой Firebase за 7$ или практический опыт внедрения Appwrite как сервера для мобильного приложения

Level of difficultyEasy
Reading time7 min
Views14K

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

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

Как мы Kafka с NestJS microservices подружить пытались

Reading time11 min
Views4.7K

Привет, меня зовут Валентин, я NodeJS-разработчик в Сравни. Моя команда делает Profile Service — внутренний продукт, который отвечает за быстрое получение и запись личных данных пользователей для экосистемы Сравни. Мы взаимодействуем с 20+ продуктовыми командами, которые дают нагрузку на сервис порядка 200-300 RPS; порядок обрабатываемых записей в БД – десятки миллионов.

В какой-то момент мы решили внедрить Kafka – де-факто стандарт транспорта, работающий в миллионах проектов. Что может пойти не так? Оказалось – вообще всё что угодно. 

В этой статье я расскажу, с какими неочевидными проблемами мы столкнулись при переходе на Kafka у нас в продукте, как мы чинили баги в NestJS Microservices и какие выводы сделали (спойлер: Kafka – не всегда хорошее решение). 

Приступим!

Читать далее
Total votes 17: ↑14 and ↓3+13
Comments12

Компьютерные решения больше не запатентовать

Level of difficultyEasy
Reading time23 min
Views23K

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

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

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

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

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

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

Читать далее
Total votes 59: ↑51 and ↓8+61
Comments63

Бизнес-правила в действии: семь лет развития и усовершенствования Business Rules Engine

Level of difficultyMedium
Reading time13 min
Views1.7K

Привет! Меня зовут Владислав Кучинский. Я начинал свой карьерный путь в IT с разработки на С++ и Java, а сейчас являюсь руководителем группы Platform Event Management в компании Bercut.

Сегодня я расскажу историю создания платформы Business Rules Engine (BRE) Bercut – системы обработки событий в реальном времени. Поделюсь опытом удачных и не очень решений, которые в итоге все же стали удачными. К моменту начала разработки BRE я был руководителем отдела и осуществлял различные роли: был аналитиком, архитектором, сам что-то кодировал, внедрял, тестировал.

Итак, под катом – история преодоления сложностей, с которыми мы столкнулись во время проекта, и выводы, к которым пришли.

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

Устраняем ошибки, связанные с SIGSEGV: ошибка сегментирования в контейнерах Linux (код возврата 139)

Level of difficultyHard
Reading time7 min
Views8.4K
image

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

Сигналы SIGSEGV возникают на уровне операционной системы, но столкнуться с ними также вполне можно и в контексте контейнерных технологий, например, Docker и Kubernetes. Когда контейнер завершает работу, выдав код возврата 139, дело именно в том, что он получил сигнал SIGSEGV. Операционная система завершает процесс контейнера, чтобы предохраниться от нарушения целостности памяти.

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

В этой статье будет объяснено, что представляют собой сигналы SIGSEGV, как они влияют на работу ваших контейнеров с Linux в Kubernetes. Также я подскажу, как отлаживать ошибки сегментации в вашем приложении, а если они возникают – как с ними справляться.
Читать дальше →
Total votes 20: ↑14 and ↓6+15
Comments9

Python в помощь инженеру ПТО

Level of difficultyEasy
Reading time7 min
Views12K

Всем привет.
В статье приведу немного скриптов на Python для решения вопросов с которыми иногда пересекается инженер ПТО строительной организации. Склёпал сам по мотивам информации из инета. Профи будет скучно), уровень "без диплома программиста".

На рабочем ноуте используется: Win10, Python 3.11, Office2019. Програмлю в PyScripter (нравится мне он).

Читать далее
Total votes 12: ↑10 and ↓2+9
Comments18

Приручаем GitLab: прикольные фишки и инциденты, которые упростят вашу жизнь

Level of difficultyMedium
Reading time11 min
Views37K

В текущих реалиях все IT-продукты разрабатываются с использованием какого-либо ПО, способного управлять репозиториями программного кода для Git. В нашем случае, хотелось бы рассказать про один из самых популярных продуктов — Gitlab. «Gitlab — наше всё» должно быть слоганом каждой компании, которая его использует, иначе могут произойти события, которые приведут к печальным последствиям. На Habr можно найти множество различной информации, связанной с кейсами, туториалами или просто интересными историями. Но сколько бы ни было написано, найти место где было бы собрано всё и сразу — не получилось. Придется исправлять. 

Начнём?
Total votes 24: ↑21 and ↓3+24
Comments3

Запуск приложений на .NET в качестве службы на Linux-системе с systemd

Level of difficultyHard
Reading time7 min
Views10K
image

В этом материале будет рассмотрено, как запускать приложение .NET Core / .NET 5 в качестве сервиса под Linux. Мы воспользуемся Systemd, чтобы интегрировать наше приложение с операционной системой, научимся запускать и останавливать наш сервис, а также получать от него логи.

Чтобы организовать атаку на цепочку поставок при помощи .NET, мне потребовалось настроить DNS-сервер, который перехватывал бы те хост-имена, которые ко мне направляются. Давайте возьмём этот кейс для примера.
Читать дальше →
Total votes 29: ↑27 and ↓2+40
Comments18

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

Level of difficultyMedium
Reading time30 min
Views22K

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

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

Так как же работает объектив?
Total votes 132: ↑131 and ↓1+160
Comments38

Information

Rating
4,677-th
Location
Россия
Registered
Activity