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

Лучший ответ:
Я пришлю тебе

'';drop table config;select bitcoin from config

И таблица config будет удалена. Это называется SQL-инъекцией.

Ты не оборачиваешь строку в кавычки, разумеется, ничего хорошего не получится. В случае цифр, конечно, запрос без кавычек выполняется успешно. Но вообще это неправильный способ использования SQL, так как любая кавычка его сломает, а тщательно подготовленный текст (пример я привёл) вообще вызовет не тот запрос, который планировался.

Правильно использовать плейсхолдеры:

q.execute("UPDATE config SET bitcoin=? WHERE id=?", (new_bitcoin, user_id))

В этом случае база данных сама правильно всё подставит и выполнит.

Худший ответ:
q.execute("update config set bitcoin = " + str( new_bitcoin ) + " where id = 1")
За такое надо бить по рукам. Железной линейкой. Поясню почему:
если new_bitcoin присвоить число 1234 или строку "1234", то получим запрос
update config set bitcoin = 1234 where id = 1
Этот запрос синтаксически корректен с точки зрения языка SQL.
А вот если new_bitcoin присвоить строку "foobar", получим запрос
update config set bitcoin = foobar where id = 1
С точки зрения SQL это обращение к столбцу foobar. Которого, разумеется, нету.

А теперь, внимание, вопрос: какого огурца ты не ознакомился с азами использования СУБД, а именно с синтаксисом подстановки значения?
Читай тут, начиная со слов "Instead, use the DB-API’s parameter substitution". Осознай, и больше так не делай.

Ну и до кучи: что будет, если в bitcoin будет строка вида "0; --"?
update config set bitcoin = 0; -- where id = 1
Всё, что после "--" это комментарий, и будет проигноировано. Т.е. запрос перезапишет весь столбец bitcoin нулями.
Вопрос: Порекомендуйте пожалуйста open source систему для сервисного центра?

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

Худший ответ:
Нет таких. Если что-то ещё не умерло, то держится на соплях и как минимум требует перевода с английского.
Сами потихоньку пишите или ищите платное. Попробуйте приспособить 1С.
Вопрос: Как удалить Python 3.9.5 из Windows 10?

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

А вообще - почистите PATH системный

Худший ответ:
Как было сказанно выше лучше удалять стандартными методами.
Конкретно по теме могу посоветовать использовать стороннюю утилиту для деинсталяции (Uninstall Tool к прмимеру) и воспользоватся функцией "принудительное удаление", которая должна почистить остатки.
Вопрос: Можно ли развить IT стартап без знания кодирования и как?

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

Худший ответ:
Стартап, как и любой бизнес должны начинаться с бизнес-плана.
В плане должны быть отражены:
- все затраты, включая зарплатные;
- доходы.
Главным из бизнес плана является точка безубыточности - дата, когда стартап начнёт приностиь прибыль. Она может наступить через год, три, да когда угодно.  Может и не наступить. Тогда это плохая идея для стартапа.
 Резюме:
1. План.
2. Соблюдение плана.
3. Успех.
Вопрос: На чем делать UI для Windows в 2022 году?

Лучший ответ:
MAUI - это масштабное обновления xamarin-а по сути. ИМХО без поддержки Linux его кроссплатформенность мало чего стоит.
WPF - это нативная технология при этом с WPF тебе доступны всякие сторонние и родные контролы. В том числе самые новые от WinUI 3.
UWP превратился в WinUI 3
Avalonia - кроссплатформа. "Как WPF но лучше", но без поддержки контролов от WPF или WinUI, но есть много свободных вполне неплохих. Да и система стилей достаточно удобная

Если тебе не нравится Winforms из-за внешнего вида стандартных контролов, то всегда можно использовать сторонние.

На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов.
Есть много разных проектов, в том числе крупных и коммерческих, и от именитых компаний.
https://avaloniaui.net/Showcase

Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты? 
Если ты делаешь что-то небольшое и чисто для себя, и ты не умеешь работать с XAML и нет времени на освоение - нет причин не использовать Winforms. Да, он имеет проблемы с производительностью, да он не очень красивый, да винформы не очень легко поддерживать. Но является ли это реальной проблемой для вашего проекта?

В общем вот мой топ-чарт:
1. Если дёшево и сердито - Winforms (остальное - если нужен нормальный дизайн)
2. Если кроссплатформу - Avalonia
3. Если нужно на телефоны - MAUI (хотя Avalonia уже можно заставить работать на Android)
4. Если хочется в новый дизайн винды - WinUI 3

