Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Что посоветуете почитать для левелапа в JS?

Лучший ответ:
Список книг:"ES6 и не только" Кайл Симпсон.  - очень хорошая книга, достойна чтобы просто прочитать, переведена достаточно хорошо. Learning JavaScript Design Patterns автор Addy Osmani примеры правда  большинство относятся к ES5, что можно подчерпнуть как там выглядить паттерны, ну какой должен быть хороший стиль, очень хорошая книга
Ещё один способ, берет библиотеку jQuery и разбирайте её на части)) очень интересное штука и занимает многие вечера. Но пользы будет очень много. Ибо когда-то это библиотечка произвела фурор)

Худший ответ:
Посмотрите как рекомендуют писать крутые чуваки из гугла:
https://angular.io/tutorial
Прекрасно тем, что можно сочетать с практикой.
т.е. придумайте себе учебную задачу и пилите Angular2 приложение, только "по-честному", разбирая рекомендации из документации, заодно RxJS захватите.
Вопрос: Как взаимодействовать VueJS с шаблонизатором ejs?

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

Худший ответ:
https://ru.vuejs.org/v2/guide/single-file-componen... Вот тут прочитайте
Вопрос: Почему дублирует события при state.reload?

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

Худший ответ:
лучше переместить this.rootScope.$on в config
Вопрос: Как отображать стили в зависимости от переменной?

Лучший ответ:
<div style={true ? { backgroundColor: 'red' } : {}}>
Это просто объект.

Худший ответ:
<div style={сюда кидаете объект со стилями, которому назначаете свойства в зависимости от своих переменных}>
например
Вопрос: Как отключить проверку компьютера браузером google chrome от вредоносного ПО?

Лучший ответ:
На лайфхакере постоянно идёт обсуждение всех понтов Хрома и единственный вердикт - не пользоваться им как снизить потребление памяти6 причин отказаться от него

Худший ответ:
Скорее всего вам внедрили вирус в сам бинарник хрома
Проверьте систему
Antimalware Service Executable относится к винде
Antimalware Service Executable is the name of the process MsMpEng (MsMpEng.exe) used by the Windows Defender program. The service associated with this program is the Windows Defender Service.
Сейчас нет более производительного движка чем тот что использует хром
Потому смена браузера не решит ничего
Вопрос: Есть ли смысл хешировать уже захешированные пароли?

Лучший ответ:
Да, есть смысл для bcrypt как минимум. Задача bcrypt в том, чтобы замедлить процесс брутфорса и сделать его ресурсоемким и  сложно реализуемым на специализированном оборудовании / GPU / ботнетах и т.п. (см. например openwall.info/wiki/john/GPU/bcrypt). Это сильно замедляет возможности подбора даже относительно слабых паролей.
Есть еще более интересные алгоритмы, например Argon2 и yescrypt.
Вводить разные хэши для разных пользователей не стоит, решение с "перехэшированием" старых хэшей вполне безопасно.

Худший ответ:
Я не являюсь специалистом в криптографии.
Однако исходя из известных мне базовых принципов криптографии это занятие как минимум бессмысленно, как максимум вполне возможно понизит безопасность.Сейчас в базе лежат захешированные (SHA256) пароли пользователей + соль (uuid v4)Смысл этой фразы непонятен.
Как могут в базе лежать захешированные пароли? Что это вообще такое?
Бывают пароли - придуманные пользователем последовательности символов используемые для аутентификации.
Бывают хэши - результат работы функции хэширования.
О хэшированных паролях слышу в первый раз.
Обычно в базе хранят хэши паролей. Это нормальная практика.
А у вас что-то непонятное.
Вопрос: Как пройти проверку приложения на Facebook?

