Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Json decode не пропускает цифры в объектах?

Лучший ответ:
Проблема не в JSON, чего-то вы не то делаете, о чем говорите, всё отлично работает:var_dump(json_decode('{"1337":{"Id":"20824","Url":"/coins/1337/overview","ImageUrl":"/media/350976/1337.png","Name":"1337","CoinName":"1337","FullName":"1337 (1337)","Algorithm":"X13","ProofType":"PoW/PoS","FullyPremined":"0","TotalCoinSupply":"314159265359","PreMinedValue":"2353115.7216","TotalCoinsFreeFloat":"N/A","SortOrder":"577"}}'));class stdClass#2 (1) {
  public $1337 =>
  class stdClass#1 (13) {
    public $Id =>
    string(5) "20824"
    public $Url =>
    string(20) "/coins/1337/overview"
    public $ImageUrl =>
    string(22) "/media/350976/1337.png"
    public $Name =>
    string(4) "1337"
    public $CoinName =>
    string(4) "1337"
    public $FullName =>
    string(11) "1337 (1337)"
    public $Algorithm =>
    string(3) "X13"
    public $ProofType =>
    string(7) "PoW/PoS"
    public $FullyPremined =>
    string(1) "0"
    public $TotalCoinSupply =>
    string(12) "314159265359"
    public $PreMinedValue =>
    string(12) "2353115.7216"
    public $TotalCoinsFreeFloat =>
    string(3) "N/A"
    public $SortOrder =>
    string(3) "577"
  }
}var_dump(json_decode('{"1337":{"Id":"20824","Url":"/coins/1337/overview","ImageUrl":"/media/350976/1337.png","Name":"1337","CoinName":"1337","FullName":"1337 (1337)","Algorithm":"X13","ProofType":"PoW/PoS","FullyPremined":"0","TotalCoinSupply":"314159265359","PreMinedValue":"2353115.7216","TotalCoinsFreeFloat":"N/A","SortOrder":"577"}}', true));array(1) {
  [1337] =>
  array(13) {
    'Id' =>
    string(5) "20824"
    'Url' =>
    string(20) "/coins/1337/overview"
    'ImageUrl' =>
    string(22) "/media/350976/1337.png"
    'Name' =>
    string(4) "1337"
    'CoinName' =>
    string(4) "1337"
    'FullName' =>
    string(11) "1337 (1337)"
    'Algorithm' =>
    string(3) "X13"
    'ProofType' =>
    string(7) "PoW/PoS"
    'FullyPremined' =>
    string(1) "0"
    'TotalCoinSupply' =>
    string(12) "314159265359"
    'PreMinedValue' =>
    string(12) "2353115.7216"
    'TotalCoinsFreeFloat' =>
    string(3) "N/A"
    'SortOrder' =>
    string(3) "577"
  }
}

Худший ответ:
Используйте ассоциативный массив, переменные не могут начинаться с цифр, поэтому объект после декода их не содержит.
php.net/manual/en/function.json-decode.php
assoc
Вопрос: Пролил жидкость на антенну вай фай модуля в ноутбуке, что делать?

Лучший ответ:
налить еще водки. должно заработать

Худший ответ:
Поменять wifi модуль.
Вопрос: Как делать backup в Windows 10?

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

Худший ответ:
В восьмерке есть "История файлов", в десятке тоже. Ей даешь внешний носитель, она туда бэкапит библиотеки (те папки, которым сопоставлена библиотека). В большинстве случаев этого хватает, если нужно бэкапить ещё какую-то папку, добавляешь в библиотеку "документы" и бэкапишь её тоже. Доставать файлы можно хоть проводником - лежат точные копии с датой в имени файла.
Вопрос: Будет ли нарушение авторских прав в android-приложении?

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

Худший ответ:
если у кого-то появилась мысль о нарушении прав .. то оно имеет место быть!
Вопрос: Как ответить на вопрос «что у меня используется на фронте»?

