pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Использовать ли буксы/ботов в SEO?

Лучший ответ: Запустил первый свой сайт

Новому сайт себе во вред творить то, что творят некие товарищи, которым хотя-бы год. 

Там и проставление по 1500 ссылок в месяц с мусорных ресурсов - но попутная сему действия реклама в Google Ads. Типа "у нас есть трафик с платной нерелеватной рекламы гугла а на наши 27К беклинков вы не обращайте внимания".

Некоторые говорят, что можно подняться в топ списка с помощью этого

При тех же вводных данных - сайт новый, мало посетителей и по всем запросам на странице 5-6ой в выдаче? 
Наверняка они дают буст уже газующему сайту.

Выслушал бы плавающих в этой сфере людей.

Попробуйте поплавать следующим образом:
1. соберите ключевые фразы, по которым вам нужно быть в топ10
1.1. посетите топ 10-15 сайтов по этим фразам находящихся в Яше и Гусе
2. пока без инструментов, так сказать голыми руками, введите в строке поиска Гуся site:sitename.com



2.1. получите список на пару страниц или десятков страниц, которые проиндексировал Гусь
2.2. этого вам по хорошему, должно хватит на:
- нарисовать структуру сайта конкурента
- понять что у вас не так или что у вас все совсем не так
- узнать какие ключевые фразы еще существуют и дополнить ваш список в пункте 1
- узнать какие смежные запросы используются для получения трафика

Вообщем, смотря какая ниша - на второй пункт уходит от 1-3 дней до месяца. Пол месяца на осознание и еще пол на применение осознанного.

3. когда вы более-менее поняли "в какую сторону мыло тереть" (Д.Нагиев)
можете прикупить на ahrefs.com лайт за 7баксов.


3.1. не забыть отменить подписку за 7дней дабы не уплатить 179$ буржуйских денег. Либо платить с виртуальной карты, где есть ровно 8денег. Варианты.

3.2. скормить ахрефсу наиболее интересных конкурентов, снять в экселе обратные ссилки, пойти посмотреть "че как..." Если ресурсы бессплатные, пойти там поставить своих ссылок.

3.3. посмотреть какие запросы принесли сайту наибольший трафик

3.4. переварить

4. воспроизвести подобное на своем сайте

p.s. да, запуск ботов для поднятия поведенческих - это намного проще ;)

успехов!

Худший ответ: Если сделал сто более важных вещей для сео конечно нужно
Вопрос: Поврежденный файл, как восстановить?

Лучший ответ: Можно, нужен текстовый редактор с изменением кодировки, я использую notepad++, а для определения кодировки статья на habr

Худший ответ: Сомневаюсь, что тут проблема с кодировками.
https://2cyr.com/decode/?lang=ru не помог. Или текст поврежден необратимо, или тут какой-то самопальный шифр
Вопрос: Как определить максимальную частоту процессора?

Лучший ответ: На сайте производителя посмотреть
https://ark.intel.com/content/www/ru/ru/ark/produc...

Худший ответ: за не имением нагрузки/задач
система скидывает множитель и частоту 
всё это, рулится в настройках биос
оставь как есть,если не понимаешь )))
для ноута=это актуально(для компа ,который запитан от сети = без разницы(+-5-10ватт экономии )))
Вопрос: Как организовать работу над проектами из любого места?

Лучший ответ: Вы, видимо, не так понимаете суть современных систем контроля версий.
1. Вы настраиваете работающее окружение на работе и дома.
2. Делаете клоны проекта на работе и дома.
3. Работаете над проектом, каждое осмысленное изменение коммитите и время от времени отправляете в центральный репозиторий на гитхабе. Каждый раз приступая к работе обновляете локальный клон и продолжаете работать. Если фича требует много изменений, то вы можете сделать несколько коммитов в отдельную ветку и залить ветку на сервер. На другом компе вы тоже можете работать с этой веткой. Ветка лично ваша. У вас может быть много веток. Когда закочите работу над фичей - подольёте изменения в мастер.

Худший ответ: прямо на сервере
notepad++ NppFTP
+ сервак естественно
Вопрос: Ошибка «Сбой инициализации сети» в Parallels Desktopt. Что делать?

