Search
Write a publication
Pull to refresh
3
0
Егор @Ommonick

SDET teamlead

Send message

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

Level of difficultyEasy
Reading time3 min
Views2.3K

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

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

Читать далее

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

Level of difficultyEasy
Reading time13 min
Views19K
image

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

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

Так что же было в ней такого, благодаря чему небольшая студия Ascaron Entertainment в одночасье проснулась знаменитой, а в её новый (на тот момент) проект с упоением играли во всём мире? В данной статье я постараюсь ответить на этот вопрос, ведь это был один из самых успешных конкурентов Diablo, что, согласитесь, очень достойное звание!
Читать дальше →

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

Level of difficultyMedium
Reading time15 min
Views28K

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views16K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views24K

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

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

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

В статье же я решила описать свои размышления, которые рождались в течение последних двух лет во время работы с людьми из разных команд с разным опытом в HTML-разработке и фронтенд-технологиях в целом. Здесь я озвучу несколько основных своих вопросов «Почему?», сопроводив их возможными ответами.
Читать дальше →

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

Level of difficultyMedium
Reading time7 min
Views22K

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

Читать далее

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

Reading time7 min
Views5.9K

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

Читать далее

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

Level of difficultyMedium
Reading time17 min
Views15K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time14 min
Views9.6K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time7 min
Views6.9K

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

Читать далее

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

Level of difficultyMedium
Reading time16 min
Views20K


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

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

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

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →

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

Reading time3 min
Views5.3K

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

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

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

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

Читать далее

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

Level of difficultyHard
Reading time8 min
Views12K

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

Тогда как Apache Mesos может прямо из коробки масштабироваться вплоть до 10 000 узлов, масштабировать Kubernetes непросто. При масштабировании Kubernetes требуется учитывать не только количество узлов и подов, но и ещё некоторые вещи, в частности: сколько ресурсов создано, сколько у нас контейнеров на под, сколько всего сервисов задействовано, а также пропускная способность при развёртывании подов. В этом посте описаны некоторые проблемы, с которыми нам довелось столкнуться при масштабировании, и рассказано, как нам удалось с ними справиться.
Читать дальше →

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

Reading time10 min
Views177K

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views8.3K

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

А ну-ка

Неклассическое чтение для руководителей: книги по стратегическому управлению от ведущих ученых и отчеты аналитиков

Level of difficultyEasy
Reading time8 min
Views9.8K

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

Читать далее

Все оценки сроков разработки ПО — ложь

Level of difficultyEasy
Reading time15 min
Views28K

▍ Разработка ПО — это исследование


Требуют ли фармацевтические компании от исследователей сообщить им сроки создания лекарства от рака? Исследователи могут сообщить сроки выполнения конкретного исследования (и достаточно точные сроки, потому что планы исследований обычно имеют графики), но результаты наподобие «получения лекарства от рака» зависят от того, что выяснится в процессе экспериментов. Для прогнозирования подобных результатов нам заранее нужно знать результаты экспериментов, но если бы мы их знали, то эксперименты были бы не нужны. На самом деле мы не можем смотреть дальше, чем результаты следующего эксперимента, потому что этот эксперимент определяет дальнейший шаг.

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

0xide: локальный облачный сервер

Level of difficultyEasy
Reading time6 min
Views13K


26 октября 2023 года Oxide Computer Company объявила о начале продаж «первого в мире коммерческого облачного компьютера», анонс которого состоялся ещё в 2020 году на стэнфордской лекции «Душа новой машины. Преосмысление серверного компьютера».

Не все сразу поняли, чем 0xide отличается от обычного сервера и почему в маркетинговых материалах он называется «облачный компьютер».
Читать дальше →

Окситоцин и дофамин. Фундамент влюбленности и как он работает

Reading time4 min
Views7.6K

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

Читать далее

Работа с ETH, BSC, TRX кошельками на сервере NodeJS — отправка транзакций, получение баланса, генерация мнемоники

Reading time14 min
Views5.3K

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

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

Читать далее

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer, Quality Assurance Analyst
Lead