pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как выбрать из объекта указанные свойства и создать новый объект?

Лучший ответ: const pick = (obj, keys) => keys.reduce((acc, n) => (acc[n] = obj[n], acc), {});
или

const pick = (obj, keys) => Object.fromEntries(keys.map(n => [ n, obj[n] ]));

Худший ответ: _.pickВариант реализации.
Вопрос: Windows резолвит адрес youtube как 10.10.10.10?

Лучший ответ: Файл hosts посмотрите и сбросьте кеш браузера.

Худший ответ: ставишь ДНС от Гугла и Клаудфлара

8.8.8.8
1.1.1.1

не поможет - ставишь от Комодо или прочей антивирусной ерунды типа Каспера

они быстро тебе отполируют так, что Ютуб откроется, а много чего закроется,  гы гы, 
зато отпадет лепет "Винда думает"

ничего она не думает, смена ДНС запросто открыает РКНовские сайты, например (не всегда и не все), так что винда работает как надо
Вопрос: Как сделать видимой в сети пк которые «за роутером»?

Лучший ответ: ты не хочешь отключить dhcp на твоём "тройничке", далее воткнуть кабель интернета в порт LAN вместо WAN. Тогда не придётся ничего делать видимым.

Худший ответ: Ну так сделайте ему (WiFi) IP 192.168.1.100, например.
Вопрос: Насколько MS-стек секьюрный?

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

Худший ответ: MS делает вполне себе секундные продукты, просто один дурачок из нулевых сказал, а другие повторили.
Вопрос: Как физически открыть двд диск на линуксе?

Лучший ответ: eject
если не получается, тогда:
sudo eject
если и так не получается, тогда:
Скрепка

Худший ответ: Спасибо. От себя добавлю, что точнее вот так:
eject /dev/sr0
Где  /dev/sr0  имя устройства.
Вопрос: Папка .git занимает 200гб?

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

если удалить эту папку, вы потеряете: 1) локальную историю коммитов, бранчей, сташи и тд - всё что связано с разработкой и гитом, если коротко.  2) потеряете origin, если он не указан в гите глобально или в конфигах в ide. Т.е. будет непонятно какой удалённый репозиторий у этого проекта.
Проект будет работать, но переключиться на другую ветку будет нельзя (тоже думаю очевидно), да и не будет никаких других веток.

Худший ответ: Выше ответили правильно. Я же скажу почему это произошло. Какой-то дизайнер влил туда все свои макеты в psd. Гит в общем то для текстовых файлов. А бинарники лучше хранить отдельно.
Вопрос: Каждая новая и последующие версии .NET Framework это как правило логические продолжения, или вынужденные меры?

Лучший ответ: оба варианта.

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

Лучший ответ: Без jQuery c waypointssnippet
https://codepen.io/web-tech/pen/Gbxqor

Худший ответ: Решение
Вопрос: Как добавить новый div при нажатии на кнопку?

Лучший ответ: Через PHP никак, это ведь серверный язык который обработается еще до показа странички. Только через JS мб

Худший ответ: На JS примерно так --> ссылка <--
Вопрос: Почему C# не видит переменную внутри switch?

Лучший ответ: Вам четко написали что используется не назначенная переменная. Ткнете по ошибке вас перекинет на нее 



int a = 1;
            int b ;
            switch (a)
            {
                case 1:
                    b = 100;
                    Console.WriteLine("изнутри " + b);
                    break;
                default:
                    b = 0;
                    break;
            }
            Console.WriteLine("снаружи " + b);

Худший ответ: В первом варианте
int a=1;
    int b; //не инициализировано
    switch(a){
      case 1:
        b=100;
        Console.WriteLine ("изнутри "+b);
        break;
    }//если a != 1, то b всё ещё не инициализировано
    Console.WriteLine ("снаружи "+b); //<-тут ошибка
Как вариант, если не хочется инициализировать b сразу, то можно добавить ветку default в switch:
int a=1;
    int b;
    switch(a){
      case 1:
        b=100;
        Console.WriteLine ("изнутри "+b);
        break;
       default:
         b = -1;
         break;
    }
    Console.WriteLine ("снаружи "+b);

Ещё я бы посоветовал использовать switch-expression из C# 8 - он сразу исключает такой класс ошибок

