Pull to refresh
24
-2

Пользователь

Send message

Анти-легаси архитектура для UI приложений

Reading time 8 min
Views 6.5K

В предыдущих статьях мы пришли к выводу, что для того, чтобы UI‑код не превращался в легаси, нам нужно отделить представление от бизнес‑логики и немного иначе, чем это делают Redux и Elm, так как оба подхода не позволяют сделать это полностью.

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

React view как чистая функция состояния

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

Ещё считается, что React внес реактивность в пользовательский интерфейс, но это не так, так как шаблоны MVVM и фреймворки, которые сильно полагаются на реактивность, были введены раньше React. (Knockout и Angular с двойным биндингом данных, Ember.js Observable)

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

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

Интернационализация от i до n: как мы переводим интерфейсы в Фантехе Яндекса

Level of difficulty Medium
Reading time 7 min
Views 3.7K

Привет! Меня зовут Александр Поляков, я руководитель команды i18n-разработки в Фантехе Яндекса. Мы помогаем сервисам компании выходить на международные рынки, а именно решаем задачи, связанные с интернационализацией и локализацией интерфейсов.

В этом посте расскажу:

какие именно решения для интернационализации фронтенда мы разрабатываем;

какие есть правила форматирования данных для разных локалей и как определять эти локали;

о проблемах переводов в современных реалиях.

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

Читать далее
Total votes 31: ↑31 and ↓0 +31
Comments 12

MLOps в билайн: как катить машинное обучение в production без ML-инженеров. Часть I

Level of difficulty Medium
Reading time 10 min
Views 5.8K

Всем привет! Меня зовут Николай Безносов, я отвечаю за применение и развитие машинного обучения и продвинутой аналитики в билайне. В одной из прошлых статей мои коллеги рассказывали о месте Seldon в ML-инфраструктуре компании, а сегодня мы поднимемся на уровень выше и поговорим о том, что из себя представляет MLOps в билайне в целом - как с точки зрения инфраструктуры, так и с точки зрения процессов.

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

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

Читать далее
Total votes 19: ↑18 and ↓1 +17
Comments 5

Использование ML для прогнозирования CLTV

Level of difficulty Medium
Reading time 10 min
Views 2.1K

Из прошлой статьи мы узнали, что CLTV (customer lifetime value) — метрика, используемая для оценки прибыли, которую компания может получить от своего клиента за время его пользования продуктами и сервисами компании.

Разберем, что означает каждая буква в определении CLTV (customer lifetime value). Кто такой клиент, что мы понимаем под lifetime и ценностью, которую приносит нам клиент. 

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

Под lifetime мы понимаем не полный жизненный цикл клиента от момента заключения договора до момента его закрытия, а пятилетний горизонт, который мы отсчитываем от текущего момента времени. То есть, если мы строим прогноз от января 2023 года, то прогноз будет построен помесячно до декабря 2027 года. Почему 5 лет? Этот срок был определен опытным путем — при нем достигается баланс между качеством предсказаний и потребностью в бизнес-процессах.

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

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

Как мы переводим наш мониторинг в наблюдаемость

Level of difficulty Medium
Reading time 12 min
Views 6.2K

Привет всем! Полное содержание первого сезона можно прочитать тут и тут, а краткое содержание такое: 

• Компания приняла решение улучшить работу клиентских сервисов и одним из рычагов для этого стал мониторинг.

• Мониторинг был разным (Patrol, Zabbix. NetCool), про Elastic. Про Prometheus, трейсинг и Grafana не слышали.

• У всех команд эксплуатации были свои мониторинги, которые "что-то" показывали, но это все было разрознено и никак не связано.

Привести все это «богатство» в адекватное рабочее русло, как-то структурировать и реструктуризировать было поручено команде супергероев, которые в перерывах между паниками (страшно было) взялись за дело

ВАЖНО: Тут не будет скриптов развертывания. Не будет рецептов и настроек систем (что-то есть в интернете, к чему-то пришли через пот и слезы). Это взгляд людей, которые развивают системы мониторинга и философию, которой они придерживается. Что еще важно – среди нас до момента развертывания не было людей, которые слышали про эти системы. 

Наш первый сезон мы закончили с таким багажом и знаниями:

Читать далее
Total votes 18: ↑17 and ↓1 +16
Comments 2

Почему вы не тренируетесь?

Level of difficulty Medium
Reading time 29 min
Views 68K
Читать далее
Total votes 67: ↑46 and ↓21 +25
Comments 228

