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

С++23 — feature freeze близко

Блог компании Яндекс Программирование *C++ *IT-стандарты *
Прошло четыре месяца с прошлой онлайн-встречи ISO-комитета, а значит, настало время собраться опять.



В этот раз в черновик нового стандарта C++23 добавили весьма полезные и вкусные новинки:

  • operator[](int, int, int)
  • монадические интерфейсы для std::optional
  • std::move_only_function
  • std::basic_string::resize_and_overwrite
  • больше гетерогенных перегрузок для ассоциативных контейнеров
  • std::views::zip и zip_transform, adjacent, adjacent_transform

Подробности об этих и других (даже более интересных!) вещах, а также о том, что за диаграмма стоит в шапке, ждут вас под катом.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры 5K
Комментарии 77

Путь, который занял 100* лет: встречаем CatBoost 1.0.0

Блог компании Яндекс Open source *R *Машинное обучение *Распределённые системы *


Всем привет. Меня зовут Станислав Кириллов, я работаю в команде, которая отвечает за развитие библиотеки машинного обучения CatBoost. Мы впервые поделились ей с сообществом четыре года назад — хотя мы привыкли строить бинарные деревья, поэтому и отсчёт лет предпочитаем вести так же. Это шутка, конечно, но «столетие» — хороший повод для выпуска первой «production ready» версии библиотеки с символичным номером 1.0.0.

Сегодня я кратко отвечу, почему мы считаем выпуск версии 1.0.0 важной вехой, и подсвечу главные изменения (и в новой версии, и в целом за год). А уже завтра выступлю с рассказом на встрече, которая будет целиком и полностью посвящена практике применения CatBoost и противостоянию нейросетей и градиентного бустинга. Если эти слова для вас что-то значат, то добро пожаловать под кат.

Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Просмотры 14K
Комментарии 7

Как запустить 100+ компиляторов и выстоять. Опыт Яндекс.Контеста

Блог компании Яндекс Спортивное программирование *Занимательные задачки Компиляторы *DevOps *
Привет, это снова Павел Тыквин, разработчик Яндекс.Контеста. Контест больше всего известен как площадка для соревнований по программированию: прямо сейчас идёт квалификационный этап чемпионата Yandex Cup. Я уже писал на Хабре о том, как мы решаем одну из стоящих перед нами проблем: выравниваем время исполнения кода. Ну а в этой статье я приоткрою детали процесса проверки, расскажу, через какие этапы проходит код участников и какими методами мы оптимизируем этот процесс, а также — как мы добавили возможность решать задачи на том языке, с которым участник уже знаком (вне зависимости от способов тестирования внутри платформы).

Как происходит проверка решения


Возьмём для примера простейшую задачу: вам заданы два целых числа a и b, выведите a+b.

Допустим, решение будет таким:

source.cpp:
#include <bits/stdc++.h>

using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
}

Как можно проверить это решение вручную без участия дополнительных сервисов и библиотек?
Например, так
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 3.5K
Комментарии 6

Техподдержка без бюрократии: автоматизации под капотом ServiceDesk Яндекса

Блог компании Яндекс CRM-системы *Service Desk *Офисы IT-компаний IT-компании
Привет! Меня зовут Арвидас Гафиулин, я руководитель отдела эксплуатации и развития ИТ-инфраструктуры в Яндексе. Важнейшее направление работы отдела — наша внутренняя служба поддержки, ServiceDesk. Именно команда SD отвечает за то, чтобы у сотрудников компании была возможность работать из офиса или на удалёнке со всеми необходимыми доступами, оборудованием и комфортом. В среднем служба получает десять тысяч запросов каждую неделю и постоянно работает над тем, чтобы решать их качественнее и быстрее, а также предотвращать новые инциденты, устраняя корни проблем.

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


Welcome-зона службы ИТ-поддержки в одном из офисов
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 3.9K
Комментарии 10

YARL: как Яндекс построил распределённый Rate Limiter с нулевым влиянием на время ответа сервисов

Блог компании Яндекс Высокая производительность *Проектирование и рефакторинг *Серверная оптимизация *Серверное администрирование *

Yandex Rate Limiter (далее просто YARL) — это сервис лимитирования нагрузки для распределённых сервисов. Его особенность в том, что он способен работать с миллионами квот, имея при этом очень низкие накладные расходы на проверку квоты. Если совсем кратко, это система распределённых Leaky Bucket'ов, с помощью которых можно ограничивать разные величины, связанные со временем: скорость передачи данных по сети, запросы в секунду и т. п.



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

Читать дальше →
Всего голосов 73: ↑72 и ↓1 +71
Просмотры 9.1K
Комментарии 22

Говорит и показывает Yandex Scale 2021: текстовая трансляция и видео