Лучший ответ:
Может это из тех, кто считает JS и jQuery разными языками программирования.

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

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

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

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

Худший ответ:
Прикол в том, что игрушка может не подменять указатель, а просто прятать. И рисовать уже спрайт в координатах курсора. Даже скорее всего так и есть.
Можете попробовать через winAPI вернуть отображение курсора - вроде бы это свойство окна. Но вот игровой монструозный никуда не денется.
Вопрос: Как правильно очистить память при работе со стеком (ADT)?

Лучший ответ:
А если комментарий //delete node; заменить на код, реально удаляющий ноду?
Ну и push() неправильно сделан. Хранить node надо как указатель Node*, в конструкторе инициализировать NULL, в push:tempNode->data = value;
tempNode->next = node;
node = tempNode;

Худший ответ:
Рекомендую почитать про std::unique_ptr
Вот вариант на c++11#include <memory>

template<typename T>
class Stack{
public:
  Stack(std::size_t maxSize_): maxSize(maxSize_){}

  // Что происходит, когда стек пуст? Можно бросить исключение, или сделать как в std
  T pop(){
    // if (!tmp) throw ...
    auto tmp = std::move(head);
    // Обратите внимание, теперь head пуст
    head = std::move(tmp->next);
    // Теперь tmp->next пуст
    --size;
    return tmp->value;
  }

  bool push(T value){
    if (size+1 > maxSize)
      return false;

    // здесь может быть брошено исключение из-за нехватки памяти
    std::unique_ptr<Node> tmp(new Node(value));

    tmp->next = std::move(head);
    head = std::move(tmp);
    ++size;
    return true;
  }

private:
  struct Node{
    T value;
    std::unique_ptr<Node> next = nullptr;
    Node(T value_) noexcept
      : value(value_)
    { }
  };

  std::unique_ptr<Node> head = nullptr;
  std::size_t maxSize;
  std::size_t size = 0;
};
Вопрос: Кто использует такой подход в написании CSS?

Лучший ответ:
Совершенно нормальный подход. Пишу так же, пример:.footer {
    position: relative;
    background-color: @dark-grey-blue;
    color: @white;
    font-size: 12px;
    padding: 20px;
    box-sizing: border-box;

    @media @desktop {
        height: 200px;
        padding: 0;
    }

    &__text {
        display: block;
        text-align: center;

        @media @desktop {
            position: absolute;
            top: 75px;
            left: 15px;
            width: 250px;
            text-align: left;
        }
    }
}

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

Лучший ответ:
Вообщем моя цель - конечная цель стать профессионалом и устроится в хорошую контору.профи становятся после того проработают Х летА для этого мне надо знать - как правильно писать на php т.е. форматирование кода, ООП, синтаксис, паттерны, в чем писать - редакторы и т.д.форматирование гуглится или читается на офсайте
ооп - аналогично
паттерны нужны мидлам
на чем писать - на чем привычноПравильно - это как принято в серьезных организациях, стандарты. То есть понять не просто язык, а всю кухню.кухню узнаете при первом деплоеА не как сейчас делать так, а потом переделывать т.к. всё конечно работает, но так хорошие программисты не пишут.требования меняются быстро - нужно быть готовыв удалить весь свой и чужой код и написать его зановоА потом ещё все это приконнектить к Revision Control System, а их тоже немало.лидирующая cvs одна - gitРаз и навсегда - чтобы не забивать голову лишним и не тратить время.если вы думаете, что один раз что-то заучите и все, то так не бывает.
Уже нигде
Даже дворнику приходится знакомится с техникой и обучаться работе с ней
Учителя стоит выбирать по своему темпераменту и набору топиков, которые он вам предложит изучить

