Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как связать JSON с POJO без родительского элемента?

Лучший ответ:
Пробуй так:
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(jsonString).path("data");
List<MyData> myJSON = mapper.readValue(node.toString(), new TypeReference<List<MyData>>() {});

Худший ответ:
Может как-то так?
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(jsonString).path("data");
List<MyData> myData = Arrays.asList(mapper.readValue(node.toString(), MyData[].class));
Вопрос: Какую БД выбрать для мобильной стратегии?

Лучший ответ:
Проблем у вас несколько. Первая с latency, вторая с source of truth.
Первая решается через CDN и репликацией инстансов с логикой. Гарантированно придёте к очередям и асинхронной обработке данных с событийной консистентностью.
По базам - либо полностью менять логику приложения и коммуникации, либо использовать распределенные базы, такие как AWS Aurora и AWS DynamoDB. Сами по себе они региональные, но есть интересные фичи, позволяющие выводить на весь мир. 
Сразу скажу - коллизии будут в любом случаем

Худший ответ:
А при чем здесь БД?
Используйте MySQL, как и раньше.
А чтобы улучшить отзывчивость, нужно оптимизировать саму игру. Это делается разными путями. Зависит от игры. Вы, кстати, даже не сказали, пошаговая стратегия или реального времени. От этого тоже многое зависит. Если реального и есть требование матчить игроков со всего мира, то в первую очередь нужно уволить геймдизайнера.
Что касается распределенного хранилища, то есть хитрые варианты, когда данные хранятся на устройстве пользователя и сервера им доверяют. Это убирает жесткое требование репликации, и даже добавляет возможно разгрузить сами сервера, но в замен придется много программировать т.н. арбитражную систему по принципу "доверяй, но проверяй".
Вопрос: Радиомост UBNT — сеть и интернет, хелп?

Лучший ответ:
Как только они соединяются, то сразу отпадает сеть и интернет у всех

В чем может быть проблема?

Обе точки в одну сеть подключены? Ну тогда теперь вы знаете что такое кольцо в сети и шторм

Худший ответ:
1 точка - в основную сеть
Вторая точка - в другом месте, в отдельный ноут\пк шнуром.
Далее настраиваете между ними мост...
И шнур из ПК второй точки перетыкаете куда надо...
Вам же надо сделать мост между основным "зданием" и каким то удаленным?
Вопрос: Как получить ошибку от telegram bot (webHook)?

Лучший ответ:
при рассылке в ответ на каждый запрос с отправкой сообщения пользователю телеграм отдаёт ответ:
в случае успеха 
в случае неудачи (если пользователь заблочил бота):
Вы можете увидеть это наглядно, просто открыв в браузере адрес, меняя параметры на свои:https://api.telegram.org/bot[токен_бота]/sendMessage?chat_id=[айди_пользователя_собеседника]&text=123
обрабатывайте эти ответы и помечайте неактивных пользователей в базе.
в дальнейшем таким пользователям можно просто не рассылать сообщения, будет небольшая экономия времени при рассылке...

Худший ответ:
Не уверен, работает ли это в одиночном чате пользователя с ботом, но в общем чате с несколькими пользователями и ботом точно работает.
Попробуйте метод getChatMember.
В общем чате это работает так: если пользователь есть в чате, то метод вернет объект ChatMember. Соответственно, если в ответе что то другое, значит пользователя нет в чате.
Вопрос: Как отправить большой массив в Web API с помощью ajax?

Лучший ответ:
Да отправить json в формате json! 
$.ajax({
	type: 'post', 
	data: {json},
	cache: false, 
	contentType: 'application/json; charset=utf-8', 
	dataType: 'json' 

})

Худший ответ:
Да, POST\PUT и т.д.
Вопрос: Редирект с VPS на FTP сервер подключенный через OPENVPN, как?

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

Худший ответ:
я не очень силен в этом, помогите как правильно сделать, надо что бы с запроса на IP 195.133.x.x:21 я попадал на внутренний Openvpn"овский" 10.8.0.2:21

делаю так, но не работает 
iptables -t nat -A POSTROUTING -p tcp --dst 10.8.0.2 --dport 21 -j SNAT --to-source 195.133.x.x
iptables -t nat -A PREROUTING -p tcp --dst 195.133.x.x --dport 21 -j DNAT --to-destination 10.8.0.2:21
Вопрос: Есть ли резон идти в IOS разработку?

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

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

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

Худший ответ:
Не всегда скопированные статьи ранжируются хуже, Google больше ценит релевантность. Проработаете сниппет, пойдут клики и, если у вас лучше продумано usability, то поведенческие помогут вам задержаться в ТОПе. Яндекс хоть и не любит плагиат, но может подкидывать новые страницы в выдачу (многорукий бандит) и тоже оценивать поведенческие и last click. 
Кроме того, если у вас сайт-агрегатор, то поисковики его полюбят с еще большей вероятностью.
Поставите ссылку на оригинал и никто вас не накажет. 
Обычно от копирайтеров требуют не меньше 90% уникальности. Проверять можно с помощью: text.ru, advego,
etxt.ru
Вопрос: Битрикс как первая работа?

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

Худший ответ:
70% екомерц в россии это битрикс
остальные 30 самопись других движков на данный момент для екомерц нет.
А на " серьезные" проекты берут  программистов в теме.
Так что совершенно нормальным будет решение работать на самом массовом движке  в россии.
Вопрос: Имеется ли сайт, где можно обучится unity онлайн, не устанавливая её себе на комп?

Лучший ответ:
А сишарп уже знаете? Если нет - то вот с него и начинайте - онлайн компиляторы есть

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

Лучший ответ:
Итак, учим матчасть:

anycast 
wild-card certificate
REST


Вам не нужно иметь миллион разных доменов и десяток сертфикатов.
Решение - нормальный балансировщик. 

А в остальном, лучше всего сделать что-то в стиле:

GET https://f.s.com/path/to/file.ext скачать
POST  https://f.s.com/path/to/file.ext закачать
PUT  https://f.s.com/path/to/file.ext заменить
DELETE  https://f.s.com/path/to/file.ext удалить

На s.com можно лендинг/приложеньку повесить. 

А в целом, прочитайте про NIH и начните использовать Ceph.

Худший ответ:
Спасибо всем, кто дал полезные советы по существу вопроса. Ещё раз кратко. Имеется микросервис хранения картинок, который нужно масштабировать. 
Решение получилось следующим. Микросервис поднимается на нескольких серверах:
s1.site.ru
s2.site.ru
s3.site.ru

Также поднимается nginx-балансировщик s.site.ru:

# Список серверов для балансировки запросов на запись (upload).
upstream storage_backend {
    server s1.site.ru:80;
    server s2.site.ru:80;
    server s3.site.ru:80;
}

# Определение локации сервера для запросов на запись и удаление файла. Опция default нужна
# только для того, чтобы в случае неопределённого запроса получить 404, а не 500.
map $uri $storage_location {
    "~/(storage|delete)/s1-"  "s1.site.ru:80";
    "~/(storage|delete)/s2-"  "s2.site.ru:80";
    "~/(storage|delete)/s3-"  "s3.site.ru:80";
    default                           "s1.site.ru:80";
}

server {
    listen 80;
    server_name s.site.ru;

    location / {
        proxy_pass http://$storage_location;
    }

    location /upload/ {
        proxy_pass http://storage_backend;
    }

}

В блоке map часть паттерна "s1...s2...s3" - это префикс имени файла, который формируется и возвращается сервером, выполнившим запрос на запись. Т.е. сервер, записывающий файл, цепляет к имени префикс, по которому затем в этом блоке можно будет однозначно определить локацию. Это добавляет лишних хлопот при добавлении нового сервиса в пул: нужно "ручками" назначить ему этот префикс так, чтобы он был уникальным. Есть в этом какая-то неровность, но я не знаю в данный момент способа это обойти.

В итоге при поступлении запросов на запись, типа POST s.site.ru/upload балансировщик выбирает очередной сервер из storage_backend, а при запросах на получение по uri определяет локацию по $storage_location.

Ну и ssl прикручивается только к балансировщику, стандартно.

Сделал небольшой тестовый пул локально, всё работает. Буду пробовать на реальном железе.
Вопрос: Что значит звёздочка после типа указателя?

