Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Взаимодействие PHP и JS?

Лучший ответ:
REST API
Автор, у вас подпись на Тостере ""Ok Google" и все твои проблемы решены". Так может воспользуетесь своими же методами? :D

Худший ответ:
Супер абстрактный пример:
Через js делаем ajax запрос, php увидев его, запрашивает из базы по данному запросу данные и отдаёт вам.Пример кода на js:fetch('/contacts') // Запрашиваем у сервера данные по странице контакты
.then((response) => {
   // Тут будет то, что вернул вам сервер
  console.log(response));
  
  // Далее вы раскидываете данные
  ...
})
.catch(error => console.error(error)); // Если вдруг была ошибка
Сервер увидел, что к нему пришёл get запрос по странице контакты. Он пошёл в бд и взял оттуда данные по этой странице и вернул их в формате json.
Вообщем и целом, вам необходимо прочитать про REST API, что это и как его готовить.
Вопрос: Удалять ли данные из бд?

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

Худший ответ:
ну как минимум, если данные не удалять, то база перестанет влазить в память:) вопрос может быт тут, только в размерах и сроке.
или может не хватить вычислительных возможностей базы, тогда вопрос в размерах/количестве/качестве ресурсов.
но рост данных можно и существенно замедлить поделив его скорость на кол-во баз-узлов, представляющих исходную базу.
Вопрос: Почему не добавляется ещё один LEFT JOIN?

Лучший ответ:
... WHERE city_id = 4019 LEFT JOIN ...
После WHERE не может быть JOIN'ов.

Худший ответ:
JOIN идут друг за другом
Структура SQL запроса такая:
SELECT * FROM table
LEFT JOIN table1 ON...
LEFT JOIN table2 ON ....
INNER JOIN table3 ON ...
WHERE ....
Вопрос: Фоновое видео на сайте, как лучше сделать?

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

Худший ответ:
я использовала https://github.com/BGStock/jquery-background-video на 2х сайтах и багов не было
Вопрос: Как стать SMM — специалистом?

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

Худший ответ:
UPD: так вы определитесь, SEO или SMM?
Я начинала с базовой литературы по поисковой оптимизации. Сойдет, в общем-то любой фундаментальный гайд. Чтобы закрепить полученные знания и "пропустить" их через себя, нет средства лучшего, чем купить домен и хостинг, и начать заниматься оптимизацией :) 
Для каждого отдельного аспекта можно найти пошаговое руководство здесь.
Еще одной хорошей штукой, которая будет подталкивать к развитию, может стать Quora: я в свое время очень многое узнала и потом использовала в работе за счет того, что искала ответы на какие-то специфические вопросы по SEO.
Вопрос: Какое решение по корпоративной почте показалось Вам наилучшим?

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

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

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

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

Лучший ответ:
В ваше коде есть несколько проблем. Возможно, если вы устраните их, то все заработает.
1. У вас нет обработки загрузки файла. Его нужно сохранять вручную.
Пример: https://github.com/symfony/symfony-demo/pull/286/files
В контроллере нужно обработать все загруженные файлы следующим образом:foreach ($product->getImages() as $image) {
    $uploadedFile = $image->getFile();
    $uploadedFile->move('uploads/', $uploadedFile->getClientOriginalName());
    $image->setPath('uploads/' . $uploadedFile->getClientOriginalName());
}
И почитайте внимательно symfony.com/doc/current/cookbook/doctrine/file_upl...
Также посмотрите api.symfony.com/3.0/Symfony/Component/HttpFoundati...
2. Во всех формах укажите data_class, и тогда не нужно будет создавать экземпляр Image вручную.
См. symfony.com/doc/current/reference/forms/types/form...
3. Вам не следует делать вызов метода getForm() внутри buildForm
4. Начиная с симфони 2.8 объявление метода getName не нужно. Теперь формы идентифицируются по полному имени класса.

Худший ответ:
Сделал загрузку без использования форм.
В шаблоне добавил:<input type="file" name="files[]" multiple>
В Action получаю массив с файлами и создаю объекты Image передавая файл в setFile(file), а затем добавляю объект Image в $product->images:$images = $request->files->get('files');
foreach($images as $file) {
   $image = new Image();
   $image->setFile($file);
   $product->addImage($image);
}
Дальше всё работает как тут: symfony.com/doc/current/cookbook/doctrine/file_upl...
с использованием Lifecycle Callbacks.
Вопрос: Как передать нескольких параметров из Си в функцию на ассемблере?

