pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как прошить этот ESP8266MOD модуль?

Лучший ответ: Подключить по USB и держать кнопку FLASH. Остальное - как при обычной прошивке любого девайса на ESP8266

Худший ответ: https://arduino-esp8266.readthedocs.io/ все, но по английски
https://habr.com/ru/post/371853/ основное, но по русские
Вопрос: Docker как использовать?

Лучший ответ: Докер именно для этого и нужон. Настраивайте.

Худший ответ: Докер именно для этого и нужон. Настраивайте.
Вопрос: Можно ли приложение разработанное для ios в xcode на swift выгрузить в playmarket?

Лучший ответ: Нет.

Худший ответ: Твоё приложение на свифте использует функции, которые специфичны для iOS (UI-элементы и не только), по тому не получится легко его перенести на Andoird.

Если ещё только думаешь о начале разработки - посмотри ещё и на кроссплатформенные инструменты.
Например Dart/Flutter и Kotlin
Вопрос: Как правильно работать с QList?

Лучший ответ: Вы вот тут new QList<QwtPlotCurve>[10];создали массив из 10 списков. Вы точно этого хотели?

Худший ответ: Можно так:
private: 
QList<QwtPlotCurve> graph;
for(int i=0; i < 10; i++)
{
QwtPlotCurve curve;
carve.attach(…);
graph.push_back(curve);
}
Вопрос: Как сделать непадающий telegram bot?

Лучший ответ: while True:
    try:
        bot.polling()
    except:
        continue
bot.polling() используется в библиотеке pyTelegramBotAPI - код постоянно повторяется

Худший ответ: Техно-стек Erlang/OTP считаеться эталлоном надежности. Акторы. Супервизоры.

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

Лучший ответ: Как вариант:
START TRANSACTION;
delete from gift_certificate_to_tag_relation where gift_certificate_id = 1;
delete from gift_certificate where id = 1;
COMMIT;

MySQL fiddle

Худший ответ: В свойствах внешнего ключа установите ON DELETE CASCADE. После этого дочерние записи будут удаляться автоматически при удалении родительской.
Вопрос: Характеристика микроконтроллера. Что означает 32-разрядный? А если сказать 32-битный, это одно и тоже?

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

А если сказать 32 битный, это не одно ли и тоже?Да, одно и то же. 32 бита данных в один регистр помещается. 32 разряда в регистре.

Память: 520 КБ памяти SRAM Внутри микроконтроллера встроена оперативная память типа SRAM объёмом 520 КБ

Wi-Fi: 802.11 b / g / N, Bluetooth: v4.2 BR/EDR and BLEВ чипе есть встроенный аппаратный модуль WiFi / BT, не нужно ничего дополнительного подключать для обеспечения беспроводной связи

12-разрядный АЦП до 18 каналовКонтроллер умеет измерять напряжение на своих 18 выводах с точностью до 12 бит, тем самым преобразуя аналоговый сигнал в цифровой

2 × 8 бит ЦАПаКонтроллер умеет формировать напряжение на двух своих выводах с точностью до 8 бит, тем самым создавая аналоговый сигнал

Худший ответ: 32 разряда - это физическая реализация, чаще всего ALU. Но остальная архитектура может быть 16-и битной. Или например 64-х битной может быть шина. 
Поэтому однозначного ответа не будет пока не укажут разрядность чего имеется в виду, а раз так то и нельзя сказать что разрядность равна битности.  

520 КБ памяти SRAM - означает что большой функциональности не реализуете.  И если нет упоминания FLASH , то программа будет тоже выполняться из RAM.  Это значит нужен внешний чип памяти с загрузочной FLASH.

Wi-Fi: 802.11 b / g / N - означает что нет диапазона 5 ГГц. Т.е. чип сравнительно медленный. Также не указана в какой полосе может работать 20 или 40 МГц.  Т.е. здесь тоже неопределенность остается. 

Bluetooth: v4.2 BR/EDR and BLE - означает потенциальные проблемы с WiFi и возможную необходимость внешнего чипа переключателя антенн.  Версия v4.2 также означает немного устаревший стандарт уступающий в скорости и дальности v5. Здесь тоже неопределенность поскольку не ясно какие профили поддерживаются и как это сосуществует с WiFi

12-разрядный АЦП до 18 каналов - обозначено только 12-и битное разрешение, точность и скорость этого АЦП остаются неясны.   Обычно точность таких встроенных АЦП на уровне 8-и разрядов на частоте 1 КГц.

 2 × 8 бит ЦАПа - здесь также не ясна скорость установления и амплитуда паразитных всплесков.

