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

А сегодня дадим возможность подумать еще😉
👍3
А теперь решение задачи с массивами. ⬇️

Для решения задачи нам нужно учесть, что в финальном массиве не будет значений, превышающих максимальное значение в исходном массиве, поскольку увеличение всех элементов не имеет смысла. Кроме того, значения в финальном массиве будут больше минимального значения в исходном массиве. Мы будем последовательно проверять все возможные значения элементов финального массива (которые должны быть равны) и подсчитывать, сколько операций второго типа нужно выполнить. Для каждого значения элемента i (одного из возможных значений элемента финального массива) число операций вычисляется по формуле (n * i – s), где s - сумма всех элементов исходного массива. Число операций первого типа, необходимых для приравнивания элементов к i, можно вычислить следующим образом:

1️⃣ Проходимся по всем элементам исходного массива:
for (int j = 0; j
2️⃣ Вычисляем количество операций первого типа для i-го элемента:
op1 += max(0, a[j] - i)
3️⃣ После того, как мы вычислили количество операций для каждого i, мы проверяем, меньше ли это значение, чем предыдущее значение ans. Если да, то мы обновляем ans новым количеством операций. Формула для ans: ans = (n * i – s) * b + op1 * a.

Согласны с таким способом или ваш вариант был лучше?
👍4
Pytest фикстуры простым языком

Python - это настоящий швейцарский нож в мире программирования. Он обладает многими встроенными функциями, невероятно полезными для разработки 🤟

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

📌 Основы фикстур

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

📌 Фикстуры с параметрами

Параметризированные фикстуры передают разные значения аргументов, создавая разнообразные тестовые сценарии. Для параметризации используется @pytest.fixture(params=...). Список параметров передается в виде итерируемого объекта.

📌 Предусловия и постусловия

Фикстуры могут выполнять пред- и постусловия с помощью оператора yield. Сначала определяются предусловия перед yield, а постусловия после него. Это позволяет автоматически выполнять их перед и после каждого теста соответственно.

📌 Область видимости фикстур

Фикстуры имеют разные уровни области видимости: function, class, module, package и session. Выбор правильной области видимости оптимизирует процесс тестирования, минимизируя повторения.

📌 Автоматическое использование фикстур

Фикстуры с параметром autouse=True применяются автоматически ко всем тестам. Это удобно для выполнения действий перед каждым тестом без явного вызова фикстуры. Они также могут быть полезны для обеспечения согласованности в условиях тестирования.

📌 Модульные фикстуры

Модульные фикстуры определяются в отдельных файлах (conftest.py) и могут быть импортированы в разных тестовых модулях для повторного использования кода. Это помогает создавать более структурированный и модульный код тестов, упрощая поддержку и расширение.

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

Надеемся, данный пост дал вам более чистое понимание фикстур и вдохновил на более глубокое их изучение и применение в собственных проектах ❤️
👍71
Производительность CSS селекторов

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

🔗 селекторы тегов
🔗 селекторы классов
🔗 селекторы идентификаторов
🔗 селекторы атрибутов
🔗псевдоселекторы

Каждый селектор имеет свой уровень специфичности и влияния на производительность.

Команда разработчиков Microsoft Edge провела обширное тестирование, чтобы определить влияние селекторов CSS на производительность. Они протестировали различные селекторы, включая селекторы тегов, селекторы классов и селекторы идентификаторов, и обнаружили, что общее влияние на время загрузки страницы было относительно небольшим.

📌 Самые медленные селекторы, такие как селекторы атрибутов и универсальные селекторы, добавляли лишь доли миллисекунды к общему времени загрузки страницы.
📌 Самые быстрые селекторы, такие как селекторы идентификаторов, были лишь немного быстрее самых медленных селекторов. В большинстве случаев разница в производительности между самым быстрым и самым медленным селекторами составляла всего 15-20%.

Команда разработчиков Microsoft Edge также предоставила несколько советов по оптимизации селекторов CSS для повышения производительности. Они рекомендовали:

1. Избегать универсальных селекторов, поскольку они могут замедлить скорость рендеринга веб-страниц.
2. Ограничить использование селекторов-потомков, поскольку они могут увеличить специфичность селекторов и замедлить скорость рендеринга веб-страниц.
3. Использовать селекторы классов и идентификаторов, поскольку они более специфичны и быстрее, чем селекторы тегов.
4. Использовать препроцессоры CSS, такие как Sass или Less, которые могут оптимизировать селекторы и уменьшить количество селекторов, используемых в таблице стилей.

Влияние селекторов CSS на производительность не столь значительно, как может показаться некоторым разработчикам, все же важно оптимизировать селекторы для повышения производительности.

В современной быстро меняющейся веб-среде на счету каждая миллисекунда, поэтому при разработке веб-страниц важно помнить о производительности.
👍7
В #40 выпуске Кибирд Михаил Иващенко и Олег Пузанов поговорили на тему софт скилов.

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

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

Спойлер: у Олега все же есть тот самый маленький чемоданчик)