Лучший ответ:
Тоже с этим мучался. У нас задача была такая, получить список всех музыкальных исполнителей, которые лайкал пользователь, и на основе этого списка порекомендовать ему ближайшие концерты в его городе. 
Добивались разрешения на user_likes. У нас удалось получить одобрение так:
1 Мы создали кнопку "Порекомендовать мне концерты"
2 По нажатии на эту кнопку предлагается кнопка "Авторизоваться через Facebook"
3 По нажатии на "Авторизоваться через Facebook" сделали авторизацию в новом всплывающем окне, в котором после авторизации на 3 секунды показывается сообщение "Вы успешно авторизованы! Подробности отправлены на ваш email xxxx@xxxx.com"
4 Всплывающее окно убиваем с помощью window.close() - это разрешено когда дочернее окно было открыто в вашем скрипте
5 Самое важное, так как у нас еще нет прав на user_likes (лайки пользователя), то мы после успешной авторизации показываем пользователю фейковый список концертов с сообщением, на основе ваших интересов, мы можем порекомендовать вам сходить на Сплин в Олимпийском 26 ноября (просто с потолка)
Этот процесс нужно заснять на видео, не важно что рекомендации фейковые, главное чтобы был понятен смысл.
В вашем случае, на видео должно быть показано, что пользователю будет полезно открыть вам доступ к своим фоткам. Если пользователь просто открыл доступ, то это не прокатит. Нужно придумать мотивацию, допустим, найти похожих на меня людей.
6. Последний важный момент, нужно в developers.facebook во вкладке "Роли -> Тестовые пользователи" нужно создать пару тестовых аккаунтов с рандомными данными (для тестировщиков из facebook)
Главные причины отказа
1 Не созданы тестовые пользователи в панели управления приложением
2 Юзеру не понятно что он аторизован (после авторизации обязательно нужно показать сообщение типа вы успешно авторизованы и показать ему ссылку на управление его аккаунтом на вашем сайте, можно по почте, а лучше сразу его отправить в личный кабинет)
3 Не удалось доказать полезность функционала для пользователя

Худший ответ:
Тоже никак не можем пройти ревью.
Суть приложения в следующем - участники нашей программы лояльности, регистрируются в APP с помощью номера телефона,  лайкает, комментин и делает репосты постов страницы и за это получают бонусы на счет.
С лайками и комментариями все ок, тут нам ранее одобрили. А вот после мая 2018 Facebook перестал отдавать информацию по репостам и никак не одобряет приложение с репостами. 
Помогите, пожалуйста, как пройти проверку?
Вопрос: Как правильно сверстать такую «плитку»?

Лучший ответ:
Попробуй  сетку Masonry - wp-kama.ru/id_2818/masonry-vyivod-html-blokov-v-vi...

Худший ответ:
таблицы
или 
display: table
Вопрос: Что вы используете для кроссбраузерного тестирования сайтов, какие версии рассматриваете?

Лучший ответ:
1 - Никакие. При хорошем знании html \ css в 90% случаев проблем не будет, и достаточно почекать только последние (актуальные) версии браузеров. Тем более, они автоматически обновляются у всех. Если припрет проверить что-нибудь экзотическое - регаю фиктивный аккаунт на browserstack.com и проверяю в течение бесплатных минут.
2 - не заморачиваюсь. Если припрет - пишу "ошибка такая-то в {browsername} - исправлено"

Худший ответ:
ие 9 10 11 edge - каждая версия стоит на виртуалке.
хром, мозилла, опера - последние версии
мобильные устройства:  android, ios, планшеты - все которые есть в офисе)
Лучше смотреть в разных браузерах параллельно с версткой, так быстрее будет.
И разные эмуляторы бесполезно использовать, они не точно показывают, после них косяки вылазят на реальных устройствах.
Вопрос: Можно ли получить исключительные права на работу фрилансера?

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

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

Лучший ответ:
Самую свежую.

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

Лучший ответ:
Нужно ли рисовать мобильную версию:
зависит от 
- дизайна 
- содержимого
- квалификации дизайнера
- квалификации верстальщика (и возможно сотрудничества дизайнера, чтобы дорисовать какие-то иконки/мелочевки по требованию верстальщика)
- аудитории сайта и % пользователей с мобильников
Делать ли отдельную мобильную версию:
- если контент существенно отличается - ДА
- если нет или скрыты лишь некоторые несущественные блоки - делать адаптивный 
Бутстрап
- зло :)

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

Лучший ответ:
Toptal - агентство. Размер комиссии, при которой агентство оказывается жизнеспособным, составляет от 70 до 90 процентов. Человека с рейтом $70/h они попытаются продать за 100, значит на руки такой работник будет получать максимум 30. Это вариант для ярко выраженных интровертов, панически боящихся общения с клиентами на финансовые темы.
На upwork.com или freelancer.com около 6 месяцев потребуется на то чтобы осмотреться и понять принципы работы, после этого толковому fullstack-разработчику можно рассчитывать на постоянный поток long-term проектов. Дальнейшая работа будет минимум вдвое более выгодной, чем на Toptal, и помимо денег будет приносить постоянных клиентов.

