Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Стоит ли начинать учить программирование с книг?

Лучший ответ:
Нужно понимать разницу межу "учить программирование" и "учить ЯЗЫК (для) программирования".
Изучившие первое становятся программистами, второе - кодерами. Это 2 разные специальности. Хотя в нашей реальности многие не понимают эту разницы.
Вот что точно не нужно - это смотреть видосики.
ЗЫ. Осилившим тома  "Искусство программирования" товарища Кнута  - респект и уважуха :)

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

Лучший ответ:
наверно тем что Модулей для WP нету и их называют Plugin

Худший ответ:
Тем же, чем Бэггинс отличается от Торбинса. Фантазией переводчика.
Вопрос: Что и как учить для создания инфо-ресурса?

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

Худший ответ:
Учи шаблонизатор любой популярной CMS. Самый простой Modx.
Вопрос: Как и где изучить полностью html/html5?

Лучший ответ:
Ах**еть сколько рекламы, и ладно если были бы бесплатными. 
https://www.w3schools.com/html/html5_intro.asp

Худший ответ:
htmlbook.ru
Лучший сервис
Вопрос: Как быть с доходами, полученными до открытия ИП и датой регистрации на upwork?

Лучший ответ:
Скорее всего работать без сертификата Вам придется у банка не просить, а требовать, и для того чтобы требование возымело силу, может понадобиться пригрозить уйти к другому банку.
Банки не афишируют что готовы работать и без сертификата, но когда прижимаешь их к стенке, выясняется что готовы. В этом случае они заявляют, что сертификат нужен лишь для отслеживания достижения отметки в $50 000 по работе с конкретным договором, которая требует или перезаключения договора или открытия паспорта сделки. Если же договор (подписанная публичная оферта) свежий и средств по нему не двигалось, то можно и без сертификата.

Худший ответ:
Почему во втором в принципе невозможно? 
ВК требует именно за 12 месяцев? Не за выводимую сумму?
Вопрос: Безопасность Windows Server. Читают ли они мой текст?

Лучший ответ:
Технически могут, практически оно им ннада?

Худший ответ:
1) windows шифрует соединение по rdp, но это слабовато
2) поднимайте свой шифрованный туннель openvpn/ipsec и ходите через него
Вопрос: Как использовать модели Django в своих скриптах?

Лучший ответ:
Вы можете написать django command, и вызывать его из любого места

Худший ответ:
В общем, сверху ответили. Можно пользоваться командами. Это классно и удобно. Есть батарейка для cron.
А если это совсем внешний скрипт или что-то проектно-сайтовое, но связанное, например, какой-нибудь чат или бот, то надо импортировать окружение django и лучше, что бы он крутился в виртуальном окружении проекта.
Сам импорт выглядит как-то так:import sys, os
import django
sys.path.append('/path/to/settings/py/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
django.setup()
https://docs.djangoproject.com/en/2.1/topics/setti...
Вопрос: Как узнать какие функции доступны в dll?

Лучший ответ:
Открываю IDA и смотрю что за функции торчат наружу, какие параметры принимают и что делают))

Худший ответ:
легкая артиллерия - нпрмр DependencyWalker
тяжелая артиллерия - нпрмр gdb
Вопрос: Как спарсить страницу отличную от стартовой при таком раскладе?

Лучший ответ:
1. сессия зависит от печенек.
2. первый запрос на auth -> получаем необходимые печеньки, сохраняем их -> при всех последующих запросах используем то, что сохранили на предыдущем этапе.
если парсится курлом, то смотреть CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR.

Худший ответ:
1) На сайте авторизации по кукам нет, только по сессииокай
Вопрос: Лучшие тесты по PHP, JS, JQ?

Лучший ответ:
Пройдите тесты на upwork.com и получите больший интерес от заказчиков.

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

Лучший ответ:
Рекомендую именно Unity. Самый популярный движок, много чего вы бесплатно возьмете из Assetstore для своей игры, много советов найдете на форуме, коммьюнити у движка огромное. C# как язык очень крутой, мультипарадигменный. Среды разработки под него очень крутые. Одни плюсы!