Лучший ответ: Если у Вас Big Sur и Parallels Desktop версии 16+, попробуйте следующее, мне помогло наладить работу 

sudo nano /Library/Preferences/Parallels/network.desktop.xml

Необходимо заменить 1 или -1 на 0

<UseKextless>0</UseKextless>

Худший ответ: Спасибо, способ верняк. После выставления UseKextless>0 необходимо в parallels в настройках сети выставить en5 и интернет чудесным образом появляется)
Вопрос: Как закрыть модалку при клике мимо?

Лучший ответ: подложить под модалку div position:fixed на весь экран (заодно можно ему задать полупрозрачный цвет), ловить клик по этому диву и тогда уже убирать модалку

Худший ответ: Можно отлавливать клики у родительского элемента и проверять свойство target
Вопрос: Что такое Мультиархитектура?

Лучший ответ: Мульти = много. Осталось загуглить, что такое архитектура.
То есть по сути это множество архитектур (минимум две), объединенных в одну целую (цельную).
К слову, если слово не гуглится, значит оно не прижилось в мире. То есть оно было использовано в какой-то научной работе или статье прошлых лет лишь в качестве отсебятины. Любой автор имеет право придумывать свои термины, если ему так удобнее. А вот приживутся ли они в научном или бытовом языке, решает уже бритва Оккама.
И если решение не в пользу термина, то он остаётся жить лишь в очень узкой среде. Таким образом, нужно спросить того, кто это слово использовал, что оно значит для него, а не вообще. Вы же это слово откуда-то взяли? Вот у источника и спросите.
А если источник уже умер (или не доступен), и не оставил точного определения, то от слова лучше отказаться. Иначе вы попадаете в патовую ситуацию, когда потом уже вас будут спрашивать, что означает слово, а ответить вы не сможете, ведь не вы же его придумали, и сослаться куда-то тоже не получится. Тупик.

Худший ответ: db4.sbras.ru/elbib/data/show_page.phtml?22+146
Третья ссылка.
Вопрос: Головоломки для игры?

Лучший ответ: Открой магазин Steam, отфильтруй их по тегу puzzle, отсортируй по популярности, заходи на страницы игр и смотри там видео и скриншоты. Этого будет достаточно, что бы понять суть самых популярных пазлов, играть в сами игры не обязательно.

Худший ответ: Недавно собрал небольшой список паззл-платформеров: https://docs.google.com/spreadsheets/d/1DVZgbSdLJR...
Вопрос: Как расположить несколько изображений в ряд по ширине экрана?

Лучший ответ: Три блока по 33.3% шириной. Родителю флекс. 
Высота в пропорциях к ширине https://jsfiddle.net/Ankhena/cLhxv7eq/ (в примере квадрат). 
Если картинки будут сразу нужных пропорций, то предыдущий пункт лишний. 
Если же нет, то еще object-fit. 
И не забудьте про адаптивность картинок с помощью тега picture.

Худший ответ: Думаю, через display: flex можно попробовать, но я не профессионал по этой теме, поэтому смотри на другие ответы.
Вопрос: Как отключить снижение производительности при работе от батареи?

Лучший ответ: изменить план питания

Худший ответ: Спросил не у местных "Знатоков", а у самих АСУС и Леново в Тех.поддержке. Это не из-за батерии, а залочено на уровне БИОС. На вопрос: "почему нельзя сделать как в маке" ответили: "это требование майкрософт"
Вопрос: Глючить Windows 10. Как исправить?

Лучший ответ: Сталкивался я с такой бедой. причину помогла найти софтинка https://www.resplendence.com/latencymon
Смысл в том что была железка которая генерировала большое количество аппаратных прерываний и это приводила к ужасным лага, в диспетчере нагрузки не было. У меня был виноват старенький жесткий диск который был подключен как второй. программа показал какое устройство генерирует самое больше количество прерываний и после его удаления проблемы ушли.
Ещё был один случай на ноуте. почти мертвые конденсаторы питания процессора. помогла замена.

Худший ответ: Тут только ждать обновлений Windows заходите в центр отзывов самой Windows и отписывайте проблему со скриншотами и конфигураций системы И отпровляете им если жалоб будет много то проблему быстро решат
Вопрос: Как преобразование ui в py и последующий импорт?