Худший ответ:
Я когда проходил собеседование в Toptal, то сам назвал свою ставку, и именно столько мне и платят. По большому счету мне все равно, сколько Toptal берет с клиента. До этого я 6 лет работал на Upwork - еще c с тех времен, когда он назывался Elance.
Что я могу сказать? Это отлично, что Toptal берет на себя все финансовые вопросы. Когда работаешь напрямую с клиентом, то решение разных организационных, в том числе финансовых, вопросов, занимает до 50% времени проекта. Которое клиенты в 90% случаев оплачивать не хотят. А здесь фрилансер может сосредоточиться именно на работе.
Да, насчет максимальных рейтов - я думаю, что их не существует. Хотя, когда я озвучил свой рейт на собеседовании в Toptal, то получил несколько странный ответ: это больше, чем у 90% фрилансеров в вашем регионе. Но ведь я и не работаю с заказчиками из своего региона. Но тем не менее, у меня в контракте прописан именно тот рейт, который я назвал.
Вопрос: Каков принцип работы укоротителя ссылок?

Лучший ответ:
Все просто:
- Генерируем уникальный ID для ссылки
- Сохраняем этот ID в базе вместе с ссылкой
- Когда кто-то запрашивает http://вашсайт.ру/[ID] достаем из базы ссылку которая привязанна к этом ID и редиректим.

Худший ответ:
Берете урл. По нему md5 и затем base64
Записываете в базу получившееся значение и url.
Итог: http://<ваш домен>/<получившийся base64>
Если идет обращение, то по части ищете в базе и возвращаете редирект на url сохраненый в базе
Вопрос: Какой агрегатор платежей подключить для физлица?

Лучший ответ:
"Единая касса" (walletone.com): тут

Худший ответ:
walletone как уже называли в комментариях, но на него тут жаловались Какой самый надежный (не тупящий) платежный агрегатор для физ лица? не в курсе решили они технические проблемы или нет.
interkassa.com там есть режим личной кассы, ещё paysto.ru и z-payment.com вроде пишут от физ. лиц принимают
Вопрос: Командная работа в Unity?

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

Худший ответ:
Unity VCS
Perforce или PlasticSCM
Вопрос: Смысл систем сборок Gulp, Grunt и т.д?

Лучший ответ:
Смысл таск ранеров в том, что бы упростить и автоматизировать рутиные задачи. Сборку можно сделать да хоть на bash скриптах. Grunt/Gulp - просто заточены под это и просты в изучении.
В команде намного проще использовать подобные средства, чем выполнять все задачи поднятия проекта в ручную.
Например при сборке фронта вам требуется:
1. Проверить исходники через eslint
2. Минифицировать js код, и для dev сборки притянуть сорс мапы
3. Собрать css из кучки взаимосвязанных less файлов и тоже минимизировать.
4. Шаблоны собрать из jade например, или любого другого шаблонизатора
5. Прогнать unit тесты
Безусловно, можно все эти шаги выполнить полностью в ручную, однако на много проще один раз этот процесс описать в инструкции для сборки и вызывать что-то в стиле gulp build

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

Лучший ответ:
CloudFlare поставить, получится ровно то же самое что и поднять несколько своих серверов с гео распределением. Только бесплатно.Какие существуют решения на этот счет?
гуглить по
geo dns
nginx geo upstream
и т.д.
https://gist.github.com/kmjones1979/fcabb4731bbf85...

Худший ответ:
На самом деле вы зря так про статику. CDN может не кэшировать контент или кэшировать на короткий срок. Тут бонус в том что если вы, например, в AWS, то там вся сеть связана широкополосным доступом и вся передача контента сравнительно мала по сравнением со временем генерации этого контента и точно быстрее свяжи между клиентом и самим CDN.
Вопрос: Как обработать более двух чисел в методе Math.max?

Лучший ответ:
Да вы правы, но принимает два аргумента, но деллается задание по другому.int max = Math.max(Math.max(a,b),c); т.е. находится максимум двух чисел, и далее этот находим наибольшее среди максимума и третьего числа.