Словом по этим данным ориентироваться практически невозможно, если этот чип сравнивается с чем-то другим, поскольку все фичи в первом приближении очень типичны и есть у многих в таком ассортименте.
Вопрос: Как посмотреть чем занят процесс (php-fpm сайта)?

Лучший ответ: /proc/{идентификатор_процесса}/
содержит кучу информации о процессе, например cmdline - команду запуска, а environ - переменные окружения, fd/... список открытых файловых дескрипторах выглядящих как симлинки на соответствующие файлы или сокеты

на сколько я знаю, fpm передает подробную информацию о запросе в переменных окружения, так что смотри там

p.s. формально ты можешь приаттачить отладчик gdb к процессу, но помним что это интерпретатор php, без отладочной информации понять будет что либо сложно

Худший ответ: strace -p <pid-процесса>
Вопрос: Почему не работает List-Unsubscribe?

Лучший ответ: Спамеры пользуются этой фичей как подтверждением доставки. Раз отписался, значит точно живой и начнут спамить в три раза сильнее.

Раз кнопка не появилась, значит ваша репутация рассыльщика недостаточно хороша или вообще отсутствует. Соблюдайте требования почтовых сервисов и кнопка появится рано или поздно.

Худший ответ: вообщем ответ находится тут 

message MUST have a valid DomainKeys Identified Mail (DKIM) signature
   that covers at least the List-Unsubscribe and List-Unsubscribe-Post
   headers.

у нас DKIM не настроен - поэтому MUA игнорирует эти хедеры
Вопрос: DevOps как предприятие выглядит изнутри?

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

Худший ответ: Докер это просто инфраструктура.
Позиция девопс - это умение работать с CI/CD инструментами и автоматизация инфраструктуры.

Просто есть такая вещь - позиция junior Devops это моветон, потому что девопс инженер нужен в средних и крупных проектах, а в маленьких с этим справляются и разработчики.
Поэтому позиция Девопс инженер обычно там, где структура проекта сложная, отсюда и пошло мнение, что у девопсов все сложно, круто и так далее.
Вопрос: Балансировка интернета в андроид?

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

Худший ответ: Что-то одно
Вопрос: Как побороть ошибку #1032 — Невозможно найти запись?

Лучший ответ: Ну вы заблокировали запись в таблицу! 
LOCK TABLES `mdf_prefix_info` WRITE;

Естественно INSERT не работает!

Худший ответ: К самому коду претензий нет, работает без проблем.

DEMO

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

Лучший ответ: В такой форме - ассемблер. Запускается за минимальное время, так как не используется никаких дополнительных прослоек, кроме ОС-API.

Худший ответ: В вашем случае лучший вариант - это Kotlin или Dart
Вопрос: Как сохранять фото от пользователя в Телеграм боте?

Лучший ответ: Так прочти deprecation warning. Это не ошибка, а предупреждение, что данный параметр в будущих версиях будет исключен, а вместо него будут введены другие параметры, и сказано, какие именно. 
Работает - и отлично.

Худший ответ: Привет!
Чтобы предупреждение ушло явно укажи название параметра в данной части кода
await message.photo[-1].download('C:/Antony/py_projects/qr_code_bot/photos/ggg.jpg')
Исправленный вариант
await message.photo[-1].download(destination_file='C:/Antony/py_projects/qr_code_bot/photos/ggg.jpg')
Вопрос: Какой бесплатный vpn?

Лучший ответ: Какой бесплатный vpn?
Бесплатный впн плохой.

Худший ответ: ПОсмотри проект Антизапрет, но я не уверен что он умеет устаревшие протоколы
Вопрос: Как узнать какой процесс запускает кнопка в windows 10?

Лучший ответ: 1. Запускаем PowerShell от имени администратора.
2. Вставляем команду: Disable-PnpDevice -InstanceId 'device'
3. В Диспетчере устройств, в Свойствах устройства идем на вкладку Сведения, в списке Свойство выбираем Путь к экземпляру устройства и копируем значение.
4. В PowerShell вставляем скопированное значение в нашу команду вместо слова device (кавычки должны остаться).
5. Подтверждаем выполнение, введя [Y].

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

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

https://docs.microsoft.com/en-us/powershell/module...
Вопрос: Стоит ли покупать этот жесткий диск (Б\У)?

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

Разница в дате приобретения и времени работы это нормально. Когда покупают диски для raid, диск на замену берут заранее и складывают в сейф, чтобы в момент смерти диска сразу его заменить.