Лучший ответ:
что значить Звёздочка после типа?
https://en.cppreference.com/w/c/language/pointerДля чего после double стоит *, ведь это символ разыменования, а что мы разыменуем?
В данном случае звездочка не является оператором а относится к типу.Зачем перед malloc стоит (double*)
https://en.cppreference.com/w/c/memory/malloc
Выделяет память в байтах (возвращает указатель на void), и ничего не знает о том как вы ими будете распоряжаться.N.B. В современном Си такой необходимости нет.c-faq.com/malloc/cast.html
c-faq.com/malloc/mallocnocast.htmlприведение к типу (double*) сообщает компилятору, что вы хотите.

Худший ответ:
Первая запись обьявляет переменную ptd указателем на double. Компилятор ожидает, что в данной переменной хранится адрес памяти ячейки, который указывает на переменную типа double, хотя сразу после обьявления в ней находится мусор - неопределенное значение.
Вторая запись выделяет память под хранение переменных.
sizeof(double) - получить размер переменной double для текущей платформы
malloc - выделить память под десять переменных размером в double - обычная вещь для массива например.
(double *) - привести тип возвращаемого значения (malloc всегда возвращает void) к типу "указатель на double"
Надо сказать, что данный код можно использовать только в том случае, если сразу за malloc() идет чтение или инициализация массива. Потому что malloc() вернул область памяти, заполненную случайными данными. Для гарантии, что там не будет мусора лучше использовать calloc:ptd = (double *) calloc(sizeof(double), 10);
Вопрос: Что нужно знать начинающему C# разработчику?

Лучший ответ:
На любой вопрос ищи ответ у Кнута. 
По C#
https://viduus.net/wp-content/uploads/2018/02/Riht...

Худший ответ:
А Рихтер не слишком сложный? И насколько еще актуальные, не устаревший ли материал? О Рихтере противоречивые мнения.. Но насколько поняла, его книга уж точно не первой должна быть, при знакомстве с языком)
Вопрос: Cтоит ли учить бустрап?

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

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

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

Худший ответ:
Загрузите в корень сайта favicon.ico
Вопрос: Как проинициализировать большое кол-во однотипных свойств?

Лучший ответ:
beforeMount() { // какой тут хук использовать?
  const fields = ['input1', 'input2']

  fields.forEach(item => this[item] = '') // я правильно добавляю в this, а не в this.$data?
}
Никакой хук не использовать. Всё неправильно.

С одной стороны, разницы нет, куда стучаться, к экземпляру, или к $data, т.к. последний представляет собой

Объект с данными, над которым экземпляр Vue осуществляет наблюдение. Экземпляр проксирует сюда вызовы своих полей. (Например, vm.a будет указывать на vm.$data.a)
С другой стороны, пытаться туда что-то добавлять бессмысленно, потому что

Vue не может обнаружить добавление или удаление свойства. Так как Vue добавляет геттер/сеттер на этапе инициализации экземпляра, свойство должно присутствовать в объекте data для того чтобы Vue преобразовал его и сделал реактивным.
<...>
Во Vue нельзя динамически добавлять новые корневые реактивные свойства в уже существующий экземпляр.


Массив сделайте:

data: () => ({
  inputs: Array(20).fill(''),
}),
<div v-for="(n, i) in inputs">
  Значение #{{ i }}:
  <input v-model="inputs[i]">
  {{ n }}
</div>

Худший ответ:
Немного не соглашусь с концепцией.
Я бы на вашем месте сделал все 20 свойств, но при этом применял семантичное именование. (ну т.е. не input1, а email). В данном случае вы теряете "экономию на спичках", но ваш код становится более осмысленным и читабельным.
По поводу "очистки" значений, можно как сделать функцию очистки всех полей, так и сделать подобие defaultState для всего списка полей, и просто затирать им рабочие свойства.
Вопрос: Стоит ли покупать данный вариант сервера?

Лучший ответ:
Так не лучше ли обновить текущий комп, а из старого железа собрать домашний сервер. Докупить дисков, если надо памяти, поставить proxmox,  настроить mdadm-ом рейд и создавать виртуалки под сайт, почту и т.д.?

Худший ответ:
Вот неплохое описание данной модели. Вот официальный даташит
Правда, меня смутило две вещи:
- 32G RAM, хотя в описании сказано, что максимум 16
- чрезвычайно скупая инфа о сервере.
- стор - ну, очень маленький (я вижу на фото 6 бэев с дисками. Судя по описанию, стоят родные диски 73G). Диски быстродействующие - 15к оборотов, но дату производства не разобрать, а значит - на сервер не годятся. RAID-контроллера практически нет (0 и 1 - это не контроллер, а спине чесотка)

Здесь очень просто влететь. 

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

В общем, я бы не стал. Это модель "на доживание", то есть она берется сразу с расчетом, что работает до тех пор, пока не дохнет, как сдохла - так в помойку. Почему? Именно в силу брэндовости-разбрэндовости купить на нее ЗиП будет невозможно в принципе (ну либо у авторизованных поставщиков IBM за бешеные бабки)

После того, как я купил себе сервер, я всем советую эту контору. Саппорт адекватен, вполне можно посоветоваться, не продаваны.

Что же касается осмысленности (или бессмысленности) содержания сервера дома - вот ответ на схожий вопрос, который я написал почти год назад.

Алексей я бы не был столь категоричен. Вы сами держали сервер дома? Если нет, давайте будем спорить о вкусе устриц с теми, кто их ел. Смысл в сервере "под кроватью" есть, и для некоторых категорий он может перевешивать все. Причем тут договор с провайдером? Провайдеру срать на то, что я у себя размещаю, все равно жиденький домашний канал не вытянет сколько-нибудь приличной скорости (а некоторые особо убалбешенные могут и flat rate купить).
Вот с чем согласен, так это с наличием белого IP.
Вопрос: Как передать сайт на Wordpress с open server заказчику?

Лучший ответ:
Не мучайте заказчика поставьте его на какой-нить тестовый хостинг и дайте доступы к админке.
Он уж тем более не поставит его без вашей помощи.
Но если нужно передать то экспорт БД и архив всех файлов ВП и кидаете ему.

Худший ответ:
Нужно сделать архив файлов и архив БД.
Этих два архива передать ему. Попутно нужно объяснить, что нужно править урлы в БД,
Можно использовать плагины, которые делают миграцию сайта, например плагин Dublicator Pro. Это плагин создаст полную копию и файл инсталлятор.
Архив и инсталлятор загружаете на сайт и пошагово проходите установку.
Спросите заказчика: ему нужны архивы или ему нужен рабочий сайт на его домене и хостинге? Обычно второе. С первым они не знают, что делать, если бы знали, то сделали бы сайт сами.
Вопрос: Выборку дублирующих email адресов в sql?

Лучший ответ:
Ну, запрос, конечно, без индекса, но один раз запустить можноSET SESSION group_concat_max_len = 10000000;
select replace(replace(email, '.',''),'+',''), group_concat(email), count(1) cnt
from table 
group by replace(replace(email, '.',''),'+','') 
having cnt > 1
order by cnt desc

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

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

Гугл форма
Телеграм бот
Tox


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

Или просто наваять простенькую форму с отправкой текста через сайт и простым паролем против спаммеров, или поднять cms/wiki и разослать всем единого юзера с паролем. Но тут засветится айпишник.
Вопрос: Создаю таймер изображений. За что браться, с чего начать?

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

Худший ответ:
Надо пути избражений закидывать в масив стрингов, откуда по setInterval  показывать их по одному
Вопрос: Проблемы с кодом на Python?

Лучший ответ:
TypeError: '<' not supported between instances of 'str' and 'int
Ошибка типов: знак "<" не поддерживается между "строка" и "число"

guess у вас строка
secret - число

Худший ответ:
random возвращает строку,попробуй
secret = int(random.randint(1, 99))
Вопрос: Есть ли интерактивные обучающие скрипты/дистрибутивы по Linux?

Лучший ответ:
Чувак, поставь генту :) Когда она у тебя заработает - вот это будет упражненьище!

Худший ответ:
Установите себе Linux на компьютер/VM и обучайтесь, сколько влезет.
Вопрос: Как при помощи Powershell отправить файл своему боту в Telegram Bot API?

Лучший ответ:
у Windows Powershell нет прямой поддержки 'multipart/form-data', только у Core

В частности для multipart не хватает указания bondary в ContentType
Можете попробовать поэкспериментировать с ручной сборкой типа как тут @jklemmack
https://stackoverflow.com/questions/36268925/power...
или с System.Net.Http.MultipartFormDataContent

Худший ответ:
в 7ом (и, похоже, в 6ом) повершеле работает вот так:

$token = "ХХХХХХХХХХХ"
$chat_id = "ХХХХХХХХХ"
$uri = "https://api.telegram.org/bot$Token/sendDocument"
$fileObject= get-item C:\test\1.pdf
$Form = @{
        chat_id              = $Chat_ID
        document             = $fileObject
        
    }#form
$invokeRestMethodSplat = @{
        Uri         = $Uri
        ErrorAction = 'Stop'
        Form        = $Form
        Method      = 'Post'
    }

Invoke-RestMethod @invokeRestMethodSplat

в 5ом нет параметра форм в Invoke-RestMethod и там нужны пляски с бубном.
Вопрос: Почему валидация сработала не так как задумывалась?

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

Худший ответ:
Боже, как же вы усложняете :)
У вас регэксп телефонно-емейловый, как я вижу, противоречит длине значения этого поля.
Я бы посоветовал:
1. Не пытаться унифицировать функцию валидации.
2. Использовать одну ноду под ответ success/error и в неё писать ответ возвращённый конкретной функцией валидации.
3. Раз уж валидируете регэкспами, то и пишите(гуглите) регэкспы соответствующие ожидаемому вводу.
4. Фронт-энд валидация, на самом деле, вещь бесполезная, разве что вы хотите просто чтоб было по красоте.
Вопрос: Оцените сборку старого ПК?

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

Худший ответ:
Ценность историческая. Либо для тех кому нужен комп с нативной поддержкой старых операционных систем типа Win XP. Реально можно попробовать продать за 1000-1500 руб. при условии полностью исправных комплектующих.
Вопрос: Как сделать независимое воспроизведение с одного пк разных мелодий на разные колонки?

Лучший ответ:
Самое простое - использовать несколько звуковых карт. Купить какие нить дешевые на том же али и воткнуть их в разветвитель. Потом останется на стороне софта настроить какой инстанс в какую звуковуху играет.

Худший ответ:
Тут уже написали про несколько звуковух, но у вас с большим шансом стоит реалтековская звуковуха с реалтековскими дровами (или стандартными от винды, тогда надо будет поставить реалтековские). Так вот, реалтеки позволяют любой разъём 3,5 назначить как любое устройства ввода или вывода звука и, соответственно, подключив и настроив два аудиоустройства, одно в обычный линейный выход, другое, скажем, в линейный вход и переназначив линейный вход как выход на отдельное устройство, при этом указав драйверу на то, что надо звуковые потоки разделять, вполне можно сделать то, что вам надо.
Вопрос: В чем проблема в SQL файле?

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

вот если импорт средствами БД скажет, что что-то не так - тогда да, это будет проблема

Худший ответ:
Здесь нет проблемы
Вопрос: Как эффективно использовать Docker + Docker-compose при разработке?

Лучший ответ:
 но к ним нельзя подключиться извне (из-за использования networks, а как открыть нетворк - 
 догадаться нужно самому)
А через директивы ports - разве не прокидываются нужные порты из контейнеров наружу? При внесении каких-то изменений в основное приложение 
 можно лишь надеяться что они когда-то появятся в контейнере
Если вы вносите изменения в проект который примаплен через volume - то контейнер их тут же видит. 
Умеет ли ваше приложение видеть что локальные файлы изменились, и применять их - это уже другой вопрос.
Но даже если не умеет - нет никаких проблем перестартануть нужный контейнер после внесения каких-либо изменений. Можно пять раз удалить контейнер с приложением, потом десять раз удалить образ
 никакие изменения никуда не попадут. 
Не знаю как у вас построено - но приведу насчет примеров с проектами на python.
В Python создается папка с виртуальным окружением, куда устанавливаются все необходимые библиотеки для работы. Эта папка мапится вместе с проектом в контейнер. При этом используется контейнер python из стандартного образа на все проекты, а виртуальное окружение - из примапленной директории. Нет необходимости ничего дополнительно устанавливать в контейнеры. Поэтому что вы там пытаетесь делать с образами - непонятно... Использовать при этом виртуальное окружение на локальной машине, запуская приложение через него - нельзя, 
 потому что нетворк баз данных где-то там локальный.
Ну тут определиться - используете докер для этого, или виртуальное окружение на своей машине.
Если хотите одновременно использовать и то и другое - прокидывайте порты.

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