🔗Смотреть новый выпуск тут

Приятного просмотра!
8🔥6🤔1
Create react app мертв?

Один из инструментов, используемых при разработке React-приложений, это create-react-app. Он предоставляет удобный и простой способ создания и настройки новых проектов. Однако, недавно было объявлено, что поддержка create-react-app в его текущем виде будет прекращена из-за стагнации и плохой производительности.

Что же делать, если вам по какой-то причине нужно использовать React в чистом виде?

Разработчики рассматривают несколько вариантов действий:

🔺 Создание нового фреймворка с нуля и переквалификация Create React App под него не считается целесообразным.
🔺 Отказ от Create React App и поддержка другого сложного шаблона для создания приложения с использованием Vite.
🔺 Уменьшение или полное прекращение использования Create React App в пользу продвижения фреймворков, при этом фреймворки будут предпочтительными, но не обязательными. Однако, возникает проблема отсутствия фирменного CLI шлюза, что может негативно повлиять на бренд.
🔺 Использование Create React App для создания приложения уже на основе выбранного фреймворка. Это может вызвать проблемы конкуренции у других фреймворков, а также невозможность использования старых туториалов.
🔺 Создание списка рекомендуемых фреймворков и возможность использования классического подхода создания приложения без фреймворка с Vite под капотом. Этот вариант предлагает использовать Create React App в качестве лаунчера и рекомендовать фреймворки, однако пользователи смогут использовать чистый React.

Наиболее действенным считается пятый вариант. А вы как думаете?
👍6
Уже в эту субботу Mad Devs Meetup: Design Day⚡️

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

Помимо анонсированных ранее докладов, вас ждет панельная дискуссия с дизайнерами Mad Devs — Владой Щербининой, Жылдызбеком Жумашовым и Александром Кривовым (Skriv) и приглашенными спикерами:

🗣Клименко Алексей, Ai Concept Artist

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

🗣 Гармаш Алексей, Graphic and product designer

Графический джедай с 16 летним стажем в индустрии, опыт работы с крупными компаниями и старт-апами, администратор группы «Дизайнеры.KG»

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

Ждем вас:
📅 13 мая 2023 года 11:00
📍 ololoPlanet, Юнусалиева 80, Бишкек

Участие совершенно бесплатное. Необходимо пройти регистрацию.
👍8
Python уже везде или библиотеки Pyhton для работы с энергосистемами

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

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

Рассмотрим часть из них в этом посте

📌 CIM - Common Information Model - определяет стандартную структуру и схему данных для электроэнергетических систем. CIM предоставляет набор инструментов для обработки и анализа данных электроэнергетических систем, таких как сетевые топологии, статус оборудования и потоки мощности.

📌 Breakthrough Energy - сосредоточена на разработке технологий, направленных на решение проблем, связанных с изменением климата. Она предоставляет доступ к инновационным решениям в области энергетики и стимулирует исследования в области чистых источников энергии.

📌 Calliope - позволяет моделировать и оптимизировать энергетические системы с использованием Python. Она обладает гибкой архитектурой, которая позволяет создавать настраиваемые модели, включая модели с участием возобновляемых источников энергии.

📌 CLOVER - используется для моделирования и анализа электрических сетей. Она предоставляет возможность оптимизировать распределение энергии и ресурсов, а также анализировать эффективность системы.

📌 Dispa-SET - используется для моделирования и оптимизации энергетических систем, включая производство и распределение энергии. Она также обладает функциями анализа надежности сети и расчета затрат на производство энергии.

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

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

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

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

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

📌 Power Grid Model - это библиотека, которая предоставляет гибкие инструменты для создания настраиваемых моделей электрических сетей. Она также предоставляет возможность анализировать влияние изменений в системе на надежность и эффективность сети.

Если вы уже используете одну из этих библиотек, то поделитесь с нами, почему вы выбрали именно ее?
👍3🔥1😢1
Mad Devs Channel
Mad Devs Meetups: Design Day ⚡️ Дорогие дизайнеры Tech компаний, мы рады пригласить вас на первый Design Day. Митап пройдет 13 мая (суббота) в ololoPlanet. В программе митапа: 📌 Знакомство с design комьюнити, 📌 Выступления трех спикеров из Mad Devs, 📌 Панельная…
Design Day уже завтра ⚡️

Наш профессиональный митап для дизайнеров в Tech компаниях состоится уже завтра 13 мая.

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

Ждем вас:
📅 13 мая 2023 года 11:00
📍ОлолоПланет, Юнусалиева 80, конференц зал, 1 этаж

Участие в ивенте совершенно бесплатное.
Зарегистрироваться можно тут
10
10 вещей, которые стоит сделать вечером вместо того, чтобы смотреть Netflix

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

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

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

📍 Очистите свою голову от «открытых циклов»
Как пишет Крис Бейли в «Гиперфокусе»: «Пустой мозг — продуктивный мозг, и чем больше вещей мы выбрасываем из головы, тем яснее мы думаем».
Помогите себе. Выпишите свои проблемы, список дел, запланируйте встречи в календаре и освободите свой мозг от отягощающих мыслей.

📍 Не позволяйте своему разуму питаться “фаст-фудом”
Одно из лучших решений, которое вы можете принять, — перестать потреблять то, что называется «мусорными СМИ». Это могут быть реалити-шоу, ток-шоу, сплетни о знаменитостях. Постарайтесь смотреть хорошие фильмы или документальные, а также авторов на YouTube, которые делают высококачественный контент.

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

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

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

📍Почитайте что-нибудь веселое и не связанное с работой
Исследования показывают, что чтение художественной литературы — один из самых эффективных способов уменьшить стресс на 68%. Это больше, чем прослушивание музыки, прогулка или чаепитие.

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

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

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

Надеемся, что хотя бы одно из этих занятий поможет вам тратить меньше времени на просмотр шоу и больше времени уделять отношениям, отдыху и концентрации. А как вы проводите свои вечера? Поделитесь в комментариях 👇
👍9🔥43
Интересные способы использования ChatGPT, о которых вы даже не подозревали

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

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

📍Вопросы и ответы приглашенного спикера
Допустим, у вас скоро встреча с приглашенным докладчиком и вы хотите задать вопросы из аудитории. Попросите ChatGPT предварительно сгенерировать некоторые вопросы и подготовить примерные ответы на эти вопросы.

📍Создание игр
Вы можете попросить написать сюжет для настольной или компьютерной игры.

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

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

📍Подготовка к собеседованию
Если вам нужно подготовиться к собеседованию, то попросите ChatGPT обдумать вопросы и ответы, которые могут быть на интервью.

📍Объяснение сложных понятий
Не знаете ничего о квантовой физике? ChatGPT может объяснить её вам так, как будто вам 10 лет, понятным языком.

Вы пробовали что-то из этого? Расскажите нам о своих успехах в разделе комментариев! 👍
👍6
Невозможно просто взять и не поделиться с вами новой задачей 🤩

Вам даны 2 строки: str1 и str2. Вам нужно вывести все возможные варианты преобразования str1 в str2. К str1 применимы операции:

🔸 вставки;
🔸 удаления;
🔸 замены.

Все операции имеют одинаковую стоимость.

Задача: Вам нужно вывести все варианты преобразования str1 в str2 с использованием минимального количества шагов.

Подсказка: последовательность операций является вариантом ответа.

Приступим. Вход: str1 = «abcdef», str2 = «axcdfdh»

Выход:

Вариант 1:

Вставить h;
Заменить f на d;
Заменить e на f;
Заменить b на x.

Вариант 2:

Заменить f на h;
Вставить d;
Заменить e на f;
Заменить b на x.

Вариант 3:

Заменить f на h;
Заменить e на d;
Вставить f;
Заменить b на x.

Как вы бы ее решили? Пишите в комментариях.

Если же вы не можете справиться с задачей, но хотите узнать решение, то оставляйте реакцию 🔥
🔥7
PM Conference в ololoAkJol на Иссык-Куле уже в эти выходные ⚡️

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

Мы также примем участие в данном мероприятии и в роли спикера выступит наш Marketing Project Manager Мария Заиченко с темой о построении процессов в маркетинге.

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

С программой ивента, а также стоимостью вы можете ознакомиться здесь

Бронь:
📞 +996 (777) 1000 30
💬 +996 (504) 1000 30 (W/A)
📍с. Кош-Кель, всего 220 км от Бишкека
🔥5👍2