Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как взаимодействовать с Yandex Object Storage через JS?

Лучший ответ:
Примерно такой код для Node.js. Доки здесь

const AWS = require('aws-sdk');
require('dotenv').config(); // для получения переменных из окружения Node.js

class YandexCloud {

  constructor () {
    this.aws = new AWS.S3({
      endpoint: 'https://storage.yandexcloud.net', 
      accessKeyId: process.env.YA_STORAGE_ACCESS_KEY, // берем ключ из переменной окружения
      secretAccessKey: process.env.YA_STORAGE_SECRET_KEY, // берем секрет из переменной окружения
      region: 'ru-central1',
      httpOptions: {
        timeout: 10000,
        connectTimeout: 10000
      },
    });
  }

  upload = async ({file,path,fileName}) =>  {
    try {
      const params = {
        Bucket: 'название', // название созданного bucket
        Key: `${path}/${fileName}`, // путь и название файла в облаке (path без слэша впереди)
        Body: file, // сам файл
        ContentType: 'text/plain', // тип файла
      }
      const result = await new Promise(function(resolve, reject) {
        this.aws.upload(params, function(err, data) {
          if (err) return reject(err);
          return resolve(data);
        });
      });
      return result;
    } catch (e) {
      console.error(e);
    }
  }
}

const YaCloud = new YandexCloud();
YaCloud.upload({
  file: '', // файл
  path: 'путь/в/облаке',
  fileName: 'файл.txt',
})

Худший ответ:
Спасибо Borigaldi за ответ... Но )))

Если полный SDK не охота ставить ( 70 мб ) можно использовать только модуль @aws-sdk/client-s3 ( 4мб )
const { S3Client, PutObjectCommand } = require('@aws-sdk/client-s3');
И креденшалс нужно так указать:
credentials: {
			accessKeyId: accessKeyId, // берем ключ из переменной окружения
			secretAccessKey: secretAccessKey, // берем секрет из переменной окружения
		},