Худший ответ:
Варианты:
1) Java + LibGDX (только под андроид, или под десктоп)
2) Swift (только под айфоны)
3) С# и или Unity (под все основные платформы) или Xamarin+Monogame (под андроиды и айфоны)
4) Lua + Corona SDK или Gideros (под основные мобилки + есть возможность компилить под винду), Love2D тоже есть под мобилки.
5) Python + Kivy (вроде как под мобилки оно заточено)
6) JavaScript + PhoneGap/Cordova (каких-то простых игр вполне) или ReactNative/NativeScript
7) Godot Engine (под андроид на нем точно можно писать, под айфоны вроде тоже)
8) Torque2D/3D (вроде даже есть книжка, правда редкая, от рускоязычного автора про разработку мобильных игр на этом движке)
9) Monkey X Pro (сейчас он вроде как бесплатный стал), но можно и обычную версию (она точно бесплатная), которая позволяет html5 компилить, или более современная версия языка - Monkey 2 (вроде бесплатный полностью стал). Язык разрабатывают создатели BlitzBasic'a и его диалектов BlitzMax/Blitz3D.
10) GameMaker Studio 2 Mobile (но оно платное)
P.S. ну и есть еще всякие конструкторы игр без программирования типа Construct 2, Clickteam Fusion и подобные, где есть возможность получить, например, html5-игру, которую потом можно с помощью Cordova портировать на смартфоны.
Вопрос: Какие есть варианты реализации автоматической авторизации?

Лучший ответ:
Слова "лучше" и "наиболее" здесь, конечно, неприменимы, как и в большинстве связанных с программированием вопросов.
Я на одном из проектов сделал это так:Есть таблица token_actions, куда записывается секретный токен, название действия (Enum) и его аргументы в json.Действия могуть быть многоразовым и единичными.У токена может быть ограничено время жизни.Есть классы, каждый из которых обрабатывают конкретное действие, но имеют один интерфейс.Среди них есть и класс LogIn, который как раз авторизует пользователя.Есть контроллер, который принимает токен и по нему получает действие, создаёт объект его обработчика и выполняет его (для этого и нужен стандартный интерфейс).В письма, собственно, вставляются ссылки на обработчик токенов.Ну и ещё немного мелкой логики, добавляющей красоты и удобства.
Система получилась очень гибкой (по email можно сделать всё, что можно сделать на сайте - принять заявку в друзья, отправить комментарий со стандартным текстом, открыть форму редактирования чего либо) и безопасной (все важные действия одноразовые и есть проверка по правам доступа, насколько это возможно). А авторизацию по ссылке вы получаете как бонус, потому что каждое действие требует авторизованного пользователя, иначе и токены не нужны были бы.
Вот, я вам даже часть кода подарю: https://gist.github.com/alexey-m-ukolov/9588dcefc9...

Худший ответ:
Используйте токены jwtauth. Там все уже продумано
Вопрос: Книги по науке для начинающих?

Лучший ответ:
Перельман. Серия книг "Занимательная ..."
В вашем случае "Занимательная физика", "Занимательная математика", "Занимательная геометрия".
Эти книги дадут общее представление и практическую пользу. Остальное - дело техники. :)

Худший ответ:
Перельман. Серия книг "Занимательная ..."
В вашем случае "Занимательная физика", "Занимательная математика", "Занимательная геометрия".
Эти книги дадут общее представление и практическую пользу. Остальное - дело техники. :)
Вопрос: Есть ли смысл использовать link[rel="preload"]?

Лучший ответ:
rel="preload" имеет смысл использовать только для файлов (css, js, fonts, video, img), которые загружаются не из html-кода, а позже из других css/js-файлов или по ajax/socket. Чтобы браузер не ждал, когда обнаружится потребность в этом файле, а заранее загрузил его. 
Для обычных style.css/main.js используйте обычную загрузку.ведь скрипты потому и в подвале сайта, чтобы отложить их загрузку?
Они в подвале, чтобы не блокировали построение DOM (так юзер быстрее увидит страницу в браузере).

Худший ответ:
Там не только preload, зависит от ситуации:
https://habr.com/ru/post/445264/
Вопрос: Что лучше купить б/у мак или новый ноут на Windows?

Лучший ответ:
Когда-то у Мака было преимущество большей его "юниксовости".
С момента появления в Windows 10 подсистемы Linux - разницы столь значительной уже нет. Юниховые утилиты командной строки работают теперь прекрасно на Винде.
Если экраны и производительность одинаковы, то к Windows легче достать программы.

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

