Как стать автором
Обновить
0
Oksana @tozhovezread⁠-⁠only

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

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

Мифы о доступности цветового контраста

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

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


Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии7

Apache Airflow: преимущества и недостатки

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

Одним из популярных оркестратором задач является Apache Airflow. Он, как и все инструменты, имеет свои преимущества и недостатки, о которых пойдет речь в данной статье.

Подробнее
Всего голосов 14: ↑12 и ↓2+13
Комментарии4

Что происходит, когда вы создаёте Pod в Kubernetes?

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

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

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

Визуализация исходного кода на языке golang

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

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

Рисовать схемы вручную никто хочет — надо создавать их полностью автоматически, автодокументацией.

Предлагаю вниманию несколько инструментов для визуализации кода.

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

Airflow — инструмент, чтобы удобно и быстро разрабатывать и поддерживать batch-процессы обработки данных

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

image


Привет, Хабр! В этой статье я хочу рассказать об одном замечательном инструменте для разработки batch-процессов обработки данных, например, в инфраструктуре корпоративного DWH или вашего DataLake. Речь пойдет об Apache Airflow (далее Airflow). Он несправедливо обделен вниманием на Хабре, и в основной части я попытаюсь убедить вас в том, что как минимум на Airflow стоит смотреть при выборе планировщика для ваших ETL/ELT-процессов.


Ранее я писал серию статей на тему DWH, когда работал в Тинькофф Банке. Теперь я стал частью команды Mail.Ru Group и занимаюсь развитием платформы для анализа данных на игровом направлении. Собственно, по мере появления новостей и интересных решений мы с командой будем рассказывать тут о нашей платформе для аналитики данных.

Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии27

Airflow Workshop: сложные DAG’и без костылей

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


Привет, Хабр! Меня зовут Дина, и я занимаюсь разработкой игрового хранилища данных для решения задач аналитики в Mail.Ru Group. Наша команда для разработки batch-процессов обработки данных использует Apache Airflow (далее Airflow), об этом yuryemeliyanov писал в недавней статье. Airflow — это opensource-библиотека для разработки ETL/ELT-процессов. Отдельные задачи объединяются в периодически выполняемые цепочки задач — даги (DAG — Directed Acyclic Graph).


Как правило, 80 % проекта на Airflow — это стандартные DAG’и. В моей статье речь пойдёт об оставшихся 20 %, которые требуют сложных ветвлений, коммуникации между задачами — словом, о DAG’ах, нуждающихся в нетривиальных алгоритмах.

Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии25

Документируем реагирование на инциденты

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

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

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

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

Практическое руководство по методу максимального правдоподобия

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

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

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

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

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

Как повысить безопасность Docker-контейнеров

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

Контейнеры Docker уже довольно давно стали неотъемлемой частью инструментария разработчика, позволяя собирать, распространять и развертывать приложения стандартизированным способом.

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

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

Деплоим приложение в k8s через Jenkins+Helm3+ArgoCD

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

В мире современной разработки программного обеспечения Kubernetes (K8s) стал неотъемлемой частью инфраструктуры, предоставляя масштабируемость и гибкость в развертывании контейнеризированных приложений. В этой статье мы рассмотрим эффективный способ деплоя приложений в среде Kubernetes, используя мощные инструменты: Jenkins, Helm 3 и ArgoCD.

Jenkins, с его широким спектром возможностей для автоматизации процессов сборки и развертывания, становится основой нашего пайплайна разработки. Helm 3, в свою очередь, предоставляет инструменты для управления пакетами Kubernetes (чарта), упрощая установку и обновление приложений. Наконец, ArgoCD позволяет автоматизировать процесс развертывания и управления приложениями в Kubernetes-кластере, предоставляя возможность контролировать состояние и версионирование приложений.

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

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

Реализация Multiple sources Argo CD + ChartMuseum для 10 однотипных микросервисов

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

Приветствую! Меня зовут Ксения, и я — DevOps инженер компании Smartex. 

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