var a = 1;
var b = a switch {
   1 => 100,
   _ => -1 // Если не добавить эту ветку, то будет ошибка, что switch-expression покрывает не все возможные варианты
};
//b гарантированно инициализировано
Вопрос: Интерфейс при наследовании метода: как правильно сделать?

Лучший ответ:  Есть базовый класс User, от которого наследуются другие классы, например Admin.
Зря. Админ - это не разновидность пользователя, это вполне определенная роль на сайте, связанная с конкретным пользователем. Наследование здесь не имеет смысла, логика администрирования сайта и пользователя сайта не пересекаются.

Худший ответ: Тут есть обсуждение 
https://stackoverflow.com/questions/39068983/php-7...
Может стоит отказаться от статики и возвращать IUser ?
Вопрос: Остаётся ли портфолио программиста релевантным при смене направления?

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

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

Лучший ответ: Вы имеете ввиду что-то типа такого?
snippet

Худший ответ: Сделать бекграундом
Вопрос: Как найти исходное число?

Лучший ответ: только нейронными сетями надо решать!X = 0.7 * Y Что здесь сложного? Найдо найти все пары (X, Y), где оба целые ?
То ли лыжи не едут..function search_start_value($price, $sale) {
  return $price * 100 / (100 - $sale);
}
echo search_statr_value(1499, 30); // 2141,4285714286

Худший ответ: Математика,  3-й класс
X+0.3*Y = Y
X = Y - 0.3*Y
X = 0.7 * Y
Y = X / 0.7
Вопрос: Производительность SSD дисков 15 Мб/сек на VPS в облаках, это много или мало?

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

+ смотрите на IOPS'ы. У SSD их в 3 раза больше, что на задачах с мелкими блоками даст кратный рост производительности

Худший ответ: Во-первых, лучше проверить на реальной нагрузке.
Во-вторых (я не знаком с Яндекс)  обычно производительность тем лучше, чем диск больше. В AWS формула 3 IOPS на GB, можно купить reserved IOPS storage.
Вопрос: Куда пропало свободное место?

Лучший ответ: Аккурат заметка по теме: Как правильно измерить занятое место на диске и на...

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

Лучший ответ: так будет нагляднее

states = {
  DISABLED: 0b001,   // так можно писать двоичные числа
  FOCUSED: 0b010,
  HOVERED: 0b100,
}

(states.DISABLED | states.HOVERED).toString(2)  // .toString(2) - переводит в двоичную
// "101"   // поставлены 1 и 3 биты

Худший ответ: это как распределение прав в админке
Например:
когда админ имеет права на: 
чтение|запись|редактирование|создание|удаление 
1|1|1|1|1
Переводим 11111 -> 31 (права супер юзера)

например обычный пользователь имеет права на только "чтение" то это будет выглядеть так:
1|0|0|0|0, где первая цифра и есть чтение (only read)
Переводим 10000 -> 16 (права обычного юзера)

И так далее по сумме определяешь кто есть кто
Вопрос: Можно ли быть фронтендером в 17?

Лучший ответ: Боюсь 12 часов в день будет мало

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

Лучший ответ: Так как  я начинающий разработчик,то бесплатно (или почти) выполню работу за отзыв.Знание основ Html,CSS,умение написание простых скриптов на Jquery и JavaScript. Опыт работы с CMS Wordpress. При разработке применяю Bootstrap и LESS. Умение работать с Photoshop. 

Двойной пробел является ошибкой, после запятой ставится пробел, после точки также ставится пробел, HTML - пишется большими буквами, "умение написание" - речевая ошибка.

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

Если вдруг заказчик что-то знает
LESS - мёртвая технология, Bootstrap тоже удел "таких себе верстальщиков".


Двойка короче.

Худший ответ: Jquery  по др пишется. 
Ужасное резюме. Если бы вы были на месте заказчика, то почему бы выбрали это резюме из тысячи? Ни почему... 
Нужно убрать что новичок, я бы про бесплатность вообще убрал, но можете написать что то типа "готов поработать над интересным проектом за чисто символическую плату". Максим Морев хорошо расписал, просто по грамотности у вас так себе составлено. 
Самое важное сейчас это пополнять резюме примерами. А вообще так себе дорогу вы выбрали. На фрилансе особо ничего не светит, особенно вам, тем более верстка. Найдите лучше нормальную работу.
Вопрос: Как в Ларавел передать объект из middleware в контроллер?

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