Для диска, работающего три месяца уже 5 relocated sector count и не нулевые error rate уже под вопросом (хотя ошибки могли быть из-за контроллера на материнке)

p.s. дорогие диски покупают не потому что они дорогие, а потому что надежность чуть чуть выше дешевых (эта 'чуть чуть' для обывателя абсолютно бесполезна), эта разница становится критична когда у тебя сотни дисков, и вопрос, как часто их нужно заменять становится критичен, так как если часто это будет происходить, то raid массив постоянно будет висеть в состоянии ребилда, замедляя работу и понижая надежность.

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

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

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

Лучший ответ: В такой ситуации возможно сработает с таким "хаком". Когда-то давно использовали его на проекте в отчасти схожей ситуации.

Сперва нужно создать скрипт, который выводит пароль с использованием echo
#!/bin/sh
echo "secret_Grandstream_pass"

Для примера, допустим скрипт будет храниться в /home/root/grandstream_pass
Нужно назначит права на исполнение этому скрипту chmod u+x  /home/root/grandstream_pass

Затем создать ещё один скрипт,  выполняющий удаленную ssh-команду
#!/bin/sh
# Заставляем ssh считать что у нас нет дисплея, что поспособствует тому, что ssh Не будет запрашивать пароль
export DISPLAY=:0

# Тот самый скрипт с паролем
export SSH_ASKPASS=/home/root/grandstream_pass

# Выполняем ssh. setsid создаст новый сеанс без контролирующего терминала, что так же способствует тому, чтобы ssh не запросил пароль
setsid ssh user@server "reboot"

Вместо второго скрипта можно использовать однострочник
DISPLAY=: SSH_ASKPASS=/home/root/grandstream_pass setsid ssh user@server "reboot"
или
echo nothing | DISPLAY=: SSH_ASKPASS=/home/root/grandstream_pass ssh user@server "reboot"

Худший ответ: Все оказалось довольно банально.
GrandStream принимает HTTP запросы, где можно отправить запрос на перезагрузку.

http://ип_адрес_телефона/cgi-bin/api-sys_operation...

сделал скрипт которую запускает крон каждый день

#!/bin/bash
get "http://ип_адрес_телефона/cgi-bin/api-sys_operation..."
sleep 30
Вопрос: При подключении винчестера не удается загрузиться с других дисков, с чем связано?

Лучший ответ:  Программа R.tester его видит при появлении и не видит при исчезновении
Если Р.тестер так видит и не видит винчестер, значит он пропадает как устройство.

Прекращайте попытки каким-либо образом включить диск, сейчас уже понятно, что вероятность того, что он сам "придёт в чувство", по сути, нулевая. 
Попробуйте в том же R.tester'е посмотреть SMART, когда диск появится, и сделайте скриншот. Но и тут не усердствуйте. Если за один, максимум, пару-тройку раз этого добиться не получится, прекращайте вообще любые действия, в т.ч. включения, и отложите диск в сторону.

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

Могут быть, например, баги из-за переполнения G-list. Могли деградировать головы, в результате чего они могут читать, но не могут писать, и т.п.

В целом возможны 4 варианта:

Диск был перегружен при работе, и всё ещё продолжает записывать ленты черепичной записи (SMR). В этом случае можно попробовать подождать, хотя он маловероятен;
Дефекты магнитной поверхности пластин;
Отказ одной или нескольких головок;
Запил (царапина на блине).

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

чтобы данные скопировать
Если с винчестера нужно восстановить данные, то написав сюда, вы поступили разумно. 
Сейчас у вас есть хороший шанс отделаться "малой кровью" - пока диск не "ушатан" окончательно, вероятность вЫчитать его как есть, без вмешательства в гермоблок, заметно выше. Благодаря этому и цена будет приемлемой.
Чтобы этот шанс не потерять, обращайтесь в компании, занимающиеся только восстановлением, никаких "ремонт ПК". У работающих честно диагностика бесплатная. 
Вот краткий универсальный гайд по data recovery: https://xn----7sbbfbnfa0a2audfacc2cat8e9f.xn--p1ai/

Если вы в Москве, будем рады помочь. В праздники работаем все дни *вздыхает*

Худший ответ: очевидно же что порядок дисков в загрузчике ОС не соответствует тому что стал с подключением нового диска

решение - поменять местами диски в слотах в материнской плате либо поправить настройки загрузчика ОС
Вопрос: Почему в объекте Response нет самого ответа?

Лучший ответ: Промис возвращаемый fetch() не ждет завершения всего запроса, он резолвится когда получены все заголовки.
На этом месте их можно обработать и решить что делать дальше, например читать json, текст или бинарные данные из тела, или вообще не обрабатывать тело и прервать запрос.
Так же можно читать тело ответа в виде потока, как уже указал в своем ответе Надим Закиров 

