Как стать автором
Обновить
742.1
Яндекс
Как мы делаем Яндекс
Сначала показывать

Поиск Яндекса с инженерной точки зрения. Лекция в Яндексе

Время на прочтение19 мин
Количество просмотров26K
Сегодня мы публикуем ещё один из докладов, прозвучавших на летней встрече об устройстве поиска Яндекса. Выступление руководителя отдела ранжирования Петра Попова получилось в тот день самым доступным для широкой аудитории: минимум формул, максимум общих понятий о поиске. Но интересно было всем, потому что Пётр несколько раз переходил к деталям и в итоге рассказал много такого, о чём Яндекс никогда раньше публично не заявлял.

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


Ну а под катом — лекция Петра Попова и часть слайдов.

Как писать меньше кода для MR, или Зачем миру ещё один язык запросов? История Yandex Query Language

Время на прочтение14 мин
Количество просмотров48K
Исторически во многих уголках Яндекса разрабатывались свои системы хранения и обработки больших объемов данных — с учетом специфики конкретных проектов. При такой разработке в приоритете всегда была эффективность, масштабируемость и надежность, поэтому на удобные интерфейсы для использования подобных систем времени, как правило, не оставалось. Полтора года назад разработку крупных инфраструктурных компонентов выделили из продуктовых команд в отдельное направление. Цели были следующими: начать двигаться быстрее, уменьшить дублирование среди схожих систем и снизить порог входа новых внутренних пользователей.



Очень скоро мы поняли, что тут мог бы здорово помочь общий высокоуровневый язык запросов, который бы предоставлял единообразный доступ к уже имеющимся системам, а также избавлял от необходимости заново реализовывать типовые абстракции на низкоуровневых примитивах, принятых в этих системах. Так началась разработка Yandex Query Language (YQL) — универсального декларативного языка запросов к системам хранения и обработки данных. (Сразу скажу, что мы знаем, что это уже не первая штука в мире, которая называется YQL, но мы решили, что это делу не мешает, и оставили название.)

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

Читать дальше →

Квантовое хеширование. Лекция в Яндексе

Время на прочтение20 мин
Количество просмотров20K
Фарид Мансурович Аблаев — заведующий кафедрой теоретической кибернетики Казанского федерального университета. Приехав в московский офис Яндекса, Фарид Мансурович рассказал об алгоритмах, потенциально пригодных для запуска на квантовых компьютерах. Таких устройств пока очень мало, и они толком не освоены даже самыми передовыми компаниями. Но когда они начнут дешеветь, у специалистов уже будут наработки, позволяющие приступить к их использованию.


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

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

Время на прочтение6 мин
Количество просмотров25K
Яндекс.Деньги продолжают масштабный редизайн сервиса, начатый два года назад — о первых результатах мы подробно рассказывали на Хабре. Обратная связь, полученная за это время от сообщества и постоянных пользователей, подтвердила нашу гипотезу: чтобы сделать сервис удобным для новой аудитории, нужно почаще повторять мантру «я нерепрезентативен» и смотреть на приборы. 

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

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

image

Небольшое историческое отступление: Яндекс.Деньги существуют с 2002 года, и первые десять лет — то есть большую часть жизни — наша аудитория была очень похожа на аудиторию Хабра: опытные интернет-пользователи, которые работают в IT и смежных отраслях. Даже если нужное действие запрятать в четыре клика от главной страницы (так делать, конечно, не надо) — они справятся, потому что пришли в сервис с чёткой целью и сильной мотивацией. 
Читать дальше →

Как применение кодов избыточности в SDS помогает Яндексу дёшево и надёжно хранить данные

Время на прочтение9 мин
Количество просмотров23K

Яндекс, как и любая другая большая интернет-компания, хранит много, а точнее очень много данных. Это и пользовательские данные из разных сервисов, и намайненные сайты, и промежуточные данные для расчёта погоды, и резервные копии баз данных. Стоимость хранения ($/ГБ) — один из важных показателей системы. В этой статье я хочу рассказать вам про один из методов, который позволил нам серьезно удешевить хранилище.




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


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


Читать дальше →

Как посчитать перестановки. Лекция в Яндексе