Худший ответ: Route Model Binding правильно решает вашу задачу
Вопрос: Как сохранить доменное имя?

Лучший ответ: У моего клиента есть доменное имя, оформленное на него
В чём проблема? Пишите регистратору или у кого обслуживается домен. Перенесёт на другой аккаунт.

Худший ответ: У моего клиента есть доменное имя, оформленное на него. 
Человек, который делал ему сайт зарегистрировал хостинг на себя
Тут есть пробел в постановке задачи. Первичный и Вторичный DNS. Кто то за них платил. 
1) Клиент заходит к регистратору на сайт и смотрит кто поддерживает Первичный DNS.
Если это не регистратор меняем размещение первичной зоны и оплачиваем за размещение Первичного DNS.
2) Вторичный DNS. Оплачиваем Вторичный DNS и указываем нужные имена и ip адреса

Короче. Надо просто отключить ip адрес хостинга от домена.
Вопрос: В чём отличие между базой данных на sql и базой данных на javascript?

Лучший ответ: SQL - это язык запросов к реляционной базе данных (к нереляционной его тоже можно прикрутить, но через афедрон). По смыслу - примерно как сетевой протокол, 5-го лвла модели OSI (над TCP, который на 4-м). Это примерно как HTTP, методы POST и GET.

JS - это нормальный язык программирования, на котором можно написать практически что угодно, лишь бы в том месте, где должна работать программа, была среда исполнения. В модель OSI вообще никак не входит - это из иной области. Написать на JS можно и SQL-клиент, и SQL-сервер.

Смысл использовать готовые СУБД (а значит, использовать существующий интерфейс к ним) - в том, что эти СУБД корректно реализуют транзакции и при этом быстро работают. Я как-то не уверен, что Вы понимаете смысл использования транзакций - но если попробуете реализовать СУБД самостоятельно, то поймёте; вот только проблемы будут странные и невоспроизводимые.

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

+ советую читать свежие статьи, а не 2011года:)
Вопрос: Как работает оператор +?

Лучший ответ: В js оператор + перегружен. Можно представить, что под капотом он вызывает функцию от двух аргументов (левого и правого операнда), примерно такую:function add(left, right) {
  const typeLeft = typeof left;
  const typeRight = typeof right;
  if(typeLeft === 'string') {
    return left.concat(right);
  }
  if(typeRight === 'string') {
    return right.concat(left);
  }
  if(canConvertToNumber(left, typeLeft) && canConvertToNumber(right, typeRight)) {
    return Number(left) + Number(right); // тут уже не перегруженный вариант + иначе будет бесконечная рекурсия
  }
  if(typeLeft === 'bigint' && typeRight === 'bigint') {
    return left + right; // опять не перегруженный вариант
  }
  if(
    (typeLeft === 'bigint' && canConvertToNumber(right, typeRight))
    || (typeRight === 'bigint' && canConvertToNumber(left, typeLeft))
  ) {
    // если предыдущий if не прошел, а проходит этот
    // то мы складываем bigint с не bigint, а так нельзя
    throw new TypeError('Cannot mix BigInt and other types, use explicit conversions');
  }
  // во всех остальных случаях приводим к строке:
  return String(left).concat(right);
}

function canConvertToNumber(item, type) {
  return item === null || type === 'number' || type === 'boolean' || type === 'undefined';
}

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

Лучший ответ: Есть два варианта:
- использовать несколько машин для симуляции нагрузки (Locust + Selenium Grid и т.п.)
- использовать сервис - Loadimpact, Blazemeter, Loader.io, ....

Худший ответ: Можно использовать инструменты предназначенные для этого, если у вас необходимо реализовать нагрузку от пользователем со сложными сценариями то JMeter /Gatling. 
Если вам необходимо снимать клиентские метрики , например время рендеринга страницы, то можете запускать свои скрипты Selenium в один поток, или использовать sitespeed.io, с его помощью можно получить красивые водопады загрузки страниц.
Вопрос: Как посмотреть схематически структуру проекта?

Лучший ответ: Гуглите "PHP profiler" и выбираете любой понравившийся, так как почти все умеют строить дерево вызовов
Какой взять профайлер для PHP?