Второй промис из response.text() и response.json() нужен чтоб дождаться считывания всего тела ответа, притом response.json() еще и позволяет браузеру парсить json из ответа потоково прямо во время скачивания, опять же не блокируя поток js/ui.

Худший ответ: Потому что может возникнуть необходимость читать поступающие данные сразу по мере их поступления:
https://learn.javascript.ru/fetch-progress
https://developer.mozilla.org/en-US/docs/Web/API/R...
Не ожидая завершения запроса.
Вопрос: DevOps больше программист, или системный администратор?

Лучший ответ: Изначально DevOps это не человек. Это про то что разработчик теперь отвечает не только за то что его код работает на его машине, но и за то как он дойдет до пользователя и как он будет работать. 

Сейчас DevOps стал "модным" словом для обозначения администратора который умеет в облачную инфраструктуру и/или писать пайплайны для сборки/раскатки кода. 

Вот неплохой юмористический доклад на эту тему

Худший ответ: Соглашусь со всеми.
Но под позицией девопса подразумевают инфраструктуруного сисадмина, который умеет работать с CI/CD инструментами и автоматизацией.
Вопрос: Как снести все скрипты на странице?

Лучший ответ: Запретить выполнение JS кода (как инлайн, так и загружаемого) можно с помощью Content Security Policy (CSP) заголовков, как это делают NoScript расширения, в частости, uBlock Origin.

Хотя не уверен, что в таком случае можно выполнить свой код в контексте веб страницы (не в в контексте контент скрипта), хотя, вероятно, можно разрешить сделать это, указав hash/nonce своего кода, в качестве разрешенного к выполнению (опять же — в CSP заголовке).

Худший ответ: Можно поставить AdBlock и прописать фильтр для скриптов по маске *.js
Вопрос: Как сделать плеер как на Netflix?

Лучший ответ: 

И ссылки на видео узнать можно, только оно разбито на много файлов и защищено авторскими правами т.е. не читаемо если скачать.

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

https://nginx.org/ru/docs/http/ngx_http_secure_lin...
https://ru.stackoverflow.com/a/479172/233646
https://moonback.ru/page/nginx-hotlink-protection-2020

Худший ответ: Вам нужен стриминговый сервер (например https://www.cloudflare.com/products/cloudflare-stream/) и любой плеер с поддержкой HLS, например Plyr: https://codepen.io/sampotts/pen/JKEMqB
После заливки видео на сервер вы получите ссылку не на видео, а на плейлист формата m3u8, которую и вставляете в плеер.
Вопрос: Composer в PHP это как npm в JS?

Лучший ответ: да. только лучше.

Худший ответ: понятия не имею каким образом они работают, но делают они одно и то же - устанавливают пакеты с зависимостями ))
Вопрос: Почему нет доступа к виртуалке с другой виртуалки по внешнему ip или домену внутри сети?

Лучший ответ: Потому что так работает nat с port forwarding.
Что делать ? 
а) для внутренней сети оргназовать резолвинг домена в серые ип чтобы трафик не шол через nat
или
б) настраивать hairpin NAT на роутере

Худший ответ: Так а виртуалка 202.2 вообще правильно домен резолвит? Кто у неё dns server?

А насчет зайти по внешнему ip - виртуалка 202.2 вообще имеет выход в инет? Тот же гугл пингуется?
Ну и насколько я знаю нужен обратный nat на сервере, для захода из нутри по внешке
Вопрос: Как подростку заработать в 14-15 лет?

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

Худший ответ: Можете устроиться работать копирайтером на фрилансе.
Вопрос: Какой выбрать внешний монитор для MacBook Pro (14-inch, 2021)?

Лучший ответ: 4к ips. Диагональ по вкусу.

Худший ответ: Для идеального скейлинга лучше 2к или 5к. На 4к все будет либо огромное либо мелкое.
Вопрос: Почему strcat() останавливает работу программы?

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

Худший ответ: Прототип функции strcat():
char *strcat(char *dest, const char *src);
ни на какие мысли не наводит? :)
Вопрос: Какие есть лучшие книги по программированию 2022 для новичка?

Лучший ответ: Если говорить о общих чертах программирования, я бы посоветовал бы посмотреть лекции CS 50. В ютубе на русском есть целый плейлист

Худший ответ: "основания программирования"

Базы данных для инженеров

