Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему программа «шифрования» не работает с русским алфавитом?

Лучший ответ:
Проблема в этой строчке: stringToEncrypt = stringToEncrypt.lower

Если ты всё правильно скопировал, то в ней ты не вызываешь метод lower(), а присваиваешь переменной stringToEncrypt ссылку на него. Т.е. правильно будет: stringToEncrypt = stringToEncrypt.lower()

Чтобы было проще, можно строку stringToEncrypt = stringToEncrypt.lower вообще удалить, и сразу написать:
stringToEncrypt = input("введи сообщение: ").lower()

А теперь подумай, зачем в переменной a словарь у тебя дважды повторяется?

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

И удвоение алфавита здесь не нужно. Цезарь ведь поворачивает алфавит циклически. Берите остаток от деления на 33. А то что? Был-бы у вас алфавит в терабайт - то вы бы ставили двухтерабайтный диск чтобы решить такую задачу?
Вопрос: Разница между if else и try catch?

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

То есть исключение должно выбрасываться при поступлении на вход программы некорректных данных. А какие именно данные считать некорректными - это определяет разработчик (или заказчик) программы.

Худший ответ:
Это древний холивар.

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

Лучший ответ:
Не стоит. Стоит верстать очень близко к макету, но задрачиваться по поводу 1px вправо-влево точно не стоит.  Вообще, pixel perfect как концепция старше адаптивной верстки. И в случае адаптива теряет всякий смысл.

Худший ответ:
1. Фигма и браузер по-разному рендерят шрифты, соответственно текст может расходится в макете и браузере. 
2. Если делаешь блок на флексах и задаешь центрирование или кнопку, то в некоторых местах у дизайнера может быть визуально контент посередине, а по факту padding-left: 16px; padding-right: 17px и соответственно следовать пиксель в пиксель - делать некачественную верстку, которая займет больше времени.

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

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

2. нет.

3. У вас файловый сервер виндовый, так самое простое настроить на нём штатную Volume Shadow Copy, например с интервалом один час или два часа. Резервируете какой-то объём на диске и в пределах этого объёма будут создаваться теневые копии. Это не заменяет бэкап, т.к. хранится на том же сервере, но зато гораздо оперативнее бэкапа, не тормозит работу в течение дня.

5. https://ru.wikipedia.org/wiki/SharePoint Microsoft SharePoint Foundation — бесплатное приложение к Windows Server; предоставляет базовую инфраструктуру для совместной работы: редактирование, хранение документов, контроль версий и т. д. Также он включает в себя такую функциональность, как «маршруты» движения документов (платформа для документооборота), списки заданий, напоминания, онлайн-дискуссии. 

Худший ответ:
Теневые копии для этого существуют и автосохранение в экселе.

Так ли работает SMB2? Файлы копируются на локальный ЖД и изменения производятся именно там?SMB передает информацию может весь файл, может часть. Как скажете, так и будет.
Эксель копирует файл и работает с ним локально.

Решится ли проблема при переходе на SMB3?Нет конечно.
Что можно использовать как решение "малой крови"? Может NextCloud развернуть, или подобие?теневые копии.
Есть ли системы вроде NextCloud, поддерживающие редактирование именно через Word\Excel, а не веб?Ну тот же NextCloud разве не поддерживает редактирование через ворд?
Если SharePoint, то он всегда коммерческий и дорогой?Ну да.
Вопрос: Как убрать лаги при просмотре 4К 60fps видео снятого на Go — pro 9?

Лучший ответ:
4k и 8k при 60fps это экстремальные параметры видео, для этого требуется аппаратная поддержка и специфический софт. Очень мало плееров способны это проиграть на универсальном железе (pc gpu).

Windows media player это худший плеер на свете, как по функционалу и юзабилити так и по производительности. Я думал на него забили все более чем полностью.

только один KM-player вытягивает нормальнону тогда какие проблемы?
при установленном k-light codec pack должен установиться еще и media player classic, неужели в нем тоже лагает? всем всегда на windows рекомендую только его это лучший плеер.

Еще (на linux) наилучшие результаты я получал от ffmpeg (точнее его утилиты ffplay) смотрел 8к видео и больше с разными fps на достаточно слабой машине.

