Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Админ на рабочем лэптопе запретил запуск любых exe-файлов. Как на него установить Anaconda или Winpython?

Лучший ответ:
Распакуйте на другом компе, перепакуйте в архив и принесите архивом.
А вообще, банальное "обратись к админу", потому что это не технический, а организационный вопрос.

Ведь если нужно по работе, то почему такой запрет? Мало ли что еще надо будет делать.

Худший ответ:
В виде архива поставляются "Embeddable" релизы, скачать можно на официальном сайте python:
https://www.python.org/ftp/python/3.8.2/python-3.8...
Вопрос: Как правильно прописать CSS?

Лучший ответ:
Просто через CSS врятле можно решить. С помощью JS'а просто вешаешь ивент на ховер и береш ближайший блок от этого елемента https://developer.mozilla.org/ru/docs/Web/API/Elem..., например .block1, дальше уже задаешь с помощью JSа стиль

Тоесть примерно так. Без всяких блок1, блок2, блокN, просто класс block
[...document.querySelectorAll('.item')].forEach(item => {
	item.addEventListener('mouseenter', function (e) {
	   e.target.closest('.block').style.background = '#000';
	});
	item.addEventListener('mouseleave', function (e) {
		e.target.closest('.block').style.background = '#fff';
	});
});
Я правда так и не понял почему бы просто на блок ховер не повесить, ну да ладно

Худший ответ:
Смысл тот-же Как на JS сделать смену цвета при наведении мышки?

Вешаешь класс на блок при наведении, дальше стилями уже как нравится.
Вопрос: Спор с другом что нет разницы как писать PHP код в HTML, перед HTML или после HTML. Кто прав?

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

Худший ответ:
Почитайте с другом о шаблоне проектирования MVC
Вопрос: Что означает выражение /some/ в JS?

Лучший ответ:
https://developer.mozilla.org/ru/docs/Web/JavaScri...
https://regex101.com/r/n9FwIg/2/

/echo (.+)/
"echo " + что угодно

Худший ответ:
.../echo (.+)/...

Регулярные выражения
Regxp
Введение: шаблоны и флаги
Вопрос: После обновления драйверов не заходит в игры что делать?

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

Худший ответ:
не по теме, "Озу: 2ГБ Windows 7x64". зачем...
Вопрос: Скоростная конкурентоспособная верстка: оптимальное кол-во мониторов/очки виртуальной реальности?

Лучший ответ:
Скоростная верстка подразумевает, что вы пишете непрерывно код, а потом мельком проверяете результат

Худший ответ:
2 монитора и alt+tab. Я иногда на 2 теряюсь, что будет на 3, не говоря уже на 4... Тут еще нужно понимать, какой размер мониторов. Если 3 24, еще может быть, 3 27, уже слишком много, угол поворота головы будет 120+- градусов. Если совсем уж так хочется, то можно посмотреть в сторону широких мониторов, не помню какое у них соотношение сторон, но помню что они высотой как 27 дюймов, шириной как два +-, на них вроде бы как может быть удобнее, не проверял правда.
Вопрос: Удобно ли разрабатывать GUI на Python для Windows в Linux системах?

Лучший ответ:
Сначала просто попробуй Линукс, потому что возможно ты 

Уже очень много лет хочу перейти на Linux и слезть с этой гребаной винды.

перехочешь, а потом уже решай возникшие проблемы

Худший ответ:
Переходи в чем проблемы? В линуксе потом поставишь виртуальную винду в виртуалбоксе и будешь там в неё испытывать свой софт
Вопрос: Что лучше для игр, raid0 из 2 hdd или все таки взять ssd?

Лучший ответ:
Для игр по скорости чтения лучше SSD
HDD в Raid0 лучше для записи/чтения больших файлов

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

Лучший ответ:
Честно я бы взял swiper по мне во первых он более гибкий в настройках, так же можно собрать слайдер только с нужными тебе модулями. Сделан на ваниле(относительный плюс - но все же) Ну и по мне у него куда меньше закидонов/приколов чем у слика.

Худший ответ:
Можешь еще owl-carousel посмотреть. Он на JQuery. 
Slick уже устарел. Прямо сейчас вспомнился один его баг. Есть там настройка responsive. Я указал breakpoint, например, 768. И в одном из режимов просмотра (Эмуляция мобильных устройств в браузере или просто обычный режим просмотра страниц в браузере) этот breakpoint срабатывает раньше / позже 768. Это, конечно, неприкольно.
Вопрос: Верно ли, что новичку лучше использовать Visual Studio, а не CLion?

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