Лучший ответ: Импортируешь py-файлimport mydesign
В классе сначала наследуется, а потом инициализируется файл с дизайном:class mywindow(mydesign.Ui_MainWindow, QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.setupUi(self)  # initialize design from import file

Худший ответ: Импортируешь py-файлimport mydesign
В классе сначала наследуется, а потом инициализируется файл с дизайном:class mywindow(mydesign.Ui_MainWindow, QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.setupUi(self)  # initialize design from import file
Вопрос: Как настроить окружение Linux что бы основным компилятором был кросскопилятор?

Лучший ответ: Для сборки есть утилита make. Рекомендую изучить, причем настоятельно!

Худший ответ: А не проще подтянуть libgpiod как package в openwrt (если его там до сих пор нет)?
Вопрос: Из-за чего встроенный Linux Shell в Windows открывается и сразу закрывается?

Лучший ответ: Ну посмотри ты уже журналы Windows, там хотя бы что-то будет написано!

Худший ответ: там вроде дистрибутив нужно еще скачать с ms store
Вопрос: Что является переносчиком магнитного поля?

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

Худший ответ: распространяется магнитное поле
Надеюсь, я правильно помню универский курс, давно это было. Надеюсь, поправят, если что.
Прежде всего - поле есть только электромагнитное, это два проявления одной сущности.
Визуально можно представить так - поле есть везде, распространяются его возмущения. Как если бы все пространство было наполнено жидкостью, движение предметов в которой вызывало бы течения, влияющее на другие предметы. Ну, или воздух, если вам так ближе - можно подуть и переместить мелкий предмет. Т.е. поле можно воспринимать как абстракцию для "что-то, что может служить переносчиком определенного вида энергии".
P.S. да, это уже почти мертвая теория эфира какая-то. Но удобная абстракция для представления происходящего. За более актуальными абстракциями нужно лезть в специальную литературу (Ландавшица, вот, посоветовали).
Вопрос: Как инициализировать пустой массив и передать его в props?

Лучший ответ: Почему нельзя взять и просто на странице Main вызвать этот запрос в componentDidMount? Что за извращение, вызывать его в App и передавать пропсом в роут?

Худший ответ: componentDidMount вызывается после того как смонтируется компонент со всеми его дочерними элементами (следовательно, когда мы пытаемся использовать props.items, запрос к json еще даже не будет отправлен). 

Можно присвоить пустой массив для items в initialState, чтобы избавиться от этой ошибки, либо же добавить вспомогательное состояние, которое бы проверяло, загружены ли у нас данные, и если да, то выводить их.
Вопрос: Массовая рассылка email и как не попасть в спам лист?

Лучший ответ: Нормы по кликам на спам - где то в районе 1%. Например майл ру (а они крупнейший почтовик рунета) прямо указывает нормы в своих правилах
https://help.mail.ru/developers/mailing_rules/technical
Вы можете подключить постмастеры и следить за репутацией Ваших доменов.
На спам кликают и будут кликать всегда, в любых рассылках. Если рассылать приглашения новым пользователям по рекомендации, нужно следить за репутацией домена. Возможно ограничивать такие приглашения в зависимости от текущего состояния домена. 
Ссылка отписаться должна быть. Потому что если Вы в письме нормально объясните, почему отправили это письмо, человек скорее нажмет на ссылку отписаться, чем на кнопку спам, а вот если этой ссылки не будет, кликов на спам будет намного больше.

Худший ответ: Если более 5% пользователей пометят эти письма как спам сами - тогда всё плохо. Посмотрите как какой-нибудь гугл-мит работает, либо другие сервисы по созданию конференций с предварительной высылкой приглашений.
Вопрос: Самый быстрый скриптовой язык?

Лучший ответ: Где-то слышал что в Луа можно "отключать неиспользуемые фичи" для его "убыстрения", может это поможет вам остаться на Lua и не отдаваться в спираль удушья Питона

Худший ответ: Самые быстрые виртуальные машины у javascript (nodejs) и как ни странно у php, если речь идет о самом языке программирования а не о подключаемых библиотеках, которые могут быть реализованы нативно а значит так быстро как это в принципе возможно.
Быстрее только LLVM, это целая инфраструктура, не только компилятор (там даже к языку программирования привязки нет), тяжела для встраивания в свой софт но зато результат будет максимально производительный.
Кто то вспомнит java и его байткод, тоже вариант, тогда сюда для кучи .net виртуальную машину, только они не такие производительные как выше указал.
python - самая медленная виртуальная машина (правда есть решения по ее ускорению) зато самая крутая поддержка сообществом и библиотеками. Но использовать ее как встраиваемую - сложно, особенно если важна защита от выхода из песочницы.
Вопрос: Как организовать хранение аудиофайлов для серверного проекта?

Лучший ответ: 1) Хранить аудио в папках, сохраняя значения путей в БД (Что на мой взгляд не правильно!)
именно ваш взгляд не правильный

Худший ответ: Хранить аудио-файлы локально на сервере в отдельной папке - это плохо масштабируемое решение, хотя для старта сойдет.
Как отметил raiboon , лучше использовать протокол S3. Лучше облачный хостинг, потому что нужно еще правильно отдавать контент, чтобы отдачей контента занимался отдельный сервер (или сервера), ответственный за раздачу контента и всё это было быстро масштабируемо. Бизнес-логика веб-приложения тогда будет находиться отдельно от серверов отдачи контента.
При создании объекта аудио-файла можно генерировать GUID и его использовать как идентификатор для поиска в коллекции. Отдельный компонент может быть ответственным за построение пути к файловому объекту в S3 по искомому GUID, будет также включать bucket , регион.
Префикс пути будет постоянным, наподобие такого:"<bucket>.<region>.hostname/<parent_dir>/"
Суффикс - <GUID>
Если все делать по-малому (в домашних условиях), то можно хранить файлы в СУБД, конечно. Файлы лучше отдавать кэширующим сервером: Nginx, Varnish и др. При выборе Minio, RiakCS, Ceph, развертывание и поддержка инфраструктуры ложится на плечи сис. админа и это нужно учитывать.
Вопрос: Автоматически увеличивающаяся строка поиска, когда текст заполнил её полностью. Как создать?

Лучший ответ: Для описанных целей существует плагин autosize.

Худший ответ: <div contentEditable="true" />
Фиксируете ему ширину и отпускаете высоту - все работает. Проблемы стилизовать под инпут нет
Вопрос: Как верстать изогнутые секции?

Лучший ответ: SVG + 2 маски, одна пропорционально растягивается, другая непропорционально. Отрицательным margin загнать секции одна на другую.
snippet

Худший ответ: Постой верстокой тут видимо никак.  Хотя можно поиграться с svg внутри div
Вопрос: Понятность против оптимальности — что лучше?

Лучший ответ: Когда говорят "оптимально"  я спрашиваю "по какому критерию". Потому что беготня по массиву до середины оптимальна по памяти, но не факт что компилятор осилит правильно подстроить чтение и запись под ширину кэш-линий. 
А уж про то, что обмен через xor или сложение-вычитание лучше - легенда тянется со времен машин, где не было инструкции xchg и этот фокус позволял обменять местами два регистра, не задействуя третий.
"Понятность" кода - это просто еще один критерий оптимальности, а уж когда какой выбирать - зависит от корпоративного стандарта написания кода.

Худший ответ: понятнее всегда лучше, тк это позволяет в дальнейшем развивать код, у которого ВСЕГДА короткий жизненный цикл, тоесть вы его будете не один раз переделывать и переписывать, и в рамках этого понятность предпочтительней чем сиюминутная "эффективность" которая в длительной перспективы никогда не эффективна.
Вопрос: А чем хуже Dreamweaver любого другого редактора?

Лучший ответ: В первую очередь, нужно понимать, зачем вам редактор. Если вы верстаете или пишете бэк это разные вещи. Есть разный уровень задач. На минимальном уровне всёравно на чём писать. А как быть, если мне нужен фронт на react? Например саблайм или вскод позволяют писать и полноценно работать с фронтом на любом фреймворке. У дримвивера тут будут большие проблемы. Как на счёт интеграции с тестами? Можно ставить брейк поинты, вести отладку прямо в редакторе? На любом языке? Я пишу в среднем на 5 языках, если не считать вёрстки. Любой бесплатный редактор позволяет это делать. Визуальный редактор как и лайв просмотр - хлам. В реальности один хрен нужны все браузеры и все ОС. Плюс мне удобно с консолью в редакторе, которая связана с гитом, который в свою очередь в трелло и жире закрывает хадачи вместе с коммитом. Дримвивер не может? Жаль, а вскод бесплатный, быстрый, может это и ещё кучу всего что мне нужно и не перегружен говном, которое не нужно не только мне но и вообще никому. Можно пользоваться? Конечно. Хуже? Ну я пользуюсь 4 разными редакторами, потому, что даже у шторма есть недостатки. Дримвивер отстал и устарел. Всё, что реально нужно для работы, давно бесплатно. Платный редактор должен творить магию, по этому, профессионалы берут шторм. Он реально очень крут и платит тебе, когда ты его осваиваешь. Но, если для твоих задач достаточно дримвивера и он тебе удобен, пользуйся. Адобе умеет делать классные штуки, поддержи их. Простите, с мобилы боль писать(

Худший ответ: Он неудобен в использовании. Неоправданно дорогой.
IMHO
Вопрос: Что нужно для программирования в команде?

Лучший ответ: Сервер CI/CD TeamCity
Багтрекер YouTrack
Система CodeReview Upsource
Привлекательны своей бесплатностью, взаимной интеграцией и простотой развертывания

+

Опытный наставник / пинальник.

Худший ответ: Trello(любой аналог), git
И посоветовал бы обратить внимание на какую либо методологию разработки.
https://habr.com/ru/company/edison/blog/269789/
Вопрос: Какую файловую систему выбрать для жёсткого диска?

Лучший ответ: Если надежно, то ext4. Если потребуется уменьшить размер раздела, то XFS это не умеет.

Худший ответ: Ну насколько я понял задачу, то примерно так-
Если линукс для данных задач старые добрые ext3 или 4
xfs - возможно, но не лучший выбор для хранилища.
btrfs - возможно.
zfs ни в коем случае.
Если винда - ntfs
Вопрос: Laravel cron на хостинге (без доступа к консоли)?

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

Худший ответ: В документации описано, что в cron нужно добавить одну команду, которая инкапсулирует в себе вызов других команд по расписанию
https://laravel.com/docs/5.8/scheduling#introduction* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Команда schedule:run представлена классом \Illuminate\Console\Scheduling\ScheduleRunCommand.
Если нет доступа к  консоли в хостинге, то скорее всего никак не запустить.
Вопрос: Старый ноут не тянет старые игры?

Лучший ответ: Убедитесь, что играете на дискретной видеокарте, а не на встройке. Я так тоже как-то попался.

Худший ответ: Это очень слабая карта. 2011 год, сейчас даже встройки быстрее. Например UHD630 (это встройка прошлого поколения интел) в ~1.7 раз быстрее (https://technical.city/ru/video/UHD-Graphics-630-p...) , а это даже не вега (отрыв в 2-3 раза). Так что не стоит стоит думать о какой либо производительности. Процессор тоже не может похвастаться характеристиками (уровень селерона).

Если хочется более менее современные игры, то стоит подумать о новом устройстве, но цены сейчас сильно завышены. Есть ещё вариант стриминг сервисов, типа geforce now, но в динамичное вряд ли получится поиграть.
Вопрос: Поможет ли старая версия фотошопа слабому пк?

Лучший ответ: SSD серьёзно ускорит систему, тем более, что они стоят недорого сейчас.

Худший ответ: У меня есть ноут с такой конфигурацией, на нем photoshop 7.0 и cs3, почти всегда работает шустро (тупит если делаю большую кисть с множеством эффектов или применяю фильтр на огромный холст, но такие операции редко требуются)
Вопрос: Как запустить консольное приложение QT без QT Creator на Linux?

Лучший ответ: Собрать его, слинковав статически все либы, например.
А в Release оно появится, когда вы, как ни странно, скомпилите его в Release.

Худший ответ: Использовать систему сборки: make, cmake, qmake или gradle.
Вопрос: Как найти все вхождения символа в строке от определенного количества?

Лучший ответ: если ты хочешь заменить любое кол-во --, то самое время начать изучать preg_replace()

Худший ответ: astaxov81 с помощью регулярок можно сразу заменять один или более пробелов, идущих подряд, на один пробел (или дефис) $str = 'Какой-то  текст и ещё   не много   текста.';
echo findReplaceSymbol($str);

function findReplaceSymbol($str, $repl = '-'): string 
{
    return preg_replace('~\s+~', $repl, $str);
}
Вопрос: Как в Arduino развернуть данные?

Лучший ответ: развернутьКак-то так// LEFT --> [127 ... 0] --> [32 ... 4095]
// 
// RIGHT --> [129 ... 255] --> [32 ... 4095]

int calc_speed(int value)
{
  int speed = 0; // для наглядности без ? :
  if(value > 128)
  {
    speed = 4095 / 127 * (value - 128);
  }
  else
  {
    speed = 4095 / 127 * (128 - value);
  }
  return speed;
}

void drive_forward(int speed)
{
  MSS.analogWrite(15, 0);
  MSS.analogWrite(14, speed);                                
}

void drive_backward(int speed)
{
  MSS.analogWrite(14, 0);                             
  MSS.analogWrite(15, speed);
}

void stop()
{
  MSS.analogWrite(14, 0);                             
  MSS.analogWrite(15, 0);
}

void move()
{
  int ds = ps2x.Analog(PSS_LX);
  
  if(ds > 128)
  {
    drive_forward(calc_speed(ds));
  }
  else if(ds < 128)
  {
    drive_backward(calc_speed(ds));
  }
  else
  {
    stop();
  }
}

Худший ответ: Если совсем примитивно map тебе в помощь. Если реально, то обороты двигателя серьезно зависят от нагрузки и не будут пропорциональны ШИМ. Т.е. если  ШИМ 100 увеличить до 200 это вовсе не значит, что обороты возрастут в двое. В случае если нагрузка постоянная то можно записать таблицу значений ШИМ для каждого значения джойстика (или не для каждого, а промежуточные вычеслять)
Вопрос: Какой ноут лучше выбрать для разработки React/ReactNative?

Лучший ответ: Привет! Если рассматриваешь бюджетный вариант и желаешь, что бы было меньше танцев с бубном при разработке на Swift, то бери б/у MacBook. Если покупать новый, то не получиться бюджетно, придется раскошелиться.
Когда я сам ищу б/у технику от Apple, то обычно смотрю в магазинах от ломбардов, где обычно находятся варианты в хорошем состоянии и цены обычно ниже, чем на сайтах объявлений, также можно не бояться касательно судьбы покупаемого товара, так как в ломбардах обычно выдается юридический документ, подтверждающий покупку. Разница в цене бывает от 4 000 до 20 000 рублей. Для примера совсем недавно купил MacBook Air 2017 за 33 000 рублей, а в объявлениях за такую цену продавались модели от 2013-2014 года, а 2017 года продавались за 40000-50000 рублей в зависимости от состояния. В этих примерах убитые варианты устройств не рассматриваю.
Недавно мой коллега купил ноутбук под хакинтош. Его действия на этом пути:сперва нашел актуальный репозиторий хакинтош с новой версией MacOS (Mojave или Catalina)посмотрел под какие ноутбуки они заточеныдля покупки нашел вариант ноутбука от Xiaomiпоставил на него Mojave
Catalina еще рано ставить, так как может работать не стабильно.
В итоге, у него ноутбук Xiaomi с Mojave, и там почти все работает, кроме встроенного wifi-приемника. Ему пришлось докупить внешний wifi-применик, благо такой адаптер дешевый и доступный, что его можно найти почти в любом магазине компьютерной техники. Так что, перед тем покупать ноутбук под хакинтош, нужно быть готовым танцевать с бубном.

Худший ответ: Какой ноут лучше выбрать для разработки React/ReactNative?
Желательно тот, который включается, и чтоб обязательной был монитор и клавиатура.