Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как через vscode показать верстку заказчику?

Лучший ответ:
https://ngrok.com - хоть всему миру. Для теста будет достаточно.
live server  если надо запустить локально

Худший ответ:
Способ №1 - заливаете код на хостинг через консоль vscode.
Способ №2 - приходите к заказчику с компом и открываете vscode, показываете код.
Способ №3 - архивируете ваш код в архив и отправляете архив заказчику. (архивацию можно через vscode)
Вопрос: Config Management — какой инструмент подойдет?

Лучший ответ:
Всех загнать в один ансибл. Или два разных ансибла, а инвентори с доступами и ACL в отдельном гит-репе, подключаемом сабмодулем в оба ансибла.

Худший ответ:
можно посмотреть в сторону RANCID - 1) централизованное хранение конфигов; 2) по крону раз в час или два diff в почту на team и будут видны все текущие изменения, независимо от того, кто их сделал
Вопрос: Как организовать свое информационное поле?

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

Худший ответ:
и большинство информации никак не влияет на жизнь
Врачи говорят, что при потреблении новой информации, тоже вырабатывается дофамин – «гормон счастья».
Поэтому возможно формирование привычки/лёгкой зависимости от просто потребления инфы, без практического смысла. Ничего криминального, но может, такая мотивация присутствует и надо хотя бы её осознать.

У меня не работает очередь «к прочтению». Несколько раз пытался по-разному. В итоге в закладки отправляется только то, что может на практике пригодиться при решении задачи позже. Обязательно с тегами, чтобы хоть как-то структурировать.

Сузить фокус и углубиться в тему помогает какая-то немаленькая задача или проект.

Поддерживать широту спектра и не давать закиснуть навыкам в других областях помогает тот же Тостер/QnA – отвечая на разные вопросы, вспоминаю, отвлекаюсь на их темы, отличные от моей текущей основной.

Монстры информационной самоорганизации, читал, юзают специализированные инструменты типа TheBrain, где собирают кусочки инфы и устанавливают нелинейные связи между ними. Я как-то не втянулся пока.
Вопрос: Как получить/установить дату создания документа 1С?

Лучший ответ:
Для документа создаем реквизит ДатаСоздания
В модуле объекта (документа) пишем код:
Если ЭтоНовый() Тогда
		ДатаСоздания = ТекущаяДата();
	КонецЕсли;

Код будет работать для новых документов.

Худший ответ:
Штатно никак. Если только не создан такой реквизит специально.
Вопрос: Какой подход для валидатора правильней?

Лучший ответ:
Мне не равится ни тот ни другой подход.

Исключение при валидации - это оксюморон.
Исключение кидается кода функция не может выполнить свою работу. Проифнормировать о невалидности данных - это как раз функция функции валидации. Где тут исключительная ситуация?
Вот для функции, скажем, сохранения данных, невалидные данные - это абсолютно законный повод кинуть исключение. Но для функции валидации - ни в коем случае. 
Функция проверки уникальности введенного логина не должна кидать исключение, если логин не уникальный.
Исключение она должна кидать если БД недоступна.

Но передача значения в параметр по ссылке - это как бы тоже адов кстыль, такая же архитектурная затычка, как global.
Я бы архитектурно использовал первый подход, но добавил метод для получения текста ошибок.

Худший ответ:
Архитектурно правильнее возвращать как в примере с Yii2. Использование исключений для управления потоком выполнения программы считается серьёзным антипаттерном. 

Например:
1. Исключения в данном случае - просто более хитрая замена оператору GOTO. Надеюсь, не нужно объяснять почему GOTO тоже считается антипаттерном?
2. Программы, написанные в таком стиле, становится сложно читать и понимать.
3. Меньшая эффективность в рантайме, так как большинство современных компиляторов не оптимизированы для случаев использования исключений в качестве управляющей логики.

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

Лучший ответ:
Вам лучше заказать, за небольшие деньги сделают.
https://freelance.habr.com/

Худший ответ:
Возможно.
Графика - копайте в сторону tkinter или pyqt
Насчет сайтов - почитайте про requests
С капчой будет сложно, так как она расчитана на то чтоб бот НЕ мог ввести ее.
Вопрос: Какое максимальное питание можно подать на кабели БП для питания устройств?