Лучший ответ:
Для архитектуры AMD64 в Linux применяется System V AMD64 ABI:
Первые 6 целых числе или указателей передаются в регистрах RDI, RSI, RDX, RCX, R8, R9, а числа с плавающей точкой в регистрах XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6 и XMM7. Если параметров больше, то дополнительные передаются через стек. Целые числа до 64-бит возвращаются в регистре RAX, а большего размера в паре регистров RAX и RDX. Числа с плавающей точкой подобным же образов возвращаются в регистрах XMM0 и XMM1.

Худший ответ:
Первые несколько параметров передаются через регистры, остальное через стек.
https://msdn.microsoft.com/ru-ru/library/zthk2dkh.aspx
В Си есть стандарты передачи, но у себя в ассемблеры вы вольны изгаляться как вам угодно.
https://msdn.microsoft.com/ru-ru/library/zkwh89ks.aspx
Вопрос: Как заставить mpdf в Yii2 выводить русские буквы?

Лучший ответ:
Необходимо строку'mode' => Pdf::MODE_CORE,
заменить на'mode' => Pdf::MODE_UTF8,

Худший ответ:
Доброе утро.
Так может проблема не в mpdf?
Проверьте, везде ли у Вас нужная кодировка(файл, сервер и т.д.)
Вопрос: Где здесь утечка памяти?

Лучший ответ:
Во первых, вы неправильно используете анонимные функции, напримерconst startTimer = (){ ... }
и все остальные.
Анонимные функции можно использовать только в ситуациях, когда их вызывают "не по имени" для сохранения контекста. Например, аргументом forEach().
В данной ситуации лучшей синтаксической формы ничего не придумали:function startTimer(){ ... }Второй момент for ( const key in _headers ) {
        if ( {}.hasOwnProperty.call( _headers, key ) ) {
            headers.append( key, _headers[ key ] );
        }
    }
и конкретноif ( {}.hasOwnProperty.call( _headers, key ) )
Вы в цикле каждой итерацией создаете новый объект, это крайне не рациональное использование метода hasOwnProperty()
по мне if (_headers != null && !!_headers[key] )
может выглядело бы не так красиво, за то потребляет памяти по-меньше.Третий момент.catch( console.error )
Вы можете немного сэкономить памяти использовав как раз по назначению анонимную функцию.catch( e => console.error(e) )
В этом случае интерпритатор не будет искать ссылку на console.error при создании каждого промиса, и будет искать, соответственно, только в исключитальных ситуациях.Четвертый момент
Поменьше пользуйтесь ключевым словом const, особенно, внутри методов и функций. Во-первых, так как они не выгружаются из памяти. Во вторых, const не дает никаких преимуществ в производительности, только лишь накладывает на интерпритатор обязанности следить чтобы ее случайно не перегрузили.

Худший ответ:
Проверьте на всякий случай, что у вас в любом случае вызывается response.text()  или аналоги. Если не вызовется, возможен memory leak как минимум в V8.
А вообще в Chrome же можно делать снимки кучи.
Вопрос: Почему при переносе домена на wordpress не подтянулись настройки темы?

Лучший ответ:
Потому что WordPress сериализует данные для хранения.
Сериализация работает по точным длинам данных.
Если вы просто заменили все вхождения домена - сериализованные данные сломались и просто не читаются.
Надо при смене домена длину переменной(цифру) поменять чтобы сериализация не сломалась :)
https://wordpress.org/plugins/fg-fix-serialized-st...

Худший ответ:
В настройках Вордпресса
Адрес WordPress (URL) 	
и
Адрес сайта (URL)
правильно указаны?
Вопрос: Как запретить, установить или убрать свойство hover?

Лучший ответ:
selector {
  pointer-events: none;
}Тык

Худший ответ:
Лучше всего прописать hover внутри медиазапроса min-device-width: 1280px.
В 95 процентах случаев этого достаточно.
Вопрос: Как сохранить позиции в поисковиках при редизайне сайта?