p.s. самый функциональный и эффективный плеер поставляется с браузером, только в нем я запускал проигрывание 8к (я уже не помню сколько там было пикселов точно, огромное) в режиме повтора, и только html video делает это без паузы

Худший ответ:
Drno Может ли это быть связано с картой памяти? на моей скорость чтения | записи такая: www.pny.eu/ru/consumer/explore-all-products/micros....
А в видео где битрейт выше 100 мегабайт начинаются тормоза.
Вопрос: Почему GitHub Desktop игнорирует gitignote?

Лучший ответ:
*.log
Такая запись исключит файлы из корневого каталога

**/*.log
Такая запись исключит файлы из всех каталогов, рекурсивно

Подробнее https://git-scm.com/docs/gitignore#_pattern_format

Худший ответ:
Попробовал тоже самое в Sourcetree, там игнорирование работает нормально с тем же файлом .gitignore. Походу с GitHub Desktop что-то не так у меня. Жалко, она больше нравится.
Вопрос: Как у вас на Хабре отменить приглашение?

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

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

В будущем тщательнее выбирайте, кого хотите пригласить.

Худший ответ:
Как всегда - писать в саппорт, обьяснить ситуацию.
Вопрос: Где взять анти-паджинатор?

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

Не кислая "куча" получится...

Худший ответ:
Называется Метапоиск.
Вопрос: Как можно практически закрепить знания JAVA SE?

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

В твоей ситуации я был. Это похоже на усталость. Ничего не надо делать. Надо просто отдохнуть. 
Для систематизации-же заведи себе в гитхабе проектик типа FAQ. И складывай туда code-samples
по каждому вопросу.

Худший ответ:
Один из вариантов:
подготовиться и сдать OCA и OCP.  После этих сертификаций останется достаточно много знаний по SE
Вопрос: Как сделать пагинацию без скрипта?

Лучший ответ:
Пагинация — это порядковая нумерация страниц, которую используют на сайте для последовательного отображения контента.
У вас же это табы (они же вкладки). И в макете у вас это написано: "tabs". 

Делаются они не сложно. Можно реализовать как на чистом css, так и с использованием js.

Худший ответ:
По всей видимости это табы. Без JS никак, если вам нужно обрабатывать клик. Можно через css, если, например вас устроит событие hover
Вопрос: Стоит ли сейчас брать себе ноутбук?

Лучший ответ:
или подождать пока цена понизится и понизится ли она вообще

Вы у кого это вообще спрашиваете? Ну ладно. Вот вам мой ответ:

-  Да понизится, берите сейчас! Ой, подождите. Нет, не понизится, не берите. А, нет. Берите, берите. Дальше только хуже. Хотя. Скоро все наладится и можно будет купить по более низкой цене. Там Китай завезет. А нет. Не завезет. Все закрыли и доллар искусственно держится. Он самом деле 200 руб. за доллар. Ой. Опять ошибка. Это не так. Он вообще реально 80 руб. Просто магазины спекулируют. Так что берите. А лучше возьмите ноут на винде. Или Mac Book Pro на интеле. M1 не торт. Точнее, m1 air. А вот M1 Max сила. А нет, лучше M1 Studio. Да и вообще, программирование отстой - идите лучше что то реальное руками делайте.

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

Удачи!

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

Один из прошлых кризисов.
#DoYourOwnResearch
Вопрос: Как организовать архитектуру кода для взаимодействия с БД в Golang?

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

Худший ответ:
 паттерн Repository/Unit Of Work.Честно говоря это не очень популярно из-за того, что изолировать при помощи интерфейса не всегда нужно, часто  структуры будет достаточно, в которой есть подключение к бд и поле для данных. Есть такой пример. Если у вас планируется несколько источников данных, то возможно вам будет удобнее делать на интерфейсах, но by design интерфейс обычно содержит 1-2 метода, а городить на каждую структуру интерфейс с 5-7 методами немного странное решение для го(с моей точки зрения), чтобы лучше понять го можно прочитать книгу кернигана и книгу 100 go mistakes(примерно так называется), чтобы получше понять суть языка. просто нет достойных ORMок для GolangБолее приемлимым вариантов считается использование sql билдеров или генерация запросов, честно говоря к этому спорное отношение и где-то вполне себе используют орм.
Вопрос: Для чего обеспечивается гарантия доставки на двух уровнях по OSI?

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

P. S.
Принято проверять на ошибки, порядок и доставку на всех уровнях вплоть до прикладного для повышения надежности. Также это позволяет реализовать автоматическую коррекцию ошибок.

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

Лучший ответ:
VPN  + (SNAT+DNAT) ((проброс портов, dmz (иногда и так называют в домашних роутерах, ip passthrough ))
Слово l2 тут вообще лишние.

Худший ответ:
Можно ли их как-то перенаправить к себе домой малой кровью?Адреса - нет.
Трафик - без проблем.

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

Слышал аббревиатуру "L2Я тоже слышал. А еще я знаю крутое слово - синхрофазотрон.
Только непонятно какое это имеет отношение к вопросу. Но это мелочи.

сразу скажу, не очень хочется разговаривать с провайдерами, домашним и ДЦ и самим ДЦ по этому поводу)Так вроде никто не заставляет. Не разговаривайте если не хотите.
Вопрос: Задание функции с помощью массива точек, возможные решения, литература?

Лучший ответ:
гуглите интерполяционный многочлен

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

Лучший ответ:
Так?
xpath('//li[@class="section-list-item"]/a/@href | //a[@class="article-list-link"]/@href').getall()

Худший ответ:
Не спец в питонах. Но если getAll возвращает списки то их можно соединить через +.

list1 = xpath('//li[@class="section-list-item"]/a/@href').getall()
list2 = xpath('//a[@class="article-list-link"])/a/@href'). getall()
result = list1 + list2
Вопрос: Нужно ли включать CSRF для SPA сайта?

Лучший ответ:
Нет
UPD: пробегись по коментам к этому вопросу Laravel + Nuxt: Как победить ошибку 419 — CSRF token mismatch?

Худший ответ:
Думаю что да посмотрю ответы более опытных так-как я кодер. На laracaste Laravel Authentication (Breeze, Jetstream, Fortify) используют для spa . Там отдельно запущен проект на vue и laravel на разных портах О хранении JWT токенов в браузерах
Вопрос: При передаче результата в bash не могу создать переменную. Почему?

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


Худший ответ:
Пробелы мешают, их надо экранировать. В зависимости от того как вы передаете их в баш способы могут отличаться. Вот неплохие примеры 
https://unix.stackexchange.com/questions/81349/how...
Вопрос: Почему происходит ошибка типизации computed сomposition api во vue 3?

Лучший ответ:
А что Вам не понятно в описании текста ошибки?Argument of type 'ComputedRef' is not assignable to parameter of type 'string'.
Давайте я засуну в переводчик за Вас:Аргумент типа 'ComputedRef' не может быть присвоен параметру типа 'string'.

const pErrorMinMessage = computed<string>(() => {
  return 'world'
})
const fun1 = function (val: string) {
  console.log('hello' + val)
}

fun1(pErrorMinMessage.value)

Худший ответ:
Зачем тип для computed указывать? Оно все типизировано. Тайпскрипт сможет выявить тип переменной сам.

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

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

Худший ответ:
все что лежит в интернете уже сжато с потерей качества. 
даже BD диски жмутся с потерей. 

Сырое видео это боль даже сейчас. 
Дальше вы должны обеспечить баланс между потоком видео, нагрузкой и качеством. 
Некоторые кодеки обеспечивают превосходное качество и размер но не работают на большинстве машин.  
И в общем случае идея пережать уже зажатый фильм ущербна. 

Поэтому выбирайте рипы для вашего устройства. 
ТО есть будете смотреть на телефоне берите рипы для Iphone или на крайняк FULLHD
Сэкономите в  размере и качество, да и размер будут лучше.
Вопрос: Видит ли владелец (и тот кто вклинится в трафик) прокси сервера тело запроса?

Лучший ответ:
1. Если на прокси настроен SSL bumping и на клиенте установлен соответствующий корневой сертификат, то может.
2. Аналогично, при поднятии прозрачного прокси и настройке соответствующей маршрутизации на клиенте или встраивании в цепочку имеющегося маршрута.

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

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

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

Лучший ответ:
Как и любое устройство - прикручивается к корпусу.

Худший ответ:
Замоделить/найти готовое/заказать пластиковый крепеж под твои размеры карты и материнки и распечатать на 3d принтере

Универсальный (но да, не надежный) крепеж может выглядеть как свободно гуляющая прищепка, просто прислоненная лопатками к материнке типа так
.
        C
        A
      # R #
      # D #
  #####   ######
M.O.T.H.E.R.B.O.A.R.D
Вопрос: Может ли третий питон работать на разных компьютерах?

Лучший ответ:
1. Питон третий может работать на разных компьютерах
2. Какую ошибку синтаксиса выдаёт, в какой строке, какой код?
3. Установлены ли в виртуальное окружение зависимости на обоих компьютерах?

Худший ответ:
запускайте cmd
там вводите 
set path=c:\python38
cd c:\project\youproject
python start.py
Вопрос: Какие различия между Mac и Windows в разработке?

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

Худший ответ:
Лицензия на mac - бесплатна ( и единственна), в то время, как корпоративная винда - стоит немалых денег.  
Глюков меньше, меньше зоопарка железок внутри.
Вопрос: Попробуем в Информационную безопасность?

Лучший ответ:
из базового и простого

1) Вход внутрь сети (из интернета) только через VPN, без исключений для начальников и проч.
2) доступ внутрь сети через wifi только для определенных машин
3) доступ в интернет 'для всех' - в отдельной гостевой сети из который в боевую попасть нельзя
и если немного упарываться
4) для каждой машины делать отдельный список доступа с авторизацией через (помоему 802.1X )

Худший ответ:
выделить отдельный гостевой SSID приземляющий пользователей в отдельный изолированный влан с доступом только в интернет
вайфай с доступом в локалку реализовать через EAP/TLS для чего на убунте настроить freeradius
в локалке выделить сервера в отдельный влан
про unifi router ничего не знаю, беглый гуглеж обнаружил некий USG - unifi security gateway 
если это оно то судя по его названию все политики безпасности дальше пилить на нем
отдельные политики реализовывать на сервисах т.е. 1с фтп и тп

кстати зачем фтп? оно было неудобно еще в 90-е
на ту же убунту водрузи nextcloud

з.ы. фтп, 1с и 90 юзеров ... в таком месте отдельный инфбезопасник застрелится от скуки
Вопрос: Как отыскать индекс значения в массиве?

Лучший ответ:
Уж больно мне не нравится вариант от BasiC2k, по тому решил написать свой:
1. Чуть более компактный в плане памяти и количества кода, если нужно найти индекс один раз. + С проверкой, на отсутствие слова.
var array = new[] { "Картоновый человек", "Морковка белая", "секретный специалист " };

Console.WriteLine(FindIndexOfWord(array, "картоновый")); // 0
Console.WriteLine(FindIndexOfWord(array, "Бомбастер")); // -1
Console.WriteLine(FindIndexOfWord(array, "Специалист")); // 2

// В 1 проход. Если не нравится linq - можно одной кнопкой переписать на циклы и получится почти zero-allocation код.
static int FindIndexOfWord(string[] array, string word) => 
    array
      .Select((str, i) => (str.Split(' '), i))
      .Where(x => x.Item1.Any(w => w.Equals(word, StringComparison.OrdinalIgnoreCase)))
      .Select(x => x.Item2)
      .Cast<int?>()
      .FirstOrDefault() ?? -1;
2. Более быстрый, если нужно искать данные много раз и в больших массивах:
var array = new[] { "Картоновый человек", "Морковка белая", "секретный специалист " };

var index = new WordIndex(array);
Console.WriteLine(index.Find("картоновый")); //0
Console.WriteLine(index.Find("чикибамбони")); //-1;

// Поиск элемента в словаре по ключу выполняется за константное время, так что если нужно делать это часто и на больших массивах, то выгоднее 1 раз всё проиндексировать.
class WordIndex {
   private readonly Dictionary<string, int> _cache;
   
   public WordIndex(IEnumerable<string> seq) {
     _cache = new Dictionary<string, int>();
     var i = 0;
     foreach(var str in seq) {
       foreach(var word in str.Split(' ')) {
         var key = word.ToUpperInvariant();
         if(!_cache.ContainsKey(key)) {
           _cache.Add(key, i);
         }
       }
       i++;
     }
   }
   
   public int Find(string word) =>
     _cache.TryGetValue(word.ToUpperInvariant(), out var value)
       ? value
       : -1;
}

Худший ответ:
Для точного совпадения:

int numm = array.ToList().IndexOf("Морковка белая");

Для совпадения по части строки:

string[] array = { "Картоновый человек", "Морковка белая", "секретный специалист " };
string item = array.ToList().Where(x => x.Contains("Морковка")).FirstOrDefault();
int numm = array.ToList().IndexOf(item);

обратите внимание, что в этом примере берётся индекс первого подходящего элемента. И нет обработки исключения, если элемент не найден.
Вопрос: Как проверять аргументы функции/метода?

Лучший ответ:
Если аргумент None, означает ли это, что должно использоваться некоторое значение по умолчанию? Если да, то можно вынести if по этому аргументу отдельно, а дальше вести себя так, словно аргумент задан.

Если же нет, то стоит спросить себя - а не слишком ли много эта функция на себя берёт? Не стоит ли её разделить на несколько?

Худший ответ:
Переписывайте функцию что бы она и None нормально отрабатывала. Так же, как по мне, если вы у вас функция может не принимать аргументы вовсе - то логичней это упаковать все в: 
def foo(*args, **kwargs):
    ...
И возможно как раз с такой логикой вам легче будет все это устроить
А вообще все сильно зависит от того что вы делаете внутри функции, я вам сказал лишь свои рекомендации не опираясь на требования, а это может внести коррективы
Вопрос: Видеопамять. Он прав?

Лучший ответ:
Igor Korobeinikov, он прав, только немного перепутал терминологию.
"Выделенная память ГП" - та память, которая находится непосредственно на самой плате видеокарты.
"Общая память ГП" - часть памяти ОЗУ твоего ПК, которую ГП может тоже использовать.
"Оперативная память ГП" - это сумма выделенной и общей памяти, т.е. весь суммарный объем памяти, который доступен для ГП.

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

Лучший ответ:
Я в таких случаях создаю фабричный метод.
@dataclass
class Person:
    first_name: str
    last_name: str
    bdate: date

    @classmethod
    def make(cls, first_name: str, last_name: str, bdate: str) -> 'Person':
        _bdate = datetime.strptime(bdate, '%Y%m%d').date()
        return cls(first_name=first_name, last_name=last_name, bdate=_bdate)

data = {
    'first_name': 'Adam', 
    'last_name': 'Smith', 
    'bdate': '20220617'
}
person = Person.make(**data)
Просто, коротко, позволяет реализовать любую логику приведения типов и вычисления значений по умолчанию, использует базовые механизмы Питона, при необходимости можно проигнорировать и использовать обычный конструктор (который мы не ломаем).

Но вообще это неправильное распределение обязанностей. Обязанность датакласса - хранить данные, а не менять их представление. За смену представления пусть отвечает тот код, который получает значение строки.

Худший ответ:
Возможно, вам стоит использовать Pydantic вместо dataclasses для этого: он позволяет создавать пользовательские валидаторы как отдельного поля, так и всех полей. Валидаторы можно использовать для преобразования типов данных. Что важно, он позволяет создавать пре-валидаторы, то есть те, которые будут применяться к полю перед стандартными валидаторами Pydantic. Например, вашу задачу можно решить так:
from datetime import date, datetime

from pydantic import BaseModel, validator


class Person(BaseModel):
    first_name: str
    last_name: str
    bdate: date

    @validator('bdate', pre=True)
    def bdate_from_string(cls, v):
        if isinstance(v, str):
            return datetime.strptime(v, '%Y%m%d').date()
        return v


data = {
    'first_name': 'Adam',
    'last_name': 'Smith',
    'bdate': '20220617'
}

person = Person(**data)
print(person)

Если вы не хотите использовать Pydantic, то можно посмотреть на продвинутую альтернативу dataclasses — attrs, может быть, там есть средства для решения вашей задачи.