Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Правильно ли так очищать память?

Лучший ответ:
Если нужно удалить переменную любого типа del variableЕсли нужно очистить память, но при этом переменная продолжит существовать variable = NoneЕсли нужно очистить память для списка/кортежа/множества, но при этом не изменять тип variable.clear()

Худший ответ:
Зачем вычищать память, если с этим сборщик мусора справляется? Думаешь, ты умнее него?
Вопрос: Проблема с checkboxList. Yii2?

Лучший ответ:
У Вас данные размеров хранятся не очень удобно.
Пока можно сделать вот так.// Ваш статический метод в модели SizeOneHelper
    public static function getSizeList(): array
    {
        return [
            'S (55/56)',
            'M (57/58)',
            'L (59/60)',
            'XL (61/62)',
        ];
    }

// если в $model->size данные хранятся в виде строки, то надо привести к массиву и передать в checkboxList()
$select = explode(',', $model->size);
echo $form->field($model, 'size')->checkboxList(SizeOneHelper::getSizeList(),[
   'item' => function($index, $label, $name, $checked, $value) use ($select){
      if(in_array($index, $select)){
         $checked = 'checked';
      }
      return Html::checkbox($name, $checked);
   }
])
Но я бы не хранил это в виде строки. Скорей всего создал бы отдельную связующую таблицу, где хранил бы размеры и id товара.
p.s. Сделал "на коленке", но если подумать, то можно и это улучшить.
p.s.s. Для того чтобы выводился label checkbox в функцию передаётся нужный параметр в переменной $label. Используйте его и будет выводится название checkbox-a.return Html::checkbox($name, $checked, ['label' => $label]);
p.s.s.s. В DetailVeiw можно вывести нужные данные таким образом// метод в модели SizeOneHelper
    public function getSizeName()
    {
        return ArrayHelper::filter(self::getSizeList(), explode(',',$this->size));
    }

// в DetailView получаем строку по названиям размеров
echo DetailView::widget([
  'model' => $model,
  'attributes' => [
     [
       'attribute' => 'size',
       'value' => function($model){
          return implode(',',$model->getSizeName());
       }
     ]  
  ]
]);
p.s.s.s.s. Создайте дополнительный метод в модели SizeOneHelperpublic  function getSelectSizeList()
    {
        return explode(',',$this->size);
    }
Метод getSizeName изменится на такой// метод в модели SizeOneHelper
 public function getSizeName()
    {
        return ArrayHelper::filter(self::getSizeList(), $this->getSelectSizeList());
    }
Тогда вывод размеров может быть таким:// в checkboxList
echo $form->field($model, 'size')->checkboxList(SizeOneHelper::getSizeList(),[
   'item' => function($index, $label, $name, $checked, $value) use ($model){
      if(in_array($index, $model->getSelectSizeList())){
         $checked = 'checked';
      }
      return Html::checkbox($name, $checked, ['label' => $label, 'value' => $value]);
   }
])

Худший ответ:
Ну, вроде как то так://controller
public function actionView() {
    $data = [["id" => 1, "checked" => true], ["id" => 2, "checked" => false], ["id" => 3, "checked" => true]];
    return $this->render('view', [ 'data' => $data, 'model' => $this->findModel($id), ]);
}

//View
foreach ($data as $key => $value) {
    $checked = '';
    if ($value['checked'] === true) {
        $checked = 'checked';
    }
    echo "<input type=checkbox id=" . $value['id'] . " $checked>";
}
Вопрос: Как вывести список по очереди чтобы не было повторов?

Лучший ответ:
Сделать set и вывести

Худший ответ:
Начиная с Python 3.6 словари сохраняют порядок ключей:

Performing list(d) on a dictionary returns a list of all the keys used in the dictionary, in insertion order (if you want it sorted, just use sorted(d) instead). To check whether a single key is in the dictionary, use the in keyword.
Поэтому самый простой способ такой:

list(dict.fromkeys(my_list))
Вопрос: Цифровая подпись SSL сертификатов?