Худший ответ:
Сразу - ничего не бывает. Поставлена задача - решай. Красивый, правильный, производительный код производится так. Была задача - решил, потом возникла потребность доработать или так называемая ошибка - доработал+ отрефакторил, удовлетворяет всем ту - добавил в личную библиотеку, понадобилось решение аналогичной задачи - применил старую наработку. Других путей нет. Сфера огромное, подходов и решений ещё больше. Прими это брат. Иначе денег не заработаешь и продукт не выпустишь. Иссякнешь раньше.
Вопрос: Могли бы объяснить что такое квартиль и медианна?

Лучший ответ:
Это значит:
Нижние 25% работ — в диапазоне 50…130.
Следующие 25% — в диапазоне 130…150
Ещё 25% — в диапазоне 150…170
И верхние 25% работ — в диапазоне 170…500
То, что среднее выше медианы, обычно свидетельствует о том, что сверху у распределения «длинный хвост». Что и видно — целых 25% работ попадают в диапазон 170…500.

Худший ответ:
Если данные распределены не по нормальному закону распределению ( а они практически всегда так распределены, просто в одних случаях - близко к нормальному, а в других -  нет), то как раз среднее арифметическое есть малоинформативная величина, в отличии от медианы.
Наглядный пример:
Заработная плата по предприятию 
-$100, $110,$120,$130,$140,$150,$160,$170,$200,$250,$900
Среднее - 220,9. О чем она говорит? Ага средняя зарплата вполне достойная :-)
Медина - 150. Вполне понятно - половина людей получает меньше, вторая половина больше. 
Квартили - это разбиение выборки на четыре равные по количеству элементов в них части. 
Из ваших данных, кстати, видно, что они не очень-то нормальные.
Вопрос: Как добавить номер страницы в мета-тег страницы пагинации?

Лучший ответ:
Как делал бы я:1. Завёл бы в админке, в настройках модулей, в управлении структуры в секции «типы свойств» новое свойство:pagination_suffix2. В шаблоне компонента инициализировал бы это свойство:$APPLICATION->SetPageProperty( 'pagination_suffix', ' Страница zZz' );
Текст « Страница » по-правильному вынести в /lang/ файлы и тогда вызов предыдущей строки будет таким:$APPLICATION->SetPageProperty( 
		'pagination_suffix', 
		\Bitrix\Main\Localization\Loc::getMessage( 'PAGE_IN_BROWSER_TITLE' ) . 'zZz' 
	);
Шаблон:
— знает, какой номер страницы;
— избавляет нас от геморроя с отслеживанием PAGEN_1, PAGEN_2, PAGEN_3, ...
Номер страницы берём из $arResult[ 'NAV_RESULT' ]->NavNum;3. Вывод заголовка дополнил бы так:<title><?$APPLICATION->ShowTitle()?><?$APPLICATION->ShowProperty( 'pagination_suffix' )?></title>(!) Есть риск, что это шаблон компонента кешируется и потому первый вызов даст нам нумерацию страниц, а потом перестанет срабатывать SetPageProperty. Я выношу код из template.php в component_epilog.php (почти всегда уже так делаю) и так все вызовы не кешируются.
Чтобы пробросить arResult в component_epilog.php, нужно в result_modifier.php прописать:$this->__component->SetResultCacheKeys( arrary_keys( $arResult ) );
То есть у нас в папке с шаблоном компонента: 
• result_modifier.php (создаём если его нет) с пробросом переменных;
• template.php, в котором остаётся только голосование за композит $this->setFrameMode(true);
• component_epilog.php, где собственно вывод на экран и выполнение прописывания заголовков.

Худший ответ:
Давненько не писал на php, но вроде бы так<title><?
$APPLICATION->ShowTitle();
if (isset($_GET["PAGEN_1"]) and is_int($_GET["PAGEN_1"])) 
{
    echo "Страница ".$_GET["PAGEN_1"];
}
?></title>
Вопрос: Почему не работает transition для градиента?

Лучший ответ:
Градиенты не анимируются.
Есть  только такие варианты

Худший ответ:
Вроде все работает. Тест
Вопрос: Можно ли реализовать такой слайда через slick?

