Новые возможности для Яндекс.Браузера

Какие новые возможности стоит внедрить в Яндекс.Браузер? Развернуто аргументируйте свой ответ.

 

1. Улучшенная возможность работы с аудио и видео

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

1) Проблема: Для управление медиа необходимо перейти во вкладку воспроизводящую её (при том, что она может затеряться среди большого количества других открытых окон и вкладок).

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

2) Проблема: Различные вкладки, воспроизводящие медиа никак между собой не взаимодействуют. Чтобы начать просматривать медиа в одной вкладке при запущенном медиа в другой, пользователю приходится самому выключать медиа в старой вкладке (см. 1) и возвращаться в новую.

Решение: Автоматически прекращать воспроизведение медиа в старой вкладке при начале воспроизведения медиа в новой (с возможностью временно или постоянно отключать эту настройку).

3) Проблема: Отсутствие возможности одновременного просмотра видео и работы в других вкладках.

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

 

2. Управление страницами

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

 

1) Функция отложенного чтения (read later)

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

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

– в Табло должна быть секция с непрочитанными страницами — в этом месте она будет периодически попадаться на глаза пользователям и они будут вспоминать вернуться к ним

– для сохранения вкладок должны быть предусмотрены различные способы (шорткаты, пункты в контекстном меню, etc)

→ Для удобства добавления вкладок в список для чтения необходимо предусмотреть новый шорткат, например, клик колёсиком мыши по кнопке, закрывающей вкладку, или обычный клик по ней с зажатой клавишей Shift должен не только закрывать вкладку, но и сохранять её в список чтения. Аналогично другое сочетание (Alt+клик колёсиком мыши или Alt+Shift+обычный клик) должно перед закрытием вкладки сохранять её в закладки. Аналогичные операции для окна должны применяться для всех её вкладок (с последующей возможностью группировки и одновременного открытия всех вкладок сохранённого окна), а при сохранении закладок должна быть возможность сохранить все вкладки в одну или отдельные папки.

 

2) Управление вкладками

В настоящий момент, чтобы разобраться со скопившимися открытыми вкладками (закрыть ненужные, отправить статьи в read later сервис, сохранить в закладки страницы, которые могут понадобиться позже, перегруппировать вкладки между разными окнами для удобство переключения между ними и т. д.) пользователю нужно совершить множество лишних действий. (Задача для самостоятельного выполнения: попробуйте переместить 3 вкладки из одного окна Яндекс.Браузера в другое.) Для решения этих задач необходимо создать специальную вкладку для управления вкладками (наподобие вкладок с настройками, историей и дополнениями):

– боковая панель слева, в которой отображаются заголовки всех вкладок, разбитые по окнам и/или папки закладок; окна и папки и папки можно сворачивать по отдельности и все одновременно

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

– вкладки можно менять местами и перетаскивать между панелями, окнами и вкладками с помощью drag’n’drop

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

– по открытым вкладкам можно производить поиск (отдельно по заголовкам, адресам и тексту страниц или по всем полям сразу)


3. Интеграция с мобильным приложением

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

– синхронизация истории, логинов и данных форм
– просмотр вкладок, открытых на остальных устройствах
– открытие текущей вкладки десктопного Яндекс.Браузера в мобильной версии с помощью push-notification
– read later сервис с синхронизацией просмотренных страниц и места внутри страницы (см. 2.1)

→ Функция отложенного чтения может стать крайне популярной среди мобильных пользователей, так как значительная их часть живёт в крупных городах и регулярно пользуется метро и электричками (количество загрузок каждого из приложений Яндекс.Метро и Яндекс.Электрички в одном только Google Play превышает 1 млн). Продвижение этой возможности через каналы Яндекса (в том числе через push-notifications в этих и других приложениях) и, возможно, через рекламу в метро и наземном транспорте может стать ключом к популярности мобильного, а в след за ним и десктопного Яндекс.Браузера в крупных городах.


4. Навигация

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

– стрелочки вперёд/назад на клавиатуре
– перемещение мыши вправо/влево, удерживая её правую клавишу зажатой
– двупальцевый листающий жест на трекпаде в Mac OS

 

Исследование больших объёмов информации

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

Поскольку я ещё не сталкивался с проблемой анализа данных такого объёма, этому придётся учиться в процессе решения задачи. По-видимому, объём данных составит порядка 5 ГБ. При этом хранение данных и необходимые вычисления можно будет производить на настольном компьютере — но только в специализированных программах, заточенных под большие объёмы данных (Excel, например, не подойдёт). Если же вычисления будут занимать слишком много времени, мне понадобится окунуться в увлекательный мир распределённых вычислений и освоить Hadoop.

