Обновить

Технотекст

Load as a Service: нагрузочное тестирование в inDriver

Время на прочтение5 мин
Охват и читатели3.5K

Всем привет, я Никита Мунтян, QA Load Engineer в inDriver. Пришел в компанию в 2020 году развивать направление нагрузочного тестирования. В первую очередь познакомился с коллегами, выстроил план работы и начал планомерно выстраивать процессы и технические решения.

Тогда передо мной было пустое поле — делай как хочешь и как видишь, возможностей для творческой реализации много. Оставалось понять, что хотят увидеть от нагрузки, и какой подход использовать. Мы решили делать Load as a Service, об этом и расскажу под катом.

Читать далее

Встречи формата 1-on-1: не противостояние, а слаженное взаимодействие

Время на прочтение9 мин
Охват и читатели13K

Хабр, привет. Я Леся, Senior QA Manual в команде Release Management. В статье поделюсь опытом проведения встреч формата 1-on-1 и правилами, которые я регулярно применяю. Расскажу, для чего нужна эта встреча, как вести себя на ней руководителю и сотруднику, а также какие ошибки могут допустить обе стороны. Поехали! 

Читать далее

Почему Li-ion дешевле «свинца»

Время на прочтение9 мин
Охват и читатели12K

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

Читать далее

17 человек в 7 городах: как наша команда научилась эффективно работать в 5 часовых поясах

Время на прочтение6 мин
Охват и читатели7.9K

Привет! Меня зовут Андрей, я продакт-менеджер команды Passenger в inDriver. В этой статье расскажу, как из маленькой якутской команды мы превратились в большой департамент, который работает из разных точек мира. И не просто превратились, а еще и научились эффективно работать и взаимодействовать друг с другом (по крайней мере, нам так кажется). Погнали!

Важное уточнение: все города я буду указывать с часовым поясом в скобках, чтобы вы понимали нашу распределенность :)

Читать далее

Чему не учат разработчиков: советы для начинающих

Время на прочтение22 мин
Охват и читатели34K

Иногда меня спрашивают, как стать разработчиком? Сложно ли это, что для этого нужно, какой язык выбрать? Спрашивают друзья, родственники, знакомые. Далёкие от сферы информационных технологий или забросившие когда-то программирование и подумывающие о возвращении (читай дауншифтеры). Я не нашёл статьи, которую мог бы скидывать в таких случаях, и решил её написать. Здесь должна быть шутка про 14 конкурирующих стандартов, но как солдат не смеётся в цирке, так и программист не улыбается, говоря о конкурирующих стандартах.

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

Читать далее

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Время на прочтение32 мин
Охват и читатели53K

Интро: почему я написал эту статью


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



На своих серверах мы должны генерировать сотни миллионов уникальных страниц в сутки — это сложнее, чем просто отдавать одни и те же ресурсы. Генерация страницы не должна быть слишком требовательной к памяти сервера.


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


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

Обзор российской системы управления тестированием Test IT

Время на прочтение9 мин
Охват и читатели28K

Всем привет! На связи Макеева Анастасия. Я лидирую автоматизацию тестирования проекта витрин в Утконос Онлайн. 
Ввиду сложившейся ситуации система управления тестированием, которую мы используем, вот-вот с нами попрощается: действие лицензии скоро закончится.
Недавно нашей команде выпала возможность попробовать систему управления тестированием Test IT.

Читать далее

Создание расширения браузера Google Chrome для извлечения всех изображений web-страницы. Часть 1

Время на прочтение15 мин
Охват и читатели155K

Расширения браузера это web-приложения, которые устанавливаются в web-браузер чтобы расширить его возможности. Обычно для того чтобы воспользоваться расширением, пользователю нужно найти его в Chrome Web Store и установить.

В этой статье я покажу как создать расширение для браузера Google Chrome с нуля. Это расширение будет использовать API браузера для того чтобы получить доступ к содержимому web-страницы любой открытой вкладки. С помощью этих API можно не только читать информацию с открытых web-сайтов, но и взаимодействовать с этими страницами, например, переходить по ссылкам или нажимать на кнопки. Таким образом расширения браузера могут использоваться для широкого круга задач автоматизации на стороне клиента, таких как web-scrape или даже автоматизированное тестирование фронтенда.

Мы создадим расширение, которое называется Image Grabber, которое будет содержать интерфейс для подключения к web-странице и для извлечения из нее информации о всех изображениях. Далее, при нажатии на кнопку "GRAB NOW" список абсолютных URL этих изображений будет скопирован в буфер обмена. В этом процессе вы познакомитесь с фундаментальными строительными блоками, которые в дальнейшем можно будет использовать для создания других расширений.

Расширения, создаваемые таким образом для браузера Chrome совместимы с другими браузерами, основанными на движке Chromium и могут быть установлены, например, в Yandex-браузер или Opera.

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

Читать далее

Как мы автоматизировали тестирование производительности для Warface

Время на прочтение7 мин
Охват и читатели3.4K

Всем привет, меня зовут Алексей Лесовой, я работаю программистом в студии Allods Team. В этой статье я расскажу, как мы с командой искали способ автоматически измерить производительность в Warface, как вырабатывали сценарий и метрики, с какими трудностями столкнулись и к каким результатам пришли.

Читать далее

Вычислительная социальная наука, что это и почему это важно

Время на прочтение6 мин
Охват и читатели4.2K

Цифровизация гуманитарных наук затрагивает всё большие области познания, в том числе и социологические науки, в связи с этим, появляются и развиваются новые направления исследований, получившие название вычислительные социальные науки (computational social science).

Читать далее

Как программисты дурят бизнес?

Время на прочтение15 мин
Охват и читатели53K

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

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

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

Ну, задай огонька!

Миллион записей для змеи

Время на прочтение14 мин
Охват и читатели8.9K

Загрузить миллион записей в питон за секунду?
Нет. Получилось еще быстрее!

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

Читать далее

Колхоз. Большая история фермы устройств Яндекса

Время на прочтение20 мин
Охват и читатели45K
Все новые сервисы Яндекса, а также апдейты к существующим приложениям и сайтам нужно тестировать: на айфонах, андроидах, десктопах, умных колонках, телевизорах. Раньше часть тестировщиков работали на личных телефонах и компьютерах, а часть — использовали для тестов корпоративные девайсы. Процесс не был гибким и с трудом масштабировался. Поэтому мы сделали свою клауд-ферму устройств. Сначала ей пользовались только отдельные команды тестирования, но со временем ферма стала особенно популярна и среди разработчиков. В итоге мы собрали почти 800 разных девайсов, которые теперь доступны 24/7.



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

Аналитика рынка профессии в три клика

Время на прочтение8 мин
Охват и читатели8.2K

Привет, сообщество!

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

В то же время, как хобби, я юзал аналитический инструмент Power BI - красивые графики, диаграммы и тд. А главный сервис с вакансиями в РФ, ну вы знаете. Поразмыслив, я почувствовал, что добавив одно к другому может получится интересная история.

Итак, мне нужны данные по рынку. Если воспользоваться поиском на сайте HHru, в выдаче можно увидеть кучу вакансий, но когда их сотни, для человека анализ не представляется возможным. Нахожу в документации по API HHru, что данные по вакансиям бесплатны и открыты. То есть можно получить те же результаты, что и поиском, только в формате json, что в конечном счете съедобно для Power BI. Поехали.

Читать далее

Расстояние Левенштейна для чайников

Время на прочтение4 мин
Охват и читатели141K

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

Читать далее

PProto: бинарный rpc-протокол для Qt framework (часть 1)

Время на прочтение20 мин
Охват и читатели3.6K

Думаю, не сильно ошибусь, если скажу, что каждый разработчик программного обеспечения рано или поздно сталкивается с задачей взаимодействия приложений расположенных на удаленных узлах локальной или глобальной сети. В разных проектах мне довелось поработать с DCOM, SOAP, самописным (не моим) rpc-протоколом, использующим связку json+boost.asio. Проблематика коммуникации приложений и процессов мне всегда была интересна. Пытаясь разобраться, как устроены различные механизмы взаимодействия, ставя эксперименты по сериализации данных, со временем, я пришел к решению, о котором хочу рассказать.

Читать далее

Как составить объявление о найме сотрудника в Телеграме

Время на прочтение11 мин
Охват и читатели16K

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

В каком случае зайдёт статья:

• Вы не очень шарите в сфере HR и хотите это исправить.
• Не понимаете, как пользоваться Телеграмом, а надо.
• Не знаете, как составить текст вакансии и что в нём должно быть.

Читать далее

Люди и интерфейсы. Рассказ незрячего тестировщика о том, как сервисы Яндекса становятся доступнее

Время на прочтение17 мин
Охват и читатели8.4K


Привет, меня зовут Анатолий Попко. Последние 15 лет (или около того) я работаю над тем, чтобы технологии становились доступнее для пользователей с различными ограничениями. Участвовал и продолжаю участвовать в работе разных групп и организаций, которые объясняют разработчикам технологий реальные потребности людей, пишут гайды, стандарты и так далее.


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

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

Самая большая BERT-подобная модель на русском, которая поместится на ваш компьютер

Время на прочтение7 мин
Охват и читатели24K
Привет, это снова Максим Рябинин, исследователь в Yandex Research. В прошлом году я рассказывал на Хабре о том, как вместе с Hugging Face, Университетом Торонто и волонтёрами мы обучили state-of-the-art модель для бенгальского языка и написали об этом статью на конференцию NeurIPS. Теперь хотим поделиться новым результатом: оказывается, технологии для обучения на нестабильном железе находят приложение и внутри привычных всем кластеров.

Используя вычислительную платформу Яндекса, мы обучили RuLeanALBERT — нейросеть, показывающую сравнимые с другими открытыми моделями и где-то даже близкие к state-of-the-art результаты на бенчмарках по пониманию русского языка — Russian SuperGLUE и RuCoLA. Наша модель хотя и имеет миллиарды параметров, но вполне способна вместиться в одну домашнюю GPU: вы можете использовать её в своих проектах для классификации предложений, представления текстов и других языковых задач, не требующих генерации. В статье можно прочитать о подробностях обучения, которые мы реализовали в открытом коде, а чекпоинт теперь тоже доступен всем желающим.


Примерно так выглядит процесс обучения на множестве независимых серверов
Читать дальше →

Почему GPU обманывают о своей нагрузке и как с этим бороться

Время на прочтение10 мин
Охват и читатели22K
В предыдущем посте я рассказывал о том, как мы строили свои суперкомпьютеры. В этом — поделюсь опытом, который мы накопили, эксплуатируя наши кластеры. Этот опыт будет полезен не только тем, кто обучает огромные ML-модели. На грабли, о которых пойдёт речь, легко наступить, даже если вы специалист с парой GPU.



Почему в распределённом обучении нельзя доверять утилизации GPU? Почему переход в эру распределённого обучения — фундаментальный сдвиг парадигмы мышления, к которому должен быть готов каждый ML-разработчик? Ещё больше «Почему» и ответов на них — под катом.
Читать дальше →