Лучший ответ:
> подписать им сертификат
открытым ключом вы сертификат не подпишите, а закрытый - только у владельца корневого ЦС.

Худший ответ:
Мыслите логично. Для подписи нужен закрытый ключ. У вас его нет, если CA не  ваше.
Вопрос: Когда нужны платные сертификаты SSL?

Лучший ответ:
Технически вообще все сертификаты одинаковы :) Это просто личный и общий ключи для шифрования-расшифровывания, вопрос разницы между ними исключительно в доверии к издателю.
- Локальные сертификаты. Издаются корпоративным CA, доверие к которому абсолютно в пределах конторы и равно нулю за ее пределами, доверие возникает только если две конторы обмениваются корневыми сертификатами (но мне такие случаи неизвестны). Выпускаются бесплатно, ставятся ответственными лицами, иногда ты конкретно знаешь, кто именно отвечает за выпуск.
- LE. Издаются бесплатным CA, на три месяца, требуют настройки скриптов обновления. Доверие минимально, поскольку для подтверждения права на выпуск сертификата нужно только подтверждение права владения доменом. Тем не менее применяются широко - для отладки, тестирования, для личных сайтов, для всех, кто не слишком заботится о своей репутации и не переживает за возможность подмены сертификата. Например для личного сайта, блога, для сайта с низкой посещаемостью LE - лучший выбор.
(JFYI: Я никогда ничего не куплю в Интернет-магазине с сертификатом от LE - чел, который не нашел в бюджете пары тысяч на DV-сертификат - это пародия на бизнесмена или же просто кидала)
- DV с общеизвестного CA. Издаются платно, за небольшие деньги (от нескольких сот до нескольких тысяч рублей), обычно на год. Доверие чуть выше, хотя издаются как правило автоматами, для выпуска достаточно подтвердить право владения доменом. Сфера применения - практически та же, плюс небольшие Интернет-магазины, СМИ, персональные сайты популярных людей (поскольку DV выдается физику), сайты организации.
- OV с общеизвестного CA. Издаются платно, за бОльшие деньги (от нескольких тысяч до нескольких десятков тысяч), обычно на год. Доверие заметно выше, чем к DV, потому что издаются не автоматом, а только после ручной проверки - CA самостоятельно по третьим источникам находит контактный номер (именно поэтому при формировании заявки рекомендуют дать ссылку на 2gis, Yellow Pages и т.д) и делает обратный контрольный звонок. В некоторых CA (но не во всех) есть русскоязычный персонал. Также запрашивают основные документы, подтверждающие регистрацию организации. Работать с CA за рубежом довольно сложно, лучше всего найти компанию-прокси в РФ (например, ярославское ЭМАРО) - они дадут все бухгалтерские документы по стандартам РФ. Сфера применения - СМИ, Интернет-магазины, почтовые сервера (мы, например заказываем для OWA)
- EV c общеизвестного CA. Издаются платно, за приличные деньги (десятки тысяч), обычно на год. Самая высокая степень доверия, самая долгая и сложная проверка. Сфера применения - банки, крупные Интернет-магазины, крупные СМИ, вообще все "крупное".

Худший ответ:
Extended Validation (сомнительно), генерация для интранетов и wildcard-сертификаты для доменов, в которые нельзя внести записи по API.
Вопрос: Как скачать видео по прямой ссылке?

Лучший ответ:
Потому что на YouTube так организовано хранение и передача видео. И вам придётся скачивать фрагменты и затем соединять их в целое видео. Можете начать знакомиться с теорией, например, с этих статей: MPEG-DASH и HLS.

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

Лучший ответ:
Самый тупой и простой способ — менять комплектующие по очереди. И от этого танцевать.

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

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

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

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

Лучший ответ:
читал про то, что компьютеру полезен "отдых".
Любая электронная техника рассчитана на работу 24/7/365 под 100%-ной нагрузкой, если не указано другое.

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

Лучший ответ:
Ахаха! Мир поглазел, а потом окунулся в реальность с зарплатой в 20 тысяч.
Однозначно в поддержку

Худший ответ:
Определенно стоит, надо же мне на ком то нервы срывать)
Я вообще частенько хочу на месяц отстраниться на какую-нибудь стройку, где бери больше, кидай дальше, голову "остудить".
Вопрос: Большая БД mysql 5.6 + linux, хотим апдейтиться, советом поможете?

Лучший ответ:
1. Купите сервер под работы по апгрейду ПО.
2. Разверните там новую ОС.
3. Поставьте mysql последнего релиза.
4. Сделайте миграцию с существующей бд.
5. Переключите линк с действующей ОС на новую БД.
6. После проверки - настраиваете остальное на новом.
7. Делаете бэкапы.
8. Отключаете старый, включаете новый.
Старый - используете в дальнейшем также.

Худший ответ:
Без стейджинга вы, извините, нихрена не сделаете.
Как минимум, вам нужно сделать бекап вашего барахла перед апгрейдом, тут уж как ни крути.
Чтобы проверить, что ваши структуры и приложуха перетянутся на новую версию, можете сделать бекап без данных, раскатать его и проверить.
Ну и главный вопрос - что у вас в базе занимает 5 тер? Вы там картиночки держите?
Вопрос: Как настроить Mikrotik c заменой шлюза?

Лучший ответ:
1. Создать новый VRF
2. Создать бридж, в него два порта
3. Повесить IP адрес на бридж
4. Этот бридж и один VPN интерфейс в VRF из п.1 
5. Прописать на компах IP адрес бриджа как основной шлюз.
6. В VRF добавить маршрут по умолчанию в VPN
Рецепт повторить ещё 4 раза.

Худший ответ:
- Раскидываете порты по разным бриджам и создаёте нужное количество src-nat на нужных vpn интерфейсах с указанием нужных in-interface
- Раскидываете порты по разным интерфейс-лист и создаёте нужное количество src-nat на нужных vpn интерфейсах с указанием нужных in-interface-list
- Раскидываете IP машин в address-list и создаёте нужное количество src-nat на нужных vpn интерфейсах с указанием нужных adress-list
P.S. openvpn клиент на микротике это не есть хорошо - пашет в юзерспейс, имеет низкий приоритет, грузит железо.
Вопрос: Можно ли установить в ноутбук SSD диск с SATA3 если до этого стоял HDD с SATA2?

Лучший ответ:
Можно
Сата совместимы, но скорость будет меньше чем в сата3
Размер там 2.5"

Худший ответ:
Можно.какой SSD мне взять, чтобы во-первых он физически влез в мой ноутбукДостать тот что стоял, замерить линейкой, и ориентироваться на размер.и во-вторых с каким портом должен идти SSDРазумеется с тем, что в ноутбуке.Ведь новые SSD имеют с SATA3.Во первых - при какое отношение имеет интерфейс передачи данных к разъему? Во вторых утверждение неверно - SATA3 давно и безнадежно устарел, и новые SSD с ним не выпускают!Так все таки что у меня на ноуте : SATA2 или SATA3?У вас там давно устаревший SATA3.
Хотя для выбора SSD это не имеет никакого значения - что у вас там  SATA2 или SATA3, вообще без разницы.
Вопрос: Aws s3 vs google drive?

Лучший ответ:
Думаю, вы здесь слегка путаете продукты и их предназначения.
Эти продукты используется для персонального хранения файлов, и все инструменты ориентированы на работу с вашими личными файлами:
Amazon: Amazon drive vs Google: Google Drive
Эти,обычно, используется для целей, которые вы описали:
Amazon: AWS S3 vs Google : Google Cloud Storage
Для ваших целей так же могут подойти:
у Microsoft: Azure block blobs
у DO: Digital Ocean spaces ( совместимо с AWS S3 )
у Yandex: Yandex Object Storage ( совместимо с AWS S3 )
у Mail.ru: S3 объектное хранилище ( совместимо с AWS S3 )
у Alibaba: Alibaba Cloud object storage service
Вы можете выбрать то что вам подходит по вкусу, цене, а так же по близости вашим клиентам

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