Лучший ответ:
сохранить релевантный контент и сделать редиректы

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

Лучший ответ:
Копировать

Худший ответ:
Копировать
Вопрос: Публичный Wi-Fi. Насколько безопасен VPN?

Лучший ответ:
1)Нет. При условии что вы внимательны и следите за сертификатами.
2)То же самое что и в п.1, только добавляется еще один слой защиты.
3)А разве есть банки позволяющие подключаться по http к личному кабинету?При использовании VPN и http данные шифруются только от VPN до сайта?При использовании VPN данные шифруются в тоннеле - от VPN клиента, до VPN сервера. Далее на сайт уже идет не шифрованный трафик.
Опять же все это если VPN шифрует трафик - шифрование трафика в VPN необязательная опция, которую используют далеко не всегда.Или от моего устройства до WiFi роутера тоже в зашифрованном виде передаются? Да кто же знает где у вас VPN тоннель начинается, может прямо у вас на компьютере поднят, может на вашем роутере, может у провайдера.Решает ли VPN все проблемы с безопасностью в публичном WiFi и если нет, то какие проблемы остаются и как их решать? Нет, но существенно снижает риски при грамотной настройке.

Худший ответ:
2)3) понадежнее, с (1) можно подменить сертификат с хз каким клиентом на мобиле
шифрует от устройства до ВПН сервера
Вопрос: Как открывать новое окно при клике по фрейму?

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

Худший ответ:
<div class="background block_23">
<!-- параметры окна Высота x 500; Ширина x 400) -->
<a href="services/exchange/index.html#size-window" target="_blank" onclick="window.open(this.href, '', 'scrollbars=1,height='+Math.min(500, screen.availHeight)+',width='+Math.min(400, screen.availWidth)); return false;">
<!-- ссылка ввиде картинки img -->
<img src="img/test.png" alt="exchange" width="138" height="138" class="style-button" style="margin-left:5px;"/></a>
</div>
Вопрос: Не получается поднять проект на Heroku?

Лучший ответ:
Ошибка "ModuleNotFoundError: No module named 'dj-project'" говорит о том, что в том же каталоге, где лежит Procfile, нет файла dj-project.wsgi, прописанного в этот Procfile. Есть подозрение, что в Procfile должно быть: web: gunicorn catapp.wsgi

Худший ответ:
не получается пока, разобраться с ошибкой (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
Вопрос: Спам в fl.ru как понять как все это работает?

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

Худший ответ:
Мебель в месяц доставляете заявок?
Вопрос: Изменения конфигурации компьютера?

Лучший ответ:
По парт номеру можешь найти оригинальный конфиг ноута. Но это не дает гарантий, что друг одолжил память.
Найди конфиг, сравни с тем, что стоит по факту. Желательно глазами увидеть планки, т.к. если одна из них начала умирать, то может некорректно показывать память. Правда, по моим наблюдениям, она обычно начинает показывать больший объем. Фоточка из личных архивов Вам в пример=)

Худший ответ:
На сколько я знаю, винда в своих журналах не пишет информацию о памяти.
В никсах при загрузке можно посмотреть информацию по железу в /var/log/dmesg, но этот файл перезатирается при следующей перезагрузке. Возможно делается ротация логов и что-то сохранилось, но как правило ротация не слишком большой глубиной (т.е. логи сохраняются всего несколько дней).
Вопрос: Несёт ли программист отвественность за противозаконное применение своего кода?

Лучший ответ:
Вам дали доступ к сайту, у вас была возможность посмотреть, что там "вокруг". Мошенники так редко поступают, как-то это глупо было бы.
Напишите заказчику, пусть удалит ваш e-mail. И дело с концом. Вы формально перестанете иметь к этому отношение.
Вообще магазин получает данные карт в не зашифрованном виде. Это нормально. Как и где хранит - его дело, лишь бы не утекли. Если вы считаете, что это утечка, а не внутренняя кухня, то проинформируйте об этом как можно больше заинтересованных людей. Это потом, если что, пойдёт как плюс во время защиты.
А так в нашей стране такой бред, что гарантий никто не даст. За лайки сажают. Ну, сегодня уже не сажают, но завтра новый бред придумают. Короче, даже если на вас будет дело, думаю, у вас все шансы на выигрыш. Но дела не будет, имхо.

Худший ответ:
Однозначно ответить на этот вопрос нельзя.
Если этот человек - мошенник, если его поймают, он вполне может сдать вас, как соучастника, даже если вы ничего не знали вообще. Полиции куда интереснее "разоблачить преступную группу", так что там к этому подталкивают, обычно.  Так что то, что формально, вы не участвовали в преступном сговоре, не значит, что вам это не "пришьют".
Если он мошенник, выяснить это, не подставляя себя, непросто. Просто спросить прям текстом - не вариант. 
Вот и думайте.
Если он не мошенник, то это всё равно так не делается, конечно. А понять, мошенничество это, или просто ужасная тупость - тоже просто так нельзя.
Вопрос: Какой выбрать linux на pentium 4 для youtube?

Лучший ответ:
При просмотре что ли цпу на сто процентов загружен плеером?

Худший ответ:
думаю тут дело не в ОС. 
на сколько щагружен проц. при просмотре?
пробовали разные браузеры? 
попробуйте "легкий" браузер https://en.m.wikipedia.org/wiki/Comparison_of_ligh...
Вопрос: Есть ли dedicated или облачный зарубежный хостинг с дешевым трафиком?

Лучший ответ:
Ovh.com - анлим с шириной в 1гбит

Худший ответ:
100tb.com - от 100 тб на сервер выдают
Вопрос: Как добавить зону .local в DNS-сервере для локальных пользователей на Windows Server 2008 R2?

Лучший ответ:
Не рекомендуется использоваться зону .local так как она используется в сервисах mDNS. Лучше сделайте зону вида .int.company.ru

Худший ответ:
Открываете Диспетчер DNS, ПКМ на "Зоны прямого просмотра", "Создать новую зону". Отвечаете на вопросы мастера. Всё, зона создана.
Вопрос: Валидация части объекта Symfony?

Лучший ответ:
Не пихай в форму сущность. Гугли про dto. И не надо валидировать сущность. Нужно валидировать запрос! Остальным база займется...

Худший ответ:
Действительно. Не стоит использовать сущность для валидации.  Сущность должна быть всегда валидной.
Использовал отдельный класс для валидации пароля.namespace AppBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;

class Password
{
    /**
	 *
	 * @Assert\Length(
	 *      min = 6,
	 *      max = 64,
	 *      minMessage = "Пароль должен содержать не меньше {{ limit }} символов",
	 *      maxMessage = "Пароль должен содержать не меньше {{ limit }} символов"
	 * )
	 * * @Assert\NotBlank(
	 *     message="Пароль не должен быть пустым"
	 * )
     * @var string
     */
    private $password;


    /**
     * Set password
     *
     * @param string $password
     *
     * @return Password
     */
    public function setPassword($password)
    {
        $this->password = $password;

        return $this;
    }

    /**
     * Get password
     *
     * @return string
     */
    public function getPassword()
    {
        return $this->password;
    }
}
В контроллере public function newPasswordAction(Request $request){
		$password = new Password();
		$form = $this->createForm(NewPassword::class, $password);
		/........./
	}
Класс формыuse Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;

class NewPassword extends AbstractType
{
	public function buildForm(FormBuilderInterface $builder, array $options)
	{
		$builder
			->add('password', RepeatedType::class, array(
				'type' => PasswordType::class,
				'invalid_message' => 'Поля паролей должны совпадать.',
				'options' => array('attr' => array('class' => 'password-field')),
				'required' => true,
				'first_options'  => array('label' => 'Новый пароль'),
				'second_options' => array('label' => 'Повторение нового пароля'),
			))
			->add('save', SubmitType::class)
			->add( 'new_password_hidden' ,  HiddenType :: class, [
				'mapped' => false,
			])
		;
	}
}
Вопрос: Как работать с отношениями в Laravel без второстепенных моделей?

Лучший ответ:
Вы хотите архитектуру или костыли? Есть MetadataTranslations, создавайте для неё модель. Экономя на спичках вы ничего не выиграете.

