Mad Devs Channel
1.6K subscribers
664 photos
30 videos
1 file
867 links
Канал Mad Devs.🤘Здесь мы рассказываем о жизни компании и инсайтах. Делимся знаниями и лайфхаками IT-индустрии.
Download Telegram
В нынешнюю цифровую эпоху организации здравоохранения обратились к облачным вычислениям для хранения и доступа к электронной медицинской информации из-за ее многочисленных преимуществ.

Недавно на Хабре была опубликована статья нашего СIO Андрея Сапожникова, в которой он с разных сторон рассматривает почему важно соответствовать требованиям HIPAA в облачной инфраструктуре: https://habr.com/ru/articles/731428/

Приятного чтения!
👍5😁1
Mad Stream возвращается 🔥

8 июня рекрутер Mad Devs Маргарита Мысина выступит на онлайн-стриме с темой: «Как попасть в Mad Devs начинающему разработчику».

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

Когда: 8 июня (четверг) в 19:00 (UTC 6+)

Вход на стрим – свободный! Ссылка будет доступна в нашем Telegram-канале за 15 минут до начала ивента.
🔥22👍71
Кто такой фасилитатор и всегда ли он нужен на встречах?
Если вы сталкиваетесь с проблемами на встречах команды, размышляли ли вы о привлечении фасилитатора, который поможет провоить их более эффективно?

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

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

Типы встреч, на которых фасилитатор может быть особенно полезен:

📌 Decision-making meetings
Когда возникает необходимость в принятии серьезных решений, фасилитатор берет на себя организацию дискуссии и обеспечивает принятие обоснованных решений, основанных на фактах и целях. Он также стимулирует поиск взаимовыгодного решения и убеждается, что команда полностью привержена выбранному решению.

📌 Team Gathering / Team Building
Фасилитатор способствует укреплению команды, повышению мотивации и улучшению коммуникации. Он помогает создать дружественную атмосферу, используя игры, упражнения и дискуссии, чтобы помочь команде погрузиться в обсуждаемую тему и вдохновить на совместную работу.

📌 Problem Solving
Фасилитатор помогает команде решать серьезные проблемы и конфликты. Он создает безопасную атмосферу, обеспечивает равный доступ к высказываниям и предлагает техники, которые помогут команде осознать суть проблемы, найти возможные решения и выбрать наилучший вариант.

📌 Design & Innovation Workshop
Когда команда собирается для разработки нового продукта, сервиса или процесса, фасилитатор предлагает креативные методики, помогающие определить проблему, генерировать идеи и выбирать лучшие из них. Он также может организовать процесс прототипирования и тестирования, чтобы удостовериться, что идея работает как задумано.

Возможно, у вас есть опыт встреч с участием фасилитатора, или вы тот самый классный фасилитатор, то расскажите в комментариях как это проходит у вас в компании и что вам помогает в работе 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Хранение данных с Grafana Mimir
Мир сегодня состоит из данных, и эффективные инструменты работы с ними - наше все.
сегодня мы рассмотрим один из таких инструментов под названием Mimir.

Что такое Grafana Mimir?
Это инструмент, основанный на проекте Cortex, предназначенный для долгосрочного хранения метрик.

Как он работает?
Mimir принимает данные от систем-источников через функцию Prometheus remote-write.

Они, представленные в формате временных рядов, затем сохраняются в облачных хранилищах, таких как Amazon S3 или GCS.

Mimir использует блочное хранение, что позволяет эффективно работать с большими объемами данных и обеспечивает быстрый доступ к ним.

Преимущества Mimir
🔹 Распределенная нагрузка и оптимизированное хранение для быстрой обработки данных.
🔹 Использование механизмов сжатия, кэширования и индексации для улучшения производительности.
🔹 Возможность быстро загружать и обрабатывать большие объемы данных из различных источников.
🔹 Сбор и агрегация данных из Prometheus, VictoriaMetrics и Grafana Agent.
Надежное и экономичное хранение данных.

Недостатки Mimir
🔸 Отсутствие поддержки downsampling и удаления отдельных блоков данных.
🔸 Некоторые ограничения функциональности по сравнению с другими инструментами, такими как Thanos.

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

А вы используете Mimir? Поделитесь вашим опытом в комментариях.
👍4🤔1
Mad Devs Channel
Mad Stream возвращается 🔥 8 июня рекрутер Mad Devs Маргарита Мысина выступит на онлайн-стриме с темой: «Как попасть в Mad Devs начинающему разработчику». Пожалуй, самый частый вопрос, который мы получаем в ответ на наши посты в социальных сетях это «Я хочу…
Напоминаем, что уже завтра в 19:00 (UTC 6+) начнется Mad Stream на котором Маргарита Мысина, наш рекрутер, расскажет о том «Как попасть в Mad Devs начинающему разработчику» 🔥

Вход на стрим – свободный! Ссылка будет опубликована в нашем Telegram-канале за 15 минут до начала ивента.
👍13👏2
Комбинаторика и программирование
Комбинаторика — это раздел математики, который изучает комбинаторные структуры, такие как перестановки, сочетания и разбиения. Она занимается изучением способов выбора, упорядочивания и сочетания элементов в конечных множествах.
Другими словами, комбинаторные методы позволяют рассчитать все возможные варианты решения задачи с учетом ограничений и определить оптимальные решения на основе различных критериев. Комбинаторика имеет широкое применение в разработке. Направления, которые не обошлись без этого раздела математики:

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

📌 Анализ данных и машинное обучение
Помогает выделять паттерны, находить закономерности, оптимизировать модели машинного обучения и автоматизировать отбор признаков.

📌 Исследование социальных сетей
Применяется для выделения значимых сообществ и групп людей.

📌 Обработка естественного языка
Используется для анализа пропущенных данных, распределения слов и определения структуры предложений.

📌 Распознавание текста, изображений и речи
Помогает определить оптимальное подмножество признаков для точного распознавания.

📌 Разработка игр
Применяется для создания игровых механик, балансировки игрового процесса и процедурной генерации контента.

Комбинаторика помогает программистам и инженерам создавать эффективные алгоритмы и решать сложные задачи оптимизации.

Что почитать по комбинаторике, чтобы лучше разбираться?
📕 «Комбинаторика», Н. Я. Виленкин
📕 «Введение в комбинаторный анализ», Джон Риордан
📕 «Конкретная математика. Математические основы информатики», Дональд Кнут
👨‍💻3🤨1🤓1
🎬🐍 10 фильмов и сериалов, в которых пишут на Python (или делают вид)

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

📌 В поле зрения, 2011–2016 – Кинопоиск: 8.0, IMDB: 8.5
Мистер Финч, разработчик программы предсказания преступлений, нанимает бывшего агента ЦРУ Риза для остановки преступлений, объединяя свои ресурсы и технику с навыками Риза.

📌 Остановись и гори, 2014-2017 – Кинопоиск: 7.9, IMDB: 8.4
Временная компьютерного бума. 1980-е. Инновации мечтателя, вундеркинда и инженера борются с корпоративными гигантами.

📌 Загрузка, 2020, – Кинопоиск: 7.5, IMDB: 7.9
В будущем программист Нэйтан после смерти переносится в виртуальный мир и влюбляется в реальную девушку Нору.

📌 Из машины, 2014 – Кинопоиск: 7.1, IMDB: 7.7
Молодой сотрудник по просьбе миллиардера тестирует женщину-робота с искусственным интеллектом в отрезанном от мира доме.

📌 Пиратская бухта: B удалении от клавиатуры, 2013 – Кинопоиск: 7.1, IMDB: 7.4
Документальный фильм о создателях The Pirate Bay и их судебной тяжбе. Режиссер Саймон Клозе за пять лет задокументировал их борьбу с правообладателями.

📌 Газонокосильщик, 1992 – Кинопоиск: 6.6, IMDB: 5.4
Ученый Трэйс повышает умственные способности косильщика Джоуба, но эксперимент превращает его в монстра-психопата с претензиями на мировое господство.

📌 Пароль «Рыба-меч», 2001 – Кинопоиск: 7.2, IMDB: 6.5
Опасный шпион Гэбриэл Шир и хакер Стэнли Джобсон совершают дерзкую кражу, но Стэнли осознает, что он всего лишь пешка в большой игре.

📌 Кто я, 2014 – Кинопоиск: 7.4, IMDB: 7.5
Молодой гений Бенджамин встречает харизматичного Макса и вместе совершают дерзкие кибер-преступления, становясь кумирами для поколения. Но что ждет их в альтернативной реальности? Кто они на самом деле?