Время на прочтение22 мин
Количество просмотров28K
Некоторое время назад в московский офис Яндекса приезжал Игорь Пак — ученый с множеством научных работ, выпускник мехмата МГУ и аспирантуры Гарварда. Сейчас Игорь работает в Калифорнийском университете. Его лекция в Яндексе была посвящена различным классам последовательностей и перестановкам. В том числе прямо по ходу лекции он представил выкладки, опровергающие гипотезу Нунана и Зайлбергера — одну из ключевых в области перестановок.



Под катом — подробная текстовая расшифровка и большинство слайдов.

Укрощаем асинхронные процессы в Android с RxJava. Опыт Яндекса

Время на прочтение9 мин
Количество просмотров24K

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


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


Рассказывать обо всём я буду на примере приложения Яндекс.Недвижимость и его
главного экрана с картой.


Скриншот

Для начала посмотрим на экран и разберёмся, что на нём происходит и что нам
предстоит реализовать.


Читать дальше →

YT: зачем Яндексу своя MapReduce-система и как она устроена

Время на прочтение14 мин
Количество просмотров91K
В течение последних шести лет в Яндексе идет работа над системой под кодовым называнием YT (по-русски мы называем её «Ыть»). Это основная платформа для хранения и обработки больших объемов данных — мы уже о ней рассказывали на YaC 2013. С тех пор она продолжала развиваться. Сегодня я расскажу о том, с чего началась разработка YT, что нового в ней появилось и что ещё мы планируем сделать в ближайшее время.



Кстати, 15 октября в офисе Яндекса мы расскажем не только о YT, но и о других наших инфраструктурных технологиях: Media Storage, Yandex Query Language и ClickHouse. На встрече мы раскроем тайну — расскажем, сколько же в Яндексе MapReduce-систем.

Какую задачу мы решаем?


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

Читать дальше →

Безопасность Android-приложений. Лекция в Яндексе

Время на прочтение10 мин
Количество просмотров33K
Разработчик Дмитрий Лукьяненко, чью лекцию мы публикуем сегодня, не только является специалистом Яндекса, но и умеет проверять на прочность решения разработчиков других компаний. Это позволяет учиться на чужих ошибках — не исключая порой своих, конечно. В докладе Дмитрий поделится примерами Android-уязвимостей, в том числе найденных им собственноручно. Каждый пример сопровождается рекомендациями — как нужно и как не нужно писать приложения под Android.



Меня зовут Дмитрий, я работаю в компании Яндекс в минском офисе, занимаюсь разработкой аккаунт-менеджера. Это библиотека, которая отвечает за авторизацию пользователей. Поэтому мы поговорим о безопасности Android-приложений.

Лекция основателя Википедии Джимми Уэйлса в Яндексе

Время на прочтение28 мин
Количество просмотров11K
14 сентября московский офис Яндекса посетил тот, кто раньше часто смотрел на вас со страниц Википедии, он же её основатель — Джимми Уэйлс. Знаменитый Джимбо выступил с лекцией «Свободные знания как основа современного общества». Мы публикуем полный текстовый перевод лекции и диалога со зрителями.


Версия с синхронным переводом на русский

В Москве чудесно. Я приехал, чтобы лично и в онлайне пообщаться с российскими участниками сообщества «Викимедиа», а также со всеми остальными — широкой публикой, технологическим сообществом. Ещё, здесь, конечно, немало людей из Яндекса. Яндекс всегда был очень хорошим другом Википедии. Мы ценим это. Мы здесь в том числе для того, чтобы познакомить вас с лидерами местного сообщества и нашего представительства. Они готовы обсуждать сотрудничество, направления развития, идеи, способы совместной работы. Я хочу поблагодарить Владимира [Медейко] за то, что он помог организовать это мероприятие. Здорово быть здесь.

Вызовы поискового облака. Лекция в Яндексе

Время на прочтение18 мин
Количество просмотров7.5K
Интернет-компании выбирают и тестируют оборудование для дата-центров не только по номинальным спецификациям, поступившим от производителя, но и с учётом реальных продакшен-задач, которые будут выполняться на этом оборудовании. Затем, когда дата-центр уже спроектирован, построен и запущен, проводятся учения — узлы отключают без ведома сервисов и смотрят, насколько они подготовлены к подобной ситуации. Дело в том, что при такой сложной инфраструктуре невозможно добиться полной отказоустойчивости. В каком-то смысле идеальный дата-центр — это тот, который можно отключить без ущерба для сервисов, например для поиска Яндекса.