Худший ответ:
Для реализации перевода есть отличный пакет dimsav/laravel-translatable.А что, если я не хочу создавать отдельную модель для Phone, но всё также хочу получать расширенные данные о телефоне из другой таблицы? 
В случае если это отношение один к одному, то можно обойтись обычным джойном. В остальных случаях удобней пользоваться Eloquent отношениями.
Вопрос: Как заменить все/первое вхождение TEST на TEST2 в файле?

Лучший ответ:
Подскажите, куда копать и как это сделать?
Читать мануалы. Это самое простое что можно сделать этими утилитами.

Худший ответ:
sed.sed 's/TEST/TEST2/'  -i   test.txt                        # заменить все
sed '0,/TEST2/s/TEST2/TEST/' -i /tmp/test.txt  # первое вхождение
Вопрос: Что это за файлы с расширением SRT?

Лучший ответ:
субтитры

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

Лучший ответ:
Как человек, который был в той же ситуации, рекомендую вот что: в первую очередь, самым идеальным вариантом будет найти работу верстальщиком, как уже сказали выше. Пусть не за очень большие деньги, но найти ее надо обязательно. Вы не поверите, насколько быстро вы будете учиться, т.к. задачи перед вами будут стоять совершенно реальные, и каждый день будет что-то новое чего вы еще не делали, в отличии от тренировочных макетов. Таким образом у вас накопится хороший опыт реальной разработки. 
Далее, настоятельно рекомендую постоянно гуглить. Абсолютно по всем вопросам и сложностям которые у вас возникают. Повторюсь, именно гуглить, не задавать вопрос на тостер (не воспринимайте в упрек :)), а самостоятельно искать ответы, решения и туторы. В будущем это очень поможет вам быстро находить всю необходимую информацию, а так же грамотно и четко формулировать соответствующий вашей задаче запрос.
Так же, советую постоянно читать книги и статьи из мира фронтенда. Постоянно! 
Навскидку из того что пришло в голову скажу четыре сайта. 
Всем известный хабр: открываем тег "html" и внимательно изучаем все статьи подряд, делая для себя пометки в блокноте и добавляя в закладки полезные статьи, которые могут пригодиться в будущем, отмечая для себя темы которые нужно изучить в будущем и т.д. Даже касательно вашего вопроса о технологиях - полхабра забито статьями на эту тему. 
Второй - css-live.ru, шикарный ресурс с русскоязычным контентом, огромным количеством переводов каяественных иностранных статей, и очень понятной подачей материала.
Третий - webref.ru (бывший htmlbook). Лучший справочник по html и css, а так же на нем множество уроков, статей и полезных материалов и бесплатных обучающих курсов.
И четвертый - frontender.info. Изначально может показаться что там все связано с Js, но на самом деле это не так. 
Помимо всего этого, порекомендую вам курсы от LoftSchool. Они лучшие, честно. За два месяца с ними вы изучите больше чем самостоятельно за полгода, и я не утрирую.
И на последок, вам нужен наставник. Человек, который подскажет решение если в гугле не удается найти ответ, придумает ТЗ для тренировки, подскажет где ошибка в коде и, если что, направит в нужное русло. Если хотите, могу вам в этом помочь, я люблю делиться знаниями :)

Худший ответ:
Завис так само...Видимо нужно больше практики.
Мне как новичку не совсем понятно : "очень давно уже занимаюсь контентом на фрилансе ?" -поясните пожалуйста.
Вопрос: Как различать .env в Laravel для Лайв и Дев-Систем?

Лучший ответ:
https://laravel.com/docs/5.4/configuration#environ...
Конфиги для разного окружения должны быть разные в принципе, разные файлы.
Да и в общем-то так накосячить надо постараться.
дев и прод вообще никак не могут пересекаться, тем более конфиги перепутаться.
У них общий только репозиторий в гите, все остальное разное. А конфиги в гите хранить это как бы тоже уметь надо.

Худший ответ:
https://laravel.com/docs/5.4/configuration#environ...
Конфиги для разного окружения должны быть разные в принципе, разные файлы.
Да и в общем-то так накосячить надо постараться.
дев и прод вообще никак не могут пересекаться, тем более конфиги перепутаться.
У них общий только репозиторий в гите, все остальное разное. А конфиги в гите хранить это как бы тоже уметь надо.