📌 Опасная правда, 2001 – Кинопоиск: 6.8, IMDB: 6.1
Молодой программист Майло попадает в опасные игры и тайны мультимедийной корпорации, осознавая свою уязвимость и готовясь сразиться с миллиардером-игроком.

📌 Тихушники, 1992 – Кинопоиск: 6.7, IMDB: 7.1
Шутники, тестирующие системы безопасности, попадают в опасные приключения, когда правительство шантажирует их для выполнения тайных операций. Их программирование становится ключом к воровству информации.

Желаем вам погрузиться в увлекательный мир программирования и кинематографии и отлично провести выходные ❤️
👍7😁2
CSS-селектор :has() на примерах

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

♦️ Чтобы выбрать родительский элемент, содержащий определенный дочерний элемент, используйте следующий синтаксис:
:has() { ... }

Пример: чтобы выбрать элемент с классом "everybody", у которого есть потомок с классом "a-good-time", вы можете написать:
.everybody:has(.a-good-time) { ... }

♦️Чтобы выбрать родительский элемент, следующий за определенным элементом, используйте следующий синтаксис:
:has(+ ) { ... }

Пример: чтобы выбрать элемент , у которого есть родственный следующий элемент , вы можете написать:
label:has(+ input) { ... }

♦️:has() также может быть комбинирован с другими селекторами и псевдоклассами для создания более сложных выборок.

Например, можно использовать :not() для исключения элементов:
a:not(:has(> svg)) { ... }

♦️Или использовать :root для выбора элемента, у которого определенное состояние присутствует в DOM:
:root:has(.menu-toggle[aria-pressed="true"]) { ... }

Это лишь несколько примеров того, как использовать CSS-селектор :has(). Вы можете комбинировать его с другими селекторами и псевдоклассами, чтобы создавать более точные и уникальные стили для элементов на вашей веб-странице. Как часто вы используете :has() ? Поделитесь в комментариях 👇
🔥6👍3
Как вовлечь молчунов на встрече или хотя бы узнать их мнение?

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

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

🔴Пишите
Попросите всех участников встречи записать свои идеи, например, в общий чат, на бумагу или на доске в Miro. Писать проще, чем говорить. А потом комфортнее структурировано высказывать свои мысли.

🔴 Микрофон
Передавайте реальный или виртуальный микрофон по кругу, предоставляя слово каждому участнику встречи.

🔴 Мини-группы
Разделите большую группу на подгруппы по 3-4 человека и дайте им задание или тему для обсуждения. В подобной атмосфере молчунам будет проще разговориться.

🔴 Напарники
Разделите участников встречи на пары. Так у молчунов не получится отсидеться, отмолчаться. Кроме того, у участников встречи получится продуктивно обсудить тему.

🔴 Голосуем
Это отличный способ вовлечь участников в разговор. Попробуйте это сделать по методу First to Five, который поможет быстро получить обратную связь или оценку консенсуса во время встречи.

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

А что вам помогает в работе? Как вы вовлекаете молчунов? Ждем ваших советов в комментариях 👇
👍101
Правильное командное голосование - Fist to Five 🖐

Вчера мы писали про встречи и молчунов и упомянули технику Fist to Five («От кулака до пяти»). Сегодня поговорим об этом поподробнее и как это поможет быстро и наглядно проверить комитмент (согласие) группы с решением/идеей/планом.

Как это работает?
📌 Ведущий озвучивает вопрос или предложение группе.
📌 После каждый участник показывает свой уровень согласия, поднимая определённое количество пальцев — от закрытого кулака до пяти пальцев. Если встречи без камеры, то участники могут отправить цифры или эмодзи в чат.

Что это значит?
👊 Закрытый кулак — сильное несогласие или полное «нет».
👆 Один палец — огромные сомнения по поводу предложенного решения.
✌️ Два пальца — есть сомнения, которые необходимо обсудить, прежде чем принять решение.
🤟 Три пальца — не против попробовать, но есть пара моментов, которые нужно учесть после принятия решения.
🤘🤘 Четыре пальца — согласие, но с некоторыми мелкими сомнениями.
🖐️ Пять пальцев — полное согласие, энтузиазм по поводу решения, отчётливое «да».