для расширения кругозора можно посмотреть коротенький доклад https://www.youtube.com/watch?v=vF29LanRQv4

Худший ответ: То есть: если, допустим, нам нужно переделать страницу товара, мы можем визуально посмотреть всё что происходит под капотом сайта от начала до конца. Начиная с первых строк index.php, файлов либ, контроллеров, моделей, заканчивая вьюшками. То есть выводится всё дерево файлов и функций в них, что принимали участие в рендеринге конкретной страницы.

ну конечно можем, APM сервисы же могут ) то же и с техлидовской прогой - все возможно )
spoilerесли, конечно, прогеры вставили в код нужные теги, метки, код в нужных местах ))))
Вопрос: Кто поможет объяснить разницу между данными и переменными?

Лучший ответ: Кто поможет объяснить разницу между данными и переменными?
Данные — зарегистрированная информация[1]:439; представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств.
Переменная — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным и изменять значение в ходе выполнения программы. 
Или вкратце данные находятся в переменной если они где-то используются. Но и переменную с данными можно назвать данные. Ну вот так вот. 
А описание не читал, к вопросу не относится.

Худший ответ: Все разобрался, var url='test.php';
function i(c) {return document.getElementById(c);}
function new_fetch(post){ return fetch(url, {method: 'POST',  body: JSON.stringify(post),}).then(response => response.json())}
function Start() {$post={"ident" : "Player_take", "metod":"agReSortPosition"};
  new_fetch($post).then((data) =>  i('Select_view').innerHTML = data)}
function nextLevel($s_2, $s_1){$post={"ident" : "Player_take_Rebud_test", "metod":{"name":$s_1, "style":$s_2}};
  new_fetch($post).then((data) =>  i('Select_view').innerHTML = data)}
Поменял JS, теперь вместо массивов я отправляю объекты. public function takeRebudTest($id){
        $config = json_decode(file_get_contents($id->name.'.json'), true);
        foreach($config['Player'][$id->style] as  $value){
            $out[]=$value;
                    }
        return $out;
    }
И поменял функцию takeRebudTest.
Я как понял, не мог обращаться к Json Объектам через переменные. 
Но я могу обращаться к JSON как к массиву. 
 $config = json_decode(file_get_contents($id->name.'.json'), true); 
И у меня заработало.
Вопрос: Почему компьютер не показывает жесткий диск?

Лучший ответ: Почитал каменты, вроде всё указывает на отсутствие питания. А среди "питальных" неисправностей есть одна специфическая, её тоже стоило бы проверить. Это дефект SATAшной втычки питания - она иногда чуток раздувается, и контакты, находящиеся посередине, не достают до контактов диска.
Насколько я понял, вы пользовали этот диск на сравнительно старом блоке питания, не имеющем SATAшных хвостов, и питание подключали через переходник molex-sata. При испытании диска на другом компе питали через тот же переходник? Если да, то вот и ответ - замените его.

Худший ответ: Если вы подключали диск разными штекерами к нескольким компьютерам и диск не ожил - он умер.
Вопрос: Как продать сайт на рынок США?

Лучший ответ: Налогом облагается получатель прибыли, а не место её извлечения. Если вы находитесь в РФ, то и платить налоги будете в РФ. Платить налоги в США вы начнёте только в том случае, если для оказания услуг потребуется открыть юрлицо на их территории.

Худший ответ: налог, как и везде: на прибыль , смотря какое entity or personal
документация достаточно подписей и даже сканов, в суде канает переписка по емейлу
платят не в США неохотно, но могут, даже конторы, на Пейпал
Вопрос: Должен ли верстальщик уметь поднимать сервер и разворачивать проект на Linux?

Лучший ответ: Смотрите на это под другим углом. Нет строго определённых критериев что верстальщик должен уметь а что нет. У каждой компании они свои. И в ваших интересах уметь то, что нужно для большинства компаний на рынке. Конкретно для этой вы должны уметь поднимать сервер. А в другой вы должны будете работать с git. А в третьей общаться на немецком. А где-то вас могут не взять, уже потому что коммуникативные навыки у вас слабые, и другим работать с вами не комфортно.

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

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

Лучший ответ: Задача - разработать программу самообразования специалистов (ИТР).
В идеале ищу набор ссылок на авторитетные источники, где "на пальцах" разжеваны общие моменты по каждой из вышеописанных тем + Best Practices.
На пальцах все разжевано просто так не бывает. Это большой труд - написать учебные материалы, где ВСЕ понятно и РАЗЖЕВАНО по пальцам.
А вот официальная документация есть всегда на сайте производителя. Ее и нужно читать.
Но если руководство само потестировало и само приняло решение о самообразовании, и не выделяет на это бюджет, то пусть не ждет результата. Следовало либо раньше нанимать сертифицированных сотрудников, либо выделить бюджет на обучение.

Худший ответ: Э-э-э всегда лучше довериться профессионалам.
Если руководство этого не понимает... То это проблемы руководства.
А так, все просто.
Запланируйте в своем графике работ по 1-1.5 час в день на "самообразование".
Вот и вся программа, которую вы можете профессионально составить. :-)
Вопрос: Как хранить и искать URL адреса в MySQL?

Лучший ответ: Храните хеш от урла, его легко можно проиндексировать. И ищите тоже по нему.

Худший ответ: Спасибо Arman и Папа Стифлера за подсказки. Решение, которое подошло полностью:

Добавил в таблицу новый столбец типа varchar 
Создал для этой колонки самый обычный индекс
Написал скрипт на Python, который создает hash из URL для каждой строки 
Переписал скрипт проверяющий налчие URL в базе так, чтобы он использовал hash

Теперь, чтобы запросы на существование записи вместо 60 секунд, выполняются в среднем меньше чем за секунду для таблицы с > 1 млн. строк.
Вопрос: Как в функции с помощью Switch перевести массив из Int -> String?

Лучший ответ: Что делает строчка: let array = [1...9]
Не понял про перевод в массив. В примере кода вы просто выводите значения. Если я неправильно понял ваш вопрос - уточните.
Но неважно, давайте перейдем к костылям.
Делаем через функцию:func switchUp(_ value: Int) -> String? {
        guard value > 0 && value < 10 else { return nil }
        switch value {
        case 1:
            return "Один"
        case 2:
            return "Два"
        default:
            return nil
        }
}
Другой вариант костыля:enum LocalizedValue: String {
        case 1 = "Один"
        case 2 = "Два"
        case 3 = "Три"
}
    
let string = LocalizedValue.1.rawValue
Если не забывать про локализацию, можно сломать голову (род существительных, число и прочее). Но как я понимаю, вам не для локализации, а для разового эксперимента. Костыли подойдут. P.S. Используйте форматирование для кода.

Худший ответ: func switchItUp(_ number: Int) -> String {
  return ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"][number]
} Вероятно самое простое решение, но без Switch
Вопрос: Так ли востребованы сейчас программисты?

Лучший ответ: Во-первых много вакансий висят уже очень давно, а то значит что они фейковые или работодатель ищет каких то гениев. не гениев. просто человек если пишет, что знает отличие абстрактного класса от интерфейса, он должен это знать. Если он пишет, что знает ООП - он должен это знать. В 95% случае кандидаты пытаются обмануть - пишут одно, а по факту ничего не знают. Вот и не могут найти людей. 

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

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

Худший ответ: 1. вакансии могут висеть по разным причинам, может быть просто узкий специалист и его реально можно долго искать. А может быть что компания постепенно расширяется, и на эту вакансию надо много человек, и она может висеть долго.
2. мало когда были нужны. и значит это только то что нужны программисты с опытом и знаниями - как набраться опыта это отдельный вопрос.
3. все познается в сравнение условно в ЕКБ для стажера(джуна может быть) 20-30, для мидла порядка 100к. в целом не бешеные деньги, но в целом в других сферах чуть сложнее на них выйти, в каких-то почти не реально. 
4. ну та же история всяких новичков которые не фига не знают море. Тех кто что-то знает и что-то представляет из себя не прям много и заказов у них хватает.
Если вопрос стоит ли сейчас идти учится на программиста, что бы срубить бабла - ответ нет
Вопрос: Не могу ответить с apple wach 3 на сообщение с whatsapp,пропала функция отправить. Что нужно сделать?

Лучший ответ: Вон же кнопка сверху справа.

Худший ответ: при нажатии этой кнопки "отправить" все сварачивается и сообщение не отправляется. На телефоне висит как не прочитанное.