Как сделать UI тестируемым и легкоизменяемым?

Reading time 14 min
Views 6.6K

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

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

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

Как мы сломали стену между разработкой и дизайном

Level of difficulty Easy
Reading time 6 min
Views 1.7K

Привет! Меня зовут Андрей, я несколько лет занимаюсь разработкой, и за это время успел поработать с разными командами дизайнеров, посмотреть на разные подходы, кто где как делает, где какие есть сложности. 

В этом посте как раз о подобных сложностях я и хочу поговорить, а именно — о проблеме в коммуникациях между разработчиками и дизайнерами. Я очень люблю делать личные кабинеты, поэтому и в качестве примера буду говорить именно о разработке ЛК в билайне за последние три года. О том, какие именно трудности возникали и как мы упростили работу на UI-китом, под катом.

Представьте ситуацию.

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

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

Как мы узнаём, какая музыка играет в кино

Reading time 9 min
Views 7K

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

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

Меня зовут Алексей Царёв, я занимаюсь развитием технологий в развлекательных сервисах Яндекс. И моя задача в том, чтобы из какой-то отдельно взятой технологии создавать рабочие продукты для конечного пользователя. Именно об этом, на примере распознавания музыки в фильмах, и будет этот пост.

Читать далее
Total votes 35: ↑35 and ↓0 +35
Comments 5

Сообщества для аналитиков, инженеров и DS — почему работа в них продуктивнее, чем в привычных командах

Reading time 7 min
Views 1.5K

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

В этом посте мы поговорим о том, как формат сообществ (чаптеров) помогает нам в работе. Для этого мы подробно побеседовали с Михаилом Благовым, лидером чаптера инженеров данных. Еще нам помогали Николай Безносов (чаптер Data Science) и Артём Смирнов (Data Analytics).

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

Читать далее
Total votes 23: ↑22 and ↓1 +21
Comments 3

Seldon в MLops-инфраструктуре beeline business

Level of difficulty Medium
Reading time 7 min
Views 2.2K

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

В этой статье затронем тему организации процессов Machine Learning Operations (MLops) в beeline business, особое внимание акцентируем на тестировании моделей машинного обучения. Тестирование мы построили с использованием Gitlab (CI/CD), Mlflow и open-source фреймворка Seldon Core для деплоя REST API или gRPC сервисов с моделями в среде Kubernetes. А пока… 

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

Implicits в Scala — неявные методы, функции, значения и особенности

Level of difficulty Medium
Reading time 15 min
Views 1.6K

Привет! Меня зовут Сергей Грибков, я тимлид команды FM&RA в билайне, и в этом посте я хочу рассказать об одной фирменной особенности Scala под названием implicits. Это неявные параметры, неявные преобразования, неявные классы.

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

В Scala implicits широко распространены. Скорее всего, вы уже сталкивались с ними в различных библиотеках и фреймворках, например, Apache Spark. 

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

Итак, существует три основных категории implicits:

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

Тимлид — быть, а не казаться

Reading time 7 min
Views 22K

Привет! Меня зовут Филипп Кондрашов, я руковожу разработкой DS-решений в бигдата билайн. Как-нибудь расскажу вам, как наша команда строит лучшие модели скоринга. 

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

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

С чем поможет материал из статьи:

Освободиться от вертикальных взаимоотношений

Найти общий язык с менеджментом

Управлять командой во времена хаоса и гармонии

Не сойти с ума

Читать далее
Total votes 25: ↑22 and ↓3 +19
Comments 6

В чём разница между хорошим и плохим кодом? Объяснение для непрограммистов

Reading time 4 min
Views 9.2K

Однажды я где-то прочитал цитату, имевшую приблизительно следующий смысл:

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

Кажется, это заявление я прочитал в каком-то крупном СМИ. Статья называлась примерно так: «Опасайтесь плохого кода, он может вас убить; хотя постойте, он невидим, так что не стоит беспокоиться!». Весьма успокаивающее послание для читателей, как считаете? Сейчас я думаю, что авторы статьи просто пытались создать сенсацию из наличия таящегося «плохого кода» в авиалайнерах, поездах и беспилотных автомобилях, которых становится в нашем обществе всё больше, и таким образом увеличить количество просмотров.

Так как же объяснить концепцию «плохого кода» обывателю?


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