Лучший ответ:
kenwheeler.github.io/slick
Листайте до Slider Syncing

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

Лучший ответ:
Очень легко!
Сниппет: https://jsfiddle.net/je2xdL0z/9/
Думаю, иконки сами догадаетесь как разместить в меню :)

Худший ответ:
Градиент — элемент ::after с абсолютной позицией, залитый градиентном и opacity. 
Меню — вложенный элемент с display: none, который показывается при :hover на контейнере.
Вопрос: Как правильно организовать поддержку небольших веб-проектов: скорость реакции и биллинг мелких задач?

Лучший ответ:
Я думаю, поднять сайтик для учета тикетов с формочкой, тикет с формочки попадает сразу очередь, вам может падать письмо на мыло, в телеграм или смс на телефон, что удобнее. Расписали регламент для клиента - в какой срок отвечаете и так далее. Так сделано на миллионе сервисов, ничего нового тут придумать нельзя да и не зачем.
ПыСы. Можете для успокоения клиента поставить бота умного какого, чтобы на каждый тикет отвечал: "Ваш звонок очень важен для нас, вы 7561 в очереди". Это шутка. :-)

Худший ответ:
1. Отключите мессенджеры.
2. Для учёта тикетов используйте zendesk или аналог.
3. Для биллинга используйте ставку за единицу  времени на решение новой хотелки заказчика (понятно, что баги надо исправлять бесплатно). Заодно число хотелок уменьшится=) 
4. Чтобы недоверчивый заказчик не мучился, сколько ему в итоге платить - используйте manictime или timedoctor, которые логируют время и снимают скриншоты.
5. Заведите себе регламент закрытия тикетов и прописывайте его в договоре с заказчиком ещё на этапе первоначального сотрудничества.
Вопрос: Какой штукой можно программатор подключить к микроконтроллеру?

Лучший ответ:
USBasp это программатор для ВНУТИСХЕМНОГО!!! программирования. Т.е. предполагается, что ты будешь свой МК программировать внутри твоей схемы. Если не хочешь ставить лишний разъем на плату (а зря) сделай отдельную плату с панелькой и кварцем.
ЗЫ Ну почему вы ничего не читаете?!!!!!!!!!!

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

Лучший ответ:
Нет это нельзя определить, в этом и суть виртуалки. У меня на киви, например лежит 100 тыс. рублей, я выпускаю виртуалку, кладу на неё 10 и расплачиваюсь ей вот в таких подозрительных магазинах, которым непонятно зачем мой пластик нужен (вдруг они хотят передать данные хакерам?). Я без проблем расплачиваюсь этой картой, через 3 месяца она закрывается и перевыпускается. Т.е. по вашей логике вы будете блокировать людей которые действительно заботятся о своей безопасности за подозрительную активность ))

Худший ответ:
Можно использовать какой-нибудь BIN Checker
У виртуальных карт CARD LEVEL будет PREPAID и аналогичные
Можно посмотреть тут, например
Вопрос: Настройки nginx — редирект на www, как исключить циклический редирект?

Лучший ответ:
Никаких rewrite для редиректа с домена!server {
    listen       80;
    server_name  www.example.org;
    return       301 http://example.org$request_uri;
}
nginx.org/en/docs/http/converting_rewrite_rules.html

Худший ответ:
Потомучто это должны быть две разные секции конфига
1-я настроеный на mfxxx.ru и редирек на www.mfxxx.ru
2-я уже сам основной конфиг виртуалхоста www.mfxxx.ru
Вопрос: Какие сложности могут возникнуть при изучении Java после C#?