Лучший ответ:
array.map((n, i) => typeof n.id === 'string' ? i : null).filter(n => n !== null)
илиarray.reduce((acc, n, i) => (`${n.id}` === n.id && acc.push(i), acc), [])

Худший ответ:
В один проход:array.reduce(
  (acc, { id }, index) => typeof id === 'string' ? [...acc, index] : acc,
  []
)
Вопрос: Зачем статические методы в классе(PHP)?

Лучший ответ:
можно обращаться без создания объекта Class::statikFunk
Правильно.Что это мне дает?
то что не нужно постоянно инициализировать класс с его конструктором. 
т.е. не создаются лишние объекты.Просто удобное обращение? 
это тоже.. Когда объявлять статики?
Например есть хелпер который решает разные мелкие вопросы. 
где-то массив перебрать, где то дату вернуть, где-то с строкой что то сделать
(т.е. это простые задачи, которые не требуют сложной логики, подключения моделей и т.п., а могут быть выполнены в пределах локальной области видимости данного метода)
вот такие методы можно объявлять статическими.

Худший ответ:
Это сделано для красоты. Если вдруг вам удобнее писать DataManager::GetLastUpdateTime() вместо getLastDataUpdateTime().
Вопрос: Смена пароля windows по расписанию? Как это сделать?

Лучший ответ:
В стандартной поставке есть net.exe:
NET USER [имя_пользователя [пароль | *] [параметры]]
Команда NET USER позволяет создавать и изменять учетные записи пользователей на компьютерах. При выполнении команды без параметров отображается список учетных записей пользователей данного компьютера. Сведения об учетных записях пользователей хранятся в базе данных учетных записей пользователей.
имя_пользователя
             Имя учетной записи пользователя, которую необходимо добавить, удалить, изменить или просмотреть. Длина имени учетной записи пользователя не должна превышать 20 символов.
пароль       
Назначает или изменяет пароль учетной записи пользователя. Длина пароля не должна быть меньше минимально допустимого значения, определяемого параметром /MINPWLEN команды NET ACCOUNTS. Кроме того, длина пароля не должна превышать 14 символов.

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

Лучший ответ:
https://kwork.ru/ на первый взгляд нищебродский, но вполне годится для набора клиентской базы.

Худший ответ:
Я 3-4 года назад начинал с верстки шаблонов по $5 за страницу на fiverr.com, потом перешел на upwork.com.
Вопрос: Почему у регистраторов доменов и ресселеров такая существенная разница в цене?

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

Худший ответ:
У reg.ru в эту стоимость входят различные дополнительные услуги, реселлеры просто их не предоставляют и все.
Вопрос: Почему не включаются короткие теги на PHP?

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

Худший ответ:
1. После изменения файла надо перезапукать апач, если не в консоли проверяете.
2. Апач использует другой файл php.ini - на той же странице должно быть написано из какого файла берутся настройки.
Вопрос: Как составить договор с иностранными клиентами для ИП?

Лучший ответ:
Зарубежные компании-клиенты обычно уже имеют такой договор, ведь Вы наверняка не первый кого они нанимают. Если нет - берите образец с любой биржи.
Для ВК в банке потребуется двуязычная версия договора. Некоторые банки сами переведут оригинал, некоторым подавай готовый перевод.
В договоре должно быть:
- Ваши ФИО и адрес, ясно что они должны совпадать с ИП;
- указано вознаграждение, периодичность его получения и сроки выплат;
- указано кто платит комиссии за wire transfer;
Собственно все. Договор отсылается в банк один раз, далее вы на него ссылаетесь в каждом инвойсе.
Далее вы делаете инвойс на каждый платеж и отсылаете в ВК банка по приходу очередной суммы.
Инвойс также пишется на двух языках, с указанием суммы начисленной за Ваши услуги, комиссии удержанной банками при переводе, и итоговая сумма прописью на двух языках. В инвойсе должны также присутствовать все данные Вашего ИП. Все суммы с отсылкой "... согласно договора №123 от 1.1.2017".
И совет - выбирайте современные банки, которые помогают вам подготовить все документы для ВК, а не те что усложняют жизнь ненужной бюрократией.

Худший ответ:
Опыта такого не имею, просто замечу - если у меня стояла такая задача, то я обратился бы наверняка к юристу.
Вопрос: Как правильно настроить сеть в Proxmox на выделенном сервере Hetzner EX41?