Если ваша повседневная рутина связана с множеством однотипных микросервисов и разнообразными средами, данная информация может быть для вас полезна. Материал рассчитан на Junior+ и Middle DevOps специалистов.

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

Как управлять Kubernetes с помощью Ansible

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

Делимся переводом статьи об интеграции Kubernetes и Ansible. Из статьи вы узнаете, как подготовить среду для работы, как развернуть кластер Kubernetes с помощью Ansible, как управлять ресурсами Kubernetes и автоматизировать обновления. Кроме того, вы узнаете, как развернуть плейбук Ansible в Kubernetes на облачном провайдере и использовать Ansible для CI/CD в Kubernetes.

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

10 приемов, разрушающих хрупкую красоту кода

Время на прочтение19 мин
Количество просмотров102K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →
Всего голосов 402: ↑324 и ↓78+246
Комментарии411

Книга «System Design. Машинное обучение. Подготовка к сложному интервью»

Время на прочтение10 мин
Количество просмотров12K
image Привет, Хаброжители!

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

Также она поможет всем, кто интересуется проектированием систем МО, будь то новички или опытные инженеры.

Что внутри?
  • О чем на самом деле спрашивают на собеседовании по System Design в МО и почему (инсайдерская информация!).
  • 7 основных шагов для решения любой задачи МО, предлагаемой на собеседовании.
  • 10 вопросов из реальных собеседований по System Design в МО с подробным разбором ответов.
  • 211 диаграмм, которые наглядно объясняют, как работают различные системы.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии7

OSINT: инструменты

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

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

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

ChatGPT плохо отвечает на «простые вопросы». Как это починить?

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

В этой статье я расскажу о нашей последней работе — Multilingual Triple Match — системе для поиска ответов на фактологические вопросы, которая по своей точности обходит даже ChatGPT.

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

17 лучших инструментов и технологий для работы с большими данными, о которых нужно знать в 2022 году

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

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

Все это стимулирует значительные инвестиции в инструменты и технологии работы с большими данными. В своем отчете за август 2021 года компания IDC, занимающаяся исследованием рынка, оценила ожидаемые мировые расходы на системы больших данных и аналитики в $215,7 млрд в 2021 году, что на 10,1% больше, чем в прошлом году. Она также прогнозирует, что расходы будут расти на 12,8% в год до 2025 года.

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

SQL HowTo: замена в строке по набору

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

Решим сегодня простую, казалось бы, задачу: как на PostgreSQL можно в строке провести замены по набору пар строк. То есть в исходной строке 'abcdaaabbbcccdcba' заменить, например, 'а' -> 'x', 'bb' -> 'y', 'ccc' -> 'z' и получить 'xbcdxxxybzdcbx'.

Фактически, мы попробуем создать аналог str_replace или strtr.

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

Всегда ли хорош Index Only Scan?

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

Среди применяемых в PostgreSQL методов доступа к данным Index Only Scan стоит особняком, считаясь у многих разработчиков "волшебной пилюлей" для ускорения работы запроса - мол, "Index Scan - плохо, Index Only Scan - хорошо, как только получим его в плане - все станет замечательно".

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

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

SQL HowTo: ближайший общий предок в дереве (LCA)

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

В иерархических структурах регулярно возникает потребность определить ближайшего общего предка в дереве, он же наименьший общий предок (Lowest (Least) Common Ancestor).

Правда, "классические" алгоритмы для решения этой задачи работают лишь с парой узлов (раз, два, три, четыре), а мы, используя всю мощь PostgreSQL, будем решать задачу сразу для нескольких узлов.

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

Информация

В рейтинге
Не участвует
Откуда
Рамат-Ган, Тель-Авив, Израиль
Зарегистрирована
Активность

Специализация

Backend Developer, Data Engineer
Senior
Python
Linux
Database
Bash
SQL
PostgreSQL
Git
Docker
REST
MySQL