Рубрика «Блог компании Яндекс» - 7

Привет. Меня зовут Белла Гурина, я работаю в команде Яндекс.Заправок. На днях мы обновили наше приложение, чтобы упростить оплату топлива для водителей. Процесс и раньше не был сложным и особо не отличался от оплаты в других приложениях Яндекса. Но некоторые водители всё равно в нём путались. Мы провели исследование и эксперименты, чтобы выяснить причины. В итоге поняли, как сделать удобнее.

Новая версия Яндекс.Заправок: с учётом (неожиданного) опыта водителей - 1

Немного о нас, чтобы вы понимали, с чем имеете дело. Яндекс.Заправки — это относительно молодой сервис, мы запустили его в конце 2018 года. Тогда подобных сервисов мы не встречали, поэтому во многом приходилось набивать шишки.

Два года всё бурно росло. Мы подключали топливные сети, заходили в новые регионы и добавляли услуги. В итоге сейчас в сервисе более 7000 АЗС, расположенных по всей России. Но во время интенсивной работы над развитием Заправок стали замечать, что часть водителей срезается перед оплатой, когда номер колонки и тип топлива уже введены. Это показалось странным, и мы начали разбираться. Итогом стало обновление интерфейса приложения.

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

Привет! Хочу поделиться своими мыслями по, казалось бы, простой теме — типизации. В частности, поговорить о тайпчекинге в JavaScript.

Часто люди воспринимают типизацию как эдакую серебряную пулю, которая защищает от всех проблем. Но это не так, часто ожидания от типизации неоправданны, а простота таких инструментов, как TypeScript, обманчива и слишком переоценена.

Это не типичная статья из серии «Изучаем TypeScript», а, как мне кажется, фундаментальная история. Мы начнем с основ, поговорим о данных, о способе их хранения, а затем перейдем к типизации и посмотрим, как она влияет на работу программы.

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

Как создать виджет для iOS 14 (и не удалить его у пользователей при обновлении) - 1

Одно из нововведений в iOS 14 — виджеты. Мы стали готовиться к этому событию задолго до официального релиза, чтобы они появились у пользователей приложения Яндекс уже на старте. В этом посте я расскажу об опыте разработки виджетов в условиях нестабильного бета-окружения, неполной документации и отсутствия готовых решений для возникающих проблем.

Помимо обзорной информации, под катом — истории о том, почему нельзя просто взять и добавить настройки в виджет (спойлер: можно случайно удалить виджет установившим его пользователям), и как даже новейшие Swift-only API иногда страдают от наследия Objective-C. Материал будет полезен как тем, кто привык разбираться во всём новом, находя готовые гайды в интернете, так и тем, кто предпочитает официальную документацию.

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

ARM и программирование без блокировок - 1

Выпуск ARM-процессора Apple M1 вдохновил меня на то, чтобы написать в Твиттер про опасности программирования без блокировок (lock-free). Этот твит вызвал бурную дискуссию. Обсуждение прошло довольно неплохо, учитывая то, что попытки втиснуть в рамки Твиттера обсуждениие такой сложной темы, как модели памяти центрального процессора, — в принципе бессмысленны. Но у меня осталось желание немного раскрыть тему.

Этот пост задуман не только как обычная вводная статья про опасности программирования без блокировок (о которых я в последний раз писал около 15 лет назад), но и как объяснение, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Я также хочу объяснить, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
Читать полностью »

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

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

Как я собрал «умный» органайзер для электронных компонентов - 1

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

Сегодня мы приняли решение отключить расширения SaveFrom.net, Frigate Light, Frigate CDN и некоторые другие, установленные у пользователей Яндекс.Браузера. Совокупная аудитория этих инструментов превышает 8 млн человек.

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

Яндекс отключил расширения с аудиторией в 8 млн пользователей. Объясняем, почему мы пошли на такой шаг - 1

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

С++23: международный стандарт на удалёнке - 1

C++20 прошёл все бюрократические инстанции и теперь официально готов! Международный комитет переехал в онлайн, и теперь мы вовсю работаем над C++23. Под катом вас ждут:

  • std::stacktrace,
  • z и uz,
  • 61 с половиной багфикс в ядре языка,
  • string::contains,
  • Executors & Networking,
  • и прочие новости.

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

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

Прошлогодний Retro Games Battle удался: до финала дошло 19 новых игр! Это впечатлило нас и, хочется верить, воодушевило сообщество, поэтому мы решили повторить конкурс и в этом году. О старте объявляли летом, приём заявок уже окончен. Трёх победителей вот-вот определит жюри, в которое входят игровые журналисты, геймдеволоперы и пионеры творчества на ретрокомпьютерах (в том числе из Ocean Software — компании-разработчика множества легендарных игр прошлого). Но, как и в прошлый раз, мы хотим вручить приз зрительских симпатий тому, чью игру выберет не жюри, а пользователи, для которых игры и создаются. То есть вы.

Яндекс вновь запустил голосование за ретроигры. Финалисты Retro Games Battle 2020 - 1

Под катом вас ждёт список финалистов этого года: вы сможете посмотреть запись геймплея и даже сыграть вживую с помощью эмулятора. За игры можно проголосовать на сайте конкурса. Голоса принимаются до 12:00 7 декабря.
Читать полностью »

Привет. Меня зовут Оля Никитушкина, я работаю в Яндексе уже 12 лет. В начале 2020 года направление моей деятельности кардинально изменилось и оказалось связано с социальным проектом «Помощь рядом». Он зародился в конце марта в ответ на эпидемию коронавируса. Тогда у нас не было ни долгосрочного плана, ни понимания, какое место мы должны занимать в благотворительной сфере. Всё это пришло позже.

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

Что-то всегда идет не по плану. Приходится отвечать на вопросы, «Что сломалось?», «Почему тормозит?» и «Почему мы не увидели этого раньше?». На примере простого приложения Даниил Галиев zefirior из Яндекс.Путешествий показал, как отвечать на эти вопросы и какие инструменты в этом помогут. Настроим логирование, прикрутим трассировку, разложим ошибки, и все это в удобном интерфейсе.

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


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