Как стать автором
Обновить
Сначала показывать
  • Новые
  • Лучшие

Джентльменский набор программиста UE4, ч. 3

Блог компании Mail.ru GroupРазработка игрUnreal Engine

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры2.6K
Комментарии 0

Новости

Показать еще

Как я сократил код для нагрузочного тестирования в три раза

Блог компании Mail.ru GroupТестирование IT-системGoTarantool


Главная концепция нагрузочного тестирования — автоматизировать все, что можно. Берёте инструмент, пишете конфиг и сценарий, запускаете имитацию реальной нагрузки. Чем меньше кода, тем лучше.

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

Я расскажу, почему мне не подошел Яндекс.Танк в связке с Pandora и как я в три раза сжал код своей утилиты тестирования без потери производительности.
Читать дальше →
Всего голосов 31: ↑28 и ↓3 +25
Просмотры3K
Комментарии 6

Геопространственное моделирование с применением методов машинного обучения

Блог компании Mail.ru GroupБлог компании Delivery Club TechГеоинформационные сервисыВизуализация данныхМашинное обучение


Всем привет! Меня зовут Константин Измайлов, я руководитель направления Data Science в Delivery Club. Мы работаем над многочисленными интересными и сложными задачами: от формирования классических аналитических отчетов до построения рекомендательных моделей в ленте приложения.

Сегодня я расскажу про одну из задач, которую мы решали: про автоматизацию построения зон доставки ресторанов. Зона доставки — это область вокруг заведения, и когда вы в ней находитесь, этот ресторан отображается в списке доступных для заказа. Несмотря на всю простоту формулировки, построение зон доставки ресторанов достаточно непростая задача, в которой встречается много подводных камней не только со стороны технической реализации, но и на этапе внедрения. Я расскажу про предпосылки появления этой задачи, подходы (от более простого к сложному) и подробно рассмотрю алгоритм построения зоны доставки.

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

Статья написана по мотивам выступления с Евгением Макиным на конференции Highload++ Весна 2021. Для тех, кто любит видео, — ищите его в конце статьи.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры1.7K
Комментарии 10

We need to go deeper: как пасхалка в приложении Delivery Club сократила субъективное время ожидания еды

Блог компании Mail.ru GroupБлог компании Delivery Club TechРазработка мобильных приложенийРазработка игрДизайн игр


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

В декабре у нашего разработчика Александра Верестникова возникла идея интегрировать в приложение тайм-киллер — игру-пасхалку, в которую пользователь мог бы поиграть, пока ждёт заказ. Игрушка позволила бы сократить субъективное время ожидания заказа, а тот факт, что её как будто сложно найти, добавил бы происходящему таинственности. Саша зацепил этой идеей другого разработчика, Сахея Игнатьева. И они принялись за работу. После недолгих обсуждений выбор пал на змейку.
Читать дальше →
Всего голосов 35: ↑27 и ↓8 +19
Просмотры4.7K
Комментарии 7

Архитектура in-memory СУБД: 10 лет опыта в одной статье

Блог компании Mail.ru GroupВысокая производительностьАдминистрирование баз данныхTarantool
image

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

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

Этот рассказ сжимает 10 лет опыта работы с in-memory решениями в один текст. Порог входа максимально низкий. Чтобы получить пользу от прочтения, вам не нужно иметь столько же лет опыта, достаточно базового понимания IT.
Читать дальше →
Всего голосов 51: ↑51 и ↓0 +51
Просмотры9.5K
Комментарии 15

Рабочее место в кафе, улучшение фотографий и команды для хакатонов: выпускные работы наших студентов

Блог компании Mail.ru GroupПрограммированиеУчебный процесс в IT

2 июня прошли защиты выпускных проектов у студентов образовательных проектов Mail.ru Group. Ребята шли к этому моменту два года, и последний семестр был почти полностью посвящен реализации этих идей. Свои работы в защищали 8 команд из «Технопарка» (МГТУ им. Н. Э. Баумана) и 3 из «Технополиса» (СПбПУ им. Петра Великого). Все они реализовали разные проекты, объединенные одной целью — улучшить жизнь людей с помощью технологий.

Подробно описываем три проекта, которые по мнению жюри оказались лучшими как с точки зрения проработки проблемы, так и реализации MVP.
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры2.3K
Комментарии 2

Для чего я использую немодерируемые тесты на Fabuza

Блог компании Mail.ru GroupUsabilityИсследования и прогнозы в IT


Я отвечаю за одно из направлений в UX-лаборатории Mail.ru Group. Мы проводим исследования для продуктов, в командах которых нет своих исследователей. Проектов в бэклоге много, поэтому нужно постоянно искать решения по ускорению и распараллеливанию работы по нескольким исследованиям, подключать дизайнеров и продактов к самостоятельной работе над исследованиями.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры676
Комментарии 0