Лучший ответ:
Правильно ли я понимаю, что их все можно нагружать одновременно нагрузкой до 132*3=396W?Гуглим зависимость номинального тока от толщины провода, бонусом натыкаемся на калькулятор:
https://www.powerstream.com/Wire_Size.htm
Задаём напряжение 12V, длину провода... ну пусть будет 1 фут. Ток 33 ампера (396W/12V=33A). И видим, что падение напряжения будет в пределах допустимых 5% при проводе стандарта 18AWG. На более тонком 20AWG (чем больше число, тем тоньше) напряжение выходит за пределы нормы.
Ответ только с точки зрения провода: если маркировка провода 18AWG, то 396W можно снять без чрезмерной просадки напряжения при длине провода 1 фут (~30,5 см). Больше длина - ниже упадёт напряжение, в ущерб стабильности работы железа.
Эти провода от нагрузки 396W не сгорят, и не расплавится изоляция. Вопрос именно в падении напряжения. 
Отдельно ещё надо рассматривать разъёмы - на них тоже падение напряжения. Но для простоты это мы опустим. :)

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


Худший ответ:
Разъемы Mini-Fit держат 10А на контакт. Породистые могут 13А, но с проводом 16 AWG.
Значит 6-контактный может давить 468Вт по 12В до подгорания контактов.
Про обычные молексы не в курсе и лень искать. От штатных проводов дым пойдет сильно раньше.
Вопрос: Не выводится содержимое метода. Что делать?

Лучший ответ:
В первом случае вы только объявили локальный метод. Если его не вызвать, то код из него не будет выполнен.
Если хотите, чтобы код с первого варианта сработал - пишите
using System;
namespace Application
{
	class Program
	{
		static void Main() // Обявили статичный метод Main
		{
			void Method() // Объявили локальный метод внутри Main
			{
				Console.WriteLine("Test");
			}

			Method(); // Вызвали метод
		}
	}
}

Худший ответ:
В первом случае вы только объявили локальный метод. Если его не вызвать, то код из него не будет выполнен.
Если хотите, чтобы код с первого варианта сработал - пишите
using System;
namespace Application
{
	class Program
	{
		static void Main() // Обявили статичный метод Main
		{
			void Method() // Объявили локальный метод внутри Main
			{
				Console.WriteLine("Test");
			}

			Method(); // Вызвали метод
		}
	}
}
Вопрос: Как работает PHP Curl Class?

Лучший ответ:
Это обычная прослойка над curl в ООП-стиле для упрощения работы. setHeaders устанавливает какие заголовки будут отправлены, просто в классе записывая данные, что вы передали, в переменную (поле класса) $headers. Которая потом используется при вызовах методов (get, post, ...). Если вы хотите после этого отправить HTTP-запрос на другой адрес, просто создайте новый экземпляр класса Curl.

Худший ответ:
Это обычная прослойка над curl в ООП-стиле для упрощения работы. setHeaders устанавливает какие заголовки будут отправлены, просто в классе записывая данные, что вы передали, в переменную (поле класса) $headers. Которая потом используется при вызовах методов (get, post, ...). Если вы хотите после этого отправить HTTP-запрос на другой адрес, просто создайте новый экземпляр класса Curl.
Вопрос: Существует ли Телеграм-бот для Q&A ресурсов (как этот), и как может отнестись администрация к такого рода ботам для уведомлений?

Лучший ответ:
Я парсил недавно. Правда спарсил не до конца, а до примерно 600000 вопроса(правда вопросов там 435 тыс., так как остальные удалены - спам и прочие). Интересно посмотреть было на вопросы по количеству подписчиков, ответов, просмотров и д.т. Если надумаете парсить, могу дать вам около 435 тыс. html страничек(от первого вопроса до 600000). У меня они в нескольких архивах, общим объёмом около 13 - 15 ГБ(и это они у меня в zip архивах!) 
Есть идея вытащить оттуда время задания вопроса, время ответов(и даты разумеется) и провести статистику, в какой день(время) задают больше вопросов, когда больше дают ответов, и т.д.
Я парсил примерно по одному запросу в секунду, проблем не было.
Сортировка по подписчикам:


Худший ответ:
API нет.
Обращаю ваше внимание, что:
п. 2.3. правил данного Сервиса требует: Убедиться в том, что публикуемый вопрос не адресован представителям какой-то конкретной организации или какого-то конкретного проекта. Публикация вопросов, компетентно ответить на которые могут только представители конкретной организации, неизбежно приводит к провокации нарушений п. 3.4, 5.14 - 5.17 правил данного Сервиса. Помните, что для обращения к администраторам электронных ресурсов следует использовать предусмотренные этими администраторами каналы связи, например, если речь идет о данном Сервисе - форму обратной связи.
п. 3.1. правил данного Сервиса требует: Указывать только теги, имеющие непосредственное отношение к вопросу.
Теги API и TELEGRAM явно лишние в этом вопросе.
Вопрос: Как исправить ошибку при запуске тестов в docker через phpstorm?

Лучший ответ:
Аналогичная проблема DistributionNotFound возникла в Ubuntu после того как поменял ссылку /usr/bin/python с python2 на python3. Изменение ссылки обратно на python2 решило проблему. 
sudo ln -sf python2.7 /usr/bin/python
Перед этим удалить докер:
sudo apt-get remove docker-ce docker-ce-cli containerd.io

Худший ответ:
care1e55 прав, я у себя сделал так:
```
sudo ln -sf /usr/bin/python2 /usr/bin/python
```
Вопрос: Как настроить права в Docker?

Лучший ответ:
Возможно что-то не до конца скопипастила, просто нет живого проекта под рукой. Для своих пет проектов я настроила работу докера из под моего обычного юзера системы. Сначала сделала так, чтобы docker и docker-compose работали от юзера (есть инструкция в интернете, надо пошаманить с группами юзеров), потом в docker-compose.env добавила такое
#run echo $(id -u):$(id -g) and copypaste it to HOST_USER variable
#HOST_USER is needed to run docker containers under current user on host machine
HOST_USER=1234:1234
Потом в docker-compose.yml
version: "3"
services:
    nginx:
        image: nginx:latest
        ports:
            - "8081:80"
        volumes:
            - .:/app
            - ./docker/nginx/:/etc/nginx/conf.d/
        depends_on:
            - php-fpm
        working_dir: /app
        networks:
            - internal
    php-fpm:
        user: ${HOST_USER}
        working_dir: /app
        build:
            context: ./docker/php-fpm
            dockerfile: Dockerfile
        volumes:
            - .:/app
            - ./docker/php-fpm/log/:/var/log/
            - /etc/group:/etc/group:ro #####вот
            - /etc/passwd:/etc/passwd:ro #####вот
        ports:
            - '9000:9000'
        networks:
            - internal
        environment:
            XDEBUG_CONFIG: "remote_host=192.168.220.1 remote_enable=1"
            PHP_IDE_CONFIG: "serverName=PHPSTORM"
В докерфайлах ничего не дописывала. У меня это только для php-fpm, но думаю что для nginx и mysql можно делать по аналогии

Худший ответ:
Вот тут есть пример контейнера в котором nginx и PHP работают под пользователем nobody:

https://github.com/TrafeX/docker-php-nginx/blob/ma...

P.S. писать веб логи из контейнера в файл на хосте - плохая практика.
Стандартное решение - писать логи в stdout / stderr, а уже на хосте решать что с ними делать.
Вопрос: Чтобы проверить, что переменная является числом PHP?

Лучший ответ:
Изучай
https://www.php.net/manual/ru/function.filter-var.php
Либо json schema для более сложных объектов

Худший ответ:
Перед тем как учить РНР, тебе нужно обязательно научиться пользоваться интернетом.
Во времена твоих бабушки и дедушки интернета не было. И тогда да - единственным способом что-то узнать было только спросить у кого-нибудь.
Но сейчас это уже не так.
Есть интернет. И твой вопрос обязательно уже задавал кто-нибудь.  Поэтому надо просто поискать.
Пишешь в адресной строке своего браузера, проверить, что переменная является числом PHP
и видишь примерно миллион ответов на свой вопрос
Круто, правда?
Вопрос: Что быстрее всего индексируют яндекс+гугл+ютуб.... в т.ч. вк+ок?

Лучший ответ:
Если у вас активный сайт оно и так быстро проиндексируется, а если мертвый то это просто мёртвому припарки
Сигналы о новых страницах поступают тот всюду в том числе с Яндекс метрики и Гугл аналитиуса

Худший ответ:
Можно эмпирическим путём проверить: выгружаете логи, фильтруете Яндексовского бота и проверяете, от каких действий он чаще появляется на сайте. У Scraming Frog есть анализатор логов, к слову.
Вопрос: Что лучше ноут или ПК?

Лучший ответ:
Хм, что лучше - Хаммер или Ламборджини?

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

Худший ответ:
Не получишь однозначного ответа, у всех свой.
Если коротко, ноут можно таскать, комп некоторое время можно апгрейдить, комп производительней, ноут удобнее.
У ноута выше требования к производителю, потому что если чего, только гарантия, а запихнуть грамотно начинку в маленький корпус не у всех инженеров хватает, так что читай отзывы на свою модель, много отзывов, и ищи плохие.
Вопрос: Как обьединить две доменных сети?

Лучший ответ:
Поскольку пока нет уточнения, что для вас означает (в функциональном плане) "обьединить для работы этих два домена", то отвечу коротко: настроить доверительные отношения между доменами.

Худший ответ:
Имхо не вижу смысла объединять, проще всего настроить VPN из domen1 на domen2, Exchange пользоваться через внешний интерфейс. SQL сервера вообще напрямую видеть кроме админов никому не надо, терминальные приложения через VPN работают прекрасно.
Вопрос: На каком языке сейчас чаще всего программируют микроконтроллеры?

Лучший ответ:
почему для этой цели (как я читал на других источниках) язык Си выбирают чаще чем свой более развитый аналог - Java
Пример контроллера - ATTiny13:
- 1 КБ внутрисистемно программируемой Flash памяти программы
- 64 байта внутрисистемно программируемой EEPROM памяти данных,
- 64 байта встроенной SRAM памяти

Удачи с размещением виртуальной машины Java + кода самой программы с учетом имеющихся ресурсов...

Худший ответ:
Можно и на яве писать, только под это дело компилятор нужен, чтобы код перевести в машинные коды, понятные процессору.
Не важно на каком языке писать код, он все равно будет преобразован компилятором. Так уж сложилось исторически, что был выбран Си.
Вопрос: Есть ли в ASP.NET возможность написания своих кастомных консольных тулов?

Лучший ответ:
Вы описываете dotnet tool
dotnet run вы конечно не сможете сделать, тк это встроенная команда

Худший ответ:
Да. https://docs.microsoft.com/en-us/dotnet/core/tools...
Вопрос: Имеет ли git юридическую силу?

Лучший ответ:
Лезешь в Консультант плюс.Ищещь там слово git.Профит.

Худший ответ:
У вас же уже все перечислено в акте. 
Какие еще доказательства нужны? 
Подписывая акт, заказчик согласился в т.ч. и с этим перечнем. 
Технически заказчик может самостоятельно для себя выяснить этот вопрос - проанализировав коммиты полученные от исполнителя.
Вопрос: Эта верстка устарела?

Лучший ответ:
Почему стандарт html5 вдруг устарел? 
Ни разу не видел, чтобы их использовали в верстке. - потому что никто не обязан их использовать. Это лишь семантика, не более. Это такие же div, но называются по другому, осмысленно

Худший ответ:
Почему стандарт html5 вдруг устарел? 
Ни разу не видел, чтобы их использовали в верстке. - потому что никто не обязан их использовать. Это лишь семантика, не более. Это такие же div, но называются по другому, осмысленно
Вопрос: Как подключиться к Postgres у которого нет публичного доступа?

Лучший ответ:
ssh - тоннель сделайте

Худший ответ:
Решилось с помощью такого правила в nginx 

stream {
    upstream backend {
        server 192.168.1.50:6432;
    }

    server {
        listen 8099;
        proxy_pass backend;
    }
}
Вопрос: Если обнулить ссылку в объекте, которая ссылаеться на подобъект, то этот подобъект удалится?

Лучший ответ:
Выше уже сказали ,если удалить и ссылок нет, то удалится. Но в вашем примере вы просто присваиваете subBruh значение null, так что сам subBruh останется, аналогично и для subObj. 
Правильно делать через delete: delete obj1.subObj - удалит весь объект subObj.

Худший ответ:
Смотря что понимать под "удалится".
Если это единственная ссылка на экземпляр, то вероятно да, сборщик мусора его уберёт, но могут быть нюансы со строками и числами, тк V8 для них всякие специальные оптимизации делает.
Вопрос: Какой плагин для создания landing page выбрать для Wordpress?

Лучший ответ:
Gutenberg - или новый редактор блоков в вордпресс. Как раз и дешево и соответственно по свистелкам т.к. дешево

А вы ищете профессиональное решение за доширак?

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

Также рекомендую рассмотреть другой вариант...  Если планируете создавать landing page, то можно использовать кастомные поля ACF. Тут главный момент кому именно предназначается сайт.... Если с сайтом будет работать конечный пользователь не умеющий кодить и подразумевается частое внесение изменений в структуру сайта, то визуальные редакторы в самый раз. Если подразумевается, что с сайтом будет работать разработчик, то есть смысл рассматривать ACF.

Также другой выход - купить тему, в комплект которой включены необходимые плагины. Тот же Visual Composer, Revolution Slider и т.д.

Например, тема Kleo - https://themeforest.net/item/kleo-pro-community-fo...

В комплекте с темой уже есть нужные плагины. И если мне память не изменяют, то они обновляются
Вопрос: Как сверстать на CSS подобную адаптивную сетку?

Лучший ответ:
Если исключительно на CSS - тогда CSS Grid - идеальное решение
Но в гридах отдельным колонкам нужно будет присвоить свои позиции и размеры...
+ Так-же прописать адаптивный вариантВот несколько вариантов (заготовок):https://jsfiddle.net/ischenkodv/t337a0br/https://jsfiddle.net/girlie_mac/QUPFS/

Худший ответ:
Фоновое продолжение блоков, которые выходят за контентную часть можно сделать через псеводэлементы before и after. Для контентной части grid.
Вопрос: Для чего нужен Power Shell программисту и нужен ли вообще?

Лучший ответ:
Например нужно сделать слежение за изменением папки и выполнять определенные действия по этим событиям - быстрее всего используя Power Shell.

Худший ответ:
Для чего нужен Power Shell программисту и нужен ли вообще?Разумеется он не нужен.
Вопрос: Будет ли работать Office 365 или Office 2019 на Windows 7 pro?

Лучший ответ:
Microsoft Office 2019 - не работает на windows 7,8 и 8.1. Данная возможность заблокирована. Это написано и в саппорте microsft, и в системных требованиях и в википедии(короче, везде).

Худший ответ:
Windows 7 работает с Office 365, другое дело, что поддержка modern authentication прикручивается патчем и настройкой реестра. Если Вы имеете ввиду Office Pro Plus, то он тоже работает. Office 2019 на Windows 7/8/8.1 не работает.
Вопрос: Что более востребовано react или Vue?

Лучший ответ:
Магия доступная только избранным



Худший ответ:
А может быть Angular???....
Вопрос: Здравствуйте, как сделать так чтобы например диалоговое окно на сайте можно было таскать в любую позицию по окну при удержании мышкой???

Лучший ответ:
перетаскивание вещей называется drag and drop, держите примеры думаю сами создадите свое окно
https://javascript.info/mouse-drag-and-drop
https://codepen.io/mayurbirle/pen/LyQejQ

Худший ответ:
В jQuery UI есть диалоговое окно с поддержкой drag and drop,
Вопрос: Как проверить, номер принадлежит sip или физический?