Худший ответ:
Вы выбираете инструмент а не инструмент вас. 
Если считаете, что ваш проект вполне будет жить в рамках WinForms, пишите на нем.
Если думаете о перспективе роста и ваше ПО вдруг окажется на просторах Linux, то тут смотрите в сторону Avalonia.
Жаль конечно, что MAUI не реализован на Linux.
Я бы на UWP ничего не делал.
Если надо быстро и работало, WinForms, хочется рюшечек, какого то сложного рендера тут WPF.
Хотите в кроссплатформу и Linux - Avalonia.
Вопрос: Какой язык программирования наиболее универсален?

Лучший ответ:
Английский

Худший ответ:
Однозначно Kotlin! Без вариантов!
Вопрос: Где здесь ошибка?

Лучший ответ:
static и abstract не могут вместе быть

Худший ответ:
static метод в интерфейсе должен иметь реализацию.
Вопрос: Как задать выполнение скрипта bash по собственному расписанию?

Лучший ответ:
В файле holidays.txt  выписать праздничные даты согласно производственного календаря в формате %d.%m.%y

При запуске проверять текущую дату
#!/bin/bash

if  cat holidays.txt | grep `date +"%d.%m.%y"` > /dev/null ; then
   # выполнять если праздник
else
   # выполнять если не праздник
fi

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

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

Худший ответ:
Хороший тестировщик общается много.

Под ваш запрос можно посоветовать искать работу в крупных компаниях, на позицию, где нужно только автоматизировать по готовым тест-кейсам. Тогда коммуникации сузятся только до переписок с другими тестировщиками.
Вопрос: Как перейти с версии 21H2 на 22H2 вручную, без центра обновления windows?

Лучший ответ:
Также тут https://itmen.help/blog/windows-11/updates/22h2/ расписаны все способы обновления на Windows 11 22H2

Худший ответ:
Это уже сделали за вас. Набор скриптов WSUS Offline. Если очень хочется сделать самому и руками, никто не мешает посмотреть в исходники.
Актуальная версия на gitlab.
https://gitlab.com/wsusoffline/wsusoffline
Вопрос: Как превратить подстроку вида «min ( a, b )» в «a min b»?

Лучший ответ:
Решение попроще, за квадрат: 
Пропустили ведущие и trailing пробелы, проверили, что строка начианется с "min" (иначе ничего делать не надо, возвращаем все). 
Потом заведите счетчик открытых скобок, пройдитесь до первой запятой внутри одной пары скобок. Рекурсивно преобразуйте левую часть, добавьте к этому min и результат рекурсивного преобразования правой части (от зяпятой до закрывающей скобки в конце).

Решение поумнее, за линию:

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

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

Можно не возвращать преобразованную строку, а сразу все функции могут просто дописывать свой ответ в какое-то одно место. А возвращать int - индекс конца. Ну, или длину обработанной части строки - так даже понятнее.

Худший ответ:
Поскольку случай - очень простой, то он решается шаблоном. Но если вместо а или б может быть
тоже выражение - тогда нужно определять свою грамматику. Например:
min ( min(a,b) , min (c,d) )
Тогда умные дядьки-теоретики берут язык описания грамматик. EBNF типа. И пытаются 
свой новояз описать в терминах например EBNF https://en.wikipedia.org/wiki/Extended_Backus%E2%8...
Описывают что такое число. Какое оно. Отрицательное? Вещественное? Экспоентциальное?
Короче надо описать вообще все что может быть. Описывают функцию минимума.
Потом по этой грамматике создают парсер. Программно. И парсер на выходе выдает
дерево. Где корень - это вся грамматика а на листиках будут висеть числа. Или терминалки не помню
как они это называют. И вот когда ты уже получил это чортово дерево - можно ПРИСТУПАТЬ ко второй
части задачи - а именно к транформации в инфиксную форму. Но ты сначала реализуй хотя-бы первую
часть. 

Это все теория и она требует погружения.  Я думаю что эта задача и ей подобные в частных случаях
решаются проще. Если например твой язык поддерживает регулярки - то перечисли макс. число
вариантов что будут на входе и выбери через матчинг подходящий. Это - быстрее.
Вопрос: Как исправить RuntimeWarning: coroutine was never awaited?

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