Как MCS и Х5 построили частное облако в энтерпрайзе, чтобы быстро получать готовые сервисы

Блог компании Mail.ru GroupБлог компании X5 Retail GroupСистемное администрированиеIT-инфраструктураОблачные сервисы


Castle in the sky by PiotrDura


Публичное и частное облако одного провайдера — два разных продукта или одна и та же платформа, просто развернутая на разном оборудовании? На примере решения для Х5 Retail Group я, Илья Болучевский, технический директор Mail.ru Private Cloud, расскажу, в чем отличия и как построен процесс внедрения облака вендора в корпоративную инфраструктуру.


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


Кажется, что все просто: модульный подход, сборка из готовых компонентов, внедрение с экспертами. На самом деле частное облако никогда нельзя поставить «из коробки»: требуется кастомизация под корпоративные требования и интеграция с внутренними системами. Это долгий и сложный путь, который команде клиента приходится проходить вместе с нами.


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

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

Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры2.1K
Комментарии 1
Разработчик .Net
Mail.ru GroupМоскваМожно удаленно
PHP/Go-разработчик
Mail.ru GroupМоскваМожно удаленно
Go-разработчик
Mail.ru GroupМоскваМожно удаленно
Go/Python-разработчик в команду R&D
Mail.ru GroupМоскваМожно удаленно

Как и зачем Mail.ru Group провела редизайн мобильной версии главной страницы портала

Блог компании Mail.ru GroupВеб-дизайнИнтерфейсыUsability


Появление новых сервисов стало испытанием для главной страницы Mail.ru — пользователям стало сложнее находить нужные разделы, и в компании решили обновить дизайн. Специалисты Mail.ru Group рассказали об изменениях в мобильной версии главной страницы портала, какие задачи он решает и к каким результатам позволил прийти.
Читать дальше →
Всего голосов 30: ↑23 и ↓7 +16
Просмотры2.7K
Комментарии 9

Self-Hosted, или Kubernetes для богатых: почему самостоятельное развертывание кластера — не всегда способ сэкономить

Блог компании Mail.ru GroupСистемное администрированиеОблачные вычисленияDevOpsKubernetes


Идея самостоятельно развернуть кластер Kubernetes на собственных серверах или в облаке выглядит привлекательной: кажется, что это дешевле, чем платить за Managed-решение от провайдера. На самом деле все не так однозначно: на практике можно обнаружить скрытые расходы и подводные камни.


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


Я Дмитрий Лазаренко, директор по продукту облачной платформы Mail.ru Cloud Solutions (MCS). В статье расскажу, в чем особенности развертывания Self-Hosted-кластера Kubernetes и о чем нужно знать перед запуском.

Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры5.4K
Комментарии 17

Как в PHP улучшить читаемость регулярных выражений

Блог компании Mail.ru GroupPHPАлгоритмыРегулярные выражения
Перевод
Tutorial

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

PHP использует диалект регулярных выражений PCRE — до версии PHP 7.3, и PCRE2 — в более новых версиях. Поэтому в PHP можно использовать различные продвинутые приемы, помогающие писать читаемые, самодокументируемые и поддерживаемые регулярные выражения. При этом не надо также забывать и о наличии в PHP функций фильтрации переменных, а также семейства функций ctype*, позволяющих валидировать такие распространенные значения как url-ссылки, адреса электронной почты и строки из букв и цифр — вообще без использований регулярный выражений. Во многих IDE есть подсветка регулярных выражений, помогающая их читать, а иногда даже и проверка выражений, с подсказками по их улучшению.

Читать далее
Всего голосов 37: ↑35 и ↓2 +33
Просмотры4.8K
Комментарии 14

Paradigm 2.0 — как мы переосмыслили дизайн-систему Mail.ru

Блог компании Mail.ru GroupВеб-дизайнИнтерфейсыДизайн

Про дизайн-системы сказано и написано уже многое. Дизайнеры прошли долгий путь от обсуждения шаблонов в Sketch к компонентам в коде, а от компонентов — к рамкам в дизайне и границам системности. В этой статье мы расскажем не о том, как создавать дизайн-системы, а о том, как с ними жить: что делать, если система больше не работает, как пересобрать ее заново и как «продать» ее коллегам.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Просмотры2.3K
Комментарии 1

Развеиваем мифы об управлении памятью в JVM

Блог компании Mail.ru GroupВысокая производительностьJavaАнализ и проектирование системАлгоритмы
Перевод

В серии статей я хочу опровергнуть заблуждения, связанные с управлением памятью, и глубже рассмотреть её устройство в некоторых современных языках программирования — Java, Kotlin, Scala, Groovy и Clojure. Надеюсь, эта статья поможет вам разобраться, что происходит под капотом этих языков. Сначала мы рассмотрим управление памятью в виртуальной машине Java (JVM), которая используется в Java, Kotlin, Scala, Clojure, Groovy и других языках. В первой статье я рассказал и разнице между стеком и кучей, что полезно для понимания этой статьи.
Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Просмотры8.1K
Комментарии 11