Лучший ответ:
Разобрался.
Для этого понадобились две вещи:
1. Общее понимание как правильно организовать подключение. Все отлично расписано в https://pve.proxmox.com/wiki/Network_Configuration
для случая с одним публичным IP подходит Masquerading (NAT) with iptables
2. Детальное техническое описание реализации с нюансами для Hetzner. Для меня подошло https://e-tel.eu/2017/07/25/deploy-proxmox-hetzner...
Вместо "интернетной" сетевой карточки нужно сделать бридж с такими же настойками и портом в эту самую карточку. А для гостевых систем сделать второй бридж с POSTROUTING, MASQUERADE и bridge_ports none

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

Лучший ответ:
Почему бы не использовать css grids?

Худший ответ:
А вам на каком, на тройке или четвёрке ?
Вопрос: Как организовать уведомление о новой заявке на landing page в личку VK?

Лучший ответ:
Варианты:личное сообщение сообщение от вашего «запасного» аккаунта ВК;сообщение от Сообщества (группы); уведомление от Приложения ВК;смс (платно).
Метод messages.send() отправляет сообщение от пользователя или сообщества; secure.sendNotification() – уведомление от приложения; secure.sendSMSNotification() – эсэмэсина от приложения. Наверное, лучше сделать сообщение от Сообщества.
Создайте себе новую закрытую группу, где будете только вы. Включите сообщения сообщества и получите ключ (просто скопируйте его из Настроек сообщества – Работа с API.
При событии в лендинге откройте скриптом ссылку API ВКонтакта, например, так:$url = "https://api.vk.com/method/messages.send";
$params = [
	'user_id' => 123456, // ваш user_id в ВК
	'message' => 'Новая заявка!',
	'access_token' => $TOKEN, // токен сообщества
	'v' => 5.62
];
$url = $url . '?' . http_build_query($params);
file_get_contents($url);

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

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

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

Лучший ответ:
Скажите, может ли быть одна CMS система быть более уязвима для вирусов, чем другая?даЕсли да, то какой критерий (кроме платная/бесплатная) является существенным?платность/бесплатность никак не влияют. Вообще. 
Влияет 
- наличие опыта проектирования безопасных систем у разрабочиков ядра
- наличие активного сообщества
- быстрый ответ сообщества на найденную угрозу
- простая система распространения апдейтовИ какая CMS менее уязвима (предположу, что это Битрикс).по приведенным выше пунктам, у битрикса нет ни одного пункта с положительным ответом.
Сравнение цмс по пункту "безопасность" довольно сложное занятие, тк нужно иметь опыт разработки на всех
Потому идеальный ответ - используйте фреймворки и учитесь правильно их готовить
АПД: стоит добавить, что по моим наблюдениям, большую часть уязвимостей приносят с собой плагины и код от сторонних разработчиков, а не уязвимости ядра или функционала, поставляемого с самой цмс

Худший ответ:
любая CMS уязвима. В большей/меньшей степени зависит от популярности CMS: чем она более "знаменита" тем больше уязвима, тем больше хакером/ИБ ищут в ней различные уязвимости. Есть миллион и один случай который не возможно учесть при разработке любой CMS: от установленных различных программ/приложений на вашем сервере, качество кода/плагинов до уязвимости самой интернет/локальной сети, уязвимости железа и "компьютерной гигиены" пользователя
Вопрос: Есть ли смысл использовать формы?

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

Худший ответ:
form и input — нужны для загрузки медиафайлов на сервер
я их использую только для этого, остальное не использую
Вопрос: Как работать с байтами изображения на JavaScript или как переписать с Python на JavaScript?

Лучший ответ:
это не взлетит нигде кроме осла
и то старого
таки зачем заниматься извращениями?

Худший ответ:
Какой то страшный оверпавер...
В python есть библиотека для работы с докх, которая умеет искать в документе 
https://python-docx.readthedocs.io/en/latest/user/...
https://stackoverflow.com/questions/25228106/how-t...
найдите ею вашу картинку и сохраняёте - хоть в бейс, хоть в ейс...
Кстати, докх - это зипованый набор хмл-папок, и можно еще проще всевытаскивать, если знать как...
Вопрос: Почему конструкция «1 больше 1 меньше 1» в JavaScript возвращает true?

Лучший ответ:
В каждом языке программирования есть правила, которые определяют порядок выполнения операций в выражениях. Самый простой пример - умножение считается всегда раньше, чем сложение. Скобки могут менять порядок (затем они и нужны), но без скобок работают эти правила.
Чтобы их выяснить, нужно набрать в гугле "javascript precedence". Советую эту таблицу знать очень хорошо, чтобы считалось, что язык вы знаете.
Погуглив, вы выясните две вещи:
1) Операции > и < имеют одинаковый приоритет.
2) Ассоциативность "left-to-right", то есть слева направо.
Второе означает, что сначала будет посчитано левое выражение 1>1, которое false. А затем результат (false) будет посчитан с правым: false<1, где false автоматически преобразуется в 0.
В качестве тренировки посчитайте на бумажке, используя только таблицу приоритетов операций, такое выражение:0 / 0 ^ 0 === 0 ? 'a' : 'b';Решение и ответ, для самопроверки0 / 0 ^ 0 === 0 ? 'a' : 'b';
0 / 0 ^ (0 === 0) ? 'a' : 'b'; // "===" has more priority than "^"
0 / 0 ^ true ? 'a' : 'b';
(0 / 0) ^ true ? 'a' : 'b'; // "/" has more priority than "^"
NaN ^ true ? 'a' : 'b';
NaN ^ 1 ? 'a' : 'b'; //converted to number
1 ? 'a' : 'b'; //for some reason
'a'

