Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как исправить проблему с кодировкой (UnicodeEncodeError: 'latin-1' codec can't encode characters..) при взаимодействии с mysql?

Лучший ответ:
Итак, проблема была не в БД и Python,
a в языке системы (VPS/Ubuntu 18)
в которой русского языка не было установлено вообще.
Проверьте кодировку системы:import sys
import locale

print(sys.getfilesystemencoding())
print(locale.getpreferredencoding())
У меня на VPS как раз стояла  ISO 8859-1 ( Latin-1 )
Решение - добавить в систему RU локаль.

Худший ответ:
В конкретном поле поставить что-то вроде COLLATE utf8_general_ci
Вопрос: Как вывести в каталоге Woocommerce вариации товара с ценой и корзиной напротив для каждой?

Лучший ответ:
В файле woocomerce/template/content-product.php после do_action( 'woocommerce_after_shop_loop_item_title' );
нужно вставить следующий код:$args = array(
  'post_type'     => 'product_variation',
  'post_status'   => array( 'private', 'publish' ),
  'numberposts'   => -1,
  'orderby'       => 'menu_order',
  'order'         => 'ASC',
  'post_parent'   => get_the_ID() // get parent post-ID
);
$variations = get_posts( $args ); 
 
foreach ( $variations as $variation ) {
  
  // get variation ID
  $variation_ID = $variation->ID;
 
  // get variations meta
  $product_variation = new WC_Product_Variation( $variation_ID );
 
  // get variation featured image
  $variation_image = $product_variation->get_image();
 
  // get variation price
  $variation_price = $product_variation->get_price_html();
       //get variation name
  $variation_name = $product_variation->get_variation_attributes();
echo "<p class='product_price' >";
if ( $variation_name [ 'attribute_pa_СЛАГ_АТРИБУТА' ] ) {
    $fasovka = [ 'attribute_pa_СЛАГ_АТРИБУТА' => $variation_name [ 'attribute_pa_СЛАГ_АТРИБУТА'] ];
    echo wc_get_formatted_variation ( $fasovka );
}
echo ($variation_price);
echo "</p>";
}

Худший ответ:
Сначала нужно получить все вариации товара, если они есть, а далее дело техники:global $product;
// если товар вариантивный
if ($product->is_type( 'variable' )) 
{
    //получаем варианты
    $available_variations = $product->get_available_variations();
    foreach ($available_variations as $key => $value) 
    { 
        /**
         * Тут выводишь то что должно быть в списке вариаций.
         * Ссылку на добавление вариации товара в корзину в самом простом случае
         * можно сделать так: http://host.com/?add-to-cart=xxx, где xxx - это ID варианта
         **/
    }
}
Вопрос: Что должен знать Junior Front-end Developer?

Лучший ответ:
Уметь искать информацию!
Есть ОДИН В ОДИН такой же вопрос!
Что должен знать Junior Front-end developer?

Худший ответ:
Джун на фронте не верстает, он js код пишет, ты знаешь js? НЕ JQUERY, А JS! Что-то мне кажется на очередном лэндинге у тебя не было возможности попрактиковаться в реакте.
Вопрос: Как настроить авторизацию в MVC PHP?

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

Надо на пару лет забыть про красивые слова OOP и MVC, и поучиться просто писать код, который делает то, что требуется.

Худший ответ:
Давайте пройдемся по коду:
1. Нужно исправить метод login в классе Auth
public static function login($name, $password) {
      $db = Db::getInstance();
      $name = intval($name);
      $password = intval($password);
      $req = $db->prepare('SELECT * FROM users WHERE name = :name AND password = :password');
      $req->execute(array('name' => $name, 'password' => $password));
      $login = $req->fetch();

      //return new Auth($login['name'], $login['password']); - Зачем здесь возвращать новый инстанс этого же класса?
      return $login; // - возможно вам это нужно
    }
2. В контроллере нужно выводить полученные данные
$loginData = $login->login($name, $password);
 //отображает имя из формы а не из БД
echo $loginData->name;

Это только то что можно исправить чтобы заработало, но в остальном весь код нужно переделать:
Это уберите немедленно - $name = intval($name);
$password = intval($password);
Это тоже не нужно
<?php
  class AuthController {
    public function index() {
        require_once('views/auth.php');
    }
}
Вместо этого используйте автозагрузку (в идеале composer)
Переделайте модель авторизации, не используйте публичные свойства, вместо них private & getters
Вопрос: Какая база данных подойдет для триллионов записей с индексами?

Лучший ответ:
Нужно больше информации о задаче:
1. тип данных: структурированные или нет. 
Предполагаю, что структурированные, под RDBMS
2. размер записи (в байтах)
3. кол-во полей в записи
4. типы данных полей (включая поля с переменной длиной)
5. назначение базы (OLTP/OLAP)
6. кол-во индексов и колонки в индексах
Вот, где-то так.
При наличии информации выше можно дать взвешенный ответ. 
Иначе получите что-то типа: "Лошадью ходи, лошадью". :)
Удачи.

Худший ответ:
Для данных объемов не подходит один сервер. Вам надо что-то распределенное. Точнее можно только сказать только после того как будет информация о том какие данные там хранятся и как они хранятся, записываются и читаются. Какая частота и вообще
Вопрос: Что такое торрент кэш-сервер/torrent cache server?

Лучший ответ:
www.peerget.com
Обычно это кеширующий сервер у провайдера, ему дешевле гонять трафик внутри своей сети, чем за пределы

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

Лучший ответ:
Ошибка в суждениях. Дисплеи по прежнему "аналоговые" в смысле передачи света до глаза, а цифровой только интерфейс между ПК и дисплеем. Можно сделать цифровую передачу звука от ПК до колонок, но тогда ЦАП должен быть внутри колонки, а не внутри ПК(звуковой карты).

Худший ответ:
Погугли такие вопросы
1) Как работает лучевая трубка
2) Как работает диодная или жидкокристалическая панель (и чего в ней цифрового)
3) Как работает электро динамический источник звука
4) Как работает электро статический источник звука
5) Можешь еще погуглить что такое DSP и как они сейчас применяются в источниках звука
Может предложишь сам в какую сторону нужно "изобретать" источник звука
Вопрос: Как решить вопрос с нумерацией без позиционирования?

Лучший ответ:
.work__number вообще лишний
https://jsfiddle.net/0Lxewqj1/
Почему без позиционирования?
С позиционированием можно и от work__subtitle избавиться.

Худший ответ:
Внести такие правки:.work__item
{
width: calc(100% / 4 - 100px);
margin-right: 100px;
padding-bottom: 125px;
}

.work__number{
position: relative;
margin-top: -25px;
}
Вопрос: Почему не рабтоает cron?

Лучший ответ:
PHP Deprecated:  The mbstring.func_overload directive is deprecated in Unknown on line 0
молитесь на эту строку, пока она deprecated, после того как она уйдет из deprecated , битрикс перестанет работать ;) 
поскольку на 0 они переходить не торопятся. а deprecated  уже должен перейти в ворнинг еще в 7.1 но пока  к счастью откладывают.
теперь по сути
в логе у вас ошибок нет ;) 
/dev/log.txt 2>&1
 эээ вы уверены т что это  хорошая идея ?

Редактируйте файл так
crontab -e -u bitrix
поскольку если агент создает файл то он будет с  владельцем  от кого он запущен а это root соответственно вы не сможете через сайт вносить в них изменения.

Как вариант
*/1 * * * *  ......

лично я  запускаю агентов так 
* * * * * wget -q -O- http://crm.topengineer.ru/11111.php > /dev/null 2>&1
 при таком варианте  подхватываются переменные среды  и ядро битрикса, а так же версия php текущего сайта
не забывайте что в противном случае с консоли запускается php версия установленная по дефолту, да еще и по умолчанию как мод апач, у которого может даже mbstring..=0
Если на сервере более 1 версии пхп и 1 версии представления пхп то  с консоли нужно или запускать нужную вам версию или иметь в виду что она может быть другой
убедиться легао с консоли напишите
php -v
подробно
php -i
но я проще запускаю через вгет.
Однако можно и вот так
*/1 * * * * /usr/bin/php -d short_open_tag=1 -dmbstring.internal_encoding=UTF-8 -f /var/www/site.ru/web/local/php_interface/cronSend.php

Худший ответ:
/dev/log.txt

А что это у вас за устройство такое?
Может быть нужно указать правильный путь к файлу, куда можно писать?
Вопрос: Как правильно сделать position у записи в бд?

Лучший ответ:
Вот отличная статья с подходящими вариантами, их плюсами и минусами.
https://begriffs.com/posts/2018-03-20-user-defined...

Худший ответ:
Вы можете хранить номер записи с отступом в 10 или даже 100 пунктов и вставлять новую запись в середину между двумя соседними (т.е. присваивать номер 15 между 10 и 20).
Таким образом полностью перестраивать нумерацию вам придется только если промежуток для вставки новой записи уже отсутствует, а это будет гораздо реже чем при +1.
Вопрос: Как правильно работать с GIT если у тебя проекты CMS?

Лучший ответ:
1. билд–сервер + система деплоя по вкусу
2. аналогично п. 1
3. никакой связи с остальными пунктами
4. хранить в гите только то, что нужно
5. синхронизировать нужно только ассеты, имеющие непосредственное отношение к приложению (стили, скрипты, иконки, и т.п.) и они должны быть в гите. пользовательский хлам хранится в отдельной папке, которая просто линкуется при деплое в проект.

Худший ответ:
1-2, а зачем две ветки, если все равно идет мерж из дева в мастер
3 пишите, кто мешает? Я не против, спросил у сереги(это кактус), он грит что тоже не против.
4 ну добавьте в гитигнор, было бы неплохо если бы cms грузилась через composer, тогда бы шла как вендор зависимость
5 их в гитигнор, у вас своя локальная копия, у юзеров своя, они никак не связаны. Учитывая что в cms вроде нет миграций, то можно периодически сливать дампы бд/файлов. Файлы хранить в gitlfs
Дженкинс не советую, лучше gitlab, он проще в настройке, у него встроенный ci/cd, у них в доках есть примеры.
Вопрос: Как лучше обыграть валидацию форм, если на странице 2 формы?

Лучший ответ:
во первых валидацию можно написать на js
document.getElementById("myForm").addEventListener('submit', (event) => {        
        const data = new FormData(event.target);
        if(!formValid(data)) {
              event.preventDefault();  // отменяем action формы
              return;
        }
})

а во вторых можно не перегружать страницу
точно так же сделать свой обработчик на submit
в нем fetch post (ajax умер давно) 
document.getElementById("myForm").addEventListener('submit', (event) => {             
        const data = new FormData(event.target);
        fetch("/register", {
            method: 'POST',                                            
            body: data
        })
        .then((response) => response.json())
        .then((data) => {
            // тут рисуешь алерты в DOM
        })
        .catch((error) => {            
            console.log(`fetch.post response came up with an error: ${error}`);
        });
        event.preventDefault();
    })
а со стороны фляги
if request.method == 'POST':               
   data = request.form
   ok, err = validateForm(data)
   if not ok:
       return jsonify(err)
   DoRegisterUser(data)
   return redirect(url_for(index))

в третьих если все же хочется оставить валидаторы wtf то просто надо сохранить состояние карточки
для этого при переворачивании карточки добавить/убрать бит в cookie 
а при перезагрузке страницы прочитать этот бит и повернуть карточку нужной стороной
https://www.w3schools.com/js/js_cookies.asp

з.ы. может все совсем не так. я не настоящий сварщик (с)

Худший ответ:
Как запомнить положение карточки до перезагрузки страницы?
Cамое простое решение - использовать sessionStorage.  Запишите состояние страницы. (какая сторона карточки активна). Тогда Вы можете получить это состояние после перезагрузки и показать нужную сторону.

const stateCard = localStorage.getItem('card');  // получить активную сторону карты
if(stateCard === 'register'){
 // сделать активной регистрацию
} else {
 // сделать активным вход
}
...
function onSubmit(){
   localStorage.setItem('card', 'register'); // установить активную сторону карты
   ....
}

док sessionStorage
https://developer.mozilla.org/ru/docs/Web/API/Wind...
Вопрос: Хочу выйти на фрилас c WordPress, что учить?

Лучший ответ:
Это дурацкий вопрос.
У вас ничего не получится.

Худший ответ:
Учить WordPress, PHP, js, jQuery, HTML 5, css3.
Искать задачи немногим сложнее вашего текущего уровня и пытаться их решить самостоятельно, до головной боли.
Спрашивать и искать ответы, но, только после того, как сами изо всех сил постарались решить - копипаст не научит
Вопрос: Можно ли настроить оповещение о выходе из строя диска в raid 1?

Лучший ответ:
Можно

Худший ответ:
https://interface31.ru/tech_it/2013/12/ubuntu-serv...
https://howitmake.ru/blog/ubuntu/97.html
Да вообще гугл кучу ответов даёт
Если винда, то всё сложнее - надо чекать системный журнал на наличие ошибки гугл тоже даёт несколько ссылок
https://superuser.com/questions/91933/windows-soft...
Вопрос: Пошаговый калькулятор на С#?

Лучший ответ:
Один из вариантов решения:
Превратить поток символов в поток лексем (лексема - это NUMBER , OPERATION , OPEN_BRACKET,  CLOSE_BRACKET).
Затем по одной лексеме складываем в стек.
После очередной лексемы проверяем: можно ли три верхних лексемы заменить на одну по правилам:
NUMBER OPERATION NUMBER -> NUMBER
OPEN_BRACKET NUMBER CLOSE_BRACKET -> NUMBER.
Если можно - заменяем.
Если замена проведена, проверяем по правилам заново.
При замене выводим содержимое стека и оставшиеся лексемы.
Выполняем пока не закончатся лексемы, а в стеке не останется одна лексема типа NUMBER.

Худший ответ:
Один из вариантов решения:
Превратить поток символов в поток лексем (лексема - это NUMBER , OPERATION , OPEN_BRACKET,  CLOSE_BRACKET).
Затем по одной лексеме складываем в стек.
После очередной лексемы проверяем: можно ли три верхних лексемы заменить на одну по правилам:
NUMBER OPERATION NUMBER -> NUMBER
OPEN_BRACKET NUMBER CLOSE_BRACKET -> NUMBER.
Если можно - заменяем.
Если замена проведена, проверяем по правилам заново.
При замене выводим содержимое стека и оставшиеся лексемы.
Выполняем пока не закончатся лексемы, а в стеке не останется одна лексема типа NUMBER.
Вопрос: Какую программу для скриншотов с онлайн-выгрузкой используете (Win10)?

Лучший ответ:
Попробуйте https://getsharex.com/ с выгрузкой на собственный хостинг. Точно не будет никакой рекламы.

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

Лучший ответ:
Можете, пожалуйста, объяснить как точно все это устроено в памяти?
Обычно это устроено так, что поля идут одно за другим в памяти. Но кроме размера у полей есть выравнивание. Например, uint32_t выравнивается на 4 байта, а uint64_t -- на 8. Поэтому между идущими подряд полями разного типа могут быть дырки.
В приведённом примере double -- поле с наибольшим выравниванием, выравнивание объекта будет на 8, поле c будет по смещению 0 в объекте, поле d -- по смещению 8, а поле i -- по смещению 16. Если иметь это в виду, то игры с указателями приобретают смысл.

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

Худший ответ:
если нет виртуальных методов, то можно считать что данные идут подряд. по сути тебе нужно правильно обратиться к нужному участку памяти. Почитай про выравнивание в памяти.
Вопрос: Перенос DHCP с Windows Server 2008R2 на 2016 — можно ли?

Лучший ответ:
конечно можно https://support.microsoft.com/ru-ru/help/281626/ho...

netsh dhcp server export c:\dhcp.txt all

Худший ответ:
конечно можно https://support.microsoft.com/ru-ru/help/281626/ho...

netsh dhcp server export c:\dhcp.txt all
Вопрос: Можно ли создать сайт загрузив движок WordPress на Google Drive?

Лучший ответ:
Что вы там курите? Google Drive - это сервис хранения, редактирования и синхронизации файлов. Это не хостинг с php.
Будут ли данные авторизации админов и пользователей доступны всем или это можно скрыть?  - серьёзные у вас там админы.

Худший ответ:
Нет. google drive облачное хранилище файлов. А для загрузки сайта на движке WP Вам необходим хостинг с поддержкой php mysql. есть бесплатные хостинги, можно погуглить выдаст тьму ссылок.
Вопрос: Как сделать, чтобы это ошибка не показывалось?

Лучший ответ:
Закрыть кавычку?

Худший ответ:
Отключить inline error?
https://forum.sublimetext.com/t/how-to-turn-off-th...
Вопрос: Как правильно добавлять фоновую картинку на страницу?

Лучший ответ:
Типа того: https://jsfiddle.net/yarkov_aleksei/z74cgm3v/4/
<footer>
  <div class="content">
   Тут контент и прочая ересь
  </div>