И еще метод .send(new PutObjectCommand(params)) вместо .upload():
const result = await new Promise(function(resolve, reject) {
				aws.send(new PutObjectCommand(params)).then(
					(data) => {
						console.log(data)
						resolve(data)
					},
					(error) => {
						console.log(error)
						reject(error)
					}
				);
Вопрос: Было ли такое, что хотели уйти из программирования?

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

Худший ответ:
Пойду в управдомы(с)
Вопрос: Как исправить запрос MySql?

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

Худший ответ:
Александр, решается довольно просто:INSERT INTO table1 (column1, column2, column3, ...)
   SELECT t2.column1,  t2.column2, t2.column3, ...
   FROM table2 t2
   WHERE condition
ON DUPLICATE KEY UPDATE
   column2 = VALUES(column2),
   column3 = VALUES(column3),
   ...
;
Вопрос: Как сделать такой грид?

Лучший ответ:
flex-basis первому на 100%, остальным на треть ряда

snippet

Худший ответ:
Родителю
grid-template-columns: repeat(3, 1fr);
grid-gap: 5px
Первому элементу:
grid-column: 1/-1;
либо через span, как хотите.

https://jsfiddle.net/vasm5p1w/
Вопрос: Как найти исходный код модулей python?

Лучший ответ:
На гитхабе: https://github.com/python/cpython
Код модуля math.py:

https://github.com/python/cpython/blob/master/Modu...
https://github.com/python/cpython/blob/master/Incl...

Худший ответ:
В каталоге исходников Python 3.8.6 модуль в виде С-кода файл находится здесь: 
Python-3.8.6/Modules/mathmodule.c
Вопрос: Почта домена на GMail (G Suite) — а рассылку через почтовый сервер хостинга — так можно?

Лучший ответ:
Сервер для приема писем должен быть один. У Вас это gmail. А серверов отправки может быть много, часто бывает три-четыре
Вот здесь кратко сравнивал способы отправки с сайта https://7fk.ru/nastroyka-smtp/
Что важно при настройке записей:
DKIM свой для каждого сервера отправки
SPF одна общая, объединенная, указывающая все IP отправки всех серверов

Худший ответ:
Все правильно сделать и спама не будет, также посоветую пользоваться amazon ses или mailgun
Вопрос: Можно ли устроиться в зарубежную компанию без знаний языка?

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

Худший ответ:
Да, если:
1. Вас пригласили туда
2. Вы очень топовый прям супер крутой разраб
3. Если там работают ваши родственники
И это не варианты, это последовательность действий при которых это возможно.
Вопрос: Что такое коллекция в JavaScript?

Лучший ответ:
Четкого определения «collection» в JavaScript не встречал. Интуитивно, коллекция это структура данных для хранения нескольких значений.
Объект и массив, по-моему, можно отнести к коллекциям.
В ES6 появились два новых типа данных – Map и Set, которые тоже можно отнести к «коллекциям». В переводе на Русский язык словом «Коллекция» назвали из них именно Set, предназначенный для хранения только уникальных значений. Но я бы не считал требование уникальности значений отличительным признаком «коллекций» вообще.

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

Лучший ответ:
По сути, это через декораторы aiogram(не единственная библиотека, которая так делает) регистрирует обработчик команд.
Пример такой реализации:
class Bot:
  def __init__(self):
    self.handlers = dict()
    self.on_message = None
  
  def on(self, command):
    def decorator(func):
      self.handlers[command] = func
      return func
    return decorator

  def handle(self, event)
    if event["object"]["message"]["text"] in self.handlers:
      self.handlers[event["object"]["message"]["text"]](event["object"])
    elif self.on_message is not None:
      self.on_message(event["object"])


bot = Bot()

@bot.on("привет")
def hello_handler(msg):
  print(f"Hello: {msg}")
  # Для ответа можете реализовать отдельную функцию, которая обращается к vk_api

def on_message(msg):
  print(msg)
Здесь надо реализовать ещё инициализацию бота, основной цикл и запуск.

Худший ответ:
Решение простое: не используй vk_api. Даже его разработчик советует использовать более продвинутые аналоги с поддержкой асинхронности, такие как vkbottle.

Да и после aiogram тебе будет легко пересесть.
https://github.com/timoniq/vkbottle
Вопрос: Где можно сделать пластиковые корпуса по чертежам для РЭА?

Лучший ответ:
Корпус как на картинке в небольшой партии будет стоить как самолёт.
Единственный доступный вариант кастомного корпуса это 3Д печать, но корпус само собой получится самоделочного вида.

Единственный разумный вариант получить корпус заводского вида не тратя миллион это подобрать что-то из стандартных китайских с фрезеровкой отверстий под экран плюс плёночная клавиатура под заказ.
Типа такого https://aliexpress.ru/item/33048521549.html

Худший ответ:
А если речь может идти о тираже в десятки тысяч и больше - дизайнер, инженер-конструктор по пресс-формам, изготовление пресс-формы. И в почти любой местечковой фирме по литью на ТПА - Вам сделают недорогой тираж.
Вопрос: Что такое инверсия зависимостей в python?

Лучший ответ:
По сути - как и везде.  Пример- У бизнесс логики не должно быть зависимостей от конкретных реализаций. Сегодня у вас все хранится в постгрес а завтра в монге. Инверсия зависимостей позволяет более менее безболезненно совершить такой переезд, так как слой бизнесс логики понятия не имеет где вы храните данные.  Ниже накидал грубый но вроде понятный кусок кода. Есть некая сущность блог,  к которой можно добавлять пользователей и смотреть их.  Блог должен откуда то тянуть данные и где то хранить их. Мы создаем некий интерфейс DBInterface ,который имеет стандартные методы добавить/удалить данные. Далее создаем класс SQLdb который реализует этот интерфейс.

В самом классе блога мы реализуем функции получения/добавления пользователей без привязки к конкретной системе хранения: просто создаем экземпляр класса SQLdb и  экземпляр класса Blog , передавая туда sqldb. Когда мы захотим переехать на монгу - нам не надо будет трогать класс блога. Мы всего лишь реализуем класс Mongodb для новой базы и будем опрокидывать его в блог вместо  sqldb. Итог - блог не зависит от системы хранения вообще.
Пример сильно упрощен и утрирован, но для понимания как оно работает думаю сойдет)

from abc import ABC, abstractmethod
import random


class DBInterface(ABC):

    @abstractmethod
    def insert(self, data):
        pass

    @abstractmethod
    def get(self, id):
        pass


class SQLdb(DBInterface):

    def insert(self, data):
        print(f"inserted {data} from mysql")
        return random.randint(0, 100)

    def get(self, id):
        print(f"get user {id} data from mysql")
        return {'id': id, "data": "some_data"}


class Mongodb(DBInterface):

    def insert(self, data):
        print(f"inserted {data} from mongo")
        return random.randint(0, 100)

    def get(self, id):
        print(f"get user {id} data from mongo")
        return {'id': id, "data": "some_data"}


class Blog:

    def __init__(self, db, blog_id):
        self.db = db
        self.blog_id = blog_id

    def add_user(self, name):
        self.db.insert(name)

    def get_users(self):
        return self.db.get(self.blog_id)


if __name__ == '__main__':
    sql_db = SQLdb()
    mongo_db = Mongodb()

    blog_with_sql = Blog(db=sql_db, blog_id=1)
    blog_with_sql.add_user("test") # Выведет inserted test from mysql

    blog_with_mongo = Blog(db=mongo_db, blog_id=1)
    blog_with_mongo.add_user("test") # Выведет inserted test from mongo

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

Лучший ответ:
Для чего можно использовать 100кв.м-квартиру в 2019?
Два санузла.

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

Лучший ответ:
Написать правило в конфигах сервера, чтобы на запрос robots.txt перенаправляло на обработчик generate_robots_file.php. В нем генерить содержимое файла на основе поддомена и отдавать контент с заголовком "Content-Type: text/plain".

Худший ответ:
Яндекс уже давно отказался от директивы Host.
https://yandex.ru/blog/platon/pereezd-sayta-posle-...
Вопрос: Как настроить mikrotik на 10G?

Лучший ответ:
Столько людей и никто не может дать правильный ответ, куда катится мир ?Настройки на интерфейсах установлены в автоподборе скорости. Измерение скорости показывает максимум 1 гигабит.
Как только пробуешь выставить только 10G, соединение падает. alokey alokey Автор вопроса
Wexter, через bandwidth test от устройства до устройства
Уже эти вещи , должны вас были заставить задуматься о том, что явно вы делаете , что-то не то.Как только пробуешь выставить только 10G, соединение падает.
Правильно, так как 326 резко становится плохо.
Уж не знаю, забыли ли вы или просто не знаете  или знаете но не можете применить в жизни знания, но есть определенные но:
1) Switch у нас работает в L2
2) Тестирование скорости у вас происходит в L3
3) Если вы посмотрите на сайте mikrotik для crs326, то увидите, что шина на CPU 1 gb.
Из этого следует очень простой вывод, что у вас crs326 может быть только как транзит для трафика.
я не поленился и собрал из говна и палок, что нашел дома тестовый стенд и сделал тесты
Вот так выглядил стенд 
Вот тут на 1009 видна скорость интерфейса
Вот вам 326 передающий на 1009 трафик на скорости 8.5
Так как у меня всего 9 устройств нашлось, поэтому такая скорость. Еще надо понимать , что тики отдают не 1gb, а в районе 940 без активных потерь.  Можно было бы еще конечно поискать и по отключать устройства, но честно мне уже было лень.  Идеально было бы найти еще один 1009 но увы.
Нагрузка на стороне 1009
Поэтому смело подключайте 1009 с 326 и у вас точно там будет 10gb. Ну или по крайне мере 8.5 :)
Надеюсь помог и прояснил для вас ситуацию.
P.S. И да откройте для себя Traffic generation 
Тут я где то пытаюсь о нем как-то рассказать 
https://youtu.be/51x2GgQiP7c?t=6494
Может даже чуть раньше.

Худший ответ:
нашелся странный ответ на форуме Микрота от MikroTik Support. if interface name is set as sfp-sfpplusX - it is capable of 1.25G and 10G, if only sfpplusX it is 10G only.
интересно было бы проверить =)
вообще посмотрите тему https://forum.mikrotik.com/viewtopic.php?t=80057
а еще некоторые в той ветке отмечают, что данное решение им помогло:1. to achieve successful fiber link between CCR1036-8G-2S+ and CCR1036-12G-4S or any other SFP device you need to:
*) disable auto-negation and set interface speed to 1Gbps to routers on both sides.
*) re-plug module or disable/enable interface after these changes.
when this is done link should be active.
2. regarding lack of information "Tx Power" field I suspect that dmi information fetching from module failed. Reboot or power cycle should fix this state.
Вопрос: Куда пропали 3 GB на системном диске после установки Windows?

Лучший ответ:
Под раздел загрузки либо восстановления. Это нормально.

Худший ответ:
Самый простой способ избавиться от "странных" разделов - установка с дистрибутива с нуля.
При этом не стоит использовать поставляемый в комплекте с ноутбуком, т.к. там есть операции по созданию доп.разделов для восстановления (у меня 8.9 ГБ съело)...

При установке с нуля получил такие разделы ;)
Вопрос: Почему я не могу apt update в ubuntu 19.04?

Лучший ответ:
EOL потому что. https://wiki.ubuntu.com/Releases
Обращайте внимание на сроки поддержки релизов. Промежуточные релизы убунты специально сделаны с коротким временем жизни.

Худший ответ:
ошибка 404 - репозиторий недоступен. Меняйте на другой. Списки есть в интернете.
А "Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён." - можете попробовать добавить в sources.list после  слова deb строку [trusted=yes].
Вопрос: Как с помощью flexbox расположить в ряд по 2-4 картинки?

Лучший ответ:
Используя flex-wrap, минимальные и максимальные размеры, а лучше сразу перейти на гриды с их auto-fill и\или minmax размерах.

Худший ответ:
Да, действительно. Именно ту часть макета Вам нужно делать через гриды. Так будет правильнее.
Могу порекомендовать хорошее видео по гридам, которое должно Вам помочь с заданием
CSS Grid Layout. Свойства определения сетки grid-t...
Вопрос: Зачем использовать Gulp, если можно обойтись плагинами?

Лучший ответ:
Серьёзная разработка подразумевает автоматизацию сборки/развёртывания вашего приложения с использованием какой-нибудь ci/cd системы. Это делает неоходимым использование консольных систем сборки, которые в отличие от плагина к редактору:
1) можно использовать в скриптах
2) банально меньше весят

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

Худший ответ:
Если тебе удобно пользоваться плагином VSCode то пользуйся и никого не слушай.  Единственно может в коллективной работе встать вопрос об использовании  чего-то другого, и не обязательно это будет gulp

p.s.но вот когда перед тобой встанет задача сборки какого-то js приложения, то без webpack уже не обойдёшься.
Вопрос: Какой Backend выбрать для React APP?

Лучший ответ:
Нет идеального бэкенда

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

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

Худший ответ:
Попробовать восстановить при помощи Zip2Fix
Вопрос: Актуально ли ещё учиться вёрстке?

Лучший ответ:
Да, можно. Хороших верстальщиков не хватает, никто не хочет браться за работу и работать нормально.

Лучше учитесь верстать без ферймворков, на базе flexbox. Имеет смысл из Bootstrap'а выучить только сетку, так как она иногда помогает, но обычно не нужна или нужна не сильно.

Худший ответ:
Если вы их еще будете рисовать и придумывать контент, то норм.
Вопрос: Два провайдера одна локалка?

Лучший ответ:
Можно, создав тоннель. Детали в зависимости от конкретных условий, белый IP,  firewall провайдера и многие другие.

Худший ответ:
Если имеется в виду, что у вас 2 независимые сети, в разных местах, и подключены разными роутерами к разным провайдерам то 2 путя:
1) Настроить IPSec (не так страшно и сложно, если маршрутизаторы поддерживают). Тогда ваши локалки станут общаться напрямую.
2) Настроить взаимную синхронизацию этих папок, например через Sync.
Вопрос: Бесплатный коворкинг в мск?

Лучший ответ:
библиотека, например

Худший ответ:
* В современных библиотеках есть всё необходимое: бесплатный Wi-Fi и удобно расположенные розетки.
* Зоны отдыха в торговых центрах
* Арт-пространство (или креативное пространство) ( в книжном магазине на Арбате на 2 эт., на нижнем уровне Музея современного искусства и т.п.)
* лобби отелей
Вопрос: Как сохранить пропорции путем изменения высоты при каждом изменении ширины?

Лучший ответ:
Либо хаком с паддингом либо задавать размеры в vw
https://jsfiddle.net/Ankhena/cLhxv7eq/

Худший ответ:
В ожидании aspect-ratio: все «хаки» для пропорцион...
Вопрос: October CMS плагин Builder. Как заменить title страницы вывода записи при использовании компонента RecordDetails?

Лучший ответ:
Привет, в нашем блоге уже есть небольшая статья которая решает твою проблему:
https://biz-mark.ru/blog/web-razrabotka/zamena-tit...