Худший ответ:
Какой IDE вы будете пользоваться на начальном этапе нету разницы. Вам нужно разобраться в основных аспектах, желательно с использованием CLI, а IDE упрощает работу уже разработчикам, которые понимают все нюансы языка/компиляции/etc.
Вопрос: Почему значения всех свойств класса «затираются» в конструкторе?

Лучший ответ:
У вас ошибка
class Decoder{ 
    private $inputStr; 
    private $pos; 
    private $out; 
    private $length; 
     
    public function __construct(string $str) {
        $this->inputStr = $str;        
        $this->pos = 0; // Было $this->$pos
        $this->out = ''; // Было $this->$out
        $this->length = mb_strlen($str); // Было $this->$length
    }   
    public function decode(): string {
        return $this->out; // // Было $this->$out
    }    
}

В вашем случае $this->$length = mb_strlen($str);  => $this->null = mb_strlen($str);
Таким образом return $this->$out; => return $this->null // 6

Худший ответ:
включите вывод ошибок. у вас как минимум неверное обращение к свойствам (использование $ в имени).
Вопрос: Стоит ли покупать новый роутер?

Лучший ответ:
Wi-Fi всегда лучше тестировать в реальных условиях. Попросите у кого-нибудь из знакомых нормальный роутер, если есть возможность. А так, из описания ничего не понятно, даже то, 37 - это хорошо или плохо?

Худший ответ:
На расстоянии 5-6 метров и одной стены я получаю примерно 37 Mbps на загрузку и столько же на отдачу
Это хорошая скорость для ваших условий. Если хотите повысить её - купите ещё один роутер и поставьте его в режиме точки доступа в целевую комнату, подключив к основному кабелем. Ещё просканьте inssider-ом соседние сети и выберите наименее загруженный канал.
Вопрос: Что такое «Уровень абстракции» или «Слой абстракции»?

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

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

Ну и так далее.

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

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

Худший ответ:
Абстракция — буквально «отвлечение», игнорирование ненужных подробностей.

В программировании пример: вызов метода объекта. Известно, какие аргументы он ждёт, что вернёт в ответ. Но неизвестна и не важна внутренность, как именно это сделано. И можно заменить одну реализацию другой, если останутся теми же аргументы и результат. На этом уровне абстракции. 

В жизни все пользуются лифтами, всем известно, как – зашёл, нажал кнопку этажа, приехал. Лифты разных моделей, брендов, грузоподъёмностей, форм. На уровне абстракции пользователя это кабина с кнопками этажей. И не важно (абстрагируемся) как там что устроено за пределами кабинки. Нажимались бы кнопки и ехал бы лифт.

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

Лучший ответ:
"Крестики-нолики"/Tic-tac-toe

Худший ответ:
Тетрис. Питончик. Морской бой.
Вопрос: Javascript — асинхронный язык. Означает ли это, что мой код может выполниться «неправильно»?

Лучший ответ:
Операции выполняются последовательно.
Некоторые известные программисту выражения могут откладывать асинхронные личинки )
При этом сами выражения выполняются синхронно-последовательно и тут же за ними выполняются следующие строки. Но личинка асинхронности отложена и зреет! )let $some_elem = $('.some_elem');          // 1
$some_elem.addClass('some_class');         // 2
setTimeout(() => alert("Созрели!"), 1000); // 3 отложили
$('.some_class').remove();                 // 4
// этот код выполнился до конца и, казалось бы, делать больше нечего.

// ...через секунду сработал alert
Тут setTimeout() отрабатывает мгновенно-синхронно - его функция отложить личинку на через-секунду. Представьте, что setTimeout пушит функцию и её время в некий невидимый служебный массив движка JS. А движок заглядывает в этот массив по 100 раз в секунду, когда свободен, не занят выполнением кода, и смотрит, «есть чё?», что пора выполнить?
Сразу за отработавшим setTimeout() (но никакого alert ещё не случилось) выполняется следующая строка $('.some_class').remove();
Подробнее читайте про event loop.

Худший ответ:
javascript - 100% синхронный язык, пока вы не вызываете асинхронные функции, такие как SetTimeout, setInterval или Promise. Но даже порядок выполнения асинхронных функций, точнее порядок их запуска, предсказуем. В вашем случае все естественно будет выполняться в том порядке как написано, иначе это было бы полнейшим абсурдом.
Вопрос: Интерфейс для bash скриптов?

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

