Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Есть ли программа для переназначения клавиш от клавиатуры подключённой к определённому USB разъёму?

Лучший ответ:
Раньше, ещё во времена win 98, клавиатуры продавались с так называемыми Мультимедийными кнопками, и к таким клавиатурам обязательно шёл диск с драйверами для корректной обработки этих кнопок. Никто вам не мешает сейчас накидать простенький драйвер, это не сложно (по крайней мере под win xp было несложно лет 12 назад, а под Linux ещё проще), драйвер можно привязать либо к конкретной клавиатуре, либо к контроллеру usb.

Худший ответ:
перехватчики наеврное поздно перехватывают - не определить какая клавиатура. 
думаю выход или использовать ардуинку в качестве посредника 
или зажать на второй клаве навсегда неск кнопок - модификаторов ctrl shift alt win тогда нажатие кнопки будет всегда комбинацией с ними.
Вопрос: Как осваивать новые технологии и одновременно выживать(работать)?

Лучший ответ:
аддерол + ладастен

Худший ответ:
но обычно я каждый день занят и под конец дня уже голова не варит.
Зато не на дядю!
Лучший подход - "тайм-менеджмент", что в переводе с планктоньего - "управление временем". Распланируйте рабочий день, чётко опишите - вот с 8 до 10 я работаю, в 10 перерыв на 15 минут, потом работаю до 12. в 12 обедаю, в 12:30 курю мануалы до 14 часов по строго определённым темам.
Главное - придерживаться тактики.
Вопрос: Как переписать данный кусок кода под BASH?

Лучший ответ:
Попробуйте собрать конструкцию из find и xargs, в этом случае цикл в явном виде не требуется.
примеров навалом: https://www.google.com/search?q=find+xargs
Если этого окажется недостаточно, то можно добавить awk, будет сложнее, но возможности широчайшие.

Худший ответ:
на пальцах объясни , что именно надо,
думаю это решае решает finde+ xargs{}
Вопрос: ACF или carbon fields?

Лучший ответ:
По поводу, циклов и прочего, вам ответили выше верно, в PRO . версии это есть. 
Поповоду Polylang - спрошу без укора, но вы пытались в гугле это глянуть? 
1 запрос - первый результат выдал мне это - https://polylang.pro/doc/working-with-acf-pro/
Работоспособность не проверял.

Худший ответ:
а Polylang как совместить ?
Вопрос: Тема диплома (вкр) по иб в вебе?

Лучший ответ:
"Как обезопасить веб от бездарных студентов, которые не могут придумать тему после 4-х лет обучения".

UPD: ТС уговорил-таки дать тему: "Использование уязвимостей JS-движка и Google Chrome, позволяющих выйти за пределы песочницы браузера с удалённым выполнением произвольного кода на компьютере пользователя".

Худший ответ:
Как защитить сайт от SQL-инъекций, CSRF, DOS, XSS
Вопрос: Как работает математика? Какие разделы обязательны к изучению для физики?

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

Физика работает иначе - есть законы природы, их потихоньку открывают и уточняют. Она работает экспериментально. Многие вычисления в физике могут приближаться по точности к математике, но всегда есть определенный предел, за которым непонятно как считать, потому что работать приходится не с заранее придуманными сущностями, а с реальными вещами, глубокую суть которых можно познавать вечно.

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

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

Лучший ответ:
Обычная проблема. Для больших файлов используется XMLReader, а не SimpleXML.
Он не пытается пережевать весь файл сразу, а читает его построчно.

Худший ответ:
 3) полученные объекты превращал в массив с помощью конструкции json_decode(json_encode(<объект из шага 2>), true), именно этот пункт забирает очень много производительности по оперативке.ваша проблема тут!

Зачем вы это делаете? ассоциативные массивы объективно медленнее чем работа с объектами, и даже если надо, всегда можно на конкретном уровне написать (array)$obj и работать с уже массивом полей объекта, так же foreach прекрасно работает с полями объекта как с элементами массива.