Для таких людей я представлю ответ на вопрос: «Если вы кодер, то чем вы занимаетесь?»
Читать дальше →
Total votes 44: ↑34 and ↓10 +24
Comments 31

Apache Sedona — как быстро работать с геоданными

Reading time 16 min
Views 3.5K

Привет! В рамках своей работы в beeline tech мы часто взаимодействуем с геоданными. Для решения проблем, связанных с хранением, обработкой и анализом большого объема распределенных пространственных данных, мы используем Apache Sedona (бывший Geospark). Мы — Денис Афанасьев, аналитик больших данных, и Женя Рыбалкин, инженер больших данных, под катом расскажем, почему выбрали именно этот инструмент и что он умеет. А чтобы показать, зачем вообще работать с геоданными, давайте возьмем пример расчета посещаемости хоккейных матчей в Москве, как-никак плей-офф в разгаре.

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

Следствием такого развития, как в количественном, так и в качественном плане, стал ощутимый рост того объёма данных, который все эти устройства генерируют. Ну и что нам с ними делать? Давайте разберемся на примере геоданных!

Зачем вообще кому-то нужны геоданные?

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

Изучаем изображения, использованные для обучения модели Stable Diffusion

Reading time 8 min
Views 4.7K

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

Иногда данные полностью недоступны: OpenAI сообщает, что обучила DALL-E 2 на сотнях миллионов изображений с подписями, но не опубликовала проприетарные данные. Команда разработчиков Stable Diffusion, напротив, очень прозрачно говорит о том, как обучалась её модель. Так как недавно её опубликовали для общего доступа, Stable Diffusion испытала взрывную популярность, в основном благодаря своей свободной и мягкой лицензионной политике. Модель уже встроена в новую бету Midjourney, NightCafe и собственное приложение Stability AI под названием DreamStudio, а также доступна для работы на собственном компьютере.
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 1

Отправляем спамеров в парольное чистилище

Reading time 6 min
Views 15K

Как лучше всего наказывать спамеров? Я очень долго думал над этой темой, потому что потратил кучу времени на фильтрацию бесконечного хлама, который они мне присылали. И тут меня озарило: наказание должно соответствовать преступлению — краже моего времени. То есть я, в свою очередь, должен красть их время. Разумеется, с минимальными затратами моего времени. Поэтому в начале этого года я создал Password Purgatory («Парольное чистилище») с единственной целью — провести спамеров через всего круги ада выбора пароля, удовлетворяющего ужасно сложным критериям. И когда я говорю "ужасно сложные критерии", это значит, что они гораздо хуже, чем то, что вы когда-либо видели. Я выложил проект в открытый доступ, принял несколько PR, создал API, задающий всё более сложные требования к паролям, и на этом остановился. Пока, наконец, не выпустил готовый проект. Он жив, работает и при этом дьявольски прекрасен.
Читать дальше →
Total votes 43: ↑39 and ↓4 +35
Comments 20

Почему стоит чуть конкретнее изучить собственную ЦА, даже если она кажется очевидной

Reading time 2 min
Views 1.9K

Привет!

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

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

Старые протоколы, которыми можно пользоваться и сегодня

Reading time 13 min
Views 11K
Устали от тяжёлых веб-страниц, всплывающих окон, мерцающих баннеров, N-факторной аутентификации, слежки за пользователями и аналитики? Тогда вы можете попробовать поработать с протоколами, которые не менялись последние тридцать лет.


Примерно тридцать лет назад люди видели онлайн-страницы так.
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 23

Как мы в СИБУРе делаем дашборды для людей. Часть 4: наблюдай и властвуй (ремонтом и техобслуживанием)

Reading time 6 min
Views 4.8K

Привет! В рамках нашего цикла постов про дашборды в СИБУРе и их практическую пользу для компании не смогли обойти стороной M2F – это обслуживание и ремонты, туда входит множество метрик из различных направлений бизнеса. Это могут быть метрики, которые показывают загруженность ремонтного персонала на предприятии или метрики затрат, например, «Поддержание основных фондов», а также имеется большой блок «Надежность».

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

Чуть не забыл представиться! Меня зовут Миша Делендик, и я как раз отвечаю в СИБУРе за разработку дашбордов по сквозным процессам M2F. В этом материале подробнее расскажу о том, как мы анализируем различные части процесса, чтобы оборудование работало без, кхм, нештатных ситуаций. 

Читать далее
Total votes 16: ↑14 and ↓2 +12
Comments 2

Information

Rating
Does not participate
Registered
Activity