Худший ответ:
VSCode - бесплатный, куча плагинов для ускорения работы, подсветка синтаксиса, возможность работы с удаленным сервером. Терминал, каталоги, вкладки, редактор - все, что надо.
Вопрос: Как реализовать один и тот же header на 2ух разных темах wp?

Лучший ответ:
Реализовать также, как это сделано на 1-й теме

Худший ответ:
Если хотите избежать дублирование кода — реализуйте шапку в виде плагина.
Вопрос: Как сделать свою стартовую страницу в браузере?

Лучший ответ:
привет стивен
https://chrome.google.com/webstore/detail/momentum...
-> https://github.com/yinghang/chrome-momentum
google / custom home page

Худший ответ:
Пишите своё расширение для браузера
https://developer.chrome.com/extensions/override
https://paul.kinlan.me/creating-a-new-new-tab-page...
Вопрос: Kак правильно связать кнопку «Отправить» c полями и списком в Html5?

Лучший ответ:
Кнопка submit отправит все данные, у которых есть name. 
Но: 
1. Если у разных инпутов будет одинаковое name, то придет массив, а не отдельные значения. 
Для отдельных значений нужны разные name. 
2. Для кнопки отправки удобнее использовать button, а не input. Проще будет стилизовать.

Худший ответ:
Кнопка submit отправит все данные, у которых есть name. 
Но: 
1. Если у разных инпутов будет одинаковое name, то придет массив, а не отдельные значения. 
Для отдельных значений нужны разные name. 
2. Для кнопки отправки удобнее использовать button, а не input. Проще будет стилизовать.
Вопрос: Как ведет себя JOIN & WHERE?

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

Худший ответ:
хороший вопрос, заставил меня прочесть статью: https://bookflow.ru/10-prostyh-shagov-k-polnomu-po...
есть лексический порядок и есть логический
Мы пишем так: 
SELECT [ DISTINCT ]
FROM
WHERE
GROUP BY
HAVING
UNION
ORDER BY

а логика такая:

FROM
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
UNION
ORDER BY
Вопрос: Каким путем лучше пойти. Ставить сервер с панелью или вручную развернуть разработку?

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

если для одного/нескольких доменов, имхо проще самому. если умеешь конечно.

Худший ответ:
В панелях бывают косяки и дыры.
В самостоятельно настроенном тоже бывают косяки и дыры.
Но на проблему с панелью ты будешь смотреть, как баран, а с сервером, который настроил сам, сможешь разобраться и в другой раз сделаешь лучше.
Самостоятельное администрирование - это путь вверх, а панели - путь в никуда.
Вопрос: Каким способом сохранять игровые данные для Android/IOS?

Лучший ответ:
Берете все данные, которые вам нужно сохранить, загоняете в json/xml, и сохраняете в PlayerPrefs как строку.
Для оптимизации можете подробить на логические элементы.

