Используйте не запрещающие, а разрешающие CSS-селекторы
#css
Небольшая заметка о том, что лучше использовать селекторы, включающие какие-то правила, а не отключающие их.
Читать статью
#css
Небольшая заметка о том, что лучше использовать селекторы, включающие какие-то правила, а не отключающие их.
Читать статью
Отладка кода при создании собственных проектов
Ах, радость кодинга! Вы работаете над своим проектом, и вдруг — бац! — обнаруживаете ошибку. Это все равно что уткнуться в стену в лабиринте.
Но не бойтесь, друзья-разработчики: я предлагаю вам надежную карту для навигации по коварным водам программирования, кишащим ошибками. Будь вы самоучкой, стремящимся получить работу мечты в сфере технологий, или просто занимаетесь программированием ради удовольствия, из этой статьи вы узнаете, как стать ниндзя отладки.
Читать статью
Ах, радость кодинга! Вы работаете над своим проектом, и вдруг — бац! — обнаруживаете ошибку. Это все равно что уткнуться в стену в лабиринте.
Но не бойтесь, друзья-разработчики: я предлагаю вам надежную карту для навигации по коварным водам программирования, кишащим ошибками. Будь вы самоучкой, стремящимся получить работу мечты в сфере технологий, или просто занимаетесь программированием ради удовольствия, из этой статьи вы узнаете, как стать ниндзя отладки.
Читать статью
👎2😁1
9 проверенных IT-курсов на Udemy
Чтобы успешно развиваться и осваивать ИТ-профессии, требуется постоянное обучение. Но есть проблема выбора – на рынке существует очень большое предложение курсов и для новичков, и для опытных специалистов.
В дайджесте на vc.ru и Medium Сергей Филатов, руководитель отдела продуктовой аналитики в QIC digital hub, подобрал курсы Udemy для разных целей и уровня подготовки в области data science, machine learning и бизнес-аналитики.
Чтобы успешно развиваться и осваивать ИТ-профессии, требуется постоянное обучение. Но есть проблема выбора – на рынке существует очень большое предложение курсов и для новичков, и для опытных специалистов.
В дайджесте на vc.ru и Medium Сергей Филатов, руководитель отдела продуктовой аналитики в QIC digital hub, подобрал курсы Udemy для разных целей и уровня подготовки в области data science, machine learning и бизнес-аналитики.
👍2
Как при помощи JavaScript определить, включен ли Caps Lock
Кто угодно может нажать Caps Lock в любой момент времени и не заметить этого. Вводя обычный текст, пользователи легко обнаруживают, что Caps Lock включен. Но когда вводится пароль, проблема не столь очевидна. В результате пароль не принимается, и это раздражает пользователя. В идеале разработчики могли бы предупреждать пользователя о том, что у него включен Caps Lock.
Чтобы отслеживать, включен ли Caps Lock, мы используем метод
Я прежде никогда не встречал
Источник - https://davidwalsh.name/detect-caps-lock
Кто угодно может нажать Caps Lock в любой момент времени и не заметить этого. Вводя обычный текст, пользователи легко обнаруживают, что Caps Lock включен. Но когда вводится пароль, проблема не столь очевидна. В результате пароль не принимается, и это раздражает пользователя. В идеале разработчики могли бы предупреждать пользователя о том, что у него включен Caps Lock.
Чтобы отслеживать, включен ли Caps Lock, мы используем метод
getModifierState
:document.querySelector('input[type=password]').addEventListener('keyup', function (keyboardEvent) {
const capsLockOn = keyboardEvent.getModifierState('CapsLock');
if (capsLockOn) {
// Предупредить пользователя, что caps lock включен?
}
});
Я прежде никогда не встречал
getModifierState
, так что заглянул в документацию W3C, чтобы познакомиться с его значениями:dictionary EventModifierInit : UIEventInit {
boolean ctrlKey = false;
boolean shiftKey = false;
boolean altKey = false;
boolean metaKey = false;
boolean modifierAltGraph = false;
boolean modifierCapsLock = false;
boolean modifierFn = false;
boolean modifierFnLock = false;
boolean modifierHyper = false;
boolean modifierNumLock = false;
boolean modifierScrollLock = false;
boolean modifierSuper = false;
boolean modifierSymbol = false;
boolean modifierSymbolLock = false;
};
getModifierState
позволяет получить множество сведений о клавиатуре пользователя во время событий, ориентированных на нажатие клавиш. Жаль, что я не знал о getModifier в начале своей карьеры!Источник - https://davidwalsh.name/detect-caps-lock
❤6👍4
🔻Напишите онлайн-чат на Golang с нуля за пару часов и добавьте его в портфолио!
На бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
☑️ на примере разработки онлайн-чата разберете преимущества и особенности языка Go;
☑️ поговорите о клиент-серверной архитектуре интернета;
☑️ попрактикуетесь в написании веб-приложения на чистом Go;
☑️ проведете небольшое нагрузочное тестирование полученной реализации.
🗓 Встречаемся 12 марта в 20:00 мск в рамках курса «Go (Golang) Developer Basic». Доступна рассрочка на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/x6b4/
На бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
☑️ на примере разработки онлайн-чата разберете преимущества и особенности языка Go;
☑️ поговорите о клиент-серверной архитектуре интернета;
☑️ попрактикуетесь в написании веб-приложения на чистом Go;
☑️ проведете небольшое нагрузочное тестирование полученной реализации.
🗓 Встречаемся 12 марта в 20:00 мск в рамках курса «Go (Golang) Developer Basic». Доступна рассрочка на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/x6b4/
❤1
Как использовать селектор :has() в CSS
#webdev
Селектор :has() предлагает новый уровень гибкости и возможностей в CSS, позволяя писать более чистые и эффективные таблицы стилей.
Читать статью
#webdev
Селектор :has() предлагает новый уровень гибкости и возможностей в CSS, позволяя писать более чистые и эффективные таблицы стилей.
Читать статью
👍2
🫵 Соберите свой первый проект на С++ и добавьте его в портфолио
👉 На бесплатном практическом уроке от OTUS и Карины Дорожкиной — ведущего разработчика в Kaspersky.
На вебинаре:
- разберем понятие единицы трансляции;
- проследим за ошибками компиляции и линковки, разберёмся в их причинах;
- создадим статическую библиотеку и подключим её при помощи CMake;
- обсудим разницу между статической библиотекой и динамической.
⏰ Занятие пройдёт 5 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь прямо сейчас, чтобы занять место: https://otus.pw/97YH/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👉 На бесплатном практическом уроке от OTUS и Карины Дорожкиной — ведущего разработчика в Kaspersky.
На вебинаре:
- разберем понятие единицы трансляции;
- проследим за ошибками компиляции и линковки, разберёмся в их причинах;
- создадим статическую библиотеку и подключим её при помощи CMake;
- обсудим разницу между статической библиотекой и динамической.
⏰ Занятие пройдёт 5 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь прямо сейчас, чтобы занять место: https://otus.pw/97YH/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍2
Сортировка веток Git
Запустив
Но это можно изменить!
Выполните в вашем репозитории следующую команду:
Это отсортирует все ваши ветки по дате их последнего коммита!
Для сортировки доступны следующие опции:
- authordate
- committerdate
- creatordate
- objectsize
- taggerdate
Кроме того, если хотите всегда сортировать по одному из этих параметров, можно установить это в настройках:
Также можно задать псевдоним:
Успешных коммитов!
Источник - «Sorting Git branches».
Запустив
git branch
в репозитории, вы обычно получаете список веток в алфавитном порядке. Это может раздражать, когда у вас много веток (если только у вас нет очень жесткой системы именования по номеру тикета или чего-то подобного).Но это можно изменить!
Выполните в вашем репозитории следующую команду:
git branch --sort=-committerdate
Это отсортирует все ваши ветки по дате их последнего коммита!
Для сортировки доступны следующие опции:
- authordate
- committerdate
- creatordate
- objectsize
- taggerdate
Кроме того, если хотите всегда сортировать по одному из этих параметров, можно установить это в настройках:
git config --global branch.sort -committerdate
Также можно задать псевдоним:
git config --global alias.brcd "branch --sort=-committerdate".
Успешных коммитов!
Источник - «Sorting Git branches».
👍14
Как объявить массив в bash
#bash
Bash-скрипты полезны для автоматизации консольных команд. А массивы — отличный инструмент для хранения набора данных. Объявлять массив в bash не сложно, однако синтаксис отличается от синтаксиса массивов в языках программирования.
Читать статью
#bash
Bash-скрипты полезны для автоматизации консольных команд. А массивы — отличный инструмент для хранения набора данных. Объявлять массив в bash не сложно, однако синтаксис отличается от синтаксиса массивов в языках программирования.
Читать статью
👍4😐2
Уменьшаем время загрузки сайта
#webdev
Если сайту не удается предоставить хороший UX, то скорее всего - из-за плохо оптимизированного фронтенда. Чаще всего дело бывает в загрузке данных и изображений. Давайте разберемся, что и как можно улучшить.
Читать статью
#webdev
Если сайту не удается предоставить хороший UX, то скорее всего - из-за плохо оптимизированного фронтенда. Чаще всего дело бывает в загрузке данных и изображений. Давайте разберемся, что и как можно улучшить.
Читать статью
Как архитектору эффективно работать с принципом инверсии зависимостей?
Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
▫️определение и обоснование принципа инверсии зависимостей;
▫️примеры использования принципа в различных паттернах проектирования;
▫️связь принципа инверсии зависимостей с остальными принципами SOLID;
▫️связь паттерна Адаптер, луковичной архитектуры и принципа инверсии зависимостей.
Занятие пройдёт 13 марта в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». После урока у вас будет возможность стать студентом программы по специальной цене и даже в рассрочку!
👉🏻 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: пройти тест
Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
▫️определение и обоснование принципа инверсии зависимостей;
▫️примеры использования принципа в различных паттернах проектирования;
▫️связь принципа инверсии зависимостей с остальными принципами SOLID;
▫️связь паттерна Адаптер, луковичной архитектуры и принципа инверсии зависимостей.
Занятие пройдёт 13 марта в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». После урока у вас будет возможность стать студентом программы по специальной цене и даже в рассрочку!
👉🏻 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как перемещаться между скобками в Vim
#tools
В файлах программ обычно множество скобок. Поэтому эффективная навигации между ними имеет большое значение для продуктивности работы программиста. Эта статья познакомит вас с тремя командами, которые позволят вам молниеносно перемещаться между скобками.
Читать статью
#tools
В файлах программ обычно множество скобок. Поэтому эффективная навигации между ними имеет большое значение для продуктивности работы программиста. Эта статья познакомит вас с тремя командами, которые позволят вам молниеносно перемещаться между скобками.
Читать статью
SQL JOIN: руководство по объединению таблиц
#sql
В этой статье:
- LEFT JOIN / RIGHT JOIN
- Фильтрация с использованием LEFT JOIN
- Множественные объединения
- Операции объединения с дополнительными условиями
- Правда жизни о написании запросов с объединениями.
Читать статью
#sql
В этой статье:
- LEFT JOIN / RIGHT JOIN
- Фильтрация с использованием LEFT JOIN
- Множественные объединения
- Операции объединения с дополнительными условиями
- Правда жизни о написании запросов с объединениями.
Читать статью
👍3
🔥 Для новичков в IT: как тестировать API с помощью POSTMAN?
⚙️Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
- что такое API и как его использовать;
- как тестировать back-end, если нет интерфейса;
- что можно тестировать в API;
- составление простой автопроверки для нашего API.
🦾Занятие пройдёт 14 марта в 20:00 мск и будет приурочено к старту курса «Специализация QA Automation Engineer». Доступна рассрочка на обучение!
Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://vk.cc/cvn4lX
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⚙️Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
- что такое API и как его использовать;
- как тестировать back-end, если нет интерфейса;
- что можно тестировать в API;
- составление простой автопроверки для нашего API.
🦾Занятие пройдёт 14 марта в 20:00 мск и будет приурочено к старту курса «Специализация QA Automation Engineer». Доступна рассрочка на обучение!
Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://vk.cc/cvn4lX
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
HTTPS для разработчиков
#webdev
Если вы хотите узнать достаточно технических подробностей о работе и использовании HTTPS в ваших приложениях, при этом не ныряя в глубины криптографии и веб-стандартов, эта статья как раз для вас!
Читать статью
#webdev
Если вы хотите узнать достаточно технических подробностей о работе и использовании HTTPS в ваших приложениях, при этом не ныряя в глубины криптографии и веб-стандартов, эта статья как раз для вас!
Читать статью
Date.now()
Спросите любого разработчика, и он согласится, что прописывание логики дат может быть настоящим кошмаром. Разработчикам нужно учитывать часовые пояса, странные дефолтные даты и платформоспецифичные форматы дат.
Самый простой способ работать с датами - свести дату к максимально простому формату, обычно к временной метке. Чтобы получить текущее время в формате целого числа, вы можете использовать
Я частенько использую
Источник - "Date.now()".
Спросите любого разработчика, и он согласится, что прописывание логики дат может быть настоящим кошмаром. Разработчикам нужно учитывать часовые пояса, странные дефолтные даты и платформоспецифичные форматы дат.
Самый простой способ работать с датами - свести дату к максимально простому формату, обычно к временной метке. Чтобы получить текущее время в формате целого числа, вы можете использовать
Date.now
:const now = Date.now(); // 1705190738870
Я частенько использую
Date.now()
в своих console.log
, чтобы отличать результаты console.log
друг от друга. Вы также можете использовать такую дату в качестве уникального идентификатора для события в не слишком загруженной событиями среде.Источник - "Date.now()".
💩7🔥3👻2👍1
❓Чем перемещение отличается от копирования в C++?
Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
- синтаксис и подводные камни move-семантики;
- отличие копирования от перемещения;
- когда компилятор может сам, а когда ему нужно подсказать;
- как отличить rvalue от lvalue;
- как избегать лишнего копирования объектов.
⏰ Занятие пройдёт 21 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь прямо сейчас: https://otus.pw/3WT1/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
- синтаксис и подводные камни move-семантики;
- отличие копирования от перемещения;
- когда компилятор может сам, а когда ему нужно подсказать;
- как отличить rvalue от lvalue;
- как избегать лишнего копирования объектов.
⏰ Занятие пройдёт 21 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь прямо сейчас: https://otus.pw/3WT1/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Извлечение числа из строки при помощи JavaScript
Пользовательский ввод из полей HTML-форм обычно передается в JavaScript как строка. Мы десятилетиями живем с этим, но порой разработчикам приходится извлекать из этих строк числа. Есть несколько способов это сделать, но давайте обратимся к регулярным выражениям!
Чтобы при помощи регулярного выражения вычленить число в строке, мы можем использовать
Регулярки в JS способны на очень многое, этот пример - одна из простейших операций. Конвертация числа при помощи обертки
Источник - «Extract a Number from a String with JavaScript».
Пользовательский ввод из полей HTML-форм обычно передается в JavaScript как строка. Мы десятилетиями живем с этим, но порой разработчикам приходится извлекать из этих строк числа. Есть несколько способов это сделать, но давайте обратимся к регулярным выражениям!
Чтобы при помощи регулярного выражения вычленить число в строке, мы можем использовать
\d+
:const string = "x12345david";
const [match] = string.match(/(\d+)/);
match; // 12345
Регулярки в JS способны на очень многое, этот пример - одна из простейших операций. Конвертация числа при помощи обертки
Number()
даст вам число типа Number
.Источник - «Extract a Number from a String with JavaScript».
👍2❤1
Как понять, какая IT-профессия вам подойдёт?
Начните с пробного доступа к IT-курсам OTUS за 500 рублей!
✅ Вы получите доступ видеозаписи трех курсов: «РНР для начинающих программистов», «JavaScript для начинающих программистов», «С++ для начинающих программистов»
Вы познакомитесь с платформой, оцените качество видеоматериалов и получите азы профессии, познакомитесь с языками программирования.
👉 Получить пробный доступ
https://otus.pw/vxHO/?erid=LjN8KNYba
Начните с пробного доступа к IT-курсам OTUS за 500 рублей!
✅ Вы получите доступ видеозаписи трех курсов: «РНР для начинающих программистов», «JavaScript для начинающих программистов», «С++ для начинающих программистов»
Вы познакомитесь с платформой, оцените качество видеоматериалов и получите азы профессии, познакомитесь с языками программирования.
👉 Получить пробный доступ
https://otus.pw/vxHO/?erid=LjN8KNYba
Проверка типов в Python
#python
Python — строго типизированный динамический язык программирования. Типы определяются динамически, поэтому вы можете задавать значения переменных напрямую, не определяя их тип, как в статически типизированных языках, таких как Java.
Хотя динамическая типизация обеспечивает гибкость, она не всегда желательна, поэтому в последнее время было предпринято множество попыток привнести в динамические языки статическое определение типов.
В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны. Мы также рассмотрим, как можно использовать систему типов Python для статической проверки типов с помощью mypy и проверки типов во время выполнения с помощью pydantic, marshmallow и typeguard.
Читать статью
#python
Python — строго типизированный динамический язык программирования. Типы определяются динамически, поэтому вы можете задавать значения переменных напрямую, не определяя их тип, как в статически типизированных языках, таких как Java.
Хотя динамическая типизация обеспечивает гибкость, она не всегда желательна, поэтому в последнее время было предпринято множество попыток привнести в динамические языки статическое определение типов.
В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны. Мы также рассмотрим, как можно использовать систему типов Python для статической проверки типов с помощью mypy и проверки типов во время выполнения с помощью pydantic, marshmallow и typeguard.
Читать статью