Руководитель группы экспертизы runtime поиска Олег Фёдоров был в числе докладчиков на большой поисковой встрече Яндекса, которая прошла в начале августа. Он рассказал обо всех основных аспектах проектирования дата-центров под задачи, связанные с обработкой огромных объёмов данных. Под катом — расшифровка и слайды Олега.

От черного списка до машинного обучения. Антифишинг в Яндекс.Браузере

Время на прочтение9 мин
Количество просмотров20K
Злоумышленники, специализирующиеся на воровстве паролей, номеров банковских карт и прочей личной информации, появились еще в прошлом веке и с тех пор их число только растет. Согласно отчету Лаборатории Касперского, от 9% до 13% их пользователей в России сталкиваются с фишингом. Ежегодно в мире фишинг и другие формы кражи личных данных наносят ущерб в $5 млрд, согласно оценкам Microsoft. Это в целом соответствует нашим наблюдениям и объясняет, почему в любом более-менее популярном браузере есть защита от фишинга, основанная на «черных списках». В Яндекс.Браузере она тоже есть. Казалось бы, зачем изобретать что-то еще?



Safe Browsing


Самое очевидное решение для защиты пользователей – это использование готовой базы со списком фишинг-сайтов. Проверяем по «черному списку» посещаемые страницы и предупреждаем, если нашлось совпадение. На этой идее и основана защита с использованием технологии Safe Browsing, которая работает в Яндекс.Браузере с момента его появления.
Читать дальше →

Выявление проблем дорожной сети с помощью Яндекс.Пробок. Лекция в Яндексе

Время на прочтение7 мин
Количество просмотров18K

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



Аналитик Карт Леонид Медников рассказал о примере такого использования на конференции Яндекса «Пути Сообщения 2016». Под катом — расшифровка доклада и большинство слайдов.


Первый мобильный браузер с поддержкой расширений для Chromium. Новая альфа Яндекс.Браузера

Время на прочтение4 мин
Количество просмотров72K
Современные мобильные браузеры, как и их десктопные аналоги, должны позволять пользователям добавлять недостающие возможности с помощью дополнений. Несмотря на отказ команды Chromium от идеи поддержки расширений на Android, наша команда продолжает работать над этой возможностью, и сегодня мы приглашаем сообщество Хабра попробовать первую альфу Яндекс.Браузера, в которую вы уже сможете установить LastPass, Tampermonkey или даже Ghostery.

image

Первые дополнения появились в Internet Explorer еще в 1999 году и за следующее десятилетие практика открытия доступа к API стала обязательной для любого более-менее популярного браузера. Сейчас многие из нас не представляют себе работу за компьютером без возможности добавить в браузер необходимую функцию собственными руками. А вот с Android пока еще все не так. Несмотря на рост производительности современных мобильных устройств, браузерные расширения на Android – скорее исключение, чем правило.

Читать дальше →

Что такое программная инженерия. Лекция в Яндексе

Время на прочтение39 мин
Количество просмотров67K
Кандидат технических наук МИЭМ, заместитель руководителя департамента программной инженерии факультета компьютерных наук НИУ ВШЭ и заместитель завкафедрой системного программирования ИСП РАН Ефим Гринкруг даёт свой ответ на вопрос о том, что такое программная инженерия.

Этому термину уже почти 50 лет — впервые его начали использовать в 1968 году. Дело в том, что именно тогда методы классической инженерии — например разбиение на отдельные компоненты — стали всерьёз применяться в создании софта. Но почему они не применялись раньше, и какой новый смысл приобрело выражение «программная инженерия» в последние десятилетия?



Под катом — подробная расшифровка и слайды.
Читать дальше →

Самое главное о нейронных сетях. Лекция в Яндексе