Худший ответ:
Создайте свою структуру классов/списков итд для сохранения мира из обычных C# классов с публичными свойствами и и публичными пустыми конструкторами. Сохраните все свои данные в эту структуру и сериализуйте в файл. Для сериализации выберите любой из предоставленных ассетов для бинарных форматов и скормите ему ваши классы/списки:
https://assetstore.unity.com/search?q=bson или
https://assetstore.unity.com/search?q=messagepack
Хотя на самом деле JSON местами компактнее BSON, и его тоже можно использовать. JSON.NET неплох. Если нужна мультиплатформа то вот JSON & MessagePack работает везде.
Для того что бы выбрать папку для сохранения можно воспользоваться следующим кодом:#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN || UNITY_WP8
var appData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
#else
var appData = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
#endif
Для создания файла в этой папке можно использовать следующий код:using(var writer = File.CreateText(Path.Combine(appData , "mysave.json")) {
Для непосредственного сохранения в файл с Json.NET:var serializer = new JsonSerializer();
serializer.Serialize(writer, myData)
Ну, и совет напоследок, не сохранять каждый раз в один и тот же файл, а делать это последовательно в разные файлы, на случай "битого" сохранения.
Вопрос: Почему не выводит текст из бд?

Лучший ответ:
Какой ужас...
Или даже так я буду под угрозой sql-инъекций?
prepare само по себе не защищает от инъекций. От того что ты заменил слово query на слово prepare твои запросы защищеннее не станут.
чтобы prepare работало, его надо использовать правильно. 

Про остальной код я вообще молчу. С чего ты решил что execute выводит какие-то данные? Зачем делать два запроса чтобы получить одну и ту же запись? 

$stmt = $db->prepare('SELECT name, surname FROM accounts WHERE mail=?');
$stmt->execute([$_SESSION['mail']]);
$user = $stmt->fetch();
<div class="dash-text" id="account-name"><?= $user['name'] . ' ' . $user['surname'] ?></div>

Худший ответ:
execute возвращает 1 или 0, то есть true или false. Используйте query или лучше fetchAll() после execute и замените в самом sql-запросе данные из сессии на плейсхолдеры во избежание инъекций и  уже в execute их вставляйте. Да и вообще, я бы советовал пересмотреть логику, довольно странно, что вы где-то составляете запрос а во вью обращаетесь к БД с помощью execute().
Вопрос: Портфолио для UI дизайнера игровых интерфейсов?

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

Худший ответ:
Портфолио надо набирать на своих проектах, а не копипастить чужие. (если вы возьмёте существующую игру и скопируете её интерфейс - это будет уже работа не дизайнера, а плагиатера)
В принципе, вы можете придумать какую-нибудь свою игру и задизайнить для неё интерфейс.
Вопрос: Как лучше организовать рабочий процесс в Jira Atlassian, Agile?

Лучший ответ:
Сначала думаете как лучше организовать свой рабочий процесс - а потом его переносите в Jira. У вас судя по всему этого процесса нет сформированного, и Jira сама по себе вам не поможет его сделать из ничего.

Худший ответ:
2. Создавать под одним именем один проект или под каждое направление (веб, мобилька, десктоп) свой проект? Например: Название проекта "Хабр" и этот проект будет включать задачи и для сайта и для моб. приложение или делать так, несколько проектов: "Хабр Web", "Хабр Mobile", "Хабр Android", "Хабр iOS" и т.д.? Как будет грамотно? Например, если один проект, то задачи Добавить кнопку лайк в мобильное приложение, Добавить кнопку лайк в веб приложение и т.д, А если проект под каждую платформу, то просто в каждой будет задача Добавить кнопку лайк. Как на практике лучше?
В вашей терминологии. Если воркфлоу для всех одинаков, то один проект - один продукт, внутри него каждое направление - это компоненты. Типы задач стандартные - task, sub-task, bug, new feature,  new feature, improvement, epic (что-то может лишнее - смотрите сами). "добавить лайк" - это не тип задачи, а скорее кастомное поле списком и обязательность его заполнения при создании задачи, например. По этому же полю фильтры для графиков или уведомлений. 3. Вы соблюдаете иерархию задач? Т.е. Сначала должен быть создан Эпик, потом уже только Задачи входящие в эпик (это если рассматривать современные шаблоны, если классчиеские или скрам, то там история есть еще)...
ничего плохого в том чтобы большие задачи делать эпиками и разбивать на задачки - нет. Маленькие задачи, улучшения, баги - ради них создавать эпик не имеет смысла4. Как лучше называть эпик задачу? Например есть Личный кабинет, и нужно сделать модуль Уведомления. Значит я создаю Эпик "Уведомления", и подздаачи создать страницу ... создать виджет и т.д. Так ? 
похоже на правду. Только не подзадачи создаешь, а задачи внутри эпика5. Я так понимаю, если эпик будет выполнен и все входящие в него задачи, то он как бы закрыт, но вдруг нужно добавить новую фичу в уведомления или баг исправить, мне же не нужно создавать новый эпик, достаточно добавить новую задачу в уже существующий?
да. Либо вообще не привязываться к эпику. И открою секрет - в джире еще есть версии. Кажется в этом случае как раз версии могут быть полезны. Или нет.
Все выше - смесь бест практис от атлассиан и свой опыт. Поэтому в целом можно сказать, что IMHO, но не истина в последней инстанции. Выше пишут что сначала постройте процессы, а потом уже кладите их на джиру - тоже неплохо. Но если ни процессов нет, ни джиры, то в джире в общем-то много что неплохо реализовано и строить процессы по ней может быть не самой плохой идеей
Вопрос: Как отвязать внешний диск от системы так, чтобы это было легитимно?

Лучший ответ:
J:\$Extend\$RmMetadata\$TxfТранзакционная NTFS (TxF)
В интернетах пишут о таком поведении. Кому-то помогает остановка индексирования (windows search), кому-то остановка superfetch, кому-то остановка defender, кому-то вообще acronis мешал.

Худший ответ:
1. Я не вижу.... Вы пишете. Да Вы этого и не должны видеть это метаданные такие же как MFT вы его не видите, а он есть.
2. Проблема есть со времён windows виста
У некоторых возникает после установки акрониса TI.
У других при активном RDP подключении.
3. https://social.msdn.microsoft.com/Forums/en-US/4ad...
Вот тут ответ как увидеть, с помощью каких утилит. Надеюсь что дружите с английским.
Вопрос: На каком языке и с применением каких технологий, IDE лучше писать программы для Windows, которые бы занимали минимум оперативной памяти?

Лучший ответ:
Если хотите минимум требований по ОЗУ попробуйте Delphi (RAD Studio). Ни каких фреймворков и сторонних библиотек. Единственный, самодостаточный exe, использование памяти которого контролируете вы сами.
Пример приложения по-дефолту. Имеется возможность и уменьшить потребление, исключив некоторые элементы или изменив настройки компилятора, добавив директивы в проект.

Худший ответ:
Под винду берите c#. То, сколько будет потреблять ресурсов - полностью на вашей совести.
Вопрос: Как связать Java (Spring Boot) и Vue Js?

Лучший ответ:
Настроить Nginx как единую точку входа.

Худший ответ:
тут смотрели: https://github.com/jonashackt/spring-boot-vuejs?
Вопрос: Как создавать сайты в фотошоп?

Лучший ответ:
В фотошопе нельзя создать сайт, 

только макет сайта

Худший ответ:
просто его рисуешь чувак 
прямо так в псд и сдаешь
Вопрос: Google не индексирует сайт? Доступ к отправленному URL заблокирован в файле robots.txt. Как исправить ошибку?

Лучший ответ:
Я не мастер!
Бросилось в глаза */index.php - это не говорит о том что все буквы, символы перед /index.php не индексировать т.к. Disallow: */index.php

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

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

Худший ответ:
Любой программой восстановления данных с поддержкой FAT32. Power Data Recovery, например. Да даже WinHex в режиме "открыть диск" справится.

Может даже проверка windows с исправлением ошибок поможет
Вопрос: Есть ли смысл преобразовывать второй физический (HDD) диск в GPT?

Лучший ответ:
если всё работает, то смысла нет. 

да, gpt пришёл на смену mbr. но нужен он только, если вы упираетесь в ограничения mbr. 
иначе, сама по себе смена даст вам ровно ничего. от слова совсем.

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

Лучший ответ:
Ну во-первых, querySelectorAll возвращает коллекцию NodeList а не массив, это важно понимать.
Во-вторых, у NodeList нет сеттера onclick в отличии от элементов, а следовательно Ваше присваивание туда функции просто не сработает.
В-третьих, не стоит пользоваться сеттерами вида oneventname, так как это чревато проблемами, используйте метод addEventListener
В-четвертых, querySelectorAll можно использовать не только на document, но и на элементах
В-пятых, в обработчик события приходит объект события в качестве аргумента, в котором есть свойство target - элемент на котором событие произошло

По-итогу:function listener(event) {
  const target = event.target.closest('.app__item');
  target.querySelectorAll('.equalizer').forEach(
    elem => elem.style.display = 'block'
  );
  // так как дальнейшие клики будут гонять бесполезный цикл, то лучше отписаться
  target.removeEventListener('click', listener);
}
document.querySelectorAll('.app__item').forEach(
  item => item.addEventListener('click', listener)
);

Худший ответ:
Как сказал Дмитрий Беляев, ваш код с ошибками, для перебора с назначением обработчика нужен следующий код:

document.querySelectorAll(".app__item").map(item => {
    item.onclick = function() {
        document.querySelectorAll(".equalizer").map(children => {
              children.style.display = 'block';
        });
    }
});
Вопрос: Перебор объекта?

Лучший ответ:
И можно заменить
inp.addEventListener('keyup',()=>{
for(let key in codes){
	  if(inp.value === key){
	    info.textContent = `${codes[key]}`;
	    info.style.display = 'block';
	  } else {
	    info.style.display = 'none';
	  }
	}; 
});
на
inp.addEventListener('keyup',()=>{

  if(inp.value in codes) {
  	info.textContent = `${codes[inp.value]}`;
    info.style.display = 'block';
  }
  else {
  	info.style.display = 'none';
  }

});

Худший ответ:
else блок не нужен. во второй раз он сбрасывает display дива на none