print, request - синхронные в вашем коде нуль смысла асихронности
перехватывать все исключения тоже не надо, может быть много побочек

Худший ответ:
self.pushButton.clicked.connect(self.working)
А ты уверен, что обработчиком нажатия кнопки может быть корутина (async-функция)?
По-моему, там должна быть обычная функция.
Вопрос: Как сделать простую кликер-кнопку?

Лучший ответ:
Вот набросал вам пример(См.ниже). Можете чуть доработать чтобы оно плавно исчезало и двигалось горизантально.
snippet

Худший ответ:
https://codepen.io/marylfo/pen/oNMoQPe
Останется добавить кнопку, евент.
В евенте добавляешь класс актив.

.small-heart-right.active,
.small-heart-left.active {
    display: block;
}
Соответственно в начале их убрав.
Вопрос: Как разделить строку из SQL?

Лучший ответ:
fetchone() возвращает кортеж значений. Если не знаешь, что такое кортеж - почитай. Это одна из базовых структур данных в питоне, её нужно знать.
Чтобы получить доступ к элементу кортежа, обращайся по индексу. Порядок элементов такой же, как порядок полей в запросе.
Альтернативно, используй распаковку кортежа.

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

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

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

psd-html-css.ru/shablony/psd-shablony-saytov 
psd-html-css.ru
https://all-psd.ru/site-templates/
https://camouf.ru/designes/ready-psd-layouts-for-saito/
Вопрос: Отчего вырубается комп при подключении флешки?

Лучший ответ:
Есть ли другие флэшки в металлическом корпусе? Подключали ли через хаб/монитор/выносной шнурок? Если БП уходит в защиту, значит флэшка замыкает питание на корпус

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

Лучший ответ:
Ничего не получится.
По поводу "цвета":
https://www.panelook.com/modelsearch.php?keyword=H...
Вам не сигнал HDMI нужен, а интерфейс видеоконтроллера, который для вашей матрицы, сюрприз-сюрприз - LVDS. Просто подружить два типа интерфейсов LVDS и eDP - уже огромная проблема (я, например, забил). А вы хотите сразу HDMI... А ещё про питание матрицы не забудьте!
Ну и до кучи. Вы уверены что вам так уж нужен 12-дюймовый "монитор" с разрешением 1366×768, отвратными углами и 6-битным цветом? И уж тем более чтобы ради этого пытаться городить такой огород... Купите за пару тысяч нормальный бу-шный. И дешевле в разы получится и качественнее.

Худший ответ:

1а. Найти цоколёвку (расположение сигналов) на разъёме "CON1 TTL-50PIN signal output" по ключевым словам PCB-800168 (возможно, будет полезно и наименование контроллера - SIXTHHD-HD1).
1б. Или найти цоколёвку "старого" 10,1" дисплея.

2. Найти цоколёвку "нового" 11,1" дисплея.
3. Сравнением цоколёвок - определить электрическую совместимость дисплеев. Возможно - понадобится перекрещивание каких-то выводов. Слово TTL в описании контроллера серьёзно умаляет вероятность, но, думаю, китайцы ошиблись и там - таки LVDS выход на ЖКИ.
4. Если совместимо - подключить простым и подходящим способом (пайка?) одно к другому. Если формат передачи пикселей совпадёт (можно проверить и на шаге 3, тогда - начать сразу с шага 1б) - заработает.

Как-то делал подобное, приращивал плату от разбитого нотбука в ЖК-монитор. Работало, но до финала не дошло.

P.S.
..... тогда отображается всякий шлак без моего экрана.
Потому, что преобразователь HDMI-LVDS, виртуально, подходит к любому ЖКИ с указанной глубиной цвета и числовм LVDS каналов.
..... что такое эти A00, A01, A03?
Аппаратные ревизии ЖКИ. Как правило - мало на что влияют.
Вопрос: Как выбрать пользователю между ext4, btrfs и zfs?

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

Худший ответ:
файлопомойке не нужны zfs/btrfs
Вопрос: Объясните пожалуйста, что за ошибка? Как её решить?

Лучший ответ:
Похоже, что тут ошибка в генном коде программиста. Во-первых, непонятно при чём тут Django, если ошибка стреляет из aiogram. Во-вторых, непонятно кому в голову пришла безумная идея применить к этому pyinstaller. В-третьих, main.py запускающийся из system32 - это просто эталон безопасности. Ну и в целом ошибка достаточно понятная, приложению нужен magic_filter, а его нет.