Лучший ответ:
Физические номера они тоже могут быть sip. Надо проверять оператора по первым 5 цифрам чтобы найти кому он принадлежит, а там уже степень доверия оператору.

Худший ответ:
Возьмите диапазоны номеров зарегистрированных на наших операторов.

Другой вариант делать блэклист, я так думаю у них ограниченный пул номеров.
Вопрос: На какой версии symfony делать новый проект?

Лучший ответ:
Многие популярные пакеты для симфони уже адаптированы под 5.1, можно писать на ней сразу

Худший ответ:
Смело на 5. она уже в продакшне
Вопрос: Как правильно прописать несколько событий onclick?

Лучший ответ:
Для начала, лучше использовать addEventListener().

Ну а так, смотрите, здесь:
id1.onclick = Place('Вода');
вы присваиваете в onclick результат функции Place().
Так как функция ничего не возвращает (а только производит действия), то получается так:
Place('Вода');
id1.onclick = undefined;
Чтобы функция стала обработчиком, нужно присвоить её саму, а не результат её вызова:
id1.onclick = Place;
Но так, конечно, тоже работать не будет. Теперь нужно прочувствовать этот момент, разобраться до полного понимания, чтобы двигаться дальше.

Худший ответ:
почему первый код не работает как и второй
onclick'у надо присваивать значением – функцию. Например id1.onclick = function() { Place('Вода'); }; Тогда эта присвоенная функция выполнится при клике.

как правильно реализуется такая простая задумка
Где собираетесь хранить параметры каждого из 200 «объектов»? Можно прямо в разметке, в data-атрибутах, как посоветовали. Но неужели будете все 200 объектов прописывать вручную? Наверняка захочется их и создавать программно. Данные отдельно, оформление отдельно. Например:const objects = ["вода", "вода", "суша", "берег"];
function commonClickHandler(title, id) {
  console.log('Кликнули объект «%s» с id=%s', title, id);
}

objects.forEach((title, i) => {
  const div = document.createElement('div');
  const id = `id${i}`;
  div.id = id;
  div.addEventListener('click', () => commonClickHandler(title, id));
  document.body.appendChild(div);
});
Фиддл
Вопрос: Python, добавить словарь в список?

Лучший ответ:
Метод append() у типа list ничего не возвращает, так как это логично. Это метод списка и этот метод называется "добавить" -- что он должен возвращать? Ничего;Для обозначения ничего в Python предусмотрен объект-одиночка None (на русский так и переводится -- "ничего").

Худший ответ:
Метод append() у типа list ничего не возвращает, так как это логично. Это метод списка и этот метод называется "добавить" -- что он должен возвращать? Ничего;Для обозначения ничего в Python предусмотрен объект-одиночка None (на русский так и переводится -- "ничего").
Вопрос: Реально ли написать хороший рабочий чит на python?

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

Худший ответ:
Обычно сложность написания читов не в том, можно или нельзя его реализовать на каком то ЯП, а в том, как в принципе алгоритмически его реализовать. А там вариантов до черта и все они не универсальны - так что никаикх библиотек под читы не может быть - потому что разные векторы атаки.
Какие то разновидности атак (перехват траффика, например, или мап-чит) вполне можно попробовать сделать на питоне.
Какие то - будет сложно (типа работы напрямую с памятью или dll injection).
Вопрос: Как исправить ошибку Received `false` for a non-boolean attribute `loading`?

Лучший ответ:
Вам красным по белому написано, как исправить. Читать не умеете? Ну идите забейте этот текст в онлайн-переводчик.
А вообще - учите английский. Разработчик, неспособный понимать английский текст - профнепригоден.

Худший ответ:
Вообщем решение примерно следующее:
Вам нужно переписать тип данных, входящий в сам styledComponent
к примеру Вам нужен пропс isOutlined:

Место использования:
<YourComponent isOutlined={true} />

Сама компонента

const StyledComponent = ({ ... }) => {...
return <Wrapper ... isOutlined={isOutlined ? isOutlined.toString() : undefined}
}

И сам wrapper:

const Wrapper = styled.div<{ isOutlined?: string}>`
   border: ${( props) => props.isOutlined ? '2px solid red' : 'none};
`