Как стать автором
Обновить
662.82
OTUS
Цифровые навыки от ведущих экспертов
Сначала показывать

Произвольная запись файлов

Время на прочтение4 мин
Количество просмотров584

Мир уязвимостей достаточно многообразен. Обычно хакеры стараются добиваться своих целей с помощью уязвимостей эксплуатации произвольного кода, та самая аббревиатура RCE. Но на практике часто для того, чтобы выполнить свой код необходимо сначала выполнить запись в нужный файл. И здесь нам на помощь приходит другой тип уязвимостей Arbitrary File Write (AFW). Это уязвимости произвольной записи файлов (AFW). Они могут стать достаточно мощным инструментом в руках атакующего, например, при атаке на веб сайт, или при поднятии привилегий в ОС. Также AFW могут использоваться при реализации атак удаленного выполнения кода.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Как настроить пайплайн с разделением на стадии в GitLab CI

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров907

В GitLab CI пайплайны выполняют основную роль в автоматизации процессов CI/CD. Они позволяют разбить весь процесс сборки, тестирования и деплоя на отдельные, логически связанные задачи — или "джобы". Эти джобы структурируются в стадии, каждая из которых представляет собой определенный этап работы — например, сборка, тестирование или развертывание. Такое разделение позволяет ускорить разработку и минимизировать ошибки при доставке кода на продакшн.

В этой статье рассмотрим, как настроить пайплайн с разделением на стадии в GitLab CI.

Читать далее
Всего голосов 9: ↑2 и ↓7-5
Комментарии2

ViewModels в Android: «за» и «против». Часть 2

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров377

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

В этой части мы продолжим фокусироваться на важных принципах разработки и оптимизации ViewModel в Android, направленных на улучшение архитектуры приложения и повышение его производительности. Рассмотрим подробнее рекомендации, касающиеся раскрытия изменяемых состояний, использования update{} при использовании MutableStateFlows и «ленивого» внедрения зависимостей в конструктор.

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Как настроить сериализацию с System.Text.Json в C#: кратко для новичков

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров809

Сегодня поговорим о том, как сериализовать данные в C# с помощью библиотеки System.Text.Json. Если вы раньше использовали Newtonsoft.Json для преобразования объектов в JSON и обратно, то пришло время посмотреть, как этот процесс можно ускорить и упростить, применяя встроенные инструменты .NET.

Читать далее
Всего голосов 8: ↑5 и ↓3+3
Комментарии3

CISO и CIO: В чем разница?

Время на прочтение6 мин
Количество просмотров545

Понятия CIO — Chief Information Officer, директор по информационным технологиям и CISO — Chief Information Security Officer, директор по информационной безопасности, часто путают из-за того, что и тот и другой во многих организациях выполняют схожий набор задач.

Во многих российских компаниях ИТ директора зачастую выполняют часть или даже все (в зависимости от размеров организации) обязанности по обеспечению информационной безопасности. Связано это с тем, что часто в организациях нет соответствующих бюджетов для того, чтобы нанять отдельно CISO. И кроме того, часто инфобез в компаниях вырастает из обычного ИТ и логично, что именно CIO руководит всем, что связано с информационными технологиями, включая ИБ.

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

Читать далее
Всего голосов 2: ↑1 и ↓1+1
Комментарии2

Руководство по нагрузочному тестированию для начинающих

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии3

Кратко про библиотеку Range в C++

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

Привет, Хабр!

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1+7
Комментарии4

HTTP-серверы на Fiber в Golang

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.7K

Привет, Хабр!

Когда речь заходит о создании HTTP-серверов на Go, большинство сразу думают о привычных решениях, таких как net/http или Gin. Эти инструменты проверены временем, но что, если нужен сервер, который не просто стабилен, а работает очень быстро? Здесь помогает Fiber — лёгкий, но невероятно мощный HTTP-фреймворк, способный вывести производительность сервера на новый уровень.

С синтаксисом, знакомым всем юзерам Express.js, Fiber избавляет от лишней сложности и позволяет сосредоточиться на главном — максимальной скорости и эффективности.

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии8

JavaScript Clean Code: руководство для начинающих разработчиков

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.7K

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

Читать далее
Всего голосов 10: ↑7 и ↓3+7
Комментарии0

Влияние UX Writing на конверсию через A/B тестирование

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров463