Лучший ответ:
типичные трудности изучения "следующего языка":
- лень
- прокрастинаяция
- увиливание
преимущества  изучения "следующего языка":
- ломка стереотипов и призм "первого языка"
- расширение программистского понимания вне рамок языков
в случае ява после шарпа (как и наоборот) и трудности, и бонусы минимальные. сами языки, ближе к друг другу, чем даже к C/C++, хотя оба их потомки. там больше проблем будет с окружениями и библиотеками - тут уже различия глобальные. вокруг каждого языка, собственная экосистема (.Net/Mono против JVM). при этом, эти экосистемы не пересекаются, и состоят в откровенной конкуренции. это имеет значение, когда уже подростаем до уровня готовности к реальному трудоустройству. но есть нюансик - на этом уровне, программист уже в состоянии без соплей, довольно быстро осваиваться в конкурентной экосистеме (понимая общие основные принципы)

Худший ответ:
типичные трудности изучения "следующего языка":
- лень
- прокрастинаяция
- увиливание
преимущества  изучения "следующего языка":
- ломка стереотипов и призм "первого языка"
- расширение программистского понимания вне рамок языков
в случае ява после шарпа (как и наоборот) и трудности, и бонусы минимальные. сами языки, ближе к друг другу, чем даже к C/C++, хотя оба их потомки. там больше проблем будет с окружениями и библиотеками - тут уже различия глобальные. вокруг каждого языка, собственная экосистема (.Net/Mono против JVM). при этом, эти экосистемы не пересекаются, и состоят в откровенной конкуренции. это имеет значение, когда уже подростаем до уровня готовности к реальному трудоустройству. но есть нюансик - на этом уровне, программист уже в состоянии без соплей, довольно быстро осваиваться в конкурентной экосистеме (понимая общие основные принципы)
Вопрос: Предикат EXISTS?

Лучший ответ:
Ну так вы же выбираете в exists по условию result = damaged что вы хотите чтобы он выводил?
А в целом смысл вообще непонятен, в ту же таблицу зачем делать такую выборку.
Тоже самое что и такой запрос получаетсяSELECT ship FROM Outcomes os
WHERE  result = 'damaged'

Худший ответ:
Select * from a inner join b on a.f=b.f where b.ff='aaa'
Exist работает так.
Вопрос: Где найти дизайнера-новичка, которому нужен реальный проект для портфолио?

Лучший ответ:
который будет работать и радовать людей.
Не будет.

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

Лучший ответ:
Закладки лучше изначально хранить в корзине... всё-равно настанет момент, когда нужное проще нагуглить заново ))
PS: Как в анекдоте "В жизни каждого мужчины, наступает момент, когда чистые носки проще купить" ))

Худший ответ:
Пользуюсь 2-мя:
1. atavi.com - встраивается в хром, классный вид, сортировка и настройки. 
2. Pins для MacOS купил за 10 баксов у них на сайте, вот это просто супер!!!
Вопрос: Как обеспечивается совершенно бесперебойная работа сервера?

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

Худший ответ:
Просто сервера в разных датацентрах
Вопрос: Возможно ли через «transition»?

Лучший ответ:
до авто - нельзя
люди извращаются с max-height
max-height: 0 -> max-height: 500px

Худший ответ:
можно) но придется поизвращаться с таймаутом в js) https://jsfiddle.net/jh6xcbd7/8/
Вопрос: Какую книгу выбрать для углубленного изучения C#?

Лучший ответ:
Это всё отличные книги.
У Скита показано как развивался язык C#, о чём думали его разработчики. Это даёт очень целостную картину. 
Албахари — один из лучших выборов, если надо разобраться с каким-то вопросом здесь и сейчас. Покрыты практически все темы. Естественно, где-то может не хватать глубины, зато всё чётко и практично.
Рихтер — классика. Там где не хватает глубины у Албахари, Рихтер её обеспечит. Здорово для "лёгкого" чтения перед сном, когда хочется что-то просто понять для себя.

Худший ответ:
Шилдта прочитал и огорчен.
Вопрос: Выравнивание по центру страницы, правильно-ли (Bootstrap 4)?

Лучший ответ:
Не знаю где Вы нашли .justify-content-center и .text-center в четвертой версии.
Работает .text-xs-center

