Как стать автором
Обновить
0
0
Никита Козлов @niakrisn

Пользователь

Отправить сообщение

Как в Яндексе используют PyTest и другие фреймворки для функционального тестирования

Время на прочтение19 мин
Количество просмотров123K
Всем привет! Меня зовут Сергей, и в Яндексе я работаю в команде автоматизации тестирования сервисов монетизации. Перед каждой командой, которая занимается задачами автоматизации тестирования, встает вопрос: «Какой [фреймворк|инструмент] выбрать для написания своих тестов?» В этом посте я хочу помочь вам на него ответить. Если быть конкретнее, речь пойдет об инструментах тестирования на языке Python, но многие из идей и выводов можно распространить на другие языки программирования, поскольку подходы часто не зависят от конкретной технологии.



В Python существует множество инструментов для написания тестов и выбор между ними неочевиден. Я опишу интересные варианты использования PyTest и расскажу о его [плюсах|минусах|неявных возможностях]. В статье вы найдёте развёрнутый пример использования Allure, который служит для создания простых и понятных отчётов автотестов. Также в примерах будет применяться фреймворк для написания матчеров — Hamcrest для Python. Надеюсь, что в итоге, те, кто сейчас в поиске инструментов для тестирования, смогут на основе изложенных примеров быстро внедрить функциональное тестирование в своем окружении. Те же, кто уже использует какой-то инструмент, смогут узнать новые подходы, варианты использования и концепции.
Читать дальше →
Всего голосов 62: ↑60 и ↓2+58
Комментарии10

Охлаждение погружением, серверы «под водой»: Immersion-2 для 3M™ Novec™ обеспечил волшебные результаты, применение на практике в Гонконге

Время на прочтение5 мин
Количество просмотров90K
Охлаждение погружением — иммерсионное охлаждение. В прошлой статье посвященной иммерсионному охлаждению были рассмотрены по сути преимущества размещения серверов в минеральном масле. Я глубоко заблуждался, когда мне казалось, что это наиболее эффективное решение в глобальном плане. Ознакомившись с некоторыми иными разработками я осознал, что эффективен сам базовый принцип — охлаждение погружением, а вот все остальное, как говорят «depends on»…

Cегодня я Вам хочу поведать о сравнительно новой двухфазной системе охлаждения Immersion-2, которая использует все преимущества «сухой воды» 3M Novec для достижения по истине волшебных результатов, превращая недостатки в достоинства!

Что такое 3M Novec повторяться не будем, об этом уже писали в рунете много раз, и даже на Хабре существует прекрасная статья, а вот как это можно применять для охлаждения серверов на практике и почему «сухая вода» оказывается эффективнее минерального масла, жидкостных систем охлаждения электроники в замкнутых контурах, рассмотрим сейчас.

Читать дальше →
Всего голосов 44: ↑34 и ↓10+24
Комментарии51

Почему буфер должен расти экспоненциально

Время на прочтение2 мин
Количество просмотров27K
Сотрудник Mozilla Николас Нетеркот опубликовал заметку с очень чётким объяснением, почему размер буфера памяти для программы нужно увеличивать экспоненциально, а не линейно.

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

Так вот. Представим, что наш изначальный 1-байтный буфер растёт по 1 байту до тех пор, пока не достигнет размера 1 МиБ. Сколько памяти мы задействовали для него кумулятивно?

1 + 2 + 3 + … + 1,048,575 + 1,048,576 = 549,756,338,176 байт

Неслабо, да?
Читать дальше →
Всего голосов 58: ↑46 и ↓12+34
Комментарии50

Quotient filter

Время на прочтение5 мин
Количество просмотров16K
Quotient filter — это вероятностная структура данных, позволяющая проверить принадлежность элемента множеству. Она описана в 2011 г. как замена фильтру Блума. Ответ может быть:
— элемент точно не принадлежит множеству;
— элемент возможно принадлежит множеству.

Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии16

Почему по мере заполнения SSD падает скорость записи в RAID, или зачем нужен TRIM

Время на прочтение7 мин
Количество просмотров120K
Эта проблема наиболее актуальна для аппаратных RAID или firmware RAID (таких как Intel RST RAID 1/10/5/6) с непромышленными SSD.

Особенность SSD


SSD пишут и читают данные страницами, записать можно только на очищенные страницы, а очистить страницы можно только большими блоками. Например, у диска размер страницы 8 КБ, в блоке находится 128 страниц, таким образом, размер блока — 1024 КБ (здесь и далее, если не указано иного, КБ и МБ двоичные).

Например, если изменить 40 КБ в одном файле, то на физическом уровне это будет выглядеть так:


Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии74

Конечный автомат (он же машина состояний) на чистом С

Время на прочтение5 мин
Количество просмотров128K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