Лучший ответ:
Запрос за пикселем ничем не отличается от любого другого. Никто не мешает передать его в nodejs ещё и обрабатывать как угодно — класть в базу, считать статистику и тп

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

Лучший ответ:
add_filter('authenticate','filter_function_name_4601');
function filter_function_name_4601($user){
	if(isset($_POST['log'])){
	$username=$_POST['log'];
	if(isset($username)){$user=get_user_by('login',$username);$user_data=get_object_vars($user);}	
	if(isset($user_data)){$userId=$user_data["ID"];$u_meta=get_userdata($userId);$u_roles=$u_meta->roles;}
	}	
	if(!empty($u_roles)&&(in_array('administrator',$u_roles,true)||in_array('editor',$u_roles,true))){//перебираем роли. которые хотим запретить
	$Who=in_array('administrator',$u_roles,true)?__('Администраторам','VAB'):__('Редакторам','VAB');
	wp_die($Who.' '.__('авторизация запрещена','VAB'));//пишем месседж для них
	}else{
	return $user;
	}
}
Результат, смотря кто ломится


через username
add_filter('authenticate','filter_function_name_4601',10,3);
function filter_function_name_4601($user,$username,$password){
	if($username){
	if(isset($username)){$user=get_user_by('login',$username);$user_data=get_object_vars($user);}	
	if(isset($user_data)){$userId=$user_data["ID"];$u_meta=get_userdata($userId);$u_roles=$u_meta->roles;}
	}	
	if(!empty($u_roles)&&(in_array('administrator',$u_roles,true)||in_array('editor',$u_roles,true))){//перебираем роли. которые хотим запретить
	$Who=in_array('administrator',$u_roles,true)?__('Администраторам','VAB'):__('Редакторам','VAB');
	wp_die($Who.' '.__('авторизация запрещена','VAB'));//пишем месседж для них
	}else{
	return $user;
	}
}
это, если разрабы завтра log поменяют на что-то другое...

Худший ответ:
Вариант первый: с помощью плагина Remove Dashboard Access. Скачать его можно здесь: https://wordpress.org/plugins/remove-dashboard-acc...

Вариант второй: Добавьте следующий код в файл functions.php Вашей активной темы. Вместо administrator вставляете нужную вам роль. Пользователь попытавшийся зайти в админ панель Wordpress получит сообщение о 404 ошибке.

function true_wp_admin_block() {
	if (!current_user_can('administrator')) { // если не администратор
		header('HTTP/1.0 404 Not Found');
		exit();
	}	
}
add_action('admin_menu', 'true_wp_admin_block');

В WordPress по умолчанию уже существует 6 групп пользователей:


Super Admin — суперадминистратор, который имеет право управлять сетью сайтов.
Administrator — администратор.
Editor — редактор, может публиковать и редактировать посты других пользователей.
Author — автор, может публиковать и редактировать собственные посты.
Contributor — участник, может писать и отправлять свои посты на модерацию.
Subscriber — подписчик, всё, что он может — это редактировать свой профиль.
Вопрос: Подходит ли стабилизатор напряжения к моноблоку?

Лучший ответ:
Примечание про двигатели, означает что на выходе стабилизатора не настоящая синусода, а близкая к ней лесенка.
Для импульсных блоков питания это не имеет значения, но двигатели и трансформаторы с таким током не могут работать.
Для любого современного компьютера и другого современного цифрового прибора такой стабилизатор годится. 
Они все используют импульсные блоки питания.
PS от такого стабилизатора для компьютера толку мало: для блока питания рабочее напряжение от 100 до 250 вольт. Куда лучше весь дом/квартиру защитить с помощью реле напряжения на случай отвала нуля (в в этом случае в сети может оказаться 380 вольт.)

Худший ответ:
Странный выбор, на дорогой моноблок ставить дешевую нонеймную говняшку.
Возьмите нормальный бесперебойник с функцией стабилизации напряжения 
типа APC Back-UPS 800 ВА
не намного дороже зато гораздо полезней. И от скачков защищает и от внезапного пропадания.
Вопрос: Почему на видеокарте NVIDIA GeForce GT 440 не выставить разрешение 2К?

Лучший ответ:
Вот решение которое помогло мне (ссылка на ответ в другом подобном вопросе): ссылка

Худший ответ:
Подключаете по HDMI? Возможно у вас старый/дешевый кабель.
Ну и раз у знакомого была похожая проблема, но с амдшной картой когда сбойнул драйвер - вылечилось его переустановкой.
Вопрос: Для чего в компоненте Vue, ключ name?

Лучший ответ:
Для меня самым важным является быстрый поиск и отработка в Vue devtools.
Если появляются ошибки или нужно посмотреть date компоненты, то поиск и определение происходит по name компоненты.

Худший ответ:
Читай внимательно документацию по Vue
Вопрос: Си или С++, что учить в начале?

Лучший ответ:
В начале, в начале совершенно фиолетово.
Берите любой и прокачивайте мозги для мышления в нужную сторону, а язык уже потом будите выбирать.
P.S. такой вопрос тут ежедневно всплывает, потрудитесь прочитать.

Худший ответ:
Ценятся хорошие специалисты, прежде всего. Если вы профи, и у вас за спиной многолетний опыт, то вас достойно оценят.
Насчёт сферы сложно что-то сказать, потому что её обычно выбирают не из-за денег. Например, больше всего ценятся продюсеры, аналитики и очень крутые программисты, но это в Москве, а в регионах внезапно ситуация слегка иная, там почему-то больше платят ПМам. В любом случае, полностью переучиваться ради зарплаты довольно странно, т.к. через пару-тройку лет картина снова поменяется. Одно могу сказать точно: всё выучить не получится, и придётся работать с другими людьми в команде.
А в плане языка программирования лучше исходить из задачи. К примеру, если игра простая, то её можно вообще на Lua сделать (или на другом скриптовом, просто Lua это уже классика). А если какие-то сложные вычисления, что-то вроде ИИ, поиска пути или сложных механик, то лучше нативный язык, т.е. Swift/Kotlin (для мобайла) и C++/Rust/и прочие для десктопа.
Вопрос: На чем лучше разработать приложение под информационный киоск?

Лучший ответ:
Чем не угодил WPF, о каких костылях речь?
Можно попробовать Avalonia UI - работает даже без Х, на голом фреймбуфере.
Еще можно посмотреть на QML. 

Или по-простому, веб приложение и браузер в режиме киоска.

Худший ответ:
Простити, может, не в тему вопроса, но в чём проблема использовать уже готовые решения?
Есть такой режим у Windows, даже у Linux (но не факт, что он заработает). Почему не воспользоваться ими?

И да, если даже костылить своё, то лучше на чём-нибудь web-based, обычные программы не нужны.
Вопрос: Как работает функция изменения положения элемента в массиве?

Лучший ответ:
Вот документация на MDN

Худший ответ:
Чтобы поменять местами, надо:выдернуть первый, выдернуть второй,вставить на новое место первый,вставить на новое место второй.
Метод массива .splice() умеет и выдирать и вставлять одновременно. Его аргументы:позиция-из-которой, сколько-выдрать, вставить-этого, вставить-ещё, ...
А возвращает он массив выдранных. Поэтому [0] вернёт первый выдранный элемент.
Можно расписать вашу функцию подробнее:function swap(arr, from, to) {
  // выдёргиваем:
  const A = arr.splice(from, 1)[0];
  const B = arr.splice(to-1, 1)[0]; 
  // -1 т.к. массив стал короче после первой операции

  // вставляем
  arr.splice(from, 0, B); // 0 - ничего не вырезаем, только вставляем
  arr.splice(to, 0, A);
}
Ещё проще то же выглядит безо всяких splice()function swap(arr, from, to) {
  // выдёргиваем-копируем:
  const A = arr[from];
  const B = arr[to]; 

  // вставляем-заменяем
  arr[from] = B;
  arr[to] = A;
}
Вопрос: Парсинг несколько фотграфий с instagram?

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

Худший ответ:
да конечено они же там в запросе сразу все отдаются
Вопрос: HTTP регистрация PHP используя POST?