p.s. и самое главное, не работайте на сайте с xml, преобразуйте данные в более удобный для php вид, к примеру serialize или даже var_export (делает код php инициализирующий массив, его можно просто include или eval), делайте это в момент загрузки xml файла на сайте админом, а уже при работе с данными подгружайте файл удобным способом.

Ну и классика - данные нужно хранить в базе данных (загружать медленнее но зато работать быстрее всего)
Вопрос: Курс по Vue.js с тяжелым проектом?

Лучший ответ:
Ситуация такова, что устроился в компанию...

Вы сейчас проходите самый лучший курс. Мало того, вам за это еще и платят!

Худший ответ:
Приветствую!
Курс не подскажу, но поделюсь опытом.

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

Дальше. Каждое большое приложение состоит из маленьких приложений. Работая над какой-то частью своего большого приложения, вы пишите или редактируете какой-то модуль, отдельное приложение. Оно может быть (и будет) связано с другими так или иначе. Вам нужно понять с чем оно связано: от кого зависит, кто зависит от него. Далее, понять тип и характер этих связей. Если его убрать, то что сломается и на сколько сильно? Когда вы это поймете, то уже будет гораздо проще понять, что делает этот модуль и как он это делает. Вот просто берете имя компонента и поиском по файлам ищете, потом читаете. Никакой магии.
Даже если у вас компоненты-спагетти, они ведь состоят из логических блоков. Каждый блок тоже приложение, верно? У него есть связи с другими, он что-то делает, как-то это делает.

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

Лучший ответ:
Геометрическая прогрессия

Худший ответ:
$b = 300;
for ($i = 0; $i < 200; $i++) {
    $b = $b*20/100;
    echo $b;
}
Так что-ли?
Вопрос: Как понять что ты джун?

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

В трудовом договоре написан грейд, соответствующий джунскому уровню.
Ты ходишь за помощью к мидлам и они перепроверяют твою работу.
Тебя не пытаются переманить другие компании.
У тебя стажа меньше трёх лет.


Худший ответ:
Подскажите пожалуйста, как понять что ты уже джун? Язык программирование - javascript 
Если все задачи которые вы решаете на работе не выходят за рамки - создай компонент > пуш на codereview > перепиши компонент правильно > пуш > в прод.

Если же вы на работе еще год не отработали и просто сидите дома и ищите работы, то вы даже не джун, т.к джун это разработчик с опытом коммерческой разработки от года.
Вопрос: Не запускается PhpStorm 2020.2.3 на Windows 10. Как исправить?

Лучший ответ:
Не знаю куда именно отнести свой вариант, но кажется по названию эта ветка самая подходящая, поэтому напишу здесь, вдруг кому пригодится) Смотрите, переустанавливал несколько раз phpstorm от 2019.3.3 до 2021.2.3. Когда прообновлялся до 2021.2.3 перестали запускаться версии после 2020.n.n. Соответственно все 2019.n.n.  и 2020.n.n. - работали, а 2021.n.n. - не работали. Гуглил гуглил, ничего не помогало из предложеных вариантов, как и переустановки с вычисткой реестра и перезагрузками, затем решил начать переименовывать все папки JetBrains из User\AppData  и спустя две минуты и такой-то матери я нашёл эту(и) паку(и) которые создавали помеху при запуске. Оказалось всё что нужно было сделать, это удалить: "C:\Users\User\AppData\Roaming\JetBrains\PhpStorm2021.1"
"C:\Users\User\AppData\Roaming\JetBrains\PhpStorm2021.2"
Потом запустить PhpStorm и он создаст их(эти удалённые папки) заново и всё заработает.  Надеюсь, это будет кому-то полезно. Потому что я ничего такого не нашёл при поиске

Худший ответ:
Нужно удалить все .exe.vmoptions файлы из папки с конфигурацией PhpStorm:
https://www.jetbrains.com/help/phpstorm/tuning-the...

Всё работает!
Вопрос: Как добавить плавности при открытии блока на JS?

Лучший ответ:
У вас же jq подключен к проекту, почему бы не сделать это на jq потратив минимум усилий ?

fadein
fadeout
show
hide
fadeToggle
toggle

https://jsfiddle.net/znhvu6sd/

Худший ответ:
У вас же jq подключен к проекту, почему бы не сделать это на jq потратив минимум усилий ?

fadein
fadeout
show
hide
fadeToggle
toggle

https://jsfiddle.net/znhvu6sd/
Вопрос: В чем ошибка мат формулы?

Лучший ответ:
В JS символ "%" значит не проценты

Худший ответ:
Да вроде как бы всё работает, нет?
( (a - b) / ( (a + b) / 2) ) * 2.00
Вопрос: SQL для .NET разработчика?

Лучший ответ:
Мартин Грабер - SQL для простых смертных

Худший ответ:
 JavaScript и фреймоворков 
learn.javascript.ru - база

Дока Vue - https://ru.vuejs.org/index.html
Книга - https://www.amazon.com/Building-Progressive-Web-Ap...
Вопрос: Как в Postgresql хранить координаты карт?

Лучший ответ:
Посмотрите в сторону PostGIS для геокоординат https://postgis.net/

Худший ответ:
Geosparital   Изучите эту тему там есть и точки и полигоны и многое другое
Вопрос: Есть у кого под рукой хороший краткий ман по настройке apache tomcat и/или nginx — база и включение ssl сертификатов для https?

Лучший ответ:
1. Деплоите ваше приложение в томкат.
2. Стандартным образом настраиваете проксирование в нгинксе.
3. С помощью certbot`а получаете сертификаты, добавляете HTTPS в конфиг нгинкса.

Все пункты обычно никаких трудностей не вызывают, благо многократно описаны в этих ваших инторнетах.

Худший ответ:
1. или использовать "подложку" в виде jwilder/nginx-proxy или traefik с модулем letsEncript
2. генерировать LE или покупать wildcard сертификаты.
Вопрос: Сравните Tornado и Sanic. Что лучше?

Лучший ответ:
С одной стороны Tornado - это фреймворк от Facebook, а с другой - это морально устаревший фреймворк из тех времён, когда кооперативная многозадачность в Python реализовывалась только генераторами. Sanic же - это попытки нонеймов сделать асинхронный Flask. И тот, и другой применимы, но ни тот, ни другой лично я использовать бы не стал для новых проектов.

Худший ответ:
оба хуже (с)

aiohttp освой для начала, потом легко сможешь в саники играть
Торнадо фсе
Вопрос: Wordpress. Возможно ли на плагине Elementor или подобное ему создать сайт по дизайну в Pixel Perfect?

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

А делают вообще очень по-разному - кто на конструкторах, кто на основе других тем, кто руками. Вообще если сразу имеется ввиду разработка сайта на Wordpress, то всё сразу по месту делается.

Т.н. «натяжка» осуществляется тогда, когда у вас уже был свёрстанный шаблон, но его вдруг решили адаптировать под Wordpress.

Худший ответ:
Как чаще всего создаются сайты на wordpress ?
На конструкторе ? или верстка и потом натяжка ?
Тиражные многофункциональные темы и конструкторы это оверхед и +100 к тормозам.
Вопрос: Как вставить элемент сразу в два места?

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

Создавайте два элемента. Можно клонировать существующий.

Худший ответ:
Метод cloneNode  позволяет клонировать элемент и получить его точную копию.
HTML:
<ul class="selector"></ul>
<ul class="selector"></ul>
JS:
const li = document.createElement('li');
li.innerHTML = 'test';
const lists = document.querySelectorAll('.selector');

lists.forEach(list => {
  list.append(li.cloneNode(true));
});
Вопрос: Где можно использовать горутины в Go?

Лучший ответ:
Самый простой пример - это HTTP сервер.
Когда к вам приходит HTTP запрос - создаётся горутина и каждый запрос спокойно обрабатывается, никто никого не ждёт. Т.е. сервер может обрабатывать параллельно несколько запросов как раз за счёт горутин. 

Фактически, почти во всех сетевых сервисах есть смысл использовать горутины для распараллеливания обработки запросов (кроме epoll, kqueue и т.п.)

Еще хороший пример.
Вам нужно сделать парсер Авито :)) или индесатор сайтов.
Т.е. задача сводится к тому, что нужно будет постоянно качать страницы с сайтов.
Если вы будете качать одну страницу за другой - вы будете очень долго качать.
А так вы можете сделать пул из нескольких горутин (как минимум по 1 на поток процессора) и получите параллельное скачивание страниц.

Для ускорения работы вычислений (параллельные вычисления) есть смысл использовать горутины только по 1 на поток процессора). Т.е. в случаях, когда у вас огромный объём данных и нужно максимально ускорить его обработку. Например у вас файл 100Гб, и 8 ядер в процессоре - вы можете разбить файл на 8 частей и параллельно эти части обработать (в самом простом варианте, в реальной жизни нужно будет просто по частям считывать новые данные и скармливать свободной горутине)

Еще когда нужно сделать чтобы какая нибудь задача выполнялась в "фоне".
Например периодическая очистка кеша/устаревший записей в базе.

Реальных примеров намного больше :)
В целом их есть смысл использовать там, где нужно параллельное выполнение какой либо задачи или разных задач параллельно :)

Худший ответ:
В основном для asyncIO, асинхронного ввода/вывода.
Вопрос: Как запомнить выбранный select на php или средствами jquery?

Лучший ответ:
После отправки у Вас в массиве $_GET будет выбранный пункт, от него и можно плясать

Худший ответ:
В общем разобрался, оказалось совсем не сложно. Просто в голове была каша, но изначально думал, что должно быть нечто похожее.
Вот код, как сделал:<select name='spaceSelect' onChange="spaceSelect(this.value)">
       <option value='Sdesk' <?php if($_GET['spaceSelect'] == 'Sdesk') {echo "selected";}?>>ServiceDesk</option>
       <option value='LOTUS' <?php if($_GET['spaceSelect'] == 'LOTUS') {echo "selected";}?>>Collaboration</option>
       <option value='EDTeam' <?php if($_GET['spaceSelect'] == 'EDTeam') {echo "selected";}?>>Enterprise Desktop Team</option>
       <option value='ISD' <?php if($_GET['spaceSelect'] == 'ISD') {echo "selected";}?>>Information Security Department</option>
       <option value='SD' <?php if($_GET['spaceSelect'] == 'SD') {echo "selected";}?>>SAS/DWH</option>
       <option value='DevOps' <?php if($_GET['spaceSelect'] == 'DevOps') {echo "selected";}?>>DevOps</option>
       <option value='FIM' <?php if($_GET['spaceSelect'] == 'FIM') {echo "selected";}?>>Identity Management</option>
       <option value='RA' <?php if($_GET['spaceSelect'] == 'RA') {echo "selected";}?>>Remote Access</option>
  </select>
Вопрос: Как быстро извлекать большие архивы на Windows?

Лучший ответ:
Использовать вместо стандартных zip папок - 7-zip.

Худший ответ:
500 Мб  архив извлекается больше часа?? Очень интересно... Скиньте  содержимое архива 
HDD проверяли?
Вопрос: За какое время с нуля до высокого уровня получится овладеть с++ если очень очень плотно изучать?

Лучший ответ:
21 день


Худший ответ:
Хочу очень конкретно заняться с++ что бы когда то там выйти на работу и нормас зарабатывать.
Нормас зарабатывать можно и на питоне.

сейчас с++ начал по чучуть знакомится (нравится).
Если нравится - изучай, но придётся очень плотно этим заниматься и набираться опыта на реальных проектах.
Займёт это явно не меньше времени, чем питон.
Вопрос: Как на Vue сделать такое выпадающее меню?

Лучший ответ:
Лучше посмотрите тут
https://vuejs.org/v2/examples/tree-view.html

Худший ответ:
Разобрался<ul>
        <li v-for="item in navList">
            <a :href="item.url" :class="item.cls" :title="item.name" @click="isOpen = !isOpen">{{ item.name }}
                <ul v-if="item.children" :class="{ isOpen }" class="dropdown">
                    <li v-for="{ url, name, index } in item.children" :key="index">
                        <a :href="url" :title="name">{{ name }}
                     </li>
                </ul>
             </a>
        </li>
    </ul>
Вопрос: Потрачу ли я время зря, продолжая учиться в ВУЗ'е, который мне не нравится?

Лучший ответ:
Учись и никого не слушай. Без диплома тебе будут закрыты дороги в более или менее серьезные организации.

Худший ответ:
здравствуйте, приехали.
А ты думал как? в школе глупые уроки, а в вузе тебе выдадут собственную лабораторию и миллион рублей для твоих исследовательских разработок?
откоси от армии, переведись на заочку. Учись в айти сам. Лучший вариант сейчас как и корку под подушкой заиметь, и научиться. Дистанционка не всю жизнь будет
Вопрос: Как сделать картинку героя поверх других слоёв, без использования absolute?

Лучший ответ:
Не совсем понятно, чем не устраивает position: absolute
"Герой" — это отдельный элемент. Соответственно разместить его поверх других элементов, кроме как через absolute невозможно!
Даже с использованием JS или JQ, под капотом все равно будет тот же absolute.

Если смущает выпадание элемента из родителя, то используйте overflow: hidden

.block {
  position: relative;
  overflow: hidden;
}
.block__hero {
  position: absolute;
}

Ах да! Еще можно использовать множественные фоны:
.block {
  background-image: url(hero.jpg), url(bg.jpg);
}

Худший ответ:
Только через absolute и z-index, через box-sizing: border-box. Либо уже через JQuery или JS.
Вопрос: Я правильно понимаю конструкцию php?

Лучший ответ:
нет, все абсолютно не так. для начала надо выучить терминологию. никакие функции с ключевым словом нью не вызываются. конструктор - это совершенно отдельная часть класса, к слову нью отношения не имеет. от метода объект не создают

Худший ответ:
Вы частично правильно понимаете, если начитались документации по php ниже версии 5.3. Там конструктором являлся метод (конструктор всегда метод, и быть может вы его в вопросе называете функцией), имеющий такое же название как и класс.
Вопрос: Какие YouTube каналы по Линукс вы смотрите?

Лучший ответ:
 Какие YouTube каналы по Линукс вы смотрите?
Никакие.

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

Лучший ответ:
7 баллов из 100. Я такого еще не встречал
Потому что это крупный бизнес. А не ИП или средний бизнес где основная логика - дрочь с баллами page speed insight.

Худший ответ:
я тоже офигиваю от этого

например авито ужасно тормозит и глючит
вконтакте ужасно глючный и не удобный

кажется что людям тупо наплевать на скорость и удобство
там нет человека который за это отвечает
Вопрос: Как укомплектовать Node + React приложение в общий Workspace?

Лучший ответ:
Чтобы создать все в одной папке, можно сделать следующим образом:
1. Написать фронтенд на react.
2. Написать бекенд на node.

После чего, собрать frontend с помощью webpack (он соберется в папку public, точно не помню).
Далее в node возвращать как статику эту папку : app.use(express.static('path.resolve(__dirname,'./public')))
Далее, я заливал на heroku и все работало.

Чтобы реализовать в двух папках, можно сделать так:
1. Написать фронтенд в одной папке.
2. Написать бекенд в другой.

Соединятся они будут по api - из приложения react шлете запросы на бекенд, получаете данные, работаете с ними:
BASE_URL = 'heroku.com/app/my-app-1233'
fetch(`${BASE_URL}/api/todos/1')

Размещаете отдельно фронетнд, отдельно бекенд.
Я размещал фронетенд на github-pages, бекенд на heroku.

Возможно, я где-то ошибаюсь, но суть точно такая.

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

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

Худший ответ:
Вот тут что-то похожее по описанию на то, о чём Вы говорите, но чисто гипотетически таких функций в браузере быть не должно из соображений безопасности. Иначе, возможны были бы например такие ситуации: пользователь заходит на какой-то сайт, сайт разворачивает браузер размера вдвое больше экрана (путём установки минимально возможных размеров вдвое больше разрешения монитора) и... например, начинает показывать рекламу. В общем, это была бы дыра в безопасности для браузера, довольно большая.
Вопрос: Можно ли делать image resize в lxc (proxmox ve) без остановки PostgreSQL?

Лучший ответ:
Может ли это как то повлиять на целостность СУБД?

Нет.

Каковая вероятность битой базы? 
или это штатный механизм?

Штатный, вероятность околонулевая, если уж очень страшно, то бекапы никто не отменял.

Худший ответ:
увеличение диска без проблем на лету
Вопрос: Чем классы отличаются от функций в python?

Лучший ответ:
Это вам надо основы объектно-ориентированного программирования (ООП) почитать (вообще, и применительно к Питону - в частности):
https://it-black.ru/osnovy-oop/
https://proglib.io/p/python-oop/
https://python-scripts.com/object-oriented-program...

Худший ответ:
Если коротко - различие в идеологии и подходе обработки данных.

Класс, в некотором роде - можно считать самостоятельным типом. Экземпляры класса, можно настроить так, чтобы вы могли складывать / умножать / делить / ... .

+ ООП, позволяет сократить объем и увеличить понятность кода (при его адекватном использовании).

Например, вы не можете записать в функцию данные и использовать вызов функции без аргументов ( на самом деле можно реализовать, но вы быстро откажетесь от этой идеи).
Вопрос: Можно ли пропускать непонятные темы по книге по python Марка Лутца?

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

Худший ответ:
Из описания на  Amazon:

Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today

Python 2.7 - не поддерживается с 1 января 2020
Новейшая версия Python 3 - 3.9.

Python 3.3 — 29 сентября 2012 года.

Я бы не рекомендовал эту книгу как лет 5 уже брать для изучения.
Вопрос: Совместное использование C++ и Golang: возможно ли, насколько удобно, применяли ли вы в проектах?

Лучший ответ:
С версии 1.2 можно вставки на c++, из кейсов где пришлось сталкиваться - делал вставки с вызовами SDK КриптоПро на С++, когда нужно было работать с квалифицированными ЭЦП в golang. Имхо делать это нужно только в специфических задачах, просто так - смысла в этом не вижу.

Худший ответ:
Я совместно использовал Delphi и Ada в одном процессе с помощью COM. Думаю, и в вашем случае это могло бы помочь. COM задаёт однозначно понимаемую политику владения объектами и прочую рутину.

просто смотрю на вакансии, что там требуют
Вакансии, конечно, расстраивают
Вопрос: Почему высота не работает?

Лучший ответ:
https://learn.javascript.ru/height-percent
Фиксится довольно просто - jsfiddle.net/9zxcn6wb

Худший ответ:
почему не срабатывает высота у wrap,По тому, что у родительского (по отношению к нему) элемента не задана высота. Проценты - это относительная величина, в данном случае, она будет равна 100% height родителя, а height у родителя не задан(а).
P.S. Если добавить родителю height: 100%;, думаю проблема решиться.