Как стать автором
Обновить
20
8.7
Дмитрий Головин @GolovinDS

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

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

SberBox 2. Что под капотом?

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

Салют, хабр! Сегодня стартовали продажи SberBox 2 — обновленной ТВ-приставки от SberDevices. В SberBox 2 мы учли отзывы пользователей и реализовали ряд улучшений, которые делают его еще более удобным и стабильным. Так, например, за стабильное соединение теперь отвечает разъем LAN, устройство не болтается на проводе, а надёжно крепится к телевизору с помощью велкро-липучки, а провод зарядки больше не упирается в стену.

SberBox 2 — это первое устройство, которое базируется на новых принципах дизайна. Внутри команды его даже успели прозвать «турбиной» за некоторое визуальное сходство. В этой маленькой коробочке уместилось качественное железо с отличным функционалом, но обо всем по порядку. Давайте сейчас посмотрим на то, как устройство выглядит снаружи.

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

Настройка производительности диска и памяти в Linux

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

В отличие от таких операционных систем как HPUX (dbc_min_pct, dbc_max_pct) или AIX (minperm%, maxperm%), в Linux нет возможности настраивать размер кэша страниц, читаемых с диска (страничный кэш, page cache). Под страничный кэш Linux использует всю доступную память. Размер страничного кэша можно увидеть в /proc/meminfo в параметре "Cached". В /proc/meminfo есть также значение "Buffers", которое часто путают с размером страничного кэша. "Buffers" — это память, содержащая сырые дисковые данные (raw disk data) и выступающая в роли промежуточного буфера между процессами, ядром и диском.

В этой статье рассмотрим, как Linux работает с памятью, и, в частности, со страничным кэшем, а также исследуем, как доступный объем памяти влияет на производительность буферизованного ввода-вывода (buffered IO).

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

Как продлить срок службы старых PHP-приложений

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

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

Хоть обновление существующих PHP-приложений и является идеальным рекомендуемым подходом, мы не можем избежать появления приложений/сайтов, которые попросту не в состоянии оправдать человеческие, финансовые и политические затраты на их обновление. Особенно это касается старых PHP-приложений, работающих на PHP 5 или 7 версии. WordPress.org, например, сообщает, что только 16% зарегистрированных сайтов WordPress работают на версии PHP, поддерживаемой разработчиками ядра PHP.

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

Аннотации и рефлексия в Java

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


Привет, уважаемые читатели Хабра!

Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных приложений. Аннотации предоставляют способ добавить метаданные к классам, методам и полям, что позволяет компилятору и другим инструментам анализировать код более глубоко. Рефлексия, с другой стороны, позволяет программам анализировать и модифицировать свой собственный состав и поведение во время выполнения.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+9
Комментарии1

История нарративного дизайна. Как развивался сценарный подход в играх с момента их появления до сегодня

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

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

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

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

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

Team Topologies: Рациональный Подход к Организации Команд

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

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

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

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

Моделирование биологических явлений с помощью Python

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


Автор статьи: Артем Михайлов

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

Моделирование биологических систем позволяет ученым исследовать разнообразные аспекты биологии, такие как динамику популяций, структуру генных сетей, взаимодействие молекул внутри клеток и многое другое. Это полезно не только в фундаментальных исследованиях, но и в практических областях, таких как медицина, сельское хозяйство и экология.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+13
Комментарии1

Как Kanban позволил повысить гибкость, прозрачность и скорость реализации ключевых проектов в компании

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

Всем привет! Меня зовут Дмитрий, я более 7 лет занимаюсь трансформациями компаний и построением процессов в области создания продуктов и управления проектами с помощью Гибких подходов управления Agile. Недавно меня пригласили в один развивающийся американский стартап, который делает SAAS B2B продукт.

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

Анализ данных с использованием библиотеки Dask

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


Автор статьи: Артем Михайлов


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

Dask может использоваться для выполнения разнообразных задач, включая анализ данных, обработку изображений, машинное обучение, и многое другое. Его фундаментальной концепцией является создание графа задач, который описывает вычисления и зависимости между ними. Затем этот граф может быть выполнен параллельно или распределенно.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Анализ и визуализация данных с помощью библиотеки Altair

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


Автор статьи: Артем Михайлов

Altair — это декларативная библиотека визуализации данных, разработанная на основе языка Vega и Vega-Lite. Она предоставляет высокоуровневый интерфейс для создания информативных и красочных графиков с минимальными усилиями. Основная философия Altair заключается в том, что пользователи должны описывать, что они хотят увидеть на графике, а не как это реализовать. Это делает код более читаемым и интуитивно понятным.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+8
Комментарии2

CTO и инженерная культура – кто за что отвечает?

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

Едва ли не самой главной зоной ответственности CTO считается инженерная культура компании. Что это такое? Однозначного ответа нет. Она собирается из разных кубиков, в зависимости от бизнес-модели компании, ее технологической зрелости, подходов в управлении, людей в команде. И вот за такое неоднозначное понятие должен отвечать CTO.

Что такое инженерная культура компании, чем она отличается от стратегии, как всем этим управлять, что для этого нужно знать и уметь – приглашаем почитать.

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

Relay атаки. Часть 3

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

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

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

Функциональное тестирование в SpringBoot

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

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

Начнем. Из пререквизитов у нас есть код приложения BookController.java.

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

Как организовать процесс тестирования гипотез в команде и сэкономить несколько десятков миллионов рублей

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

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

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

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

Relay атаки

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

В статье мы продолжим знакомиться с атаками Relay в инфраструктуре Windows Active Directory. Начальные настройки тестового стенда можно найти в первой части этого цикла статей. А сейчас попробуем провести Relay атаки на взаимодействие по протоколам SMB->LDAP, HTTP->LDAP и HTTP->RPC.

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

Как наладить предсказуемую и управляемую поставку в масштабе 200+ человек и 20 продуктовых команд

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

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

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

Relay Lab

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

Лучшее описание этого термина, это описание ситуации, когда он может быть применен. Relay - это атака, в которой злоумышленник смог провести систему и создал условия man-in-the-middle атаки, когда он может контролировать трафик между клиентом и сервером.

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

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

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

Прогноз покупки страховки клиентами туроператора

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

Всем привет! Данная статья является выпускным проектом выпускницы OTUS. Наталья попыталась сделать прогноз покупки страховки клиентами туроператора методами ML. Что из этого вышло, смотрите под катом.

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

Kubernetes Observability: sidecar logging

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

Привет Хабр!

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

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

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

Kubernetes AppArmor

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

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

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

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

Информация

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