Рубрика «Блог компании Mail.Ru Group» - 163

Как всем известно, 71% поверхности Земли занимает вода. К сожалению или к счастью, корректно изобразить океан умеют единицы. Иван Айвазовский вошел в учебники живописи благодаря одним только морским пейзажам. В компьютерных играх все еще сложнее. Когда-то море в них обозначали скоплением синих пикселей, раскрашенных белыми квадратами пены. Со временем виртуальные моря стали больше похожи на снимки из отпуска, научились качать волну и покрываться рябью, в которой иногда даже отражались очертания парусников. Но они оставались самостоятельной стихией: натолкнувшись на берег, волна превращалась в незамысловатые угловатые полигоны. Настоящий прибой логично взаимодействует с пляжем, увлажняет песок и с шуршанием откатывается назад. Такого правдоподобия удалось добиться только в современных играх. В том числе в нашем Skyforge. И хоть в основные события будут разворачиваться на суше, игроки попадут и на тропические острова, и в шумные порты. Вода будет постоянно рядом. Ее «правильный» облик будет играть большую роль. И воссоздание морской стихии – серьезная математическая задача. Расскажу об этапах ее реализации. Читать полностью »

Исторически в Почте Mail.Ru использовался механизм от «большого» Поиска (go.mail.ru); однако для задач поиска по почтовым ящикам такой вариант не был оптимальным ввиду большого потребления ресурсов и относительной сложности в обслуживании. Поиском по почте пользуются около 3% владельцев почтовых ящиков; однако, хотя эта цифра кажется относительно небольшой, ящики этих людей обычно достаточно объемны, и поиск им действительно необходим. Поэтому мы приняли решение написать специализированный поисковый демон, который будет заниматься именно поиском по почте. Основными требованиями к нему стали ограничения по потребляемым ресурсам (размер индекса — не более 3% от размера почтового ящика, среднее потребление оперативной памяти — не более 100 Мб, средняя утилизация CPU — не более 3%) и скорости исполнения запросов (среднее время — не более 200 мс). О том, как он был организован, я расскажу ниже.Читать полностью »

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

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

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

Читать полностью »

Целых полтора месяца мы ничего не писали про Рейтинг Mail.Ru, и вы, наверняка, соскучились. Спешим исправиться. С середины декабря мы сделали не так уж и много, но кое-что сделали.

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

Во-вторых, добавили новых данных про рунет в целомЧитать полностью »

Тестирование в Mail.Ru GroupЭта статья написана по мотивам одноименного доклада на Highload++'2012. Предназначена она для руководителей, которые смогут, взглянув на наше тестирование, сравнить его с тестированием в своем проекте, для программистов и системных администраторов, которым представится возможность посмотреть на тестирование как на очень интересную работу, и, конечно, для тестировщиков.

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

Этим постом мы продолжаем серию статей на тему разработки веб-интерфейсов для touch-устройств.

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

Сегодня речь пойдет о swipe, в простонародье – листалке. Swipe позволяет перелистывать «страницы» привычным движением пальца. О том, как грамотно реализовать swipe, я расскажу на примере блока новостей на главной странице портала Mail.Ru.

Touch web: Swipe

Читать полностью »

Выпущен новый Mail.Ru Агент для Mac OS XДобрый день, уважаемые читатели!

Сегодня я рад представить вам (от имени всей команды) новую версию Агента для [Mac] OS X! И это не просто релиз багфиксов и мелких улучшений (коих действительно немало), в новой версии есть несколько действительно больших новых фич.

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

Читать полностью »

Итак, Russian AI Cup завершен!

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

Раунд 1: 900 участников из Песочницы, тройка лидеров выглядела так:
1. Геннадий Короткевич — tourist (Гомель, Беларусь)
2. Роман Удовиченко — Romka (Белорусский ГУ, Минск, Беларусь)
3. Николай Вабищевич — Mr.Smile (Москва, Россия)

Раунд 2: 300 + 45 участников(Изначально должно было пройти 300 человек, согласно правилам. Но ввиду большой популярности мы выдали 45 вайлдкардс тем кто следовал сразу за 300), лучшими на этом этапе стали:
1. Александр Миланин — Milanin (Таврический НУ, Симферополь, Украина)
2. Роман Удовиченко — Romka (Белорусский ГУ, Минск, Беларусь)
3. Александр Важев — valex (Челябинск, Россия)

И наконец (барабанная дробь…) в финале чемпионата Russian AI Cup 2012 сразились 50 участников, и мы торжественно объявляем победителей!
Читать полностью »

В начале декабря в Санкт-Петербурге при партнерстве Mail.Ru Group прошел полуфинал чемпионата мира по программированию ACM ICPC. В рамках чемпионата я встречался с участниками и рассказывал о том, как сделать веб-сервис системой реального времени; а сейчас хочу поделиться своим докладом на Хабре.

Говоря о системе реального времени, мы представляем атомную станцию, самолет или нечто подобное, где от скорости реакции информационной системы зависит жизнь людей. Если в системе реального времени команда будет тормозить 10 секунд из-за сборки мусора, последствия могут быть более чем плачевными. Реакция должна быть моментальной, причем за гарантированное время.

При работе веб-сервиса, конечно, жизнь человека не зависит от того, насколько быстро он открыл письмо в почте, но требования к веб-сервису почти такие же. Еще 15 лет назад, когда пользователь кликал на ссылку, он ожидал реакции 10 секунд; для медленного интернета того времени это было нормально. Современный интернет – это широкие каналы, быстрые компьютеры. У пользователей все работает быстро, и они ждут от сервисов того же.

Когда пользователь куда-то кликает, он ожидает моментально получить реакцию на свой клик. Что такое моментально? Для человека комфортной задержкой считается время отклика порядка 200 миллисекунд, хотя на самом деле человеческий глаз различает время около 10 миллисекунд. Веб-сервис должен реагировать на действия пользователя не более чем за 200 миллисекунд — чем меньше, тем лучше.

Итак, современный веб-сервис, по сути, должен быть системой реального времени. Как сделать так, чтобы он отвечал этому требованию, я расскажу на примере Почты Mail.Ru.Читать полностью »

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js