Pull to refresh
25
0
Алексей @lxsmkv

тестировщик-автоматизатор

Send message

Убийство разработки – опыт Тиньков Страхование

Reading time6 min
Views56K

Вечером зашел на Хабр, отсортировал лучшие по суткам, наткнулся на статью «Как убить разработку в три шага и на четвертый навсегда похоронить».

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

Автор статьи – irintus (имя изменено), в подробностях рассказала, зачем и как она убила процесс разработки, куда и какие зонды вставила, но забыла написать, чего этим добивалась. Давайте я это исправлю.

Читать далее
Total votes 204: ↑134 and ↓70+99
Comments189

Как нарисовать персонажа для 125 млн игроков

Reading time6 min
Views14K
«Лига Легенд» (League of Legend/LoL/Лолка) — MOBA от Riot Games 2009 года выпуска. Это не «девчачья» песочница, 80% игроков — мужчины. На апрель 2022 года в «Лиге Легенд» было 150 млн пользователей, из них 125 млн играют хотя бы раз в месяц. Для сравнения аудитория World of Warcraft сейчас 5-6 млн, так что Лига довольно старая и всё ещё популярная игра.

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

Если кратко, то советы от концепт-художников Riot Games сводятся к:

  1. Делайте много и быстро. Количество скетчей важнее их качества.
  2. Двигайтесь от общего к частному. Когда приняли решение, не возвращайтесь к его обсуждению, начинайте уточнять детали.
  3. Рисуйте концепты настолько просто, насколько это возможно.

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



Ещё я веду канал в Telegram GameDEVils и блог на Substack , делюсь там материалами про геймдизайн, разработку и историю игр.
Читать дальше →
Total votes 18: ↑16 and ↓2+23
Comments25

Jmeter не только для нагрузочного тестирования

Reading time4 min
Views2.9K

Однажды отделу тестирования понадобился инструмент для постоянного измерения скорости загрузки страниц, с помощью которого можно узнавать о проблемах на сайте в режиме реального времени.
В статье я расскажу о том, как силами QA-отдела REG.RU мы сделали мониторинг страниц на основе Jmeter. 

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments9

Краткий справочник по «всем-всем» командам Linux

Level of difficultyMedium
Reading time74 min
Views155K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1110 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Total votes 105: ↑102 and ↓3+120
Comments114

Godot | Open Dungeon | Часть beta

Reading time14 min
Views3.8K

Больше функционала для минималистичного прототипа игры: объекты уровня, враги, апгрейд управления, глобальный скрипт и статичные выстрелы.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments1

User story на отлично: что учесть, чтобы написать хорошие требования к ПО

Reading time4 min
Views8.3K

Избегаем повторений, не используем слова с субъективной оценкой, — и еще 9 рекомендаций по проверке качества требований.

Читать далее
Total votes 3: ↑2 and ↓1+2
Comments15

Пособие по программированию модулей ядра Linux. Ч.3

Reading time25 min
Views12K

От редакции: Сегодня исполнился 31 год с момента первого анонсирования Linux. Именно в этот день, 25 августа 1991 года Линус Торвальдс разместил в новостях Usenet comp.os.minix соообщение следующего характера:
Привет всем тем, кто использует миникс — Я делаю (свободную) операционную систему (это только хобби, не столь большое и профессиональное, как GNU) для 386(486)AT клонов. Эта система пишется с апреля и скоро будет готова. Я хочу получить любой отзыв, касающийся вещей, которые нравятся/не нравятся людям в миникс, так как моя ОС похожа на неё (такое же устройство файловой системы (по практическим соображениям), среди прочего).

В настоящее время я портировал bash (1.08) и gcc (1.40), и, похоже, эти программы работают. Это значит, что я получу что-то практичное в ближайшие несколько месяцев, и я хочу узнать, какие возможности хотят большинство людей. Любые предложения принимаются, но я не обещаю, что я осуществлю их:-)

Линус (torvalds@kruuna.helsinki.fi)

PS. Да — в ней нет кода миникс, и будет мультипотоковая ФС. Система НЕПЕРЕНОСИМА (использует команды Intel 386 и т. д.) и, вероятно, будет поддерживать только жесткие диски AT, так как это всё, что у меня есть 🙁
Ну а мы — в этот интересный день, можем только пожелать, чтобы труды по переводу этого руководства были для вас полезны.

Продолжаем серию статей по созданию модулей ядра. В текущей части мы разберем работу с файловой системой /proc, взаимодействие с модулями при помощи sysfs, а также работу с файлами устройств.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments1

Заменит ли no-code программистов? Вопрос некорректен

Reading time3 min
Views19K


Найм профессионального программиста — это слишком дорого, да и программирование — совсем не быстрый процесс. А бизнесу всегда нужно "вчера" и желательно бесплатно. Поэтому всё более популярным становится no-code подход: вы не пишете код, а просто, используя кнопки в интерфейсе и мышку, компонуете своё приложение. Звучит красиво. Так можно создать типовое приложение, накидав туда компоненты. Вот пример рекламной статьи no-code системы Bubble, в которой, по сути, говорят, что для стартапа программисты уже не нужны, по крайней мере — на начальном этапе.


Или если у вас есть условный эксель, где вы можете выделить нужные строки и посчитать их сумму, построить график, и т.д. — вам не надо это всё программировать на каком-либо языке. Всё делается в пару кликов. Это тоже no-code.


Но что же будет, если этот подход разовьётся до небес? Можно ли будет его использовать для всё более и более сложных систем? Можно ли выкинуть программистов на улицу?


Вопрос некорректен

Читать дальше →
Total votes 19: ↑17 and ↓2+20
Comments108

Выбор основных проектных параметров ракеты. Или как самостоятельно спроектировать Falcon 1e (часть 1)

Reading time7 min
Views4.9K

В одной из статей я писал с чего начать создание своей ракеты. Среди основных технических задач первого этапа самой главной является задача проектно-баллистического анализа и выбора основных проектных параметров. В данной статье я постараюсь на примере показать что это такое и как данная работа в принципе выполняется.

Читать далее
Total votes 13: ↑12 and ↓1+13
Comments16

Как мы использовали RabbitMQ для разбиения монолита крупнейшего ритейлера страны*

Reading time6 min
Views8.3K

Накопить за 7 лет терабайты данных в монолите и решить, что пора оптимизировать систему и разбивать её на микросервисы — страшный сон для айтишника. Добавим сюда ещё база на решениях от 1С и необходимость обеспечить непрерывность процесса. Стало страшно? А для нас — возможность показать экспертность и решить нетривиальную задачу. О том, как «кролик» помог сдвинуть гору рассказал архитектор 1С компании «Автомакон» Виталий Осиповский.

С 2013 года ВкусВилл проводил внутреннюю автоматизацию с использованием программ на базе 1С. За годы активного развития и эксплуатации база увеличилась до нескольких терабайт, кратно выросло количество операций, что спровоцировало большой объем работы для администраторов, оптимизаторов и команды разработчиков. Например, тяжелые алгоритмы планирования, закрытий, генерации документов могли негативно влиять на работу всей базы.

Любые сбои и простои были неадекватно затратны и влияли на все компоненты системы в целом. А сама система не годилась для быстрого масштабирования бизнеса. Поэтому уже в 2020 году приняли решение о поэтапном разделении монолита на отдельные программные компоненты.  

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments4

Как я хакнул свой автомобиль

Reading time10 min
Views59K
image

Машина


Прошлым летом я купил Hyundai Ioniq SEL 2021 года. Это хороший экономящий топливо гибрид с приличным набором функций: беспроводные Android Auto/Apple CarPlay, беспроводная зарядка для телефона, сиденья с подогревом и люк в крыше.

Особенно мне понравилась в этой машине система In-Vehicle Infotainment (IVI). Как я говорил ранее, у машины есть беспроводное Android Auto, что довольно редко для такого ценового диапазона. Приложение имеет красивые плавные анимации меню, поэтому я понял, что ЦП/GPU не такие уж и слабые; или, по крайней мере, ПО ест не слишком много ресурсов.

Как и со всеми остальными моими гаджетами, я решил немного поэкспериментировать и посмотреть, что можно сделать с этой системой.
Читать дальше →
Total votes 284: ↑283 and ↓1+339
Comments71

Как создать игру Tetris с помощью Three.js

Reading time20 min
Views7.6K

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

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

В нашей игре кубы будут соединены, когда они динамичны и разделены, когда они статичны.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments6

Эмуляторы и симуляторы vs реальные устройства для автоматизации тестирования

Reading time5 min
Views33K

В этой статье рассмотрим особенности тестирования мобильных приложений с помощью эмуляторов/симуляторов и на реальных устройствах.

Содержание:

Что такое мобильные эмуляторы и симуляторы;

Типы мобильных тестов;

Инструменты/фреймворки автоматизации мобильного тестирования;

Когда можно использовать эмуляторы/симуляторы, а а когда — стоит тестировать на реальных устройствах.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments0

Эскалация привилегий при помощи polkit: как заполучить root-доступ в Linux, воспользовавшись семилетним багом

Reading time14 min
Views9K

polkit – это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав a GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Раскрытие уязвимости было скоординировано с командой по поддержке polkit, а также с командой по обеспечению безопасности в компании Red Hat. О раскрытии этой уязвимости было объявлено публично, патч для нее был выпущен 3 июня 2021 года, и ей был присвоен код CVE-2021-3560.

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

История уязвимости CVE-2021-3560 и какие дистрибутивы она затронула

Рассматриваемый баг достаточно старый. Он вкрался в код более восьми лет назад в коммите bfa5036 и впервые мог использоваться в версии 0.113 программы polkit. Однако, во многих популярных дистрибутивах Linux эта уязвимая версия не использовалась до относительно недавнего времени.

Немного специфической историей этот баг обладает в Debian и его производных (например, в Ubuntu), так как Debian использует форк polkit, в котором есть своя особенная схема нумерации версий. В форке Debian этот баг появился в коммите f81d021 и впервые попал в дистрибутив в версии 0.105-26. В стабильном релизе Debian 10 (“buster”) используется версия 0.105-25, таким образом, уязвимости в нем нет. Но некоторые производные Debian, в том числе, Ubuntu, основаны на нестабильной версии Debian, а она уязвима.

Читать далее
Total votes 17: ↑15 and ↓2+20
Comments3

Алгоритм обучения CBOW архитектуры для векторизации слов

Reading time5 min
Views4.6K

В этой статье подробно разбирается алгоритм обучения архитектуры CBOW (Continuous Bag of Words), которая появилась в 2013 году и дала сильный толчок в решении задачи векторного представления слов, т.к. в первый раз на практике использовался подход на основе нейронных сетей. Архитектура CBOW не столь требовательна к наличию GPU и вполне может обучаться на ЦП (хотя и более медленно). Большие готовые модели, обученные на википедии или новостных сводках, вполне могут работать на 4-х ядерном процессоре, показывая приемлемое время отклика.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments3

Нагрузочное тестирование: что? где? когда?

Reading time9 min
Views30K

После весны 2020 года слово “тестирование” приобрело некоторые неожиданные значения и неоднозначные коннотации — пожалуй, везде, кроме IT. В нашей сфере без него никуда — и так было всегда.

Видов тестирования ПО — множество: модульное, функциональное, А/В-тестирование, интеграционное, нагрузочное и т д. И на наш взгляд, как раз последнее является как самым важным, так и наиболее сложным. Ведь если ошибки, которые могут быть выявлены с помощью A/B-тестов, модульных, функциональных и интеграционных тестов, проявляются практически сразу после “выкатки” новой версии приложения, то проблемы, на выявление которых нацелено нагрузочное тестирование, — “спящие”. И обнаруживаются они только тогда, когда на новую версию вашего сайта или приложения придет реальный пользовательский трафик, с которым не справится “софтверная” часть проекта (база данных, application-сервер) или “железно-инфраструктурная” (нехватка оперативной памяти в кластере, большая нагрузка на дисковую подсистему при операциях чтения-записи).

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

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments1

Динамический импорт модулей в Python

Reading time3 min
Views8.1K

Давайте представим ситуацию, когда вам нужно установить на все виртуальные машины (агенты сервера сборки) определенный пакет Python. Но вы не можете изменить образ агента, а загрузка, к примеру из pypi.org или github.com непроверенных пакетов, ограничена. Как тут не вспомнить последние новости про вредоносные изменения в пакете nmp или более свежую информацию про PyPi.

Python использует подход под названием EAFP — Easier to ask for forgiveness, than permission (легче попросить прощения, чем разрешения). Это значит, что проще предположить, что что-то существует (к примеру, словарь в словаре, или в нашем случае модуль в системе) или получить ошибку в противном случае.

Этот подход, развитый в PEP-0302, позволяет делать хук импорта модулей, что в итоге приводит нас к возможности написания следующего кода:

Читать далее
Total votes 13: ↑8 and ↓5+5
Comments8

Python WebAssembly PyScript и хостинг вебсайта на Azure Static с помощью visual studio code

Reading time2 min
Views2.8K

Привет

Сегодня мы создадим небольшое приложение .py и загрузим его в Azure.

Требования: учетная запись Azure + желание узнавать новое и экспериментировать. Также нужен VSCode (бесплатная IDE).

Когда мы закончим, мы получим...

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Agile подход к разработке и управлению требованиями

Reading time5 min
Views4.1K

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

Читать далее
Total votes 18: ↑12 and ↓6+7
Comments7

Веб-комиксы про жизнь айтишников: от зарождения и до наших дней

Reading time7 min
Views12K

Интернет-комиксы как явление даже старше, чем сама Всемирная сеть. Первые из них увидели свет ещё в середине 1980-х годов. Пионером жанра стал легендарный и таинственный Witches and Stitches от детройтского художника Эрика Милликина. Пародия на «Волшебника из страны Оз» распространялась по электронной почте и через другие ранние способы обмена информацией: WWW появится только в начале 90-х, а возможность размещать изображения во Всемирной паутине — в 1992-м.

Ведьминская тематика была неожиданной для сети тех времён, когда кроме профессиональных технарей в ней никого толком и не было — но Милликин, один из основателей и пионеров виртуального искусства как такового — считает себя потомком одной из салемских ведьм XVII века. А в уже тогда любившей приколы и гэги ранней интернет-среде мрачно-ироничные стрипы про ведьм разлетались не хуже конфет на Хеллоуин.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments11

Information

Rating
4,618-th
Location
Германия
Registered
Activity

Specialization

Test Automation Engineer, Quality Assurance Engineer
Senior
Python
Docker
Git
Linux
OOP