Собственно через регулярные выражения я к ним и пришёл.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии50

Адреса памяти: физические, виртуальные, логические, линейные, эффективные, гостевые

Время на прочтение6 мин
Количество просмотров107K
Мне периодически приходится объяснять разным людям некоторые аспекты архитектуры Intel® IA-32, в том числе замысловатость системы адресации данных в памяти, которая, похоже, реализовала почти все когда-то придуманные идеи. Я решил оформить развёрнутый ответ в этой статье. Надеюсь, что он будет полезен ещё кому-нибудь.
При исполнении машинных инструкций считываются и записываются данные, которые могут находиться в нескольких местах: в регистрах самого процессора, в виде констант, закодированных в инструкции, а также в оперативной памяти. Если данные находятся в памяти, то их положение определяется некоторым числом — адресом. По ряду причин, которые, я надеюсь, станут понятными в процессе чтения этой статьи, исходный адрес, закодированный в инструкции, проходит через несколько преобразований.



На рисунке — сегментация и страничное преобразование адреса, как они выглядели 27 лет назад. Иллюстрация из Intel 80386 Programmers's Reference Manual 1986 года. Забавно, что в описании рисунка есть аж две опечатки: «80306 Addressing Machanism». В наше время адрес подвергается более сложным преобразованиям, а иллюстрации больше не делают в псевдографике.
Читать дальше →
Всего голосов 51: ↑49 и ↓2+47
Комментарии11

NASA: найдено 715 новых планет, 4 из них могут быть пригодны для жизни

Время на прочтение2 мин
Количество просмотров120K
27 февраля в NASA сообщили об обнаружении 715 новых планет, которые были недавно найдены в нашем регионе Млечного Пути, что практически удваивает количество известных нам экзопланет. Планеты были обнаружены при помощи космического телескопа Kepler и новой технологии.



Под катом много трафика.
Полетели!
Всего голосов 81: ↑77 и ↓4+73
Комментарии70

Советская операция по спасению мертвой космической станции

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

Источник: Spacefacts.de

Эта история произошла в 1985 году, но в последствии постепенно забылась. Шли годы — многие подробности были искажены, кое-что было выдумано. Даже те, кто первыми рассказал об этих событиях, допускали явные ошибки. Операция «Союза-13» по спасению орбитальной станции «Салют-7» была впечатляющей попыткой проведения ремонта в открытом космосе. Писатель Николай Белаковский собрал все факты воедино и готов впервые за все время предоставить нам полноценный рассказ о тех событиях.
Читать дальше →
Всего голосов 312: ↑305 и ↓7+298
Комментарии116

Как получить и измерить высокоскоростное соединение по TCP

Время на прочтение7 мин
Количество просмотров60K
Надежная передача данных в Интернете осуществляется на базе протокола TCP (Transmission Control Protocol), спецификация к которому была опубликована почти 30 лет назад. Алгоритм TCP (RFC793), позволяет подключенному устройству адаптироваться для работы в сети на скоростях в пределах десятков мегабит в секунду и задержки до 100 секунд. С бурным развитием новых технологий передачи данных, уже через 10 лет после внедрения стало ясно что производительность протокола не будет хватать для более широких каналов.
Читать дальше →
Всего голосов 106: ↑105 и ↓1+104
Комментарии41

Альтернативные аллокаторы памяти

Время на прочтение13 мин
Количество просмотров89K
Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate)
Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься.

Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new


Обязательная вступительная басня

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

Сейчас объясню, почему...
Всего голосов 75: ↑72 и ↓3+69
Комментарии59

Подробный обзор MacBook Pro нового поколения (с Retina дисплеем)

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


Салют, Земляне!
Обнаружил, что на хабре нет поста, который объединит в себе всё, что необходимо знать про эту чудо-ЭВМ. Поэтому я решил основательно подойти к анализу user-experience, железа, производительности и прочих впечатлений. Спустя месяц полноценного и самостоятельного использования готов представить вам…
Первый пост на хабре с осознанным оформлением под Retina экраны
Всего голосов 134: ↑105 и ↓29+76
Комментарии150

Как работает инжектор?

Время на прочтение10 мин
Количество просмотров185K
В заметке пойдет речь о работе «мозгов», управляющих двигателем вашего автомобиля или мотоцикла. Попытаюсь на пальцах и в общем объяснить что же и как происходит.

Чем занимаются те самые «мозги» и для чего они нужны? Электроника — альтернатива другим системам, выполняющим те же функции. Дозированием топлива занимался карбюратор, зажиганием управлял механический или вакуумный корректор угла опережения зажигания. В общем не электроникой единой возможно реализовать все это и достаточно продолжительное время именно так и было. На автомобилях, мотоциклах, бензопилах, бензогенераторах и во многих многих других местах работали и продолжают работать те самые системы, которые призван заменить инжектор.
Зачем же понадобилось что-то менять? Зачем сносить существующие проверенные и весьма надежные системы? Все просто — гонка за экономичностью, экологичностью и мощностью. Точность работы описанных выше систем недостаточна для обеспечения желаемого уровня экологичности и мощности, а сами по себе электронные системы управления двигателем начали появляться достаточно давно.
Читать дальше →
Всего голосов 200: ↑184 и ↓16+168
Комментарии101

Подсоединяем 5 винчестеров через sata мультипликатор одним сата кабелем

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


В этой статье я расскажу немного о sata мультипликаторах CFI-B53PM на базе чипа SiI3726, которые я покупал для большого хоронилища на много террабайт. Как и где их заказать я написал в этой статье(в конце статьи я приложил трекинг посылки). Также расскажу про скорости работы в linux в 6-ом рейде.
Читать дальше →
Всего голосов 47: ↑42 и ↓5+37
Комментарии60

Видео всех лекций с «Курсов информационных технологий» от «Яндекса»

Время на прочтение1 мин
Количество просмотров30K
Для тех, кто не смог посетить Курсы информационных технологий, видеоролики всех лекций выложены в свободный доступ. Это лекции по полтора-два часа на базовые темы: операционные системы; архитектура ЭВМ; устройство GNU/Linux; системы хранения данных; файловые системы; сети и протоколы; виртуализация; безопасность.
Читать дальше →
Всего голосов 116: ↑101 и ↓15+86
Комментарии39

Тестирование с помощью программы IOmeter

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


Программа IOmeter — это популярное средство для тестирования производительности дисковой подсистемы и локальной сети. Тест является «100% синтетикой».

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

Особую благодарность автор хочет выразить владельцу блога aboutnetapp, пост которого о практическом тестировании систем хранения с помощью IOmeter пнула подвинула автора на написание этой статьи.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии18

Протоколы прикладного уровня: Jabber/XMPP часть1

Время на прочтение7 мин
Количество просмотров8.1K
Прочитав статью и испробовав команды, научимся
--Соединяться с Jabber сервером
--Логиниться
--Менять статусы
--Отправлять сообщения
--Отключаться

И все это на чистом XML

В принципе, можно статью назвать «Введение в XMPP» или типа того… Но суть не изменится
Приступим-же!
приступить...
Всего голосов 79: ↑75 и ↓4+71
Комментарии21

ICQ vs XMPP (Jabber)

Время на прочтение1 мин
Количество просмотров980
В связи с текущими событиями предлагаю следующее:
Плохой вариант: скачать официальный клиент
Хороший вариант: зайти на jabber.ru и перейти на нормальный протокол и таким образом избавиться от AOL-зависимости. Свежезарегистрированный адрес, который, как изветсно, намного удобнее, чем какие-то цифирки, можно передать друзьям обычным, дедовским способом: по мобиле, по эл. почте (можно даже рассылку устроить), а можно при встрече.

UPD:
Кстати, если вы пользуетесь gmail, то jabber у нас уже есть. Прочитать про настройку вашего любимого клиента можно тут.
Всем удачи!
Ваш Кэп
Всего голосов 31: ↑17 и ↓14+3
Комментарии18

Виртуальные сети: VXLAN и VMware NSX

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

Созданные почти четверть века назад виртуальные локальные сети VLAN были для своего времени неплохим способом управления узлами сети. Но в условиях массового перехода на облачные технологии и повсеместным внедрением виртуальных машин возможностей традиционных VLAN для современных ЦОД стало явно недостаточно. Причем самыми болезненными вопросами стало ограничение доменов второго уровня на четырех тысячах VLAN при невозможности переноса виртуальных машин через границы L2.

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

И как это делается?
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии28

Обновление tzdata для России (системное и java в Ubuntu/Debian, а также в MySQL)

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

Предисловие


Как многие помнят, в этом году был принят закон, в связи с которым поменялись часовые пояса в России с 26 октября 2014 г. Само собой, сразу после принятия закона я поставил в календарь напоминалку на начало октября «обязательно обновить tzdata». Каково же было моё удивление, когда я не обнаружил апдейтов tzdata в debian и ubuntu. Решил подождать еще немного, наткнулся на открытые баги в дистрибутивах (Ubuntu #1377813, #1371758, Debian #761267). Коллеги усиленно напоминали о необходимости апдейтов, но мейнтейнеры не реагировали. Чтобы не устроить себе аврал к концу месяца, решил собрать пакеты и проапдейтить вручную. Важно отметить, что информацию о зонах в некотором софте, например, в MySQL, потребуется обновить вручную. Далее последует короткий мануал.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии58

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность