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() ? Поделитесь в комментариях 👇
: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, который поможет быстро получить обратную связь или оценку консенсуса во время встречи.
Приведенные выше советы являются лишь частью результативного общения. Следует о них помнить при подготовке к встрече, чтобы они проходили с более высокой эффективностью.
А что вам помогает в работе? Как вы вовлекаете молчунов? Ждем ваших советов в комментариях 👇
Фасилитатору не обязательно быть экспертом в содержании встречи. Но молчаливые люди — головная боль любого фасилитатора. Из-за чего возникает больше вопросов, чем ответов. Вооружившись правильными инструментами, почти каждый фасилитатор сможет разговорить любого молчуна 💪
🔴 Цель встречи
Вначале встречи проговорите цель встречи, чтобы убедиться, что все пришли на нужную встречу. Напоминание поможет создать рамки, в которых группа будет двигаться для достижения цели.
🔴Пишите
Попросите всех участников встречи записать свои идеи, например, в общий чат, на бумагу или на доске в Miro. Писать проще, чем говорить. А потом комфортнее структурировано высказывать свои мысли.
🔴 Микрофон
Передавайте реальный или виртуальный микрофон по кругу, предоставляя слово каждому участнику встречи.
🔴 Мини-группы
Разделите большую группу на подгруппы по 3-4 человека и дайте им задание или тему для обсуждения. В подобной атмосфере молчунам будет проще разговориться.
🔴 Напарники
Разделите участников встречи на пары. Так у молчунов не получится отсидеться, отмолчаться. Кроме того, у участников встречи получится продуктивно обсудить тему.
🔴 Голосуем
Это отличный способ вовлечь участников в разговор. Попробуйте это сделать по методу First to Five, который поможет быстро получить обратную связь или оценку консенсуса во время встречи.
Приведенные выше советы являются лишь частью результативного общения. Следует о них помнить при подготовке к встрече, чтобы они проходили с более высокой эффективностью.
А что вам помогает в работе? Как вы вовлекаете молчунов? Ждем ваших советов в комментариях 👇
👍10❤1
Правильное командное голосование - Fist to Five ✊🖐
Вчера мы писали про встречи и молчунов и упомянули технику Fist to Five («От кулака до пяти»). Сегодня поговорим об этом поподробнее и как это поможет быстро и наглядно проверить комитмент (согласие) группы с решением/идеей/планом.
Как это работает?
📌 Ведущий озвучивает вопрос или предложение группе.
📌 После каждый участник показывает свой уровень согласия, поднимая определённое количество пальцев — от закрытого кулака до пяти пальцев. Если встречи без камеры, то участники могут отправить цифры или эмодзи в чат.
Что это значит?
👊 Закрытый кулак — сильное несогласие или полное «нет».
👆 Один палец — огромные сомнения по поводу предложенного решения.
✌️ Два пальца — есть сомнения, которые необходимо обсудить, прежде чем принять решение.
🤟 Три пальца — не против попробовать, но есть пара моментов, которые нужно учесть после принятия решения.
🤘🤘 Четыре пальца — согласие, но с некоторыми мелкими сомнениями.
🖐️ Пять пальцев — полное согласие, энтузиазм по поводу решения, отчётливое «да».
Как оценивать результаты?
📌 Если мнения от трёх до пяти — решение можно брать в работу.
📌 Если есть оценки ниже трёх, нужен как минимум ещё один раунд обсуждения или даже другое решение.
📌 Если при голосовании много троек, то такое решение стоит не брать, обсудить, как можно его улучшить.
Чем хороша данная техника?
✅ Поддерживает активное участие: каждому предоставляется возможность высказаться, исключая возможность отказа со словами "Мне это решение с самого начала не нравилось!"
✅ Обеспечивает прозрачность и помогает фасилитатору и команде быстро распознать общий настрой и выявить возможные области несогласия.
✅ Экономия времени и вместо того, чтобы индивидуально опрашивать каждого члена, вы можете быстро визуализировать общее настроение группы всего за несколько секунд.
✅ Активный диалог способствует уточнению неясностей, ответам на вопросы и поощряет взаимодействие между участниками команды.
Помните, чтобы успешно применять метод "От кулака до пяти", необходимо создать безопасную и уважительную атмосферу, где каждый будет чувствовать себя комфортно, чтобы свободно выражать свои мысли. 👍
Вчера мы писали про встречи и молчунов и упомянули технику Fist to Five («От кулака до пяти»). Сегодня поговорим об этом поподробнее и как это поможет быстро и наглядно проверить комитмент (согласие) группы с решением/идеей/планом.
Как это работает?
📌 Ведущий озвучивает вопрос или предложение группе.
📌 После каждый участник показывает свой уровень согласия, поднимая определённое количество пальцев — от закрытого кулака до пяти пальцев. Если встречи без камеры, то участники могут отправить цифры или эмодзи в чат.
Что это значит?
👊 Закрытый кулак — сильное несогласие или полное «нет».
👆 Один палец — огромные сомнения по поводу предложенного решения.
✌️ Два пальца — есть сомнения, которые необходимо обсудить, прежде чем принять решение.
🤟 Три пальца — не против попробовать, но есть пара моментов, которые нужно учесть после принятия решения.
🤘🤘 Четыре пальца — согласие, но с некоторыми мелкими сомнениями.
🖐️ Пять пальцев — полное согласие, энтузиазм по поводу решения, отчётливое «да».
Как оценивать результаты?
📌 Если мнения от трёх до пяти — решение можно брать в работу.
📌 Если есть оценки ниже трёх, нужен как минимум ещё один раунд обсуждения или даже другое решение.
📌 Если при голосовании много троек, то такое решение стоит не брать, обсудить, как можно его улучшить.
Чем хороша данная техника?
✅ Поддерживает активное участие: каждому предоставляется возможность высказаться, исключая возможность отказа со словами "Мне это решение с самого начала не нравилось!"
✅ Обеспечивает прозрачность и помогает фасилитатору и команде быстро распознать общий настрой и выявить возможные области несогласия.
✅ Экономия времени и вместо того, чтобы индивидуально опрашивать каждого члена, вы можете быстро визуализировать общее настроение группы всего за несколько секунд.
✅ Активный диалог способствует уточнению неясностей, ответам на вопросы и поощряет взаимодействие между участниками команды.
Помните, чтобы успешно применять метод "От кулака до пяти", необходимо создать безопасную и уважительную атмосферу, где каждый будет чувствовать себя комфортно, чтобы свободно выражать свои мысли. 👍
👍7🤔2👏1
Сложная логическая задача от Amazon 🧑💻
В давние времена, когда «Амазон» не увольнял, а набирал сотрудников, там давали такую задачку:
Есть пять цифр: 1, 2, 3, 4, 5. С помощью перестановок из них составили все возможные комбинации пятизначных чисел. Найдите сумму этих чисел как можно быстрее.
Решать можно как угодно, оценивается сам ход решения. Пишите ваши варианты решения в комментариях, а в пятницу мы расскажем о своих.
В давние времена, когда «Амазон» не увольнял, а набирал сотрудников, там давали такую задачку:
Есть пять цифр: 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
Вручную такое мы бы точно считали очень долго.
📌 Складываем все подряд. Самый простой способ решения выглядит так:
Берём листочек и выписываем все варианты перестановок.
Запускаем калькулятор и начинаем складывать по очереди все числа.
Так делаем 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»
Филипп, вы крут! Ждем ваших решений в наших следующих задачах.
Дайте огня, если вам нравится наша рубрика с задачами 🔥👇
«Из множества перестановок, всегда найдется пара, которая в сумме равна 66666. Ответ:
5!*66666/2 = 3999960»
Филипп, вы крут! Ждем ваших решений в наших следующих задачах.
Дайте огня, если вам нравится наша рубрика с задачами 🔥👇
🔥31👍2💔1
В объектно-ориентированном программировании есть паттерн «Хранитель» 🔒 Он позволяет сохранять состояние объекта и восстанавливать его в будущем. Этот паттерн может быть особенно полезен, если у вас есть объект с чувствительными данными, которые вы хотите сохранить или восстановить в случае сбоя программы.
Разбираем паттерн на примере в Java для класса «Текстовый редактор». Смотрите в карточках⬆️
Разбираем паттерн на примере в Java для класса «Текстовый редактор». Смотрите в карточках⬆️
👍3🔥3🤣2
Никто не ждал, а у нас новости по NFT!
Благодаря протоколу Ordinals, рынок NFT рождается заново, теперь уже на Bitcoin блокчейне!
Мы нехитрыми манипуляциями создали свой NFT в формате видео о Mad Devs. Он является не внешней ссылкой на видео, а инскрипшеном внутри самого блока, и значит файл полностью хранится в блокчейне и останется там навсегда!
А также, мы совместно с командой нашего клиента L15 совсем скоро запустим целый NFT маркетплейс, основанный на Bitcoin блокчейне и протоколе Ordinals, что откроет новые возможности для инвесторов, коллекционеров, и всех желающих работать с уникальными цифровыми активами в одной из самых проверенных и стабильных блокчейн сетей!
Следите за новостями о предстоящем запуске в наших социальных сетях 🤘
Благодаря протоколу Ordinals, рынок NFT рождается заново, теперь уже на Bitcoin блокчейне!
Мы нехитрыми манипуляциями создали свой NFT в формате видео о Mad Devs. Он является не внешней ссылкой на видео, а инскрипшеном внутри самого блока, и значит файл полностью хранится в блокчейне и останется там навсегда!
А также, мы совместно с командой нашего клиента L15 совсем скоро запустим целый NFT маркетплейс, основанный на Bitcoin блокчейне и протоколе Ordinals, что откроет новые возможности для инвесторов, коллекционеров, и всех желающих работать с уникальными цифровыми активами в одной из самых проверенных и стабильных блокчейн сетей!
Следите за новостями о предстоящем запуске в наших социальных сетях 🤘
🔥11👍2👏2🤣1
CSS Blend Modes
Смешивание цветов в CSS - это тема, которая может показаться сложной, но она открывает множество возможностей для дизайна. И прелесть в том, что это зашито внутри самого CSS, что не требует изобретать подобный функционал самому. Давайте внимательнее рассмотрим эти самые CSS Blend Modes 👇
CSS Blend Modes реализует функционал, который позволяет нам контролировать взаимодействие цветов элементов и их фонов.
CSS Blend Modes работает на уровне цветовых каналов. Когда вы применяете один из режимов смешивания, CSS анализирует цветовые каналы (красный, зеленый и синий) каждого пикселя элемента и его фона. Затем, в зависимости от выбранного режима, CSS применяет определенную математическую операцию к этим каналам, чтобы получить новый цвет.
Например, в режиме multiply, значения цветовых каналов умножаются, что приводит к более темному результату. А в режиме screen, значения цветовых каналов инвертируются, умножаются, а затем снова инвертируются, что приводит к более светлому результату.
Всего есть 16 режимов смешивания, каждый из которых предлагает уникальные визуальные эффекты.
CSS Blend Modes является отличным инструментом в руках дизайнеров и разработчиков. Однако, чтобы полностью раскрыть его потенциал, требуется более углубленное понимание и практика.
Хорошо, что именно для этого есть потрясающий динамический сайт, который подробно объясняет и интерактивно демонстрирует работу различных режимов смешивания.
Крайне рекомендуем к посещению и ждем ваших комментариев.
Смешивание цветов в CSS - это тема, которая может показаться сложной, но она открывает множество возможностей для дизайна. И прелесть в том, что это зашито внутри самого CSS, что не требует изобретать подобный функционал самому. Давайте внимательнее рассмотрим эти самые CSS Blend Modes 👇
CSS Blend Modes реализует функционал, который позволяет нам контролировать взаимодействие цветов элементов и их фонов.
CSS Blend Modes работает на уровне цветовых каналов. Когда вы применяете один из режимов смешивания, CSS анализирует цветовые каналы (красный, зеленый и синий) каждого пикселя элемента и его фона. Затем, в зависимости от выбранного режима, CSS применяет определенную математическую операцию к этим каналам, чтобы получить новый цвет.
Например, в режиме multiply, значения цветовых каналов умножаются, что приводит к более темному результату. А в режиме screen, значения цветовых каналов инвертируются, умножаются, а затем снова инвертируются, что приводит к более светлому результату.
Всего есть 16 режимов смешивания, каждый из которых предлагает уникальные визуальные эффекты.
CSS Blend Modes является отличным инструментом в руках дизайнеров и разработчиков. Однако, чтобы полностью раскрыть его потенциал, требуется более углубленное понимание и практика.
Хорошо, что именно для этого есть потрясающий динамический сайт, который подробно объясняет и интерактивно демонстрирует работу различных режимов смешивания.
Крайне рекомендуем к посещению и ждем ваших комментариев.
👍1
Bose — фреймворк для создания веб-ботов
На сегодняшний день разработка технологий искусственного интеллекта становится одним из приоритетных направлений. Однако это достаточно трудоемкий процесс. А что, если его можно упростить, но не жертвуя скоростью и удобством разработки?
В таком случае вам может помочь, Bose — это фреймворк, основанный на Selenium, и предлагает ряд функций, упрощающих процесс разработки ботов.
Настраиваем
Скопируйте изначальный шаблон и перейдите в скачанный каталог, установите зависимости и запустите проект.
Работаем
Допустим, вам нужно начать парсинг веб-сайта. Так как Bose использует декларативный и структурированный подход, то вам нужно только написать код, а драйвер сам передаст его методу run и закроет работу.
Конфигурация
В отличие от Selenium Bose Framework упрощает конфигурацию, инкапсулируя её.
Обработка исключений
С Selenium возникают исключения, которые закрывают драйвер, оставляя журналы для отладки. Со своей стороны, Bose оставляет браузер открытым при возникновении исключений, позволяя отслеживать состояние и упрощая отладку.
Отладка
Bose упрощает отладку, сохраняя информацию о каждом запуске в каталоге с тремя файлами. Если возникает исключение, Bose сохраняет каталог с ошибкой, что помогает идентифицировать проблему.
Вывод данных
Bose упрощает сохранение данных после парсинга веб-страниц, предоставляя модуль вывода для чтения и записи данных в формате JSON или CSV. Просто используйте метод write для указанного файла.
Локальное хранилище
Bose предоставляет объект LocalStorage, который позволяет сохранять данные при запуске браузера, аналогично локальному модулю хранения в современных браузерах. Это особенно полезно для сохранения больших объемов данных при очистке. Данные сохраняются в файле local_storage.json в корневом каталоге проекта.
Особенности Bose Framework:
📌 Применяются передовые методы для обхода обнаружения ботов.
📌 Сохраняет HTML, снимок экрана и информацию о выполнении для каждой задачи.
📌 Вспомогательные компоненты для записи очищенных данных в виде файлов JSON, CSV и Excel.
📌 Автоматически загружает и инициализирует правильный драйвер Chrome.
Вы уже работали с Bose? Расскажите о своем опыте 👇
На сегодняшний день разработка технологий искусственного интеллекта становится одним из приоритетных направлений. Однако это достаточно трудоемкий процесс. А что, если его можно упростить, но не жертвуя скоростью и удобством разработки?
В таком случае вам может помочь, Bose — это фреймворк, основанный на Selenium, и предлагает ряд функций, упрощающих процесс разработки ботов.
Настраиваем
Скопируйте изначальный шаблон и перейдите в скачанный каталог, установите зависимости и запустите проект.
Работаем
Допустим, вам нужно начать парсинг веб-сайта. Так как Bose использует декларативный и структурированный подход, то вам нужно только написать код, а драйвер сам передаст его методу run и закроет работу.
Конфигурация
В отличие от Selenium Bose Framework упрощает конфигурацию, инкапсулируя её.
Обработка исключений
С Selenium возникают исключения, которые закрывают драйвер, оставляя журналы для отладки. Со своей стороны, Bose оставляет браузер открытым при возникновении исключений, позволяя отслеживать состояние и упрощая отладку.
Отладка
Bose упрощает отладку, сохраняя информацию о каждом запуске в каталоге с тремя файлами. Если возникает исключение, Bose сохраняет каталог с ошибкой, что помогает идентифицировать проблему.
Вывод данных
Bose упрощает сохранение данных после парсинга веб-страниц, предоставляя модуль вывода для чтения и записи данных в формате JSON или CSV. Просто используйте метод write для указанного файла.
Локальное хранилище
Bose предоставляет объект LocalStorage, который позволяет сохранять данные при запуске браузера, аналогично локальному модулю хранения в современных браузерах. Это особенно полезно для сохранения больших объемов данных при очистке. Данные сохраняются в файле local_storage.json в корневом каталоге проекта.
Особенности Bose Framework:
📌 Применяются передовые методы для обхода обнаружения ботов.
📌 Сохраняет HTML, снимок экрана и информацию о выполнении для каждой задачи.
📌 Вспомогательные компоненты для записи очищенных данных в виде файлов JSON, CSV и Excel.
📌 Автоматически загружает и инициализирует правильный драйвер Chrome.
Вы уже работали с Bose? Расскажите о своем опыте 👇
GitHub
GitHub - omkarcloud/botasaurus: The All in One Framework to build Awesome Scrapers.
The All in One Framework to build Awesome Scrapers. - omkarcloud/botasaurus
👨💻3🤔2❤1
⭐️ Большое интервью на Cybernews от Мэд Девс
Безопасность программного обеспечения — одна из самых серьезных проблем для компаний всех отраслей, независимо от их размера. Поэтому это самый горячий топик для обсуждения среди всех экспертов в Tech. Ловите инсайты от Андрея Сапожникова в большом интервью медиа-изданию Cybernews, где он поделился мнением о главных челленджах и трендах кибербезопасности сегодня, как Mad Devs внедряет новые технологии, что же ждет в будущем индустрию и многое другое:
https://cybernews.com/security/andrew-sapozhnikov-mad-devs-one-of-the-biggest-challenges-today-is-software-security/
Это именно то интервью, которое никак нельзя скипнуть!
Безопасность программного обеспечения — одна из самых серьезных проблем для компаний всех отраслей, независимо от их размера. Поэтому это самый горячий топик для обсуждения среди всех экспертов в Tech. Ловите инсайты от Андрея Сапожникова в большом интервью медиа-изданию Cybernews, где он поделился мнением о главных челленджах и трендах кибербезопасности сегодня, как Mad Devs внедряет новые технологии, что же ждет в будущем индустрию и многое другое:
https://cybernews.com/security/andrew-sapozhnikov-mad-devs-one-of-the-biggest-challenges-today-is-software-security/
Это именно то интервью, которое никак нельзя скипнуть!
🔥9👏4👍1
Известные и неизвестные ИИ для работы
ИИ уже вошел в каждый дом, в каждую сферу. Подготовили для вас список из известных и не очень ИИ, разбив их по группам.
👾 Для работы с кодом:
Autocode Позволяет мгновенно создавать и подключать конечные точки Node.js. Подключает вебхуки и ботов к API.
Replit Ghostwriter Ускоряет и упрощает кодинг
GitHub Copilot Вносит предложения по коду и функциям в реальном времени.
📚 Для работы с текстом:
Kickresume's AI Resume & Cover Letter Writer Позволяет создать полное резюме всего за три минуты, заполнив короткую анкету.
QuillBot Вносите грамматические, пунктуационные, орфографические и другие правки.
Talk to Books Общайтесь с книгами, чтобы лучше понимать, о чём произведение.
Akkio Помогает в развитии компании, подсвечивает факторы, которые помогают принять решение.
Articleforge Создает 100% оригинальные, SEO-оптимизированные, длинные статьи.
🗣️ Для работы со звуком/видео:
Fireflies.ai Записывает, расшифровывает и анализирует голосовые записи.
Narakeet Помогает преобразовать текст в реалистичную речь.
Synthesia Превращает текст в видео. Работает на 120 языках.
Используете ли вы в работе какой-нибудь инструмент? Расскажите в комментариях 👇
ИИ уже вошел в каждый дом, в каждую сферу. Подготовили для вас список из известных и не очень ИИ, разбив их по группам.
👾 Для работы с кодом:
Autocode Позволяет мгновенно создавать и подключать конечные точки Node.js. Подключает вебхуки и ботов к API.
Replit Ghostwriter Ускоряет и упрощает кодинг
GitHub Copilot Вносит предложения по коду и функциям в реальном времени.
📚 Для работы с текстом:
Kickresume's AI Resume & Cover Letter Writer Позволяет создать полное резюме всего за три минуты, заполнив короткую анкету.
QuillBot Вносите грамматические, пунктуационные, орфографические и другие правки.
Talk to Books Общайтесь с книгами, чтобы лучше понимать, о чём произведение.
Akkio Помогает в развитии компании, подсвечивает факторы, которые помогают принять решение.
Articleforge Создает 100% оригинальные, SEO-оптимизированные, длинные статьи.
🗣️ Для работы со звуком/видео:
Fireflies.ai Записывает, расшифровывает и анализирует голосовые записи.
Narakeet Помогает преобразовать текст в реалистичную речь.
Synthesia Превращает текст в видео. Работает на 120 языках.
Используете ли вы в работе какой-нибудь инструмент? Расскажите в комментариях 👇
👍7
В чем разница между is() и == в Python?
На первый взгляд операторы is и == в Python выполняют похожие функции, но немного работают по-разному. Если вы новичок и хотите использовать сравнения в коде, то стоит понимать разницу. Сегодня разберем в чем разница между is() и ==?
В Python разница между оператором is() и оператором == заключается в том, как они сравнивают объекты.
Оператор is()
Проверяет, являются ли два объекта одним и тем же объектом в памяти. Он сравнивает идентичность объектов, то есть проверяет, указывают ли оба операнда на одну и ту же область памяти.
Оператор ==
Сравнивает значения двух объектов, а не их идентичность. Он проверяет, равны ли значения, хранящиеся в обоих объектах.
Например, если у нас есть две переменные a и b, и они указывают на один и тот же объект, то a is b вернет True. Однако, если a и b указывают на разные, но равные объекты, то a == b вернет True, но a is b вернет False.
Есть ли еще что-то в Python, что может запутать? Поделитесь своим мнением 👇
На первый взгляд операторы is и == в Python выполняют похожие функции, но немного работают по-разному. Если вы новичок и хотите использовать сравнения в коде, то стоит понимать разницу. Сегодня разберем в чем разница между is() и ==?
В Python разница между оператором is() и оператором == заключается в том, как они сравнивают объекты.
Оператор is()
Проверяет, являются ли два объекта одним и тем же объектом в памяти. Он сравнивает идентичность объектов, то есть проверяет, указывают ли оба операнда на одну и ту же область памяти.
Оператор ==
Сравнивает значения двух объектов, а не их идентичность. Он проверяет, равны ли значения, хранящиеся в обоих объектах.
Например, если у нас есть две переменные a и b, и они указывают на один и тот же объект, то a is b вернет True. Однако, если a и b указывают на разные, но равные объекты, то a == b вернет True, но a is b вернет False.
Есть ли еще что-то в Python, что может запутать? Поделитесь своим мнением 👇
👍9❤3👨💻1