Блог компании Яндекс Информационная безопасность *IT-инфраструктура *Машинное обучение *Искусственный интеллект

Сегодня смотрим и читаем Yandex Scale 2021 — онлайн-конференцию про облачные технологии: инфраструктурные и платформенные, нативные и основанные на машинном обучении. И, конечно, про безопасность. Каждому из этих сегментов посвящён свой трек. О том, как развивается платформа и как мы надстраиваем новые блоки над базовой архитектурой, можно будет узнать из главного доклада в самом начале конференции. А дальше вас ждёт более 30 технических выступлений от наших экспертов, партнёров и клиентов.

Мы, levashove и Loxmatiymamont, в ближайшие семь часов будем вести для вас текстовую трансляцию, делиться впечатлениями и комментировать самые интересные новости.


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

Асинхронность в С++20. Доклад в Яндексе

Блог компании Яндекс Программирование *Совершенный код *C++ *Компиляторы *
Привет, это Григорий Демченко из WhatsApp. Мой доклад посвящён использованию сопрограмм в C++20. Я не стал говорить про низкоуровневые примитивы и то, как компилятор поддерживает сопрограммы и преобразовывает соответствующий код. Вместо этого акцент сделан на практическом применении сопрограмм для решения конкретных задач высокопроизводительных масштабируемых систем. Это именно то, ради чего создавались сопрограммы в новом стандарте, и то, с чем разработчик будет иметь дело в процессе проектирования и программирования. Я постарался рассмотреть конкретные примеры и проблемы, с которыми можно столкнуться при использовании полностью асинхронного подхода.

— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 6.1K
Комментарии 6

Зачем С++ в Такси? Доклад Яндекса

Блог компании Яндекс Высокая производительность *Анализ и проектирование систем *C++ *Проектирование и рефакторинг *
Бэкенд первой версии Яндекс.Такси, которая вышла в 2011 году, был написан на Python. Мы довольно долго не меняли основной язык, но постепенно пришли к идее о необходимости С++ в стеке технологий. Перед вами доклад о том, что мы переписали в первую очередь и почему, а также о трюках С++, которые помогают нам справляться с ростом.

— Добрый день. Меня зовут Александр Голубев, и сегодня я вам расскажу, зачем C++ появился в Такси.
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 9.4K
Комментарии 18

Ботнет Mēris: расследуем крупнейшую DDoS-атаку в истории интернета

Блог компании Яндекс Блог компании Qrator Labs Высокая производительность *Информационная безопасность *
image

На днях в СМИ появилась информация о DDoS-атаке на Яндекс. Это правда, но не вся. Нашим специалистам действительно удалось отразить рекордную атаку более чем в 20 млн RPS — это самая крупная атака из известных за всю историю интернета. Но это лишь одна из множества атак, направленных не только на Яндекс, но и на многие другие компании в мире. Атаки продолжаются уже несколько недель, их масштабы беспрецедентны, а их источник – новый ботнет, о котором пока мало что известно.

Сегодня вместе с коллегами из Qrator Labs мы хотим поделиться текущими результатами совместного расследования деятельности нового ботнета Mēris. Расследование еще продолжается, но мы считаем важным поделиться уже собранной информацией со всей индустрией.

Читать дальше →
Всего голосов 181: ↑178 и ↓3 +175
Просмотры 75K
Комментарии 145

Как Яндекс помогает преодолеть языковой барьер: нейросетевой перевод видео, картинок и текста

Блог компании Яндекс Браузеры Софт Искусственный интеллект IT-компании


Недавно мы впервые показали прототип переводчика видео в Яндекс.Браузере. Прототип работал с ограниченным числом роликов, но даже в таком виде вызвал интерес у пользователей. Теперь мы переходим к следующему ключевому этапу: в новых версиях Браузера и приложения Яндекс перевод доступен для всех англоязычных роликов на YouTube, Vimeo, Facebook и других популярных платформах.

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

Десятью годами ранее


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

Переведётся всё!
Всего голосов 106: ↑101 и ↓5 +96
Просмотры 39K
Комментарии 163

Многопоточность и Kotlin в Яндекс.Картах: как не допустить падения новых фич на iOS

Блог компании Яндекс Совершенный код *Разработка под iOS *Разработка мобильных приложений *Kotlin *


Привет! Меня зовут Женя Васильев, я делаю Яндекс.Карты под Android. А с появлением у нас Kotlin Multiplatform — так уж получилось, ещё и под iOS.

Kotlin Multiplatform позволяет писать код, который будет одинаково работать на iOS и Android. По крайней мере, должен одинаково работать. И в случае с простыми фичами правда работает. Но если вы, как и я, впервые реализовываете в мультиплатформе сложную фичу с многопоточностью, на iOS вас будут ждать креши в рантайме и утечки.

В статье я расскажу и покажу на примерах, с какими проблемами я столкнулся при написании многопоточного кода на Kotlin Multiplatform, как эти проблемы решать, как лучше организовывать потоки данных в многопоточной среде и что ещё нужно делать, чтобы написанное на Kotlin не падало на iOS. Увы, писать код «как обычно» не получится.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 6.1K
Комментарии 9

Использование STL для обработки сигналов в реальном времени. Доклад в Яндексе

Блог компании Яндекс Высокая производительность *C++ *Звук
Компьютерные игры, обработка аудиосигналов в режиме реального времени и другие подобные приложения низкой задержки требуют, чтобы код был не только корректным. Он также должен исчислять требуемый результат надёжно за детерминированный срок выполнения. В этом докладе head of technology в компании Cradle Тимур Думлер timuraudio рассмотрел, в какой степени стоит использовать стандартную библиотеку С++ для создания приложений с подобными «real-time» ограничениями. Какие инструменты из стандартной библиотеки можно применять с уверенностью, что они не будут блокировать поток, ждать освобождения мьютекса, не будут выделять или освобождать память и совершать другие действия с недетерминированной задержкой? Каких средств из набора стандартной библиотеки следует избегать и почему? По пути Тимур обсудил малоизвестные и неожиданные аспекты этих привычных инструментов.

— Всем привет, меня зовут Тимур Думлер. Хочу сказать, что я обычно делаю доклады на английском языке. Это всего второй раз в жизни, когда я докладываю на русском, мне это немножко непривычно. Спасибо большое, что подключились, сегодня мы поговорим про использование стандартной библиотеки C++ для обработки сигналов в real-time.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 3.8K
Комментарии 2

DeDLOC: обучаем большие нейросети всем миром

Блог компании Яндекс Open source *Машинное обучение *Распределённые системы *Искусственный интеллект


Как показывает опыт последних лет, самые интересные результаты в deep learning получаются при использовании больших нейросетей, обученных на массивах неразмеченных данных. Правда, для создания этих моделей нужен суперкомпьютер с десятками или сотнями мощных видеокарт, а также быстрым соединением между серверами. Но что делать, если таких ресурсов нет, а в открытом доступе хорошей модели под вашу задачу не нашлось?

Сегодня я расскажу про технологию, которая позволяет учить нейросети, объединяя через интернет вычислительные мощности энтузиастов из любой точки мира. В её основе лежит совместная научная работа Yandex Research, Hugging Face, студентов ШАД, ВШЭ и МФТИ, а также профессора Университета Торонто. Технология уже получила боевое крещение в ходе реального эксперимента, подробно описанного ниже. В конце статьи вы узнаете, как поставить такой эксперимент самостоятельно — модель и код доступны всем желающим.

Претрейн для всех, и пусть никто не уйдёт обиженным


За последние несколько лет во многих областях deep learning (например, в обработке естественного языка) стала популярной идея self-supervised learning. Оказалось, что для получения полезных в целевой задаче представлений не нужна большая размеченная выборка. Достаточно обучить модель на какой-то простой сигнал, построенный из неразмеченных данных, которых чаще всего в достатке. В частности, известные многим архитектуры BERT, GPT и языковая модель YaLM обучаются именно так.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 7.8K
Комментарии 4

Как можно оптимизировать dot-product и не только. Доклад Яндекса

Блог компании Яндекс Высокая производительность *Совершенный код *C++ *Серверная оптимизация *
Разработчик инфраструктуры качества поиска Яндекса Ильнур Хузиев ilnurKh взял простую задачу — скалярное произведение двух векторов — и попробовал выжать все соки производительности кода. Из доклада вы узнаете, как использовать возможности процессора, настройки компилятора (и даже попробовать превзойти его), какой была бы правильная постановка задачи, как выбирать приоритеты и архитектуру. Да, вопрос выбора абстракций может встать даже на примере настолько простой задачи.

— Сегодня мы рассмотрим достаточно простую функцию — скалярное произведение двух векторов, и попробуем провести различные оптимизации. Надеюсь, что приёмы, которые мы рассмотрим, будут применены не только в этой задаче, но и в других.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 2.1K
Комментарии 2

C++ zero-cost abstractions на примере хеш-таблиц в ClickHouse. Доклад Яндекса

Блог компании Яндекс Высокая производительность *Open source *C++ *Администрирование баз данных *
Хеш-таблицы — это королевы структур данных. Нигде не сломано так много копий, как на оптимизации хеш-таблиц. В докладе я рассказал ещё об одной хеш-таблице, которая используется в ClickHouse. Вы увидите, что zero-cost abstractions в современном С++ оправдывают себя и как с помощью небольших трюков получить разнообразные структуры данных из общей кодовой базы. На основе общих строительных блоков можно построить быстроочищаемую хеш-таблицу, несколько видов LRU-кешей, lookup-таблицы без хешей, хеш-таблицы для строк и т. п. Я показал, как получить максимальную производительность на конкретных сценариях и не ошибиться при её тестировании. В моём докладе — самая мякотка низкоуровневых оптимизаций. В общем, то, что мы любим.