читай вузовские/техникумовские учебники
там общая теория и история языков
Вопрос: Как высчитать и вернуть разницу в секундах в сравнении времени?

Лучший ответ: В общем случае так:
const dateA = new Date('...')
const dateB = new Date('...')

// разница в секундах с точностью до миллисекунды
const differenceInSeconds = (dateA.getTime() - dateB.getTime()) / 1000

// затем можно или отбросить дробную часть
console.log(Math.trunc(differenceInSeconds))
// или округлить одним из методов
console.log(Math.round(differenceInSeconds))
В вашем случае, судя по комментарию к вопросу, должно быть как-то так:
let lastReqDate
app.get('/api/v1/example', (req, res) => {
  const date = new Date()
  let diff
  if (lastReqDate != null) {
    diff = (date.getTime() - lastReqDate.getTime()) / 1000
  }
  if (diff != null && diff < 120) {
      diff = Math.ceil(diff) // округление до ближайшего большего целого
      res.header('Retry-After', diff)
      res.status(429) // Too Many Requests
      res.send({ retryAfter: diff })
  } else {
      lastReqDate = date
      // выполнение запроса разрешено
  }
})

Худший ответ: DateTime startDate = DateTime.Now.AddSeconds(-1000);
DateTime var endDate = DateTime.Now;
DateTime var totalSeconds = endDate.Subtract(startDate).TotalSeconds;
Console.WriteLine($"totalSeconds: {totalSeconds}");
Только храни все датами, а не строками.
Вопрос: Как защитить днс сервер?

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

Это конечно ИМХО, но такой сценарий снимает с вас кучу головной боли и ставит четкую границу между внутренней сеткой и диким интернетом. В идеале открытым наружу должен быть только vpn.

Худший ответ: Открытый днс доступен для всех
Или ограничьте его по ip адресам
Вопрос: Как сделать массовую проверку https прокси?

Лучший ответ: Может, есть решения, которые позволяют из файла вытаскивать все серверы прокси и проверять их?

ЛЮБОЙ скриптовый язык программирования, и скрипт на 1-5 строк

Худший ответ: соотвественно одну из этих команд засунуть в aa.cmd
curl --proxy %1 check-host.net/ip
curl --socks5 %1 check-host.net/ip
и запускать "aa 11.22.33.44:5555"

можно дорисовать батничек перебора прокси-листа.
Вопрос: Как решить ошибку RuntimeWarning: Enable tracemalloc to get the object allocation traceback?

Лучший ответ: Вы запускаете асинхронные функции как синхронные. В ошибке об этом сказано.

Худший ответ: Ты же не написал await при вызове функции
Вопрос: Доказано ли, и можно ли сжать произвольные данные до 20 байтов к примеру?

Лучший ответ: Допустим, существует некий алгоритм, который преобразует последовательность X длины M в последовательность Y, причём существует обратное преобразование. Неважно, что это за алгоритм конкретно - сжатие, создание "зерна" и пр. Но очевидно, что:

1. Количество вариантов последовательности X составляет K в степени M, где K - размер словаря, т.е. количество возможных различимых значений одного элемента последовательности X. В случае байтовой последовательности это байт, т.е. K=256.

2. Каждая последовательность X после преобразования даёт последовательность Y, причём две разные последовательности X дают разные последовательности Y. 

Соответственно количество возможных последовательностей Y равно количеству возможных последовательностей X. И соответственно если существует хотя бы одна последовательность Y короче последовательности X, то существует хотя бы одна последовательность Y длиннее последовательности X.

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

Что же до "зерна", которое разворачивается в гигабайты - во-первых, количество финальных миров определяется количеством значений "зерна", то есть вовсе даже не такое бесконечно большое, как кажется, во-вторых, созданный образ мира содержит значительное число повторяющихся элементов, а создание копий - это немножко  не декомпрессия.

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

Лучший ответ: Не надо ничего мудрить, просто поставьте ; в конце команды

Худший ответ: Не надо ничего мудрить, просто поставьте ; в конце команды
Вопрос: Почему не пишут сайты на языке Си?

Лучший ответ: Дорого и есть более приспособленные для этого яп

Худший ответ: Язык JavaScript - это интерпретируемая версия языка С. 
Дело в том, что язык С - не переносимый, программы на нём зависят от платформы, на которой будет выполняться программа. Поэтому он компилируемый, а не интерпретируемый.
Язык JavaScript в свою очередь максимально абстрагирован от платформы. Для него достаточно того, чтобы скрипт корректно выполнялся браузером. Это позволяет сделать сайт, который будет корректно работать на разных устройствах. И более того - даже в разных браузерах.