Худший ответ:
Если очень уж надо использовать pyinstaller вместе с aiogram, то попробуйте поставить aiogram==2.22.2.
Вопрос: Что почитать про многопоточность в вебе?

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

Худший ответ:
это 

и

https://xakep.ru/2014/12/04/python-async/
там с про event loop берешь термины и дальше в гугл

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

Лучший ответ:
Берёте и верстаете как обычно.
Любые из озвученных инструментов актуальны. Выбирайте по душе.

Лично я предпочитаю верстку делать, используя mix. Потому что его практически не нужно конфигурировать. Сразу начинаешь работать. Плюс, есть куча готовых расширений https://laravel-mix.com/extensions

Примерный конфигconst mix = require('laravel-mix');
require('laravel-mix-twig');

mix.setPublicPath('dist');
mix.browserSync({
    server      : {
      baseDir  : 'dist',
      directory: true,
    },
    files       : ['./dist'],
  });
}

mix.sass('src/scss/main.scss', 'css');

mix.js('src/js/main.js', 'js')
  .sourceMaps(true)
  .extract();

mix.alias({
  '@': path.join(__dirname, 'src'),
});

mix.twig({
  root    : './src/templates',
  entries : [
    '*.twig',
  ],
  output  : './',
});
package.json{
  "private": true,
  "scripts": {
    "dev": "mix",
    "watch": "mix watch",
    "watch-poll": "mix watch -- --watch-options-poll=1000",
    "hot": "mix watch --hot",
    "prod": "mix --production"
  },
  "devDependencies": {
    "laravel-mix": "^6.0.43",
    "laravel-mix-twig": "^2.0.1"
  }
}

Худший ответ:
Как вариант сайт можно собирать простым генератором статики вроде 11ty, а ассеты инстументами на свой вкус: gulp, parcel, webpack или чем угодно ещё.
Вопрос: Как называется шрифт, в котором есть красивые стрелочки для VS Code?

Лучший ответ:
Это называется «лигатуры»

Худший ответ:
На скрине шрифт JetBrains Mono
https://www.jetbrains.com/lp/mono/
Вопрос: Ошибка on a null object reference в андроид студио, как исправить?

Лучший ответ:
у вас в onEvent параметр value отмечен как  Nullable, т.е. подразумевается, что туда может прилететь null
Тем не менее, вы смело дергаете value.getDocumentChanges() безо всяких проверок.
Естественно, в ситуации когда в onEvent  таки прилетает null у вас всё падает.

Худший ответ:
https://stackoverflow.com/questions/52791208/fireb...

в ответ прилетает ошибка или нормальный ответ. 
Если ошибка не нул, то обрабатываем ее.
Вопрос: Как можно использовать Sass и Pug вместе с React (create-react-app)?

Лучший ответ:
Подружить можно.
Sass с React это полне нормальный стек, а вот Pug c React уже экзотика. 

Плагин для Pug + React
Про Sass + React материалов много, гуглите. Например вот.

Худший ответ:
Не надо PUG и React
Вопрос: Насколько корректно давать отрицательные значения Margin и Top?

Лучший ответ:
Получили задачу.
Опишите все возможные варианты её решения. 
Сравните целесообразность. 
Выберите лучшее. 

Если лучшим окажется отрицательный margin, то у вас у самого будет куча аргументов почему этот вариант лучший.

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

Лучший ответ:
можно, но для этого надо знать, откуда берется $request

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

плюс, конкретно этот код совершенно бессмысленный, он переносит проблему на ступеньку ниже
и теперь уже при обращении к $result будет та же самая ошибка.

Худший ответ:
можно, но для этого надо знать, откуда берется $request

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

плюс, конкретно этот код совершенно бессмысленный, он переносит проблему на ступеньку ниже
и теперь уже при обращении к $result будет та же самая ошибка.
Вопрос: Какое антивирусное ПО выбрать для WIndows Server?

Лучший ответ:
Касперский или DrWeb

Худший ответ:
Это скорее холиварный вопрос :) У нас работает каспер (+ бесплатный ClamAV, который тоже нет-нет да и пристрелит таракана). Плюс постоянное инструктирование всех, кто работает с почтой - никогда не открывать вложения, никогда не нажимать кнопок в письмах и никогда  не переходить по ссылкам.
Вопрос: Как изменить сумму в документе при изменении суммы в элементе?

Лучший ответ:
Допишите обработку события в табличной части ищите в Свойствах. Можно "При изменении"


Худший ответ:
Пересчет общей суммы можно сделать:
1) при событии изменения элемента формы в колонке таблицы
2) при событии окончания редактирования строки таблицы
3) при изменении таблицы
4) в обработчике ПередЗаписью формы
5) в обработчике ПередЗаписью объекта
Вопрос: Что писать в резюме чтобы были шансы куда-то попасть без опыта?

Лучший ответ:
1) Нужно больше откликаться (еще больше)
2) Проекты, которые есть - описать повкуснее. Добавить строчку опыта "частная практика", в которой проекты описать подробнее. 
3) Сесть за более сложный проект, довести хотябы до MVP, задеплоить, чтобы рекрутер смог сам "потыкаться". Как вариант - бот для Телеграма чтобы не писать фронтенд. Также описать в опыте работы.
4) Участвовать в хайринг ивентах для джунов от конкретных компаний. 

Это все не гарантирует трудоустройство, но шансы должно повысить

Худший ответ:
Я не рекрутер, но попробую дать совет.

Попробуй фриланс. Заказчикам на фрилансе обычно пофигу на резюме.

Поработаешь фрилансером с полгода-год - сможешь добавить соответствующую строчку об опыте работы в резюме.

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

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

Покупайте какой-нибудь ноутбук от 60-70 т.с рублей без предустановленной ос, так сэкономите немного

Худший ответ:
Макпук в любом случае будет жить дольше любого Windows-ноутбука.
Берите Макпук, если любите их ОС.
Вопрос: Все файлы формата кроме конкретного?

Лучший ответ:
Приоритеты location, но лучше в оригинальной доке почитать.
location = my.jpg {
  ...
}

location ~* ^.+\.(...|ico|jpeg|jpg|...)$ {
  ...
}

или вот так

location ~ ^my\.jpg$ {
  ...
}

location ~* ^.+\.(...|ico|jpeg|jpg|...)$ {
  ...
}

Худший ответ:
Вам не из регулярки нужно исключать, а добавить локейшен с более строгим совпадением урла - его приоритет обработки будет выше.
Вопрос: Установил non-free драйвера для адаптера wifi, сильно ли это плохо?

Лучший ответ:
Будет плохо, заметишь.

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

Лучший ответ:
Ведь такой не взломать,
Чего это?

Смысл хардварного антивируса для домашнего ПК? Дорого, непрактично, не имеет смысла, требует доступ к ОЗУ и памяти.

Аналогично с тем же TPM, который проще эмулировать, чем ставить железный.

Худший ответ:
Есть не то чтобы чисто антивирусы, а платы доверенной загрузки, проверяющие целостность операционной системы и конкретных файлов программ и системы.
Примеры:
https://www.okbsapr.ru/products/accord/accord-amdz/
https://dallaslock.ru/products/sdz-dallas-lock/
Слышал, что бывают такие платы и со встроенными антивирусами, которые проверяют файлы до запуска ОС, но найти сейчас не могу.

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

В настоящий момент геймеры достаточно активно используют аппаратные DMA-платы для читинга в играх. Такие платы либо сложно обнаружить, либо вовсе невозможно: https://blog.esea.net/esea-hardware-cheats/
Вопрос: Может ли хозяин Wi-Fi точки видеть приложения, которые я использую?

Лучший ответ:
Только если их можно как-то идентифицировать по портам или адресам к которым они обращаются. Иначе - никак.

Худший ответ:
MITM это типичное описание вашего сценария.
Например хозяин точки устанавливает свой dns и вводя mail.ya.ru 
вы попадаете на сайт evil.mail.ru
возможны и более интересные варианты.
Как защитится: 
в настройках соединения указывать свой dns
сразу после соединения устанавливать vpn и уже через него все делать
Вопрос: Random.Range(0, 2) не возвращает значение 2, что делать?

Лучший ответ:
Второй параметр Random.Range - это верхняя граница НЕ включительно.
Так что тебе нужно просто передать туда 3, вместо 2, как сказал K0TlK

Худший ответ:
Random.Range(min, max) возвращает числа из интервала (не путать с отрезком) чисел [min, max). То есть левый край включается в диапазон, а правый - нет

UPD: не обновил страницу, пока писал.  Аналогичное решение выше..