— Для начала мы обсудим, зачем нужны хеш-таблицы, где их можно использовать в базах данных и как сделать их оптимальными. Затем посмотрим бенчмарки различных хеш-таблиц в интернете и разбёремся, как делать их правильно. В конце посмотрим на C++-обертку над идеальной хеш-таблицей в ClickHouse.
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 6.3K
Комментарии 10

V8 в бэкенде С++: от одного JS-скрипта до фреймворка онлайн-вычислений

Блог компании Яндекс Высокая производительность *JavaScript *Анализ и проектирование систем *Проектирование и рефакторинг *
В этой статье я расскажу о долгом путешествии, в котором простая идея выноса в JavaScript часто меняющихся фрагментов алгоритма постепенно выросла в универсальный фреймворк, позволяющий быстро создавать микросервисы и так же быстро их развивать. Сейчас он служит основой для множества микросервисов в Яндекс Go. Тут не будет много специфики Go. Вместо этого будет много разработки и решений технических задач (а не продуктовых). Ещё я, конечно, расскажу про возникшие в процессе трудности: если вам, например, интересно, как V8 уживается с корутинами или как мы оптимизировали работу с ним для производительности, то добро пожаловать под кат.


Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 5K
Комментарии 7

Развитие инфраструктуры Погоды. Доклад Яндекса

Блог компании Яндекс IT-инфраструктура *API *Геоинформационные сервисы *
Что делать, если у вас завелись микросервисы, API стало слишком сложно пользоваться и на фронте все чаще мелькает undefined is not a function? На примере Яндекс.Погоды я показал, как мы эволюционировали из REST в GraphQL и почему это сделало жизнь разработчиков фронтенда и приложений мягкой и шелковистой.

— Меня зовут Всеволод Струкчинский, я ведущий разработчик Яндекс.Погоды. Доклад будет о том, как мы проектируем свой API, чтобы им было удобно пользоваться и мы от него не страдали.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 4K
Комментарии 4

Тернистая история Лисп-машин: первый бум AI, война Столлмана и удивительный интерфейс

Блог компании Яндекс Lisp *Компьютерное железо История IT Старое железо
Привет! Меня зовут Павел Анохин, я сооснователь и один из кураторов музея Яндекса. Хочу поделиться историей, связанной с нашим экспонатом — редкой платой с Лисп-процессором Symbolics. История эта уходит корнями в далёкое прошлое компьютерной эры — 70-е, времена огромных ЭВМ и первого бума интереса к искусственному интеллекту, продолжается в 80-е, когда Ричард Столлман воевал с компанией Symbolics за право открытого доступа к софту, и заканчивается в 90-х, когда ниша для применения Лисп-машин стала совсем узкой, а небольшие производители компьютеров пали под натиском крупных корпораций. Надеюсь, вам будет интересно узнать обо всём этом больше, а также посмотреть, как работает главный интерфейс Лисп-машины — Listener. Специально для статьи я записал видео с примерами создания несложных программ.


Лисп-плата из музея Яндекса
Читать дальше →
Всего голосов 57: ↑57 и ↓0 +57
Просмотры 12K
Комментарии 39

Приёмы ускорения кода на JS и других языках: подборка от разработчика поиска Яндекса

Блог компании Яндекс Высокая производительность *Разработка веб-сайтов *JavaScript *Программирование *
Привет! Меня зовут Виктор Хомяков, в Яндексе я работаю над скоростью страниц поиска. Однажды мне в голову пришла идея обобщить свой опыт и систематизировать приёмы ускорения работы кода на JavaScript. То, что получилось в итоге, собрано в этом материале.

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


Читать дальше →
Всего голосов 80: ↑80 и ↓0 +80
Просмотры 39K
Комментарии 51

Неправильный путь в backend driven UI. Доклад Яндекса

Блог компании Яндекс Разработка под iOS *Разработка мобильных приложений *Интерфейсы *Разработка под Android *
Архитектура современных приложений часто позволяет передавать логику между клиентом и бэкендом. Главное — не зайти в этих экспериментах слишком далеко. Разработчик iOS-приложения Авто.ру Сергей Сергеев объяснил, как его команда пришла к backend driven UI не самым легким способом.

— Всем привет. Я iOS-разработчик, но история будет кроссплатформенная.
Читать дальше →
Всего голосов 7: ↑4 и ↓3 +1
Просмотры 2.5K
Комментарии 3

Информация

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