Худший ответ:
1-й вариантTreeSet<Double> doubles = new TreeSet<>(Arrays.asList(1.34, 2.34, 3.34, 1.74, 0.34));
		System.out.println(doubles.last());3.34
2-й варинт
Использовать библиотеку commons-lang3, утильный класс org.apache.commons.lang3.math.NumberUtilsdouble max = NumberUtils.max(1.34, 2.34, 3.34, 1.74, 0.34);
		System.out.println(max);3.34
Вопрос: Одновременный запуск 1 URL двумя разными пользователями?

Лучший ответ:
Скрипты запустятся одновременно. Результат будет зависеть от того, как именно вы этот скрипт написали. Если умножение делается одном запросом SET `value` = `value`*2, то всё будет работать нормально. Если сначала делается выборка, затем умножение в клиенте, затем запись, то может возникнуть состояние гонки. Чтобы его избежать надо использовать блокировки таблиц/строк, например через SELECT FOR UPDATE

Худший ответ:
Нет никаких гарантий порядка выполнения, если вы САМИ этот порядок не обеспечили.
Поэтому может быть что угодно:1)скрипты запустятся по очереди? т.е было число 10, станет 10*2=20 потом 20*2=40?
2)или одновременно как то будет? т.е оба получат число 10, и оба занесут в БД итого=20?
Существует множество способов избежать этого:
Флаги, транзакции, очереди.
Выбирайте тот, что вам больше подходит.
Вопрос: Удалится ли загрузчик ОС при полном форматировании диска?

Лучший ответ:
Наслаждайся

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

Лучший ответ:
Когда вы написали код, то он автоматически защищается авторским правом. Дополнительно вы, как автор, можете приложить к нему лицензию, в которой указано, что можно и что нельзя делать с кодом.
Однако проблема в том, что любой человек может изменить несколько строк в вашем коде и заявить, что он сам это написал. Сейчас такое время, что очень сложно доказать, что код у вас именно украли. В частности, очень простой код типа console.log('hello') вообще не получится защитить.
Критерий авторства очень прост - это судебное разбирательство. Вы обращаетесь в суд и жалуетесь на конкретное лицо, что оно у вас украло код. Дальше суд решает, правы вы или нет. Как выше было сказано, выиграть такое дело очень сложно. Разве что кто-то взял ваш код с прикрепленной запрещающей лицензией, ничего не вырезал и использовал в своём проекте как есть.

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

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

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

Лучший ответ:
Чтобы начать, у вас уже всё есть: в любом браузере можно прямо сейчас написать простое выражение на JS типа 5 + 6 и получить результат. Например, в FireFox это можно сделать в Консоли разработчика (Ctrl + Shift + K) или в интерактивном блокноте (Scratchpad   Shift + F4). Т.е. устанавливать на комп ничего не нужно.
Что делать дальше, чтобы было интересно – слишком индивидуально, чтобы предлагать. Меня, например, увлекает генерируемая графика. Написал формулу, правила, и генерируется красивый узор. Для этого стоит погуглить про canvas, или разобраться с Processing JS.
Можно делать простейшие, для начала совсем примитивные HTML5 игры, которые выкладывать в ВК или Телеграм, чтобы другие могли их пробовать. Делать что-то востребованное другими – тоже отличная мотивация развиваться.

Худший ответ:
Если знаете немного английский язык, то есть интересный сервис для интерактивного обучения JS - javascript-roadtrip.codeschool.com/levels/1/challe...
Вопрос: Как быть с отладкой внутренностей Qt?

Лучший ответ:
Откомпилируйте себе версию с отладочной информацией и наслаждайтесь полноценной отладкой.

Худший ответ:
В общем всё оказалось проще - достаточно добавить исходники Qt в настройки дебагера, почему изначально так не сделано -хз. Поправка - их надо было скачать.
Вопрос: Есть Microserver Gen8. Какую ОC поставить для домашнего NAS?

Лучший ответ:
NAS4Free, если нет каких-то особых требований.Ubuntu Server, если есть желание получить полностью конфигурируемую систему. Вот здесь есть хороший мануал по быстрому старту, старенький, но актуальности не потерял.
Xpenology я не рекомендую, т.к. это, по сути, хакнутая версия Synology DSM, работа которой возможна только со специфическим загрузчиком на флэшке. И любое обновление может сломать систему и развалить RAID. Почитайте форум прежде чем доверять системе важную информацию.
Работоспособность iLO от ОС не зависит, за исключением мониторинга состояния жестких дисков в веб-интерфейсе iLO - чтобы это было доступно, в ОС должно быть установлено соответствующее ПО от HP.