Вы когда-нибудь задумывались, как одна маленькая фраза может изменить весь путь пользователя на вашем сайте? Представьте себе, что вместо «Купить сейчас» у вас на кнопке стоит «Оформить заказ». Разница, казалось бы, минимальная, но что если эта замена поднимет конверсию на 20%? В UX Writing слова — это не просто текст, а инструмент, который способен направить пользователя в нужное русло или, наоборот, отпугнуть его.

Читать далее
Всего голосов 5: ↑2 и ↓30
Комментарии2

17 метрик, позволяющих оценить эффективность процесса найма

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

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

Читать далее
Всего голосов 10: ↑6 и ↓4+4
Комментарии0

Визуализация и управление Discovery процессом: как эффективно организовать работу

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

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

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

Читать далее
Всего голосов 3: ↑1 и ↓20
Комментарии0

Управление продуктовой стратегией: как не потерять фокус на ключевых приоритетах

Время на прочтение6 мин
Количество просмотров461

В условиях быстрого темпа изменений, высокой конкуренции и постоянного давления со стороны стейкхолдеров, управление продуктовой стратегией становится сложной задачей для любого Product Owner. 

Часто, стремясь угодить всем и сразу, команды теряют фокус на долгосрочных целях, что в конечном итоге снижает эффективность продукта и его способность удовлетворять стратегические бизнес-цели. В статье мы рассмотрим важность удержания фокуса на ключевых приоритетах и разберем, как не отвлекаться на ежедневные мелкие и “влетные” задачи и обсудим методы работы с дорожными картами и стратегическим видением продукта.

Читать далее
Всего голосов 6: ↑5 и ↓1+8
Комментарии0

Обзор Agile подходов к масштабированию: LeSS, SAFe и Nexus

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

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

Чтобы справиться с этими вызовами, были созданы фреймворки масштабирования, такие как LeSS, SAFe и Nexus. В этой статье мы рассмотрим их основные принципы и рекомендации по применению.

Читать далее
Всего голосов 10: ↑5 и ↓5+4
Комментарии0

Когда вариантов использования недостаточно — анализ событий

Время на прочтение8 мин
Количество просмотров405

С тех пор как я открыл для себя столь ценный инструмент выявления требований, как варианты использования (use case), я стал их ярым приверженцем. Варианты использования смещают фокус внимания с продукта и его возможностей на результат, который пользователи хотят получить от продукта. Акцент на использовании приводит к пониманию необходимых возможностей и характеристик решения.

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

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

Читать далее
Всего голосов 5: ↑3 и ↓2+4
Комментарии0

Создание DSL на Rust

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.9K

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

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

Читать далее
Всего голосов 10: ↑6 и ↓4+6
Комментарии1

Как продакт-менеджеру сфокусироваться на 80% Discovery и 20% Delivery: Руководство на основе реального опыта

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

В своей карьере я работала в таких компаниях, как Авито, Rutube, МТС, сейчас работаю в Банке [NDA] — и везде у меня была команда разработки самостоятельна. 

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

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

Читать далее
Всего голосов 13: ↑9 и ↓4+9
Комментарии4

Кратко про low-code библиотеку для ML Pycaret

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.3K

Привет, Хабр!

PyCaret — это open-source библиотека, которая предлагает low-code подход к созданию, обучению и внедрению моделей ML. Она позволяет провести весь процесс — от подготовки данных до развертывания модели в продакшн — всего за несколько строк кода.

Читать далее
Всего голосов 4: ↑4 и ↓0+8
Комментарии1

Как ускорить A/B тесты: несколько способов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.1K

Знаете, что самое раздражающее в A/B тестах? Это ожидание результатов.

А что, если можно ускорить процесс и получить нужные данные быстрее? Сегодня расскажу, как разогнать A/B тесты, чтобы не терять время зря и быстрее получать результаты.

Читать далее
Всего голосов 7: ↑6 и ↓1+9
Комментарии1

Фреймворки для работа с данными на Rust. Часть 1

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.7K

Привет, Хабр!

Если бы мне сказали, что я однажды заменю привычный Python или Scala для работы с данными на Rust, я бы, пожалуй, ухмыльнулся и продолжил привычное дело. Но времена меняются, и Rust вполне уверенно пробивает себе дорогу в мир больших данных. Сегодня я расскажу вам о трех фреймворках, которые делают Rust конкурентом в обработке данных.

Читать далее
Всего голосов 9: ↑7 и ↓2+9
Комментарии0
1
23 ...

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS