Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Yii2 activeRecord — joins — как грамотно получить результаты выборки?

Лучший ответ:
Добрый вечер.$query->id; // id post
$query->user->id; // id user

Худший ответ:
Если только id юзера, то $post->user_id
Если другие свойства юзера, то $post->user->name
Для оптимизации надо добавить with (не joinWith!). joinWith нужен только при where по связанной таблицы.
Вопрос: Очередной глупый вопрос. Как сделать свой файл конфиг?

Лучший ответ:
создаете файл config.php (название не принципиально)
в index.php, там где у вас идет html c header footer content body head
вставляете следующий код в самое начало файла:<?php
include 'config.php';
?>
<html>
<head>
  ...
Сам файл конфиг php имеет следующее содержание:<?php
$my_config = array(
  'company' => 'Hello world',
  'author' => 'Ivan Ivanov'
);
Далее в файле где подключали config.php через include.
В месте где нужно вывести значение из конфига:<?=$my_config['author']; ?>

Худший ответ:
include php или  json.txt или db
Вопрос: Буду ли проблемы при открытии ИП и привязке к нему старого акка Upwork?

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

Худший ответ:
однозначно старый если не хотите пожизненный бан
Вопрос: Монтирование RAID1?

Лучший ответ:
Создайте на рейде файловую систему и монтируйте как вам нужно. Если хотите перенести /home на рейд, то лучше почитать про эту процедуру подробнее в интернете, так как могут быть особенности.

Худший ответ:
> Хочу на райде примонтировать как /home, подкажите как сделать?
Забить автоподнятие массива в /etc/mdadm/mdadm.conf (mdadm --detail --scan /dev/md/0)
Отформатировать и прописать в /etc/fstab. Лучше по UUID (blkid)
Вопрос: Получение четного числа несколькими способами?

Лучший ответ:
Тут отсылка к банальной логике и методике доказательства/опровержения утверждений.
Любое число, в том числе и чётное можно представить как его сумму с нулём
n = n + 0
Поскольку 0 - число чётное, то для n ≠ 0 утверждение выполняется. Для нуля мы можем взять пару ненулевых чётных чисел с разным знаком
0 = n + (-n), n ≠ 0
Таким образом, для нуля утверждение также выполняется, следовательно оно истинно.

Худший ответ:
Верно. Способов несколько. Всего бесконечность минус 1:
Берём любое случайное целое. Умножаем на 2. Это первое чётное.
Проверяем, что результат не равен половине исходного числа – это единственное исключение.
Второе чётное – это из исходного вычесть первое.
Разница двух чётных – число чётное. Неравенство слагаемых мы гарантируем проверкой единственного случая выше.
Вопрос: Чем отличается jQuery от $?

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

Худший ответ:
Можно выключить $
https://api.jquery.com/jquery.noconflict/ In jQuery's case, $ is just an alias for jQuery
Вопрос: Каким образом подтверждается авторство изображений?

Лучший ответ:
Занимается рисованием для чего? Как хобби? Или для продажи? 
Размещены они в интернете? 
Если для продажи, - то или использовать готовые ресурсы для продажи изображений. (сам с этим не связан, то знаю что есть) - там все настроено как говорится само, само изображение на превью покрыто водяными знаками, а при покупке - отдается без них. Человек купил, вы получили деньги, сайт получил комиссию. 
Если имеете свой ресурс, где выкладываете изображения, - то можно самому реализовать такую схему,  на просмотр отдается, с водяными знаками + размер картинки хуже. При оплате - отдается полноценное изображение. 
В обоих случаях, нужно использовать лицензионное соглашение. В зависимости от того,что и как вы хотите. 
Если просто Изображения, расположены на сайте личном, просто для демонстрации - без цели заработка, - то достаточно, своего логотипа в углу.  И пометкой, для использования на своих ресурсах, обязательна ссылка на источник(если используется в коммерческих целях). 
и т д... Нюансов много, все зависит от ситуации.

Худший ответ:
Хм...так называемые водяные знаки, цифровые подписи, это все что пришло на ум по данной теме :)
Вопрос: Почему box-shadow в Safari на iOS отображается некорректно?

Лучший ответ:
Добавляйте значение альфа-канала вот так (можно без нуля):rgba(216, 46, 55, 0.35)
Я даже не уверен, что этот ваш код с процентами вообще валидный, потому что вижу такое написание впервые.Update. Код невалидный. Значение в процентах само по себе писать можно, но делается это так:rgba(216, 46, 55 / 35%)Ссылка на информацию с MDN.Update 2. Как правильно отметил RAX7, такой синтаксис, даже исправленный (со знаком процентов через черту), вообще не работает в IE, EDGE и Safari.

Худший ответ:
А еще проблема может быть в том, что Safari под Windows не обновлялся с 2012 года.
В данном случае рекомендую использовать цветовую палитру HEX, т.е. #d82e3759 и отдельно задавать CSS-стильopacity: .35;
Вопрос: Как сверстать данную таблицу адаптивно?

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

Худший ответ:
Согласен с GreatRash. Адаптивную верстку прежде всего так же должен продумывать дизайнер, которые рисует макет. Что касается адаптации данной таблицы, тоже надо посмотреть где у вас будет она располагаться. 
Прежде всего любую адаптивную верстку советую начинать с мета тега:<meta name="viewport" content="width=device-width">
Который будет определять начальную ширину экрана пользователя.
Рассчитайте проценты ширины блока в котором она будет находится, с учетом пейдингов. И добавьте пару медиа запросов, под разные разрешения.
Вопрос: Проверка реальности железа клиента зашедшего на сайт даже если потом заходит через эмулятор машины?

Лучший ответ:
гарантированно - никак.
Но вы можете попробовать использовать какие-то системы фингерпринтов
https://habrahabr.ru/company/oleg-bunin/blog/321294/
https://geektimes.ru/post/284604/
и что-то типа evercookie https://habrahabr.ru/post/104725/

Худший ответ:
На сайт могут заходить с ПК, потом сменить IP и зайти с эмулятора, и будет выглядеть будто это два разных человека. Такой ерундой мало кто страдает. Есть куча анонимайзеров, есть tor-браузер, есть ещё способы менять свой IP, которые намного проще и юзабельнее чем запуск эмулятора и попытка зайти с него.
Вопрос: Умирает диск, как перенести информацию?

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

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

Лучший ответ:
При клике на кастомную навигацию вызывать нужный метод (slickNext, slickPrev и т.д.)
Раздел "Methods" kenwheeler.github.io/slick

Худший ответ:
У него есть опция appendArrows, в которой можно указать класс блока, в который нужно запихнуть стрелки. И аналогичная для точек - appendDots.
Вопрос: Почему показывается уведомление о Cookie на сайтах?

Лучший ответ:
Зачем нужны предупреждения о использовании cookie?
Нужно ли уведомление о использовании куки?
Зачем сайты предупреждают про использование куки?
Почему на многих сайтах появилось уведомление об использовании cookies?
Нужно ли российским сайтам оповещать об использовании Cookies?
Есть ли требования к предупреждению о cookie?

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

Лучший ответ:
Добрый день.раздва
Это для начала, остальное в других статьях блога.
p.s. Организация переносимых модулейСвязи независимых модулей

Худший ответ:
Вопрос очень важный и сложный. На разбиение проекта на модули могут влиять и процессы в моделируемом бизнесе, и организационная структура команды разработки (см "Закон Конвея"). И если второе можно (потенциально) изменить по потребностям, то первое нужно как минимум выяснить. Возможности внесения изменений в бизнес-процессы ограничены, как правило, но в любом случае нужно понять фактическое состояние предметной области.
В последние годы получила развитие методика Event Storming. На эту тему уже есть много видео и даже книжка [наполовину] (https://leanpub.com/introducing_eventstorming). Ключевая идея в том, чтобы выяснить, что должно произойти до того, как мы попадём в то или иное известное состояние. Методика представляет особенный интерес в контексте микросервисов. Предложение oxidmod также имеет к этому непосредственное отношение.
Но кроме системного уровня, нужно также разбивать на модули отдельные компоненты, чтобы можно было их помещать в голове, тестировать и развивать независимо друг от друга. Здесь Вам поможет Гексагональная архитектура (которая также называется "Порты и адаптеры"). Эта концепция поможет разделить компонент на части, реализующие бизнес-функции и (по отдельности) внешние взаимодействия: с файловой системой, с БД, с HTTP клиентами-сервисами и др.
На ещё более низком уровне советую освоить 1) отделение чистых функций от эффектов и 2) функциональную композицию - это идеи из функционального программирования. Не знаю, как с ФП в PHP, но тут практикующие программисты PHP могут подсказать.
Вопрос: Почему при посещении сайта с мобильного телефона не прокрутить вправо-влево?

Лучший ответ:
Там написано это:<body scroll="no" style="margin:0px;overflow:hidden" dir="ltr" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" border="0">
Т.е. прокрутка убрана. 
И для мобильных поставьте правильный meta viewport<meta name="viewport" content="width=device-width, height=device-height">

Худший ответ:
c2n.me/3FEiqtP - удалить
Вопрос: Стоит ли регистрировать домен название которого совпадает с названием фильма?

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

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

Лучший ответ:
Я не могу раскрывать свои источники инфы - иначе я буду не конкурентным

Худший ответ:
Можно еще reddit добавить как агрегатор.
Вопрос: Почему Windows загружается с Windows Boot Manager, а не с SSD?

Лучший ответ:
Почему Windows загружается с Windows Boot Manager, а не с SSD?Это невозможно. Windows Boot Manager это программа, которая запускает Windows, хранится эта программа, на диске, сама Windows тоже на диске.  всё работает отлично, но тот факт, что bios не распознает, что у меня стоит SSDВы вероятно что-то путаете.
Если bios не распознает диск, то вы никак не сможете поставить на него систему. Если же вы поставили на него систему, значит распознает.ноутбук стал работать более шумно, при сёрфинге иногда куллер работает слишком сильно Диски на кулер никак не влияют. Смотрите кулер.Возможно SSD с ос установленны не правильно?Возможно. Но проверить очень просто. Если ОС загружается значит все установлено правильно.Режим AHCI включён на уровне Windows (в bios функции таковой нет). Режим AHCI включается в bios, в Windows вы можете просто добавить драйвера для работы с ним.
Ноутбук у вас свежий, он скорее всего банально не поддерживает старые интерфейсы, поэтому и выбора нет. Там только AHCI

Худший ответ:
Скрины без установочной флешки:
Вопрос: Как открыть изображение из таблицы Postgresql?

Лучший ответ:
Библиотека Pillow тебе в помощь:$ pip install Pillowfrom PIL import Image
import io

image_data = ... # байты картинки
image = Image.open(io.BytesIO(image_data))
image.show()

Худший ответ:
1. Разберись, что такое байты
2. Не храни фотографии в БД. Потому что
3. Далеко тебе до "искать похожие", если ты такие элементарные вещи не понимаешь
Вопрос: То, как быстро будет работать программа или игра зависит от Винды?

Лучший ответ:
Просто надо не засирать ОС. И не надо выдумывать велосипеды.

Худший ответ:
То, как быстро будет работать программа или игра зависит от Винды?Да, медленная работа системы может замедлить или остановить выполнение программы.Как пример, сейчас ОС уже много времени и игры, которые раньше летали, могут чутка подвисать.Это потому, что в вашей системе сотни программ висят в автозапуске и работают в фоне. Может и антивирус  установлен - вообще песня.И когда у нас несколько ОС, то общий диск, который не предназначен под ОС общий для всех и можно из любой ОС будет смотреть фильмы из одной папки с условно диска D?Да.
Вопрос: Сохранение данных с клиента на сервер на Ruby?

Лучший ответ:
Отображение формы клиенту, GETКлиент заполняет форму и отправляет запрос, POSTсервер обрабатывает параметры с формы и выводит результат в другой странице. Ждёт "дальнейших указаний" от пользователя (опционально).
1. Установка минималистичного фреймворка SinatraRbgem install sinatra
2. Файл Gemfile в корне проектаsource 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
#gem 'haml'
#gem 'sqlite3'
и выполняем в командной строке командуbundle install
(gem bundler - управление зависимостями gem -  должен быть заранее установлен)
3. Файл config.ru в корне проекта# config.ru (run with rackup)
require 'rubygems'
require 'bundler/setup'

Bundler.require

require './myapp.rb'
run Sinatra::Application
4. Файл myapp.rb в корне проектаrequire 'sinatra'

get '/' do
  erb :index # Отобразить форму по пути views/index.erb. Erb - это код HTML с вкраплениями кода на Ruby
end

post '/do_it'
  "Thank you, #{params['name']}!"
end
5. views/index.erb<form action="/do_it" method="post">
    <div>
        <label for="name">Your Name:</label><br>
        <input type="text" name="name"><br>
    </div>
    <button type="submit">Submit</button>
</form>
ДополнительноAccessing the Request Object
Для работы с СУБД есть ещё простой гем DataMapper

Худший ответ:
Отсюда начните
https://gist.github.com/markbates/4240848
Rack это нижний уровень, на котором построены все web-фреймворки на Ruby.
Вопрос: Какой смысл в разделе наша команда на сайтах веб студий?

Лучший ответ:
Это маленький, но элемент подтверждения и снятия сомнений, когда на сайте такого нет -- перед тобой образ текста, когда видишь фото -- представляешь в голове, как несколько человек сидят и можешь вообразить, как программист программирует, менеджер руководит, дизайнер проектирует... без этого -- фантазия может не заработать
Также и в тексте желательно не писать "Создание веб-сайтов" -- нет представлений и фантазий (даже если добавить прилагательных СУПЕР ПУПЕР, СОВРЕМЕННЫХ и т.д...),
а вот "Мы дизайнеры рисуем дизайн интернет-магазина, в это время наши программисты пишут весь код с нужнйо вам логикой, тестировщики тестят ваш сайт на разных устройствах, мы пишем вместе с вами контент и рекламируем в соцсетях" сразу в голове рисует понятную картинку, тк текст из глаголов... а фото еще сильнее
как-то так -- четкая понятная картинка в голове у клиента, фото легче представить, чем слова

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

Лучший ответ:
Можно обзвонить фирмы которые покупают (в поисковике полно фирм ruskupka.ru продать-сервер.рф skupka-server.ru итп)
Если цена не устраивает то повесите на барахолки (авито, юла, из рук в руки)
Не забудьте сделать хорошие фотографии, краткое но емкое описание.
При выставлении укажите реальную, не завышенную цену. Если не знаете сколько он может стоит можете посоветоваться с фирмами скупщиками. Не устанавливайте цену продажи пустой (отсутствие цены отпугнет покупателей, так как они подумают что цена завышенная).
Следите за актуальностью объявления, снижайте цены по немного, в среднем 10-20% от ее цены каждую неделю.

Худший ответ:
На авито, конечно.
Вон, сейчас 17641 серверов в продаже по всей РФ, чем ваш хуже? Его тоже продают  =)
Вопрос: Зачем нужны статусы модерации юзера если есть роли?

Лучший ответ:
Статус пользователя это не то же самое что и пермишены. Это ограничения другого рода. Возможно, вы сделаете суперадмина а потом деактивируете его при помощи статуса. Несмотря на то что все пермиссии остались, зайти под ним никто не сможет. А потом надо будет что-то глянуть от суперадмина и вы консольной командой его включите обратно. 
Тогда как пермиссии отображают обычный сценарий работы. Это разъяснения, кому, что и где можно делать. А раз так, иерархия таких прав может настраиваться долго и тщательным образом для каждого юзера. 
И потом, если появились подозрения что пользователь мошенник, вы просто отключаете его профиль, проверяете, а потом снова включаете его. Деактивация при помощи пермиссий это болезненно.

Худший ответ:
Думаю что при наличии ролей, отдельно хранить признак модерации не нужно, так как может быть роль "новый юзер", "юзер", "админ", "забаненный юзер" и т.д. Это позволяет оставить один механизм фильтрации доступа на базе ролей и не лепить сверху еще проверку статуса, да и с точки зрения оптимального хранения в БД, раз уж есть RBAC, зачем еще 1 столбец в таблице юзер или даже отдельная таблица?
Я думаю это рудимент пришедший с доООПшных систем. Многие просто так привыкли и тянут за собой это. Или же RBAC часто ставится не сразу и получается вначале система с контролем доступа по статусу, а потом сверху прикручивают rbac, а статус оставляют.
Вопрос: Почему cron не отправляет http запрос?

Лучший ответ:
создайте command.sh и вызывайте * * * * * bash /root/command.sh

Худший ответ:
Попробуй через консольный браузер lynx
Вопрос: Как правильно написать парсер?

Лучший ответ:
Зачем парсер когда есть API?

Худший ответ:
Чтобы работать через прокси - гуглите "Прокси лист", найдете понравившийся вам список публичных проксей. Далее гуглите "curl через прокси php" - посмотрите как работать с проксями через курл.
Вопрос: Как можно сделать меню так чтоб она прилипла при прокрутке только с JS?

Лучший ответ:
Сейчас есть классный position: sticky;

Худший ответ:
К примеру делаешь такую структуру:<div class="navbar">
	<div class="container">
		111
	</div>
</div>
и фиксируешь .navbar
т.е. задавая ему width: 100%; контейнер внутри также останется как был.
z -index да. нужно, если не хочешь чтобы твое меню при прокрутке потом уходило на задний план на каком-то элементе страницы
Вопрос: Как найти вероятность?

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

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

Лучший ответ:
объект не гарантирует порядок ключейconst obj = {}

obj['z'] = {}
obj['a'] = {}
obj['b'] = {}

for (var property in obj) {
    if (obj.hasOwnProperty(property)) {
        console.log(property) // "z" "a" "b"
    }
}

obj['1'] = {}
obj['0'] = {}
for (var property in obj) {
    if (obj.hasOwnProperty(property)) {
        console.log(property) // "0" "1" "z" "a" "b"
    }
}
если вам важна упорядоченность, используйте массивы или Mapconst map = new Map()

map.set('z', {})
map.set('a', {})
map.set('b', {})
map.forEach((val, key) => {
  console.log(key) // "z" "a" "b"
})

map.set('1', {})
map.set('0', {})
map.forEach((val, key) => {
  console.log(key) // "z" "a" "b" "1" "0"
})

Худший ответ:
Можно и в алфавитном порядке ключи объекта перебирать, но сам он их сортировать не обязан по спецификации. Хотя некоторые броузеры и сортируют.var o = {a:1, d:4, b:2, c:3};
Object.keys(o);
// Array(4) [ "a", "d", "b", "c" ]

var o = {a:1, d:4, b:2, c:3};
Object.keys(o).sort();
// Array(4) [ "a", "b", "c", "d" ]
Вопрос: Как прописать исключения в коде, который запрещает копирование текста?

Лучший ответ:
Нельзя запретить копирование текста с сайта. Если я захочу, я его скопирую.

Худший ответ:
Не проще user-select: none использовать?
Вопрос: Плохо добивает Wi-Fi — как усилить?

Лучший ответ:
Если ставить ретраслятор в номере - то вы усилите только СВОЙ сигнал. 
А получать будете такой же слабый.
Гораздо проще договориться с гостиницей о переселении вас в другой номер.

Худший ответ:
Будет ли NanoStation работать репитером, если у того роутера нет (или не включено) WDS? Работа репитера никак не зависит от наличия или отсутствия WDS
Если вам нужен именно репитер работающий по технологии WDS - разумеется WDS должен быть включен на первой точке.
Насчет NanoStation Loco m2 точно не знаю, вроде он умеет работать репитером только по WDS.Какой именно прибор посоветуете Микротик, там можно репитер настроить как угодно.И самое главное - вы уверены что репитер поможет?
Для начала надо посмотреть что твориться в эфире, какой уровень сигнала от точки доступа.
Вопрос: Найти и заменить php из массива?

Лучший ответ:
sprintf, vsprintf
Только вместо ? Используйте %s

Худший ответ:
$result = str_replace(array('1', '2'), array('столе', 'яблоко'), 'На 1 лежит 2.');
Вопрос: Какой размер памяти видит один слот в HP ProLiant Dl380 G7?

Лучший ответ:
www.hp.com/ctg/Manual/c02159833.pdf  48 стр 
The following table lists the maximum memory configuration possible with 8-GB RDIMMs

Худший ответ:
www.hp.com/ctg/Manual/c02159833.pdf  48 стр 
The following table lists the maximum memory configuration possible with 8-GB RDIMMs
Вопрос: Возможна ли такая защита от ddos?

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

Худший ответ:
Так часто и делают, или на уровне кода или iptables
Вопрос: Render на стороне сервера или клиента. для AJAX ответа?

Лучший ответ:
Во 2 способе плохо то, что если вам эти данные нужно будет отправить ещё куда нибудь, то придётся переделывать весь рендер. Первый способ универсален. Получили данные и делайте уже что хотите с ними.

Худший ответ:
Первый способ правильнее в том плане что он универсальнее. Кроме того смотрите понадобятся ли вам дополнительно в ответе какие-то управляющие данные (к примеру количество, лимит, оффсет, фильтры какие-то). Если это есть то лучше заморочиться и передавать JSON какой-нибудь а обрабатывать его на JS.
Вопрос: Как на CSS сделать адаптивный круг?

Лучший ответ:
div h4 {
    
    background: #009688;
    position: relative;
    display: inline-block;
    width: 100%;
    height: 0;
    padding: 50% 0;
    border-radius: 50%;
}
.outsideCircl{
  height:30%;
}
Создай див вокруг h4 и этому диву уже ширину задавай,а круг внутри него будет адаптивным

Худший ответ:
У вас изначально width / height - разные, поэтому в частном случае вы просто подогнали круг под пропорции монитора. У круга ширина и высота (условные, если вписать его в квадрат) должны быть одинаковы.