Лучший ответ:
Есть идея делать POST запросы
Ну как бы других вариантов особо и нет. В браузере, через "Инструменты разработчика" (или типа того) посмотреть что и куда браузер отправляет во время авторизации. Думаю как минимум это пост запрос с логином, паролем и какими-то полями. Но скорее всего есть нюансы типа csrf или может капча какая-то. Тут всё индивидуально и зависит от сайта, на котором требуется регистрироваться/авторизоваться. Может там вообще на js и ajax запросах происходит, тогда придётся имитировать их)

Худший ответ:
Любая авторизация\регистрация -- это отправка гет\пост параметров на определённый урл. 
Трудности могут возникнуть например с csrf
Вопрос: Есть ли такие сервисы, которые возвращают по запросу информацию о браузере?

Лучший ответ:
Таких сервисов сотни, гуглите "browser info". Но для вашей задачи они не нужны, пользуйтесь средствами разработчика в браузере - смотрите какие заголовки отправляются и подделывайте их.

Худший ответ:
https://2ip.ru/browser-info/
https://www.whatsmybrowser.org/
и т.п.
в текстовом виде не встречал, но мне кажется html распарсить вообще труда не составляет (регулярные выражения)
Вопрос: Как обработать ответ платежной системы?

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

Худший ответ:
Ну для начала нужно читать тех часть самой платежной системы , хоть бы название написал
Вопрос: Стоит ли использовать своё фото на фриланс бирже, если выглядишь достаточно юным?

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

Худший ответ:
нет если вам 30 то скорее всего вам скажут, а в чем секрет молодости ?
Вопрос: Как добавить переменную к классу сlass N extends $n?

Лучший ответ:
Никак, иерархия классов строится до этапа исполнения

Худший ответ:
Единственный способ это сделать, использовать eval:<?php
class A{}
$class_name = 'A';

$code = <<<CODE
class B extends $class_name{}
CODE;
eval($code);

if(new B() instanceof A){
    echo 'Ok';
}
Но решение это не очень, и я бы советовал вам посмотреть в сторону структурных шаблонов проектирования, таких как адаптер и декоратор
Вопрос: В каком порядке выполняются назначенные на одно время задачи в Cron?

Лучший ответ:
Можно ли их разделить? Например чтобы они исполнялись с интервалом в 10 секунд?

Пишете скрипт который вызывает ваш скрипт с разными параметрами по очереди
#!/bin/bash
python script.py
sleep 10
python script.py
....
скрипт кидаете в крон на нужное время

Худший ответ:
Одновременно
Перед каждой задачей прописать sleep и нужную задержку
Вопрос: Python поможете новичку?

Лучший ответ:
a=4
b=5
c=9

print('{2:d}-{1:d}={0:d}'.format(a, b, c))

# выведет: 9-5=4
Простым языком про форматирование

{2:d} это место для вывода значения. 2 это позиция аргумента, сюда попадёт третий, c. 
После двоеточия формат d означает число.

Худший ответ:
Вместо "c"напишите str(c), соответственно с b тоже самое.
И откройте хотя бы учебник, серьезно.
Вопрос: Как добавить проек в github?

Лучший ответ:
git is not recognised as an
Думаю что хоть один ответ с этой страницы поможет донастроить гит

Худший ответ:
Попробуйте GitHub Desktop
Вопрос: Какой фирмы выбрать SSD и оперативку для ноутбука?

Лучший ответ:
Надо в первую очередь посмотреть поддержит ли такой объем этот ноут, всю жизнь брал память hynix 
Про ссд, не плохих контор много, брак может быть везде, каждый напишет свой проверенный брэнд
Всю жизнь брал wd

Худший ответ:
>  бренды SSD для покупки
Samsung EVO из последних. Я заказывал с Amazon на 1TB. С пересылкой получилось дешевле, чем в соседнем магазине, но дольше.
> Стоит ли заострить внимание на объеме?
1TB хватит и под систему, программы и игрушки. Смысла урезать себя по части размера быстрого носителя не вижу.