Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как модифицировать регулярное выражение, в котором все + перед гласной заменяются на пустоту, кроме исключительных ситуаций?

Лучший ответ:
r'\+(?i)([аеёиоуыэюя])(?<!о.у)'

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

s = '''х+елло++у
хелло+у
л+и+шние зна+ки н+а д+о удаля+ть
но+ зде+сь всё+ ве+рно 2 +++ 2 = 4
'''
print(re.sub(r'(?i)(([^аеёиоуыэюя\s])\++)', r'\2' ,s))
Вопрос: Зачем надо делегаты?

Лучший ответ:
Например: https://qna.habr.com/q/1201718#answer_2227658
Вот еще из доки: https://learn.microsoft.com/en-us/dotnet/api/syste... https://learn.microsoft.com/en-us/dotnet/api/syste...
Еще, например, делегаты нужны для событий, для лямбда функций и многих разных полезных вещей.

Худший ответ:
up подробно тут https://metanit.com/sharp/tutorial/3.13.php

ну например вот для этого, один из вопросов на собеседовании
.
не изменяя класса найдите площадь круга

Vladimir Korotenko, [9/20/2022 8:09 PM]
Привет Евгений. Кстати передайте вашему коллеге собеседующему меня несколько исправленный код. Основной смысл в том что в классе нет инициализатора

Vladimir Korotenko, [9/20/2022 8:09 PM]
public void PiR()
        {
            var x = new Circle();
            var t = x.Calculate((aa)=> aa * aa * Math.PI);
        }




        public sealed class Circle
        {
            private double radius=10;

            public double Calculate(Func<double, double> op)
            {
                return op(radius);
            }
        }
Вопрос: Что лучше, развернуть фронтенд и бакенд на одном домене или разных субдоменах?

Лучший ответ:
находясь на едином домене, фронт и бэк беспричинно оказываются «связаны» как минимум общей точкой входа.

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

Худший ответ:
Недавняя история с крахом инфраструктуры Wildberries показала, что все-таки держать лучше на разных серверах.
Вопрос: Схожие языки с котлин?

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

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

Худший ответ:
Всем привет, подскажите какое направление выбрать? 
Какое хочешь.
Раньше изучал андройд и котлин около 10 месяцев,
Что вообще можно освоить за 10 месяцев? Разве что ты по 12 часов без выходных хреначил, и то выйдет немного.
 изучал хорошо, 
Пруфы?
но ваканский в городе около сотни, а соискателей в пять раз больше,
Т.е. по факту конкуренция отсутствует и в худшем случае тебе нужно обойти 4 человека.
за год ожидания и рассылания всем подряд резюме по несколько раз,
Подскажите куда можно еще попробовать втиснуться
Надо было работу искать, а не спамить и втискиваться.
мотивации уже столько нет как тогда, 
Это уже твоя проблема.
уже не верю что без образования
А чем ты блин занимался 10 месяцев?
С английским проблем нету вообще, я тонны роликов на английском смотрел, читал литературу, читал статьи, гуглил, понимаю и перевожу все нормально.
Это какой уровень? B2? C1?
Вопрос: Как сделать редирект в curl запросе?

Лучший ответ:
какой нафиг редирект?
создать новый запрос и отправить данные.

Худший ответ:
Создавай статус 301 с указанием урл редиректа с хедерами
Вопрос: Как установить Ubuntu на определенный раздел диска?

Лучший ответ:
В windows удаляете раздел D, чтобы на его месте было показано свободное пространство. При установке Ubuntu автоматически на этом свободном месте будут созданы подходящие разделы.

Худший ответ:
В статье всё чётко описано!
Рекомендую выбрать вариант разметки дисков Вручную (в статье - ручной режим разметки).

Уточню, если у вас отдельный диск под Убунту планируется, то сжимать ничего естестно на диске с W не надо!

И, чтобы я изменил там, это из, где:
- если Вы хотите, чтобы диск D был доступен из Linux Ubuntu (и все файлы на нем), то Вы можете сразу примонтировать данный раздел.

У автора предлагается Точка монтирования – /windows
Я бы изменил на:
Точка монтирования – /media/windows (хотя писать полное имя винды тут не обязательно. Можно хоть одной буковой назвать)
т.к. выглядеть будет на Раб. столе всё равно так:

И, если есть ещё отдельный раздел или диск под помойку, то и его в точку монтирования:
Точка монтирования – /media/files (или хоть одной буквой, не имеет значения)

А остальное всё гут!!!
Вопрос: Как вывод в консоль дожидается выполнения async функции?

Лучший ответ:
async func() всегда возвращает промис.
И в консоль выводится именно этот промис со статусом pending.
После завершения fetch и json статус промиса изменится на fulfilled и ему добавится значение.
Вот вывод консоли сразу после console.log:
Promise { <state>: "pending" }
Если через некоторое время раскрыть этот объект, то увидим, что его статус уже сменился (вы ведь помните, что в консоль выводится живой объект по ссылке):
Promise { <state>: "pending" }
​  <state>: "fulfilled"
​  <value>: Array(10) [ {…}, {…}, {…}, … ]
​  <prototype>: Promise.prototype { … }

Худший ответ:
Асинхроная функция всегда возвращает промис, вы своим console.log выводите отнюдь не результат, а тупо промис от функции. Далее, в консоли вполне можно запускать асинхронный код, попробуйте прямо сейчас вбить в консоли:
response = await (await fetch('https://jsonplaceholder.typicode.com/users')).json();
console.log(response);
Или же применительно к вашему коду делайте так:
async function func() {
  const response = await fetch('https://jsonplaceholder.typicode.com/users');
  return await response.json();
}
console.log(await func());
Вопрос: Зачем писать max-width: 800px; после width:100%?

Лучший ответ:
Очевидно, для того чтобы блок растягивался на всю ширину страницы, но не был более 800px шириной.

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

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

возможно ли на андройд
Невозможно. Можно попытаться на андроиде, и то не факт.

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

Идея в том, чтобы студенты и преподаватели входили через телефон (с Интернетом) на базе андроид в приложение 

Какой-то серьезный или объемный ввод-вывод текста через телефон невозможен, ввод формул так вообще квест. Подумайте еще раз, возможно вам придется колхозить распознавание речи или рукописного ввода.

У преподавателя должен быть доступ к загрузке\созданию теста\опроса

Вы хотите, чтобы препод делал этот контент на телефоне? Садитесь, два. 

+ стеснительные люди-интроверты-компьютерные черви могли активно участвовать в процессе обучения, а не молчать-бездействовать на той же паре

Идите и учите психологию/педагогику. От того, что вы заставите интроверта быть 90 минут экстравертом, вы в итоге получите отвали-от-меня-верта (с тревогой и депрессией), а не обученного студента. Интроверт в этом коллективном чатике будет точно также молчать, как и на паре.

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

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

Оценка сама по себе не должна давать никому никаких преимуществ, а также не должна использоваться в качестве меры административного воздействия на студентов (как в качестве положительного, так и в качестве отрицательного стимула)

Из хорошего
Действительно годным элементом геймийикации могли бы стать ачивки. Вроде сданного на круглую сотню из ста баллов теста или N отсутствий прогулов подряд.

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

Худший ответ:
Вполне укладывается в какой-нибудь progressive web applications на базе сайта, который можно замутить на чем угодно в короткие сроки и задешево/самостоятельно. Все вышеописанное вполне реализуемо на любом серверном языке + немного жс на форнте.  

PS: по мне идея тухлая.
Вопрос: Можно ли обновить пакеты разархивировав образ в папку?

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

Худший ответ:
Вот по ссылке один господин редактирует дистрибутивы Ubuntu на образах. 
https://www.unixmen.com/edit-iso-files-using-mkiso...

Но он использует только mkisofs и mount -t iso9660 -o loop ...

Я думаю что ничего тут сделать нельзя. Надо вот так вот и работать. Как с архивом zip. Короче последовательный он и readonly. А редактирование на лету - это опция других файловых систем которые read-write. 
Я так думаю.
Вопрос: Как правильно организовать Remote Desktop Services?