</footer>
footer {
  height: 150px;
  background-image: url(https://img.gazeta.ru/files3/649/13056649/smesha-pic4_zoom-1500x1500-92995.jpg);
  background-position: center;
}

.content {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ff0000;
  height: 100%;
}

Худший ответ:
.bg {
background : url ("путь");
backgound-size: cover ;
Вопрос: Почему отключение Fasttrack режет скорость?

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

Но сумрачный микротиковский гений решил, что форвардить траффик процом на коммутаторе - тоже норм, и начал толкать его как "L3-свич" хотя он таковым не является (все же под термином L3-свич чаще всего имеется ввиду устройство, способное маршрутизировать IP на свич-чипе, а не то, как сделано у Микротиков)

Fasttrack у микротиков в дефолте включен уже весьма давно, точно давнее появления CRS-серии домашних роутеров-переростков. И раньше оно помогало показывать роутерам с гигабитными портами и поганеньким ЦПУ почти-гигабитную скорость в стандартных NAT-сценариях, которые без него едва выдавали 200-300мбит (типа RB750G(R2)). 

Оно сильно помогает слабым процам выполнять NAT и сложные правила фильтра путем замены полного пути пакета по ядру системы (классификация, пачка пакетных фильтров, маршрутизация, очереди интерфейсов) на короткий FASTPATH-путь, который умеет кое-что (например, NAT/PAT). Естественно, при этом все, что не поддерживается самим FASTPATH - не работает. У других производителей мелких роутеров для этих целей свои хитрости, типа NAT Offload, который, в принципе, работает очень похожим образом.

В конце концов, никто и не обещал гигабитов роутинга на этой железке, на странице производителя указан роутинг при 25 правилах (что примерно соответствует одному правилу NAT-трансляции) - до 700мбит, а если добавить к этому очереди и еще с десяток кривых правил фаервола, то 150 мбит - вполне ожидаемый результат. Кстати, больше гигабита он в принципе, вообще ни при каких условиях не промаршрутизирует - там линк в ЦПУ от свич-чипа - 1 гбит.

В обычном свичинге он вполне выдаст положенные 25 гигабит. 

на некоторых моделях можно ограничивать скорость и без очередей, хардварными шейперами/полисерами на портах, которые не будут бить по производительности устройства в целом: https://wiki.mikrotik.com/wiki/Manual:CRS1xx/2xx_s... 
Естественно, точнее чем порт/хардварная очередь там нарезки не получится, но это вполне ожидаемо от бюджетного свича.

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

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

Когда оперативная память подешевела, появились стильные модные молодежные базы данных типа nosql. Которые делятся на тупо живущие в оперативе, то есть по сути не являющиеся базами данных вообще, а скорее кэширующими демонами, как например пример редис, и "документо-ориентированные" БД, которые тоже живут исключительно если только целиком помещаются в оперативе, как например Монго. Из-за принципа "храним всё как бог на душу положит", каждая запись содержит не только сами данные, но и их структуру - имена полей, вложенность, и пр. То есть если в реляционной БД ты просто смотришь на заголовок таблицы, и понимаешь, в какое поле тебе класть вот эти данные, то в no-sql ты перебираешь ВСЕ записи в поисках нужного поля. И все равно одни и те же данные в итоге хранятся в десятках разных полей. Ну и добавляет удобства ещё то, что поскольку все имена полей хранятся вместе с записями, то сообразительные разработчики для экономии памяти сокращают имена до одной-двух букв. Что конечно сильно облегчает работу с базой

Ну и есть еще специализированные БД, например хранящие данные не в строках, как реляционные, не в пампасах, как nosql, а в колонках, для быстрой агрегации. Например Кликхаус.

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

Худший ответ:
Посмотрите Seven Databases in Seven Weeks. Возможно, для старта окажется полезной.

Для более глубокого погружения можете посмотреть серию For Mere Mortals:
NoSQL for Mere Mortals | Database Design for Mere Mortals
Вопрос: Списки словари Странность или баг?

Лучший ответ:
Нельзя делать итерацию по списку и одновременно удалять элементы. Делайте итерацию по копии и удаляйте из исходного массива.
for element in geo_logs[:]:

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

Попробуйте не менять исходный список, а писать в новый — всё должно заработать.