Время на прочтение30 мин
Количество просмотров190K
Кажется, не проходит и дня, чтобы на Хабре не появлялись посты о нейронных сетях. Они сделали машинное обучение доступным не только большим компаниям, но и любому человеку, который умеет программировать. Несмотря на то, что всем кажется, будто о нейросетях уже всем все известно, мы решили поделиться обзорной лекцией, прочитанной в рамках Малого ШАДа, рассчитанного на старшеклассников с сильной математической подготовкой.

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



Константин klakhman Лахман закончил МИФИ, работал исследователем в отделе нейронаук НИЦ «Курчатовский институт». В Яндексе занимается нейросетевыми технологиями, используемыми в компьютерном зрении.

Под катом — подробная расшифровка со слайдами.
Читать дальше →

Делать ли мобильную версию? 5 распространенных проблем, которые решает адаптивная верстка. Опыт Яндекса

Время на прочтение9 мин
Количество просмотров114K

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


Сайт smashingmagazine.com на различных размерах экранов


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

Читать дальше →

Результаты и разбор задач финала Яндекс.Алгоритма 2016

Время на прочтение15 мин
Количество просмотров28K

29 июля в Минске прошёл финальный раунд чемпионата по программированию Яндекс.Алгоритм. Победителем стал Егор EgorK Куликов — выпускник мехмата МГУ и бывший сотрудник Яндекса. Второе место — у Николы Йокича из Швейцарской высшей технической школы Цюриха. В составе команды школы он был финалистом ACM ICPC. Третье место занял Макото Соэдзима, выпускник Университета Токио. Геннадий Короткевич, победитель двух предыдущих Алгоритмов, занял шестое место.


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


image


В этом году мы получили на четверть больше заявок на участие в Алгоритме, чем год назад, — 4578. Среди участников пока немного девушек — 372. В списке зарегистрировавшихся есть представители 70 стран; больше всего соревнующихся — из России, Индии, Украины, Беларуси, Казахстана, США и Китая. В финале приняли участие 25 человек.


Задачи для Яндекс.Алгоритма составляют сотрудники Яндекса и приглашённые эксперты, среди которых — финалисты и призёры ACM ICPC. По условиям состязания, участники могут использовать разные языки программирования. Статистика Яндекс.Алгоритма показывает, что самый популярный язык — С++; его выбрали более двух тысяч человек. Второе место поделили Python и Java.

Читать дальше →

Распределение ресурсов в больших кластерах высокой производительности. Лекция в Яндексе

Время на прочтение30 мин
Количество просмотров21K
Большинство сложных задач с данными требуют немалого количества ресурсов. Поэтому почти у каждого дата-центра в мире не один, а множество клиентов — даже если все они выступают под общим брендом. Компаниям нужны мощности под самые разные сервисы и цели, да и в процессе достижения какой-нибудь одной из них приходится иметь дело с целым набором подзадач. Как дата-центру справиться с потоком желающих что-нибудь проанализировать или посчитать? Поступающие заказы на вычисления нужно выполнять в некотором порядке, стараясь никого не обделить ресурсами. Эта лекция — об основных методах распределения реальных задач на большом кластере. Способ, о котором рассказал Игнат Колесниченко, применяется для обслуживания почти всех сервисов Яндекса.

Игнат — руководитель одной из групп в нашей службе технологий распределенных вычислений. Окончил мехмат МГУ и Школу анализа данных, в Яндексе с 2009 года.



Под катом — подробная расшифровка лекции и слайды.
Читать дальше →

Распределенное выполнение Python-задач с использованием Apache Mesos. Опыт Яндекса

Время на прочтение5 мин
Количество просмотров20K

Подготовка релиза картографических данных включают в себя запуск массовой обработки данных. Некоторые задачи хорошо ложатся на идеологию Map-Reduce. В этом случае задача инфраструктуры традиционно решается использованием Hadoop или YT


В реальности часть задач таковы, что разбиение их на маленькие подзадачи невозможно, или нецелесообразно (из-за наличия существующего решения и дорогой разработки, например). Для этого мы в Яндекс.Картах разработали и используем свою систему планирования и выполнения взаимосвязанных задач. Одним из элементов такой системы является планировщик, запускающий задачи на кластере с учетом доступных ресурсов.
Workflow Graph


Эта статья о том как мы решили эту задачу с использованием Apache Mesos.

Читать дальше →

Информация

Сайт
www.ya.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия