Pull to refresh
1
0
Егор @Ommonick

SDET teamlead

Send message

Выжимаем максимум из PostgreSQL

Level of difficulty Medium
Reading time 14 min
Views 12K

Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!
Читать дальше →
Total votes 47: ↑54.5 and ↓-7.5 +62
Comments 21

«Коллеги, пришлите сроки!» — повторял джун-аналитик в течение месяца…

Level of difficulty Easy
Reading time 3 min
Views 74K

"Коллеги, пришлите сроки!" - повторял джун-аналитик в течение месяца...

Ситуация: 3 месяца назад, я, начинающий системный аналитик, пришла в монстрически крупную компанию. С первого дня меня кинули в рабочие задачи: напиши письма, протоколы, уточни сроки, откорректируй JSON-ку, попробуй написать требования... Задачи довольно простые, НО я понятия не имела, почему некоторые коллеги из смежных систем отвечают на мои письма за 1 день, в то время как другие просто игнорируют письма неделями.

Читать далее
Total votes 84: ↑59.5 and ↓24.5 +35
Comments 197

Установка Arch Linux кратко и (почти) без боли

Level of difficulty Medium
Reading time 9 min
Views 13K

Итак, одним прекрасным утром вы проснулись и решили, что вам нужно попробовать Arch. Вам нравиться всё настраивать под себя, избавляясь от лишнего мусора и вообще вы хотите досконально разобраться в Linux. Но главной проблемой подобных дистрибутивов является то, что нужно уметь с ними работать. Хотя-бы установить. И если изучение самого Arch ложиться сугубо на плечи читателя, то с установкой мы сейчас и разберёмся.

Приступим к установке
Total votes 18: ↑14.5 and ↓3.5 +11
Comments 73

5 способов писать эффективный код на Go: от названий переменных до архитектуры

Level of difficulty Easy
Reading time 8 min
Views 9.5K

Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалев и эксперт по разработке ПО Даниил Подольский обсуждают пять способов повысить эффективность разработки в команде Go-программистов: они расскажут, как называть переменные, составлять документацию и продумывать архитектуру так, чтобы специалистам в команде и смежных отделах было легко работать с написанным кодом. 

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

Читать далее
Total votes 12: ↑10 and ↓2 +8
Comments 8

Всё ещё храните музыку в формате Hi-Res? Тогда мы идем к вам

Level of difficulty Easy
Reading time 4 min
Views 78K

Люди делятся на 2 лагеря: те, кто слышит разницу между lossless и lossy, и те, кто нет. Формат аудио с потерей качества — это интересная тема, но сегодня мы поговорим о звуке в высоком разрешении — это PCM 24/96 и выше, а также DSD во всех его проявлениях. Я не буду рассказывать теорию, чем отличаются эти форматы, такие статьи легко гуглятся. Лишь вскользь упомяну о теореме Котельникова (Найквиста — Шеннона), которая гласит следующее: «Для того, чтобы оцифровать аналоговый сигнал, а потом его БЕЗ ПОТЕРЬ восстановить, необходимо и ДОСТАТОЧНО, чтобы частота дискретизации была в 2 раза СТРОГО больше максимальной частоты полезного сигнала».

Читать далее
Total votes 188: ↑184 and ↓4 +180
Comments 445

Как 6 экранов в приложении увеличили конверсию в два раза

Level of difficulty Easy
Reading time 3 min
Views 1.9K

Кейс Digital команды домашнего интернета от Tele2.

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

Читать далее
Total votes 6: ↑3 and ↓3 0
Comments 0

Sacred: ностальгия, прошедшая проверку временем

Level of difficulty Easy
Reading time 13 min
Views 15K
image

К 2004 году многие игроки уже успели насладиться Diablo II и хотели попробовать что-то новое, что-то, что подарит им те же ощущения и при этом предложит совершенно другой игровой опыт. В этот год вышла Sacred (или, как ее назвал официальный локализатор Акелла, «Князь тьмы»), и тоска по хорошим диаблоидам, несомненно, стала одной из причин ее популярности. Но только ли на этом пытались выехать разработчики, создавая игру, которая в последствии стала для многих любимой? Огромный (при этом бесшовный) и очень красочный мир, словно сошедший со страниц какого-то волшебного произведения, продуманная ролевая система и множество героев на выбор, включая довольно интересных и необычных для данного жанра персонажей, таких как вампиресса, демонесса или серафима. Проект влюблял в себя с первых минут и не отпускал еще долгие дни и недели.

Хочу признаться, что я не поддался чарам этой игры и до сих пор остаюсь верен своей любимой Diablo II. Однако хорошо помню, как все вокруг были увлечены Sacred. Все мои друзья с энтузиазмом обсуждали этот хит, и почти в любом игровом клубе моего города всегда можно было найти хотя бы один компьютер, на котором был запущен Князь тьмы. И, заметьте, это происходило в эпоху доминирования таких проектов, как Counter Strike 1.5 и 1.6, Starcraft и Warcraft 3, а также созданной для нее карты DotA! Даже мой друг, который не очень интересовался играми и залипал в основном в третью часть Героев, поддался влиянию этого игрового наркотика под названием Sacred!

Так что же было в ней такого, благодаря чему небольшая студия Ascaron Entertainment в одночасье проснулась знаменитой, а в её новый (на тот момент) проект с упоением играли во всём мире? В данной статье я постараюсь ответить на этот вопрос, ведь это был один из самых успешных конкурентов Diablo, что, согласитесь, очень достойное звание!
Читать дальше →
Total votes 62: ↑60 and ↓2 +58
Comments 32

Лабораторное происхождение ковида-19 можно считать доказанным. Кто сделает следующий вирус для новой пандемии?

Level of difficulty Medium
Reading time 15 min
Views 23K

С самого начала пандемии ковида-19 существовали подозрения, что вирус SARS-CoV-2 был создан искусственно, что было разобрано в замечательной статье Юрия Дейгина опубликованной на Хабре 19 апреля 2020 года и до сих пор не утратившей актуальности. Назывались имена трех основных подозреваемых: Ральфа Барика из университета Северной Каролины, Стэнли Перлман из университета Айовы и Ши Чжэнли из Уханьского института вирусологии. Из них Барика считали злодеем.

Работы по усилению функций вирусов (gain-of-function research, GoFR, «гофра») ведутся с начала века. Целью работ является лучшее понимание текущих и будущих эпидемий, а также создание вакцин от вирусов до того, как эпидемия начнётся. Одна из популярных тем – усиление SARS-CoV. В 2014 году был введён мораторий на государственное финансирование «усиленных» вирусов в США, однако, как выяснилось в марте 2022 года Энтони Фаучи нарушал мораторий и финансировал создание «усиленных» вирусов Бариком в Ухане через прокладку Eco Health Alliance Питера Дашака. Полученные в январе этого года в соответствии с Законом о свободе информации документы из национального архива США раскрыли заявки Дашака и Барика на гранты предлагающие создание коронавирусов со свойствами, имеющимися только у SARS-CoV-2, поданные за более чем за год до начала эпидемии ковида-19. Эти документы не содержат прямой информации о финансировании грантов, но согласно законам США и ответу представителя национального архива США раскрытию подлежат только профинансированные проекты, а заявки, которые не были профинансированы не раскрываются, что указывает, что для опубликованных заявок финансирование было получено. Заявки также содержат сведения о неопубликованных предварительных работах по «улучшению» спайка.

Читать далее
Total votes 158: ↑76 and ↓82 -6
Comments 282

Battle Realms: прорыв в жанре RTS, не замеченный публикой

Level of difficulty Easy
Reading time 7 min
Views 14K

Во времена дефицита информации о выходящих проектах пропустить что-то действительно интересное было раз плюнуть. Интернет имели единицы, а прочитать в журнале про все предстоящие проекты было довольно проблематично (да и для многих дорого). Но однажды мне повезло, и при очередном походе в магазин за новой игрой я совершенно случайно наткнулся, если и не на хит, то уж на знаковый проект – точно. Это был Battle Realms!

Будучи стратегией в восточном сеттинге и имея много интересных для жанра нововведений и игровых механик, она так и не стала значимой фигурой в индустрии (во многом из-за релиза незадолго до выхода Warcraft 3). Если вы подумали «О боже, очередной клон популярных стратегий нулевых», то спешу вам сообщить, что это в корне не так! Battle Realms не является пародией на Warcraft, Starcraft, Dune 2 или Red Alert, а пытается идти по своему пути! Это было круто и в 2001, а учитывая, что жанр стратегических игр не сильно развивается в наши дни, это интересно и сегодня. К тому же, недавно вышел её официальный ремастер, позволяющий самостоятельно попробовать этот самобытный проект.

Сегодня я постараюсь кратко рассказать, чем знаменательна Battle Realms, и пробудить ваше любопытство и ностальгию. Надеюсь, у меня получится убедить вас сыграть в неё. А чтобы вам было максимально удобно, я выложу сборку с уже готовой к запуску игрой.

Читать далее
Total votes 26: ↑25 and ↓1 +24
Comments 18

Не стоит недооценивать HTML

Level of difficulty Easy
Reading time 6 min
Views 23K

«HTML – это просто», «Разрабатывать фронтенд проще, чем бэкенд», «После реализации бэкенда обновление UI не должно составлять труда», – за время работы в сфере веб-разработки вокруг меня то и дело звучали эти и другие аналогичные утверждения.

И очень часто они вызывали у меня грусть.

Дело в том, что бо́льшую часть времени я проводила за написанием фронтенда, включая работу с HTML, CSS и JavaScript (по факту в основном TypeScript). Когда кто-нибудь говорит мне о «простоте» моей работы, я начинаю думать, что мои навыки не представляют высокой ценности, и меня может легко заменить любой разработчик…

В статье же я решила описать свои размышления, которые рождались в течение последних двух лет во время работы с людьми из разных команд с разным опытом в HTML-разработке и фронтенд-технологиях в целом. Здесь я озвучу несколько основных своих вопросов «Почему?», сопроводив их возможными ответами.
Читать дальше →
Total votes 66: ↑63 and ↓3 +60
Comments 94

Тестирование производительности 1С на СУБД MSSQL 2022 и PostgreSQL 15 (на 20, 40, 60,80, 100 пользователей)

Level of difficulty Medium
Reading time 7 min
Views 13K

В начале 2024 года мы решили провести новое исследование производительности 1С:Предприятие на СУБД MSSQL и PostreSQL и вот что получилось...

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 22

Как провести фаззинг REST API с помощью RESTler

Reading time 7 min
Views 2.3K

Привет, Хабр! С вами Владимир Исабеков, руководитель группы статического тестирования безопасности приложений в Swordfish Security. Современная разработка программного обеспечения требует не только функционального, но и безопасного API. Сегодня мы расскажем, как провести фаззинг-тестирование API c помощью инструмента RESTler, имея на руках только спецификацию API. Статья написана в соавторстве с нашим инженером по безопасности, Артемом Мурадяном @TOKYOBOY0701.

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 3

Использование Postgres и JSONB для хранения товаров, характеристик и цен

Level of difficulty Medium
Reading time 17 min
Views 11K

Всем привет! Меня зовут Александр, в данное время я на фрилансе занимаюсь проектом по созданию очередного маркетплейса. В процессе работы мы столкнулись с далеко не новой проблемой организации хранения информации о товарах, имеющих различные характеристики и цену, зависящую от характеристик. На нашем проекте применяется принцип CQRS: запись осуществляется в Postgres, чтение происходит из OpenSearch, а данные между ними перемещаются по шине, реализованной на Kafka. Такой подход обусловил использование реляционной БД для решения несвойственной ей задачи.

Чтобы увидеть, почему эта задача не нак проста, как кажется с первого взгляда, представим, что в нашем каталоге есть футболки мужские всего с двумя атрибутами: цвет и размер. Мы хотим хранить товар с названием "Футболка Junior Developer", она представлена в синем, красном и зеленом цветах, и каждый цвет доступен в нескольких размерах. Добавляя немного сложности, представим, что цена конкретной футболки также варьируется в зависимости от цвета и размера. Как представить эту сущность в реляционной базе данных, с учетом того, что продавец футболки может в какой-то момент добавить новые атрибуты для своего товара, например, габариты упаковки для отправки (длина, ширина, высота)?

С одной стороны, можно использовать подход: Entity-Attribute-Value. Он позволяет гибко настраивать связи между сущностями, их атрибутами и значениями, сохраняя возможность динамического добавления новых атрибутов сущности. Однако у такого подхода есть свои недостатки. На них останавливаться не буду - в статье: "Замена EAV на JSONB в PostgreSQL" они приведены, также там есть сравнение по производительности и памяти EAV и JSONB.

Читать далее
Total votes 15: ↑12 and ↓3 +9
Comments 15

Анализируем виды тестов для Frontend

Level of difficulty Easy
Reading time 14 min
Views 7.3K

С развитием веба сайты превратились в сложные приложения, которыми ежедневно пользуются десятки и сотни миллионов людей: почта, облачные хранилища, соцсети, маркетплейсы, стриминговые платформы и т. д. И каждое из них должно работать корректно. Как это сделать? Конечно писать хороший код, а потом и тестировать его. Хотя кто‑то обходится без тестов, тем не менее тестирование — важная часть инженерных практик наравне с мониторингом. Оно помогает нам заблаговременно находить и исправлять баги (или незапланированные фичи) в приложениях. Основная цель тестирования — получить гарантию корректной работы любого ПО .

При этом тестировать современный фронтенд сложно: неуправляемая асинхронность (событийная модель браузера), различие браузеров, тяжелое окружение — это лишь малая часть сложностей. Можно ли все возложить на ручных тестировщиков или исправлять баги после жалоб пользователей? Однозначно нет. В большинстве случаев такой подход в скором времени приведет к оттоку пользователей: не все пишут о багах, просто уходят к конкурентам. Безусловно, ручное тестирование остается важным элементом разработки, но тестировщики не могут держать сотни или тысячи сценариев, которые нужно пройти перед релизом или запуском новой фичи. Так где нам получить гарантии, что ключевые сценарии приложения работают корректно? Автоматическое тестирование.

Всем привет! Меня зовут Миша, работаю фронтэнд‑разработчиком в VK в команде Облака Mail.ru, и я хочу разобрать различные виды тестов, дать их сравнительный анализ и применимость. Сразу скажу, тут не будет практики написания тестов. Потому что это нереально сделать внутри одной статьи, необходимо разобрать: теорию тестирования, классов эквивалентности, различие подходов/методов к тестированию, комбинаторику состояний, правильное использование моков и стабов, понимание чистых функций, знание архитектуры приложения. Поэтому предлагаю сконцентрироваться на видах тестирования и начать с «идеального теста».

Читать далее
Total votes 33: ↑33 and ↓0 +33
Comments 2

Разбираемся в автотестах gRPC без боли и седых волос

Level of difficulty Medium
Reading time 7 min
Views 5.3K

Всем привет! Меня зовут Катя Муличева, я тестировщица в СИБУР Диджитал. Последние два года я пишу автотесты для gRPC на Kotlin. Получив опыт, я захотела написать статью, которая очень пригодилась бы мне самой, когда я только начинала разбираться с gRPC. Надеюсь, вы найдете её полезной для себя!

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

Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную

Level of difficulty Medium
Reading time 16 min
Views 15K


Меня давно интересовало, как работают беспроводные клавиатуры, но как-то не сильно вдавался в подробности, пока не возникла идея превратить свою механическую клавиатуру в беспроводную. Честно говоря, не думал, что узнаю так много нового и интересного.

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

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

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →
Total votes 76: ↑74 and ↓2 +72
Comments 76

Топ-10 качеств идеального ментора в IT. Мы опросили сто аналитиков

Reading time 3 min
Views 4.7K

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

Что за статистика и откуда она у меня взялась? Дело в том, что у меня есть своего рода хобби: раз в три месяца я провожу тренинг по менторству (наставничеству) для сотрудников нашего департамента системного анализа. За два года я провёл девять таких тренингов, которые посетило суммарно около ста системных аналитиков и аналитиков данных. 

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

На всякий случай обозначу, кто такой ментор в нашем понимании. Ментор — опытный участник команды, который прикрепляется к новому сотруднику (менти) для осуществления онбординга. Тут у нас всё примерно так же, как и в любых современных IT-компаниях. 

Читать далее
Total votes 17: ↑14 and ↓3 +11
Comments 4

Опыт масштабирования Kubernetes на 2k узлов и на 400k подов

Level of difficulty Hard
Reading time 8 min
Views 11K

Расскажу, как мы в PayPal начинали осваивать Kubernetes. На тот момент большинство наших рабочих нагрузок выполнялось на Apache Mesos, и в рамках этой миграции нам требовалось разобраться с некоторыми аспектами производительности у кластеров, в которых будет работать Kubernetes – с учётом той плоскости управления, что действует в PayPal. Из всех этих аспектов важнее всего было понять, как именно масштабируется платформа, а также выявить, как можно было бы улучшить масштабируемость, настраивая параметры кластера.

Тогда как Apache Mesos может прямо из коробки масштабироваться вплоть до 10 000 узлов, масштабировать Kubernetes непросто. При масштабировании Kubernetes требуется учитывать не только количество узлов и подов, но и ещё некоторые вещи, в частности: сколько ресурсов создано, сколько у нас контейнеров на под, сколько всего сервисов задействовано, а также пропускная способность при развёртывании подов. В этом посте описаны некоторые проблемы, с которыми нам довелось столкнуться при масштабировании, и рассказано, как нам удалось с ними справиться.
Читать дальше →
Total votes 39: ↑34 and ↓5 +29
Comments 10

Человеческим языком про метрики 3: перцентили для чайников

Reading time 10 min
Views 91K

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

Читать далее
Total votes 21: ↑20 and ↓1 +19
Comments 2

Упрощаем подключение линтеров в пайплайны Gitlab CI

Level of difficulty Easy
Reading time 4 min
Views 4.5K

Всем привет! Меня зовут Юра, я Python-разработчик в Точке. В статье я покажу, как написать шаблон с линтером для Gitlab CI, чтобы при старте нового проекта (или уже запущенного) было легко добавить линтер в пайплайны.

А ну-ка
Total votes 6: ↑6 and ↓0 +6
Comments 0

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity

Specialization

Test Automation Engineer, Quality Assurance Analyst
Lead