Худший ответ:
Windows server всегда лучше).  Другое дело что религия может не позволять)))
Вопрос: Какие книги по SOLID принципам стоит прочитать?

Лучший ответ:
Никакие. SOLID это мусор. Встречал много людей, любящих рассуждать об архитектуре. Их всех объединяет одна вещь - они не могут спроектиоровать и написать с нуля систему.
Потому что чтобы проектировать нужно иметь практический опыт, банально видеть много хороших и плохих примеров кода\архитектуры и самому писать крупные проекты с нуля, а не кусочки в составе команды.
Вам же советую больше заниматься практикой, а не мусорные книжки читать. У вас сама постановка вопроса неправильная. Какую нафиг книгу? Все что можно узнать о SOLID - гугится в википедии за 15 секунд.
Вообще лучше не думайте об архитектуре, просто делайте проекты. Первые несколько раз получится дерьмо, зато потом заткнете за пояс любого знатока значения буковок из SOLID

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

Лучший ответ:
Если мне не изменяет память - керио основана на freebsd. Можно из консоли посмотреть список оборудования вообще:
pciconf -lv
dmesg | less
А так - должна быть кнопка в настройках что то типа "добавить интерфейс", по крайней мере в kerio winroute firewall такая была. Ещё можно вручную прописать в winroute.cfg

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

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

Худший ответ:
Так как вы говорите, что у вас статичные категории, то вполне можно использовать Nested Sets, для хранения категорий.  При малом количестве обновлений категорий, они намного быстрее...
Вот, как пример: zabolotnev.com/mysql-nested-sets
Вопрос: Как устранить ошибку при установке программы?

Лучший ответ:
Попробуйте так sudo apt-get install git
илиsu-
apt-get install git

Худший ответ:
Попробуйте так sudo apt-get install git
илиsu-
apt-get install git
Вопрос: Yii2 получить ID еще не созданного пользователя?

Лучший ответ:
Просто загружайте фото в afterSave() где уже есть id

Худший ответ:
Максим Тимофеев парвильно сказал, но иногда, в какой-нить сложной бизнес-логике, реально бывает необходимость получить id еще не сохраненной сущьности. Для решения этой проблемы нужно отказаться от автоинкрементов в таблицах и получать id у какого-нить счетчика, например,  redis incr.
Вопрос: Где лучше брать сертификаты для https?

Лучший ответ:
мест для приобретения сертификатов хоть жопой жуй: google -> cheap ssl certificate
конкретного советовать не имеет смысла потому что есть всякие дилы и т.п., поэтому нужно гуглить на момент покупки ибо цены постоянно меняются. все равно поставщиков сертификатов можно пересчитать по пальцам, а все остальные - банальные перепродаваны, которые, тем не менее, предлагают более лучшие цены.letsencrypt нормально работает?вполне. только надо обновлять каждый квартал. хоть ручками, хоть автоматически.если да то почему платные еще существуют?потому что есть много видов сертификатов, которые letsencrypt не выпускает.

Худший ответ:
Конечно первым делом следует посоветовать https://letsencrypt.org, а вторым делом, конечно, гугл
lmgtfy.com/?q=ssl+certificate
Вопрос: Visual studio c# — sql — что к чему?

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

Худший ответ:
SQLite / Firebird - не требует сервера
MS Sql Server / MySql / PostgreSql - требует
Вопрос: Из одной уличной витой пары 200 метров сделать две — возможно ли?

Лучший ответ:
Да, берете и делаете. На заре локалок в 2000х так очень часто делали. Может и сейчас тоже сопли вешают.

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

Лучший ответ:
Китайские боты вас нашли и пытаются вам залить шеллкод или вирус.
БЕГN!
Заранее отвечаю на вопрос "а как они меня нашли?":
На сканирование ВСЕХ АДРЕСОВ ipv4 по одному порту (80 же?) нужно около 25 минут. Они не лично вас искали, а вообще любые веб-сервера. И всем пытаются впарить вирус. И этим занимаются не только китайцы.

Худший ответ:
Попытка использовать уязвимость CMS и загрузить свой код на ваш сервер.