Худший ответ:
В JS нельзя так комбинировать операторы сравнения как в паскале (UPD ошибся, паскаль выдает ошибку), т.к. первая часть выражения вернет логическое значение (true/false)1 > 1 // false
(1 > 1) < 1 === false < 1 === 0 < 1 === true
Вопрос: Куда посоветуете поступать в Питере с 270 баллами и целью стать веб-программистом?

Лучший ответ:
Поступай в студию, в вузе не научат)
А если ты хочешь быть сыном маминой подруги, то, конечно надо попристижней. ИТМО хороший выбор, будешь маминым молодчиной. В Политехе есть программы двойного гражданства диплома. Можно в ближайшей Лаппеенранте учиться, в 200км от Питера, зато пристиж такой, что все мамины подруги друг другу локти пооткусывают.

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

Лучший ответ:
1) это где такие лабораторные дают, что необходимо фреймворк написать?))
2) а вы уверены, что вам нужна рефлексия и динамика вообще? Почему вы считаете, что использование неймспейсов это проблема? 
По PSR-4 неймспейсы как раз используются для автозагрузки классов, потому что неймспейс по сути должен повторять путь до класса. У вас какой-то не универсальный автолоад, как же файлы в других папках? Как вы будете подгружать классы из папок внутри папки controllers?
Правильный подход - получать полное имя класса (с неймспейсом) и при автолоаде просто заменять слэши на прямые, чтобы получить путь до файла. 
Свой автолоад это обязательное условие? можно просто воспользоваться композером. Обязательно автолоад делать через устаревший __autoload(), а не через общепринятый spl_autoload_register()?
Создать объект класса используя его название в строке можно просто используя переменную:$classname = "app\\controllers\\MainController";
$methodname = "actionIndex";
$controller = new $classname(); // тут сработает автолоад

$controller->{$methodname}();
При этом вы можете (и должны) обеспечить безопасность, так чтобы никто не мог передать через GET и имя класса и имя метода, и вызвать любой метод. Делается это очень легко.
Во-первых путь из GET к нам приходит имя класса без неймспейса, ну логично. Неймспейс мы потом прицепим к нему. Так никто не сможет случайно создать объект любого класса, а только объект класса из папки с контроллером. Это не возбраняется.
Во-вторых, если кто-то передал абра-кадабру, то надо не падать с ошибкой Class not found, логично. Для этого, перед созданием класса просто смотрим на то какие файлы есть в папке с контроллерами. Если там нет файла с тами же именем что и класс - то показываем 404.
Потом, перед тем как вызвать метод, проверяем что он существует функцией method_exists($obj, $method_name), опять же - метода нет -- идите-ка вы на 404.
И это нормально, что рефлексия и проверка существования класса требуют полное имя класса. Это ваш подход неверный - с самого начала вы должны прицепить к имени класса неймспейсом и работать только с полным именем.

Худший ответ:
 $parts = explode('\\', $class);
Можно (new ReflectionClass($class))->getShortName(), но и так тоже сойдет.Или все правильно и так и должно быть? 
Да