Худший ответ:
даже я бы сказал просто text-center
Вопрос: Крестики нолики 5x5 с непобедимым искусственным интеллектом?

Лучший ответ:
Для крестиков-ноликов интеллект не нужен.

Худший ответ:
https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B5%D...
https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D0%BC%D...
Просто выберите для себя версию правил, а игруху с исходными кодами найдете на любую платформу
Есть еще турнир AI по гомоку
Вопрос: Ос для слабого пк для нормальной работы браузера и флеш-плеера?

Лучший ответ:
я бы испытал Debian с LXDE.
Debian = стабильность
LXDE = очень быстрая работа графического интерфейса, по сравнению с разожравшимся XFCE

Худший ответ:
Самое оптимальное решение - взять планшет и найти подобную игру в магазине Google Play, ибо флеш-игры будут тормозить и на мощном компьютере.
А из легковесного на текущий ноут: Ubuntu + XFCE. Либо если без переустановки, рекомендую попробовать Chromium - он быстрее работает на компьютерах, где мало графической памяти.
Вопрос: Можно ли не учить JavaScript?

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

Худший ответ:
Можно не учить, однако делать проекты самостоятельно будет тяжко, но можно пойти на работу и не писать на js. Ну и изучив пару других языков вы худо бедно сможете писать на js
Вопрос: Возможно такое создать, на FL не беруться?

Лучший ответ:
сделать можно
с учетом качества тз 20 тыр +хостинг

Худший ответ:
Возможно. Но как правильно пишут в комментариях - формулировки очень расплывчатые, есть риск скрытого функционала + не понятны ожидания по интерфейсу.
Если хотелок по удобству особых нет, то и за 20 кто-нибудь сделает.
Если хочется как в гугл-таблицах, то и 200к не много.
Вопрос: Радость дизайнера — боль верстальщика. Межбуквенные отступы — кернинг и трекинг. Как рассчитать их значения для css?

Лучший ответ:
body {
font-family: 'PT Sans Caption', sans-serif;
font-size: 11px;
line-height: 120%;
font-weight: normal;
text-decoration: underline;
letter-spacing: 0px;
font-style:normal;
}
Все остальное дизайнер пусть оставит себе.
Если же это какая-то единичная каллиграфия (1-2 слова), то возможен вариант вставки картинкой (пожалуй отдельная история).

Худший ответ:
Вообще все что описано - это исходное и заложено в шрифтах и их отображении на конкретных устройствах. По крайней мере исходно шрифты именно так и задумывались. То что требуется вмешательство в виде таких "подпорок" означает что авторы шрифта - накосячили... и скорее всего подпорки для одного dpi дадут антиэффект при другом. Аналогично - при масштабировании.
ps более явно это уже испытано в бумажной полиграфии с давних времен.
Вопрос: Для чего используют isset в if(isset($_POST['submit'])) {}?

Лучший ответ:
Как я понимаю, всё дело в том, что не всё то золото, блестит. И в вашей переменной не обязательно будет явный true. Переменная может существовать и с пустым значением или даже со значением false. Что вы будете делать тогда? Вот вам пример, который вроде бы показывает это. Вы только самостоятельно проверьте.$var_test = 0;
var_dump($var_test);
if($var_test){
	echo('Не сработает');
}

if(isset($var_test)){
	echo('Отработает');
}

Худший ответ:
Например для того, чтобы не использовать в скрипте не объявленных переменных и не существующих ключей массива.
Генератор для безопасного получниея $_POST $_REQUEST $_GET $_COOKIE по ссылке: blog.ivru.net/issetgen.php
Например вводим имя: traLaLa
Выбираем $_REQUEST
Значение по-умолчанию указываем: ""
И ставим флаг htmlspecialchars
Результат работы генератора:
$traLaLa = "";
if (isset($_REQUEST["traLaLa"])) {
  $traLaLa = htmlspecialchars($_REQUEST["traLaLa"]);
}