От базы данных к озеру данных: принципиальные различия между двумя технологиями

Блог компании Mail.ru GroupОблачные вычисленияBig Data
Перевод


Lake Berryessa by chateaugrief


В работе с базами и озерами данных есть принципиальные различия. Команда разработки облачного сервиса Mail.ru Cloud Big Data перевела короткую статью об устройстве Data Lake. Она пригодится тем, у кого нет большого опыта работы с реляционными базами данных.

Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Просмотры6.8K
Комментарии 1

Внутренности Linux: как /proc/self/mem пишет в недоступную для записи память

Блог компании Mail.ru GroupНенормальное программирование*nixCРазработка под Linux
Перевод

Странная причудливость псевдофайла /proc/*/mem заключается в его «пробивной» семантике. Операции записи через этот файл будут успешными даже если целевая виртуальная память помечена как недоступная для записи. Это сделано намеренно, и такое поведение активно используется проектами вроде компилятора Julia JIT или отладчика rr.

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

Мы постараемся ответить на эти вопросы и рассмотрим нюансы взаимодействия между операционной системой и оборудованием, на котором она исполняется. Изучим ограничения процессора, которые могут влиять на ядро, и узнаем, как ядро может их обходить.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Просмотры6.4K
Комментарии 1

Tarantool и кодогенерация на Lua

Блог компании Mail.ru GroupАлгоритмыLuaTarantool
Tutorial

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

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

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Просмотры2.6K
Комментарии 0

Время — деньги: анализируй А/В-тесты разумно

Блог компании Mail.ru GroupБлог компании Delivery Club TechВизуализация данныхВеб-аналитикаАналитика мобильных приложений


Всем привет! Меня зовут Кирилл, я работаю в продуктовом направлении команды Data Science. Сегодня я расскажу о том, как мы в Delivery Club автоматизируем A/B-тестирование. Основная часть статьи посвящена аналитике, но мы кратко затронем и остальные аспекты.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры4K
Комментарии 4

Швейцарский нож отладки JavaScript

Блог компании Mail.ru GroupБлог компании Delivery Club TechJavaScriptGoogle ChromeHTML


Кажется, что все в начале пути разработчика отлаживали код при помощи console.log(). Я уверен, что и сейчас среди читателей найдётся человек, который сможет отладить код любой сложности при помощи вывода информации в консоль.

Признаюсь честно, я и сам достаточно долго просто выводил что-то в консоль, пытаясь понять, что пошло не так. Я понимал, что использовать breakpoint быстрее и продуктивнее, даёт больше возможностей, ну и в целом выглядит солиднее, но по-прежнему пользовался консолью.
Читать дальше →
Всего голосов 40: ↑37 и ↓3 +34
Просмотры11.8K
Комментарии 16

Как ускорить работу микросервиса с помощью многопоточности, асинхронности и кэша: пошаговая инструкция (FastApi, Redis)

Блог компании Mail.ru GroupОблачные вычисленияDevOps
Tutorial


To Destination by BisBiswas


Микросервисная архитектура звучит неплохо само по себе, но еще лучше — быстрый микросервис, который эффективно использует ресурсы сервера.


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

Читать дальше →
Всего голосов 29: ↑26 и ↓3 +23
Просмотры4.5K
Комментарии 1

Что такое графовые нейронные сети

Блог компании Mail.ru GroupАлгоритмыМашинное обучение

Графовые сети — это способ применения классических моделей нейронных сетей к графовым данным. Графы, не обладая регулярной структурой как изображения (каждый пиксель имеет 8 соседей) или тексты (последовательность слов), долгое время оставались вне поля зрения классических нейронных моделей, которые получили широкое распространение в области машинного обучения и искусственного интеллекта. Большинство моделей векторизации графов (построения векторного представления вершин в графе) были достаточно медленными и использовали алгоритмы на основе матричной факторизации или спектральной декомпозиции графа. В 2015-16 годах появились более эффективные модели (DeepWalk, Line, Node2vec, Hope) на основе случайных блужданий. Однако и они имели ограничения, потому что никак не затрагивали при построении векторной модели графа дополнительных признаков, которые могут храниться в вершинах или на ребрах. Появление графовых нейронных сетей стало логичным продолжением исследований в области графовых эмбеддингов и позволило унифицировать под единым фреймворком предыдущие подходы.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры6.5K
Комментарии 0

Информация

Дата основания
Местоположение
Россия
Сайт
team.mail.ru
Численность
5 001–10 000 человек
Дата регистрации
Представитель
Павел Круглов