1. Сначала я выведу на экран с помощью консольных команд несколько сотен первых символов, чтобы посмотреть какие разделители используются между различными полями и записями. (Эти команды не загружают файлы в оперативную память целиком и большой размер файла не должен быть проблемой). Затем также с помощью консольных команд, выпишу 200 случайно выбранных записей в отдельный файл в формате CSV и пристально посмотрю на него в Excel’е. Меня будут интересовать форматы записей (время, дата, IP адреса, географические координаты, etc) и диапазоны принимаемых значений (проценты, 5-бальные оценки, логические переменные, дни недели, номер дня в году, часы, секунды/минуты, etc), а также, то, можно ли какие-то из полей выразить через другие (в первую очередь линейно). Обращу внимание, на разные поля, имеющие одинаковый формат, проверю, если ли среди них такие, в которых одно поле всегда больше другого (это может быть временем начала и конца какого-либо процесса). Посмотрю, есть ли какие-нибудь поля, значение которых только возрастают или убывают (записи могут быть упорядочены по времени, номерам транзакций или идентификаторам и это позволит мне найти эти поля и обратить на них внимание).

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

2. Изучу какую-нибудь реализацию парадигмы MapReduce, попутно пробуя новые знания на предложенном файле.

3. Изучу приложение для визуализации статистических данных (возможно среду R)

4. Проверю гипотезы из 1-го пункта на всех данных (или на достаточно крупной выборке, если на это будет уходить слишком много времени). Если в какой-то из них появятся исключения, посмотрю, можно ли немного изменить гипотезу, чтобы ей удовлетворяли все данные (например, дата принимает значение 0, если она не известна).

Найду для всех записей максимальные и минимальные значения, а затем для ускорения процесса буду исследовать только 50 000 случайно выбранных записей.

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

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

Для проверки гипотезы о зависимости двух величин я буду использовать точечные диаграммы и строить для них регрессии. Для «пары десятков полей» получится более 200 диаграмм и управиться с ними будет довольно проблематично, но, если на предыдущих этапах отсеять нерелевантые поля и достаточно будет исследовать, например, 10 полей, то диаграмм будет уже только 55 и их беглый анализ займёт не слишном много времени. Если у меня будет сильное ощущения, что несколько поля должны зависеть друг от друга, но эту зависимость не получится обнаружить на точечных диаграммах, я буду исследовать их с помощью машинного обучения (изучая его в процессе).

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

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

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

Метрики для Яндекс.Браузера

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

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

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

При этом Яндекс интересуют в первую очередь «качественные» пользователи, т. е. активные. Только среди активных пользователей получится продвигать другие продукты комании, именно они будут генерировать основную часть запросов в Яндекс (и просмотров рекламы Яндекс.Директ); именно активные пользователи реагируют на изменения в браузере и рекомендуют его другим людям.

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

Возможное определение: активный пользователь — пользователь, который за последние 7 дней хотя бы 3 дня просматривал больше 10 страниц в день или проводил в Яндекс.Браузере больше 30 минут в день.


Для того, чтобы человек стал активным пользователем Яндекс.Браузера, он сначала должен узнать о его существовании, затем перейти на сайт http://browser.yandex.ru, скачать его, установить, начать пользоваться и, наконец, начать пользоваться достаточно интенсивно, чтобы стать активным пользователем.

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

Первая группа показателей

1.1 Количество уникальных посетителей страницы http://browser.yandex.ru за сутки/месяц
1.2 Количество скачиваний приложения за сутки/месяц
1.3 Количество первых запусков Яндекс.Браузера за сутки/месяц
1.4 Процент уникальных посетителей, скачавших приложение
1.5 Процент пользователей, скачавших приложение, которые запустили его

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

Вторая группа показателей

2.1 Количество активных пользователей
— успешность браузера в целом, лёгкость использования браузера новыми пользователями

2.2 Процент пользователей, которые были активными неделю/месяц назад и остались активными на этой неделе/в этом месяце
— удовлетворённость существующих активных пользователей, способность удерживать их, принятие ими нововведений

2.3 Среднее за последний месяц количество часов в день, которое активные пользователи используют Яндекс.Браузер
— вовлечённость пользователей

Задача со шнуром

На шнуре длиной 1 м случайным образом делают два разреза. С какой вероятностью хотя бы один из получившихся кусков будет длиннее 0,5 м? Почему?

Ответ: 75% 
 

Пусть A и B — концы шнура, а x и y — расстояние в метрах от конца A до двух разрезов. Тогда данный процесс можно представить как выбор случайный образом точки внутри квадрата K={(x,y)|0≤x,y≤1}.

Один из кусков будет больше 0,5 м в трёх случаях:

1) оба разреза сделаны справа от середины шнура
2) оба разреза сделаны слева от середины шнура
3) расстояние между разрезами больше 0,5 м

Им соответствуют 3 непересекающиеся области:

A₁={(x,y)|(x,y)∈K, x,y < 0,5}
A₂={(x,y)|(x,y)∈K, x,y > 0,5}
A₃={(x,y)|(x,y)∈K, |x−y| > 0,5}

shnur.jpg

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

p = (S(A₁)+S(A₂)+S(A₃))/S(K)=(0,25+0,25+0,25)/1=0,75, или 75%