Как оценивать результаты?
📌 Если мнения от трёх до пяти — решение можно брать в работу.
📌 Если есть оценки ниже трёх, нужен как минимум ещё один раунд обсуждения или даже другое решение.
📌 Если при голосовании много троек, то такое решение стоит не брать, обсудить, как можно его улучшить.

Чем хороша данная техника?
Поддерживает активное участие: каждому предоставляется возможность высказаться, исключая возможность отказа со словами "Мне это решение с самого начала не нравилось!"
Обеспечивает прозрачность и помогает фасилитатору и команде быстро распознать общий настрой и выявить возможные области несогласия.
Экономия времени и вместо того, чтобы индивидуально опрашивать каждого члена, вы можете быстро визуализировать общее настроение группы всего за несколько секунд.
Активный диалог способствует уточнению неясностей, ответам на вопросы и поощряет взаимодействие между участниками команды.

Помните, чтобы успешно применять метод "От кулака до пяти", необходимо создать безопасную и уважительную атмосферу, где каждый будет чувствовать себя комфортно, чтобы свободно выражать свои мысли. 👍
👍7🤔2👏1
Сложная логическая задача от Amazon 🧑‍💻

В давние времена, когда «Амазон» не увольнял, а набирал сотрудников, там давали такую задачку:

Есть пять цифр: 1, 2, 3, 4, 5. С помощью перестановок из них составили все возможные комбинации пятизначных чисел. Найдите сумму этих чисел как можно быстрее.

Решать можно как угодно, оценивается сам ход решения. Пишите ваши варианты решения в комментариях, а в пятницу мы расскажем о своих.
👍6🔥2🤣1
Mad Devs Channel
Сложная логическая задача от Amazon 🧑‍💻 В давние времена, когда «Амазон» не увольнял, а набирал сотрудников, там давали такую задачку: Есть пять цифр: 1, 2, 3, 4, 5. С помощью перестановок из них составили все возможные комбинации пятизначных чисел. Найдите…
Итак, решение той самой задачи от Amazon. На самом деле есть несколько способов ее решить. Мы поделимся с вами двумя:

📌 Складываем все подряд. Самый простой способ решения выглядит так:

Берём листочек и выписываем все варианты перестановок.
Запускаем калькулятор и начинаем складывать по очереди все числа.
Так делаем 120 раз.
Profit!
Проблема в том, что нам нужно найти решение как можно быстрее, а выписывать и потом складывать 120 чисел — долго. Дело в том, что общее количество перестановок без повторений из пяти элементов — это 5! , то есть факториал пяти:

5! = 1 × 2 × 3 × 4 × 5

Ещё можно ошибиться в одной из комбинаций и из-за этого получить неправильный ответ. Так что это точно не самый быстрый способ решения задачи.

📌А теперь давайте решим эту задачу как трушные разработчики:
Если у нас есть под рукой браузер и пять свободных минут, можно написать код, который простым перебором найдёт все комбинации и посчитает их сумму. Логика кода будет такая:

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

3 999 960

Вручную такое мы бы точно считали очень долго.
👍5🔥3
Mad Devs Channel
Итак, решение той самой задачи от Amazon. На самом деле есть несколько способов ее решить. Мы поделимся с вами двумя: 📌 Складываем все подряд. Самый простой способ решения выглядит так: Берём листочек и выписываем все варианты перестановок. Запускаем калькулятор…
Ну а самое короткое и оригинальное решение задачи нашел наш подписчик Филипп Шевченко. В комментариях он оставил такой вариант:

«Из множества перестановок, всегда найдется пара, которая в сумме равна 66666. Ответ:
5!*66666/2 = 3999960»

Филипп, вы крут! Ждем ваших решений в наших следующих задачах.

Дайте огня, если вам нравится наша рубрика с задачами 🔥👇
🔥31👍2💔1
В объектно-ориентированном программировании есть паттерн «Хранитель» 🔒 Он позволяет сохранять состояние объекта и восстанавливать его в будущем. Этот паттерн может быть особенно полезен, если у вас есть объект с чувствительными данными, которые вы хотите сохранить или восстановить в случае сбоя программы.

Разбираем паттерн на примере в Java для класса «Текстовый редактор». Смотрите в карточках⬆️
👍3🔥3🤣2