Лучший ответ:
При указанном количестве серверов RDSH (20 штук):
1. RD Connection Broker в режиме High Availability (минимум 2 сервера). Потянет за собой использование MS SQL (минимум 2 сервера в Availability Group)
2. RD Gateway (если требуется доступ к RDS снаружи и/или предполагается использовать HTML5 RDWeb), минимум 2 сервера для отказоустойчивости плюс синхронизация настроек (политики CAP и RAP, настройки локального NPS) - можно совместить на серверах RDCB
3. RD Licensing - не принципиально, компонент можно разместить на любом сервере, хоть на КД
4. RD Web - из коробки идет старый клиент (classic RDWeb), который использует ActiveX-компоненты и нормально работает только в IE. Если хотите Remote Desktop в любом браузере - ставьте HTML5 RDWeb (modern RDWeb), для установки требуется клиссический клиент и RD Gateway - можно совместить на серверах RDCB. Здесь есть один минус для modern RDWeb - требуется лицензирование на пользователя (Per User RDS CAL)
5. RD Session Hosts - используя RDCB, создаете нужные коллекции с необходимым доступом и прочими настройками и добавляете в них серверы RDSH
6. Балансировка RDCB, RDWeb, RD Gateway

Роли RDCB, RDWeb, RD Gateway можно совместить на одном сервере, чтобы уменьшить общее количество серверов.

Худший ответ:
ИМХО. Если нужна отказоустойчивость, я бы сделал так: 2 сервера под gateway, 2 под брокер, остальные в ферму. + 1 под SQL сервер это для брокера, для отказоустойчивости можно и 2 в Always On availability group. Но это если хочется замарочится.
Вопрос: Почему появляется ошибка: AttributeError: 'VkBotMessageEvent' object has no attribute 'message_id'?

Лучший ответ:
message_ids=event.object.conversation_message_id

Для группы удаление сообщений происходит через conversation_message_id

Запринтите event чтобы увидеть что в нем приходит.

Худший ответ:
Ошибка в этом message_ids=event.message_id, у вашего event(которым является VkBotMessageEvent) нет атрибута message_id
Вопрос: Ошибка при создании резервного копирования windows server 2012r2?

Лучший ответ:
Старый потертый MSDN-блогпост сообщает, что проблема в количестве кластеров NTFS на томе-источнике, оно превышает 2^32, и этот косяк микрософт не выпилил в 2012R2. Обходной вариант - создать новый том (это ВМ? Если нет, придется делать том на SAN или подобном хранилище), отформатировать его в NTFS с бОльшим размером кластера (64Кб потолок), перенести на него данные со старого тома и потом бэкапать новый том.

Худший ответ:
Спасибо! Сервер физический,  состоит в домене, в котором мы не имеем административных прав. Месяц назад всё работало нормально, потом у нас слетел MS SQL, переносили бд на резервный ПК. 2 недели назад вернули на сервер всё и при попытке настроить бекап средствами винды стало выдавать такую ошибку. Придётся, наверное прибегнуть к сторонним программам. Я на одном сервере ставил Urbackup, но мне не понравилось, что при копировании архива по сети, хотя я и выставил ограничение скорости 1МБ/с, он почему-то ограничение не соблюдал и сажал сеть. Никто не пользовался этим инструментом?
Вопрос: Как упростить такую запись?

Лучший ответ:
const map = {
  n: "account_name",
  d: "start_deposit",
  c: "client_name",
  b: "ib_account_number",
  l: "leverage",
  e: "description",
  r: "rebalance_model",
  m: "model_settings",
  s: "selected_systems",
  w: "target_weights",
}

let key = "ndcbler";

const hasSettings = this.newAccount.model_settings !== "{}";
const hasWeights = this.newAccount.target_weights !== "{}";

if (hasSettings && hasWeights) {
  key += "swm";
} else if (hasSettings) {
  key += "m";
} else if (hasWeights) {
  key += "sw";
// } else { // что делаем, если ни того ни того нет?
//   key = "";
}

this.objForPost = key.split("")
  .map((key) => `-${key} ${this.newAccount[map[key]]}`)
  .join(" ");

Худший ответ:
const с = `-n ${this.newAccount.account_name}`
       + ` -d ${this.newAccount.start_deposit}`
       + ` -c ${this.newAccount.client_name}`
       + ` -b ${this.newAccount.ib_account_number}`
       + ` -l ${this.newAccount.leverage}`
       + ` -e ${this.newAccount.description}`
       + ` -r ${this.newAccount.rebalance_model}`;

if (this.newAccount.model_settings !== "{}") {
  this.objForPost = с
      + ` -m "${this.newAccount.model_settings}"`;
} else if (this.newAccount.target_weights !== "{}") {
  this.objForPost = c
      + ` -s ${this.newAccount.selected_systems}`
      + ` -w "${this.newAccount.target_weights}"`;
} else if (this.newAccount.model_settings !== "{}"
        && this.newAccount.target_weights !== "{}"
) {
  this.objForPost = с
      + ` -s ${this.newAccount.selected_systems}`
      + ` -w "${this.newAccount.target_weights}"`
      + ` -m "${this.newAccount.model_settings}"`;
}

let {
  account_name,
  start_deposit,
  client_name,
  ib_account_number,
  leverage,
  description,
  rebalance_model,
  model_settings,
  selected_systems,
  target_weights,
} = this.newAccount;

const с = `-n ${account_name}`
       + ` -d ${start_deposit}`
       + ` -c ${client_name}`
       + ` -b ${ib_account_number}`
       + ` -l ${leverage}`
       + ` -e ${description}`
       + ` -r ${rebalance_model}`;

if (model_settings !== "{}") {
  this.objForPost = с + ` -m "${model_settings}"`;
} else if (target_weights !== "{}") {
  this.objForPost = c + ` -s ${selected_systems} -w "${target_weights}"`;
} else if (model_settings !== "{}" && target_weights !== "{}") {
  this.objForPost = с + ` -s ${selected_systems} -w "${target_weights}" -m "${model_settings}"`;
}
Вопрос: На чем создать интернет-магазин в 2023?

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

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

Лучший ответ:
Точно так же, как и всё остальное - добавляете описание в props, используете v-bind для привязки метода к экземпляру компонента.

Но вообще, так в vue делать не принято.
Принято иначе:
1. В дочернем компоненте генерируете событие: <button @click="$emit('click')".
2. В родительском на него подписываетесь: <component @click="onClick".

Худший ответ:
Крч, меня не особо поняли(написал я вроде все ясно), но решил сам.
Проблема в том, что при v-bind:somecode  в вашем представлении(если вы в фреймворке работает) или обычном index.php где у вас разметка при написании названия функции со скобками, вот такv-bind:ale=al() ваш код выполнится сразу по заходу на страницу и выполнится несколько раз, если он выполняется в v-for цикле.

Исправить можно просто убрав () скобки в привязке метода и тогда все будет хорошо.
Если же вам нужно будет передать параметры данной функции, то передать их нужно будет уже в коде компонента в js файле(там кавычки писать можно и передавать параметры тоже).

Вот мой конечный код:

Код из файла где будет ваша разметка
<div id = 'app'>
        <app-com v-for = 'user in users' :user = 'user' :ale="al"></app-com>
</div>

И сам JS:
Vue.component('app-com', {
    props: ['user', 'ale'],
    template: '<li>Имя: {{user.name}}, возраст: {{user.age}} ' +
        '<button v-on:click="ale(user.name)">Редактировать</button></li>',
});

let app = new Vue({
    el: '#app',
    data: {
        users: [
            {name: 'Артем', age: 20},
            {name: 'Андрей', age: 22},
        ],
        postFontSize: 1,
    },
    methods: {
        al: function(value) {alert(value)},
    },
});
Вопрос: Почему так тяжело решать задачи?

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

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

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

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

Лучший ответ:
Господи, ну 100500 раз уже жевалось. 
самый нормальный способ - сервис для автоматического старта при буте. 
далее - screen, tmux, nohup, run in background и всё такое.

Худший ответ:
На сервер заливать надо
Вопрос: Есть ли аналоги корутин Unity в языке c# и как их использовать?

Лучший ответ:
На сколько я знаю, корутины в Unity реализованы через IEnumerator и объекты WaitForSeconds.

IEnumerator и IEnumerable - это стандартные интерфейсы, которые используются для реализации перечислений/коллекций и итераторов.

А вот ожидание в C# ты можешь получить через метод Thread.Sleep (в синхронных методах) или await Task.Delay (в асинхронных методах).

Худший ответ:
Корутины в Unity придуманы были, из-за отсутствия вменяемой асинхронности в шарпе древние времена, причем сами корутины завязаны на жизненный цикл приложения Unity. Нужна асинхронность, есть async/await,  параллельность - TPL (Task Parallel Library). 

https://learn.microsoft.com/en-us/dotnet/standard/...
Вопрос: Как запустить залитый на хостинг Python скрипт при переходе по ссылке?

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

Худший ответ:
Скрипт должен запускаться на каком компе? На хостинге? Т.е. тебе, грубо говоря, нужен сайт на питоне? Смотри в сторону Flask, он простой и понятный. Ну и хостинг ищи. На худой конец можно арендовать виртуалку (VPS) и поставить нужное ПО туда.

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

Лучший ответ:
Алгоритмы и структуры данных тесно связаны с зубо-дробительными бенчмарками. Как-то отсортировать терабайтный текстовый файл или найти два одинаковых числа в файле из чисел тоже большого размера.
Иногда такие задачи задают на собеседованиях Google и Microsoft. 

И если вы будете изучать эти алгоритмы на js, то вы не сможете продемонстрировать эффективность этих
алгоритмов. Python машина - просто медленная. У нее конечно есть надстройки например над векторной
алгеброй которые позволяют быстро считать рутину вроде циклов над векторами. Но является ли это
программированием Python - чорт его знает. Как по мне - нет. Тут - другая экспертиза нужна.

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

В этом смысла кодер С++ имеет много преимуществ т.к. он видит и понимает как распределяется память
в узле бинарного дерева например (два указателя по 64 бита + какой-то размер для ключа который тоже
можно посчитать). Какой аллокатор брать? Встроенный в язык new или нужно делать собственный. 
Такой расчет важен для оценки например - применима ли структура данных вообще?
Какой толк от дерева если оно не влезет в оперативную память? А падение памяти в swap - тут-же замедляет
алгоритм в разы.

JS и Python не предоставляют тонкого контроля над памятью. У них своя модель построенная для комфорта
самого процесса разработки а вовсе не для струткуры данных.

Худший ответ:
Можно. И питон и JS в этом плане норм. Нюанс разве что в том что в том же питоне будет много синтаксического сахара - но вы его можете игнорировать.

C# в целом можно выучить быстренько для ваших потребностей. А вот плюсы оставьте в покое.
Вопрос: Как лучше всего отучиться на программиста чтобы вкатиться в it?

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

Худший ответ:
Закончить двухнедельные курсы it менеджеров.
Вопрос: QEMU/KVM. sentinel HASP и RDP?

Лучший ответ:
Какой именно ключ 1С, однопользовательский (фиолетовый) или многопользовательский (красный)? 


Если фиолетовый однопользовательский, как на картинке выше, то он по RDP работать и не должен. 
Если красный многопользовательский, то ещё нужно установить HASP LM.



Худший ответ:
Если разрабы поставили галку, что по RDP работать запрещено, то легально - никак. 

Костыльный вариант - подключаться прямо на консоль по VNC или RDP Shadow. Первое точно заработает, со вторым может не повезти
Вопрос: Как можно использовать динамический роут в локализации Laravel?

Лучший ответ:
return array (
  'Accept Cookies' => 'Accept Cookies',
  'Cookie info' => 'Please be informed that we use cookies to enhance your user experience.
      For a complete overview of all cookies used, please see our
      <a href="'.route('frontend.pages.cookies').'" class="hero_side__link">Cookies Policy</a>
      and <a href="'.route('frontend.pages.privacy').'" class="hero_side__link">Privacy Policy</a>.',
);

Но мне кажется лучше использовать подстановки

return array (
  'Cookie info' => 'Please be informed that we use cookies to enhance your user experience.
      For a complete overview of all cookies used, please see our
      <a href=":policy_url" class="hero_side__link">Cookies Policy</a>
      and <a href=":privacy_url" class="hero_side__link">Privacy Policy</a>.',
);

{{! __('Cookie info', [
  'policy_url' => route('frontend.pages.cookies'),
  'privacy_url' => route('frontend.pages.privacy'),
]) !}}

Худший ответ:
Экранировать \'