Худший ответ:
Никогда не именуйте сущности обычным транслитом. Всегда осуществляйте перевёл на английский язык. Тем более в вашем случае вы используете оба варианта AKk\Produkty\Models\Products.
Вопрос: Почему база созданная через psql не пригодна для использования в 1С?

Лучший ответ:
Вручную, базы для 1С обычно не создаются по нескольким причинам.
Одна из основных - структура таблиц, (в т.ч. имена полей и таблиц) должна быть в точности как 1С планируется её использовать. (Имена таблиц, далее будут записаны в соответствие, в отдельной таблице)
Также после создания , эта структура бд, должна быть в опр. виде в двоичных данных в нескольких "Служебных таблицах", в точности воссоздать которую - дело крайне проблематичное.
Если у вас есть желание создавать базы скриптом, самый простой способ - создать "пустышку" из 1С, создать бэкап, а далее его разворачивать там, где вам необходимо.
З.Ы.: даже пустая база, созданная из 1С, по факту будет не пустой, в ней будет куча служебных данных. Именно поэтому, ваша база выдала ошибку при подключении к кластеру (не были обнаружены, служебные данные в служебных таблицах)

Худший ответ:
Да, 1С использует постгрес в особо извращённой форме. Лучше лишний раз руками в этот набор гирь и противовесов не влезать...
Вопрос: Какое количество пользователей потянет CRS326-24G-2S+RM?

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

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

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

Лучший ответ:
> Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows
Читайте ошибку перед тем, как спрашивать

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

Лучший ответ:
Очень рекомендую эту книгу. 
Большая, толстая. очень наглядные структуры с алгоритмами и разборами. На Java.  Куча заданий


И вот эту серию. Простая и легкая, но хорошая:


Худший ответ:
список книг
Вопрос: Как добавить первичного администратора в Symfony?

Лучший ответ:
Если используется FOSUserBundle, то надо использовать команду bin/console fos:user:create username em@ai.il 'p@55w0rd'.

В случае своего решения, эта команду надо создать самому. У меня она выглядит как-то так (по сути повторяет код экшена контроллера со своими нюансами)

CreateCommand
/**
 * @psalm-suppress PropertyNotSetInConstructor
 */
class CreateCommand extends AbstractCommand
{
    private DocumentManager $documentManager;
    private ValidatorInterface $validator;
    private PasswordGenerator $passwordGenerator;
    private AdministratorMapper $mapper;

    public function __construct(
        DocumentManager $documentManager,
        ValidatorInterface $validator,
        PasswordGenerator $passwordGenerator,
        AdministratorMapper $mapper
    ) {
        parent::__construct();

        $this->documentManager = $documentManager;
        $this->validator = $validator;
        $this->passwordGenerator = $passwordGenerator;
        $this->mapper = $mapper;
    }

    /**
     * @psalm-suppress MissingReturnType
     */
    protected function configure()
    {
        $this
            ->setName('app:administrator:create')
            ->addArgument('username', InputArgument::REQUIRED, 'Username')
            ->addOption('password', 'p', InputOption::VALUE_REQUIRED, 'Password')
            ->setDescription('Creates administrator')
        ;
    }
    
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        /** @var string $username */
        $username = $input->getArgument('username');
        /** @var string|null $plainPassword */
        $plainPassword = $input->getOption('password');
        if (!$plainPassword) {
            $plainPassword = $this->passwordGenerator->generate();
        }

        $model = new AdministratorModel();
        $model->enabled = true;
        $model->username = $username;
        $model->password = $plainPassword;

        $errors = $this->validator->validate($model);
        if (\count($errors) > 0) {
            $this->io->error('Can\'t create administrator');
            $this->printConstraintViolations($errors);

            return 1;
        }

        $administrator = $this->mapper->map($model);

        $this->documentManager->persist($administrator);
        $this->documentManager->flush();

        $this->io->writeln(sprintf('Administrator <info>%s</info> with password <info>%s</info> has been created', $administrator->getUsername(), $plainPassword));

        return 0;
    }
}


bin/console app:administrator:create vasx3

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

Худший ответ:
В консоли
php bin/console make:auth
php bin/console make:user
Далее следуйте инструкциям.
https://symfony.com/doc/master/security.html

Неблагодарите.
Вопрос: Учебник по статистике?

Лучший ответ:
Посмотрите Statistics in a Nutshell

Худший ответ:
Учебники и практикум Елисеевой И. И.